:root{--paper:#f7f8fb;--paper-2:#eef1f6;--surface:#ffffff;--ink:#1a2744;--ink-soft:#2a3a5c;--muted:#5c6b86;--border:#d4dae6;--accent:#3b6fb0;--accent-hover:#2f5c96;--accent-soft:#e4eef8;--cta:#b8d4e8;--cta-ink:#1a2744;--cta-hover:#a3c7e0;--warn:#9a6b16;--warn-soft:#f5edd8;--danger:#a63d3d;--danger-soft:#f5e4e4;--lesson:#eef3f9;--free:#e4eef8;--radius:12px;--radius-sm:8px;--radius-pill:999px;--font-sans:var(--font-figtree),system-ui,sans-serif;--font-display:var(--font-sans);--shadow:0 1px 2px rgba(26,39,68,0.05);--shadow-hover:0 2px 8px rgba(26,39,68,0.08);--exam-bg:#e4f0f8;--exam-border:#3b8fc4;--exam-pill-bg:#d5e8f4;--exam-pill-fg:#1f6a94;--event-bg:#eef0f7;--event-border:#4a5f9a;--event-pill-bg:#e2e6f2;--event-pill-fg:#3d5085;--logo-bg:#1a2744;--logo-fg:#f7f8fb;--logo-accent:#b8d4e8;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-snap:cubic-bezier(0.22,1,0.36,1);--duration-fast:0.12s;--duration-normal:0.18s;--duration-slow:0.28s;--ring:0 0 0 2px var(--surface),0 0 0 4px var(--accent);color-scheme:light}html[data-theme=dark]{--paper:#1a2230;--paper-2:#232b3a;--surface:#2a3344;--ink:#f0f3f8;--ink-soft:#d0d8e6;--muted:#9aa6bc;--border:#3a465a;--accent:#8bb8d9;--accent-hover:#a0c6e2;--accent-soft:#2a3648;--cta:#8bb8d9;--cta-ink:#101820;--cta-hover:#a0c6e2;--warn:#d4a84a;--warn-soft:#3f3520;--danger:#e07070;--danger-soft:#422828;--lesson:#2a3342;--free:#1e2836;--shadow:0 1px 2px rgba(0,0,0,0.22);--shadow-hover:0 2px 8px rgba(0,0,0,0.28);--exam-bg:#1e3444;--exam-border:#4aa8d0;--exam-pill-bg:#244056;--exam-pill-fg:#8fd0e8;--event-bg:#242c3c;--event-border:#7a8fc4;--event-pill-bg:#2e3648;--event-pill-fg:#b4c0e4;--logo-bg:#1a2744;--logo-fg:#f7f8fb;--logo-accent:#8bb8d9;color-scheme:dark}*{box-sizing:border-box}html{background-color:var(--paper)}html:before,html[data-theme=dark]:before{content:none}body,html{margin:0;min-height:100%;min-height:100dvh;scroll-behavior:smooth;background-color:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overflow-x:hidden;max-width:100%}html.pwa-standalone,html.pwa-standalone body{overscroll-behavior-y:none;height:100%;min-height:100%;min-height:-webkit-fill-available}html.ios-pwa,html.ios-pwa body{height:100%;height:-webkit-fill-available;min-height:100%;min-height:-webkit-fill-available}html.pwa-standalone{height:var(--app-height,100%)}html.pwa-standalone body{height:100%}html.pwa-standalone:has(.shell),html.pwa-standalone:has(.shell) body{overflow:hidden}html.pwa-standalone:has(.shell) .shell:not(.shell-messages){height:100%;max-height:100%;min-height:0;overflow:hidden}html.pwa-standalone:has(.shell) .shell:not(.shell-messages) .shell-content{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}html.ios-pwa:not(:has(.shell)),html.ios-pwa:not(:has(.shell)) body,html.pwa-standalone:not(:has(.shell)),html.pwa-standalone:not(:has(.shell)) body{height:auto;min-height:var(--app-height,100%);min-height:-webkit-fill-available;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}html.pwa-standalone .mobile-nav,html.pwa-standalone .mobile-top,html.pwa-standalone .mobile-top-actions,html.pwa-standalone .mobile-top-actions a,html.pwa-standalone .mobile-top-actions button,html.pwa-standalone .topnav,html.pwa-standalone .topnav-actions,html.pwa-standalone .topnav-actions a,html.pwa-standalone .topnav-actions button{user-select:none;-webkit-user-select:none}a{color:inherit;text-decoration:none}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button,input,select,textarea{font:inherit}.display{font-family:var(--font-display)}.shell{--mobile-nav-h:0px;--mobile-top-h:72px;--topnav-h:72px;--shell-pad-x:clamp(1.15rem,3.5vw,4rem);--shell-pad-y:clamp(1.75rem,2.8vw,3.25rem);--app-title:clamp(1.7rem,1.15rem + 1.15vw,3.1rem);--app-lead:clamp(1rem,0.88rem + 0.35vw,1.3rem);--app-section:clamp(1.1rem,0.92rem + 0.45vw,1.7rem);--lesson-subject:clamp(0.95rem,0.8rem + 0.35vw,1.45rem);--lesson-meta:clamp(0.78rem,0.7rem + 0.2vw,1.05rem);--lesson-time:clamp(0.75rem,0.68rem + 0.18vw,1rem);min-height:100vh;min-height:100dvh;max-width:100%;background:var(--paper)}.shell,.shell-content{display:flex;flex-direction:column;width:100%;overflow-x:hidden}.shell-content{min-width:0;flex:1}.sidebar{display:none!important}.mobile-nav{display:none}.topnav{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:var(--topnav-h);padding:calc(.55rem + var(--sat)) max(var(--shell-pad-x),var(--sar)) .55rem max(var(--shell-pad-x),var(--sal));border-bottom:1px solid var(--border)}.topnav,html.pwa-standalone .topnav{background:var(--paper)}html.pwa-standalone .topnav:before{content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--sat));height:var(--sat);background:inherit;pointer-events:none}.topnav-brand{display:flex;align-items:center;flex-shrink:0;min-width:0}.topnav-brand .brand-link{padding:.15rem .25rem;min-height:44px;display:flex;align-items:center}.topnav-links{display:none;align-items:center;gap:.15rem;flex:1;justify-content:center;min-width:0;overflow-x:auto;scrollbar-width:none}.topnav-links::-webkit-scrollbar{display:none}.topnav-link{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .7rem;border-radius:var(--radius-sm);color:var(--muted);font-weight:550;font-size:.875rem;letter-spacing:-.015em;white-space:nowrap;position:relative;transition:color .15s ease,background .15s ease}.topnav-link:hover{background:transparent;color:var(--ink)}.topnav-link:active{transform:none}.topnav-link.active{background:transparent;color:var(--ink);font-weight:700;box-shadow:none}.topnav-link.active:after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.15rem;height:2px;border-radius:1px;background:var(--accent);display:block}.topnav-link-icon{display:none;line-height:0;flex-shrink:0;opacity:.88}.topnav-link.active .topnav-link-icon{opacity:1;color:var(--accent)}.topnav-link-label{display:inline-flex;align-items:center}.topnav-link-label-short{display:none}.topnav-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0;margin-left:auto}.topnav-actions-cluster{display:inline-flex;align-items:center;gap:.1rem;padding:0;border-radius:0;background:transparent;border:none}.topnav-admin{display:none;align-items:center;gap:.4rem;padding:.42rem .85rem;border-radius:var(--radius-sm);font-size:.84rem;font-weight:650;letter-spacing:-.01em;color:var(--cta-ink);background:var(--cta);transition:background .15s ease}.topnav-admin-icon{display:inline-flex;line-height:0}.topnav-admin.active,.topnav-admin:hover{background:var(--cta-hover)}.topnav-admin:active{transform:none}.topnav-profile{display:flex;align-items:center;border-radius:999px;padding:2px;transition:box-shadow .15s ease}.topnav-profile:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.topnav-profile.active{box-shadow:0 0 0 2px var(--accent)}.topnav-more{display:none}.topnav-logout{display:none;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--muted);cursor:pointer;font-family:inherit;flex-shrink:0;transition:color .15s ease,background .15s ease}.topnav-logout:hover{background:color-mix(in srgb,var(--danger-soft) 80%,var(--surface));color:var(--danger)}.topnav-more .mobile-top-menu-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--ink)}.topnav-more .mobile-top-menu-btn.active,.topnav-more .mobile-top-menu-btn:hover{background:var(--paper-2);color:var(--ink);border-color:color-mix(in srgb,var(--ink) 18%,transparent)}@media (min-width:901px){.topnav-brand{flex:1 1 0}.topnav-links{flex:0 1 auto;width:max-content;max-width:min(100%,52rem);padding:0;margin-inline:.35rem;background:transparent;border:none;border-radius:0;box-shadow:none;gap:.1rem}.topnav-link-icon,.topnav-links{display:inline-flex}.topnav-link-icon svg{width:1.05rem;height:1.05rem}.topnav-actions{flex:1 1 0;justify-content:flex-end;margin-left:0}.topnav-admin{display:inline-flex}.topnav-more{display:none!important}.topnav-logout{display:inline-flex}.topnav-more-primary{display:none}.mobile-top{display:none!important}.topnav .notif-bell{width:38px;height:38px;border-radius:var(--radius-sm);color:var(--muted)}.topnav .notif-bell:hover{background:var(--paper-2);color:var(--ink)}.topnav .notif-bell svg{width:18px;height:18px}}@media (min-width:901px) and (max-width:1180px){.topnav{gap:.5rem;padding-inline:max(.85rem,var(--sal)) max(.85rem,var(--sar))}.topnav-brand .logo{gap:.45rem}.topnav-brand .logo-mark{width:36px;height:36px}.topnav-brand .logo-title{font-size:1.15rem}.topnav-brand .logo-sub{display:none}.topnav-links{gap:.1rem;padding:0}.topnav-link{font-size:.8rem;gap:.3rem;padding:.4rem .55rem}.topnav-link-label-full{display:none}.topnav-link-label-short{display:inline}.topnav-link-label:not(:has(.topnav-link-label-short)) .topnav-link-label-full{display:inline}.topnav-actions{gap:.35rem}.topnav-admin{padding:.38rem .7rem;font-size:.8rem}}@media (min-width:1181px){.topnav-link{padding:.48rem .95rem;font-size:.9rem}}.brand-link{display:block;padding:.15rem .2rem}.logo{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.logo-mark{display:block;border-radius:22%;flex-shrink:0}.logo-wordmark{display:flex;flex-direction:column;line-height:1.15;min-width:0}.logo-title{font-family:var(--font-display);font-size:clamp(1.25rem,1rem + .45vw,1.65rem);font-weight:800;color:var(--ink);letter-spacing:-.04em}.logo-sub{font-size:.68rem;font-weight:600;color:var(--muted);margin-top:1px;letter-spacing:.02em;text-transform:none}.nav-list{display:flex;flex-direction:column;gap:.25rem;flex:1}.nav-link{display:flex;align-items:center;gap:.65rem;padding:.68rem .85rem;border-radius:10px;color:var(--muted);font-weight:500;position:relative;transition:background .18s ease,color .18s ease,transform .12s ease}.nav-link-icon{display:flex;line-height:0;opacity:.85;flex-shrink:0}.nav-link:hover{background:var(--paper-2);color:var(--ink-soft);transform:none}.nav-link.active{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:none}.nav-link.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.nav-link.active .nav-link-icon{opacity:1}.sidebar-footer{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border)}.sidebar-user{font-size:.85rem;margin-bottom:.55rem;font-weight:500}.btn-block,.main{width:100%}.main{flex:1;padding:var(--shell-pad-y,1.75rem) var(--shell-pad-x,clamp(1.15rem,3.5vw,4rem)) clamp(2.5rem,4vw,5rem);max-width:none;min-width:0;box-sizing:border-box}.main:has(.day-view),.main:has(.schedule-wrap),.main:has(.week-grid){padding-inline:clamp(.75rem,2vw,1.75rem);padding-top:clamp(1.35rem,2.4vw,2.25rem)}.main:has(.profile-page),.main:has(.profile-stack){padding-inline:clamp(.85rem,2.2vw,2rem)}body:not(:has(.shell)) .main{max-width:min(72rem,100%);margin-inline:auto}.mobile-top{top:0;z-index:40;align-items:center;justify-content:space-between;gap:.5rem;min-height:var(--mobile-top-h);padding:calc(.35rem + var(--sat)) max(.75rem,var(--sar)) .35rem max(.5rem,var(--sal));border-bottom:1px solid var(--border)}.mobile-top,html.pwa-standalone .mobile-top{position:sticky;background:var(--paper)}html.pwa-standalone .mobile-top:before{content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--sat));height:var(--sat);background:inherit;pointer-events:none}html.pwa-standalone:after{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0);background:color-mix(in srgb,var(--paper) 94%,var(--surface));z-index:39;pointer-events:none}.mobile-top .brand-link{padding:.25rem .35rem;min-height:44px;display:flex;align-items:center}.mobile-top .logo-title{font-size:1.05rem}.mobile-top .logo-sub{display:none}.mobile-top-actions{display:flex;align-items:center;gap:.15rem;position:relative;z-index:2;flex-shrink:0;isolation:isolate;touch-action:manipulation}.mobile-top-menu-btn{appearance:none;border:0;background:transparent;color:var(--muted);width:44px;height:44px;border-radius:12px;display:inline-grid;place-items:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;pointer-events:auto;position:relative;z-index:1;flex-shrink:0;transition:background var(--duration-normal) ease,color var(--duration-normal) ease,transform var(--duration-fast) var(--ease-snap)}.mobile-top-menu-btn.active,.mobile-top-menu-btn:hover{background:var(--accent-soft);color:var(--accent)}.mobile-top-menu-btn:active{transform:scale(.94)}.mobile-top-menu-icon{display:flex;line-height:0}.mobile-profile-link{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;pointer-events:auto;position:relative;z-index:1;transition:box-shadow var(--duration-normal) ease,transform var(--duration-fast) var(--ease-snap)}.mobile-profile-link.active{box-shadow:0 0 0 2px var(--accent)}.mobile-profile-link:active{transform:scale(.94)}.mobile-profile-link .avatar,.mobile-profile-link .avatar-fallback,.mobile-profile-link .avatar-wrap{width:34px;height:34px}.mobile-nav-five{gap:.05rem;padding-left:max(.15rem,var(--sal));padding-right:max(.15rem,var(--sar))}.mobile-nav-five .mobile-nav-link{padding:.38rem .08rem;min-height:50px;font-size:.58rem;gap:.16rem}.mobile-nav-five .mobile-nav-icon svg{width:20px;height:20px}.mobile-admin-link{font-size:.8rem;font-weight:700;color:var(--accent);padding:.55rem .65rem;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}.mobile-admin-link.active,.mobile-admin-link:hover{background:var(--accent-soft)}.mobile-nav{z-index:40;align-items:stretch;justify-content:space-around;gap:.15rem;box-sizing:border-box;width:100%;max-width:100%;margin:0;border-radius:0;min-height:var(--mobile-nav-h);padding-top:.35rem;padding-left:max(.25rem,var(--sal));padding-right:max(.25rem,var(--sar));padding-bottom:max(.35rem,env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--paper) 96%,var(--surface));border-top:1px solid color-mix(in srgb,var(--border) 85%,transparent);flex-shrink:0}.mobile-nav-link{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-width:0;min-height:52px;padding:.4rem .15rem;border-radius:12px;color:var(--muted);font-weight:600;font-size:.64rem;letter-spacing:.01em;-webkit-tap-highlight-color:transparent;transition:background var(--duration-normal) ease,color var(--duration-normal) ease,transform var(--duration-fast) var(--ease-snap),box-shadow var(--duration-normal) ease}.mobile-nav-link:active{transform:scale(.96)}.mobile-nav-link.active{color:var(--accent);background:var(--accent-soft);box-shadow:none}.mobile-nav-link.active:after{content:"";position:absolute;top:4px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:999px;background:var(--accent)}.mobile-nav-link.mobile-nav-primary{font-weight:700}.mobile-nav-link.mobile-nav-primary .mobile-nav-icon{transform:scale(1.08)}.mobile-nav-icon{display:flex;line-height:0}.mobile-nav-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.mobile-nav-link{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none}.mobile-more-root{position:fixed;inset:0;z-index:10050;display:flex;flex-direction:column;justify-content:flex-end}@media (min-width:901px){.mobile-more-root{justify-content:flex-start;align-items:flex-end;padding:calc(var(--topnav-h, 72px) + var(--sat) + .35rem) max(var(--shell-pad-x),1rem) 1rem}.mobile-more-sheet{width:min(22rem,calc(100vw - 2rem));border-radius:18px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);box-shadow:var(--shadow-hover);max-height:min(70vh,520px);padding:.85rem .9rem 1rem;animation:mobile-more-pop .18s var(--ease-out)}.mobile-more-handle{display:none}@keyframes mobile-more-pop{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}}.mobile-more-backdrop{position:absolute;inset:0;border:0;padding:0;margin:0;background:rgba(16,25,18,.45);cursor:pointer}html[data-theme=dark] .mobile-more-backdrop{background:rgba(0,0,0,.55)}.mobile-more-sheet{position:relative;z-index:1;background:var(--surface);border-radius:18px 18px 0 0;border-top:1px solid var(--border);padding:.55rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));box-shadow:0 -12px 40px rgba(16,25,18,.12);max-height:min(78vh,560px);overflow:auto;animation:mobile-more-up .22s ease-out}@keyframes mobile-more-up{0%{transform:translateY(18px);opacity:.6}to{transform:translateY(0);opacity:1}}.mobile-more-handle{width:42px;height:4px;border-radius:999px;background:var(--border);margin:.15rem auto .75rem}.mobile-more-title{margin:0 0 .65rem;font-family:var(--font-display);font-size:1.05rem;font-weight:650;letter-spacing:-.02em}.mobile-more-sections{display:grid;gap:1rem}.mobile-more-extra{padding-top:.15rem}.mobile-more-theme{display:grid;gap:.45rem}.mobile-more-theme .theme-seg{width:100%;justify-content:space-between}.mobile-more-theme .theme-seg-btn{flex:1}.mobile-more-section-label{margin:0 0 .4rem;padding:0 .15rem;font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.mobile-more-list{display:flex;flex-direction:column;gap:.35rem}.mobile-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.mobile-more-grid .mobile-more-link{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.45rem;min-height:5.75rem;padding:.85rem .55rem}.mobile-more-grid .mobile-more-link-icon svg{width:24px;height:24px}.mobile-more-link{display:flex;align-items:center;gap:.85rem;min-height:48px;padding:.65rem .85rem;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--paper) 70%,var(--surface));color:var(--ink);font-weight:600;text-decoration:none}.mobile-more-link-text{flex:1 1 auto;min-width:0}.mobile-more-link-badge{flex-shrink:0;margin-left:auto}button.mobile-more-link{width:100%;font:inherit;cursor:pointer;text-align:inherit}.mobile-more-link.active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--accent-soft);color:var(--accent)}.mobile-more-link-icon{display:inline-flex;color:inherit;line-height:0}.card{background:var(--surface);border:1px solid color-mix(in srgb,var(--border) 88%,transparent);border-radius:var(--radius);padding:1.45rem 1.4rem;box-shadow:none;transition:box-shadow .2s ease,border-color .2s ease}@media (hover:hover){.card:hover{box-shadow:var(--shadow)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--radius-sm);padding:.7rem 1.25rem;min-height:44px;background:var(--cta);color:var(--cta-ink);font-family:var(--font-sans);font-weight:650;cursor:pointer;box-shadow:none;transition:background var(--duration-normal) ease,color var(--duration-normal) ease,border-color var(--duration-normal) ease}.btn:hover{background:var(--cta-hover);box-shadow:none}.btn:active{transform:none;box-shadow:none;filter:brightness(.97)}.btn:focus-visible{box-shadow:var(--ring)}.btn:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none;filter:none}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--ink);box-shadow:none}.btn-ghost:hover{border-color:color-mix(in srgb,var(--ink) 18%,var(--border));box-shadow:none}.btn-ghost:active,.btn-ghost:hover{background:var(--paper-2)}.btn-ink{background:var(--ink);color:var(--paper)}.btn-ink:hover{background:color-mix(in srgb,var(--ink) 88%,#fff);box-shadow:none}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.95)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.85rem;font-weight:500;color:var(--ink-soft)}.field input,.field select,.field textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.72rem .85rem;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.week-grid-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;margin:0;padding:0 0 .5rem}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.7rem,1.1vw,1.6rem);min-width:0;width:100%}.schedule-wrap{display:flex;flex-direction:column;gap:clamp(1rem,1.4vw,1.6rem);width:100%;max-width:none}.schedule-wrap.is-week-switching{opacity:.85;transition:opacity .12s ease}.schedule-week-switching{margin:0;font-size:.85rem}.view-toggle{display:flex;flex-wrap:wrap;gap:.45rem}.day-view{display:flex;flex-direction:column;gap:.75rem}.day-panel{touch-action:pan-y}.day-carousel{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.day-carousel::-webkit-scrollbar{display:none}.day-carousel-panel{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:normal}.day-scroll-indicator{--day-count:5;--day-progress:0;position:relative;height:3px;margin:-.15rem .35rem .1rem;border-radius:99px;background:color-mix(in srgb,var(--border) 65%,transparent);overflow:hidden}.day-scroll-indicator-thumb{position:absolute;top:0;bottom:0;width:calc(100% / var(--day-count));border-radius:99px;background:var(--accent);left:calc((100% - 100% / var(--day-count)) * clamp(0, var(--day-progress), var(--day-count) - 1) / max(var(--day-count) - 1, 1));box-shadow:none;pointer-events:none}.day-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem}.day-strip-item{appearance:none;border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:.4rem .2rem;display:flex;flex-direction:column;align-items:center;gap:.08rem;cursor:pointer;color:var(--muted);min-width:0;min-height:56px;transition:background .15s,border-color .15s,color .15s}.day-strip-item:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.day-strip-item.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:none}.day-strip-item.today:not(.on){border-color:color-mix(in srgb,var(--accent) 50%,var(--border));color:var(--accent);background:var(--accent-soft)}.day-strip-name{font-size:.68rem;font-weight:600;text-transform:capitalize;letter-spacing:.02em;line-height:1}.day-strip-num{font-size:1.05rem;font-weight:700;font-family:var(--font-display);line-height:1.1;color:inherit}.day-strip-count{font-size:.58rem;font-weight:600;opacity:.85;line-height:1;margin-top:.1rem}.day-strip-item.on .day-strip-count{opacity:.95}.day-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.day-nav strong{text-transform:capitalize;font-size:.95rem}.week-toolbar{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;margin-bottom:1rem;align-items:center}.week-toolbar .btn{min-height:44px}.week-toolbar .btn:first-child{justify-self:start}.week-toolbar .btn:nth-child(2){justify-self:center}.week-toolbar .btn:last-child{justify-self:end}.day-empty{padding:.85rem;font-size:.85rem}.day-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:200px;min-width:0;overflow:hidden;box-shadow:none}html[data-theme=dark] .day-col{background:var(--paper);border-color:color-mix(in srgb,var(--border) 70%,transparent)}.day-col.today{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:none}html[data-theme=dark] .day-col.today{background:color-mix(in srgb,var(--accent-soft) 22%,var(--paper))}.day-head{padding:clamp(.65rem,.9vw,1.1rem) clamp(.75rem,1vw,1.2rem);border-bottom:1px solid var(--border);font-size:clamp(.82rem,.7rem + .25vw,1.15rem);font-weight:600;text-transform:capitalize;background:color-mix(in srgb,var(--paper) 80%,var(--surface));letter-spacing:-.01em}.day-progress{padding:.65rem .9rem .55rem;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--accent-soft) 40%,var(--surface));box-shadow:none}.day-progress-track{height:6px;border-radius:999px;background:var(--paper-2);overflow:hidden}.day-progress-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .4s ease}.day-progress-label{margin-top:.35rem;font-size:.72rem;color:var(--muted);font-weight:600}.lesson-block{margin:.45rem .55rem;padding:.65rem .75rem;border-radius:10px;background:var(--lesson);border-left:3px solid var(--accent);box-shadow:none;min-width:0;overflow:hidden;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease}.lesson-block.is-now{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:1px;background:color-mix(in srgb,var(--accent-soft) 60%,var(--lesson));border-left-width:4px;box-shadow:none}.lesson-block.is-next:not(.is-now){outline:1px dashed color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:1px;border-left-style:dashed;box-shadow:none}.lesson-block.is-focus{animation:lesson-focus-pulse 1.1s ease-out 1;outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:1px;box-shadow:none}@keyframes lesson-focus-pulse{0%{outline-color:color-mix(in srgb,var(--accent) 20%,transparent)}to{outline-color:color-mix(in srgb,var(--accent) 50%,transparent)}}.lesson-block.has-subject-color{background:color-mix(in srgb,var(--lesson-custom) 28%,var(--paper));border-left-color:var(--lesson-custom)}.lesson-block.has-subject-color.is-now{background:color-mix(in srgb,var(--lesson-custom) 22%,var(--accent-soft))}.alias-row-color{display:grid;gap:.5rem;position:relative;overflow:visible}.alias-row-color:has(.color-picker-popover){z-index:50}.color-swatch-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.color-swatch{width:1.5rem;height:1.5rem;border-radius:999px;border:2px solid transparent;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 12%,transparent)}.color-swatch.on{border-color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.color-swatch.clear{background:linear-gradient(135deg,transparent 46%,var(--danger) 46%,var(--danger) 54%,transparent 54%),var(--surface)}.color-picker{position:relative;display:inline-flex;flex:0 0 auto}.color-picker-trigger{position:relative;width:2rem;height:2rem;border-radius:999px;border:2px solid transparent;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 12%,transparent)}.color-picker-trigger.on{border-color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.color-picker-trigger.empty{background:conic-gradient(from 0deg,#e11d48,#f59e0b,#84cc16,#14b8a6,#3b82f6,#8b5cf6,#e11d48)}.color-picker-trigger.empty:after{content:"";position:absolute;inset:5px;border-radius:999px;background:var(--surface)}.color-picker-trigger[aria-expanded=true]{border-color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.color-picker-popover{position:absolute;z-index:40;top:calc(100% + 8px);left:0;width:min(16.5rem,calc(100vw - 2.5rem));padding:.9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-hover)}.color-picker-popover.flip{top:auto;bottom:calc(100% + 8px)}.color-wheel{position:relative;margin:0 auto .75rem;user-select:none}.color-wheel,.color-wheel-canvas{width:188px;height:188px;touch-action:none}.color-wheel-canvas{display:block;border-radius:50%;cursor:crosshair;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 10%,transparent)}.color-wheel-marker{position:absolute;width:16px;height:16px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,#000 40%,transparent);transform:translate(-50%,-50%);pointer-events:none}.color-value-field{display:grid;gap:.35rem;margin-bottom:.7rem;font-size:.8rem}.color-value-slider{width:100%;height:.7rem;margin:0;appearance:none;border-radius:999px;outline:none;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}.color-value-slider::-webkit-slider-thumb{appearance:none;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--surface);border:2px solid var(--ink);box-shadow:var(--shadow);cursor:pointer}.color-value-slider::-moz-range-thumb{width:1.05rem;height:1.05rem;border-radius:50%;background:var(--surface);border:2px solid var(--ink);box-shadow:var(--shadow);cursor:pointer}.color-hex-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.7rem}.color-hex-preview{width:1.75rem;height:1.75rem;flex:0 0 1.75rem;border-radius:8px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 12%,transparent)}.color-hex-preview.empty{background:linear-gradient(135deg,transparent 46%,var(--danger) 46%,var(--danger) 54%,transparent 54%),var(--paper)}.color-hex-input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;letter-spacing:.02em;background:var(--paper);border:1px solid var(--border);border-radius:8px;padding:.45rem .65rem;color:var(--ink);outline:none}.color-hex-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.color-picker-presets{padding-top:.15rem}.color-warn{margin:0;font-size:.8rem}.lesson-block.is-past{opacity:.55}.lesson-block.is-past.is-now{opacity:1}.lesson-block.swap{background:linear-gradient(135deg,color-mix(in srgb,var(--danger-soft) 55%,var(--surface)) 0,var(--warn-soft) 55%);border-left-color:var(--warn)}.swap-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .45rem;font-size:.95rem;line-height:1.3;letter-spacing:-.01em}.swap-from{text-decoration:line-through;color:var(--danger);font-weight:600;opacity:.85}.swap-arrow{color:var(--muted);font-weight:700}.swap-to{font-weight:700;color:var(--ink)}.lesson-block.compact .swap-line{font-size:.82rem}.day-summary{display:flex;flex-direction:column;gap:.2rem;margin:0 0 .75rem;padding:.85rem 1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);min-height:4.35rem;box-sizing:border-box}.day-summary-title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-.02em;text-transform:capitalize;color:var(--ink)}.day-summary-line{font-size:.9rem;color:var(--muted);font-weight:500;min-height:1.35em}.schedule-controls{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-bottom:.85rem}.schedule-week-count{margin:0;font-size:.9rem;font-weight:600}.schedule-controls-spacer{flex:1 1 auto;min-width:0}.schedule-view-hint{margin:0;font-size:.8rem;flex:1 1 auto;text-align:right}.schedule-week-lessons{margin:0;font-size:.88rem;white-space:nowrap;flex:1 1 auto;text-align:right}.lesson-block.cancelled{background:var(--danger-soft);border-left-color:var(--danger)}.lesson-block.cancelled .subject{text-decoration:line-through;color:var(--danger)}.lesson-block.cancelled .meta.fritime-as{color:var(--ink-soft);font-weight:600;margin-top:.2rem}.lesson-block.changed{background:var(--warn-soft);border-left-color:var(--warn)}.lesson-block.exam{background:var(--exam-bg);border-left-color:var(--exam-border)}.lesson-block.event{background:var(--event-bg);border-left-color:var(--event-border);overflow:visible}.lesson-block.fritime{background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface));border-left-color:color-mix(in srgb,var(--accent) 45%,var(--muted));border-left-style:dashed;opacity:.92}.lesson-block.fritime .subject{color:var(--accent);font-weight:600}.lesson-block.redacted{background:var(--paper-2);border-left-color:var(--muted);border-left-style:solid}.lesson-block.redacted .subject{color:var(--muted);font-weight:600}.lesson-block.day-note{background:var(--paper);border-left-color:var(--muted);border-style:dashed}.lesson-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem;margin-bottom:.28rem;min-width:0}.lesson-head-pills{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.absence-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;padding:.1rem .35rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.02em;color:#7a1f1f;background:color-mix(in srgb,#c45c5c 22%,transparent);border:1px solid color-mix(in srgb,#c45c5c 45%,transparent)}.lesson-block.has-absence{box-shadow:inset 2px 0 0 color-mix(in srgb,#c45c5c 70%,transparent)}.absence-list{gap:1rem}.absence-day-list,.absence-list{display:flex;flex-direction:column}.absence-day-list{list-style:none;margin:.5rem 0 0;padding:0;gap:.55rem}.absence-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;padding:.65rem 0;border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.absence-row-main,.absence-row-meta{display:flex;flex-direction:column;gap:.15rem}.absence-row-meta{align-items:flex-end;text-align:right}.absence-mins{font-weight:700;font-variant-numeric:tabular-nums}.assignment-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.65rem}.assignment-list-compact{gap:.45rem}.assignment-row{display:flex;gap:.75rem;align-items:flex-start;padding:.7rem 0;border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.assignment-row.is-overdue .assignment-title{color:#8a2a2a}.assignment-status{flex-shrink:0;margin-top:.1rem;color:var(--muted)}.assign-icon.on-time{color:#2f7a4a}.assign-icon.late{color:#9a6b1a}.assign-icon.missing{color:#a33a3a}.assign-icon.pending{color:var(--muted)}.assignment-body{min-width:0;flex:1}.assignment-title{font-weight:650;line-height:1.3}.assignment-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;margin-top:.2rem;font-size:.88rem}.assignment-graded{color:var(--ink);font-weight:600}.assignment-status-label{margin-top:.2rem;font-size:.82rem}.lesson-time{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;font-size:var(--lesson-time,.78rem);font-weight:700;color:var(--muted);letter-spacing:.01em;min-width:0;max-width:100%;flex-shrink:1}.lesson-time-range{white-space:nowrap}.now-dot{display:inline-flex;align-items:center;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:.12rem .4rem;border-radius:999px;background:var(--accent);color:#fff;line-height:1.2}.lesson-block .subject{display:block;font-weight:600;font-size:var(--lesson-subject,.95rem);line-height:1.3;overflow-wrap:break-word;word-break:normal;hyphens:auto;max-width:100%;letter-spacing:-.01em}.kind-pill{flex:0 0 auto;max-width:100%;font-size:.62rem;font-weight:700;padding:.14rem .4rem;border-radius:4px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;line-height:1.2}.kind-pill.cancelled{background:var(--danger-soft);color:var(--danger)}.kind-pill.changed{background:var(--warn-soft);color:var(--warn)}.kind-pill.exam{background:var(--exam-pill-bg);color:var(--exam-pill-fg)}.kind-pill.event{background:var(--event-pill-bg);color:var(--event-pill-fg)}.kind-pill.day-note{background:var(--paper-2);color:var(--muted)}.lesson-block .subtitle{font-size:.8rem;color:var(--ink-soft);margin-top:.15rem;overflow-wrap:anywhere}.lesson-block .meta{font-size:var(--lesson-meta,.76rem);color:var(--muted);margin-top:.25rem;overflow-wrap:anywhere}.day-lessons{padding:.25rem 0 .45rem;gap:.1rem}.day-lessons,.day-notes{display:flex;flex-direction:column}.day-notes{padding:.2rem .35rem .35rem;gap:.25rem}.day-lessons-timed{position:relative;display:block;margin:0 .2rem .35rem;padding:0;overflow:hidden;isolation:isolate}.day-lessons-timed.is-compact{margin-left:.12rem;margin-right:.12rem}.day-lessons-empty .day-empty{inset:0;margin:0;z-index:1}.day-lessons-empty .day-empty,.pause-band{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none}.pause-band{left:.15rem;right:.15rem;z-index:0;border-radius:8px;box-sizing:border-box}.pause-band.pause{background:color-mix(in srgb,var(--paper-2) 70%,transparent);border:1px dashed color-mix(in srgb,var(--border) 75%,transparent)}html[data-theme=dark] .pause-band.pause{background:color-mix(in srgb,var(--border) 14%,transparent);border-color:color-mix(in srgb,var(--border) 40%,transparent)}.pause-band.timeshift{background:color-mix(in srgb,var(--border) 35%,transparent);border:none;border-radius:3px}.pause-band-label{font-size:.62rem;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);opacity:.85;user-select:none}.pause-band.timeshift .pause-band-label{font-size:.52rem;transform:scale(.92)}.pause-band.with-event-gutter{right:calc(36% + .35rem)}.now-line{position:absolute;left:0;right:0;z-index:4;height:0;border-top:2px solid var(--accent);pointer-events:none;box-shadow:none}.now-line:before{content:"";position:absolute;left:-3px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.timed-lesson-slot{--slot-col:0;--slot-cols:1;position:absolute;left:calc(100% * var(--slot-col) / var(--slot-cols));width:calc(100% / var(--slot-cols));z-index:1;padding:1px 2px;box-sizing:border-box;overflow:hidden;min-width:0}.day-lessons-timed.has-overlay-week .timed-lesson-slot:not(.event-overlay-card){left:calc((100% - 16px) * var(--slot-col) / var(--slot-cols));width:calc((100% - 16px) / var(--slot-cols))}.timed-lesson-slot.slot-with-event-overlay{left:calc(62% * var(--slot-col) / var(--slot-cols));width:calc(62% / var(--slot-cols))}.timed-lesson-slot.event-overlay-card{left:auto;right:0;width:36%;z-index:2}.event-overlay-mark{position:absolute;top:0;right:1px;width:14px;z-index:9;pointer-events:none}.event-overlay-mark-bar{right:4px;bottom:0;width:3px;border-radius:99px}.event-overlay-mark-bar,.event-overlay-mark-btn{position:absolute;top:0;background:var(--event-border)}.event-overlay-mark-btn{pointer-events:auto;left:0;width:14px;height:14px;margin:0;padding:0;border:0;border-radius:50%;color:#fff;font-size:.62rem;font-weight:800;font-style:italic;font-family:var(--font-sans);line-height:14px;text-align:center;cursor:pointer}.event-overlay-mark-btn:hover,.event-overlay-mark-btn[aria-expanded=true]{filter:brightness(1.15)}.overlay-event-popover{position:fixed;overflow-x:hidden;overflow-y:auto}.overlay-event-popover-head{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:.35rem}.overlay-event-popover-time{font-size:.78rem;font-weight:650;font-variant-numeric:tabular-nums;color:var(--event-pill-fg)}.overlay-event-popover-title{font-weight:700;font-size:.92rem;line-height:1.35;overflow-wrap:anywhere}.overlay-event-popover-desc{margin-top:.4rem;font-size:.82rem;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}.timed-lesson-slot:has(.lesson-block.is-open){z-index:8;overflow:visible}.timed-lesson-slot .lesson-block.fill{height:100%;width:100%;max-width:100%;min-height:0;min-width:0;margin:0;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}.timed-lesson-slot .lesson-block.fill>.lesson-event-label,.timed-lesson-slot .lesson-block.fill>.lesson-extras,.timed-lesson-slot .lesson-block.fill>.lesson-head,.timed-lesson-slot .lesson-block.fill>.meta,.timed-lesson-slot .lesson-block.fill>.subject,.timed-lesson-slot .lesson-block.fill>.subtitle,.timed-lesson-slot .lesson-block.fill>.swap-line{flex-shrink:0}.timed-lesson-slot .lesson-block.fill.event>.meta,.timed-lesson-slot .lesson-block.fill.exam>.meta{flex-shrink:0;overflow:visible;white-space:normal;text-overflow:unset}.timed-lesson-slot .lesson-block.fill.event .subject,.timed-lesson-slot .lesson-block.fill.exam .subject{flex-shrink:0;min-height:0;white-space:normal;display:block;overflow:visible;line-height:1.25}.timed-lesson-slot.event-overlay-card .lesson-head{align-items:flex-start;gap:.2rem}.timed-lesson-slot.event-overlay-card .lesson-time{flex:1;min-width:0}.timed-lesson-slot.event-overlay-card .lesson-head-pills{flex-shrink:0}.timed-lesson-slot.event-overlay-card .lesson-time-range{white-space:nowrap;font-size:.68rem;line-height:1.2}.lesson-head:has(+.lesson-event-label){margin-bottom:.1rem}.lesson-event-label{margin:0 0 .2rem;min-width:0}.lesson-event-label .kind-pill{display:inline-flex;max-width:100%}.timed-lesson-slot.event-overlay-card .lesson-block.fill{padding:.45rem .5rem}.timed-lesson-slot.event-overlay-card .lesson-block.fill.event .subject,.timed-lesson-slot.event-overlay-card .lesson-block.fill.exam .subject{font-size:.78rem;overflow-wrap:anywhere;word-break:break-word}.timed-lesson-slot .lesson-block.fill.is-open{height:100%;overflow:visible}.timed-lesson-slot .lesson-block.fill.event{overflow:hidden}.timed-lesson-slot .lesson-block.fill.event.is-open{overflow:visible}.timed-lesson-slot .lesson-block.fill:hover:not(.is-now){transform:none}.timed-lesson-slot .lesson-block.fill .lesson-extras{margin-top:auto;position:relative;z-index:2}.timed-lesson-slot .lesson-block.fill.event .lesson-extras,.timed-lesson-slot .lesson-block.fill.exam .lesson-extras{margin-top:.25rem}.timed-lesson-slot .lesson-block.fill.event .lesson-extra-toggle,.timed-lesson-slot .lesson-block.fill.exam .lesson-extra-toggle{min-height:0;padding:.15rem 0}.lesson-extra-popover{position:fixed;margin-top:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:var(--shadow-hover)}.timed-lesson-slot .lesson-block.fill:not(.event):not(.exam) .subject,.timed-lesson-slot .lesson-block.fill>.meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timed-lesson-slot .lesson-block.fill.compact .subtitle{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.timed-lesson-slot .lesson-block.fill.is-open{display:flex;flex-direction:column;gap:0}.lesson-overlap-stack.is-multi{margin:.35rem .45rem;padding:.2rem 0;border-radius:12px;background:color-mix(in srgb,var(--paper-2) 55%,transparent);border:1px dashed color-mix(in srgb,var(--border) 85%,var(--muted))}.lesson-overlap-stack.is-multi .lesson-block{margin:.28rem .35rem}.lesson-overlap-stack.is-compact.is-multi{margin:.25rem .35rem}.lesson-overlap-stack.is-compact.is-multi .lesson-block{margin:.22rem .28rem}.day-col.no-head{border:none;box-shadow:none;min-height:0}.day-col.no-head,html[data-theme=dark] .day-col.no-head{background:transparent}.day-col.no-head .day-lessons{padding-top:0}.day-view .lesson-block,.day-view .lesson-overlap-stack.is-multi{margin-left:0;margin-right:0}.lesson-block.compact{padding:clamp(.4rem,.55vw,.75rem) clamp(.45rem,.6vw,.85rem)}.lesson-block.compact .subject{font-size:clamp(.8rem,.65rem + .28vw,1.2rem);line-height:1.25;font-weight:600}.lesson-block.compact .lesson-time{font-size:clamp(.66rem,.58rem + .15vw,.95rem)}.lesson-block.compact .lesson-time-range{white-space:nowrap}.lesson-block.compact .meta,.lesson-block.compact .subtitle{font-size:clamp(.66rem,.58rem + .15vw,.95rem)}.lesson-block.compact .kind-pill{font-size:.55rem;padding:.1rem .28rem}.lesson-block.compact .now-dot{font-size:.55rem;padding:.08rem .32rem}.free-slot-list{display:grid;gap:.65rem}.free-slot-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem .95rem;box-shadow:var(--shadow)}.free-slot-day-head{font-weight:600;font-size:.9rem;text-transform:capitalize;margin-bottom:.5rem;color:var(--ink-soft)}.free-slot-chips{display:flex;flex-wrap:wrap;gap:.4rem}.free-slot-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border-radius:var(--radius-sm);background:var(--free);color:var(--accent);font-size:.82rem;font-weight:600;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.lesson-extras{margin-top:.4rem}.lesson-extra-toggle{appearance:none;border:none;background:transparent;color:var(--accent);font-size:.82rem;font-weight:700;padding:.45rem 0;min-height:44px;cursor:pointer;text-align:left}.lesson-extra-body{margin-top:.4rem;padding:.45rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;font-size:.78rem;line-height:1.4;max-width:100%;overflow-wrap:anywhere;word-break:break-word;box-sizing:border-box}.homework-topic{margin-bottom:.35rem}.homework-text{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;color:var(--ink-soft);max-width:100%}.homework-text .rich-html{white-space:normal;display:block}.homework-text .rich-html div,.homework-text .rich-html p{margin:0 0 .45em}.homework-text .rich-html div:last-child,.homework-text .rich-html p:last-child{margin-bottom:0}.homework-text .rich-html ol,.homework-text .rich-html ul{margin:.35em 0 .45em;padding-left:1.2em}.admin-messages-bubble-body a,.admin-report-text a,.homework-link,.homework-text a,.messages-bubble-text a,.rich-html a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-word;pointer-events:auto;position:relative;z-index:1}.lesson-privacy{display:inline-flex;align-items:center;position:relative}.lesson-privacy-icon{appearance:none;border:none;background:transparent;color:var(--ink-soft);width:1.35rem;height:1.35rem;padding:0;margin:0;border-radius:999px;display:grid;place-items:center;cursor:pointer;opacity:.55;flex-shrink:0}.lesson-privacy-icon:focus-visible,.lesson-privacy-icon:hover{opacity:1;background:color-mix(in srgb,var(--ink) 8%,transparent);outline:none}.lesson-privacy-icon.on{opacity:1;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.lesson-privacy-icon:disabled{cursor:wait;opacity:.4}.lesson-privacy-err{position:absolute;top:100%;right:0;z-index:2;margin-top:.15rem;padding:.15rem .35rem;border-radius:6px;font-size:.65rem;white-space:nowrap;color:var(--danger);background:var(--paper);border:1px solid var(--border);box-shadow:0 4px 12px color-mix(in srgb,var(--ink) 12%,transparent)}.lesson-block.is-private{outline:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:-2px}.homework-translate-btn{appearance:none;border:none;background:transparent;color:var(--accent);font-size:inherit;font-weight:700;padding:.35rem 0;min-height:36px;cursor:pointer;text-align:left}.homework-translate-btn:disabled{opacity:.65;cursor:wait}.homework-translate-error{margin-top:.25rem;color:var(--danger);font-size:.75rem}.homework-translate-da{margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--border);white-space:pre-wrap}.doc-section{margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--border)}.doc-section:first-child{margin-top:0;padding-top:0;border-top:none}.doc-section-label{font-size:.68rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.35rem}.doc-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.doc-download{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink);text-decoration:none;font-weight:500;line-height:1.25}.doc-download:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.doc-download-name{min-width:0;overflow-wrap:anywhere;font-size:.74rem;color:var(--ink)}.doc-download-action{flex-shrink:0;font-size:.68rem;font-weight:700;color:var(--accent)}.profile-page{display:flex;flex-direction:column}.profile-page,.profile-stack{gap:1.5rem;width:100%;min-width:0}.profile-stack{display:grid;max-width:none}@media (min-width:1100px){.profile-stack{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.6rem 1.75rem;align-items:start}.profile-stack>#profil-account,.profile-stack>.mobile-logout-card{grid-column:1/-1}}.profile-stack .card{min-width:0;scroll-margin-top:5.5rem}.profile-stack .card h2{font-size:1.2rem;margin-top:0}.profile-stack .card>.muted{font-size:.9rem;margin-top:0;overflow-wrap:anywhere}.profile-hero{display:flex;align-items:center;gap:1.1rem}.profile-hero-avatar{appearance:none;position:relative;flex:0 0 auto;padding:0;border:0;background:none;cursor:pointer;border-radius:50%}.profile-hero-avatar:disabled{cursor:wait;opacity:.7}.profile-hero-avatar .avatar{display:grid}.profile-hero-avatar-edit{position:absolute;left:50%;bottom:.2rem;transform:translateX(-50%);font-size:.68rem;font-weight:700;letter-spacing:.02em;padding:.12rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--ink) 82%,transparent);color:#fff;line-height:1.2}.profile-hero-text{min-width:0}.profile-kicker{margin:0 0 .15rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.profile-hero .page-title{margin:0;font-size:clamp(1.35rem,1.1rem + .8vw,1.85rem)}.profile-hero-meta{margin:.3rem 0 0;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}.profile-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.profile-card-head h2{margin-bottom:.25rem}.profile-card-head .muted{margin:0}.profile-status-pill{flex:0 0 auto;font-size:.72rem;font-weight:700;padding:.22rem .55rem;border-radius:var(--radius-sm);background:var(--paper-2);color:var(--muted);white-space:nowrap}.profile-status-pill.on{background:var(--accent-soft);color:var(--accent)}.profile-hint{font-size:.85rem}.notify-row.is-off .notify-row-label{color:var(--muted)}.profile-logout-mobile{display:none;width:100%;margin-top:1.1rem;min-height:44px}.check-list{display:grid;gap:.35rem;margin:.5rem 0 .75rem}.notify-list{display:grid;gap:.15rem;margin:.65rem 0 .85rem}.notify-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:48px;padding:.35rem 0}.notify-row-label{margin:0;font-weight:500;color:var(--ink-soft);line-height:1.35}.notify-switch{position:relative;flex-shrink:0;width:48px;height:28px;padding:0;border:none;border-radius:999px;background:color-mix(in srgb,var(--muted) 35%,var(--wash));cursor:pointer;transition:background .18s ease}.notify-switch.is-on{background:var(--accent,#3b6fb0)}.notify-switch:disabled{opacity:.55;cursor:not-allowed}.notify-switch:focus-visible{outline:2px solid var(--accent,#3b6fb0);outline-offset:3px}.notify-switch-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .18s ease}.notify-switch.is-on .notify-switch-thumb{transform:translateX(20px)}.mail-fmt-toolbar{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.45rem}.mail-composer{min-height:160px;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);line-height:1.5;outline:none}.mail-composer:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.mail-composer:empty:before{content:attr(data-placeholder);color:var(--muted)}.mail-recipient-list{display:grid;gap:.2rem;max-height:240px;overflow:auto;margin:0 0 .75rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.check-row{display:flex;align-items:center;gap:.65rem;margin:0;min-height:44px;padding:.35rem 0;font-weight:500;color:var(--ink-soft);cursor:pointer}.check-row input[type=checkbox]{width:1.15rem;height:1.15rem;flex-shrink:0;accent-color:var(--accent)}.theme-toggle-compact{margin:0;display:inline-flex;align-items:center;align-self:center}.theme-toggle-compact .theme-seg{display:inline-flex;grid-template-columns:none;align-items:center;min-width:0;width:auto;height:40px;gap:2px;padding:3px;box-sizing:border-box}.theme-toggle-compact .theme-seg-btn{width:32px;height:32px;min-height:32px;min-width:32px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;line-height:0;box-shadow:none}.theme-toggle-compact .theme-seg-btn.active{box-shadow:none}.auth-footer-stack{margin-top:1rem;display:grid;gap:.85rem;justify-items:center}.auth-footer-stack .auth-legal-links{margin-top:0}.auth-theme-toggle,.auth-theme-toggle .theme-seg{width:auto}.topnav-theme-toggle{flex-shrink:0;display:inline-flex;align-items:center}.topnav-theme-toggle .theme-seg{background:color-mix(in srgb,var(--paper) 70%,var(--surface))}.landing-theme-toggle{display:inline-flex;align-items:center}.landing-theme-toggle .theme-seg{height:44px;background:color-mix(in srgb,var(--surface) 75%,var(--paper))}.landing-theme-toggle .theme-seg-btn{width:36px;height:36px;min-width:36px;min-height:36px}.theme-seg-btn svg{display:block;flex-shrink:0}.theme-field{margin:.75rem 0 .25rem}.theme-field.theme-toggle-compact{margin:0}.theme-field-label{display:block;font-size:.85rem;font-weight:600;color:var(--ink-soft);margin-bottom:.45rem}.theme-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:.3rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--paper)}.theme-seg-btn{appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;font-size:.85rem;min-height:36px;min-width:36px;padding:0 .35rem;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.theme-seg-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--surface) 70%,transparent)}.theme-seg-btn.active{background:var(--surface);color:var(--accent);box-shadow:none}.theme-field>.muted{margin:.2rem 0 .55rem;font-size:.88rem}.profile-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}.profile-actions .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.25}.alias-list{gap:.65rem}.alias-list,.alias-row{display:grid;min-width:0}.alias-row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:.5rem;align-items:center}.alias-row .alias-source{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere;word-break:break-word;min-width:0}.alias-row>input{width:100%;min-width:0;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.72rem .85rem;color:var(--ink);outline:none;font-size:1rem}.alias-row>input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field input,.field select,.field textarea{font-size:1rem;max-width:100%}.field input[type=file]{width:100%;max-width:100%;padding:.55rem 0;border:none;box-shadow:none;background:transparent}.sync-stamp{font-size:.82rem;color:var(--muted)}.sync-stamp,.sync-stamp-block{margin:0 0 1rem}.sync-stamp-block .sync-stamp{margin:0;display:inline-block;border-radius:999px;padding:.28rem .62rem;background:color-mix(in srgb,var(--paper-2) 80%,var(--surface));border:1px solid color-mix(in srgb,var(--border) 85%,transparent);font-size:.78rem;font-weight:600}.sync-stamp-block.stale .sync-stamp{color:var(--warn);background:color-mix(in srgb,var(--warn-soft) 75%,var(--surface));border-color:color-mix(in srgb,var(--warn) 28%,var(--border))}.sync-stamp-block.waiting .sync-stamp{border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.sync-stamp-hint,.sync-stamp-warn{margin:.35rem 0 0;font-size:.85rem;line-height:1.45}.sync-stamp-warn{color:var(--warn)}.sync-stamp-hint{color:var(--muted)}.sync-stamp-hint a,.sync-stamp-warn a{color:var(--accent);font-weight:600;text-decoration:underline}.homework-sync-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;margin:0}.homework-sync-bar .btn{min-height:40px;padding:.4rem .75rem;font-size:.86rem}.homework-sync-bar .sync-stamp-block{margin:0}.homework-sync-bar>p{margin:0;flex-basis:100%;font-size:.88rem}.notif-root{z-index:80;flex-shrink:0}.notif-bell,.notif-root{position:relative;touch-action:manipulation}.notif-bell{z-index:1;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:10px;background:transparent;color:var(--ink-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;pointer-events:auto}.notif-bell svg{pointer-events:none}.notif-bell:hover{background:var(--accent-soft);color:var(--accent)}.notif-badge{position:absolute;top:4px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#d12b2b;color:#fff;font-size:.65rem;font-weight:700;line-height:17px;text-align:center;pointer-events:none}.notif-panel{position:fixed;z-index:240;overflow:hidden;display:flex;flex-direction:column;visibility:hidden;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-hover);max-width:min(360px,calc(100% - 24px));box-sizing:border-box}html.notif-open,html.notif-open body{overflow-x:hidden!important;overscroll-behavior:none}.notif-panel.is-placed{visibility:visible;pointer-events:auto;overscroll-behavior:contain}.notif-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem .85rem;border-bottom:1px solid var(--border);flex-shrink:0}.notif-panel-head .btn{font-size:.75rem;padding:.3rem .5rem}.notif-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:0}.notif-list li button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:.75rem .85rem;border-bottom:1px solid var(--border);cursor:pointer;color:inherit}.notif-list li.unread button{background:var(--accent-soft)}.notif-summary{display:block;font-size:.86rem;line-height:1.35}.notif-time{display:block;margin-top:.25rem;font-size:.72rem;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--paper-2);border:none;flex-shrink:0;display:block}.avatar-md{width:48px;height:48px}.avatar-lg{width:96px;height:96px}.avatar-wrap{position:relative;flex-shrink:0;border-radius:50%;overflow:hidden;aspect-ratio:1}.avatar-fallback{color:var(--ink-soft)}.person-list{display:grid;gap:.55rem}.person-row{gap:.65rem;padding:.8rem .9rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);transition:transform .14s ease,box-shadow .18s ease,border-color .18s ease}.person-row,.person-row-link{display:flex;align-items:center}.person-row-link{gap:.85rem;flex:1;min-width:0;text-decoration:none;color:inherit;border-radius:calc(var(--radius-sm) - 2px)}.person-row-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.person-row:has(.person-row-link):hover{transform:none;box-shadow:none;border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}a.person-row:hover{transform:none;box-shadow:none;border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}a.person-row:active{transform:none}.person-row-static{margin-bottom:.85rem;cursor:default}.person-row.free{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:var(--free)}.person-row-body{flex:1;min-width:0}.person-row-name{font-weight:600;letter-spacing:-.01em}.dev-badge{display:inline-flex;align-items:center;vertical-align:.12em;margin-left:.28rem;font-size:.62rem;font-weight:700;font-family:var(--font-sans,inherit);letter-spacing:.04em;text-transform:uppercase;line-height:1.2;padding:.16rem .42rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}.page-title .dev-badge{vertical-align:middle;margin-left:.4rem;font-size:.68rem;padding:.2rem .5rem}.person-row-meta{color:var(--muted);font-size:.85rem;margin-top:.12rem;overflow-wrap:anywhere}.person-row-birthday{border-color:color-mix(in srgb,#f5a623 45%,var(--border));background:color-mix(in srgb,#f5a623 6%,var(--surface))}.person-row-birthday-badge{margin-left:.35rem;font-size:.95rem;line-height:1}.birthday-banner{margin-bottom:1rem;padding:1rem 1.1rem;border-color:color-mix(in srgb,#f5a623 40%,var(--border));background:color-mix(in srgb,#f5a623 8%,var(--surface))}.birthday-banner-title{margin:0 0 .75rem;font-size:1.05rem}.birthday-banner-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.birthday-banner-link{display:flex;align-items:center;gap:.75rem;padding:.55rem .65rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background .15s ease}.birthday-banner-link:hover{background:color-mix(in srgb,#f5a623 12%,transparent)}.birthday-banner-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.birthday-banner-name{font-weight:600}.birthday-banner-meta{color:var(--muted);font-size:.85rem}.birthday-banner-emoji{font-size:1.25rem;flex-shrink:0}.elev-profile{max-width:32rem;margin:0 auto}.elev-profile-back{margin:0 0 1rem;font-size:.9rem}.elev-profile-back a{color:var(--muted);text-decoration:none}.elev-profile-back a:hover{color:var(--accent)}.elev-profile-card{padding:1.35rem}.elev-profile-header{display:flex;align-items:center;gap:1.1rem;margin-bottom:1.25rem}.elev-profile-intro{flex:1;min-width:0;text-align:left}.elev-profile-intro .page-title{margin:0;font-size:1.45rem;line-height:1.2}.elev-profile-username{color:var(--muted);margin:.2rem 0 0;font-size:.95rem}.elev-profile-class{display:inline-block;margin:.5rem 0 0;padding:.2rem .55rem;border-radius:999px;font-size:.82rem;font-weight:600;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}.elev-profile-birthday-today{margin:.45rem 0 0;font-size:.88rem;font-weight:600;color:color-mix(in srgb,#f5a623 80%,var(--text))}.elev-profile-facts{display:grid;gap:.65rem;margin:0 0 1rem;padding:0}.elev-profile-fact{padding:.75rem .9rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 5%,var(--surface));border:1px solid var(--border)}.elev-profile-fact dt{margin:0 0 .2rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.elev-profile-fact dd{margin:0;font-size:.95rem;line-height:1.4}.elev-profile-fact-sub{display:block;margin-top:.15rem;font-size:.82rem;color:var(--muted)}.elev-profile-bio-card{margin-bottom:1rem;padding:.9rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);text-align:left}.elev-profile-bio-title{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.elev-profile-bio-card p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.elev-profile-actions{display:flex;flex-wrap:wrap;gap:.5rem}.profile-birth-form{margin-bottom:1rem}.profile-birth-form .btn{margin-top:.25rem}@media (max-width:480px){.elev-profile-header{flex-direction:column;text-align:center}.elev-profile-intro{text-align:center}}.profile-birth-label{margin:0 0 1rem}.profile-bio-count{margin:.35rem 0 .75rem;font-size:.85rem}.admin-birth-input{max-width:11rem;font-size:.9rem}.person-row-pin{flex-shrink:0;width:2.4rem;height:2.4rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;padding:0;transition:color .15s ease,border-color .15s ease,background .15s ease}.person-row-pin:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 36%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.person-row-pin:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.person-row-pin.is-on{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.person-row.is-pinned{border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.class-group-pinned .class-group-title{color:var(--ink-soft)}.school-pin-error{margin:0 0 .85rem}.search-field{margin:0 0 1rem;position:relative}.search-field-icon{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search-field input[type=search]{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem .7rem 2.35rem;color:var(--ink);outline:none}.search-field input[type=search]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-field input[type=search]::-webkit-search-cancel-button{cursor:pointer}.badge{display:inline-block;flex-shrink:0;font-size:.72rem;font-weight:700;padding:.28rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);letter-spacing:.01em}.badge.busy{background:var(--warn-soft);color:var(--warn)}.muted{color:var(--muted)}.page-title{font-family:var(--font-display);font-size:var(--app-title,clamp(1.6rem,3vw,2.15rem));margin:0 0 .55rem;letter-spacing:-.03em;color:var(--ink);line-height:1.12;font-weight:750}.page-lead{color:var(--muted);margin:0 0 1.35rem;line-height:1.5;font-size:var(--app-lead,1rem)}.page-lead-tight{margin-bottom:.55rem}.skema-top{margin-bottom:1.5rem}.skema-top-primary{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:.65rem}.skema-top .page-title{margin-bottom:.2rem}.skema-week-label{margin:0;font-size:.95rem;line-height:1.4}.skema-top-primary .week-toolbar{flex:0 0 auto;margin:0;width:auto;display:inline-grid;grid-template-columns:auto auto auto;gap:.25rem}.skema-top-primary .week-toolbar .btn{min-width:2.75rem;min-height:40px;padding-inline:.65rem}.skema-top-primary .week-toolbar .week-toolbar-icon{display:inline-flex;align-items:center;justify-content:center;padding-inline:.45rem}.skema-top-secondary{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .85rem}.skema-top-secondary .sync-stamp-block{margin:0}.skema-top-secondary .sync-stamp{margin:0;font-size:.8rem}.homework-sync-compact{display:inline-flex;align-items:center;gap:.55rem}.homework-sync-link{appearance:none;background:none;border:0;padding:0;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;color:var(--accent)}.homework-sync-link:disabled{opacity:.6;cursor:default}.skema-free-line{margin:0 0 1.15rem;font-size:.9rem;line-height:1.45}.invite-card{margin-bottom:1.35rem;padding:1rem 1.05rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:none}.invite-card-compact{margin-bottom:1rem;padding:.85rem .95rem}.invite-card-title{margin:0 0 .25rem;font-size:1.05rem;font-weight:700}.invite-card-lead{margin:0 0 .75rem;font-size:.9rem;max-width:40rem}.invite-card-actions{display:flex;flex-wrap:wrap;gap:.45rem}.invite-card-url{margin:.65rem 0 0;font-size:.82rem;overflow-wrap:anywhere}.invite-card-url code{font-size:.82rem}.discover-card{margin:0 0 1.15rem;padding:.95rem 1rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface));scroll-margin-top:calc(var(--mobile-top-h, 56px) + var(--sat, 0px) + .5rem)}.discover-head{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.discover-art{width:44px;height:44px;object-fit:contain;flex-shrink:0;border-radius:12px;animation:empty-art-in .6s ease both}.discover-head>div{flex:1;min-width:0}.discover-title{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.discover-lead{margin:.2rem 0 0;font-size:.88rem;max-width:38rem}.discover-dismiss{flex-shrink:0;min-height:40px;margin-left:auto}.discover-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.discover-list li{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem .75rem;align-items:center;padding:.7rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.discover-list li.done{opacity:.78}.discover-check{display:inline-flex;color:var(--muted)}.discover-check.done{color:var(--accent)}.discover-copy{min-width:0}.discover-copy strong{display:block;font-size:.92rem}.discover-copy span{display:block;margin-top:.15rem;color:var(--muted);font-size:.8rem;line-height:1.4}.discover-ios-help{margin:.4rem 0 0;font-size:.8rem;line-height:1.4}.discover-done-label{font-size:.78rem;font-weight:650;color:var(--accent)}.discover-list .btn{min-height:40px;padding-inline:.85rem}.discover-msg{margin:.65rem 0 0;font-size:.85rem;line-height:1.4;color:var(--ink-soft)}@media (max-width:640px){.discover-list li{grid-template-columns:auto 1fr}.discover-list li .btn,.discover-list li .discover-done-label{grid-column:2;justify-self:start}}.skema-free-fold{margin:0 0 1.35rem;padding:.55rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.skema-free-fold>summary{cursor:pointer;font-weight:650;color:var(--ink-soft);list-style:none}.skema-free-fold>summary::-webkit-details-marker{display:none}.skema-free-fold>summary:before{content:"▸ ";color:var(--accent)}.skema-free-fold[open]>summary:before{content:"▾ "}.fade-up:first-child{animation-delay:.02s}.fade-up:nth-child(2){animation-delay:.07s}.fade-up:nth-child(3){animation-delay:.12s}.fade-up:nth-child(4){animation-delay:.17s}.fade-up:nth-child(5){animation-delay:.22s}.page-section .muted:first-of-type{margin-top:.15rem}.mobile-nav-link.active .mobile-nav-icon{transform:none}.status-header{margin-bottom:1.75rem}.status-pills{display:flex;flex-wrap:wrap;gap:.5rem}.status-pill{display:inline-flex;align-items:baseline;gap:.35rem;padding:.4rem .7rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;border:1px solid var(--border);background:var(--surface);box-shadow:none}.status-pill strong{font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:-.02em}.status-pill.free{background:var(--free);border-color:color-mix(in srgb,var(--accent) 30%,var(--border));color:var(--accent)}.status-pill.busy{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 25%,var(--border));color:var(--warn)}.page-section{margin-bottom:2rem}.section-title{font-family:var(--font-display);font-size:var(--app-section,1.2rem);font-weight:600;letter-spacing:-.02em;margin:0 0 .75rem;color:var(--ink)}.section-sub{margin:-.35rem 0 .85rem;color:var(--muted);font-size:.9rem}.compare-hint{margin:0 0 1.25rem}.compare-overlap{margin-bottom:2rem;padding:1rem 1.05rem 1.1rem;background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 28%,var(--border));border-radius:var(--radius);box-shadow:none}.compare-overlap-head{margin-bottom:.35rem}.compare-person{margin-bottom:2rem}.overlap-slot{border-left-color:var(--warn)!important;background:color-mix(in srgb,var(--warn-soft) 70%,var(--surface))!important}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fade-up .42s var(--ease-out) both}@media (prefers-reduced-motion:reduce){.fade-up{animation:none}body,html{scroll-behavior:auto}.chip:active,.mobile-nav-link:active,.nav-link:hover,a.person-row:hover{transform:none}}.error{color:var(--danger);font-size:.9rem}.error .action-message-link{color:inherit;text-decoration-color:currentColor}.success{color:var(--accent);font-size:.9rem}.auth-page{min-height:100vh;min-height:100dvh;flex-direction:column;padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--paper)}.auth-page,.auth-visual{display:flex;color:var(--ink)}.auth-visual{position:relative;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;min-height:auto;padding:calc(.75rem + var(--sat)) clamp(1rem,4vw,3rem) .75rem;background:color-mix(in srgb,var(--paper) 92%,var(--surface));border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent);overflow:hidden}.auth-visual:before{content:none}.auth-visual>*{position:relative;z-index:1}.auth-visual .logo-sub,.auth-visual .logo-title{color:var(--ink)}.auth-visual .logo-sub{opacity:.7}.auth-visual-copy,.auth-visual>p{display:none}.auth-visual-copy h1{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);line-height:1.15;margin:0 0 .85rem;max-width:14ch;font-weight:700}.auth-visual-copy p{margin:0;max-width:36ch;color:var(--muted);line-height:1.55;font-size:1.05rem}@media (min-width:901px){.auth-page{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(380px,1.05fr);overflow:hidden}.auth-visual{display:grid;grid-template-rows:auto 1fr auto;align-items:start;justify-items:start;gap:0;min-height:100dvh;padding:clamp(2.25rem,5vw,3.5rem);border-bottom:none;color:var(--logo-fg);background:var(--logo-bg);animation:none}.auth-visual:after,.auth-visual:before{content:none}.auth-visual .brand-link,.auth-visual>.logo{margin-bottom:0}.auth-visual .logo-title{color:var(--logo-fg)}.auth-visual .logo-sub{opacity:.85;color:var(--logo-accent)}.auth-visual-copy{display:block;align-self:center;max-width:12em;padding:1.5rem 0;animation:none}.auth-visual-copy h1{color:var(--logo-fg);max-width:none;font-size:clamp(2.1rem,3.2vw,3.1rem);line-height:1.12;letter-spacing:-.02em;text-wrap:balance}.auth-visual-copy h1:after{content:"";display:block;width:3.25rem;height:4px;margin-top:1.15rem;border-radius:99px;background:var(--logo-accent)}.auth-visual-copy p{margin-top:1.1rem;max-width:28ch;color:color-mix(in srgb,var(--logo-accent) 78%,var(--logo-fg));font-size:1.05rem;line-height:1.5}.auth-visual>p{display:block;margin:0;font-size:.88rem;opacity:.75;color:var(--logo-accent)}.auth-panel{min-height:100dvh;overflow-y:auto}}@keyframes auth-visual-in{0%{opacity:.65;filter:saturate(.85)}to{opacity:1;filter:none}}.auth-panel{display:grid;place-items:center;flex:1;width:100%;padding:clamp(1.5rem,4vw,3rem) 1.25rem calc(1.5rem + env(safe-area-inset-bottom, 0px));background:transparent}.auth-box{width:min(400px,100%);padding:clamp(1.35rem,3.5vw,1.85rem);border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--border) 88%,transparent);background:var(--surface);box-shadow:var(--shadow)}.auth-box .btn,.auth-box .btn:hover{box-shadow:none}.auth-box h1{font-family:var(--font-display);font-size:1.65rem;margin:0 0 .35rem}.auth-box .auth-lead{color:var(--muted);margin:0 0 1.5rem;line-height:1.45}.auth-wait-notice{margin:0 0 1.1rem;padding:.85rem .95rem;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--warn) 35%,var(--border));background:color-mix(in srgb,var(--warn-soft) 80%,var(--surface));color:var(--ink)}.auth-wait-notice strong{display:block;font-size:.95rem;margin-bottom:.25rem}.auth-wait-notice p{margin:0;font-size:.88rem;line-height:1.45;color:var(--ink-soft,var(--ink))}.auth-wait-hint{margin:.75rem 0 0;font-size:.86rem;line-height:1.4}.auth-divider{margin:1rem 0 .75rem;text-align:center;color:var(--muted);font-size:.85rem}.auth-microsoft-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;margin-top:.35rem}.auth-microsoft-logo{width:20px;height:20px;flex-shrink:0}.auth-role-choice{display:grid;gap:.75rem;margin-top:.5rem}.auth-role-choice .btn{width:100%}.auth-sso-info{margin:.65rem 0 0;padding:.75rem .85rem;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--ink);font-size:.9rem;line-height:1.45}.auth-email-split{display:flex;align-items:stretch;width:100%;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.auth-email-split:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.auth-email-split input{flex:1 1 auto;min-width:0;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent;padding:.72rem .85rem}.auth-email-split input:focus{outline:none;box-shadow:none!important}.auth-email-domain{display:inline-flex;align-items:center;flex-shrink:0;padding:0 .85rem 0 .35rem;font-size:.92rem;font-weight:600;color:var(--muted);background:color-mix(in srgb,var(--paper-2) 70%,var(--surface));border-left:1px solid var(--border);user-select:none;white-space:nowrap}.field-hint{margin:0;font-size:.8rem;line-height:1.35}.required-avatar-backdrop{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:max(1rem,var(--sal)) max(1rem,var(--sar)) max(1rem,var(--sab));background:color-mix(in srgb,var(--ink) 48%,transparent);overflow-y:auto;-webkit-overflow-scrolling:touch}.required-avatar-modal{width:min(420px,100%);margin:auto;display:grid;gap:.85rem}.required-avatar-hint{margin:0;font-size:.82rem}.image-crop-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:start center;align-content:start;overflow-y:auto;padding:max(1rem,env(safe-area-inset-top,0px)) 1rem max(1rem,env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--ink) 48%,transparent)}@media (min-height:720px){.image-crop-backdrop{place-items:center;align-content:center}}.image-crop-modal{width:min(24rem,100%);display:grid;gap:.85rem;margin:0}.image-crop-title{margin:0;font-size:1.25rem}.image-crop-lead{margin:0;font-size:.9rem}.image-crop-viewport{position:relative;width:min(280px,100%);aspect-ratio:1;margin-inline:auto;overflow:hidden;border-radius:12px;border:1px solid var(--border);background:var(--ink);touch-action:none;cursor:grab;user-select:none}.image-crop-viewport.rounded{border-radius:12px}.image-crop-viewport:active{cursor:grabbing}.image-crop-img{left:50%;top:50%;max-width:none;transform:translate(-50%,-50%)}.image-crop-hole,.image-crop-img{position:absolute;pointer-events:none}.image-crop-hole{inset:0;border-radius:50%;box-shadow:0 0 0 999px color-mix(in srgb,var(--ink) 52%,transparent);border:2px solid color-mix(in srgb,var(--paper) 78%,transparent)}.image-crop-hole-rounded{border-radius:12px}.image-crop-zoom{display:grid;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--muted)}.image-crop-zoom input[type=range]{width:100%;accent-color:var(--accent)}.image-crop-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.skema-reminder{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem 1rem;padding:.7rem .9rem;margin-bottom:1.35rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface)}.skema-reminder-body{flex:1;min-width:200px}.skema-reminder-body strong{display:block;margin-bottom:.2rem}.skema-reminder-body p{margin:0;font-size:.9rem}.skema-reminder-btn{flex-shrink:0}.admin-stat-hero-lead{margin:.25rem 0 0;font-size:.88rem}.admin-stat-hero-links{display:flex;flex-wrap:wrap;gap:.45rem}.admin-stat-hero-grid{margin-top:.75rem}.admin-stat-highlight{background:var(--wash);border-radius:10px;padding:.75rem .85rem}.admin-completion-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.85rem}.admin-completion-head{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.35rem;font-size:.9rem}.admin-completion-link{display:inline-block;margin-top:.35rem;font-size:.82rem}.auth-footer-link{display:block;text-align:center;margin-top:1rem;color:var(--accent);font-weight:600;font-size:.92rem}.auth-footer-link+.auth-footer-link{margin-top:.55rem}.auth-legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem 1rem;margin-top:1.35rem;font-size:.82rem}.auth-legal-links .cookie-settings-link,.auth-legal-links a{color:var(--muted);text-decoration:none}.auth-legal-links .cookie-settings-link:hover,.auth-legal-links a:hover{color:var(--accent);text-decoration:underline}.auth-consent{display:flex;gap:.65rem;align-items:flex-start;margin:.75rem 0 .25rem;font-size:.88rem;line-height:1.4;color:var(--ink-soft)}.auth-consent input{margin-top:.2rem;flex-shrink:0}.auth-consent a{color:var(--accent);font-weight:600}.legal-page{min-height:100dvh;background:var(--paper);color:var(--ink)}.topnav-actions-guest{gap:.45rem}.topnav-auth-btn{min-height:40px;padding:.45rem .95rem;font-size:.88rem;white-space:nowrap}.topnav-auth-btn.btn-ghost{border:1px solid color-mix(in srgb,var(--ink) 14%,transparent)}.legal-page-inner{width:min(42rem,100%);margin-inline:auto}.legal-page-inner.is-wide{width:min(72rem,100%)}.legal-prose{color:var(--ink-soft);line-height:1.6;font-size:1rem}.legal-prose h2{font-family:var(--font-display);color:var(--ink);font-size:1.2rem;margin:1.5rem 0 .5rem;letter-spacing:-.02em;font-weight:700}.legal-prose h2:first-child{margin-top:0}.legal-prose h3{font-family:var(--font-display);color:var(--ink);font-size:1.05rem;margin:1.15rem 0 .4rem}.legal-prose p{margin:0 0 .9rem}.legal-prose ul{margin:0 0 1rem;padding-left:1.25rem}.legal-prose li{margin-bottom:.4rem}.legal-prose a{color:var(--accent);font-weight:600}.legal-prose a.btn{color:var(--cta-ink);text-decoration:none;font-weight:650}.legal-prose a.btn-ghost{color:var(--ink);background:transparent}.legal-prose a.btn-ghost:hover{color:var(--ink);background:var(--paper-2)}.public-seo{width:min(42rem,100%);margin-inline:auto;padding:1.75rem max(1.15rem,var(--sal)) 2.75rem max(1.15rem,var(--sar));color:var(--ink-soft);line-height:1.6}.public-seo h2{font-family:var(--font-display);color:var(--ink);font-size:1.2rem;margin:1.5rem 0 .5rem;letter-spacing:-.02em;font-weight:700}.public-seo h2:first-child{margin-top:0}.public-seo p{margin:0 0 .9rem}.public-seo ul{margin:0 0 1rem;padding-left:1.25rem}.public-seo li{margin-bottom:.55rem}.public-seo a{color:var(--accent);font-weight:600}.auth-seo-wrap{background:var(--paper)}.auth-seo-wrap,.sr-seo{border-top:1px solid var(--border)}.sr-seo{width:100%;max-width:42rem;margin:2.25rem 0 0;padding:1.5rem 0 0}.shell-footer-meta{margin:.85rem 0 0;font-size:.8rem;line-height:1.45}.shell-footer-meta a{color:var(--accent)}.shell-legal-links{display:flex;flex-wrap:wrap;gap:.35rem .85rem;font-size:.78rem}.shell-footer{padding:1.15rem var(--shell-pad-x,1.5rem) calc(1.35rem + var(--sab));border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.shell-legal-links .cookie-settings-link,.shell-legal-links .shell-tips-link,.shell-legal-links a{color:var(--muted);text-decoration:none}.shell-legal-links .cookie-settings-link:hover,.shell-legal-links .shell-tips-link:hover,.shell-legal-links a:hover{color:var(--accent)}.shell-tips-link{appearance:none;background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--muted)}.admin-audit-list{display:grid;gap:.65rem;max-height:420px;overflow:auto}.admin-audit-row{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .75rem;background:var(--paper)}.admin-audit-row.level-security{border-color:#e0b4b4;background:var(--danger-soft)}.admin-audit-row.level-warn{border-color:#e0d0a8;background:var(--warn-soft)}.admin-audit-meta{display:flex;flex-wrap:wrap;gap:.4rem .75rem;align-items:center;font-size:.8rem;margin-bottom:.25rem}.admin-audit-level{text-transform:uppercase;letter-spacing:.04em;font-weight:700;font-size:.72rem}.admin-audit-level.level-security{color:var(--danger)}.admin-audit-level.level-warn{color:var(--warn)}.admin-audit-level.level-info{color:var(--accent)}.admin-audit-meta code{font-size:.78rem;background:color-mix(in srgb,var(--ink) 8%,transparent);padding:.1rem .35rem;border-radius:4px}.admin-audit-body{font-size:.88rem}.admin-audit-details{margin-top:.25rem;font-size:.78rem;word-break:break-word;white-space:pre-wrap}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}.chip-row-spaced,.class-group{margin-bottom:1.25rem}.class-group-title{margin:0 0 .65rem;font-size:.95rem;font-weight:650;letter-spacing:.02em;color:var(--muted)}.chip-groups{display:grid;gap:.85rem;margin-bottom:1.25rem}.chip-group-label{font-size:.8rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}.admin-shell{display:grid;grid-template-columns:15.5rem minmax(0,1fr);gap:0 1.75rem;align-items:start;min-width:0}.admin-sidebar{position:sticky;top:calc(var(--topnav-h, 64px) + var(--sat) + .35rem);max-height:calc(100dvh - var(--topnav-h, 64px) - var(--sat) - 1rem);overflow-y:auto;border-right:1px solid color-mix(in srgb,var(--border) 85%,transparent);padding:.35rem 1rem 1rem 0;scrollbar-width:thin}html.pwa-standalone .admin-sidebar{top:.35rem;max-height:calc(100dvh - 1rem)}.admin-sidebar-brand{display:flex;align-items:center;gap:.7rem;margin:0 0 1.15rem;padding:.15rem .35rem .95rem;border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.admin-sidebar-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;border-radius:.55rem;background:var(--ink);color:var(--paper);font-size:.72rem;font-weight:800;letter-spacing:.04em}.admin-sidebar-brand-text{display:grid;gap:.1rem;min-width:0}.admin-sidebar-brand-text strong{font-size:.95rem;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.admin-sidebar-brand-text span{font-size:.72rem;color:var(--muted);font-weight:600}.admin-content{min-width:0;display:grid;gap:1.15rem;padding-bottom:1.5rem}.admin-mobile-bar{display:none}.admin-layout,.admin-main,.admin-sticky-chrome{display:contents}.admin-rail{gap:1rem;padding:0;border:none;background:transparent;overflow:visible}.admin-rail,.admin-rail-group{display:flex;flex-direction:column}.admin-rail-group{gap:.3rem}.admin-rail-label{font-size:.65rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:0 .55rem}.admin-rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.admin-rail-link{display:block;padding:.48rem .65rem;border-radius:var(--radius-sm);color:var(--ink-soft);text-decoration:none;font-size:.9rem;font-weight:600;transition:background .12s ease,color .12s ease}.admin-rail-link:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}.admin-rail-link.active{background:color-mix(in srgb,var(--accent) 14%,var(--paper));color:var(--ink);box-shadow:inset 3px 0 0 var(--accent)}.admin-mobile-nav,.admin-mobile-nav-wrap{display:none}.admin-header{display:grid;gap:.3rem;padding:.15rem 0 .85rem;border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent);margin-bottom:.15rem}.admin-eyebrow{margin:0;font-size:.72rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.admin-title{margin:0;font-family:var(--font-display);font-size:clamp(1.5rem,2.2vw,1.95rem);font-weight:650;letter-spacing:-.02em;line-height:1.15}.admin-lead{margin:.15rem 0 0;color:var(--muted);font-size:.95rem;max-width:42rem;line-height:1.45}.admin-note{margin:0;font-size:.9rem}.admin-entity-title{margin:.35rem 0 0;font-family:var(--font-display);font-size:1.25rem;font-weight:650;letter-spacing:-.02em}.admin-messages{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);height:min(70vh,720px);min-height:26rem;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--paper)}.admin-messages-inbox,.admin-messages-reader{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--paper)}.admin-messages-inbox{border-right:1px solid var(--border)}.admin-messages-toolbar{display:grid;gap:.55rem;padding:.85rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 70%,var(--paper))}.admin-messages-search{width:100%}.admin-messages-type-row{display:flex;flex-wrap:wrap;gap:.35rem}.admin-messages-type-chip{appearance:none;border:1px solid var(--border);background:var(--paper);color:var(--ink-soft);font-size:.75rem;font-weight:650;padding:.28rem .55rem;border-radius:999px;cursor:pointer}.admin-messages-type-chip.on{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 14%,var(--paper));color:var(--accent)}.admin-messages-err{margin:.5rem .85rem 0}.admin-messages-conv-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1}.admin-messages-empty,.admin-messages-placeholder{padding:1.25rem 1rem;text-align:center}.admin-messages-placeholder{margin:auto}.admin-messages-conv-item{width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;padding:.8rem .9rem;cursor:pointer;color:inherit;display:grid;gap:.2rem}.admin-messages-conv-item:hover{background:color-mix(in srgb,var(--ink) 3%,var(--paper))}.admin-messages-conv-item.on{background:color-mix(in srgb,var(--accent) 10%,var(--paper));box-shadow:inset 3px 0 0 var(--accent)}.admin-messages-conv-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.admin-messages-badge{display:inline-flex;align-items:center;font-size:.65rem;font-weight:750;letter-spacing:.02em;text-transform:uppercase;padding:.12rem .4rem;border-radius:999px;background:var(--paper-2,var(--surface));color:var(--ink-soft);border:1px solid var(--border)}.admin-messages-badge.type-dm{color:#1f5f8b;background:color-mix(in srgb,#3b82f6 12%,var(--paper));border-color:color-mix(in srgb,#3b82f6 28%,var(--border))}.admin-messages-badge.type-group{color:#6b4f1d;background:color-mix(in srgb,#d4a017 14%,var(--paper));border-color:color-mix(in srgb,#d4a017 30%,var(--border))}.admin-messages-badge.type-class,.admin-messages-badge.type-school{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--paper));border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.admin-messages-when{font-size:.72rem;flex-shrink:0}.admin-messages-conv-title{font-size:.95rem;line-height:1.25}.admin-messages-conv-preview,.admin-messages-conv-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-messages-conv-preview{font-size:.8rem;line-height:1.3}.admin-messages-thread-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.7rem .85rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 70%,var(--paper))}.admin-messages-thread-title{display:grid;gap:.1rem;min-width:0}.admin-messages-thread-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-messages-thread-title .muted{font-size:.8rem}.admin-messages-back{display:none;min-width:2.4rem;padding-inline:.55rem}.admin-messages-thread-scroll{flex:1;min-height:0;overflow:auto}.admin-messages-thread-list{list-style:none;margin:0;padding:.9rem 1rem 1.35rem;display:grid;gap:.75rem}.admin-messages-bubble{padding:.7rem .8rem;border-radius:12px;background:var(--surface);border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.admin-messages-bubble.deleted{opacity:.72}.admin-messages-bubble-meta{display:flex;align-items:center;gap:.55rem}.admin-messages-bubble-who{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;font-size:.85rem;min-width:0}.admin-messages-bubble-body{white-space:pre-wrap;margin:.45rem 0 0;line-height:1.4}.admin-messages-bubble-files{margin-top:.45rem;display:grid;gap:.4rem}@media (max-width:900px){.admin-messages{grid-template-columns:1fr;height:min(72dvh,780px)}.admin-messages-inbox{border-right:0}.admin-messages.has-thread .admin-messages-inbox,.admin-messages:not(.has-thread) .admin-messages-reader{display:none}.admin-messages-back{display:inline-flex}.admin-messages-reports{font-size:.85rem}}@media (min-width:901px){.admin-messages-back{display:none}}@media (max-width:1100px){.admin-shell{grid-template-columns:13.5rem minmax(0,1fr);gap:0 1.25rem}.admin-dash-grid{grid-template-columns:1fr}}@media (max-width:900px){.admin-shell{display:flex;flex-direction:column;gap:.85rem}.admin-sidebar{display:none}.admin-mobile-bar{display:block}.admin-mobile-nav{display:grid;gap:.35rem;margin:0;padding:0;background:transparent}.admin-mobile-nav-label{font-size:.7rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.admin-mobile-nav-select{width:100%;min-height:2.6rem;font-weight:600}.admin-header{gap:.25rem;padding:0 0 .65rem}.admin-title{font-size:1.35rem}.admin-lead{font-size:.88rem}.admin-section-title{scroll-margin-top:6rem}.admin-messages{height:min(72dvh,780px);min-height:22rem}.admin-list-row{align-items:stretch;padding:.7rem 0}.admin-row-actions{width:100%;flex-wrap:wrap}.admin-row-actions .btn,.admin-row-actions select{flex:1 1 auto;min-height:2.4rem}.admin-toolbar{width:100%}.admin-toolbar input[type=search],.admin-toolbar select{flex:1 1 140px;min-width:0}.admin-section-head{align-items:flex-start}.admin-class-table-head,.admin-class-table-row{grid-template-columns:1fr;gap:.35rem}.admin-class-table-head{display:none}}.admin-page{min-width:0;display:grid;gap:1rem}.admin-panel{padding:1.15rem 1.2rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.admin-status-line{margin:0;padding:.85rem 1rem;border-radius:var(--radius);border:1px dashed color-mix(in srgb,var(--border) 90%,transparent);color:var(--muted);font-size:.92rem;background:color-mix(in srgb,var(--surface) 55%,transparent)}.admin-dash-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,16rem);gap:1.15rem;align-items:start}.admin-dash-side{display:grid;gap:.65rem}.admin-quick-list{display:grid;gap:.35rem}.admin-section-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.admin-class-table{display:grid;gap:0;margin-top:.35rem}.admin-class-table-head,.admin-class-table-row{display:grid;grid-template-columns:minmax(7rem,1.2fr) 4.5rem 5.5rem minmax(12rem,2fr);gap:.75rem;align-items:center;padding:.7rem .15rem;border-bottom:1px solid var(--border)}.admin-class-table-head{font-size:.72rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-top:0}.admin-class-table-row.is-inactive{opacity:.62}.admin-class-table-row:last-child{border-bottom:none}.admin-status-pill{display:inline-flex;align-items:center;padding:.18rem .55rem;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700}.admin-status-pill.is-on{background:color-mix(in srgb,var(--accent) 12%,var(--paper));color:var(--accent)}.admin-status-pill.is-off{background:color-mix(in srgb,var(--muted) 12%,var(--paper));color:var(--muted)}.admin-stack{display:grid;gap:1rem}.admin-flash{display:grid;gap:.25rem}.admin-flash .error,.admin-flash .form-error,.admin-flash .success{margin:0}.admin-empty{margin:0;padding:.85rem .15rem;color:var(--muted);font-size:.92rem}.admin-form-grid{display:grid;gap:.55rem;margin-bottom:.85rem}.admin-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--ink-soft)}.admin-item-grid{display:grid;gap:.45rem;width:100%}.admin-row-title{font-weight:650;line-height:1.25}.admin-row-meta{margin-top:.15rem;font-size:.82rem;color:var(--muted);line-height:1.35}.admin-list-flat .admin-list-row{background:transparent;border-radius:0;border-left:none;border-right:none;border-top:none;padding-left:0;padding-right:0}.admin-list-flat .admin-list-row:first-child{border-top:1px solid var(--border)}.admin-list-row.is-inactive{opacity:.62}.admin-reply-box{margin:.35rem 0 .55rem;padding:.55rem .7rem;border-radius:8px;background:color-mix(in srgb,var(--surface) 80%,var(--paper));border:1px solid var(--border);font-size:.9rem;color:var(--ink-soft)}.admin-feedback-body{margin:.35rem 0;white-space:pre-wrap;line-height:1.4}.admin-page-intro{display:grid;gap:.35rem}.admin-page-title{margin:0;font-size:1.25rem;letter-spacing:-.02em}.admin-page-title,.admin-section-title{font-family:var(--font-display);font-weight:650}.admin-section-title{margin:0 0 .65rem;font-size:1.05rem;scroll-margin-top:8rem}.admin-section-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.admin-section-head .admin-section-title{margin-bottom:0}.admin-toolbar{align-items:center}.admin-inline-form,.admin-toolbar{display:flex;gap:.5rem;flex-wrap:wrap}.admin-list{display:grid;gap:.5rem}.admin-list-row{justify-content:space-between;gap:.75rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--paper)}.admin-list-row,.admin-row-actions{display:flex;align-items:center;flex-wrap:wrap}.admin-row-actions{gap:.45rem}.admin-report-row{align-items:flex-start}.admin-report-body{flex:1 1 220px;min-width:0;display:grid;gap:.35rem}.admin-report-text{white-space:pre-wrap;margin:0;line-height:1.4}.admin-report-meta{margin:0;font-size:.85rem}.admin-class-select{min-width:6.5rem;max-width:9rem;min-height:36px;padding:.35rem .5rem;font-size:.84rem;border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--surface);color:inherit}.admin-quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.admin-quick-link{display:grid;gap:.15rem;padding:.65rem .75rem;border:1px solid transparent;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 70%,transparent);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease}.admin-quick-link:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--paper))}.admin-quick-link strong{font-size:.98rem}.admin-quick-link span{font-size:.85rem;line-height:1.35}.admin-inbox-card{border-color:color-mix(in srgb,var(--accent) 22%,var(--border))}.admin-inbox-card-clear{padding:1rem 1.1rem}.admin-inbox-clear{margin:0;color:var(--muted);font-size:.92rem}.admin-inbox-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .45rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,var(--paper));color:var(--accent);font-size:.78rem;font-weight:800}.admin-inbox-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.admin-inbox-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;padding:.75rem .9rem;border-radius:10px;border:1px solid var(--border);text-decoration:none;color:inherit;background:var(--paper);transition:border-color .15s ease,background .15s ease}.admin-inbox-item:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--paper))}.admin-inbox-item-label{font-weight:650}.admin-inbox-item-detail{font-size:.84rem;color:var(--muted)}.admin-inbox-item-danger{border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.admin-inbox-item-warn{border-color:color-mix(in srgb,var(--warn) 35%,var(--border))}.admin-rail-link-inner{display:flex;align-items:center;justify-content:space-between;gap:.45rem}.admin-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.15rem;height:1.15rem;padding:0 .3rem;border-radius:999px;font-size:.68rem;font-weight:800;line-height:1}.admin-nav-badge-danger{background:var(--danger-soft);color:var(--danger)}.admin-nav-badge-warn{background:var(--warn-soft);color:var(--warn)}.admin-nav-badge-info{background:var(--accent-soft);color:var(--accent)}.admin-filter-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .85rem}.admin-student-list{display:grid;gap:.45rem}.admin-student-row{border:1px solid var(--border);border-radius:10px;background:var(--paper);overflow:hidden}.admin-student-row.open{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.admin-student-main{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.8rem .9rem;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.admin-student-toggle{color:var(--muted);font-size:.9rem;line-height:1.4;flex-shrink:0}.admin-student-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}.admin-student-badge{font-size:.68rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;padding:.12rem .38rem;border-radius:999px;background:var(--warn-soft);color:var(--warn)}.admin-student-actions{padding:0 .9rem .9rem;display:grid;gap:.75rem;border-top:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.admin-student-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem;padding-top:.75rem}.admin-student-field{display:grid;gap:.25rem;font-size:.82rem;color:var(--muted);font-weight:600}.admin-student-main-wrap{display:flex;align-items:stretch;gap:0}.admin-student-avatar-link{flex-shrink:0;display:grid;place-items:center;padding:.65rem 0 .65rem .75rem}.admin-student-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid var(--border)}.admin-student-avatar-empty{display:grid;place-items:center;background:var(--wash);color:var(--muted);font-weight:700;font-size:.95rem}.admin-student-main-wrap .admin-student-main{flex:1;width:auto}.admin-back-link{display:inline-block;margin-bottom:.5rem;font-size:.9rem;color:var(--muted);text-decoration:none}.admin-back-link:hover{color:var(--ink)}.admin-detail-hero{display:grid;gap:1rem}.admin-detail-hero-main{display:flex;gap:1rem;align-items:flex-start}.admin-detail-avatar-btn{position:relative;border:0;padding:0;background:transparent;cursor:pointer;border-radius:50%}.admin-detail-avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;border:2px solid var(--border);display:block}.admin-detail-avatar-empty{display:grid;place-items:center;background:var(--wash);color:var(--muted);font-size:2rem;font-weight:700}.admin-detail-avatar-hint{position:absolute;inset:auto 0 0;padding:.2rem;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;text-align:center;color:#fff;background:color-mix(in srgb,var(--ink) 55%,transparent);border-radius:0 0 999px 999px}.admin-detail-meta{margin:.25rem 0 0;color:var(--muted);font-size:.92rem}.admin-detail-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.admin-detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5rem}.admin-detail-stat{padding:.65rem .75rem;border-radius:8px;background:var(--wash);display:grid;gap:.1rem}.admin-detail-stat strong{font-size:1.15rem}.admin-detail-stat span{font-size:.78rem;color:var(--muted)}.admin-tab{border:1px solid var(--border);background:var(--paper);color:var(--muted);border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer}.admin-tab.on{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--paper));color:var(--ink)}.admin-detail-form{display:grid;gap:1rem}.admin-detail-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.admin-detail-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem 1rem;margin:0}.admin-detail-dl div{display:grid;gap:.15rem}.admin-detail-dl dt{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.admin-detail-dl dd{margin:0;font-size:.95rem}.admin-detail-toggles{display:grid;gap:.5rem}.admin-notify-grid{display:grid;gap:.55rem}.admin-temp-password code{display:block;padding:.65rem .75rem;border-radius:8px;background:var(--wash);font-size:1rem;word-break:break-all}.admin-field-hint{margin:.25rem 0 0;font-size:.8rem}.admin-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.admin-modal-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,var(--ink) 42%,transparent)}.admin-modal{width:min(440px,100%);margin:0;display:grid;gap:.85rem}.admin-settings-digest{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.admin-template-list{display:grid;gap:.45rem}.admin-template-item{display:flex;align-items:stretch;gap:.35rem}.admin-template-use{flex:1;display:grid;gap:.15rem;text-align:left;padding:.65rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--paper);color:inherit;font:inherit;cursor:pointer}.admin-template-use:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--paper))}.admin-mail-save-template{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.admin-mail-save-template input{flex:1 1 180px;min-height:44px;padding:.5rem .75rem;border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--surface)}.admin-job-row{font-size:.9rem;border:1px solid var(--border);border-radius:8px;padding:.75rem;background:var(--paper)}.admin-job-log{white-space:pre-wrap;margin:.5rem 0 0;font-family:inherit;font-size:.85rem}.admin-sync-detail{margin-top:.15rem}.admin-sync-meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;font-size:.85rem;color:var(--muted,#667)}.admin-sync-bar{height:6px;background:var(--border);border-radius:99px;overflow:hidden;margin:.55rem 0 .15rem}.admin-sync-bar>span{display:block;height:100%;background:var(--accent,#2f6fed);transition:width .3s ease}.admin-sync-current{margin:.55rem 0 0;font-size:.9rem}.admin-sync-cols{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1.25rem;margin-top:.75rem}.admin-sync-names{margin:.25rem 0 0;padding-left:1.15rem;font-size:.85rem}.admin-sync-summary{cursor:pointer;font-size:.85rem;color:var(--muted,#667)}@media (max-width:720px){.admin-sync-cols{grid-template-columns:1fr}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:.65rem}.admin-stat{background:color-mix(in srgb,var(--surface) 80%,var(--paper));border:1px solid var(--border);border-radius:12px;padding:.85rem .95rem}.admin-stat-value{font-size:1.35rem;font-weight:700;line-height:1.2}.admin-stat-label{margin-top:.25rem;font-size:.8rem;color:var(--muted)}.admin-stat-sub{font-size:.75rem}.admin-stat-details{grid-column:1/-1;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 80%,var(--paper));overflow:hidden}.admin-stat-details>summary{list-style:none;cursor:pointer}.admin-stat-details>summary::-webkit-details-marker{display:none}.admin-stat-expand{position:relative;padding-right:2rem;border:0;border-radius:0;background:transparent}.admin-stat-expand:after{content:"▾";position:absolute;right:.85rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.85rem}.admin-stat-details[open]>.admin-stat-expand:after{transform:translateY(-50%) rotate(180deg)}.admin-stat-details .admin-live-list{padding:0 .95rem .85rem;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.admin-live-card .admin-stats{gap:.55rem}.admin-live-updated{font-size:.82rem}.admin-live-list-title{margin:0 0 .45rem;font-size:.88rem;font-weight:650}.admin-live-list-empty{margin:0;font-size:.88rem}.admin-active-students-compact li{padding:.45rem 0}.admin-pill{display:inline-flex;margin-left:.35rem;padding:.08rem .4rem;border-radius:999px;font-size:.68rem;font-weight:650;vertical-align:middle}.admin-pill-warn{background:var(--warn-soft);color:var(--warn)}a.admin-stat-link{text-decoration:none;color:inherit}a.admin-stat-link:hover{border-color:var(--accent)}button.admin-stat-btn{appearance:none;font:inherit;text-align:left;cursor:pointer;color:inherit}button.admin-stat-btn:hover{border-color:var(--accent)}button.admin-stat-btn.on{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--paper))}.roster-import textarea{width:100%;min-height:12rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.45;padding:.7rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:inherit;resize:vertical}.roster-preview{font-size:.88rem;line-height:1.4}.roster-preview-skip{margin-top:.45rem}.roster-preview-skip ul{margin:.35rem 0 0;padding-left:1.1rem;display:grid;gap:.2rem}.roster-add-form{margin-top:.35rem}.roster-add-form input{min-height:2.35rem;padding:.4rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:inherit;flex:1 1 8rem}.roster-table td,.roster-table th{text-align:left;vertical-align:top}.roster-table td:last-child{text-align:right;white-space:nowrap}.roster-cell-input{width:100%;min-width:8rem;max-width:22rem;min-height:2.1rem;padding:.3rem .45rem;border:1px solid transparent;border-radius:6px;background:transparent;color:inherit;font:inherit}.roster-cell-input:focus,.roster-cell-input:hover{border-color:var(--border);background:var(--surface);outline:none}.roster-cell-narrow{max-width:5.5rem;min-width:3.5rem}.roster-cell-num{max-width:4rem;min-width:2.75rem}.roster-status{font-size:.82rem;white-space:nowrap}.roster-status-pending{color:var(--muted)}.roster-status-ok{font-weight:550}.roster-row-warn td{background:color-mix(in srgb,var(--warn,#b45309) 8%,transparent)}.roster-row-mismatch td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.roster-table .admin-badge-warn{display:block;margin-top:.2rem}@media (max-width:720px){.roster-table .roster-cell-input{max-width:none}}.admin-chart{display:flex;align-items:stretch;gap:.35rem;height:160px}.admin-chart-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;gap:.2rem}.admin-chart-track{flex:1;width:100%;min-height:0;display:flex;align-items:flex-end;justify-content:center}.admin-chart-bar{width:70%;max-width:28px;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}.admin-chart-value{font-size:.65rem;color:var(--muted);line-height:1;min-height:.7rem}.admin-chart-label{font-size:.65rem;color:var(--muted);white-space:nowrap}.admin-chart-dense{gap:.15rem}.admin-chart-dense .admin-chart-bar{width:100%;max-width:18px}.admin-chart-caption{margin:-.4rem 0 .75rem;font-size:.85rem}.admin-chart-names{height:260px;overflow-x:auto;gap:.2rem;padding-bottom:.15rem}.admin-chart-names .admin-chart-col{flex:0 0 2.15rem;min-width:2.15rem}.admin-chart-names .admin-chart-bar,.admin-chart-names .admin-chart-stack{width:80%;max-width:18px}.admin-chart-col-link{color:inherit;text-decoration:none}.admin-chart-col-link:focus-visible .admin-chart-bar,.admin-chart-col-link:hover .admin-chart-bar{background:var(--accent-hover)}.admin-hbar{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.admin-hbar-row{display:grid;grid-template-columns:minmax(5.5rem,7.5rem) 1fr 3.2rem;gap:.55rem;align-items:center}.admin-hbar-label{font-size:.82rem;line-height:1.2}.admin-hbar-track{height:10px;background:var(--accent-soft);border-radius:3px;overflow:hidden}.admin-hbar-track span{display:block;height:100%;background:var(--accent);min-width:0}.admin-hbar-value{font-size:.8rem;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.admin-chart-legend{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:.65rem;font-size:.78rem}.admin-chart-legend-item:before{content:"";display:inline-block;width:.65rem;height:.65rem;border-radius:2px;margin-right:.35rem;vertical-align:middle}.admin-chart-legend-school:before{background:#2980b9}.admin-chart-legend-home:before{background:#27ae60}.admin-chart-legend-unknown:before{background:#95a5a6}.admin-chart-stacked .admin-chart-track{align-items:flex-end}.admin-chart-stack{display:flex;flex-direction:column-reverse;width:100%;max-width:28px;min-height:2px;border-radius:4px 4px 2px 2px;overflow:hidden}.admin-chart-bar-school{background:linear-gradient(180deg,#3498db,#2980b9)}.admin-chart-bar-home{background:linear-gradient(180deg,#2ecc71,#27ae60)}.admin-chart-bar-unknown{background:linear-gradient(180deg,#bdc3c7,#95a5a6)}.admin-network-split{display:flex;height:.45rem;border-radius:999px;overflow:hidden;margin-top:.85rem;border:1px solid var(--border)}.admin-network-split-school{display:block;background:#2980b9}.admin-network-split-home{display:block;background:#27ae60}.admin-network-pill{display:inline-block;padding:.05rem .35rem;border-radius:999px;font-size:.68rem;font-weight:700;vertical-align:middle}.admin-network-pill-school{background:color-mix(in srgb,#2980b9 18%,var(--paper));color:#1f6dad}.admin-network-pill-home{background:color-mix(in srgb,#27ae60 18%,var(--paper));color:#1e8449}.admin-network-pill-unknown{background:color-mix(in srgb,var(--muted) 16%,var(--paper));color:var(--muted)}.admin-live-dot{display:inline-block;width:.45rem;height:.45rem;border-radius:999px;background:#2ecc71;box-shadow:0 0 0 2px color-mix(in srgb,#2ecc71 25%,transparent);animation:admin-live-pulse 1.6s ease-in-out infinite;vertical-align:middle}@keyframes admin-live-pulse{0%,to{opacity:1}50%{opacity:.45}}.admin-stat-page{gap:.85rem}.admin-stat-toolbar{position:sticky;top:0;z-index:6;padding:.85rem 1rem}.admin-stat-nav{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.admin-stat-nav-btn{border:1px solid var(--border);background:var(--paper);color:var(--ink);border-radius:999px;padding:.35rem .8rem;font-size:.82rem;font-weight:600;cursor:pointer}.admin-stat-nav-btn:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.admin-stat-nav-btn.active{background:color-mix(in srgb,var(--accent) 14%,var(--paper));border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent)}.admin-stat-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}.admin-stat-details-block{border:1px solid var(--border);border-radius:12px;padding:.75rem .9rem;background:var(--paper-2)}.admin-details-summary{cursor:pointer;list-style:none}.admin-details-summary::-webkit-details-marker{display:none}.admin-live-banner{margin:.35rem 0 0;font-size:.82rem}.admin-delta{font-weight:600;font-size:.8em;margin-left:.2rem}.admin-delta-up{color:var(--accent)}.admin-delta-down{color:var(--danger)}.admin-table-wrap{overflow-x:auto}.admin-stats-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-stats-table td,.admin-stats-table th{text-align:right;padding:.45rem .55rem;border-bottom:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums}.admin-stats-table thead th{font-weight:600;color:var(--muted);font-size:.78rem}.admin-stats-table tbody th{text-align:left;font-weight:550}.admin-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width:860px){.admin-stats-grid{grid-template-columns:1fr}}.admin-filter-row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.admin-filter-row input[type=search],.admin-filter-row select{flex:1 1 180px;min-width:0;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:inherit}.admin-table-card .admin-table-wrap{max-height:70vh;overflow:auto}.admin-student-table .admin-th-btn{background:none;border:none;padding:0;font:inherit;font-weight:600;color:inherit;cursor:pointer;text-align:left}.admin-student-table .admin-th-btn:hover{color:var(--accent)}.admin-badge-warn{font-size:.75rem;color:var(--warn,#b45309)}.admin-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem 1.25rem;margin:0}.admin-dl dt{font-size:.75rem;color:var(--muted);margin-bottom:.15rem}.admin-dl dd{margin:0;font-weight:550}.admin-top-pages-text{position:relative;z-index:1;display:grid;gap:.1rem;min-width:0;flex:1}.admin-top-pages-text strong{font-size:.9rem}.admin-top-pages-text code{font-size:.75rem;color:var(--muted)}.admin-class-stats{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.admin-class-stats-head{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.3rem;font-size:.9rem}.admin-meter{height:6px;border-radius:99px;background:var(--paper-2);overflow:hidden}.admin-meter+.admin-meter{margin-top:.25rem}.admin-meter span{display:block;height:100%;background:var(--accent);border-radius:inherit}.admin-meter-soft span{background:color-mix(in srgb,var(--accent) 45%,var(--border))}.admin-event-feed{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;max-height:420px;overflow:auto}.admin-event-feed li{display:grid;grid-template-columns:8.5rem 1fr;gap:.65rem;font-size:.88rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.admin-event-when{color:var(--muted);font-variant-numeric:tabular-nums}@media (max-width:640px){.admin-event-feed li{grid-template-columns:1fr;gap:.1rem}}.admin-top-pages{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.admin-top-pages li{position:relative;display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .65rem;border:1px solid var(--border);border-radius:8px;overflow:hidden}.admin-top-pages code{position:relative;z-index:1;font-size:.85rem}.admin-top-pages-count{position:relative;z-index:1;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.85rem}.admin-top-pages-bar{position:absolute;left:0;top:0;bottom:0;background:var(--accent-soft);pointer-events:none}.admin-active-students{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.admin-active-students li{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.55rem .65rem;border:1px solid var(--border);border-radius:8px}.admin-active-students-meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.8rem;align-items:center}.admin-class-counts{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.admin-class-count{display:flex;justify-content:space-between;gap:.5rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem}.chip{padding:.5rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:.85rem;font-weight:500;min-height:40px;transition:background .15s ease,border-color .15s ease,color .15s ease}.chip:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.chip:disabled{opacity:.45;cursor:not-allowed}.chip:active{transform:none}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700;box-shadow:none}.pwa-banner{position:fixed;left:0;right:0;bottom:0;z-index:80;padding:.75rem .75rem calc(.75rem + env(safe-area-inset-bottom, 0px));pointer-events:none}.pwa-banner-inner{pointer-events:auto;max-width:560px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:.75rem .85rem;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-hover);padding:.85rem}.pwa-banner-icon{width:44px;height:44px;border-radius:10px;grid-row:span 2}.pwa-banner-copy strong{display:block;font-size:.95rem}.pwa-banner-copy p{margin:.2rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.4}.pwa-banner-actions{grid-column:2;display:flex;gap:.4rem;flex-wrap:wrap}.pwa-banner-actions .btn{min-height:44px}.cookie-settings-link{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:inherit}.cookie-controls{display:grid;gap:.55rem}.cookie-controls>.muted{margin:0;font-size:.88rem}.gdpr-profile-block{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-subtle,rgba(255,255,255,.08))}.gdpr-profile-heading{font-size:1rem;font-weight:600;margin:0 0 .35rem}.gdpr-profile-actions{flex-wrap:wrap}.gdpr-optout-row,.gdpr-profile-actions{display:flex;gap:.5rem;margin-top:.75rem}.gdpr-optout-row{align-items:flex-start;cursor:pointer}.gdpr-request-form{margin-top:.75rem}.gdpr-admin-list{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.75rem}.gdpr-admin-item{border:1px solid var(--border-subtle,rgba(255,255,255,.1));border-radius:10px;padding:.85rem 1rem}.gdpr-admin-item-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.gdpr-admin-badge{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:var(--surface-2,rgba(255,255,255,.06))}.gdpr-admin-meta{margin:.35rem 0 0;font-size:.875rem}.gdpr-admin-message{margin:.5rem 0 0;white-space:pre-wrap}.gdpr-admin-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}.gdpr-admin-note-field{margin-top:.65rem}.gdpr-admin-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;border-bottom:1px solid var(--border-subtle,rgba(255,255,255,.1));padding-bottom:.5rem}.gdpr-admin-tab{appearance:none;border:none;background:transparent;color:inherit;font:inherit;padding:.45rem .85rem;border-radius:8px;cursor:pointer;opacity:.75}.gdpr-admin-tab.active{opacity:1;background:var(--surface-2,rgba(255,255,255,.08));font-weight:600}.gdpr-admin-tab-panel{margin-top:.25rem}.gdpr-admin-item.gdpr-urgency-ok{border-left:3px solid rgba(80,200,120,.65)}.gdpr-admin-item.gdpr-urgency-soon{border-left:3px solid rgba(255,180,0,.85)}.gdpr-admin-item.gdpr-urgency-overdue{border-left:3px solid rgba(255,80,80,.85)}.gdpr-register-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:.75rem 0 1rem}.gdpr-register-activities{display:flex;flex-direction:column;gap:.5rem}.gdpr-register-activity{border:1px solid var(--border-subtle,rgba(255,255,255,.1));border-radius:8px;padding:.5rem .75rem}.gdpr-register-activity summary{cursor:pointer;font-weight:600}.gdpr-register-dl{margin:.65rem 0 0;display:grid;gap:.5rem}.gdpr-register-dl dt{font-size:.75rem;font-weight:600;opacity:.75;margin:0}.gdpr-register-dl dd{margin:.15rem 0 0;font-size:.875rem}.gdpr-register-dl ul{margin:0;padding-left:1.1rem}.gdpr-processor-list{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.75rem}.gdpr-processor-item{border:1px solid var(--border-subtle,rgba(255,255,255,.1));border-radius:10px;padding:.85rem 1rem}.gdpr-processor-item.status-pending{border-left:3px solid rgba(255,180,0,.85)}.gdpr-processor-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.gdpr-processor-fields{display:grid;gap:.65rem;margin-top:.65rem}@media (min-width:640px){.gdpr-processor-fields{grid-template-columns:1fr 1fr}}.gdpr-processor-link{display:inline-block;margin-top:.25rem;font-size:.85rem}.gdpr-manual-steps{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-subtle,rgba(255,255,255,.08))}.gdpr-manual-steps ol{margin:.5rem 0 0;padding-left:1.25rem}.admin-alert-inline{margin:.5rem 0 0;padding:.5rem .75rem;border-radius:8px;background:rgba(255,180,0,.12);font-size:.9rem}.admin-alert-inline.admin-alert-danger{background:rgba(255,80,80,.12)}@media (max-width:900px){.shell,.shell.shell-admin{display:flex;flex-direction:column;width:100%;height:100dvh;height:-webkit-fill-available;max-height:100dvh;min-height:0;overflow:hidden;padding-bottom:0}html.pwa-standalone:has(.shell) body{overflow:hidden}html.pwa-standalone .shell,html.pwa-standalone .shell.shell-admin{height:100%;max-height:none;min-height:0}html.ios-pwa .shell,html.pwa-standalone.android-pwa .shell{height:var(--app-height,100%);max-height:var(--app-height,100%)}.sidebar{display:none!important}.shell.shell-mobile-tabs{--mobile-nav-h:58px}.shell.shell-mobile-tabs .mobile-nav{display:flex!important}.mobile-nav,.shell.shell-mobile-tabs .topnav-logout{display:none}.topnav{display:flex;flex-shrink:0;gap:.35rem;padding:calc(.45rem + var(--sat)) max(.5rem,var(--sar)) .45rem max(.5rem,var(--sal));min-height:56px}.topnav-brand{flex:1 1 auto;min-width:0}.topnav-brand .brand-link{padding:.1rem;min-height:40px}.topnav-brand .logo{gap:.4rem}.topnav-brand .logo-mark{width:32px;height:32px}.topnav-brand .logo-title{font-size:1.12rem;letter-spacing:-.03em}.topnav-brand .logo-sub,.topnav-links{display:none}.topnav-actions{gap:.1rem;margin-left:0}.topnav-actions-cluster{gap:.05rem;padding:0;border:none;background:transparent;border-radius:0}.topnav-admin{display:inline-flex;font-size:.78rem;padding:.3rem .55rem}.topnav-admin-icon{display:none}.topnav-more{display:flex}.topnav-logout{display:inline-flex;width:40px;height:40px}.topnav-logout svg{width:20px;height:20px}.topnav-actions-guest{gap:.15rem}.topnav-actions-guest .topnav-guest-desktop-only{display:none!important}.topnav-auth-btn{min-height:36px;padding:.35rem .7rem;font-size:.82rem}.topnav .notif-bell{width:40px;height:40px}.topnav .notif-bell svg{width:20px;height:20px}.topnav-more .mobile-top-menu-btn{width:40px;height:40px;min-width:40px;padding:0;border-radius:10px}.shell-content{min-height:0;flex:1;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.mobile-top{display:none!important}.main{padding:1rem max(.85rem,var(--sal)) 1.5rem max(.85rem,var(--sar));max-width:none}.shell-admin .main{padding-bottom:max(1.25rem,env(safe-area-inset-bottom,0px) + .75rem)}.page-title{font-size:clamp(1.35rem,6vw,1.75rem)}.page-lead{margin-bottom:1.1rem;font-size:.92rem;overflow-wrap:anywhere}.card{padding:1rem}.week-grid{grid-template-columns:repeat(5,minmax(148px,1fr));min-width:760px;gap:.55rem}.alias-row{grid-template-columns:1fr;gap:.35rem}.mobile-logout-card .btn,.profile-actions .btn,.profile-stack .btn{width:100%}.auth-page{grid-template-columns:1fr}.auth-visual{min-height:auto;padding:calc(1.25rem + var(--sat)) 1.25rem 1.5rem}.auth-visual-copy h1{max-width:none;font-size:clamp(1.55rem,7vw,2.1rem)}.auth-panel{padding:1.25rem max(1rem,var(--sal)) calc(1.5rem + var(--sab)) max(1rem,var(--sar));align-content:start}.pwa-banner{bottom:calc(var(--mobile-nav-h) + var(--sab));padding-bottom:.75rem}body:not(:has(.shell)) .pwa-banner{bottom:0;padding-bottom:calc(.75rem + env(safe-area-inset-bottom, 0px))}.notif-panel{max-width:calc(100% - 24px)}}@media (max-width:420px){.mobile-nav-label{font-size:.68rem}.mobile-nav-five .mobile-nav-label{font-size:.56rem;letter-spacing:0}.mobile-top .logo .logo-mark,.mobile-top .logo img{width:36px;height:36px}}@media (max-width:340px){.mobile-nav-five .mobile-nav-label{display:none}.mobile-nav-five .mobile-nav-link{min-height:48px;padding-top:.45rem;padding-bottom:.45rem}.mobile-nav-five .mobile-nav-icon svg{width:22px;height:22px}}.mobile-logout-card{display:none}@media (max-width:900px){.mobile-logout-card{display:block}.profile-logout-mobile{display:inline-flex;justify-content:center}.profile-hero{flex-direction:column;align-items:flex-start}.profile-card-head{flex-wrap:wrap}}.landing{background:var(--paper);overflow-x:hidden}.landing,.landing-hero{min-height:100dvh;color:var(--ink)}.landing-hero{min-height:100svh;flex-direction:column;background:radial-gradient(90% 70% at 100% 18%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 58%),linear-gradient(180deg,var(--paper) 0,color-mix(in srgb,var(--paper-2) 40%,var(--paper)) 100%);overflow:hidden;padding-top:max(.35rem,var(--sat))}.landing-hero,.landing-nav{position:relative;display:flex}.landing-nav{z-index:2;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem clamp(1.25rem,4vw,3.5rem);width:100%}.landing-nav .logo-sub,.landing-nav .logo-title{color:var(--ink)}.landing-nav .logo-sub{opacity:.7}.landing-nav-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.landing-nav-ghost{color:var(--ink)!important;border-color:var(--border)!important;background:color-mix(in srgb,var(--surface) 70%,var(--paper))!important}.landing-nav-ghost:hover{background:var(--surface)!important;border-color:color-mix(in srgb,var(--accent) 35%,var(--border))!important}.landing-nav-solid{background:var(--cta)!important;color:var(--cta-ink)!important;border-color:transparent!important}.landing-nav-solid:hover{background:var(--cta-hover)!important}.landing-hero-main{position:relative;z-index:1;flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);width:100%;max-width:1200px;margin:0 auto;padding:clamp(1.25rem,4vh,2.5rem) clamp(1.25rem,4vw,3.5rem) clamp(2rem,6vh,3.5rem);box-sizing:border-box}.landing-hero-copy{position:relative;z-index:2;max-width:28rem;min-width:0}.landing-hero-title{margin:0}.landing-hero-title .landing-brand{display:block}.landing-brand{font-family:var(--font-display);font-size:clamp(2.15rem,5.5vw,3.35rem);font-weight:800;line-height:1.05;margin:0 0 .65rem;letter-spacing:-.03em;color:var(--ink);max-width:100%;overflow-wrap:anywhere;animation:landing-brand-in .75s var(--ease-out) both}@keyframes landing-brand-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.landing-headline{display:block;margin:0 0 .8rem;font-family:var(--font-sans);font-size:clamp(1.1rem,2.2vw,1.35rem);font-weight:600;line-height:1.35;color:var(--ink-soft);max-width:20ch;animation-delay:.06s}.landing-deck{margin:0 0 1.45rem;font-size:clamp(.95rem,1.8vw,1.05rem);line-height:1.55;color:var(--muted);max-width:34ch;animation-delay:.12s}.landing-cta{display:flex;flex-wrap:wrap;gap:.6rem;animation-delay:.18s}.landing-cta .btn{min-height:44px;padding-inline:1.1rem;font-weight:600}.landing-cta-inline{margin-top:1.75rem}.landing-hero-visual{position:relative;min-width:0;min-height:22rem;display:flex;align-items:center}.landing-hero-schedule{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;width:100%;opacity:.92}.landing-hero-col{display:flex;flex-direction:column;gap:.45rem;opacity:0;animation:landing-col-in .65s var(--ease-out) forwards}.landing-hero-col>span{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-left:.1rem}.landing-hero-block{display:flex;flex-direction:column;justify-content:center;gap:.1rem;min-height:3.9rem;padding:.45rem .55rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 85%,var(--paper));border:1px solid color-mix(in srgb,var(--border) 75%,transparent);border-left:3px solid color-mix(in srgb,var(--accent) 50%,var(--border));opacity:0;animation:landing-block-in .5s var(--ease-out) forwards}.landing-hero-block-label{font-weight:700;font-size:.86rem;color:var(--ink);letter-spacing:-.02em}.landing-hero-block-meta{font-size:.64rem;color:var(--muted);font-weight:500}.landing-hero-block.tone-short{min-height:2.7rem}.landing-hero-block.tone-free{background:color-mix(in srgb,var(--paper-2) 55%,transparent);border-color:color-mix(in srgb,var(--border) 70%,transparent);border-left-color:color-mix(in srgb,var(--border) 90%,var(--accent));border-style:dashed}.landing-hero-block.tone-free .landing-hero-block-label{color:var(--muted);font-weight:600}.landing-hero-block.tone-accent{background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface));border-left-color:var(--accent)}@keyframes landing-col-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes landing-block-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.landing-section{max-width:820px;margin:0 auto;padding:clamp(3.5rem,9vw,6rem) 1.5rem}.landing-section-alt{max-width:none;background:linear-gradient(180deg,color-mix(in srgb,var(--paper-2) 65%,var(--paper)),color-mix(in srgb,var(--paper-2) 40%,var(--paper)));border-block:1px solid color-mix(in srgb,var(--border) 80%,transparent);padding-inline:max(1.25rem,calc(50% - 400px))}.landing-section-title{font-family:var(--font-display);font-size:clamp(1.55rem,3vw,2rem);margin:0 0 .55rem;line-height:1.15;letter-spacing:-.025em}.landing-section-lead{margin:0 0 2rem;color:var(--ink-soft);line-height:1.6;font-size:1.05rem;max-width:42ch}.landing-feature-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.landing-feature-list li{display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:.85rem 1.1rem;align-items:start;padding:1.25rem 0;border-top:1px solid color-mix(in srgb,var(--border) 85%,transparent)}.landing-feature-list li:last-child{border-bottom:1px solid color-mix(in srgb,var(--border) 85%,transparent)}.landing-feature-index{font-size:1.05rem;font-weight:700;color:color-mix(in srgb,var(--accent) 75%,var(--muted));line-height:1.4;padding-top:.1rem}.landing-feature-index,.landing-feature-list h3{font-family:var(--font-display);letter-spacing:-.02em}.landing-feature-list h3{font-size:1.15rem;margin:0 0 .3rem}.landing-feature-list p{margin:0;color:var(--muted);line-height:1.55;max-width:48ch}.landing-steps{list-style:none;margin:0;padding:0;display:grid;gap:.85rem;color:var(--ink-soft)}.landing-steps li{display:flex;align-items:center;gap:.9rem;font-size:1.05rem;line-height:1.45}.landing-step-num{flex-shrink:0;width:2.1rem;height:2.1rem;display:grid;place-items:center;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent-soft) 75%,var(--surface));color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:.95rem;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border))}.landing-ludus-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.landing-faq{display:grid;gap:0;margin:0;padding:0;list-style:none}.landing-faq li{padding:1.15rem 0;border-top:1px solid color-mix(in srgb,var(--border) 85%,transparent)}.landing-faq li:last-child{border-bottom:1px solid color-mix(in srgb,var(--border) 85%,transparent)}.landing-faq h3{font-family:var(--font-display);font-size:1.08rem;margin:0 0 .35rem;letter-spacing:-.015em}.landing-faq p{margin:0;color:var(--ink-soft);line-height:1.55;max-width:58ch}.landing-footer{padding:2.25rem 1.25rem 3.25rem;text-align:center;color:var(--muted);font-size:.9rem;line-height:1.55}.landing-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem;margin-bottom:1rem}.landing-footer .cookie-settings-link,.landing-footer a{color:var(--accent);font-weight:600}@media (min-width:901px){.landing-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.landing-steps li{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.35rem 0}}@media (max-width:980px){.landing-hero-main{grid-template-columns:1fr;align-items:start;gap:1.5rem}.landing-hero-copy{max-width:36rem}.landing-hero-visual{min-height:0;width:100%;max-width:28rem;opacity:.85}.landing-hero-schedule{gap:.4rem}.landing-hero-block{min-height:3.1rem;padding:.35rem .4rem}.landing-hero-block-meta{display:none}.landing-nav-actions .btn{padding-inline:.85rem}}@media (max-width:640px){.landing-hero{min-height:auto}.landing-hero-main{padding-bottom:calc(1.75rem + var(--sab))}.landing-brand{font-size:clamp(1.9rem,9vw,2.4rem)}.landing-hero-visual{max-width:none;opacity:.8;mask-image:linear-gradient(90deg,#000,#000 82%,transparent);-webkit-mask-image:linear-gradient(90deg,#000,#000 82%,transparent);overflow:hidden}.landing-hero-schedule{width:max(100%,22rem)}.landing-nav .logo-sub,.landing-nav-actions .landing-nav-ghost{display:none}.landing-feature-list li{grid-template-columns:2.4rem minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.auth-visual,.auth-visual-copy,.discover-art,.empty-state-art,.landing-brand,.landing-hero-block,.landing-hero-col{animation:none!important;opacity:1!important;transform:none!important}}.status-page{min-height:100dvh;display:flex;flex-direction:column;padding:calc(1.25rem + var(--sat)) 1.25rem calc(1.5rem + var(--sab));max-width:640px;margin:0 auto}.status-page-header{margin-bottom:2rem}.status-page-main{flex:1;display:flex;flex-direction:column;justify-content:center;padding-bottom:2rem}.status-page-code{margin:0 0 .5rem;font-size:.85rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.status-page-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.35rem}.status-page-footer{font-size:.9rem}.text-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px;font-weight:600}.text-link:hover{color:var(--accent-hover)}.feed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.feed-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem .9rem}.feed-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .65rem;margin-bottom:.35rem}.feed-when{font-size:.8rem}.feed-summary{font-size:.95rem;line-height:1.35}.feed-people{margin-top:.35rem;font-size:.8rem}.homework-week-list{display:flex;flex-direction:column;gap:1rem}.homework-week-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem .9rem;margin-top:.5rem}.homework-week-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline;margin-bottom:.35rem}.event-timeline{display:flex;flex-direction:column;gap:1.1rem}.event-timeline-date{font-weight:700;margin-bottom:.45rem;text-transform:capitalize}.event-timeline-items{display:flex;flex-direction:column;gap:.5rem;border-left:2px solid color-mix(in srgb,var(--event-border) 45%,var(--border));padding-left:.85rem}.status-now-block .section-title{margin-bottom:.15rem}.cms-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.cms-list-item{border-bottom:1px solid var(--border);padding-bottom:.85rem}.cms-list-item:last-child{border-bottom:none;padding-bottom:0}.cms-list-head{display:flex;flex-wrap:wrap;gap:.45rem .75rem;align-items:center;margin-bottom:.25rem}.cms-list-item .muted{margin:.25rem 0 0}.roadmap{display:flex;flex-direction:column;gap:1.15rem}.roadmap-summary{padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--accent-soft) 40%,var(--surface))}.roadmap-summary-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;margin-bottom:.5rem}.roadmap-summary-head strong{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}.roadmap-jump{display:none;flex-wrap:wrap;gap:.65rem 1rem}.roadmap-jump a{color:var(--accent);font-weight:600;font-size:.92rem}.roadmap-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;align-items:start}.roadmap-col{min-width:0;padding:.75rem;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--paper-2) 55%,var(--surface));scroll-margin-top:calc(var(--topnav-h, 72px) + var(--sat) + .75rem)}.roadmap-col.is-in_progress{border-color:color-mix(in srgb,var(--warn) 28%,var(--border));background:color-mix(in srgb,var(--warn-soft) 45%,var(--surface))}.roadmap-col.is-done{background:color-mix(in srgb,var(--paper-2) 80%,transparent)}.roadmap-col-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}.legal-prose .roadmap-col-title,.roadmap-col-title{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.roadmap-col-count{font-variant-numeric:tabular-nums;font-weight:650;color:var(--muted);font-size:.9rem}.legal-prose .roadmap-empty,.roadmap-empty{margin:0;font-size:.9rem}.legal-prose .roadmap-list,.roadmap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.legal-prose .roadmap-list li,.roadmap-item{margin:0;padding:.7rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.roadmap-col.is-done .roadmap-item{background:color-mix(in srgb,var(--surface) 70%,transparent)}.roadmap-item strong{display:block;font-size:.95rem;font-weight:650;color:var(--ink);line-height:1.3}.legal-prose .roadmap-item p,.roadmap-item p{margin:.3rem 0 0;font-size:.85rem;line-height:1.45;color:var(--muted)}.legal-prose .roadmap-foot,.roadmap-foot{margin:.15rem 0 0}@media (max-width:860px){.roadmap-jump{display:flex}.roadmap-board{grid-template-columns:1fr}}.cms-changelog{display:flex;flex-direction:column;gap:1.25rem}.cms-changelog-entry ul{margin:.4rem 0 0;padding-left:1.2rem}.school-calendar{display:flex;flex-direction:column;gap:1.75rem}.school-calendar-section h2{margin:0 0 .65rem;font-size:1.15rem}.school-calendar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.school-calendar-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:.15rem 1rem;padding:.55rem .65rem;border-radius:10px;background:color-mix(in srgb,var(--paper-2) 70%,transparent);border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.school-calendar-title{font-weight:650}.school-calendar-date{color:var(--ink-soft);text-align:right}.school-calendar-note{grid-column:1/-1;font-size:.85rem;margin-top:.1rem}@media (max-width:640px){.school-calendar-row{grid-template-columns:1fr}.school-calendar-date{text-align:left}}.progress-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:.75rem;margin-top:.75rem}.progress-grid-years{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:640px){.progress-grid-years{grid-template-columns:1fr}}.progress-card{padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--accent-soft) 40%,var(--surface))}.progress-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.45rem}.progress-card-label{font-weight:650;font-size:.92rem;color:var(--ink)}.progress-card-pct{font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent);font-size:.95rem}.progress-stats{display:grid;gap:.35rem;margin-top:1rem;padding:.75rem .9rem;border-radius:var(--radius-sm);background:var(--paper-2);font-size:.9rem;color:var(--ink-soft)}.progress-stats strong{color:var(--ink);font-variant-numeric:tabular-nums}.special-day-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.5rem}.special-day-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.special-day-main{display:grid;gap:.2rem;min-width:0}.special-day-main strong{font-size:.95rem}.profil-account-fold{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border)}.profil-account-fold>summary{cursor:pointer;font-weight:650;color:var(--ink-soft);list-style:none;min-height:40px;display:flex;align-items:center}.profil-account-fold>summary::-webkit-details-marker{display:none}.profil-account-fold>summary:before{content:"▸";color:var(--accent);margin-right:.45rem}.profil-account-fold[open]>summary:before{content:"▾"}.profil-account-fold>:not(summary){margin-top:.65rem}.profil-account-danger>summary{color:var(--danger)}.profil-help-links{display:flex;flex-wrap:wrap;gap:.5rem}.empty-state{margin-top:.65rem;padding:1.35rem 1.15rem 1.2rem;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:var(--radius);background:radial-gradient(ellipse 70% 80% at 50% 0,color-mix(in srgb,var(--cta) 22%,transparent),transparent 60%),color-mix(in srgb,var(--surface) 82%,var(--paper));text-align:center}html[data-theme=dark] .empty-state{background:radial-gradient(ellipse 70% 80% at 50% 0,color-mix(in srgb,var(--cta) 14%,transparent),transparent 60%),color-mix(in srgb,var(--surface) 88%,var(--paper))}html[data-theme=dark] .discover-card{background:color-mix(in srgb,var(--accent-soft) 70%,var(--surface));border-color:color-mix(in srgb,var(--accent) 32%,var(--border))}.empty-state-art{display:block;width:56px;height:56px;margin:0 auto .85rem;object-fit:contain;border-radius:14px;animation:empty-art-in .65s ease both}.empty-state-icon{display:none}.empty-state-title{margin:0;font-weight:650;color:var(--ink-soft)}.empty-state-body{margin:.35rem auto 0;font-size:.9rem;max-width:36ch}.empty-state-footer{margin-top:.85rem;font-size:.88rem;text-align:left}.empty-state-footer .skema-report-hint{margin:0}.empty-state-action{margin-top:.85rem}.skema-report-hint{margin:1.5rem 0 0;font-size:.82rem;line-height:1.45;opacity:.9}.day-view,.schedule-wrap,.week-grid{margin-top:.35rem}@keyframes empty-art-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.overblik-fold{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.85rem 1rem 1rem;box-shadow:var(--shadow)}.overblik-fold-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .85rem;cursor:pointer;list-style:none}.overblik-fold-summary::-webkit-details-marker{display:none}.overblik-fold-summary:before{content:"▸";color:var(--accent);font-weight:700;margin-right:.15rem}.overblik-fold[open]>.overblik-fold-summary:before{content:"▾"}.overblik-fold-meta{font-size:.88rem}.profile-jump{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;position:sticky;top:0;z-index:5;padding:.55rem 0 .75rem;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(10px)}@media (min-width:901px){html:not(.pwa-standalone) .profile-jump{top:calc(var(--topnav-h, 72px) + var(--sat))}}.profile-jump a{display:inline-flex;align-items:center;min-height:38px;padding:.35rem .9rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:transparent;font-size:.86rem;font-weight:600;color:var(--ink-soft)}.profile-jump a:hover{border-color:color-mix(in srgb,var(--ink) 22%,transparent);color:var(--ink);background:color-mix(in srgb,var(--cta) 28%,transparent)}.shell-messages{height:100dvh;max-height:100dvh;overflow:hidden}.main-messages,.shell-messages .shell-content{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}.main-messages{padding:0;width:100%}.page-enter-fill{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.messages-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:0;flex:1 1 auto;min-height:0;height:100%;max-height:100%;border:0;border-radius:0;overflow:hidden;background:transparent}.messages-layout.fade-up{animation:fade-up .38s ease both}.main-messages .discover-card{margin:.75rem max(.85rem,var(--shell-pad-x)) 0}.main-messages .survey-banner{margin:.65rem max(.85rem,var(--shell-pad-x)) 0}.messages-list-pane,.messages-thread-pane{min-width:0;overflow:hidden}.messages-list-pane{border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;background:transparent}.messages-list-head{display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:1rem .85rem .5rem max(.85rem,var(--shell-pad-x));flex-shrink:0}.messages-list-search{padding:.65rem .85rem .85rem max(.85rem,var(--shell-pad-x))}.messages-list-search,.messages-thread-search{margin:0;border-bottom:1px solid var(--border);flex-shrink:0}.messages-thread-search{padding:.45rem .75rem .65rem;background:color-mix(in srgb,var(--surface) 92%,var(--paper))}.messages-list-title{margin:0;font-size:1.2rem;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages-list-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem;flex-shrink:0}.messages-btn{min-height:36px;padding:.35rem .7rem;font-size:.84rem;white-space:nowrap}.messages-thread-actions{display:flex;flex-shrink:0;gap:.35rem}.messages-conv-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.messages-conv-item{width:100%;text-align:left;border:0;background:transparent;padding:.75rem .9rem .75rem max(.85rem,var(--shell-pad-x));border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);cursor:pointer;color:inherit}.messages-conv-row{display:flex;gap:.65rem;align-items:center}.messages-conv-body{flex:1;min-width:0}.messages-cover-avatar,.messages-cover-fallback{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.messages-cover-fallback{display:grid;place-items:center;background:var(--paper-2);border:1px solid var(--border);font-weight:700;font-size:.85rem;color:var(--muted)}.messages-cover-fallback.class{background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.messages-type-pill{display:inline-block;margin-left:.4rem;padding:.05rem .4rem;border-radius:999px;font-size:.65rem;font-weight:700;vertical-align:middle;background:var(--accent-soft);color:var(--accent)}.messages-cover-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.75rem}.messages-cover-preview{width:56px;height:56px;border-radius:12px;object-fit:cover}.messages-cover-preview.empty{display:grid;place-items:center;background:var(--paper-2);border:1px dashed var(--border);font-weight:700;color:var(--muted)}.messages-conv-item.on,.messages-conv-item:hover{background:var(--accent-soft)}.messages-conv-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.messages-conv-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.messages-unread{min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.messages-muted-pill{font-size:.65rem;font-weight:700;color:var(--muted);flex-shrink:0}.messages-conv-preview{font-size:.82rem;margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages-conv-time{font-size:.72rem;margin-top:.15rem}.messages-thread-pane{display:flex;flex-direction:column;min-height:0}.messages-empty{flex:1;display:grid;place-items:center;padding:2rem}.messages-thread-head{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0;min-width:0}.messages-thread-title{flex:1;min-width:0;display:flex;flex-direction:column}.messages-thread-title .muted,.messages-thread-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages-thread-title .muted{font-size:.8rem}.messages-back{display:none}.messages-thread-body{flex:1;overflow-y:auto;padding:.85rem;display:flex;flex-direction:column;gap:.65rem;-webkit-overflow-scrolling:touch}.messages-bubble-row{display:flex;gap:.45rem;align-items:flex-end;max-width:92%}.messages-bubble-row.mine{align-self:flex-end;flex-direction:row-reverse}.messages-bubble{background:var(--paper-2);border:1px solid var(--border);border-radius:14px;padding:.55rem .75rem;max-width:100%;min-width:0}.messages-bubble.mine{background:color-mix(in srgb,var(--accent) 18%,var(--surface));border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.messages-bubble-name{display:inline-block;font-size:.75rem;font-weight:700;margin-bottom:.15rem;color:var(--accent);text-decoration:none}.messages-bubble-name:hover{text-decoration:underline}.messages-bubble-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.messages-bubble-meta{display:flex;gap:.6rem;align-items:center;margin-top:.35rem;font-size:.7rem;color:var(--muted)}.messages-report{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0;text-decoration:underline;font-size:inherit}.messages-files{list-style:none;margin:.45rem 0 0;padding:0;display:grid;gap:.55rem}.messages-attachment{min-width:0}.messages-files a{color:var(--accent);font-weight:600;font-size:.88rem}.messages-file-preview{display:block;max-width:min(280px,70vw)}.messages-file-preview-btn{padding:0;border:0;background:none;cursor:zoom-in;text-align:left;font:inherit;color:inherit}.messages-image-lightbox{position:fixed;inset:0;z-index:10060;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(4rem + env(safe-area-inset-top, 0px)) 1rem calc(4.5rem + env(safe-area-inset-bottom, 0px));box-sizing:border-box}.messages-image-lightbox-backdrop{position:absolute;inset:0;border:0;padding:0;background:rgba(0,0,0,.9);cursor:pointer}.messages-image-lightbox-close{position:absolute;top:calc(.75rem + env(safe-area-inset-top, 0px));right:calc(.75rem + env(safe-area-inset-right, 0px));z-index:2;width:2.75rem;height:2.75rem;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:1.75rem;line-height:1;cursor:pointer}.messages-image-lightbox-close:hover{background:rgba(255,255,255,.24)}.messages-image-lightbox-stage{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%;min-width:0;min-height:0}.messages-image-lightbox-img{display:block;width:auto;height:auto;max-width:min(96vw,1400px);max-height:calc(100dvh - 9rem);object-fit:contain;border-radius:8px;pointer-events:none;background:transparent}.messages-image-lightbox-footer{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom, 0px));background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-size:.85rem}.messages-image-lightbox-footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages-image-lightbox-footer a,.messages-image-lightbox-save{color:#fff;font-weight:600;flex-shrink:0;text-decoration:underline;text-underline-offset:.15em;background:none;border:0;padding:0;font:inherit;cursor:pointer}.messages-image-lightbox-save:disabled{opacity:.65;cursor:wait}.messages-file-preview img{display:block;width:100%;max-height:240px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:var(--paper-2)}.messages-file-preview span{display:block;margin-top:.25rem;font-size:.75rem;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages-file-preview-caption{display:flex;flex-direction:column;gap:.05rem;margin-top:.3rem}.messages-file-preview-name{font-size:.78rem;font-weight:600;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages-file-preview-meta{font-size:.7rem;font-weight:500}.messages-file-card{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:12px;background:var(--paper-2);text-decoration:none;color:inherit;max-width:min(360px,90vw);transition:border-color .15s ease,background .15s ease}.messages-file-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:color-mix(in srgb,var(--accent) 4%,var(--paper-2))}.messages-file-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,var(--paper));border:1px solid var(--border);font-size:.62rem;font-weight:800;letter-spacing:-.02em;color:var(--accent);flex-shrink:0}.messages-file-icon--pdf{background:color-mix(in srgb,#e74c3c 14%,var(--paper));color:#c0392b}.messages-file-icon--document{background:color-mix(in srgb,#2980b9 14%,var(--paper));color:#1f6dad}.messages-file-icon--spreadsheet{background:color-mix(in srgb,#27ae60 14%,var(--paper));color:#1e8449}.messages-file-icon--presentation{background:color-mix(in srgb,#e67e22 14%,var(--paper));color:#ca6f1e}.messages-file-icon--archive{background:color-mix(in srgb,#8e44ad 14%,var(--paper));color:#7d3c98}.messages-file-icon--video{background:color-mix(in srgb,#34495e 14%,var(--paper));color:#2c3e50;font-size:.85rem}.messages-file-icon--audio{background:color-mix(in srgb,#16a085 14%,var(--paper));color:#117a65;font-size:.9rem}.messages-file-icon--code,.messages-file-icon--text{background:color-mix(in srgb,#7f8c8d 14%,var(--paper));color:#566573}.messages-file-icon--data,.messages-file-icon--generic{background:color-mix(in srgb,var(--muted) 18%,var(--paper));color:var(--muted)}.messages-file-icon--image{background:color-mix(in srgb,#9b59b6 14%,var(--paper));color:#8e44ad}.messages-file-card-body{display:flex;flex-direction:column;gap:.12rem;min-width:0;flex:1}.messages-file-card-body strong{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages-file-card-body .muted{font-size:.72rem}.messages-file-card-action{flex-shrink:0;width:1.75rem;height:1.75rem;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--paper));color:var(--accent);font-size:.85rem;font-weight:700}.messages-file-preview-pdf{max-width:min(360px,90vw)}.messages-file-preview-pdf-frame{position:relative;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--paper)}.messages-file-preview-pdf iframe{display:block;width:min(360px,90vw);height:220px;border:0;background:var(--paper)}.messages-file-preview-pdf-open{position:absolute;right:.55rem;bottom:.55rem;padding:.28rem .55rem;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:.72rem;font-weight:700;text-decoration:none}.messages-file-preview-pdf-open:hover{background:rgba(0,0,0,.86)}.messages-file-preview-media audio,.messages-file-preview-media video{display:block;width:min(320px,85vw);max-height:240px;border-radius:10px;background:#000}.messages-file-card-link{display:block;margin-top:.25rem;font-size:.75rem;font-weight:600;color:var(--accent);text-decoration:none}.messages-file-preview-text{max-width:min(360px,90vw)}.messages-file-preview-text pre{margin:0 0 .35rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:10px;background:var(--paper-2);font-size:.75rem;line-height:1.35;max-height:160px;overflow:auto;white-space:pre-wrap;word-break:break-word}.messages-file-preview-text a{font-size:.75rem;font-weight:600;color:var(--accent)}.messages-file-loading{font-size:.75rem;padding:.35rem 0}.messages-pending-chip-preview .messages-file-preview img{width:40px;height:40px;max-height:40px;border-radius:8px;object-fit:cover}.messages-pending-chip-preview .messages-file-preview span{display:none}.messages-pending-chip-icon .messages-file-icon{width:1.75rem;height:1.75rem;font-size:.55rem}.messages-pending-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.78rem}.messages-composer.drag-over{outline:2px dashed color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:-4px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.messages-bubble.deleted{opacity:.85;border-style:dashed}.messages-deleted-banner{font-size:.72rem;font-weight:700;color:var(--warn);margin-bottom:.25rem}.messages-admin-hint{margin:0;padding:.45rem .9rem;font-size:.78rem;border-bottom:1px solid var(--border)}.messages-pending-thumb{width:28px;height:28px;object-fit:cover;border-radius:6px;flex-shrink:0}.messages-composer{border-top:1px solid var(--border);padding:.65rem .75rem;flex-shrink:0;background:var(--surface)}.messages-composer-row{display:flex;gap:.4rem;align-items:flex-end}.messages-composer-icon{flex-shrink:0;min-width:44px}.messages-composer textarea{flex:1;resize:none;min-height:42px;max-height:120px;min-width:0;border-radius:10px;border:1px solid var(--border);background:var(--paper);color:var(--ink);padding:.55rem .7rem;font:inherit}.messages-pending-files{display:grid;gap:.4rem;margin-bottom:.45rem}.messages-pending-chip{display:flex;align-items:center;gap:.45rem;padding:.35rem .45rem .35rem .35rem;border-radius:12px;background:var(--paper-2);border:1px solid var(--border);font-size:.78rem;max-width:100%;min-width:0}.messages-pending-chip-body{display:flex;flex-direction:column;gap:.05rem;min-width:0;flex:1}.messages-pending-chip-meta{font-size:.68rem}.messages-pending-chip button{border:0;background:transparent;cursor:pointer;color:var(--muted);width:1.75rem;height:1.75rem;border-radius:999px;flex-shrink:0}.messages-pending-chip button:hover{background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--ink)}.messages-members-panel{border-bottom:1px solid var(--border);padding:.75rem;max-height:40vh;overflow-y:auto}.messages-members-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.messages-member-row{display:flex;align-items:center;gap:.55rem;min-width:0}.messages-member-row>.avatar,.messages-member-row>.avatar-wrap{flex:0 0 auto;width:40px;height:40px;max-width:40px;max-height:40px}.messages-member-row>div:not(.avatar-wrap):not(.avatar){min-width:0;flex:1}.messages-member-row .btn{margin-left:auto;flex-shrink:0}.messages-modal-root{position:fixed;inset:0;z-index:80;display:grid;place-items:end center}.messages-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.45)}.messages-modal{position:relative;z-index:1;width:min(520px,100%);max-height:min(85vh,640px);overflow:auto;background:var(--surface);border-radius:16px 16px 0 0;padding:1rem 1rem calc(1.25rem + env(safe-area-inset-bottom, 0px));box-shadow:0 -12px 40px rgba(0,0,0,.25)}.messages-modal h2{margin:0 0 .75rem}.messages-modal-head{display:flex;align-items:center;gap:.45rem;margin-bottom:.75rem}.messages-modal-head h2{margin:0}.messages-choose-list{display:grid;gap:.5rem;margin:.25rem 0 1rem}.messages-choose-row{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;border:1px solid var(--border);background:var(--paper);border-radius:12px;padding:.85rem .95rem;cursor:pointer;color:inherit}.messages-choose-row:hover{border-color:var(--accent);background:var(--accent-soft)}.messages-pick-list{display:grid;gap:.35rem;max-height:40vh;overflow-y:auto;margin:.75rem 0}.messages-pick-row{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;border:1px solid var(--border);background:var(--paper);border-radius:10px;padding:.45rem .6rem;cursor:pointer;color:inherit;min-width:0}.messages-pick-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.messages-pick-row.on{border-color:var(--accent);background:var(--accent-soft)}.messages-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.messages-nav-badge{position:absolute;top:2px;right:10px;min-width:1.05rem;height:1.05rem;padding:0 .28rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.65rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;pointer-events:none}.topnav-link .messages-nav-badge{top:.2rem;right:.25rem;box-shadow:0 0 0 2px var(--surface)}.mobile-nav-link .messages-nav-badge{top:4px;right:max(.15rem,8%)}.mobile-more-link .messages-nav-badge,.mobile-more-link-badge .messages-nav-badge{position:static;margin-left:0}.mobile-nav-link{position:relative}@media (max-width:900px){.shell-messages{height:100dvh;height:100svh;max-height:100dvh;max-height:100svh}.messages-layout,.shell.shell-mobile-tabs.shell-messages{height:100%;max-height:100%}.messages-layout{grid-template-columns:1fr;flex:1 1 auto;min-height:0;border:0;border-radius:0;background:transparent}.messages-layout.has-thread .messages-list-pane,.messages-layout:not(.has-thread) .messages-thread-pane{display:none}.messages-back{display:inline-flex;min-width:40px;padding-inline:.55rem}.messages-list-pane,.messages-thread-pane{border:0;border-radius:0;background:transparent;height:100%}.messages-list-head{padding:.75rem max(.75rem,var(--sar)) .5rem max(.75rem,var(--sal))}.messages-list-search{padding:.55rem max(.75rem,var(--sar)) .75rem max(.75rem,var(--sal))}.messages-conv-item{padding-left:max(.75rem,var(--sal));padding-right:max(.75rem,var(--sar))}.messages-list-title{font-size:1.1rem}.messages-composer,.messages-thread-head{padding:.55rem .65rem}.messages-composer-row .messages-btn{flex-shrink:0}.messages-modal{width:100%;max-height:min(90dvh,720px)}.messages-members-panel{max-height:35dvh}}@media (min-width:901px){.messages-modal-root{place-items:center}.messages-modal{border-radius:16px;padding-bottom:1.25rem}}.toast-host{position:fixed;right:max(12px,var(--sar,0px));bottom:calc(12px + var(--mobile-nav-h, 0px) + env(safe-area-inset-bottom, 0px));z-index:120;display:flex;flex-direction:column-reverse;gap:.5rem;width:min(360px,calc(100% - 24px));pointer-events:none}@media (min-width:901px){.toast-host{bottom:20px}}.toast-card{pointer-events:auto;width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:var(--radius);box-shadow:var(--shadow-hover);padding:.75rem .9rem;cursor:pointer;animation:toast-in .22s ease}.toast-card strong{display:block;font-size:.88rem}.toast-card span{display:block;margin-top:.2rem;font-size:.82rem;color:var(--muted);line-height:1.35}@keyframes toast-in{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.toast-card{animation:none}}.survey-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem 1rem;margin:0 0 1rem;padding:.75rem .95rem;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.survey-banner p{margin:0}.survey-q-list{display:grid;gap:.75rem}.survey-q-card{display:grid;gap:.5rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.survey-q-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.survey-options{display:grid;gap:.35rem}.survey-form fieldset.survey-field{border:0;margin:0 0 1.1rem;padding:0}.survey-form .survey-field legend{font-weight:650;margin-bottom:.4rem}.survey-scale{display:flex;gap:.75rem;flex-wrap:wrap}.survey-scale label{display:grid;justify-items:center;gap:.2rem;font-weight:650}.survey-result-q{margin:1rem 0;padding-top:.75rem;border-top:1px solid var(--border)}.survey-result-q h3{margin:0 0 .4rem;font-size:1rem}.survey-text-answers{list-style:none;padding:0;margin:0;display:grid;gap:.65rem}.survey-text-answers p{margin:.2rem 0 0}.sr-page{max-width:920px;margin:0 auto;padding:.25rem 0 3rem}.sr-page-header{margin-bottom:1.5rem}.sr-brand-kicker{margin:0 0 .35rem;font-size:.82rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.sr-page-header .page-title{margin-bottom:.45rem}.sr-page-header .page-lead{max-width:36rem}.sr-muted{color:color-mix(in srgb,var(--ink) 62%,transparent);margin:.2rem 0 .85rem;line-height:1.45;font-size:.95rem}.sr-planner{display:grid;gap:1.15rem}.sr-mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:.3rem;border-radius:999px;background:color-mix(in srgb,var(--ink) 5%,var(--surface));border:1px solid var(--border)}.sr-mode-tab{display:grid;gap:.1rem;text-align:center;padding:.65rem .5rem;border:0;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease}.sr-mode-tab:hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}.sr-mode-tab.is-active{background:var(--surface);box-shadow:0 1px 0 color-mix(in srgb,var(--ink) 8%,transparent),0 6px 18px color-mix(in srgb,var(--ink) 8%,transparent);transform:translateY(-1px)}.sr-mode-label{font-weight:750;font-size:.95rem}.sr-mode-hint{font-size:.72rem;line-height:1.25;color:color-mix(in srgb,var(--ink) 55%,transparent)}.sr-mode-panel{min-height:10rem;animation:sr-in .28s ease both}@keyframes sr-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.sr-mode-panel,.sr-mode-tab.is-active{animation:none;transform:none}}.sr-section-heading{margin:0 0 .3rem;font-size:1.2rem;letter-spacing:-.01em}.sr-about-toggle,.sr-back,.sr-text-btn{appearance:none;border:0;background:transparent;color:var(--accent);font:inherit;font-weight:650;padding:0;cursor:pointer;text-align:left}.sr-back{margin:0 0 .85rem}.sr-about-toggle:hover,.sr-back:hover,.sr-text-btn:hover{text-decoration:underline}.sr-setup-block{margin-bottom:1.35rem;padding-bottom:.35rem}.sr-setup-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.55rem;margin:0 0 1rem;padding:.65rem .85rem;border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border))}.sr-setup-chips{display:flex;flex-wrap:wrap;gap:.4rem}.sr-chip{display:inline-flex;align-items:center;padding:.28rem .65rem;border-radius:999px;font-size:.85rem;font-weight:700;background:var(--surface);border:1px solid var(--border)}.sr-family-grid{display:grid;gap:.7rem}@media (min-width:720px){.sr-family-grid{grid-template-columns:repeat(2,1fr)}}.sr-family-card,.sr-variant-card{display:grid;gap:.3rem;text-align:left;padding:1rem 1.05rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.sr-family-card:hover,.sr-variant-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));transform:translateY(-2px);box-shadow:0 10px 28px color-mix(in srgb,var(--ink) 8%,transparent)}.sr-compare-card[data-family=science],.sr-explore-family[data-family=science],.sr-family-card[data-family=science],.sr-year-plan[data-family=science]{--sr-tint:#2f6b4f}.sr-compare-card[data-family=science-life],.sr-explore-family[data-family=science-life],.sr-family-card[data-family=science-life],.sr-year-plan[data-family=science-life]{--sr-tint:#3b6fb0}.sr-compare-card[data-family=sprog],.sr-explore-family[data-family=sprog],.sr-family-card[data-family=sprog],.sr-year-plan[data-family=sprog]{--sr-tint:#8a5a2b}.sr-compare-card[data-family=samfund],.sr-explore-family[data-family=samfund],.sr-family-card[data-family=samfund],.sr-year-plan[data-family=samfund]{--sr-tint:#1a2744}.sr-compare-card[data-family=musik],.sr-explore-family[data-family=musik],.sr-family-card[data-family=musik],.sr-year-plan[data-family=musik]{--sr-tint:#7a3b5c}.sr-family-card{border-left:4px solid var(--sr-tint,var(--accent))}.sr-family-name{font-weight:780;font-size:1.05rem}.sr-family-tagline{font-size:.88rem;line-height:1.4;color:color-mix(in srgb,var(--ink) 68%,transparent)}.sr-variant-list{display:grid;gap:.5rem;margin-top:.65rem}.sr-variant-card strong{font-size:1rem}.sr-variant-card span{font-size:.86rem;color:color-mix(in srgb,var(--ink) 64%,transparent)}.sr-choice-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:.45rem 0 .25rem}.sr-choice{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:999px;padding:.6rem .95rem;font:inherit;font-weight:650;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.sr-choice:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.sr-choice-compact{min-width:2.55rem;padding:.42rem .65rem;border-radius:var(--radius-sm,8px)}.sr-choice.is-active,.sr-filter-chip.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface))}.sr-wizard-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.75rem}.sr-wizard-toolbar .sr-back{margin:0}.sr-toolbar-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.sr-detail{--sr-tint:var(--accent)}.sr-detail[data-family=science]{--sr-tint:#2f6b4f}.sr-detail[data-family=science-life]{--sr-tint:#3b6fb0}.sr-detail[data-family=sprog]{--sr-tint:#8a5a2b}.sr-detail[data-family=samfund]{--sr-tint:#1a2744}.sr-detail[data-family=musik]{--sr-tint:#7a3b5c}.sr-detail-header{margin-bottom:.85rem}.sr-family-eyebrow{margin:0 0 .2rem;font-size:.75rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em;color:var(--sr-tint,var(--accent))}.sr-detail-title{margin:0 0 .35rem;font-size:clamp(1.35rem,2.4vw,1.7rem);line-height:1.2;letter-spacing:-.02em}.sr-detail-tagline{margin:0;line-height:1.45;color:color-mix(in srgb,var(--ink) 72%,transparent);max-width:40rem}.sr-about{margin-top:1.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.sr-about-toggle{font-size:.95rem}.sr-blurbs{display:grid;gap:.85rem;margin:.85rem 0 0;animation:sr-in .25s ease both}@media (min-width:800px){.sr-blurbs{grid-template-columns:1fr 1fr}.sr-blurb-combo{grid-column:1/-1}}.sr-blurb{padding:.75rem 0 0}.sr-blurb h3{margin:0 0 .3rem;font-size:.98rem}.sr-blurb p{margin:0;font-size:.9rem;line-height:1.5;color:color-mix(in srgb,var(--ink) 82%,transparent)}.sr-year-plan{margin:1rem 0 1.25rem;padding:1rem;border-radius:calc(var(--radius) + 2px);border:1px solid var(--border);border-top:3px solid var(--sr-tint,var(--accent));background:linear-gradient(180deg,color-mix(in srgb,var(--sr-tint,var(--accent)) 7%,var(--surface)),var(--surface) 38%)}.sr-year-tabs{display:flex;gap:.35rem;margin-bottom:.85rem;position:sticky;top:calc(var(--shell-sticky-top, 0px) + .25rem);z-index:2;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);padding:.25rem 0}@media (min-width:860px){.sr-year-tabs{display:none}}.sr-year-tab{flex:1;appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:999px;padding:.45rem .6rem;font:inherit;font-weight:750;cursor:pointer}.sr-year-tab.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.sr-year-columns{display:grid;gap:1rem}@media (min-width:860px){.sr-year-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}}.sr-year-col{display:none}.sr-year-col.is-active{display:block}@media (min-width:860px){.sr-year-col{display:block;padding:.35rem .45rem .35rem 0;border-right:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.sr-year-col:last-child{border-right:0;padding-right:0}}.sr-year-heading{margin:0 0 .65rem;font-size:1.02rem}.sr-year-section{margin-bottom:.9rem}.sr-year-section-title{margin:0 0 .3rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,var(--ink) 52%,transparent)}.sr-slot-list{list-style:none;margin:0;padding:0;display:grid;gap:.22rem}.sr-slot-list li{font-size:.88rem;padding:.3rem .5rem;border-radius:7px;background:color-mix(in srgb,var(--paper) 55%,var(--surface))}.sr-slot-list-elective li{background:color-mix(in srgb,var(--accent) 14%,var(--surface));font-weight:600}.sr-year-empty{margin:0;font-size:.85rem;color:color-mix(in srgb,var(--ink) 48%,transparent)}.sr-electives{margin-top:.35rem;padding:1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface)}.sr-elective-list{display:grid;gap:.95rem}@media (min-width:720px){.sr-elective-list{grid-template-columns:1fr}}.sr-elective-field{display:grid;gap:.35rem}.sr-elective-label{font-weight:700;font-size:.95rem}.sr-compare-select select,.sr-elective-field select{font:inherit;padding:.65rem .75rem;border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:color-mix(in srgb,var(--paper) 40%,var(--surface));color:var(--ink)}.sr-elective-notes{margin:0;padding-left:1.05rem;font-size:.8rem;color:color-mix(in srgb,var(--ink) 58%,transparent)}.sr-elective-warn{margin:.1rem 0 0;font-size:.84rem;line-height:1.4;color:color-mix(in srgb,#8a3b2b 70%,var(--ink));font-weight:600}.sr-elective-optional,.sr-elective-year{font-weight:550;color:color-mix(in srgb,var(--ink) 52%,transparent)}.sr-complete{margin:0 0 1rem;padding:.7rem .9rem;border-radius:var(--radius);font-weight:650;font-size:.92rem}.sr-complete-ok{background:color-mix(in srgb,#2f6b4f 14%,var(--surface));border:1px solid color-mix(in srgb,#2f6b4f 30%,var(--border))}.sr-complete-warn{background:color-mix(in srgb,#8a5a2b 12%,var(--surface));border:1px solid color-mix(in srgb,#8a5a2b 28%,var(--border))}.sr-lang-current{margin:0 0 .85rem}.sr-filter-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.15rem}.sr-filter-chip{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:999px;padding:.38rem .78rem;font:inherit;font-weight:650;font-size:.86rem;cursor:pointer}.sr-explore-family{margin-bottom:1.5rem;padding-left:.8rem;border-left:3px solid var(--sr-tint,var(--accent))}.sr-compare-select{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.9rem;font-weight:650}.sr-compare-grid{display:grid;gap:1rem}@media (min-width:860px){.sr-compare-grid{grid-template-columns:1fr 1fr}}.sr-compare-card{padding:.9rem;border-radius:var(--radius);border:1px solid var(--border);border-top:3px solid var(--sr-tint,var(--accent));background:var(--surface)}.sr-compare-card h3{margin:0 0 .2rem}.sr-compare-title{margin:0 0 .5rem;font-size:.9rem;font-weight:650}.sr-builder-subjects{display:grid;gap:.15rem;margin:.65rem 0 1rem;padding:.35rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.sr-builder-subject{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .15rem;border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent)}.sr-builder-subject:last-child{border-bottom:0}.sr-builder-subject-name{font-weight:700}.sr-builder-subject .sr-choice-row{margin:0}.sr-clear-picks{margin-bottom:1rem}.sr-match-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.sr-match-item{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.sr-match-item strong{display:inline;margin-right:.35rem}.sr-match-badge{display:inline-block;font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.sr-match-exact .sr-match-badge{background:color-mix(in srgb,#2f6b4f 20%,var(--surface))}.sr-match-item p{margin:.3rem 0 0}@media (max-width:640px){.sr-mode-tabs{border-radius:var(--radius)}.sr-mode-tab{border-radius:calc(var(--radius) - 2px)}.sr-mode-hint{display:none}}