.hw-renderer{display:grid;gap:12px;color:var(--app-text, #111827)}.hw-content-list{display:grid;gap:12px}.hw-updated-badge{justify-self:start;border-radius:999px;padding:4px 9px;color:#1749b4;background:#2f69ff1f;font-size:12px;font-weight:700}.hw-empty{margin:0;color:var(--app-muted, #667085)}.hw-text{border-radius:16px;padding:14px 16px;background:var(--app-surface-2, #f7f9fc);border:1px solid var(--app-border, rgba(17,24,39,.1));white-space:pre-wrap;overflow-wrap:anywhere}.hw-text p{margin:0 0 .65em}.hw-text p:last-child{margin-bottom:0}.hw-image-card{margin:0;display:grid;gap:5px}.hw-image-card button{display:block;width:100%;padding:0;border:0;border-radius:16px;overflow:hidden;background:#dfe5ec;cursor:zoom-in}.hw-image-card img{display:block;width:100%;max-height:680px;object-fit:contain}.hw-image-error{min-height:140px;display:grid;place-items:center;gap:8px;padding:20px;border:1px dashed var(--app-border, rgba(17,24,39,.15));border-radius:16px;color:var(--app-muted, #667085);background:var(--app-surface-2, #f7f9fc)}.hw-image-error button,.hw-text-expand{color:var(--accent-lecture, #2f69ff);font-weight:700}.hw-image-card figcaption{color:var(--app-muted, #667085);font-size:13px}.hw-file-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border-radius:15px;border:1px solid var(--app-border, rgba(17,24,39,.1));background:var(--app-surface-2, #f7f9fc)}.hw-file-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:var(--accent-lecture, #2f69ff);background:#2f69ff1a}.hw-file-icon svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.hw-file-copy{min-width:0;display:grid;gap:2px}.hw-file-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hw-file-copy small{color:var(--app-muted, #667085)}.hw-file-card a{color:var(--accent-lecture, #2f69ff);font-weight:650;text-decoration:none}.hw-asset-action{grid-column:1 / -1;min-width:0}.hw-renderer-compact,.hw-renderer-compact .hw-content-list{gap:8px}.hw-renderer-compact .hw-text{padding:10px 12px;border-radius:12px}.hw-renderer-compact .hw-text.is-collapsed p{display:none}.hw-renderer-compact .hw-text.is-collapsed p:nth-child(-n+3){display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.hw-text-expand{display:block;margin-top:8px;padding:4px 0}.hw-renderer-compact .hw-image-card{width:min(180px,100%)}.hw-renderer-compact .hw-image-card img{height:120px;max-height:120px;object-fit:cover}.hw-renderer-compact .hw-file-card{padding:9px}.hw-renderer-normal .hw-image-card img{max-height:360px}.hw-renderer-expanded .hw-text{font-size:17px;line-height:1.6}.hw-lightbox-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#020617d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.hw-lightbox{position:relative;width:min(960px,100%);height:min(90dvh,820px);display:grid;place-items:center;touch-action:pan-y}.hw-lightbox img{max-width:100%;max-height:calc(100% - 48px);object-fit:contain;border-radius:14px}.hw-lightbox button{position:absolute;z-index:2;width:46px;height:46px;border:1px solid rgba(255,255,255,.25);border-radius:50%;color:#fff;background:#0f172aa8;font-size:30px;line-height:1}.hw-lightbox-close{top:0;right:0}.hw-lightbox-prev{left:0;top:50%}.hw-lightbox-next{right:0;top:50%}.hw-lightbox p{position:absolute;bottom:0;margin:0;color:#fff}.hw-lightbox-error{color:#fff;display:grid;place-items:center;gap:10px}.hw-lightbox-error button{position:static;width:auto;padding:0 18px;font-size:15px;border-radius:12px}@media(max-width:540px){.hw-file-card{grid-template-columns:38px minmax(0,1fr)}.hw-file-card a{grid-column:2}.hw-lightbox-prev{left:-8px}.hw-lightbox-next{right:-8px}}:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,sans-serif;color-scheme:light;--safe-top: env(safe-area-inset-top);--safe-bottom: env(safe-area-inset-bottom)}:root[data-theme=light]{--app-background:#f3f5f8;--app-surface:#fff;--app-surface-2:#f7f9fc;--app-text:#111827;--app-muted:#5d6879;--app-subtle:#788294;--app-border:rgba(17,24,39,.1);--app-shadow:0 18px 44px rgba(15,23,42,.1);--accent-lecture:#2f69ff;--accent-practice:#7f3ff2;--danger:#b42318;--success:#18794e;color-scheme:light}:root[data-theme=dark]{--app-background:#0c1116;--app-surface:#151c24;--app-surface-2:#1c2530;--app-text:#e8edf3;--app-muted:#bfc6d2;--app-subtle:#9aa4b2;--app-border:rgba(232,237,243,.14);--app-shadow:0 18px 48px rgba(2,6,23,.46);--accent-lecture:#5b8cff;--accent-practice:#b07dff;--danger:#ff8a80;--success:#65d6a5;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}body{min-height:100vh;min-height:100dvh;background:var(--app-background);color:var(--app-text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--accent-lecture) 42%,transparent);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,h3,p{overflow-wrap:anywhere}.admin-shell{min-height:100dvh;display:grid;grid-template-columns:250px minmax(0,1fr)}.admin-sidebar{position:sticky;top:0;height:100dvh;padding:calc(18px + var(--safe-top)) 14px calc(18px + var(--safe-bottom));display:flex;flex-direction:column;gap:22px;border-right:1px solid var(--app-border);background:color-mix(in srgb,var(--app-surface) 91%,transparent);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.brand-button{border:0;background:transparent;display:flex;align-items:center;gap:10px;text-align:left;padding:7px;border-radius:14px}.brand-button>span:last-child{display:grid;gap:1px}.brand-button small{color:var(--app-muted)}.brand-badge{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#2f69ff,#1e47bb);color:#fff;font-weight:800;box-shadow:0 8px 18px #2f69ff38}.admin-sidebar nav{display:grid;gap:5px}.admin-sidebar nav button,.sidebar-actions button{min-height:48px;padding:0 12px;border:1px solid transparent;border-radius:13px;background:transparent;display:flex;align-items:center;gap:11px;text-align:left;color:var(--app-muted)}.admin-sidebar nav button.active{color:var(--accent-lecture);background:color-mix(in srgb,var(--accent-lecture) 10%,var(--app-surface));border-color:color-mix(in srgb,var(--accent-lecture) 18%,transparent);font-weight:700}.sidebar-actions{margin-top:auto;display:grid;gap:4px}.admin-workspace{min-width:0}.admin-main{width:min(1120px,100%);margin:0 auto;padding:32px clamp(18px,4vw,48px) 64px}.mobile-header,.mobile-nav{display:none}.offline-banner{position:sticky;top:0;z-index:20;padding:10px 18px;text-align:center;color:#7c4a00;background:#fff3cf;border-bottom:1px solid #edcf76}:root[data-theme=dark] .offline-banner{color:#ffe9ae;background:#42350f;border-color:#66531c}.screen-stack{display:grid;gap:18px;animation:screen-in .28s ease both}@keyframes screen-in{0%{opacity:0;transform:translateY(5px)}}.screen-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.screen-header h1{margin:1px 0 3px;font-size:clamp(29px,4vw,42px);line-height:1.05;letter-spacing:-.035em}.screen-header p{margin:0;color:var(--app-muted)}.eyebrow{margin:0!important;color:var(--accent-lecture)!important;text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:800}.primary-button,.secondary-button{min-height:46px;border-radius:14px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:720;border:1px solid transparent}.primary-button{background:var(--accent-lecture);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--accent-lecture) 24%,transparent)}.primary-button.quiet{background:color-mix(in srgb,var(--accent-lecture) 84%,var(--app-surface))}.secondary-button{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}.compact{min-height:43px;padding:0 14px;white-space:nowrap}.icon-button{width:44px;height:44px;display:grid;place-items:center;padding:0;border-radius:13px;border:1px solid var(--app-border);background:var(--app-surface-2)}.week-toolbar{display:grid;grid-template-columns:44px minmax(180px,280px) 44px;justify-content:center;gap:8px}.week-toolbar input,.field-card input{min-height:44px;border:1px solid var(--app-border);border-radius:13px;padding:0 12px;color:var(--app-text);background:var(--app-surface)}.day-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;padding:7px;border:1px solid var(--app-border);border-radius:18px;background:var(--app-surface);box-shadow:var(--app-shadow)}.day-strip button{min-height:65px;border:0;border-radius:13px;display:grid;place-content:center;gap:2px;color:var(--app-muted);background:transparent}.day-strip button strong{font-size:19px;color:var(--app-text)}.day-strip button.active{color:#fff;background:var(--accent-lecture)}.day-strip button.active strong{color:#fff}.date-heading{margin:6px 0 -5px;font-size:21px;text-transform:capitalize}.occurrence-list,.homework-list,.choice-list{display:grid;gap:11px}.occurrence-card{width:100%;min-height:132px;display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;text-align:left;border:1px solid var(--app-border);border-radius:18px;color:var(--app-text);background:var(--app-surface);box-shadow:0 8px 26px #0f172a0b;transition:transform .16s ease,border-color .16s ease}.occurrence-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent-lecture) 34%,var(--app-border))}.occurrence-time{align-self:start;display:grid;font-size:20px;font-weight:800}.occurrence-time small{font-size:13px;color:var(--app-muted);font-weight:600}.occurrence-copy{min-width:0;display:grid;gap:6px}.occurrence-copy strong{font-size:18px}.occurrence-copy small{color:var(--app-muted)}.lesson-chip,.state-pill,.updated-pill{justify-self:start;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:750}.lesson-chip.lecture{color:#1749b4;background:#2f69ff1f}.lesson-chip.practice{color:#6d28d9;background:#7f3ff221}.state-pill{color:var(--app-muted);background:var(--app-surface-2);border:1px solid var(--app-border);white-space:nowrap}.state-pill.published{color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}.state-pill.draft{color:#8a5b00;background:#f59e0b1f}.state-pill.trashed{color:var(--danger)}.state-pill.orphaned{color:var(--accent-practice)}.updated-pill{color:var(--accent-lecture);background:color-mix(in srgb,var(--accent-lecture) 11%,transparent)}.loading-card,.empty-card,.error-card,.info-card,.conflict-card{border-radius:18px;padding:18px;border:1px solid var(--app-border);background:var(--app-surface)}.loading-card,.empty-card{color:var(--app-muted)}.empty-card h3{margin:0 0 4px;color:var(--app-text)}.empty-card p,.info-card p,.conflict-card p{margin:0}.error-card{display:grid;gap:8px;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 28%,var(--app-border))}.error-card button{justify-self:start;border:0;color:var(--accent-lecture);background:transparent;font-weight:700}.info-card{display:grid;gap:5px;color:var(--app-text);border-color:color-mix(in srgb,var(--accent-lecture) 23%,var(--app-border));background:color-mix(in srgb,var(--accent-lecture) 6%,var(--app-surface))}.info-card span{color:var(--app-muted)}.conflict-card{display:grid;gap:8px;color:#7c4a00;background:#fff9e9;border-color:#edcf76}:root[data-theme=dark] .conflict-card{color:#ffe9ae;background:#332b17;border-color:#66531c}.conflict-card>div{display:flex;flex-wrap:wrap;gap:8px}.conflict-card button{min-height:40px;border-radius:11px;border:1px solid currentColor;color:inherit;background:transparent}.field-card{display:grid;gap:7px;padding:16px;border:1px solid var(--app-border);border-radius:17px;background:var(--app-surface);font-weight:700}.choice-list button{padding:16px;display:grid;gap:5px;text-align:left;border:1px solid var(--app-border);border-radius:16px;color:var(--app-text);background:var(--app-surface)}.choice-list button span,.choice-list button small{color:var(--app-muted)}.choice-list button small{color:var(--accent-lecture);font-weight:700}.homework-list{grid-template-columns:repeat(2,minmax(0,1fr))}.homework-list-card{display:grid;gap:9px;padding:17px;border:1px solid var(--app-border);border-radius:18px;background:var(--app-surface);box-shadow:0 8px 24px #0f172a0a}.homework-list-card h2,.homework-list-card p{margin:0}.homework-list-card p,.homework-list-card>small{color:var(--app-muted)}.list-card-top{display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between}.card-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:7px}.card-actions button,.pagination button,.secondary-actions button,.add-materials button,.add-text-button{min-height:41px;padding:0 12px;border:1px solid var(--app-border);border-radius:12px;color:var(--app-text);background:var(--app-surface-2);font-weight:680}.card-actions .accent-action{color:var(--accent-lecture)}.pagination{display:flex;align-items:center;justify-content:center;gap:12px}.editor-card,.marker-card,.toggle-card,.history-preview{padding:18px;border:1px solid var(--app-border);border-radius:20px;background:var(--app-surface);box-shadow:0 10px 30px #0f172a0b}.section-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.section-heading h2,.section-heading p{margin:0}.section-heading p,.section-heading span{color:var(--app-muted);font-size:13px}.editor-items{display:grid;gap:10px;margin-top:14px}.editor-item{display:grid;grid-template-columns:46px minmax(0,1fr) 42px;gap:9px;padding:10px;border:1px solid var(--app-border);border-radius:16px;background:var(--app-surface-2)}.reorder-column{display:grid;justify-items:center;align-content:start;gap:3px}.drag-handle{height:30px!important;color:var(--app-subtle)!important;cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.reorder-column button,.remove-item{width:34px;height:34px;border:0;border-radius:9px;color:var(--app-muted);background:var(--app-surface)}.remove-item{color:var(--danger)}.editor-item-body{min-width:0;display:grid;gap:8px}.editor-item-body label{display:grid;gap:6px;font-weight:700}.editor-item textarea{width:100%;min-height:130px;resize:vertical;border:1px solid var(--app-border);border-radius:13px;padding:12px;color:var(--app-text);background:var(--app-surface);line-height:1.5}.upload-file-row{display:flex;align-items:center;gap:11px;min-width:0}.upload-file-row img{width:76px;height:62px;object-fit:cover;border-radius:11px;background:#dfe5ec}.upload-file-row>span:not(.file-symbol){min-width:0;display:grid;gap:3px}.upload-file-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-row small{color:var(--app-muted)}.file-symbol{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;color:var(--accent-lecture);background:color-mix(in srgb,var(--accent-lecture) 10%,transparent)}.upload-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;color:var(--app-muted);font-size:12px}.upload-progress progress{width:100%;accent-color:var(--accent-lecture)}.upload-recovery{display:flex;flex-wrap:wrap;gap:7px}.upload-recovery button{min-height:38px;padding:0 11px;border:1px solid var(--app-border);border-radius:10px;color:var(--app-text);background:var(--app-surface)}.add-materials{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}.add-text-button{margin-top:14px}.toggle-card{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.toggle-card input{width:21px;height:21px;accent-color:var(--accent-lecture)}.toggle-card span{display:grid;gap:3px}.toggle-card small{color:var(--app-muted)}.marker-card{display:flex;justify-content:space-between;align-items:center;gap:14px}.marker-card p{margin:4px 0 0;color:var(--app-muted)}.marker-card button{min-height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--app-border);color:var(--accent-lecture);background:var(--app-surface-2)}.marker-card button.active{color:#fff;background:var(--accent-lecture)}.editor-actions,.secondary-actions,.history-actions{display:flex;flex-wrap:wrap;gap:9px}.secondary-actions button{display:flex;align-items:center;gap:7px}.secondary-actions .danger-link{color:var(--danger)}.modal-backdrop,.session-overlay{position:fixed;inset:0;z-index:100;box-sizing:border-box;min-width:0;min-height:0;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:center;overflow:hidden;background:#02061794;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal-backdrop>[role=dialog],.modal-backdrop.reauth-overlay>.session-panel{box-sizing:border-box;min-width:0;max-width:100%;max-height:100%;margin-block:auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.preview-dialog{width:min(820px,100%);max-height:calc(100dvh - 36px);overflow:auto;border:1px solid var(--app-border);border-radius:24px;padding:18px;color:var(--app-text);background:var(--app-surface);box-shadow:var(--app-shadow)}.preview-dialog>header{display:flex;justify-content:space-between;align-items:center}.preview-dialog h2{margin:0}.segmented-control{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;margin:16px 0;border-radius:13px;background:var(--app-surface-2)}.segmented-control button{min-height:40px;border:0;border-radius:10px;color:var(--app-muted);background:transparent}.segmented-control button.active{color:var(--app-text);background:var(--app-surface);box-shadow:0 3px 10px #0f172a1a;font-weight:700}.preview-surface{padding:16px;border-radius:18px;border:1px solid var(--app-border);background:var(--app-background)}.history-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:start}.version-list{display:grid;gap:7px}.version-list button{display:grid;gap:4px;padding:13px;text-align:left;border:1px solid var(--app-border);border-radius:14px;color:var(--app-text);background:var(--app-surface)}.version-list button.active{border-color:var(--accent-lecture);box-shadow:0 0 0 1px var(--accent-lecture)}.version-list span,.version-list small{color:var(--app-muted)}.version-list em{color:var(--accent-lecture);font-size:12px;font-style:normal}.history-preview{display:grid;gap:16px;position:sticky;top:18px}.preview-meta{display:flex;flex-wrap:wrap;gap:7px}.preview-meta span{border-radius:999px;padding:5px 9px;background:var(--app-surface-2);color:var(--app-muted);font-size:12px}.hint{margin:0;color:var(--app-muted)}.offline-card{padding:18px;border:1px solid var(--app-border);border-radius:18px;color:var(--app-muted);background:var(--app-surface)}.logout-error{margin-bottom:14px}.orphan-context{display:grid;gap:4px;padding:10px;border-radius:12px;color:var(--app-muted);background:var(--app-surface-2);font-size:13px}.orphan-context p{margin:0;color:var(--app-text)}.login-page,.boot-screen{min-height:100dvh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 15% 12%,rgba(47,105,255,.12),transparent 34%),radial-gradient(circle at 90% 90%,rgba(127,63,242,.08),transparent 34%),var(--app-background)}.login-card{width:min(430px,100%);display:grid;gap:18px;padding:clamp(22px,5vw,34px);border:1px solid var(--app-border);border-radius:26px;background:color-mix(in srgb,var(--app-surface) 94%,transparent);box-shadow:var(--app-shadow)}.login-card h1{margin:2px 0 5px;font-size:32px;letter-spacing:-.035em}.login-card p{margin:0;color:var(--app-muted)}.admin-mark{width:64px;height:64px;padding:8px;display:grid;place-items:center;border-radius:20px;color:#fff;background:linear-gradient(145deg,#2f69ff,#2046b8);box-shadow:0 12px 28px #2f69ff40;line-height:1}.admin-mark span{font-size:24px;font-weight:850}.admin-mark strong{font-size:12px;letter-spacing:.08em}.login-card form{display:grid;gap:13px}.login-card label:not(.check-row){display:grid;gap:6px;font-weight:700}.login-card input:not([type=checkbox]){min-height:48px;width:100%;padding:0 13px;border:1px solid var(--app-border);border-radius:13px;color:var(--app-text);background:var(--app-surface-2)}.check-row{display:flex;align-items:center;gap:9px;color:var(--app-muted)}.check-row input{width:19px;height:19px;accent-color:var(--accent-lecture)}.form-error{color:var(--danger)!important}.privacy-note{text-align:center;font-size:12px}.boot-screen{align-content:center;gap:12px;color:var(--app-muted)}.session-overlay{z-index:200}.session-panel{width:min(500px,100%);display:grid;gap:10px;padding:18px;border-radius:24px;background:var(--app-surface);box-shadow:var(--app-shadow)}.session-panel>h2,.session-panel>p{margin:0}.session-panel .login-page{min-height:auto;padding:0;background:none}.session-panel .login-card{border:0;padding:10px 0 0;box-shadow:none}.session-panel .login-card>.admin-mark,.session-panel .login-card>div:first-of-type,.session-panel .privacy-note{display:none}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{display:none}.mobile-header{position:sticky;top:0;z-index:30;min-height:calc(58px + var(--safe-top));padding:calc(7px + var(--safe-top)) 12px 7px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--app-border);background:color-mix(in srgb,var(--app-surface) 88%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.mobile-header .brand-badge{width:35px;height:35px}.admin-main{padding:22px 14px calc(90px + var(--safe-bottom))}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;min-height:calc(66px + var(--safe-bottom));padding:6px 5px var(--safe-bottom);display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--app-border);background:color-mix(in srgb,var(--app-surface) 88%,transparent);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.mobile-nav button{min-width:0;min-height:55px;padding:4px 2px;display:grid;place-items:center;gap:2px;border:0;border-radius:11px;color:var(--app-muted);background:transparent;font-size:10px}.mobile-nav button.active{color:var(--accent-lecture);background:color-mix(in srgb,var(--accent-lecture) 8%,transparent)}.history-layout{grid-template-columns:1fr}.history-preview{position:static}}@media(max-width:680px){.screen-header{align-items:stretch;flex-direction:column}.screen-header>button{align-self:flex-start}.homework-list{grid-template-columns:1fr}.occurrence-card{grid-template-columns:60px minmax(0,1fr)}.occurrence-card>.state-pill{grid-column:2}.day-strip{gap:3px;padding:5px}.day-strip button{min-height:56px}.day-strip button small{font-size:10px}.editor-item{grid-template-columns:38px minmax(0,1fr) 36px;padding:8px}.marker-card{align-items:flex-start;flex-direction:column}.editor-actions>*{width:100%}}@media(max-width:380px){.admin-main{padding-left:10px;padding-right:10px}.screen-header h1{font-size:28px}.mobile-nav button span{max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-toolbar{grid-template-columns:42px minmax(0,1fr) 42px}.occurrence-card{padding:12px;gap:9px}.occurrence-copy strong{font-size:16px}.state-pill{white-space:normal}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.distance-card-list{display:grid;gap:14px}.distance-admin-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.distance-admin-card.is-inactive{opacity:.62}.distance-card-actions{display:flex;gap:8px;flex-wrap:wrap}.distance-subject-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.distance-subject-chips span{padding:5px 9px;border-radius:999px;background:var(--surface-muted,#eef2f6);font-size:.8rem}.distance-invalid-link{display:inline-block;color:var(--text-muted);margin-top:8px}.distance-editor,.distance-override-dialog{width:min(680px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto}.distance-editor fieldset{border:0;padding:0;margin:8px 0}.distance-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.distance-subject-option{min-width:0;padding:10px;border:1px solid var(--border);border-radius:12px}.distance-lesson-type{display:grid;gap:5px;margin:8px 0 0 28px;font-size:.78rem;color:var(--text-muted)}.distance-lesson-type select{min-width:0}.distance-editor footer,.distance-override-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:600px){.distance-admin-card,.distance-subject-grid{grid-template-columns:1fr}.distance-card-actions button{min-height:44px}}.distance-danger-zone{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:18px;padding:14px;border:1px solid color-mix(in srgb,#c7443b 32%,var(--u6-line));border-radius:14px;background:color-mix(in srgb,#c7443b 6%,var(--u6-panel))}.distance-danger-zone h3{margin:0 0 4px}.distance-danger-zone p{margin:0;color:var(--u6-muted);font-size:.86rem;line-height:1.45}.distance-delete-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto}.distance-delete-dialog>p{overflow-wrap:anywhere}.distance-delete-dialog footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:600px){.distance-danger-zone{grid-template-columns:1fr}.distance-danger-zone .danger-button{width:100%;min-height:44px}.distance-delete-dialog footer{display:grid;grid-template-columns:1fr}.distance-delete-dialog footer button{width:100%;min-height:44px}}.admin-shell{--u6-ink: #19312f;--u6-muted: #6b7b78;--u6-line: color-mix(in srgb, var(--u6-ink) 12%, transparent);--u6-panel: color-mix(in srgb, var(--surface, #fff) 92%, #edf6f0)}.login-mode-switch,.segmented-scroll,.segmented-control{display:flex;gap:.35rem;overflow-x:auto;padding:.25rem;border:1px solid var(--u6-line);border-radius:1rem;background:#74847e14;scrollbar-width:none}.login-mode-switch button,.segmented-scroll button,.segmented-control button{flex:0 0 auto;min-height:2.4rem;padding:.45rem .8rem;border:0;border-radius:.75rem;color:var(--u6-muted);background:transparent}.login-mode-switch button.active,.segmented-scroll button.active,.segmented-control button.active{color:var(--u6-ink);background:var(--surface, #fff);box-shadow:0 .2rem .7rem #1e322d1a;font-weight:700}.login-note{color:var(--u6-muted);font-size:.86rem}.approval-wait{text-align:center}.approval-pulse{display:block;width:3rem;height:3rem;margin:.25rem auto 1rem;border:.45rem solid rgba(45,130,110,.16);border-top-color:#2d826e;border-radius:50%;animation:u6-spin 1s linear infinite}@keyframes u6-spin{to{transform:rotate(360deg)}}.screen-stack{display:grid;gap:1.15rem}.screen-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.screen-header h1{margin:.15rem 0 .35rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.85rem,4vw,3.1rem);line-height:1.04;letter-spacing:-.035em}.screen-header p{margin:0;color:var(--u6-muted)}.eyebrow{color:#b24d36!important;font-size:.73rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.u6-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.action-card{grid-column:span 4;min-height:10.5rem;padding:1.2rem;text-align:left;border:1px solid var(--u6-line);border-radius:1.35rem;color:inherit;background:var(--u6-panel);box-shadow:0 .65rem 2rem #2236300f}.action-card:first-child{grid-column:span 8;background:linear-gradient(140deg,rgba(42,126,104,.15),var(--u6-panel))}.action-card svg{width:1.55rem;height:1.55rem;color:#2d826e}.action-card strong{display:block;margin:1.5rem 0 .3rem;font:700 1.2rem/1.15 Georgia,serif}.action-card span{color:var(--u6-muted)}.settings-card,.detail-card,.timeline-card,.comments-card,.decision-card,.info-card,.conflict-card,.metric-card{padding:1.15rem;border:1px solid var(--u6-line);border-radius:1.2rem;background:var(--u6-panel)}.settings-card{display:grid;gap:1rem}.settings-card>h2,.timeline-card h2,.comments-card h2,.decision-card h2{margin:0;font:700 1.25rem/1.2 Georgia,serif}.settings-card label,.form-dialog label,.decision-card label{display:grid;gap:.42rem;font-weight:650}.settings-card input,.settings-card select,.settings-card textarea,.form-dialog input,.form-dialog select,.decision-card textarea{width:100%;min-height:2.8rem;padding:.65rem .75rem;border:1px solid var(--u6-line);border-radius:.75rem;color:inherit;background:var(--surface, #fff);font:inherit}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.permission-list{display:grid;gap:.55rem}.permission-list>label{display:grid;grid-template-columns:minmax(12rem,1fr) 10rem 10rem;align-items:center;gap:.75rem;padding:.7rem;border:1px solid var(--u6-line);border-radius:.85rem}.permission-list span{display:grid;gap:.15rem}.permission-list small,.permission-list em{color:var(--u6-muted);font-size:.76rem;font-style:normal}.permission-checkboxes{display:grid;gap:.55rem;min-width:0}.permission-checkboxes>.permission-checkbox-row{display:grid;grid-template-columns:minmax(0,1fr) 2.75rem;align-items:start;gap:.2rem .85rem;min-width:0;padding:.75rem .8rem;border:1px solid var(--u6-line);border-radius:.85rem;cursor:pointer}.permission-copy{min-width:0;display:grid;gap:.18rem;line-height:1.35;overflow-wrap:anywhere;word-break:normal}.permission-title{min-width:0;font-weight:700}.permission-helper{display:block;margin-top:.08rem;color:var(--u6-muted);font-size:.76rem;font-weight:500;line-height:1.35}.settings-card .permission-checkbox-row>.permission-checkbox{grid-column:2;grid-row:1;align-self:start;justify-self:center;width:1.25rem;height:1.25rem;min-height:1.25rem;margin:.12rem 0 0;padding:0;accent-color:var(--accent-lecture);cursor:pointer}.usage-strip{display:flex;flex-wrap:wrap;gap:.55rem}.usage-strip span,.usage-strip small{padding:.45rem .65rem;border-radius:.7rem;background:#26776314}.card-stack,.occurrence-list{display:grid;gap:.7rem}.detail-card{display:grid;grid-template-columns:1fr auto;gap:.35rem .8rem;align-items:center}.detail-card small,.detail-card span{color:var(--u6-muted)}.detail-card button{grid-column:2;grid-row:1 / span 3}.state-pill,.inline-status{display:inline-flex;align-items:center;gap:.4rem}.state-pill{width:fit-content;padding:.3rem .55rem;border-radius:999px;font-size:.75rem;font-weight:750;background:#506a621f}.state-pill.published,.state-pill.active,.state-pill.approved{color:#17624f;background:#20896921}.state-pill.blocked,.state-pill.rejected,.state-pill.trashed{color:#a43930;background:#be3e331f}.state-pill.pending,.state-pill.pending_owner_review{color:#8b5b12;background:#cf903029}.orphan-context{display:flex;flex-wrap:wrap;gap:.45rem .8rem;color:var(--u6-muted);font-size:.85rem}.user-card{cursor:pointer}.owner-moderation-card{border-left:.25rem solid #d68b46}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;overflow-x:auto}.review-column{min-width:17rem;padding:.8rem;border:1px solid var(--u6-line);border-radius:1rem;background:#ffffff7a}.review-column h3{margin:.1rem 0 .8rem;color:var(--u6-muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.timeline-card>div{display:grid;grid-template-columns:1fr auto;gap:.25rem .8rem;padding:.65rem 0;border-bottom:1px solid var(--u6-line)}.timeline-card>div:last-child{border-bottom:0}.timeline-card p{grid-column:1 / -1;margin:0}.comments-card{display:grid;gap:.65rem}.comments-card article{padding:.75rem;border-radius:.8rem;background:#26776312}.comments-card .private-note{background:repeating-linear-gradient(135deg,#cf903021 0 7px,#cf903012 7px 14px)}.decision-card{display:grid;gap:.85rem;border-color:#2677634d}.conflict-card{color:#87382f;background:#fff0e8;border-color:#efc4b7}.editor-occurrence{display:grid;grid-template-columns:5rem 1fr auto;align-items:center;gap:1rem}.editor-occurrence .occurrence-time{display:grid;font-weight:800}.editor-occurrence .occurrence-time small,.editor-occurrence .occurrence-copy small{color:var(--u6-muted);font-weight:400}.editor-occurrence .occurrence-copy{display:grid;gap:.2rem;min-width:0}.week-toolbar{display:flex;align-items:center;justify-content:center;gap:.65rem}.week-toolbar input{min-height:2.65rem;padding:.5rem .7rem;border:1px solid var(--u6-line);border-radius:.8rem;background:var(--surface, #fff)}.editor-card .section-heading{display:flex;justify-content:space-between;gap:1rem}.error-banner,.offline-banner{padding:.75rem 1rem;border-radius:.8rem;color:#7d342d;background:#fff0e8;border:1px solid #efc4b7}.offline-banner{position:sticky;top:.5rem;z-index:10;margin-bottom:1rem}.form-dialog{box-sizing:border-box;width:min(92vw,34rem);max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding:1.2rem;border-radius:1.2rem;background:var(--surface, #fff)}.form-dialog form{display:grid;gap:.85rem}.dialog-actions,.card-actions{display:flex;flex-wrap:wrap;gap:.55rem}.back-link{padding:0;color:#267763;border:0;background:transparent}@media(max-width:940px){.mobile-nav{grid-template-columns:repeat(5,1fr)}.action-card,.action-card:first-child{grid-column:span 6}.review-grid{grid-template-columns:repeat(3,82vw);scroll-snap-type:x mandatory}.review-column{scroll-snap-align:start}}@media(max-width:620px){.u6-shell .admin-main{padding:.9rem .75rem calc(5.5rem + env(safe-area-inset-bottom));overflow-x:hidden}.screen-header{display:grid}.screen-header>button{justify-self:stretch}.action-card,.action-card:first-child{grid-column:1 / -1;min-height:8.5rem}.form-grid{grid-template-columns:1fr}.permission-list>label{grid-template-columns:1fr}.permission-checkboxes>.permission-checkbox-row{grid-template-columns:minmax(0,1fr) 2.6rem;gap:.2rem .6rem;padding:.72rem}.detail-card{grid-template-columns:1fr}.detail-card button{grid-column:1;grid-row:auto;justify-self:stretch}.editor-occurrence{grid-template-columns:4.2rem 1fr}.editor-occurrence .card-actions{grid-column:1 / -1}.editor-occurrence .card-actions button{flex:1 1 100%}.card-actions>button{flex:1 1 10rem;min-height:2.8rem}}@media(prefers-reduced-motion:reduce){.approval-pulse{animation-duration:2s}}:root[data-theme=dark] .admin-shell{--u6-ink: #e6f0ec;--u6-muted: #9eaaa6;--u6-panel: #1a2623;--u6-line: rgba(230, 240, 236, .11)}:root[data-theme=dark] .review-column{background:#ffffff06}:root[data-theme=dark] .conflict-card,:root[data-theme=dark] .error-banner,:root[data-theme=dark] .offline-banner{color:#ffc1b4;background:#3b211e;border-color:#684038}.announcement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:.9rem}.announcement-card{display:grid;gap:.65rem;min-width:0;padding:1.15rem;text-align:left;color:inherit;border:1px solid var(--u6-line);border-radius:1.3rem;background:linear-gradient(145deg,var(--u6-panel),color-mix(in srgb,var(--u6-panel) 88%,#f4d9a3));box-shadow:0 .65rem 1.8rem #2637300f}.announcement-card h2{margin:0;overflow-wrap:anywhere;font:700 1.22rem/1.2 Georgia,serif}.announcement-card p{margin:0;color:var(--u6-muted)}.announcement-card footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem .8rem;color:var(--u6-muted);font-size:.78rem}.announcement-category,.pin-label{display:inline-flex;width:fit-content;padding:.28rem .58rem;border-radius:999px;font-size:.72rem;font-weight:800}.category-none{color:var(--u6-muted);background:color-mix(in srgb,var(--u6-muted) 12%,transparent)}.category-normal{color:#286551;background:#dcefe7}.category-important{color:#8a5713;background:#fff0c5}.category-urgent{color:#a4372f;background:#ffe0da}.pin-label{color:#77510d;background:#ebb54629}.announcement-editor-card{display:grid;gap:1rem;padding:clamp(.9rem,2vw,1.35rem);border:1px solid var(--u6-line);border-radius:1.4rem;background:var(--u6-panel)}.announcement-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.announcement-form-grid label,.announcement-editor-card>label,.announcement-actions label{display:grid;gap:.4rem;min-width:0;font-weight:700}.announcement-form-grid .wide{grid-column:1 / -1}.announcement-form-grid input,.announcement-form-grid select,.announcement-editor-card textarea,.announcement-actions input{width:100%;min-height:2.8rem;padding:.65rem .75rem;color:inherit;border:1px solid var(--u6-line);border-radius:.75rem;background:var(--surface, #fff);font:inherit}.announcement-editor-card textarea{min-height:7rem;resize:vertical}.form-hint{margin:0;padding:.75rem;color:#76500e;border-radius:.8rem;background:#ecb2411f}.announcement-editor-items{display:grid;gap:.7rem}.announcement-editor-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:start;padding:.8rem;border:1px solid var(--u6-line);border-radius:1rem;background:var(--surface, #fff)}.announcement-editor-item>div:nth-child(2){display:grid;gap:.35rem;min-width:0}.announcement-editor-item small{color:var(--u6-muted)}.link-fields{display:grid;grid-template-columns:1fr 1.5fr;gap:.65rem}.link-fields label{display:grid;gap:.3rem}.announcement-actions{display:flex;flex-wrap:wrap;align-items:end;gap:.65rem;padding:.9rem;border:1px solid var(--u6-line);border-radius:1rem;background:var(--u6-panel)}.announcement-actions label{flex:1 1 15rem}.announcement-preview{display:grid;gap:1rem;min-width:0;padding:1rem;border:1px solid var(--u6-line);border-radius:1.2rem;background:var(--u6-panel)}.announcement-preview header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.announcement-preview h2,.announcement-preview header p{flex-basis:100%;margin:.2rem 0 0;overflow-wrap:anywhere}.announcement-preview header p{color:var(--u6-muted)}.announcement-preview-items{display:grid;gap:.8rem}.announcement-preview-items p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.announcement-preview-items img{width:100%;max-height:32rem;object-fit:contain;border-radius:.9rem;background:#505f5a14}.announcement-preview-items>a:not(.announcement-file){width:fit-content;color:#22735e;text-decoration-thickness:.1em}.announcement-file{display:flex;justify-content:space-between;gap:1rem;padding:.8rem;color:inherit;border:1px solid var(--u6-line);border-radius:.8rem;text-decoration:none}.history-layout{display:grid;grid-template-columns:minmax(14rem,.7fr) minmax(0,2fr);gap:1rem}.offline-card{padding:1rem;border:1px solid #e3bd75;border-radius:1rem;background:#fff4d9}@media(max-width:720px){.announcement-form-grid,.history-layout,.link-fields{grid-template-columns:1fr}.announcement-form-grid .wide{grid-column:1}.announcement-actions>button{flex:1 1 10rem;min-height:2.8rem}.announcement-editor-item{grid-template-columns:auto minmax(0,1fr)}.announcement-editor-item .remove-item{grid-column:1 / -1;justify-self:end}.announcement-card{min-height:9rem}}:root[data-theme=dark] .category-normal{color:#a8ead3;background:#214b3e}:root[data-theme=dark] .category-important{color:#ffdc8f;background:#57451e}:root[data-theme=dark] .category-urgent{color:#ffc1b5;background:#5c2e29}:root[data-theme=dark] .form-hint,:root[data-theme=dark] .offline-card{color:#f4d794;background:#443719;border-color:#665524}.owner-occurrence,.editor-occurrence{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;text-align:left}.owner-occurrence .occurrence-copy,.editor-occurrence .occurrence-copy{display:grid;gap:.32rem}.occurrence-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.occurrence-actions>button{border:0;background:transparent}.cancelled-occurrence{border-color:color-mix(in srgb,#cc493f 38%,var(--u6-line));background:linear-gradient(135deg,color-mix(in srgb,#cc493f 8%,var(--u6-panel)),var(--u6-panel));box-shadow:inset .28rem 0 #c7443b}.cancelled-badge{display:inline-flex;width:max-content;max-width:100%;padding:.28rem .6rem;border-radius:999px;color:#9d302b;background:#ffe2dd;font-size:.72rem;font-weight:850;letter-spacing:.02em}.cancelled-occurrence em{color:#a43a32;font-size:.85rem;font-style:normal}.cancellation-action,.danger-button{color:#a3312b!important;border-color:color-mix(in srgb,#c7443b 35%,var(--u6-line))!important;background:color-mix(in srgb,#c7443b 8%,var(--u6-panel))!important}.danger-button{padding:.72rem 1rem;border:1px solid;border-radius:.8rem;font-weight:800}.cancellation-dialog{box-sizing:border-box;width:min(42rem,calc(100vw - 2rem));max-height:min(48rem,calc(100dvh - 2rem));overflow:auto}.cancellation-dialog header h2{margin:.25rem 0}.cancellation-dialog header p:last-child{color:var(--u6-muted)}.cancellation-dialog>label,.cancellation-reason-field{display:grid;gap:.45rem;font-weight:750}.cancellation-dialog textarea,.cancellation-reason-field textarea{min-height:7rem;resize:vertical}.optional{color:var(--u6-muted);font-size:.8rem;font-weight:500}.homework-side-effect{display:grid;gap:.65rem;padding:1rem;border:1px solid var(--u6-line);border-radius:1rem}.homework-side-effect legend{padding:0 .35rem;font-weight:850}.homework-side-effect label{display:flex;align-items:center;gap:.55rem}.homework-side-effect select{width:100%}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.cancellation-proposal-card{border-left:.28rem solid #c7443b}.cancellation-proposal-card p{margin:.45rem 0;color:var(--u6-muted)}.cancellation-backdrop{place-items:start center;overflow-y:auto;padding-block:clamp(1rem,4vh,2.5rem)}:root[data-theme=dark] .cancelled-badge{color:#ffc0ba;background:#5a2926}:root[data-theme=dark] .cancelled-occurrence em{color:#ffc0ba}@media(max-width:720px){.owner-occurrence,.editor-occurrence{grid-template-columns:auto minmax(0,1fr)}.owner-occurrence .occurrence-actions,.editor-occurrence .card-actions{grid-column:1/-1;align-items:stretch}.occurrence-actions{width:100%}.occurrence-actions>button{width:100%;text-align:center}.cancellation-dialog{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);padding:1rem}.dialog-actions{display:grid;grid-template-columns:1fr}.dialog-actions button{width:100%}.cancelled-badge{white-space:normal}}
