@import"https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&display=swap";:root,[data-mode=light]{--bg-base: #f2f0ed;--bg-surface: #ebe8e3;--bg-card: #ffffff;--bg-card-hover: #faf8f5;--border: #eae6e0;--border-light: #f0ece6;--ink: #22252e;--ink-light: #3a3d48;--gold: #c9a84c;--gold-light: #e8c97a;--gold-pale: rgba(201, 168, 76, .1);--red: #c0392b;--red-lt: #fdf0ed;--text-primary: #2a2520;--text-secondary:#5a5248;--text-muted: #a8a09a}[data-mode=dark]{--bg-base: #1c1e24;--bg-surface: #22252e;--bg-card: #2a2d35;--bg-card-hover: #32353f;--border: #363944;--border-light: #3a3d48;--ink: #3a3d48;--ink-light: #4a4e5a;--gold: #c9a84c;--gold-light: #e8c97a;--gold-pale: rgba(201, 168, 76, .12);--red: #e05252;--red-lt: rgba(224, 82, 82, .1);--text-primary: #e8e8e8;--text-secondary:#a0a8b8;--text-muted: #5a6070}*,*:before,*:after{transition:background-color .3s,color .3s,border-color .3s}*,*:before,*:after{font-family:Lexend,system-ui,sans-serif}input,textarea,button,select{font-family:Lexend,system-ui,sans-serif}body{font-size:14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-base);color:var(--text-primary);min-height:100vh}#root{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-base)}.shell-content{flex:1;padding-bottom:calc(56px + env(safe-area-inset-bottom));overflow-y:auto}@media (min-width: 400px) and (max-width: 1023px){.shell-content{padding-bottom:calc(68px + env(safe-area-inset-bottom))}}@media (min-width: 1024px){.shell-content{margin-left:200px;padding-bottom:0}.shell-content .day-strip{position:static;top:auto}.shell-content .planner-action-bar{left:200px;right:0;max-width:none;margin:0;bottom:0}}.signin{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base);padding:24px}.signin-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:32px 24px;max-width:360px;width:100%;text-align:center;box-shadow:0 4px 24px #22252e14}.signin-logo{width:72px;height:72px;border-radius:14px;object-fit:cover;display:block;margin:0 auto 20px}.signin-school{display:flex;flex-direction:column;align-items:center;gap:3px;margin-bottom:28px}.signin-school-line1{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-primary);line-height:1}.signin-school-accent{color:var(--gold)}.signin-school-line2{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);line-height:1}.signin-school-tagline{font-size:11px;font-weight:300;color:var(--text-muted);margin-top:4px;line-height:1}.signin-btn{width:100%;background:var(--ink);color:#fff;border:none;border-radius:10px;padding:13px 24px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s}.signin-btn:hover{background:var(--ink-light)}.signin-error{margin-top:12px;font-size:13px;color:var(--red)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:56px;background:#22252e;display:flex;align-items:stretch;z-index:100;padding-bottom:env(safe-area-inset-bottom)}.bn-brand,.bn-students,.bn-footer{display:none}.bn-tabs{display:flex;flex-direction:row;flex:1;align-items:stretch}.bn-tab{flex:1;min-width:0;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;cursor:pointer;color:#ffffff73;font-family:inherit;padding:6px 1px;transition:color .15s}.bn-tab--active{color:#e8c97a}.bn-icon{font-size:18px;line-height:1;width:32px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .15s;font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif}.bn-tab--active .bn-icon{background:#c9a84c26}.bn-label{font-size:9px;font-weight:500;line-height:1;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media (min-width: 400px) and (max-width: 1023px){.bottom-nav{height:68px}.bn-tab{min-height:68px}.bn-icon{font-size:24px}.bn-label{font-size:12px}}@media (min-width: 1024px){.bottom-nav{top:0;right:auto;bottom:auto;width:200px;height:100vh;flex-direction:column;align-items:stretch;padding-bottom:0}.bn-brand{display:flex;align-items:center;gap:10px;padding:20px 14px 16px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.bn-brand-logo{width:36px;height:36px;border-radius:8px;flex-shrink:0}.bn-brand-text{display:flex;flex-direction:column;gap:1px}.bn-brand-name{font-size:10px;font-weight:700;color:#fff;letter-spacing:.06em;text-transform:uppercase;line-height:1.3}.bn-brand-accent{color:#e8c97a}.bn-brand-academy{font-size:9px;font-weight:600;color:#ffffffa6;letter-spacing:.05em;text-transform:uppercase;line-height:1.3}.bn-brand-tagline{font-size:9px;color:#ffffff4d;font-weight:300;margin-top:3px}.bn-tabs{flex-direction:column;flex:1;align-items:stretch;overflow-y:auto;padding:10px 8px;gap:2px}.bn-tab{flex:none;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;width:100%}.bn-tab--active{background:#c9a84c1f;border:1px solid rgba(201,168,76,.18)}.bn-tab:not(.bn-tab--active):hover{background:#ffffff0d}.bn-icon{font-size:16px;width:auto;height:auto;border-radius:0;background:none!important;flex-shrink:0}.bn-label{font-size:12px;overflow:visible;text-overflow:clip}.bn-students{display:block;padding:10px 8px 12px;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0}.bn-students-label{font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#ffffff59;padding:0 10px;margin-bottom:6px}.bn-student-btn{display:block;width:100%;background:none;border:1px solid transparent;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:500;font-family:inherit;text-align:left;color:#ffffff73;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.bn-student-btn:not(.bn-student-btn--active):hover{color:#ffffffbf;background:#ffffff0d}.bn-student-btn--active{background:#c9a84c1f;border-color:#c9a84c2e;color:#e8c97a}.bn-footer{display:flex;justify-content:center;padding:12px 8px 16px;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0}.bn-version{font-size:10px;color:#fff3;padding:0 10px;font-weight:400}}.home-tab{display:flex;flex-direction:column}.home-header{background:#22252e;display:flex;align-items:center;justify-content:space-between;padding:0 14px;height:56px;flex-shrink:0}.home-header-brand{display:flex;align-items:center;gap:10px}.home-header-logo{width:34px;height:34px;border-radius:8px;flex-shrink:0}.home-header-name{font-size:10px;font-weight:700;color:#fff;letter-spacing:.06em;line-height:1.25;text-transform:uppercase}.home-header-accent{color:#e8c97a}.home-header-actions{display:flex;align-items:center;gap:6px}.home-header-btn{width:32px;height:32px;background:#ffffff14;border:1px solid rgba(255,255,255,.13);border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;transition:background .15s}.home-header-btn:hover{background:#ffffff24}.home-content{width:100%;margin:0 auto;padding:20px 16px 24px}.home-date-row{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.home-date{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.home-greeting{font-size:22px;font-weight:600;color:var(--text-primary);margin:0}.home-student-row{display:flex;gap:8px;margin-bottom:16px}.home-student-pill{background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;padding:5px 14px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:all .15s}.home-student-pill--active{background:var(--gold-pale);border-color:var(--gold);color:var(--gold);font-weight:600}.home-summary-row{display:flex;gap:10px;margin-bottom:24px}.home-summary-card{flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px 10px;text-align:center;min-width:0;box-shadow:0 1px 4px #22252e0f}.home-summary-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-summary-value{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.1;margin-bottom:4px}.home-summary-sub{font-size:11px;color:var(--text-muted);font-weight:400}.home-section{margin-bottom:20px}.home-section-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}.home-lesson-list{display:flex;flex-direction:column;gap:2px}.home-lesson-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;width:100%;transition:background .15s}.home-lesson-row:hover{background:var(--bg-card-hover)}.home-lesson-dot{width:8px;height:8px;border-radius:50%;background:var(--border);flex-shrink:0}.home-lesson-dot--done{background:var(--gold)}.home-lesson-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.home-lesson-subject{font-size:14px;font-weight:500;color:var(--text-primary);line-height:1.2}.home-lesson-text{font-size:12px;color:var(--text-muted);font-weight:300;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-lesson-chevron{font-size:18px;color:var(--text-muted);line-height:1}.home-actions{display:flex;flex-direction:column;gap:10px;margin-top:4px}.home-action-btn{width:100%;border-radius:10px;padding:13px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s,background .15s,border-color .15s,color .15s}.home-action-btn--primary{background:var(--ink);color:var(--gold-light);border:none}.home-action-btn--primary:hover{background:var(--ink-light)}.home-action-btn--ghost{background:transparent;border:1.5px solid var(--border);color:var(--text-secondary)}.home-action-btn--ghost:hover{border-color:var(--gold);color:var(--gold)}@media (min-width: 400px) and (max-width: 1023px){.home-content{padding:24px 20px 32px}.home-date{font-size:13px}.home-greeting{font-size:26px}.home-summary-row{gap:12px}.home-summary-card{padding:20px 16px}.home-summary-value{font-size:28px}.home-summary-label{font-size:11px}.home-lesson-list{gap:10px}.home-lesson-row{padding:14px 16px}.home-lesson-subject{font-size:15px}.home-lesson-text{font-size:13px}.home-actions{gap:12px;margin-top:28px}.home-action-btn{padding:14px;font-size:15px}}@media (min-width: 1024px){.home-header{display:none}.home-content{max-width:none;padding:24px 28px 32px}.home-summary-row{gap:16px;margin-bottom:28px}.home-summary-card{padding:20px 16px}.home-summary-value{font-size:28px}.home-actions{flex-direction:row;justify-content:center;gap:12px;max-width:520px;margin:24px auto 0}.home-action-btn{width:auto;padding:13px 28px}}.header{position:fixed;top:0;left:0;right:0;background:#22252e;z-index:100}.header-top{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;gap:8px}.header-brand{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-logo{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#c9a84c,#e8c97a);color:#1a1c22;font-size:10px;font-weight:700;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;flex-shrink:0;object-fit:cover}.header-school{display:flex;flex-direction:column;gap:1px}.header-school-line1{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#ffffffd9;line-height:1}.header-school-accent{color:#e8c97a}.header-school-line2{font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:#ffffffb8;line-height:1}.header-school-tagline{font-size:10px;font-weight:300;color:#ffffff59;line-height:1}.header-school-version{font-size:9px;font-weight:300;color:#ffffff59;line-height:1}.header-week{display:flex;align-items:center;justify-content:center;gap:2px;padding:8px 16px 12px;border-top:1px solid rgba(255,255,255,.07)}.header-nav-btn{background:none;border:none;color:#ffffffb3;font-size:24px;line-height:1;padding:4px 8px;cursor:pointer;transition:color .15s}.header-nav-btn:hover{color:#fff}.header-week-label{font-size:13px;font-weight:600;color:#ffffffe6;white-space:nowrap;min-width:100px;text-align:center}.header-actions{display:flex;gap:5px;flex-shrink:0}.header-btn{width:32px;height:32px;background:#ffffff14;border:1px solid rgba(255,255,255,.13);border-radius:8px;color:#ffffffa6;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-size:14px;font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,sans-serif;transition:background .15s,color .15s}.header-btn:hover{background:#ffffff29;color:#ffffffe6}.header-students{height:32px;display:flex;align-items:center;justify-content:center;gap:8px;border-top:1px solid rgba(255,255,255,.07)}.header-student-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:20px;color:#ffffff8c;font-size:12px;font-weight:500;padding:3px 18px;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.header-student-btn--active{background:#ffffff1a;border-color:#ffffff40;color:#e8c97a;font-weight:600}.header-student-btn:hover:not(.header-student-btn--active){background:#ffffff1f;color:#fffc}@media (min-width: 400px) and (max-width: 1023px){.header-top{height:52px}.header-logo{width:38px;height:38px}.header-school-line1{font-size:13px}.header-school-line2{font-size:12px}.header-school-tagline{font-size:11px}.header-btn{width:36px;height:36px;font-size:16px}.header-week{padding:10px 16px 14px}.header-nav-btn{font-size:28px}.header-week-label{font-size:16px}.header-students{height:36px}.header-student-btn{padding:8px 16px;font-size:14px}}@media (min-width: 1024px){.header{display:none}}.day-strip{position:sticky;top:132px;z-index:50;display:flex;gap:3px;background:var(--bg-card);border-radius:12px;padding:5px;margin:0 14px 14px;box-shadow:0 1px 4px #22252e14}.day-strip-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;border-radius:8px;cursor:pointer;padding:6px 4px;font-family:inherit;transition:background .15s;position:relative}.day-strip-tab--active{background:#22252e}.day-strip-name{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);line-height:1}.day-strip-date{font-size:16px;font-weight:500;color:var(--text-primary);line-height:1}.day-strip-tab--active .day-strip-name{color:#ffffff80}.day-strip-tab--active .day-strip-date{color:#fff;font-weight:700}.day-strip-tab--today .day-strip-date{color:var(--gold);font-weight:700;border-bottom:2px solid var(--gold);padding-bottom:1px}.day-strip-tab--active.day-strip-tab--today .day-strip-date{color:var(--gold-light);border-bottom-color:var(--gold-light)}.day-strip-students,.day-strip-full-name{display:none}.day-strip-tab--sick:after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background:var(--red)}@media (min-width: 400px) and (max-width: 1023px){.day-strip{top:140px;padding:6px}.day-strip-tab{padding:10px 6px}.day-strip-name{font-size:11px}.day-strip-date{font-size:16px}}.subject-card--allday{background:#22252e;border-radius:13px;padding:14px 16px;cursor:pointer;transition:opacity .15s}.subject-card--allday:hover{opacity:.9}.subject-card-allday-label{display:block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#ffffff73;margin-bottom:4px}.subject-card-allday-name{font-size:16px;font-weight:600;color:#e8c97a;margin:0;line-height:1.3}.subject-card-allday-note{font-size:13px;color:#ffffff8c;margin:6px 0 0;line-height:1.45}.subject-card{display:flex;align-items:flex-start;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:12px 14px;cursor:pointer;box-shadow:0 1px 4px #22252e12,0 2px 8px #22252e0a;transition:border-color .2s,box-shadow .2s,transform .2s,background .2s,opacity .2s}.subject-card:hover{border-color:var(--gold-light);box-shadow:0 4px 16px #22252e1a;transform:translateY(-1px)}.subject-card--done{background:var(--bg-surface);opacity:.75}.subject-card--done .subject-card-lesson{text-decoration:line-through;color:var(--text-muted)}.subject-card--flag{border-color:var(--red);background:#fdf8f7}[data-mode=dark] .subject-card--flag{background:#e0525214}.subject-card-checkbox{width:36px;height:36px;flex-shrink:0;border-radius:10px;border:2px solid var(--border);background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.subject-card-checkbox:hover{border-color:var(--gold)}.subject-card-checkbox--done{background:var(--gold);border-color:var(--gold)}.subject-card-checkbox--done:hover{background:var(--gold-light);border-color:var(--gold-light)}.subject-card-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.subject-card-top{display:flex;align-items:center;gap:8px}.subject-card-name{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-primary)}.subject-card-note-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--border);background:transparent;flex-shrink:0;transition:background .15s,border-color .15s}.subject-card-note-dot--active{background:var(--gold);border-color:var(--gold)}.subject-card-lesson{font-size:14px;color:var(--text-primary);line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0}.subject-card-empty{font-size:12px;font-weight:300;color:var(--text-muted)}.subject-card-hint{font-size:11px;font-weight:300;color:var(--text-muted);margin-top:4px}.subject-card-flag-btn{width:28px;height:28px;flex-shrink:0;background:none;border:1px solid transparent;border-radius:7px;font-size:15px;color:var(--text-muted);cursor:pointer;padding:0;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}.subject-card-flag-btn--active{background:var(--red-lt);border-color:#f5cfc6;color:var(--red)}.subject-card-flag-btn:hover:not(.subject-card-flag-btn--active){color:var(--text-secondary)}[data-mode=dark] .subject-card-flag-btn--active{border-color:#e0525266}@media (min-width: 400px) and (max-width: 1023px){.subject-card{padding:18px 16px;gap:14px}.subject-card-checkbox{width:40px;height:40px}.subject-card-flag-btn{width:32px;height:32px;font-size:17px}.subject-card-name{font-size:12px}.subject-card-lesson{font-size:15px}.subject-card-hint,.subject-card-empty{font-size:13px}.subject-card-allday-name{font-size:17px}.subject-card-allday-note{font-size:14px}}.edit-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end;justify-content:center}.edit-sheet{width:100%;max-width:100%;background:var(--bg-base);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,16px);animation:edit-sheet-up .25s ease}@keyframes edit-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.edit-sheet-handle{width:40px;height:5px;background:#d4cfc8;border-radius:3px;margin:10px auto 0}.edit-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px;background:var(--ink)}.edit-sheet-title{font-size:15px;font-weight:600;color:#fff}.edit-sheet-close{width:28px;height:28px;background:#ffffff1f;border:none;border-radius:50%;color:#fffc;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.edit-sheet-close:hover{background:#ffffff38;color:#fff}.edit-sheet-body{padding:16px 20px;display:flex;flex-direction:column;gap:8px}.edit-sheet-label{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-secondary)}.edit-sheet-textarea{width:100%;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text-primary);resize:vertical;line-height:1.45;transition:border-color .15s}.edit-sheet-textarea:focus{outline:none;border-color:var(--gold)}.edit-sheet-toggles{display:flex;gap:10px;margin-top:4px}.edit-sheet-toggle{flex:1;background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;padding:10px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.edit-sheet-toggle--done{background:var(--gold-pale);border-color:var(--gold);color:#8a6a20;font-weight:600}[data-mode=dark] .edit-sheet-toggle--done{color:var(--gold-light)}.edit-sheet-toggle--flag{background:var(--red-lt);border-color:var(--red);color:var(--red);font-weight:600}.edit-sheet-delete{width:100%;background:none;border:none;border-radius:8px;padding:8px 16px;margin-top:20px;font-size:13px;font-weight:500;color:var(--red);cursor:pointer;font-family:inherit;text-align:center;transition:background .15s,color .15s}.edit-sheet-delete--confirm{background:var(--red);color:#fff;font-weight:600}.edit-sheet-footer{display:flex;gap:10px;padding:12px 20px 16px;background:var(--bg-card);border-top:1px solid var(--border)}.edit-sheet-cancel{flex:1;background:transparent;border:1.5px solid var(--border);border-radius:10px;padding:12px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.edit-sheet-cancel:hover{border-color:var(--gold);color:var(--gold)}.edit-sheet-save{flex:2;background:var(--ink);border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:600;color:var(--gold-light);cursor:pointer;font-family:inherit;transition:background .15s}.edit-sheet-save:hover{background:var(--ink-light)}@media (min-width: 400px) and (max-width: 1023px){.edit-sheet-title{font-size:17px}.edit-sheet-body{padding:24px 20px;gap:10px}.edit-sheet-label{font-size:13px}.edit-sheet-textarea{font-size:16px;padding:12px 14px}.edit-sheet-toggle{padding:12px;font-size:14px}.edit-sheet-delete{font-size:14px;padding:10px 16px}.edit-sheet-footer{padding:14px 20px 18px}.edit-sheet-cancel,.edit-sheet-save{padding:14px;font-size:15px}}.debug-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:300;display:flex;align-items:flex-end;justify-content:center}.debug-sheet{width:100%;max-width:100%;background:var(--bg-base);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,16px);animation:debug-sheet-up .2s ease;max-height:70vh;display:flex;flex-direction:column}@keyframes debug-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.debug-sheet-handle{width:40px;height:5px;background:#d4cfc8;border-radius:3px;margin:10px auto 0;flex-shrink:0}.debug-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px;background:var(--ink);flex-shrink:0}.debug-sheet-title{font-size:13px;font-weight:600;color:#ffffffa6}.debug-sheet-header-actions{display:flex;align-items:center;gap:8px}.debug-sheet-copy{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500;color:#ffffffb3;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.debug-sheet-copy:hover{background:#ffffff2e;color:#fff}.debug-sheet-close{width:28px;height:28px;background:#ffffff1f;border:none;border-radius:50%;color:#fffc;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.debug-sheet-close:hover{background:#ffffff38;color:#fff}.debug-sheet-body{overflow-y:auto;padding:12px 16px;flex:1}.debug-sheet-entry{font-size:11px;font-family:Courier New,monospace;color:var(--text-secondary);line-height:1.6;word-break:break-all;white-space:pre-wrap}.debug-sheet-empty{font-size:13px;color:var(--text-muted);font-style:italic}.upload-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end;justify-content:center}.upload-sheet{width:100%;max-width:100%;background:var(--bg-base);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,16px);animation:upload-sheet-up .25s ease}@keyframes upload-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.upload-sheet-handle{width:40px;height:5px;background:#d4cfc8;border-radius:3px;margin:10px auto 0}.upload-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px;background:var(--ink)}.upload-sheet-title{font-size:15px;font-weight:600;color:#fff}.upload-sheet-close{width:28px;height:28px;background:#ffffff1f;border:none;border-radius:50%;color:#fffc;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.upload-sheet-close:hover{background:#ffffff38;color:#fff}.upload-sheet-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px;min-height:80px}.upload-sheet-file-zone{display:flex;align-items:center;justify-content:center;min-height:72px;background:var(--bg-card);border:1px dashed var(--border);border-radius:12px;cursor:pointer;transition:border-color .2s}.upload-sheet-file-zone:hover:not(.upload-sheet-file-zone--disabled){border-color:var(--gold)}.upload-sheet-file-zone--disabled{opacity:.5;cursor:default}.upload-sheet-file-input{position:absolute;width:1px;height:1px;opacity:0}.upload-sheet-file-hint{font-size:14px;color:var(--text-muted)}.upload-sheet-filename{font-size:14px;font-weight:500;color:var(--text-primary);text-align:center;padding:0 16px;word-break:break-all}.upload-sheet-wipe-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer}.upload-sheet-wipe-check{width:16px;height:16px;accent-color:var(--gold);flex-shrink:0;cursor:pointer}.upload-sheet-spinner-row{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--text-secondary)}.upload-sheet-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.upload-sheet-error{font-size:13px;color:var(--red);background:var(--red-lt);border:1px solid #f5cfc6;border-radius:8px;padding:10px 12px}.upload-sheet-success{font-size:15px;font-weight:600;color:var(--text-primary);background:var(--gold-pale);border:1px solid rgba(201,168,76,.25);border-radius:10px;padding:14px 16px;text-align:center}.upload-sheet-result-meta{font-size:14px;font-weight:600;color:var(--text-primary)}.upload-sheet-divider{height:1px;background:var(--border-light)}.upload-sheet-lesson-list{display:flex;flex-direction:column;max-height:192px;overflow-y:auto}.upload-sheet-day-group{margin-bottom:10px}.upload-sheet-day-group:last-child{margin-bottom:0}.upload-sheet-day-header{font-size:13px;font-weight:600;color:var(--gold);padding:2px 0 4px}.upload-sheet-lesson-row{display:flex;align-items:baseline;gap:8px;padding:3px 0 3px 12px;font-size:13px}.upload-sheet-lesson-subject{color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-sheet-lesson-num{font-size:12px;color:var(--text-muted);flex-shrink:0}.upload-sheet-result-footer{font-size:12px;color:var(--text-muted)}.upload-sheet-log-btn{background:none;border:none;font-size:12px;color:var(--text-muted);cursor:pointer;font-family:inherit;text-align:left;padding:0;text-decoration:underline;text-underline-offset:2px}.upload-sheet-log-btn:hover{color:var(--text-secondary)}.upload-sheet-footer{display:flex;gap:10px;padding:12px 20px 16px;background:var(--bg-card);border-top:1px solid var(--border)}.upload-sheet-cancel{flex:1;background:transparent;border:1.5px solid var(--border);border-radius:10px;padding:12px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.upload-sheet-cancel:hover{border-color:var(--gold);color:var(--gold)}.upload-sheet-import-btn,.upload-sheet-apply-btn{flex:2;background:var(--ink);border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:600;color:var(--gold-light);cursor:pointer;font-family:inherit;transition:background .15s,opacity .15s}.upload-sheet-import-btn:hover:not(:disabled),.upload-sheet-apply-btn:hover{background:var(--ink-light)}.upload-sheet-import-btn:disabled{opacity:.4;cursor:default}@media (min-width: 400px) and (max-width: 1023px){.upload-sheet-title{font-size:18px}.upload-sheet-body{padding:24px 20px;gap:14px}.upload-sheet-file-hint,.upload-sheet-filename{font-size:15px}.upload-sheet-wipe-row{font-size:14px}.upload-sheet-spinner-row{font-size:15px}.upload-sheet-error{font-size:14px;padding:12px 14px}.upload-sheet-success{font-size:16px;padding:16px}.upload-sheet-result-meta{font-size:15px}.upload-sheet-day-header,.upload-sheet-lesson-row{font-size:14px}.upload-sheet-lesson-num,.upload-sheet-result-footer{font-size:13px}.upload-sheet-footer{padding:14px 20px 18px}.upload-sheet-cancel,.upload-sheet-import-btn,.upload-sheet-apply-btn{padding:14px;font-size:15px}}.add-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end;justify-content:center}.add-sheet{width:100%;max-width:100%;background:var(--bg-base);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,16px);animation:add-sheet-up .25s ease;max-height:80vh;display:flex;flex-direction:column}@keyframes add-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.add-sheet-handle{width:40px;height:5px;background:#d4cfc8;border-radius:3px;margin:10px auto 0;flex-shrink:0}.add-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px;background:var(--ink);flex-shrink:0}.add-sheet-title{font-size:15px;font-weight:600;color:#fff}.add-sheet-close{width:28px;height:28px;background:#ffffff1f;border:none;border-radius:50%;color:#fffc;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.add-sheet-close:hover{background:#ffffff38;color:#fff}.add-sheet-body{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.add-sheet-custom{display:flex;gap:8px}.add-sheet-input{flex:1;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text-primary);transition:border-color .15s}.add-sheet-input::placeholder{color:var(--text-muted)}.add-sheet-input:focus{outline:none;border-color:var(--gold)}.add-sheet-add-btn{background:var(--ink);border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;color:var(--gold-light);cursor:pointer;font-family:inherit;transition:background .15s,opacity .15s;white-space:nowrap}.add-sheet-add-btn:hover:not(:disabled){background:var(--ink-light)}.add-sheet-add-btn:disabled{opacity:.4;cursor:default}.add-sheet-allday{display:flex;flex-direction:column;gap:8px}.add-sheet-allday-btn{width:100%;background:#22252e;border:none;border-radius:10px;padding:12px 16px;font-size:14px;font-weight:600;color:#e8c97a;cursor:pointer;font-family:inherit;text-align:left;transition:opacity .15s}.add-sheet-allday-btn:hover{opacity:.85}.add-sheet-allday-btn--edit{color:#ffffffb3;font-weight:500}.add-sheet-allday-form{display:flex;flex-direction:column;gap:8px}.add-sheet-divider{height:1px;background:var(--border)}.add-sheet-section-label{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-secondary)}.add-sheet-presets{display:flex;flex-wrap:wrap;gap:8px}.add-sheet-preset-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:7px 16px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.add-sheet-preset-btn:hover{background:var(--gold-pale);border-color:var(--gold);color:var(--gold)}.add-sheet-preset-btn--active{background:#22252e;border-color:#22252e;color:#e8c97a}.add-sheet-preset-btn--active:hover{background:#22252e;border-color:#22252e;color:#e8c97a;opacity:.9}.add-sheet-row-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.add-sheet-row-actions{display:flex;gap:12px}.add-sheet-link-btn{background:none;border:none;padding:0;font-family:inherit;font-size:12px;font-weight:500;color:var(--gold);cursor:pointer;transition:color .15s}.add-sheet-link-btn:hover{color:var(--gold-light)}.add-sheet-day-pills{display:flex;gap:6px}.add-sheet-day-pill{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:8px 4px;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.add-sheet-day-pill--active{background:#22252e;border-color:#22252e;color:#e8c97a}.add-sheet-day-short{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.add-sheet-day-date{font-size:15px;font-weight:600}.add-sheet-details{display:flex;flex-direction:column}.add-sheet-detail-block{margin-bottom:10px}.add-sheet-detail-block:last-child{margin-bottom:0}.add-sheet-detail-label{display:block;font-size:10px;font-weight:600;color:var(--gold);margin-bottom:4px}.add-sheet-detail-input{width:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:7px;padding:7px 10px;font-size:13px;font-family:inherit;color:var(--text-primary);transition:border-color .15s}.add-sheet-detail-input:focus{outline:none;border-color:var(--gold)}.add-sheet-student-pills{display:flex;flex-wrap:wrap;gap:8px}.add-sheet-student-pill{display:flex;align-items:center;gap:6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;padding:7px 14px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.add-sheet-student-pill--active{background:#22252e;border-color:#22252e;color:#e8c97a}.add-sheet-student-emoji{font-size:15px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif}.add-sheet-summary{font-size:13px;color:var(--text-secondary);line-height:1.45;margin:4px 0 0}.add-sheet-summary strong{color:var(--text-primary);font-weight:600}.add-sheet-confirm-btn{width:100%;background:var(--ink);border:none;border-radius:10px;padding:13px;font-size:14px;font-weight:600;color:var(--gold-light);cursor:pointer;font-family:inherit;margin-top:4px;transition:background .15s,opacity .15s}.add-sheet-confirm-btn:hover:not(:disabled){background:var(--ink-light)}.add-sheet-confirm-btn:disabled{opacity:.4;cursor:default}@media (min-width: 400px) and (max-width: 1023px){.add-sheet-title{font-size:17px}.add-sheet-body{padding:20px;gap:16px}.add-sheet-input{font-size:16px;padding:12px 14px}.add-sheet-detail-input{font-size:16px}.add-sheet-add-btn{padding:12px 20px;font-size:15px}.add-sheet-section-label{font-size:11px}.add-sheet-preset-btn{padding:8px 14px;font-size:13px}.add-sheet-day-pill{padding:10px 6px}.add-sheet-day-short{font-size:11px}.add-sheet-day-date{font-size:16px}.add-sheet-student-pill{padding:8px 16px;font-size:14px}.add-sheet-summary{font-size:14px}.add-sheet-confirm-btn{padding:14px;font-size:15px}.add-sheet-allday-btn{padding:14px 18px;font-size:15px}}.month-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end;justify-content:center}.month-sheet{width:100%;max-width:100%;background:var(--bg-base);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,16px);animation:month-sheet-up .25s ease}@keyframes month-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.month-sheet-handle{width:40px;height:5px;background:#d4cfc8;border-radius:3px;margin:10px auto 0}.month-sheet-header{display:flex;align-items:center;padding:12px 16px 14px;background:var(--ink);gap:4px}.month-sheet-title{flex:1;text-align:center;font-size:15px;font-weight:600;color:#fff}.month-sheet-nav{background:#ffffff14;border:none;font-size:22px;line-height:1;color:#fffc;cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s}.month-sheet-nav:hover{background:#ffffff29;color:#fff}.month-sheet-close{width:28px;height:28px;background:#ffffff1f;border:none;border-radius:50%;color:#fffc;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin-left:4px;transition:background .15s}.month-sheet-close:hover{background:#ffffff38;color:#fff}.month-sheet-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:8px 12px 20px}.month-sheet-dow{text-align:center;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-muted);padding:4px 0 6px}.month-sheet-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:400;font-family:inherit;color:var(--text-primary);background:none;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.month-sheet-cell:hover:not(:disabled){background:var(--bg-surface)}.month-sheet-cell--empty{visibility:hidden;pointer-events:none}.month-sheet-cell--weekend{color:var(--text-muted);opacity:.45;cursor:default}.month-sheet-cell--week{background:var(--gold-pale);color:var(--gold);font-weight:500}.month-sheet-cell--today{outline:2px solid var(--gold);outline-offset:-2px;font-weight:600}.sick-day-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end;justify-content:center}.sick-day-sheet{width:100%;max-width:100%;background:var(--bg-base);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,16px);animation:sick-day-up .25s ease}@keyframes sick-day-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sick-day-handle{width:40px;height:5px;background:#d4cfc8;border-radius:3px;margin:10px auto 0}.sick-day-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px;background:var(--ink)}.sick-day-title{font-size:15px;font-weight:600;color:#fff}.sick-day-close{width:28px;height:28px;background:#ffffff1f;border:none;border-radius:50%;color:#fffc;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.sick-day-close:hover{background:#ffffff38;color:#fff}.sick-day-list{display:flex;flex-direction:column;padding:8px 12px 4px;max-height:48vh;overflow-y:auto;gap:0}.sick-day-loading{font-size:13px;color:var(--text-muted);padding:16px 8px;text-align:center}.sick-day-group{margin-bottom:8px}.sick-day-group:last-child{margin-bottom:0}.sick-day-group-header{font-size:12px;font-weight:600;color:var(--gold);padding:4px 4px 6px;display:flex;align-items:center;gap:6px}.sick-day-group-tag{font-size:10px;font-weight:500;color:var(--red);background:var(--red-lt);border-radius:4px;padding:1px 5px;letter-spacing:.03em}.sick-day-item{display:flex;align-items:center;gap:10px;background:none;border:1px solid transparent;border-radius:10px;padding:10px 12px;font-family:inherit;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;width:100%}.sick-day-item:hover{background:var(--bg-card-hover)}.sick-day-item--checked{background:var(--gold-pale);border-color:#c9a84c40}.sick-day-check{width:18px;height:18px;border:1.5px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--gold);flex-shrink:0;background:var(--bg-card);transition:border-color .15s}.sick-day-item--checked .sick-day-check{border-color:var(--gold);background:var(--gold-pale)}.sick-day-subject{font-size:14px;font-weight:500;color:var(--text-primary);flex:1}.sick-day-lesson{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.sick-day-friday-warning{font-size:12px;color:var(--red);padding:6px 20px 0}.sick-day-footer{display:flex;gap:10px;padding:12px 20px 16px;background:var(--bg-card);border-top:1px solid var(--border)}.sick-day-cancel{flex:1;background:transparent;border:1.5px solid var(--border);border-radius:10px;padding:12px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.sick-day-cancel:hover{border-color:var(--gold);color:var(--gold)}.sick-day-confirm{flex:2;background:var(--ink);border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:600;color:var(--gold-light);cursor:pointer;font-family:inherit;transition:background .15s,opacity .15s}.sick-day-confirm:hover:not(:disabled){background:var(--ink-light)}.sick-day-confirm:disabled{opacity:.4;cursor:default}.planner{min-height:100vh}.planner-body{margin-top:132px}.planner-main{padding:16px 20px 146px}.planner-sick-banner{margin:0 14px 8px;padding:6px 14px;background:var(--red-lt);color:var(--red);border-radius:8px;font-size:12px;font-weight:600;text-align:center}.planner-subjects{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:16px}.planner-empty{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:48px;margin-bottom:24px}.planner-empty-icon{font-size:2.2rem;margin-bottom:12px}.planner-empty-title{font-size:15px;font-weight:500;color:var(--text-secondary);margin:0}.planner-empty-subtitle{font-size:13px;font-weight:300;color:var(--text-muted);margin-top:6px;margin-bottom:20px}.planner-empty-import-btn{width:100%;background:var(--ink);color:var(--gold-light);border:none;border-radius:10px;padding:11px 20px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;margin-bottom:10px;transition:background .15s}.planner-empty-import-btn:hover{background:var(--ink-light)}.planner-empty-add-btn{width:100%;background:transparent;border:1.5px solid var(--border);color:var(--text-secondary);border-radius:10px;padding:11px 20px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s}.planner-empty-add-btn:hover{border-color:var(--gold);color:var(--gold)}.planner-day-header,.planner-week-nav-desktop{display:none}.planner-show-subjects-btn{width:100%;background:transparent;border:none;color:var(--gold);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;padding:8px 0 4px;text-align:center;transition:color .15s}.planner-show-subjects-btn:hover{color:var(--gold-light)}.planner-add-btn{width:100%;background:transparent;border:1px dashed var(--border);border-radius:10px;padding:14px;color:var(--text-muted);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .2s,color .2s}.planner-add-btn:hover{border-color:var(--gold);color:var(--gold)}.planner-action-bar{position:fixed;bottom:56px;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);box-shadow:0 -2px 12px #22252e12;display:flex;gap:8px;padding:10px 14px;z-index:40}.planner-action-btn{flex:1;border-radius:10px;padding:11px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s,background .15s}.planner-action-btn--sick{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border)}.planner-action-btn--clear{background:var(--red-lt);color:var(--red);border:1px solid #f5cfc6}.planner-action-btn--import{background:var(--ink);color:var(--gold-light);border:none}.planner-action-btn--import:hover{background:var(--ink-light)}.planner-action-btn--undo{background:var(--red-lt);color:var(--red);border:1px solid #f5cfc6}.undo-sick-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end;justify-content:center}.undo-sick-sheet{width:100%;max-width:100%;background:var(--bg-base);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,16px);animation:undo-sick-up .25s ease}@keyframes undo-sick-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.undo-sick-handle{width:40px;height:5px;background:#d4cfc8;border-radius:3px;margin:10px auto 0}.undo-sick-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px;background:var(--ink)}.undo-sick-title{font-size:15px;font-weight:600;color:#fff}.undo-sick-close{width:28px;height:28px;background:#ffffff1f;border:none;border-radius:50%;color:#fffc;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.undo-sick-close:hover{background:#ffffff38;color:#fff}.undo-sick-body{padding:20px 20px 8px}.undo-sick-msg{font-size:14px;color:var(--text-secondary);line-height:1.55;margin:0}.undo-sick-footer{display:flex;gap:10px;padding:12px 20px 16px;background:var(--bg-card);border-top:1px solid var(--border)}.undo-sick-cancel{flex:1;background:transparent;border:1.5px solid var(--border);border-radius:10px;padding:12px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.undo-sick-cancel:hover{border-color:var(--gold);color:var(--gold)}.undo-sick-confirm{flex:2;background:var(--red);border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;font-family:inherit;transition:opacity .15s}.undo-sick-confirm:hover{opacity:.85}@media (min-width: 400px) and (max-width: 1023px){.planner-body{margin-top:140px}.planner-main{padding:16px 20px 170px}.planner-subjects{gap:14px}.planner-day-title{font-size:26px}.planner-day-subtitle{font-size:14px}.planner-action-bar{bottom:68px;padding:12px 16px}.planner-action-btn{padding:12px 20px;font-size:14px}}@media (min-width: 1024px){.planner-body{margin-top:0;max-width:none}.planner-main{padding:24px 28px 100px}.planner-subjects{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.planner-action-btn{flex:0 0 auto;padding:11px 20px}.planner-action-btn--import{margin-left:auto}.planner-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.planner-day-title{font-size:22px;font-weight:600;color:var(--text-primary);margin:0 0 4px;line-height:1.1}.planner-day-subtitle{font-size:13px;color:var(--text-muted);font-weight:400;margin:0}.planner-day-add-btn{display:none}.planner-week-nav-desktop{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 28px 0;font-size:15px;font-weight:600;color:var(--text-primary)}.planner-week-nav-btn{background:none;border:none;font-size:18px;color:var(--gold);cursor:pointer;padding:4px 8px;font-family:inherit;line-height:1;transition:color .15s}.planner-week-nav-btn:hover{color:var(--gold-light)}}.rh-header{position:fixed;top:0;left:0;right:0;background:#22252e;z-index:100}.rh-top{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 12px}.rh-back-btn{width:36px;height:36px;background:#ffffff14;border:1px solid rgba(255,255,255,.13);border-radius:8px;color:#ffffffbf;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.rh-back-btn:hover{background:#ffffff29;color:#fff}.rh-back-spacer{width:36px;flex-shrink:0}.rh-brand{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.rh-logo{width:34px;height:34px;border-radius:8px;object-fit:cover;flex-shrink:0}.rh-school{display:flex;flex-direction:column;gap:1px}.rh-school-line1{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#ffffffd9;line-height:1}.rh-school-accent{color:#e8c97a}.rh-school-line2{font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:#ffffffb8;line-height:1}.rh-school-tagline{font-size:10px;font-weight:300;color:#ffffff59;line-height:1}.rh-school-version{font-size:9px;font-weight:300;color:#ffffff59;line-height:1}@media (min-width: 400px) and (max-width: 1023px){.rh-top{height:64px}.rh-back-btn{width:40px;height:40px;font-size:14px}.rh-back-spacer{width:40px}.rh-logo{width:38px;height:38px}.rh-school-line1{font-size:13px}.rh-school-line2{font-size:12px}.rh-school-tagline{font-size:11px}}@media (min-width: 1024px){.rh-header{display:none}}.sc-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 4px #0000000f;overflow:hidden}.sc-gold-bar{height:3px;background:linear-gradient(90deg,#c9a84c,#e8c97a)}.sc-identity{display:flex;align-items:center;gap:14px;padding:18px 20px 0}.sc-avatar{font-size:40px;width:56px;height:56px;border-radius:14px;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sc-name-block{display:flex;flex-direction:column;gap:2px}.sc-name{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1}.sc-cash{font-size:13px;font-weight:500;color:#2a9d4a}.sc-points-block{text-align:center;padding:18px 20px 4px}.sc-points{display:block;font-size:56px;font-weight:700;color:var(--text-primary);line-height:1}.sc-points-label{font-size:12px;color:var(--text-muted);margin-top:6px}.sc-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px 20px 20px}.sc-btn{padding:11px 0;border-radius:10px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s}.sc-btn:hover{opacity:.85}.sc-btn--award{background:#22252e;color:#e8c97a;border:none}.sc-btn--deduct{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border)}.sc-btn--spend{background:var(--red-lt);color:var(--red);border:1px solid var(--red)}.sc-btn--log{background:var(--gold-pale);color:var(--gold);border:1px solid var(--gold)}.action-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:200;display:flex;align-items:flex-end}.action-sheet{background:var(--bg-card);border-radius:20px 20px 0 0;width:100%;max-width:100%;padding-bottom:max(20px,env(safe-area-inset-bottom));animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.action-sheet-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 0}.action-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 0}.action-sheet-title{font-size:16px;font-weight:600;color:var(--text-primary)}.action-sheet-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px;line-height:1}.action-sheet-body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.action-stepper{display:flex;align-items:center;justify-content:center;gap:20px}.action-stepper-btn{width:44px;height:44px;border-radius:12px;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.action-stepper-btn:hover{background:var(--bg-card-hover)}.action-stepper-btn:disabled{opacity:.35;cursor:default}.action-stepper-value{font-size:40px;font-weight:700;color:var(--text-primary);min-width:72px;text-align:center}.action-quick-picks{display:flex;gap:8px;justify-content:center}.action-quick-btn{flex:1;padding:7px 0;border-radius:8px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.action-quick-btn--active{background:var(--gold-pale);border-color:var(--gold);color:var(--gold)}.action-balance{font-size:13px;color:var(--text-muted);text-align:center}.action-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-surface);color:var(--text-primary);font-family:inherit;font-size:14px;resize:none;outline:none;transition:border-color .15s}.action-input:focus{border-color:var(--gold)}.action-input::placeholder{color:var(--text-muted)}.action-sheet-footer{display:flex;gap:10px;padding:0 20px}.action-cancel-btn{flex:1;padding:12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.action-cancel-btn:hover{border-color:var(--gold);color:var(--gold)}.action-confirm-btn{flex:2;padding:12px;border-radius:10px;border:none;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s}.action-confirm-btn:disabled{opacity:.4;cursor:default}.action-confirm-btn--award{background:var(--gold);color:#fff}.action-confirm-btn--deduct{background:#c97c2a;color:#fff}.action-confirm-btn--spend{background:var(--red);color:#fff}@media (min-width: 400px) and (max-width: 1023px){.action-sheet-title{font-size:18px}.action-sheet-body{padding:24px 20px;gap:16px}.action-stepper{gap:24px}.action-stepper-btn{width:48px;height:48px;font-size:24px}.action-stepper-value{font-size:32px;min-width:80px}.action-quick-btn{padding:10px 16px;font-size:14px}.action-balance{font-size:14px}.action-input{font-size:16px;padding:12px 14px}.action-sheet-footer{padding:0 20px}.action-cancel-btn{padding:14px;font-size:15px}.action-confirm-btn{padding:16px;font-size:16px}}.log-page{min-height:100vh;background:var(--bg-base)}.log-body{margin-top:56px;padding:20px 16px}.log-student-bar{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:16px;box-shadow:0 1px 4px #0000000f}.log-avatar{font-size:32px;line-height:1}.log-student-info{display:flex;flex-direction:column;gap:2px}.log-student-name{font-size:16px;font-weight:700;color:var(--text-primary)}.log-student-balance{font-size:13px;color:var(--text-muted)}.log-empty{text-align:center;padding:60px 0}.log-empty-icon{font-size:40px;margin-bottom:12px}.log-empty-text{font-size:15px;color:var(--text-muted)}.log-list{list-style:none;display:flex;flex-direction:column;gap:8px}.log-entry{display:flex;align-items:flex-start;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px #0000000d}.log-entry-icon{font-size:20px;flex-shrink:0;margin-top:1px}.log-entry-body{flex:1;min-width:0}.log-entry-note{font-size:14px;font-weight:500;color:var(--text-primary);word-break:break-word}.log-entry-note--empty{color:var(--text-muted);font-style:italic;font-weight:400}.log-entry-date{font-size:11px;color:var(--text-muted);margin-top:3px}.log-entry-pts{font-size:15px;font-weight:700;flex-shrink:0;margin-top:1px}.log-entry-pts--award{color:#2a9d4a}.log-entry-pts--deduct{color:#c97c2a}.log-entry-pts--spend{color:var(--red)}@media (min-width: 400px) and (max-width: 1023px){.log-body{padding:24px 20px}.log-student-bar{padding:16px 18px}.log-avatar{font-size:36px}.log-student-name{font-size:18px}.log-student-balance{font-size:14px}.log-list{gap:10px}.log-entry{padding:14px 16px}.log-entry-icon{font-size:22px}.log-entry-note{font-size:15px}.log-entry-date{font-size:13px}.log-entry-pts{font-size:16px}}.rl-page{min-height:100vh;background:var(--bg-base)}.rl-body{margin-top:56px;padding:20px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}@media (min-width: 400px) and (max-width: 1023px){.rl-body{padding:24px 20px}.sc-identity{padding:22px 22px 0;gap:16px}.sc-avatar{font-size:44px;width:60px;height:60px}.sc-name{font-size:22px}.sc-cash{font-size:14px}.sc-points-block{padding:22px 22px 4px}.sc-points{font-size:60px}.sc-points-label{font-size:13px}.sc-actions{padding:18px 22px 22px;gap:10px}.sc-btn{padding:14px 0;font-size:14px}}@media (min-width: 1024px){.rl-body{margin-top:0;max-width:none;padding:24px 28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}}.placeholder-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:40px 24px;text-align:center}.placeholder-tab-icon{font-size:48px;margin-bottom:16px;line-height:1}.placeholder-tab-text{font-size:16px;font-weight:500;color:var(--text-secondary)}.placeholder-tab-sub{font-size:13px;font-weight:300;color:var(--text-muted);margin-top:6px}.st-tab{padding:20px 16px 24px;display:flex;flex-direction:column;gap:20px}.st-grid,.st-col{display:flex;flex-direction:column;gap:20px}.st-col>section{display:block}.st-section-label{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px}.st-section-label:after{content:"";flex:1;height:1px;background:var(--border)}.st-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 1px 4px #22252e0a}.st-row{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--border);background:none;border-left:none;border-right:none;border-top:none;width:100%;font-family:inherit;text-align:left;color:var(--text-primary)}.st-row:last-child{border-bottom:none}.st-row--clickable{cursor:pointer;transition:background .15s}.st-row--clickable:hover:not(:disabled){background:var(--bg-card-hover)}.st-row--clickable:disabled{opacity:.6;cursor:default}.st-row--add{cursor:pointer;transition:background .15s}.st-row--add:hover{background:var(--gold-pale)}.st-row--danger:hover{background:var(--red-lt)}.st-row-icon{width:32px;height:32px;border-radius:8px;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif}.st-row-icon--emoji{background:var(--gold-pale)}.st-row-icon--add{background:transparent;border:1.5px dashed var(--gold);color:var(--gold);font-family:inherit;font-weight:400;font-size:20px;line-height:1}.st-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.st-row-title{font-size:14px;font-weight:500;color:var(--text-primary);line-height:1.2}.st-row-name{flex:1;min-width:0}.st-row-title--add{color:var(--gold);font-weight:600}.st-row-title--danger{color:var(--red)}.st-row-sub{font-size:12px;color:var(--text-muted);line-height:1.3}.st-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.st-row-edit{background:none;border:none;color:var(--gold);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s,color .15s}.st-row-edit:hover{background:var(--gold-pale);color:var(--gold-light)}.st-row-remove{background:none;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1;transition:background .15s,color .15s}.st-row-remove:hover{background:var(--red-lt);color:var(--red)}.st-toggle{width:44px;height:26px;border-radius:13px;background:var(--border);border:none;cursor:pointer;position:relative;flex-shrink:0;padding:0;transition:background .2s}.st-toggle:before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;transition:transform .2s}.st-toggle--on{background:var(--gold)}.st-toggle--on:before{transform:translate(18px)}.st-chevron{font-size:18px;color:var(--text-muted);line-height:1;flex-shrink:0}.st-badge{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--gold);background:var(--gold-pale);border-radius:10px;padding:3px 8px;flex-shrink:0}.st-subjects{padding:10px 14px 14px;border-bottom:1px solid var(--border);background:var(--bg-surface)}.st-subjects-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.st-subjects-tab{background:transparent;border:1px solid var(--border);border-radius:16px;padding:5px 12px;font-size:12px;font-family:inherit;color:var(--text-secondary);cursor:pointer}.st-subjects-tab--active{background:var(--gold-pale);border-color:var(--gold);color:var(--gold);font-weight:600}.st-subject-chip{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:6px;font-size:13px;color:var(--text-primary)}.st-subject-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:2px 6px}.st-subject-remove:hover{color:var(--red)}.st-subjects-add{width:100%;background:transparent;border:1px dashed var(--gold);color:var(--gold);border-radius:8px;padding:8px;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;margin-top:4px}.st-input{flex:1;min-width:0;background:var(--bg-card);border:1px solid var(--gold);border-radius:6px;padding:6px 10px;font-size:14px;font-family:inherit;color:var(--text-primary);outline:none}.st-input--inline{background:var(--bg-surface);padding:4px 8px}.st-confirm-msg{flex:1;font-size:13px;color:var(--text-secondary)}.st-confirm-actions{display:flex;gap:6px;flex-shrink:0}.st-confirm-yes{background:var(--red);color:#fff;border:none;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.st-confirm-cancel{background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit}.st-version{text-align:center;padding:16px 0 8px;color:var(--text-muted)}.st-version-name{font-size:12px;font-weight:500;margin-bottom:2px}.st-version-line{font-size:11px;font-weight:300}@media (min-width: 400px) and (max-width: 1023px){.st-section-label{font-size:11px}.st-row{padding:16px}.st-row-title{font-size:15px}.st-row-sub{font-size:12px}.st-row-icon{width:36px;height:36px;font-size:18px}.st-toggle{width:48px;height:28px}.st-toggle:before{top:4px;left:4px;width:20px;height:20px}.st-toggle--on:before{transform:translate(20px)}.st-version-name{font-size:13px}.st-version-line{font-size:12px}}@media (min-width: 1024px){.st-tab{padding:24px 28px 32px}.st-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}}
