:root{color:#101828;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fa;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif}*{box-sizing:border-box}html{background:#f5f7fa;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}#root{min-height:100vh}.app-shell{min-height:100vh;padding:24px 16px 48px}.app-container{width:min(100%,920px);margin:0 auto}.top-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.eyebrow{color:#667085;margin:0 0 4px;font-size:.78rem;font-weight:700}.top-header h1{color:#101828;letter-spacing:-.04em;margin:0;font-size:1.8rem}.course-chip{color:#344054;background:#fff;border:1px solid #d0d5dd;border-radius:999px;flex-shrink:0;padding:8px 12px;font-size:.82rem;font-weight:700}.course-card{background:#fff;border:1px solid #e4e7ec;border-radius:18px;margin-bottom:14px;padding:18px;box-shadow:0 2px 8px #1018280a}.course-card-main{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.course-card-main>div:first-child{flex-direction:column;gap:4px;display:flex}.section-label{color:#667085;font-size:.75rem}.course-card-main strong{color:#101828;font-size:1rem}.course-dates{color:#344054;align-items:center;gap:7px;font-size:.86rem;font-weight:700;display:flex}.date-arrow{color:#98a2b3}.course-note{color:#667085;margin:12px 0 0;font-size:.78rem}.summary-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.summary-card{background:#fff;border:1px solid #e4e7ec;border-radius:18px;min-width:0;padding:16px;box-shadow:0 2px 8px #1018280a}.summary-label{color:#667085;margin-bottom:9px;font-size:.76rem;font-weight:700;display:block}.summary-card>strong{color:#101828;letter-spacing:-.04em;margin-bottom:7px;font-size:1.75rem;line-height:1;display:block}.summary-card small{color:#667085;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;display:block;overflow:hidden}.summary-card .unit{margin-left:2px;font-size:.9rem}.highlight-card{background:#eff8ff;border-color:#b2ddff}.highlight-card>strong{color:#175cd3}.summary-card>.danger-value{color:#d92d20}.period-card{background:#fff;border:1px solid #e4e7ec;border-radius:20px;overflow:hidden;box-shadow:0 4px 12px #1018280d}.period-navigation{border-bottom:1px solid #eaecf0;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;padding:16px;display:grid}.nav-button{color:#344054;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:12px;width:42px;height:42px;padding:0;font-size:1.8rem;line-height:1}.nav-button:disabled{opacity:.3;cursor:default}.period-title{flex-direction:column;align-items:center;gap:3px;min-width:0;display:flex}.period-title strong{color:#101828;font-size:1rem}.period-title span{color:#667085;font-size:.76rem}.period-detail-row{color:#667085;background:#fcfcfd;border-bottom:1px solid #eaecf0;justify-content:center;gap:24px;padding:11px 16px;font-size:.75rem;display:flex}.period-detail-row strong{color:#344054}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));padding:12px;display:grid}.weekday{color:#667085;text-align:center;padding:7px 2px 10px;font-size:.72rem;font-weight:700}.weekday.sunday{color:#d92d20}.weekday.saturday{color:#175cd3}.calendar-empty{min-height:76px}.calendar-day{color:#344054;min-width:0;min-height:76px;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:7px;padding:8px 5px;display:flex;position:relative}.calendar-day:hover{background:#f9fafb}.day-number{border-radius:999px;place-items:center;min-width:27px;height:27px;padding:0 4px;font-size:.78rem;font-weight:700;display:grid}.calendar-day.today .day-number{color:#fff;background:#101828}.calendar-day.non-class-day{color:#98a2b3}.status-label{white-space:nowrap;border-radius:7px;max-width:100%;padding:4px 6px;font-size:.64rem;font-weight:800;line-height:1}.rest-label{color:#b0b7c3;font-size:.62rem}.status-present .status-label{color:#027a48;background:#ecfdf3}.status-late .status-label{color:#b54708;background:#fffaeb}.status-absent .status-label{color:#b42318;background:#fef3f2}.status-leave .status-label{color:#5925dc;background:#f4f3ff}.status-off .status-label{color:#475467;background:#f2f4f7}.legend{color:#667085;border-top:1px solid #eaecf0;flex-wrap:wrap;justify-content:center;gap:10px 16px;padding:13px 16px 16px;font-size:.68rem;display:flex}.legend>span{align-items:center;gap:5px;display:flex}.legend-dot{border-radius:999px;width:7px;height:7px}.present-dot{background:#12b76a}.late-dot{background:#f79009}.absent-dot{background:#f04438}.leave-dot{background:#7f56d9}.off-dot{background:#98a2b3}.temporary-note{color:#98a2b3;text-align:center;margin:12px 0 0;font-size:.72rem}.sheet-backdrop{z-index:100;background:#1018285c;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.bottom-sheet{background:#fff;border-radius:24px 24px 18px 18px;width:min(100%,520px);padding:10px 16px 20px;box-shadow:0 24px 48px #10182833}.sheet-handle{background:#d0d5dd;border-radius:999px;width:42px;height:4px;margin:0 auto 14px}.sheet-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.sheet-header>div{flex-direction:column;gap:4px;display:flex}.sheet-header span{color:#667085;font-size:.76rem}.sheet-header strong{color:#101828;font-size:1.05rem}.sheet-close{color:#475467;cursor:pointer;background:#f2f4f7;border:0;border-radius:10px;width:38px;height:38px;padding:0;font-size:1.5rem}.status-buttons{gap:8px;display:grid}.status-option{color:#344054;min-height:48px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e4e7ec;border-radius:12px;justify-content:space-between;align-items:center;padding:0 15px;font-weight:700;display:flex}.status-option.selected{border-width:2px}.option-present.selected{background:#ecfdf3;border-color:#12b76a}.option-late.selected{background:#fffaeb;border-color:#f79009}.option-absent.selected{background:#fef3f2;border-color:#f04438}.option-leave.selected{background:#f4f3ff;border-color:#7f56d9}.option-off.selected{background:#f2f4f7;border-color:#98a2b3}.clear-button{color:#667085;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;margin-top:12px;padding:12px;font-size:.78rem}@media (width<=640px){.app-shell{padding:16px 10px 32px}.top-header{margin-bottom:14px}.top-header h1{font-size:1.55rem}.course-card{border-radius:16px;padding:15px}.course-card-main{flex-direction:column;align-items:flex-start;gap:10px}.course-dates{justify-content:space-between;width:100%}.summary-grid{gap:7px}.summary-card{border-radius:15px;padding:13px 10px}.summary-card>strong{font-size:1.45rem}.summary-card small{font-size:.64rem}.period-detail-row{justify-content:space-between;gap:9px;font-size:.66rem}.calendar{padding:7px}.calendar-empty,.calendar-day{min-height:64px}.calendar-day{gap:5px;padding:6px 2px}.day-number{min-width:25px;height:25px;font-size:.72rem}.status-label{padding:3px 4px;font-size:.57rem}.rest-label{font-size:.56rem}.sheet-backdrop{padding:0}.bottom-sheet{border-radius:24px 24px 0 0}}.loading-screen{color:#667085;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:70vh;display:flex}.loading-screen strong{color:#101828;font-size:1rem}.loading-screen span{font-size:.78rem}.storage-error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;border-radius:12px;margin-bottom:14px;padding:11px 14px;font-size:.78rem;font-weight:700}.storage-ok{color:#667085}.top-actions{align-items:center;gap:8px;display:flex}.settings-button{color:#344054;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:999px;height:38px;padding:0 13px;font-size:.78rem;font-weight:700}.settings-button:hover{background:#f9fafb}.settings-sheet{width:min(100%,560px)}.settings-form{gap:15px;display:grid}.setting-field{flex-direction:column;gap:7px;display:flex}.setting-field>span{color:#344054;font-size:.78rem;font-weight:700}.setting-field input{color:#101828;background:#fff;border:1px solid #d0d5dd;border-radius:11px;outline:none;width:100%;height:46px;padding:0 12px}.setting-field input:focus{border-color:#84caff;box-shadow:0 0 0 3px #2e90fa1f}.setting-field small{color:#98a2b3;font-size:.68rem}.number-input-wrap{position:relative}.number-input-wrap input{padding-right:42px}.number-input-wrap>span{color:#667085;pointer-events:none;font-size:.78rem;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.weekday-selector{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.weekday-option{color:#667085;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:10px;min-width:0;height:42px;padding:0;font-size:.78rem;font-weight:700}.weekday-option.selected{color:#175cd3;background:#eff8ff;border-color:#84caff}.settings-preview{background:#eff8ff;border:1px solid #b2ddff;border-radius:12px;flex-direction:column;gap:4px;padding:13px 14px;display:flex}.settings-preview>span{color:#175cd3;font-size:.72rem;font-weight:700}.settings-preview strong{color:#1849a9;font-size:1.05rem}.settings-preview small{color:#667085;font-size:.68rem}.settings-warning{color:#b54708;background:#fffaeb;border:1px solid #fedf89;border-radius:10px;padding:10px 12px;font-size:.72rem;font-weight:700;line-height:1.5}.settings-error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;border-radius:10px;padding:10px 12px;font-size:.72rem;font-weight:700;line-height:1.5}.settings-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.settings-cancel-button,.settings-save-button{min-height:46px;font:inherit;cursor:pointer;border-radius:11px;font-size:.82rem;font-weight:800}.settings-cancel-button{color:#344054;background:#fff;border:1px solid #d0d5dd}.settings-save-button{color:#fff;background:#1570ef;border:1px solid #1570ef}.settings-save-button:hover{background:#175cd3}@media (width<=640px){.top-actions{gap:5px}.settings-button{height:36px;padding:0 11px;font-size:.72rem}.course-chip{padding:8px 10px}.settings-sheet{max-height:92vh;overflow-y:auto}.weekday-selector{gap:4px}.weekday-option{height:40px;font-size:.72rem}}.end-mode-selector{grid-template-columns:1fr 1fr;gap:7px;display:grid}.end-mode-option{color:#667085;min-height:46px;font:inherit;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:11px;padding:8px 10px;font-size:.76rem;font-weight:700}.end-mode-option.selected{color:#175cd3;background:#eff8ff;border-color:#84caff}@media (width<=420px){.end-mode-selector{grid-template-columns:1fr}}
