*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}:root{--primary: #0061a4;--on-primary: #ffffff;--primary-container: #d1e4ff;--on-primary-container: #001d36;--surface: #f8f9ff;--surface-bright: #ffffff;--surface-container: #eceef4;--surface-hi: #e6e8ee;--on-surface: #191c20;--outline: #c2c7cf;--outline-variant: #e0e2ec;--success-bg: #c8ecc9;--success-text: #0b2e10;--success-dot: #2e7d32;--neutral-bg: #e0e2ec;--neutral-text: #42474e;--neutral-dot: #73777f;--error-bg: #ffdad6;--error-text: #410002;--error-dot: #ba1a1a;--tertiary-container: #f2daff;--on-tertiary-container: #251431;--danger-border: #e8bcb7;--danger-text: #ba1a1a;--label: #42474e;--state-primary: rgba(0, 97, 164, .1);--state-row: rgba(0, 97, 164, .04);--state-neutral: rgba(25, 28, 32, .08);--scrim: rgba(25, 28, 32, .45);--shadow: rgba(25, 28, 32, .15);--font: system-ui, -apple-system, "Inter", "Roboto", sans-serif;--mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--ease-in: cubic-bezier(.05, .7, .1, 1);--ease-out: cubic-bezier(.3, 0, .8, .15);--ease-std: cubic-bezier(.2, 0, 0, 1);--r-pill: 100px;--r-card: 24px;--r-inner: 16px}:root[data-theme=dark]{--primary: #9ecaff;--on-primary: #003258;--primary-container: #00497d;--on-primary-container: #d1e4ff;--surface: #111418;--surface-bright: #2b2f35;--surface-container: #1d2024;--surface-hi: #272a2f;--on-surface: #e1e2e8;--outline: #42474e;--outline-variant: #2f3338;--success-bg: #1e4620;--success-text: #c8ecc9;--success-dot: #81c784;--neutral-bg: #2f3338;--neutral-text: #c2c7cf;--neutral-dot: #8c9199;--error-bg: #5c1414;--error-text: #ffb4ab;--error-dot: #ff5449;--tertiary-container: #523e5f;--on-tertiary-container: #f2daff;--danger-border: #6e3b37;--danger-text: #ffb4ab;--label: #c2c7cf;--state-primary: rgba(158, 202, 255, .14);--state-row: rgba(158, 202, 255, .05);--state-neutral: rgba(225, 226, 232, .08);--scrim: rgba(0, 0, 0, .55);--shadow: rgba(0, 0, 0, .45)}body{font-family:var(--font);font-size:14px;font-weight:400;color:var(--on-surface);background:var(--surface);-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}.app{min-height:100vh;display:flex;flex-direction:column;position:relative}.logo-name{font-size:17px;font-weight:500;color:var(--on-surface)}.muted{color:var(--neutral-text)}.nm{display:block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint{font-size:12px;color:var(--neutral-text)}.login-screen{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 16px}.login-card{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.login-card>*{animation:rise .42s var(--ease-in) both}.login-card>*:nth-child(2){animation-delay:80ms}.login-card>*:nth-child(3){animation-delay:.16s}.login-card>*:nth-child(4){animation-delay:.24s}.login-card>*:nth-child(5){animation-delay:.32s}.login-title{font-size:28px;font-weight:500}.login-sub{font-size:15px;color:var(--neutral-text)}.login-who{display:inline-flex;align-items:center;gap:12px;padding:6px 20px 6px 8px;border-radius:var(--r-pill);background:var(--surface-container);text-align:left;max-width:100%}.login-who-text{display:flex;flex-direction:column;min-width:0}.login-who-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-error{font-size:13px;color:var(--danger-text);text-align:center}.login-card .field,.login-card .btn--full,.login-card .row{width:100%}.tg-slot{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding-top:4px}.code-row{display:flex;gap:8px;align-items:center;width:100%}.code-cells{display:flex;gap:6px;flex:1;min-width:0}.code-cell{flex:1;min-width:0;height:48px;padding:0;text-align:center;font-family:var(--mono);font-size:18px;font-weight:500;text-transform:uppercase;caret-color:transparent;color:var(--on-surface);background:var(--surface-bright);border:1.5px solid var(--outline);border-radius:14px;outline:none;transition:border-color .15s,box-shadow .15s}.code-cell:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--state-primary)}.code-cell[value]:not([value=""]){border-color:var(--primary)}.code-cell{animation:code-in .36s var(--ease-in) both;animation-delay:calc(var(--i, 0) * 50ms)}.code-cell[value]:not([value=""]){animation:code-pop .22s var(--ease-in)}.code-cells--busy .code-cell{animation:code-wave .9s var(--ease-std) infinite;animation-delay:calc(var(--i, 0) * 90ms);opacity:1}.code-cells--busy .code-cell[value]:not([value=""]){animation:code-wave .9s var(--ease-std) infinite;animation-delay:calc(var(--i, 0) * 90ms)}.code-cells--error{animation:code-shake .38s var(--ease-std)}.code-cells--error .code-cell{border-color:var(--danger-text)}@keyframes code-in{0%{opacity:0;transform:translateY(10px) scale(.92)}}@keyframes code-pop{0%{transform:scale(.82)}55%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes code-wave{0%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}@keyframes code-shake{0%,to{transform:translate(0)}18%{transform:translate(-8px)}36%{transform:translate(7px)}54%{transform:translate(-5px)}72%{transform:translate(3px)}}.invite-field{text-align:center;letter-spacing:6px;font-family:var(--mono);font-size:18px;text-transform:uppercase}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.field{height:44px;padding:0 16px;border:1.5px solid var(--outline);border-radius:var(--r-pill);background:var(--surface-bright);font-family:var(--font);font-size:14px;color:var(--on-surface);outline:none;transition:border-color .15s;width:100%}.field:focus{border-color:var(--primary)}.field::placeholder{color:var(--neutral-dot)}textarea.field{height:auto;min-height:96px;padding:12px 16px;border-radius:var(--r-inner);resize:vertical;line-height:1.45}select.field{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 20px;border-radius:var(--r-pill);border:none;font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity .12s,background .12s;flex-shrink:0}.btn--primary{background:var(--primary);color:var(--on-primary)}.btn--tonal{background:var(--primary-container);color:var(--on-primary-container)}.btn--outline{background:transparent;border:1.5px solid var(--outline);color:var(--primary)}.btn--danger{background:transparent;border:1.5px solid var(--danger-border);color:var(--danger-text)}.btn--ghost{background:transparent;border:1.5px dashed var(--outline);color:var(--neutral-text)}.btn--full{width:100%}.btn--sm{height:36px;padding:0 14px;font-size:13px}.btn-icon{width:36px;height:36px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--primary);transition:background .12s;flex-shrink:0}.btn-icon:hover{background:var(--state-primary)}.btn-icon--danger{color:var(--danger-text)}.btn-icon--danger:hover{background:#ba1a1a1a}.btn-icon--neutral{color:var(--neutral-text)}.btn-icon--neutral:hover{background:var(--state-neutral)}.theme-toggle{position:fixed;top:16px;right:16px;z-index:250;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--outline);background:var(--surface-bright);color:var(--on-surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s,border-color .12s,color .12s}.theme-toggle:hover{border-color:var(--primary);color:var(--primary)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);font-size:12px;white-space:nowrap;background:var(--neutral-bg);color:var(--neutral-text)}.chip-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.chip--primary{background:var(--primary-container);color:var(--on-primary-container)}.chip--online{background:var(--success-bg);color:var(--success-text)}.chip--tertiary{background:var(--tertiary-container);color:var(--on-tertiary-container)}.chip--error{background:var(--error-bg);color:var(--error-text)}.avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;object-fit:cover;background:var(--primary-container);color:var(--on-primary-container);display:inline-flex;align-items:center;justify-content:center;font-weight:500;font-size:15px}.avatar--lg{width:88px;height:88px;font-size:32px}.card{min-width:0;overflow-wrap:anywhere;background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:var(--r-card);padding:20px;display:flex;flex-direction:column;gap:12px}.card-title{font-size:16px;font-weight:500}.row{display:flex;align-items:center;gap:12px}.row--wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:12px}.empty{text-align:center;color:var(--neutral-text);padding:32px 0}.logo{display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--on-primary);flex-shrink:0}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:100;padding:8px 24px;background:var(--surface);box-shadow:0 1px 0 transparent;transition:box-shadow .2s}.app-header--scrolled{box-shadow:0 1px 0 var(--outline-variant)}.brand-capsule{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 20px 0 10px;min-width:0;background:var(--surface-container);border-radius:var(--r-pill)}.brand-text{display:flex;flex-direction:column;gap:1px;min-width:0}.brand-name{font-size:15px;font-weight:500;line-height:1.2;white-space:nowrap}.brand-sub{font-size:12px;line-height:1.2;color:var(--neutral-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-right{display:flex;align-items:center;gap:8px}.theme-toggle--inline{position:static}.tab-menu{position:relative}.tab-menu-btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 12px 0 16px;border:1.5px solid var(--outline);border-radius:var(--r-pill);background:var(--surface-bright);color:var(--on-surface);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer}.tab-menu-btn:hover{border-color:var(--primary)}.tab-menu-btn svg{flex-shrink:0}.tab-menu-chev{display:inline-flex;transition:transform .25s var(--ease-std)}.tab-menu-chev--open{transform:rotate(180deg)}.tab-menu-list{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;z-index:300;display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--surface-container);border:1px solid var(--outline-variant);border-radius:var(--r-card);animation:dialog-in .24s var(--ease-in)}.tab-menu-item{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 14px;border:none;background:transparent;border-radius:var(--r-pill);font-family:var(--font);font-size:14px;color:var(--label);cursor:pointer;text-align:left}.tab-menu-item:hover:not(.tab-menu-item--active){background:var(--state-primary)}.tab-menu-item--active{background:var(--primary-container);color:var(--on-primary-container);font-weight:500}.tab-menu-item--danger{color:var(--danger-text)}.tab-menu-sep{border:none;border-top:.5px solid var(--outline);margin:4px 8px}.main{flex:1;padding:16px 24px 32px;display:flex;flex-direction:column;gap:20px;min-width:0;width:100%;max-width:1200px;margin:0 auto}.page-title{font-size:20px;font-weight:500;animation:title-in .32s var(--ease-in) 60ms both}.bottom-nav{display:none}.bn-item{display:flex;flex:1;flex-direction:column;align-items:center;gap:4px;min-width:64px;max-width:120px;padding:0;border:0;background:transparent;color:var(--label);font:inherit;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.bn-indicator{display:grid;place-items:center;width:64px;height:32px;border-radius:var(--r-pill);transition:background .2s var(--ease-std)}@media (hover: hover){.bn-item:not([aria-current=page]):hover .bn-indicator{background:var(--state-primary)}}.bn-item[aria-current=page]{color:var(--on-surface);font-weight:500}.bn-item[aria-current=page] .bn-indicator{background:var(--primary-container);color:var(--on-primary-container)}@media (max-width: 640px){.app-header{padding:8px 12px}.tab-menu{display:none}.brand-capsule{min-height:48px}.main{padding:8px 16px 104px;gap:12px;max-width:none}.card{padding:16px}.bottom-nav{display:flex;justify-content:center;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:200;padding:12px 16px calc(16px + env(safe-area-inset-bottom));background:var(--surface-container)}.snackbar{bottom:104px}}.only-mobile{display:none}@media (max-width: 640px){.only-mobile{display:inline-flex}}.snackbar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:500;background:var(--on-surface);color:var(--surface);padding:12px 20px;border-radius:var(--r-pill);font-size:14px;max-width:calc(100vw - 32px);animation:snack-in .32s var(--ease-in) both}@keyframes snack-in{0%{opacity:0;transform:translate(-50%,12px)}}.seg{display:inline-flex;gap:2px;padding:3px;background:var(--surface-container);border-radius:var(--r-pill);max-width:100%;overflow-x:auto;scrollbar-width:none;align-self:flex-start}.seg::-webkit-scrollbar{display:none}.seg button{height:32px;padding:0 14px;border:none;background:transparent;border-radius:var(--r-pill);font-family:var(--font);font-size:13px;color:var(--label);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .2s var(--ease-std),color .2s}.seg button[aria-selected=true]{background:var(--surface-bright);color:var(--on-surface);font-weight:500}.seg button.seg--today{box-shadow:inset 0 0 0 1.5px var(--primary)}.seg--full{align-self:stretch}.seg--full button{flex:1}.switch{position:relative;display:inline-flex;width:40px;height:24px;flex-shrink:0}.switch input{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;width:calc(100% + 20px);height:calc(100% + 20px);opacity:0;margin:0;cursor:pointer;z-index:1}.switch-track{width:40px;height:24px;border-radius:var(--r-pill);background:var(--surface-container);border:1.5px solid var(--outline);transition:background .2s,border-color .2s;position:relative}.switch-track:after{content:"";position:absolute;top:3.5px;left:3.5px;width:14px;height:14px;border-radius:50%;background:var(--outline);transition:transform .25s var(--ease-std),background .2s}.switch input:checked+.switch-track{background:var(--primary);border-color:var(--primary)}.switch input:checked+.switch-track:after{background:var(--on-primary);transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--primary);outline-offset:2px}.choice{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 14px;border-radius:var(--r-inner);background:var(--surface-container);cursor:pointer;font-size:14px}.choice .grow{min-width:0}.scrim-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:16px;animation:fade-in .28s linear}.scrim-dialog--out{animation:fade-out .2s linear forwards;pointer-events:none}.dialog{display:flex;flex-direction:column;gap:16px;width:min(480px,100%);max-height:100%;overflow-y:auto;padding:24px;background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:var(--r-card);animation:dialog-in .32s var(--ease-in)}.dialog--out{animation:dialog-out .2s var(--ease-out) forwards}.dialog-title{font-size:20px;font-weight:500}.dialog-body{display:flex;flex-direction:column;gap:14px;color:var(--label);line-height:1.45}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.96)}}@keyframes dialog-out{to{opacity:0;transform:translateY(12px) scale(.96)}}.btn,.btn-icon,.act-btn,.seg button,.day-pill,.hamburger-btn{position:relative}.btn:after,.btn-icon:after,.act-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:currentColor;opacity:0;pointer-events:none;transition:opacity .15s}@media (hover: hover){.btn:hover:not(:disabled):after,.btn-icon:hover:after,.act-btn:hover:after{opacity:.08}}.btn:active:not(:disabled):after,.btn-icon:active:after,.act-btn:active:after{opacity:.12}.btn:hover:not(:disabled),.btn:active:not(:disabled){opacity:1}.btn:disabled{opacity:.38;cursor:not-allowed}.btn-icon:hover{background:transparent}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.field:focus-visible{outline:none}.field:focus{box-shadow:0 0 0 3px var(--state-primary)}.card{animation:rise .32s var(--ease-in) both}.tabnum{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important}}.invite-code{font-family:var(--mono);font-size:18px;letter-spacing:3px;font-weight:500}.invite-row{display:flex;align-items:center;gap:10px;padding:8px 0;flex-wrap:wrap}.invite-row+.invite-row,.member-row+.member-row{border-top:1px solid var(--outline-variant)}.member-row{display:flex;align-items:center;gap:12px;padding:8px 0;flex-wrap:wrap}.role-select{width:150px;height:40px;padding:0 14px;font-size:13px;cursor:pointer}.invite-new{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.invite-uses{display:flex;flex-direction:column;gap:4px;width:220px;max-width:100%}.invite-uses .field{text-align:center}.post-body{white-space:pre-wrap;word-break:break-word;line-height:1.5;font-size:14px}.post--pinned{border-color:var(--primary)}.profile-head{display:flex;align-items:center;gap:16px}.profile-name{font-size:20px;font-weight:500}.member{display:flex;align-items:center;gap:12px;padding:8px 0}.member+.member{border-top:1px solid var(--outline-variant)}.label{font-size:13px;font-weight:500;color:var(--label)}.week-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.day-card--today{border-color:var(--primary);border-width:2px}.day-head{display:flex;align-items:center;gap:10px}.lesson{display:flex;gap:14px;padding:12px 14px;border-radius:var(--r-inner);background:var(--surface-container)}.lesson--now{background:var(--primary-container);color:var(--on-primary-container);outline:2px solid var(--primary)}.lesson-time{width:52px;flex-shrink:0;font-family:var(--mono);font-size:13px;line-height:1.4}.lesson-time b{display:block;font-weight:500}.lesson-subj{font-weight:500}.lesson-meta{font-size:13px;color:var(--neutral-text);margin-top:2px}.lesson--now .lesson-meta{color:inherit;opacity:.8}.sched-grid{display:grid;grid-template-columns:68px repeat(6,minmax(0,1fr));gap:6px;background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:var(--r-card);padding:12px}.sg-head{text-align:center;padding:10px 4px;font-size:13px;font-weight:500;color:var(--label);border-radius:var(--r-pill)}.sg-head--today{background:var(--primary-container);color:var(--on-primary-container)}.sg-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:var(--mono);font-size:11px;color:var(--neutral-text);text-align:center}.sg-time b{font-size:15px;font-weight:500;color:var(--label);font-family:var(--font)}.sg-cell{min-height:84px;padding:8px;border-radius:var(--r-inner);border:1px solid transparent;background:color-mix(in srgb,var(--surface-container) 40%,transparent);display:flex;flex-direction:column;gap:6px}.sg-cell--full{background:var(--surface-container)}.sg-cell--now{background:var(--primary-container);color:var(--on-primary-container);outline:2px solid var(--primary)}.sg-lesson{display:flex;flex-direction:column;gap:2px;align-items:flex-start;font-size:12px}.sg-lesson .lesson-subj{font-size:13px;word-break:break-word}.sg-meta{font-size:11px;color:var(--neutral-text)}.sg-cell--now .sg-meta{color:inherit;opacity:.8}.sched{display:flex;flex-direction:column;gap:12px}.sched-view{margin-left:auto}.sched--grid .day-pills,.sched--grid .sched-cards,.sched--cards .sched-grid,.day-pills{display:none}.sched-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start}.sched-cards .card{padding:12px;gap:8px;border-radius:20px}.sched-cards .card-title{font-size:14px}.sched-cards .lesson{gap:10px;padding:8px 10px}.sched-cards .lesson-time{width:40px;font-size:11px}.sched-cards .lesson-subj{font-size:13px}.sched-cards .lesson-meta{font-size:11px;margin-top:1px}.sched-cards .muted{font-size:12px}@media (max-width: 1000px){.sched-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.sched-view{margin-left:0}.sched--cards .day-pills{display:inline-flex}.sched-cards{grid-template-columns:1fr;gap:10px}.day-card--hidden{display:none}.sched--grid .sched-grid{min-width:720px}.sched--grid{overflow-x:auto}}@media (min-width: 641px){.main:has(.sched){flex:none;height:calc(100dvh - 68px);padding:8px 24px 16px;gap:0}.main:has(.sched)>.page-title{display:none}.sched{flex:1;min-height:0}.sched--cards .sched-cards{flex:1;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr))}.sched--cards .sched-cards .card{height:100%;min-height:0;overflow-y:auto;scrollbar-width:thin}.sched--cards .sched-cards .day-card--today{height:100%}.sched--grid .sched-grid{flex:1;min-height:0;gap:4px;padding:8px;grid-template-rows:auto repeat(var(--rows, 6),minmax(0,1fr))}.sched--grid .sg-head{padding:6px 4px}.sched--grid .sg-cell{min-height:0;height:100%;padding:5px 8px;overflow-y:auto;scrollbar-width:thin;gap:4px;justify-content:center}.sched--grid .sg-lesson{gap:1px}.sched--grid .sg-time{gap:0}}@media (min-width: 641px){.sched--grid .sg-lesson .chip{padding:0 6px;font-size:11px;line-height:16px}}.day-rows{display:flex;flex-direction:column;gap:6px}.lesson--empty{background:color-mix(in srgb,var(--surface-container) 40%,transparent)}.lesson--empty .lesson-time{opacity:.6}.sched-cards .lesson{align-items:center}.lesson{min-height:52px}@media (min-width: 641px){.sched--cards .sched-cards .card{overflow:hidden}.sched--cards .day-rows{flex:1;min-height:0;display:grid;grid-template-rows:repeat(var(--rows, 6),minmax(0,1fr));gap:4px}.sched--cards .day-rows .lesson{min-height:0;padding:3px 10px;overflow:hidden}.sched--cards .day-rows .lesson-subj{font-size:12px;line-height:1.25}.sched--cards .day-rows .lesson-meta{font-size:11px;line-height:1.2;margin-top:0}.sched--cards .day-rows .lesson-time{font-size:10.5px;line-height:1.25}.sched--cards .sched-cards .card{padding:10px 12px;gap:6px}}.lesson{gap:16px}.lesson-time{width:46px}@media (min-width: 641px){.sched--cards .sched-cards{gap:14px}.sched--cards .sched-cards .card{padding:10px 16px 12px;gap:8px}.sched--cards .day-rows{gap:5px}.sched--cards .day-rows .lesson{padding:clamp(2px,.6vh,6px) 14px;gap:16px}.sched--cards .day-rows .lesson-subj{font-size:12.5px;line-height:1.3}.sched--cards .day-rows .lesson-meta{font-size:11px;line-height:1.3;margin-top:1px;letter-spacing:.01em}.sched--grid .sched-grid{gap:6px;padding:12px}.sched--grid .sg-cell{padding:8px 14px;gap:6px}.sched--grid .sg-lesson{gap:3px}.sched--grid .sg-lesson .lesson-subj{line-height:1.3}.sched--grid .sg-meta{line-height:1.35}}@media (max-width: 640px){.lesson{padding:14px 16px}.lesson-meta{margin-top:4px;line-height:1.4}}@media (min-width: 641px){.sched{--air: clamp(2px, calc(2px + (100dvh - 693px) / 22), 14px);--fs: clamp(12.5px, calc(12.5px + (100dvh - 693px) / 260), 14.5px)}.sched--cards .day-rows .lesson{padding:var(--air) 14px}.sched--cards .day-rows .lesson-subj{font-size:var(--fs)}.sched--cards .day-rows .lesson-meta{font-size:calc(var(--fs) - 1.5px)}.sched--cards .sched-cards .card{padding:10px 16px 12px}.sched--cards .day-rows{gap:calc(var(--air) / 2 + 3px)}.sched--grid .sg-cell{padding:calc(var(--air) + 4px) 14px}}.lesson--hit{cursor:pointer}.lesson--hit:hover:not(.lesson--now){background:color-mix(in srgb,var(--primary) 12%,var(--surface-container))}.lesson-hit{border:none;background:transparent;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}.sg-cell--full:hover:not(.sg-cell--now){background:color-mix(in srgb,var(--primary) 12%,var(--surface-container))}.lesson-info{display:flex;flex-direction:column;gap:2px}.lesson-info>div{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--outline-variant)}.lesson-info>div:last-child{border-bottom:none}.lesson-info dt{width:120px;flex-shrink:0;color:var(--neutral-text);font-size:13px}.lesson-info dd{font-size:14px;font-weight:500}.sched--cards .lesson-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched--cards .lesson .grow{min-width:0}.lesson-pop{position:fixed;z-index:400;width:340px;max-height:calc(100dvh - 16px);overflow-y:auto;padding:14px 18px 8px;background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:var(--r-card);box-shadow:0 8px 28px var(--shadow);animation:dialog-in .2s var(--ease-in)}.lesson-pop-head{display:flex;align-items:flex-start;gap:8px}.lesson-pop-title{flex:1;font-size:16px;font-weight:500;line-height:1.3;padding-top:6px}.lesson-pop .lesson-info>div{padding:8px 0;gap:12px}.lesson-pop .lesson-info dt{width:96px;font-size:12px}.lesson-pop .lesson-info dd{font-size:13px}.is-sel{outline:2px solid var(--primary);outline-offset:-2px}.hw{display:flex;flex-direction:column;gap:8px;padding:6px 0 10px;border-top:1px solid var(--outline-variant);margin-top:4px}.hw-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px}.hw-title{font-size:13px;font-weight:500;color:var(--label)}.hw-body{white-space:pre-wrap;word-break:break-word;line-height:1.45;font-size:13px}.hw-empty{font-size:13px;color:var(--neutral-text)}.hw .field{min-height:80px;font-size:13px}.hw-files{list-style:none;display:flex;flex-direction:column;gap:2px}.hw-files li{display:flex;align-items:center;gap:8px;min-height:40px}.hw-file{font-size:13px;color:var(--primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hw-file:hover{text-decoration:underline}.hw-badges{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.hw-badge{display:inline-flex;align-items:center;gap:3px;color:var(--primary);font-size:11px;font-weight:500;flex-shrink:0}.sg-lesson .hw-badges{margin-top:2px}.lesson-pop .hw-badge,.sg-lesson .hw-badge{margin-top:1px}.dialog .hw{margin-top:0}.hw-files{list-style:none;display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:8px}.hw-files li.hw-pill{display:inline-flex;align-items:stretch;min-height:0;max-width:100%;border-radius:var(--r-pill);background:var(--primary-container);color:var(--on-primary-container);overflow:hidden}.hw-pill-link{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;color:inherit;text-decoration:none;min-width:0;font-size:13px;position:relative}.hw-pill-link:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.hw-pill-link svg{flex-shrink:0}.hw-pill-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.hw-pill-size{font-size:11px;opacity:.75;white-space:nowrap;flex-shrink:0}.hw-pill-x{display:inline-flex;align-items:center;justify-content:center;width:40px;border:none;background:transparent;color:var(--danger-text);cursor:pointer;border-left:1px solid color-mix(in srgb,currentColor 18%,transparent)}.hw-pill-x:hover{background:#ba1a1a1f}.sg-sat-time{font-family:var(--mono);font-size:10.5px;color:var(--neutral-text);white-space:nowrap}.sg-cell--now .sg-sat-time{color:inherit;opacity:.8}.date-pill{display:inline-flex;align-items:center;height:38px;font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--on-surface)}
