:root{--bg: var(--tg-theme-secondary-bg-color, #efeff4);--card: var(--tg-theme-section-bg-color, var(--tg-theme-bg-color, #ffffff));--text: var(--tg-theme-text-color, #000000);--hint: var(--tg-theme-hint-color, #8e8e93);--link: var(--tg-theme-link-color, #2481cc);--accent: var(--tg-theme-button-color, #2481cc);--accent-text: var(--tg-theme-button-text-color, #ffffff);--accent-soft: color-mix(in srgb, var(--accent) 13%, transparent);--head: var(--tg-theme-section-header-text-color, var(--hint));--danger: var(--tg-theme-destructive-text-color, #e53935);--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent);--sep: var(--tg-theme-section-separator-color, color-mix(in srgb, var(--hint) 28%, transparent));--bar: var(--tg-theme-bottom-bar-bg-color, var(--card));--ok: #31b545;--warn: #e8930c;--r: 12px;--safe-b: max(env(safe-area-inset-bottom), var(--tg-safe-area-inset-bottom, 0px));--hint-2: color-mix(in srgb, var(--hint) 72%, var(--text));--ease: cubic-bezier(.22, .8, .24, 1);--tabbar-h: calc(56px + var(--safe-b));--kb: 0px;color-scheme:light dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0;overscroll-behavior:none}body{background:var(--bg);color:var(--text);font:16px/1.35 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}input,textarea,.rich,.invite-link,.text-block{-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:inherit}button:disabled{cursor:default}h1{margin:0}.hint{color:var(--hint)}.accent{color:var(--accent)}.small{font-size:13px}.tone-danger{color:var(--danger)}.tone-warn{color:var(--warn)}.tone-ok{color:var(--ok)}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input:focus-visible,.search input:focus-visible{outline:none}#app{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden}.screens{position:relative;flex:1;min-height:0}.screen{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:var(--tabbar-h)}.screen.pushed{background:var(--bg)}.screen.form{padding-bottom:0}.screen.fixed{overflow:hidden;padding-bottom:0}.screen.off{visibility:hidden;pointer-events:none}.screen.enter{z-index:2;animation:screen-in .28s var(--ease);box-shadow:-10px 0 30px #0000001a}.screen.under{animation:screen-under .28s var(--ease) forwards;pointer-events:none}.screen.leave{z-index:2;animation:screen-out .28s var(--ease) forwards;box-shadow:-10px 0 30px #0000001a;pointer-events:none}.screen.back{animation:screen-back .28s var(--ease)}.screen.tab-in-r{animation:tab-in-r .2s ease-out}.screen.tab-in-l{animation:tab-in-l .2s ease-out}.screen.tab-out{animation:fade-out .1s ease-in forwards;pointer-events:none}@keyframes screen-in{0%{transform:translate(100%)}}@keyframes screen-under{to{transform:translate(-24%)}}@keyframes screen-out{to{transform:translate(100%)}}@keyframes screen-back{0%{transform:translate(-24%)}}@keyframes tab-in-r{0%{opacity:0;transform:translate(14px)}}@keyframes tab-in-l{0%{opacity:0;transform:translate(-14px)}}@keyframes fade-out{to{opacity:0}}.page{padding:4px 0 28px;max-width:640px;margin:0 auto}.center-fill{height:100%;display:grid;place-items:center}.tabbar{position:absolute;left:0;right:0;bottom:0;z-index:20;height:var(--tabbar-h);display:flex;background:var(--bar);border-top:.5px solid var(--sep);padding:6px 4px calc(6px + var(--safe-b));transition:transform .26s var(--ease)}.tabbar.off{transform:translateY(100%)}.ptr{position:fixed;top:-44px;left:50%;z-index:25;width:38px;height:38px;margin-left:-19px;border-radius:50%;display:grid;place-items:center;background:var(--card);color:var(--accent);box-shadow:0 2px 10px #0000002e;opacity:0;pointer-events:none}.ptr.back{transition:transform .22s var(--ease),opacity .22s}.ptr.spin .icon{animation:spin .7s linear infinite}.net-bar{flex:none;padding:5px 16px;background:color-mix(in srgb,var(--warn) 16%,var(--bg));font-size:13px;text-align:center}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--hint-2);padding:2px 0;transition:color .16s}.tabbar button.on{color:var(--accent)}.tab-icon{position:relative;display:block;height:24px;transition:transform .12s var(--ease)}.tabbar button:active .tab-icon{transform:scale(.86)}.tab-icon .badge{position:absolute;top:-4px;left:15px}.tab-label{font-size:10.5px;font-weight:500;letter-spacing:.1px}.page-bar{position:sticky;top:0;z-index:5;height:44px;margin-bottom:-44px;display:flex;align-items:center;gap:10px;padding:0 16px;background:var(--bg);border-bottom:.5px solid var(--sep);opacity:0;visibility:hidden;transition:opacity .16s,visibility .16s}.page-bar.on{opacity:1;visibility:inherit}.screen.off .page-bar{transition:none}.page-bar-title{flex:1;min-width:0;font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-bar .round-btn{width:30px;height:30px;margin:0}.page-head{display:flex;align-items:flex-end;gap:12px;padding:10px 16px 6px}.page-titles{flex:1;min-width:0}.page-head h1{font-size:26px;line-height:1.15;font-weight:700;letter-spacing:-.4px;overflow-wrap:anywhere}.page-sub{color:var(--hint-2);font-size:14px;margin-top:3px}.round-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-text);flex:none;margin-bottom:2px;transition:transform .12s var(--ease)}.round-btn:active{transform:scale(.9)}.sheet-wrap{position:fixed;inset:0 0 var(--kb) 0;z-index:30;display:flex;flex-direction:column;justify-content:flex-end}.sheet-wrap.out{pointer-events:none}.sheet-back{position:absolute;inset:0 0 calc(-1 * var(--kb)) 0;background:#0000006b;animation:fade .24s}.sheet-wrap.out .sheet-back{animation:fade-out .24s forwards}.sheet{position:relative;display:flex;flex-direction:column;width:100%;max-width:640px;max-height:calc(100% - 44px);margin:0 auto;background:var(--bg);border-radius:16px 16px 0 0;animation:sheet-in .3s var(--ease);transition:transform .24s var(--ease)}.sheet-wrap.out .sheet{animation:sheet-out .24s ease-in forwards}.sheet-grab{flex:none;height:20px;display:grid;place-items:center}.sheet-grab:before{content:"";width:36px;height:4px;border-radius:2px;background:color-mix(in srgb,var(--hint) 45%,transparent)}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(12px + var(--safe-b))}.sheet .page{padding:0 0 8px}.sheet .page-head{padding:0 16px 2px}.sheet .page-head h1{font-size:20px;letter-spacing:-.2px}.sheet .page-sub{font-size:13.5px}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{to{transform:translateY(100%)}}.section{margin:16px 16px 0}.section-head{color:var(--head);font-size:13px;text-transform:uppercase;letter-spacing:.3px;padding:0 16px 7px;font-weight:500}.section-head .tag{text-transform:none}.section-body{background:var(--card);border-radius:var(--r);overflow:hidden}.section-plain{display:flex;flex-direction:column;gap:10px}.section-foot{color:var(--hint-2);font-size:13px;padding:7px 16px 0;line-height:1.4}.cell{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:9px 16px;position:relative;background:var(--card);transition:background .18s}.cell+.cell:before,.item-row+.item-row:before,div+div>.item-row:before,.fold+.fold>div>.hw-row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--sep)}.section-body>div+div>.item-row,.section-body>div{position:relative}.item-main,.hw-main{transition:background .18s}.cell.tappable:active,.item-main:active,.hw-main:active{background:color-mix(in srgb,var(--hint) 12%,var(--card));transition:none}.cell.disabled{opacity:.45}.cell-before{flex:none;display:flex;align-items:center}.cell-main{flex:1;min-width:0}.cell-title{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-sub{font-size:13.5px;color:var(--hint-2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-title.multi,.cell-sub.multi{white-space:normal}.cell-after{flex:none;color:var(--hint);font-size:15px;display:flex;align-items:center;gap:6px;max-width:55%;text-align:right}.cell-after b{color:var(--text);font-weight:600}.cell.tone-danger .cell-title,.cell.tone-danger .cell-before{color:var(--danger)}.chev{color:var(--hint);opacity:.6;flex:none;margin-right:-4px}.tile{flex:none;width:29px;height:29px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:14px;font-weight:700}.subj-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}.emoji{font-size:22px;width:29px;text-align:center}.count{color:var(--hint-2);font-variant-numeric:tabular-nums}.mine{color:var(--warn);display:inline-flex;align-items:center;gap:4px;font-size:14px}.badge{min-width:18px;height:18px;border-radius:9px;padding:0 5px;background:var(--danger);color:#fff;font-size:11.5px;font-weight:600;display:inline-grid;place-items:center;line-height:1}.badge.static{background:var(--accent);color:var(--accent-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;font-weight:600;transition:opacity .15s,transform .1s;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.98);opacity:.8}.btn:disabled{opacity:.45}.btn-s{height:32px;padding:0 12px;font-size:14px;border-radius:8px}.btn-m{height:44px;padding:0 18px;font-size:16px}.btn-l{height:50px;padding:0 20px;font-size:16.5px;border-radius:12px}.btn.stretched{width:100%}.btn-filled{background:var(--accent);color:var(--accent-text)}.btn-tinted{background:var(--accent-soft);color:var(--accent)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-plain{color:var(--accent)}.btn-outline{border:1px solid var(--sep)}.buttons{display:flex;flex-direction:column;gap:10px;margin:16px 16px 0}.btn-row{display:flex;gap:8px}.btn-row>.btn:not(.stretched){flex:none}.btn-row.pad{padding:0 16px 14px}.pad{padding:12px 16px}.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px}.section .chips{padding:0}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}.chips.scroll::-webkit-scrollbar{display:none}.chip{flex:none;padding:8px 13px;border-radius:18px;background:var(--card);font-size:14.5px;border:1px solid transparent;transition:background .15s,transform .12s var(--ease);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip:active{transform:scale(.95)}.chip.on{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);font-weight:600}.chip .hint{font-weight:400}.chip.on .hint{color:inherit;opacity:.75}.segmented{position:relative;display:flex;background:color-mix(in srgb,var(--hint) 16%,transparent);border-radius:10px;padding:2px}.seg-thumb{position:absolute;top:2px;bottom:2px;left:2px;border-radius:8px;background:var(--card);box-shadow:0 1px 3px #0000001f;transition:transform .24s var(--ease)}.segmented button{position:relative;flex:1;height:32px;border-radius:8px;font-size:14px;font-weight:500;color:var(--text);text-align:center}.segmented button.on{font-weight:600}:root[data-scheme=dark] .seg-thumb{background:color-mix(in srgb,var(--hint) 34%,var(--card));box-shadow:none}.seg-wrap{margin:14px 16px 0}.seg-wrap .chips{padding:0}.input{width:100%;padding:12px 14px;font:inherit;font-size:16px;color:var(--text);background:var(--card);border:1px solid transparent;border-radius:var(--r);outline:none;-webkit-appearance:none;appearance:none}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--hint)}.input.area{resize:vertical;min-height:96px;line-height:1.45}.input.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14.5px}input[type=date].input{min-height:46px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;color:var(--hint-2);padding:0 4px}.field-hint{font-size:13px;color:var(--hint-2);padding:0 4px;line-height:1.4}.search{display:flex;align-items:center;gap:8px;margin:10px 16px 0;padding:0 12px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--hint) 16%,transparent);color:var(--hint)}.search input{flex:1;border:0;background:none;outline:none;font:inherit;color:var(--text);height:100%}.bottom-bar{position:sticky;bottom:0;padding:12px 16px;margin-top:16px;background:linear-gradient(to top,var(--bg) 70%,transparent)}.empty{text-align:center;padding:48px 32px 24px;display:flex;flex-direction:column;align-items:center;gap:6px}.empty-emoji{font-size:52px;line-height:1;margin-bottom:10px}.empty-title{font-size:19px;font-weight:600}.empty-text{color:var(--hint-2);font-size:15px;line-height:1.4;max-width:300px}.empty-actions{margin-top:14px}.spinner{width:28px;height:28px;border:2.5px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner.small{width:17px;height:17px;border-width:2px;border-color:currentColor;border-top-color:transparent;opacity:.8}@keyframes spin{to{transform:rotate(360deg)}}.skel{height:12px;border-radius:6px;background:color-mix(in srgb,var(--hint) 18%,transparent);animation:pulse 1.2s ease-in-out infinite}.skel+.skel{margin-top:8px;height:10px}.skel.w100{width:100%}.skel.w80{width:80%}.skel.w70{width:70%}.skel.w60{width:60%}.skel.w50{width:50%}.skel.w40{width:40%}@keyframes pulse{50%{opacity:.45}}.toast{position:fixed;left:16px;right:16px;bottom:calc(var(--tabbar-h) + 10px);z-index:50;margin:0 auto;max-width:480px;display:flex;align-items:center;gap:12px;overflow:hidden;background:color-mix(in srgb,#1c1c1e 92%,transparent);color:#fff;padding:12px 16px;border-radius:14px;font-size:14.5px;line-height:1.4;white-space:pre-line;box-shadow:0 6px 24px #00000040;animation:toast-in .25s var(--ease)}.toast.low{bottom:calc(14px + var(--safe-b))}.toast.err{background:color-mix(in srgb,#b3261e 94%,transparent)}.toast-text{flex:1;min-width:0}.toast-undo{flex:none;padding:4px 0 4px 8px;color:#8fd0ff;font-weight:600}.toast-time{position:absolute;left:0;right:0;bottom:0;height:2px;background:#8fd0ff;transform-origin:left;animation:toast-time linear forwards}@keyframes toast-in{0%{transform:translateY(12px);opacity:0}}@keyframes toast-time{to{transform:scaleX(0)}}.notice{margin:16px 16px 0;padding:12px 14px;border-radius:var(--r);background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--text);font-size:14.5px;display:flex;gap:8px;align-items:flex-start;line-height:1.4}.notice .icon{color:var(--warn);flex:none;margin-top:1px}.notice.danger{background:var(--danger-soft)}.foot-note{color:var(--hint-2);font-size:13px;line-height:1.4;margin:12px 32px 0}.tag{display:inline-block;font-size:12px;font-weight:600;padding:2px 7px;border-radius:6px;background:var(--accent-soft);color:var(--accent);margin-left:8px;vertical-align:2px;letter-spacing:0}.tag.warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.sched-top{display:flex;align-items:center;gap:8px;padding:10px 16px 0;flex-wrap:wrap}.group-chip{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:18px;background:var(--card);font-weight:600;font-size:15px;max-width:100%;transition:transform .12s var(--ease)}.group-chip:active{transform:scale(.96)}.group-chip>span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-chip .icon{color:var(--accent);flex:none}.chip-note{font-weight:500;font-size:12px;color:var(--warn);flex:none}.pill{flex:none;height:32px;padding:0 12px;border-radius:16px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:14px;transition:transform .12s var(--ease)}.pill:active{transform:scale(.94)}.sched{display:flex;flex-direction:column;max-width:640px;margin:0 auto;height:calc(100% + var(--head-h, 0px));transition:transform .26s var(--ease)}.sched.collapsed{transform:translateY(calc(-1 * var(--head-h, 0px)))}.sched-head{flex:none;padding:8px 16px 6px}.sched-kicker{display:flex;align-items:center;gap:10px;min-height:22px;font-size:13.5px}.kicker-group{display:inline-flex;align-items:center;gap:3px;min-width:0;color:var(--hint-2);font-weight:600}.kicker-group span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kicker-group .icon{flex:none}.kicker-link,.kicker-now{flex:none;color:var(--accent);font-weight:600}.sched-title{display:flex;align-items:center;gap:8px;min-height:40px}.sched-title h1{flex:1;min-width:0;font-size:clamp(16px,5.2vw,21px);font-weight:700;letter-spacing:-.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--accent);flex:none}.icon-btn:active{background:var(--accent-soft)}.icon-btn.small{width:30px}.bell{position:relative;margin-right:-8px}.bell .badge{position:absolute;top:1px;right:-1px}.ann-line{display:flex;align-items:center;gap:8px;width:100%;margin-top:4px;padding:7px 10px;border-radius:10px;background:color-mix(in srgb,var(--warn) 14%,transparent);font-size:14px;text-align:left}.ann-line .icon{flex:none;color:var(--warn)}.ann-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-row{flex:none;display:flex;align-items:center;padding:0 1px 6px;border-bottom:.5px solid transparent;transition:border-color .2s}.sched.collapsed .day-row{border-bottom-color:var(--sep)}.day-strip{position:relative;flex:1;min-width:0;display:grid;grid-template-columns:repeat(7,1fr);background:var(--card);border-radius:14px;animation:fade .2s}.dp-thumb{position:absolute;top:3px;bottom:3px;left:0;width:calc(100% / 7);pointer-events:none;transition:transform .24s var(--ease)}.dp-thumb:before{content:"";position:absolute;inset:0 3px;border-radius:11px;background:var(--accent)}.day-pill{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 0 6px;min-width:0;transition:transform .12s var(--ease)}.day-pill:active{transform:scale(.92)}.dp-name{font-size:12px;color:var(--hint-2);font-weight:500;transition:color .16s}.dp-num{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;transition:color .16s}.dp-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.7}.dp-dot.none{opacity:0}.day-pill.today .dp-num,.day-pill.today .dp-name{color:var(--accent)}.day-pill.on .dp-name,.day-pill.on .dp-num{color:var(--accent-text)}.day-pill.on .dp-dot{background:var(--accent-text)}.pager{flex:1;min-height:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.pager::-webkit-scrollbar{display:none}.pager-page{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.pager-page.near{overflow:hidden auto;overscroll-behavior-y:contain;padding-bottom:calc(var(--tabbar-h) + var(--head-h, 0px) + 20px)}.day-note{margin:6px 16px 0;padding:12px 14px;background:var(--accent-soft);color:var(--accent);border-radius:var(--r);display:flex;gap:8px;align-items:center;font-weight:500}.lessons{display:flex;flex-direction:column;gap:8px;margin:6px 16px 0}.lesson{display:flex;flex-wrap:wrap;gap:0 12px;background:var(--card);border-radius:var(--r);padding:11px 12px 11px 16px;position:relative;overflow:hidden;box-shadow:inset 3px 0 0 var(--subj, transparent);transition:transform .12s var(--ease)}.lesson.tap{cursor:pointer}.lesson.tap:active{transform:scale(.98)}.lesson.past{background:color-mix(in srgb,var(--card) 50%,transparent)}.lesson.past .lesson-time b,.lesson.past .lesson-subject{color:var(--hint-2);font-weight:500}.lesson-time{flex:none;width:46px;display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.lesson-time b{font-size:16px;font-weight:600}.lesson-time span{color:var(--hint-2);font-size:13.5px}.lesson-body{flex:1;min-width:0}.lesson-meta{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:12.5px;color:var(--hint-2)}.soon{color:var(--accent);font-weight:600}.lesson-subject{font-size:16px;font-weight:600;margin-top:2px;line-height:1.3}.lesson-teacher{margin-top:3px;color:var(--hint-2);font-size:13.5px}.lesson-room{flex:none;align-self:flex-start;max-width:38%;overflow-wrap:anywhere;padding:3px 8px;border-radius:8px;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--subj) 14%,transparent)}.lesson-live{flex:0 0 100%;display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12.5px;font-weight:600;color:var(--accent)}.lesson-bar{flex:1;height:4px;border-radius:2px;background:var(--accent-soft);overflow:hidden}.lesson-bar>div{height:100%;border-radius:2px;background:var(--accent);transition:width .4s}.lesson.skeleton{min-height:118px;box-shadow:none}.lesson.skeleton .lesson-time .skel{height:12px}.hw-dot{width:10px;height:10px;border-radius:50%;background:var(--warn);margin:0 4px}.hw-mark{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:4px 7px 4px 9px;border-radius:8px;font-size:13px;font-weight:600;line-height:1.2}.hw-mark.on{background:var(--warn);color:#241500}.hw-mark.done{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}.hw-mark.none{display:block;margin-top:4px;padding:0;color:var(--hint-2);font-size:12.5px;font-weight:400}.hw-mark:active{opacity:.7}.week-day-head{display:inline-flex;align-items:center;flex-wrap:wrap}.week-row{display:flex;gap:12px;width:100%;padding:10px 16px;position:relative;align-items:baseline;box-shadow:inset 3px 0 0 var(--subj, transparent);transition:background .18s}.week-row+.week-row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--sep)}.week-row:active{background:color-mix(in srgb,var(--hint) 12%,var(--card));transition:none}.wr-time{width:42px;flex:none;font-weight:600;font-variant-numeric:tabular-nums;font-size:15px}.wr-main{flex:1;min-width:0;display:flex;flex-direction:column}.wr-subj{font-size:15px;line-height:1.3}.wr-sub{font-size:13px;color:var(--hint-2)}.wr-note{color:var(--accent);display:inline-flex;gap:6px;align-items:center;font-size:15px}.week-empty{padding:12px 16px;color:var(--hint-2);font-size:15px}.fold{display:grid;grid-template-rows:1fr;transition:grid-template-rows .26s var(--ease),opacity .2s}.fold>div{min-height:0;overflow:hidden}.fold.out{grid-template-rows:0fr;opacity:0}.hw-row{display:flex;align-items:center;position:relative;background:var(--card);padding-left:14px;padding-right:12px}.check{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid color-mix(in srgb,var(--hint) 70%,transparent);display:grid;place-items:center;color:#fff;transition:background .15s,border-color .15s,transform .12s var(--ease)}.check:active{transform:scale(.88)}.check.on{background:var(--ok);border-color:var(--ok)}.check.on .icon path{stroke-dasharray:24;animation:draw .26s ease-out}@keyframes draw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.hw-row>.check{margin-right:2px}.hw-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:11px 6px 11px 10px;border-radius:8px}.hw-subj{font-weight:600;font-size:15.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hw-text{color:var(--hint-2);font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}.hw-due{font-size:13px;font-weight:500}.hw-row.done .hw-subj{text-decoration:line-through;color:var(--hint)}.card-head{padding:12px 20px 2px}.card-kicker{color:var(--accent);font-size:14px;font-weight:600}.card-title{font-size:24px;line-height:1.2;font-weight:700;margin-top:4px;letter-spacing:-.3px;overflow-wrap:anywhere}.card-meta{color:var(--hint-2);font-size:14px;margin-top:6px}.text-block{padding:14px 16px;font-size:16px;line-height:1.5}.rich{white-space:pre-wrap;overflow-wrap:anywhere}.rich a{color:var(--link);text-decoration:none}.ann-list{display:flex;flex-direction:column;gap:10px;margin:12px 16px 0}.ann-card{background:var(--card);border-radius:var(--r);padding:10px 14px 11px;overflow:hidden;scroll-margin:80px}.ann-card.focus{box-shadow:0 0 0 2px var(--accent)}.ann-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:32px;color:var(--hint-2);font-size:13px}.ann-meta .tag{margin-left:0}.ann-del{margin:-4px -8px -4px auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--hint)}.ann-del:active{background:var(--danger-soft);color:var(--danger)}.ann-text{margin-top:2px;font-size:16px;line-height:1.45}.ann-file{margin:8px -14px 0;border-top:.5px solid var(--sep);border-bottom:.5px solid var(--sep)}.ann-file .item-row:before{display:none}.ann-author{margin-top:8px;color:var(--hint-2);font-size:13px}.item-row{display:flex;align-items:center;position:relative;background:var(--card)}.item-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:9px 12px 9px 16px;min-height:58px}.item-text{flex:1;min-width:0;display:flex;flex-direction:column}.item-title{font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-sub{font-size:13px;color:var(--hint-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.item-del{flex:none;width:44px;align-self:stretch;display:grid;place-items:center;color:var(--hint)}.item-del:active{color:var(--danger)}.thumb{width:42px;height:42px;border-radius:8px;object-fit:cover;flex:none;background:color-mix(in srgb,var(--hint) 15%,transparent)}.file-ico{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}.expand{padding:4px 16px 14px 70px;font-size:15px;line-height:1.5;background:var(--card);display:flex;flex-direction:column;gap:10px;align-items:flex-start}.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}.progress{margin:12px 16px 0;height:4px;border-radius:2px;background:var(--accent-soft);overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .2s}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:16px 16px 0;border-radius:var(--r);overflow:hidden}.photo{aspect-ratio:1;background:color-mix(in srgb,var(--hint) 15%,transparent)}.photo img{width:100%;height:100%;object-fit:cover;display:block}.date-badge{width:42px;height:42px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.date-badge b{font-size:17px}.date-badge span{font-size:11px;margin-top:2px}.viewer{position:fixed;inset:0;z-index:40;background:#000000f0;display:flex;align-items:center;justify-content:center;animation:fade .2s}.viewer img{max-width:100%;max-height:calc(100% - 90px);object-fit:contain;transition:opacity .2s}.viewer .spinner{position:absolute}.viewer-thumb{position:absolute;width:100%;height:calc(100% - 90px);object-fit:contain}.viewer-bar{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;justify-content:center;padding:14px 16px calc(14px + var(--safe-b))}.viewer-bar .btn-tinted{background:#ffffff24;color:#fff}.viewer-bar .btn-danger{background:#ff505033;color:#ff8a80}@keyframes fade{0%{opacity:0}}.profile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 16px 4px;text-align:center}.profile-name{font-size:21px;font-weight:700;margin-top:4px}.profile-sub{display:flex;gap:10px;align-items:center;color:var(--hint-2);font-size:14.5px;flex-wrap:wrap;justify-content:center}.role-badge{background:var(--accent-soft);color:var(--accent);padding:3px 9px;border-radius:8px;font-weight:600;font-size:13.5px}.avatar{border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;flex:none;letter-spacing:.3px}.invite{padding:12px 16px;position:relative}.invite+.invite:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--sep)}.invite-head{display:flex;justify-content:space-between;gap:8px;font-size:15px;font-weight:500;flex-wrap:wrap}.invite-head .hint{font-weight:400;font-size:13px}.invite-link{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:var(--link);margin:6px 0 10px;overflow-wrap:anywhere}.lock{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 24px 32px;text-align:center;max-width:420px;margin:0 auto}.lock-icon{width:76px;height:76px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:6px}.lock h1{font-size:23px;font-weight:700}.lock-text{color:var(--hint);font-size:15.5px;line-height:1.45;margin:0 0 8px}.lock-text.small{font-size:14px;margin-top:6px}.lock-note{background:var(--card);padding:14px;border-radius:var(--r);font-size:15px;line-height:1.45;margin:0}.lock-id{display:inline-flex;align-items:center;gap:6px;color:var(--hint);font-size:14px;padding:8px}.lock-id b{color:var(--text)}.ctl-tag{align-self:flex-start;display:inline-block;font-size:12px;font-weight:700;padding:1px 7px;border-radius:6px;background:var(--danger-soft);color:var(--danger)}.ctl-tag.big{margin-top:8px;font-size:13px;padding:2px 9px}.ctl-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);margin:0 4px}.ctl-name{color:var(--danger);font-weight:600}.ctl-chip{color:var(--danger)}.chip.on .ctl-chip{color:inherit}.chip:has(.ctl-chip).on{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.tag.danger{background:var(--danger-soft);color:var(--danger)}.hw-row.control{box-shadow:inset 3px 0 0 var(--danger)}.hw-row.control .hw-subj{color:var(--danger)}.lesson.control{background:color-mix(in srgb,var(--danger) 7%,var(--card));box-shadow:inset 3px 0 0 var(--subj, transparent),inset 0 0 0 1.5px color-mix(in srgb,var(--danger) 70%,transparent)}.lesson.control .lesson-subject{color:var(--danger)}.week-row.control{box-shadow:inset 3px 0 0 var(--danger)}.week-row.control .wr-subj,.week-row.control .wr-time{color:var(--danger)}.dp-dot.ctl{background:var(--danger);opacity:1;width:6px;height:6px}.day-pill.on .dp-dot.ctl{background:var(--danger);box-shadow:0 0 0 1.5px var(--accent-text)}.switch{width:46px;height:28px;border-radius:14px;background:color-mix(in srgb,var(--hint) 35%,transparent);position:relative;flex:none;transition:background .2s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s}.switch.on{background:var(--ok)}.switch.on:after{transform:translate(18px)}.text-link{color:var(--link);font:inherit;padding:0;text-decoration:underline;text-underline-offset:2px}.report-src{font-size:13px;margin:4px 0 10px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}.spinner{animation-duration:.7s!important}.skel{animation:none!important}}
