:root{color-scheme:light;--bg:#f5f5f7;--surface:#fff;--surface-solid:#fff;--surface-muted:#fbfbfd;--surface-soft:#f5f5f7;--panel-muted:#e8e8ed;--panel-strong:#1d1d1f;--ink:#424245;--ink-soft:#6e6e73;--muted:#6e6e73;--line:rgba(0,0,0,.07);--line-strong:rgba(0,0,0,.13);--accent:#0071e3;--accent-strong:#06c;--accent-soft:#eaf4ff;--accent-raised:#0077ed;--accent-shadow:rgba(0,113,227,.2);--accent-focus:rgba(0,113,227,.16);--accent-panel:rgba(0,113,227,.08);--accent-line:rgba(0,113,227,.28);--accent-contrast:#fff;--hero-ink:#f7fbef;--hero-muted:hsla(80,60%,96%,.78);--hero-faint:hsla(80,60%,96%,.72);--cyan:#11cdef;--amber:#d8922e;--warning:#d8922e;--warning-strong:#996515;--warning-soft:#fff1cf;--info:#256f8f;--info-soft:#e4f2f6;--danger:#dc2626;--danger-strong:#b91c1c;--danger-soft:#fee2e2;--danger-text:#991b1b;--success:#248a3d;--success-soft:rgba(36,138,61,.12);--success-line:rgba(36,138,61,.28);--success-text:#248a3d;--button-text:#fff;--sidebar:hsla(0,0%,100%,.72);--sidebar-soft:#fbfbfd;--nav-text:#424245;--nav-index-bg:#e8e8ed;--nav-index-text:#6e6e73;--shadow:0 1px 3px rgba(0,0,0,.05),0 14px 40px rgba(0,0,0,.05);--shadow-soft:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05);--header-height:58px;--sidebar-width:218px;--sidebar-collapsed-width:64px;--chrome-blue:#0071e3;--chrome-blue-soft:#eaf4ff;--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--radius-chip:6px;--radius-card:18px;--radius-panel:22px;--ease-apple:cubic-bezier(0.25,1,0.5,1);--panel:var(--surface-solid);--bg-secondary:var(--surface-muted);--text:var(--ink);--text-secondary:var(--muted);--ink-secondary:var(--ink-soft);--surface-raised:var(--surface-muted);--surface-hover:var(--surface-soft);--line-weak:var(--line);--border:var(--line)}:root[data-theme=dark]{color-scheme:dark;--bg:#070b10;--surface:rgba(18,25,38,.94);--surface-solid:#111827;--surface-muted:#182233;--surface-soft:#151e2d;--panel-muted:#1f2a3f;--panel-strong:#f9fbff;--ink:#dce5f3;--ink-soft:#aab7c9;--muted:#9aa8bd;--line:rgba(214,226,244,.11);--line-strong:rgba(214,226,244,.2);--accent:#0f7cff;--accent-strong:#7db8ff;--accent-soft:rgba(15,124,255,.16);--accent-raised:#2f8eff;--accent-shadow:rgba(15,124,255,.22);--accent-focus:rgba(15,124,255,.26);--accent-panel:rgba(15,124,255,.1);--accent-line:rgba(82,157,255,.42);--accent-contrast:#fff;--hero-ink:#f7fbef;--hero-muted:hsla(80,60%,96%,.78);--hero-faint:hsla(80,60%,96%,.72);--warning:#fbbf24;--warning-strong:#fde68a;--warning-soft:rgba(251,191,36,.16);--info:#38bdf8;--info-soft:rgba(56,189,248,.16);--danger:#ef4444;--danger-strong:#dc2626;--danger-soft:rgba(239,68,68,.16);--danger-text:#fecaca;--success:#22c55e;--success-soft:rgba(34,197,94,.14);--success-line:rgba(34,197,94,.32);--success-text:#86efac;--button-text:#fff;--sidebar:#080d13;--sidebar-soft:#121927;--nav-text:#d8e2f1;--nav-index-bg:#edf4ff;--nav-index-text:#5070a5;--shadow:0 24px 56px rgba(0,0,0,.32);--shadow-soft:0 12px 28px rgba(0,0,0,.22)}*{box-sizing:border-box;scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--line-strong);background-clip:padding-box}html{min-width:320px}body{margin:0;min-height:100vh;background:radial-gradient(circle at 92% -8%,var(--accent-soft),transparent 28rem),var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.modal-open{overflow:hidden}button,input,select,textarea{font:inherit}:where(.utility-tool-controls,.utility-ocr-result,.word-counter-tool,.text-diff-tool,.utility-document-tool,.classroom-tool-layout,.certificate-controls,.comment-studio,.seating-controls,.video-cookie-panel,.schedule-editor) :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not(.ant-input),textarea:not(.ant-input),select){border:1px solid var(--line-strong);border-radius:7px;padding:8px 10px;background:var(--surface-solid);color:var(--ink);outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}:where(.utility-tool-controls,.utility-ocr-result,.word-counter-tool,.text-diff-tool,.utility-document-tool,.classroom-tool-layout,.certificate-controls,.comment-studio,.seating-controls,.video-cookie-panel,.schedule-editor) :where(input,textarea)::placeholder{color:var(--muted);opacity:.82}:where(.utility-tool-controls,.utility-ocr-result,.word-counter-tool,.text-diff-tool,.utility-document-tool,.classroom-tool-layout,.certificate-controls,.comment-studio,.seating-controls,.video-cookie-panel,.schedule-editor) :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not(.ant-input),textarea:not(.ant-input),select):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-focus)}code,pre{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace}a{color:inherit;text-decoration:none}.app-frame{min-height:100vh;background:transparent}:root[data-theme=dark] .app-frame{background:var(--bg)}:root[data-theme=dark] .app-header{background:rgba(7,11,16,.82)}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);background:rgba(245,245,247,.76);padding:0 20px 0 15px;box-shadow:none;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.app-header-left,.app-header-right{display:flex;align-items:center;gap:12px;min-width:0}.app-brand{min-width:200px;display:flex;align-items:center;gap:10px;font-weight:900;white-space:nowrap}.app-brand,:root[data-theme=dark] .app-brand{color:var(--panel-strong)}.app-brand .brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#0a84ff,#5e5ce6);color:#fff;font-size:1.05rem;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.26),0 8px 18px rgba(0,113,227,.22)}.app-brand strong{overflow:hidden;font-size:1.02rem;text-overflow:ellipsis}.header-breadcrumb{min-width:0;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.88rem;font-weight:700;white-space:nowrap}:root[data-theme=dark] .header-breadcrumb{color:var(--muted)}.header-breadcrumb>svg{width:17px;height:17px;flex:0 0 auto;color:var(--muted);fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}:root[data-theme=dark] .header-breadcrumb>svg{color:var(--ink)}.header-breadcrumb-item{min-width:0;display:inline-flex;align-items:center;gap:8px}.header-breadcrumb-item span:last-child{overflow:hidden;text-overflow:ellipsis}.header-breadcrumb-item[aria-current=page]{color:var(--panel-strong);font-weight:820}:root[data-theme=dark] .header-breadcrumb-item[aria-current=page]{color:var(--panel-strong)}.header-breadcrumb-separator{color:#9ca3af;font-weight:700}.header-icon-button{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;font-size:.9rem;font-weight:760;transition:background .18s var(--ease-apple),color .18s var(--ease-apple),transform .18s var(--ease-apple)}:root[data-theme=dark] .header-icon-button{color:var(--ink)}.header-icon-button:hover{background:rgba(0,0,0,.06);color:var(--chrome-blue);transform:scale(1.04)}.ai-assistant-trigger{min-width:auto;border:1px solid var(--accent-line);border-radius:10px;padding:0 10px;background:var(--accent-panel);color:var(--accent-strong)}.ai-assistant-trigger:hover{background:var(--accent-soft)}.global-search svg,.header-icon-button svg,.user-dropdown svg,.user-trigger svg,.workspace-tab-strip svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.global-search{width:min(300px,24vw);min-width:190px;height:34px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;grid-gap:7px;gap:7px;border:1px solid var(--line-strong);border-radius:999px;padding:0 9px 0 12px;background:var(--surface-solid);color:var(--muted)}.global-search input{min-width:0;border:0;outline:0;background:transparent;color:var(--panel-strong);font-size:.86rem}.global-search input::placeholder{color:var(--muted)}.global-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.global-search button{width:20px;height:20px;border:0;border-radius:50%;cursor:pointer;line-height:1}.global-search button,.global-search kbd{background:var(--surface-muted);color:var(--muted)}.global-search kbd{border:0;border-radius:999px;padding:2px 7px;font-size:.72rem;font-weight:800}.shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:calc(100vh - var(--header-height));padding:0;grid-gap:0;gap:0;transition:grid-template-columns .18s ease}.shell-collapsed .shell{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)}.shell-loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.sidebar{position:-webkit-sticky;position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));overflow:auto;display:flex;flex-direction:column;gap:8px;padding:12px 8px 18px;background:var(--sidebar);color:var(--ink);border-right:1px solid var(--line);backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px)}.sidebar-brand{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;grid-gap:9px;gap:9px;min-height:34px}.sidebar-brand strong{overflow:hidden;color:var(--panel-strong);font-size:1.08rem;text-overflow:ellipsis;white-space:nowrap}.brand-mark{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--accent);color:var(--accent-contrast);font-size:.85rem;font-weight:900;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.18)}.sidebar-search{min-height:38px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px;margin-top:18px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;background:var(--surface-solid);color:var(--muted);font-weight:800}.sidebar-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--panel-strong);font:inherit}.sidebar-search input::placeholder{color:var(--muted)}.sidebar-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.sidebar-search button{width:clamp(17px,5cqw,22px);height:clamp(17px,5cqw,22px);border:1px solid var(--line);border-radius:6px;background:var(--surface-muted);color:var(--muted);cursor:pointer;font-size:clamp(.82rem,3.4cqw,1rem);line-height:1}.sidebar-search kbd{border:0;border-radius:6px;padding:2px 7px;background:var(--accent);color:var(--button-text);font-size:.7rem;font-weight:900}.login-entry{display:flex;align-items:center;justify-content:center;margin:0 0 18px;border:1px solid var(--accent-line);border-radius:12px;padding:11px 14px;background:var(--accent-soft);color:var(--accent-strong);font-weight:800;transition:transform .16s ease,background .16s ease}.login-entry.active,.login-entry:hover{transform:translateY(-1px);background:var(--accent-focus)}.nav-group{margin:0}.nav-title{width:100%;min-height:32px;display:grid;grid-template-columns:22px minmax(0,1fr) 16px;align-items:center;grid-gap:10px;gap:10px;border:1px solid transparent;border-radius:10px;padding:9px 10px;background:transparent;color:var(--ink);cursor:pointer;font-size:.86rem;font-weight:700;text-transform:none;text-align:left}.nav-group.open .nav-title,.nav-title:hover{background:rgba(0,0,0,.04)}.nav-item>svg,.nav-title>svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.nav-title>svg:last-child{transition:transform .14s ease}.nav-group.open .nav-title>svg:last-child{transform:rotate(180deg)}.nav-items{display:grid;grid-gap:2px;gap:2px;margin-top:2px}.nav-item{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;min-height:35px;margin:0;padding:7px 10px;border:1px solid transparent;border-radius:10px;color:var(--ink);font-size:.84rem;font-weight:650;transition:background .18s var(--ease-apple),color .18s var(--ease-apple)}.nav-item:hover{background:rgba(0,0,0,.04);color:var(--panel-strong)}.nav-item.active,.nav-item:hover{transform:none;border-color:transparent}.nav-item.active{background:var(--chrome-blue-soft);color:var(--chrome-blue);box-shadow:none}:root[data-theme=dark] .nav-item,:root[data-theme=dark] .nav-title{color:var(--ink)}:root[data-theme=dark] .nav-item.active{background:rgba(49,88,232,.22);color:#91b3ff}.shell-collapsed .nav-item,.shell-collapsed .nav-title{grid-template-columns:1fr;justify-items:center;gap:0;padding-inline:0}.shell-collapsed .nav-label,.shell-collapsed .nav-title>svg:last-child{display:none}.nav-empty{margin:4px 2px;border:1px dashed var(--line);border-radius:7px;padding:12px 10px;color:var(--muted);font-size:.84rem;font-weight:800;text-align:center}.sidebar-account{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;margin-top:auto;border:1px solid var(--line);border-radius:7px;padding:9px;background:var(--surface-solid)}.sidebar-account span:last-child{display:grid;grid-gap:2px;gap:2px;min-width:0}.sidebar-account strong{color:var(--panel-strong);font-size:.82rem}.sidebar-account small{overflow:hidden;color:var(--muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.main{min-width:0;padding:0 clamp(18px,2.4vw,28px) 34px}.main,.main>*{position:relative}.main>*{z-index:1}.workspace-actions{flex:1 1;display:flex;align-items:center;gap:12px;justify-content:flex-end}.students-header-actions{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px}.students-header-primary{width:min(300px,32vw);min-width:220px}.students-header-primary .select-field{grid-template-columns:auto minmax(160px,1fr);align-items:center;gap:10px}.students-header-primary .select-control>button{min-height:42px;padding-block:9px;border-color:var(--line-strong);background:var(--surface-muted)}.workspace-toolbar{position:relative;z-index:40;display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:14px 0 10px}.workspace-tab-strip{min-height:42px;display:flex;align-items:center;gap:6px;margin-inline:calc(clamp(18px, 2.4vw, 28px) * -1);border-bottom:1px solid var(--line);padding:0 clamp(18px,2.4vw,28px);background:hsla(0,0%,100%,.56);color:var(--muted);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}:root[data-theme=dark] .workspace-tab-strip{background:rgba(17,24,39,.82)}.workspace-tab-strip::-webkit-scrollbar{display:none}.workspace-tab{height:42px;max-width:190px;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;border-radius:10px 10px 0 0;padding:0 12px;color:var(--muted);font-size:.82rem;font-weight:760;white-space:nowrap;transition:background .14s ease,color .14s ease,border-color .14s ease}.workspace-tab:hover{background:rgba(0,0,0,.04);color:var(--panel-strong)}.workspace-tab>span{overflow:hidden;min-width:0;text-overflow:ellipsis}.workspace-tab.active{background:var(--chrome-blue-soft);color:var(--chrome-blue)}.workspace-tab-close{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 auto;margin-right:-5px;border:0;border-radius:6px;background:transparent;color:currentColor;cursor:pointer;opacity:.64;transition:background .14s ease,opacity .14s ease}.workspace-tab-close:focus-visible,.workspace-tab-close:hover{background:rgba(49,88,232,.12);opacity:1;outline:none}.auth-check-overlay{position:fixed;inset:0;z-index:220;display:grid;place-items:center;background:rgba(247,249,252,.56);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.auth-check-modal{width:74px;height:74px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-solid);box-shadow:var(--shadow-soft)}.auth-check-spinner{width:34px;height:34px;border:3px solid var(--chrome-blue-soft);border-top-color:var(--chrome-blue);border-radius:50%;animation:auth-check-spin .76s linear infinite}@keyframes auth-check-spin{to{transform:rotate(1turn)}}:root[data-theme=dark] .workspace-tab.active{background:rgba(49,88,232,.22);color:#91b3ff}:root[data-theme=dark] .workspace-tab-close:focus-visible,:root[data-theme=dark] .workspace-tab-close:hover{background:rgba(145,179,255,.14)}:root[data-theme=dark] .auth-check-overlay{background:rgba(7,11,16,.58)}:root[data-theme=dark] .auth-check-spinner{border-color:#91b3ff rgba(145,179,255,.2) rgba(145,179,255,.2)}@media (prefers-reduced-motion:reduce){.auth-check-spinner{animation-duration:1.4s}}.session-pill{border:1px solid var(--line);border-radius:999px;padding:7px 11px;background:var(--surface-solid);color:var(--muted);font-size:.82rem;font-weight:900}.session-pill.online{border-color:var(--success-line);background:var(--success-soft);color:var(--success-text)}.user-menu{position:relative;z-index:120}.user-trigger{display:flex;align-items:center;justify-content:flex-start;gap:7px;border:0;border-radius:7px;padding:4px 7px;background:transparent;color:var(--ink);cursor:pointer;font-weight:700;transition:background .14s ease,color .14s ease}.user-trigger:hover{background:var(--surface-muted)}.user-avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#ead9bd,#a87f54);color:#fff;font-size:.75rem;font-weight:900}.user-meta{display:grid;min-width:38px;place-items:center start}.user-meta span{color:var(--muted);font-size:.72rem;font-weight:800}.user-meta strong{color:inherit;font-size:.86rem}.user-dropdown{position:absolute;top:calc(100% + 9px);right:0;z-index:130;width:124px;border:1px solid var(--line);border-radius:4px;padding:4px 0;background:var(--surface-solid);box-shadow:0 8px 22px rgba(17,24,39,.12)}.user-dropdown-divider{height:1px;margin:4px 0;background:var(--line)}.user-dropdown a,.user-dropdown button{width:100%;min-height:36px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;grid-gap:8px;gap:8px;border:0;border-radius:0;padding:7px 12px;background:transparent;color:var(--ink);cursor:pointer;font-size:.9rem;font-weight:500;text-align:left;transition:background .14s ease,color .14s ease,opacity .14s ease}.user-dropdown a:hover,.user-dropdown button:hover:not(:disabled){background:var(--surface-muted);color:var(--chrome-blue)}.user-dropdown button:disabled{cursor:wait;opacity:.68}:root[data-theme=dark] .user-dropdown a,:root[data-theme=dark] .user-dropdown button,:root[data-theme=dark] .user-trigger{color:var(--ink)}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;min-height:118px;align-items:flex-start;margin:4px 0 -34px;padding:18px 4px 0}.kicker{margin:0 0 8px;color:var(--hero-faint);font-size:.82rem;font-weight:900}.topbar h2{margin:0;color:var(--hero-ink);font-size:clamp(1.62rem,2.4vw,2.35rem);letter-spacing:0}.lead{max-width:820px;margin:10px 0 0;color:var(--hero-muted);line-height:1.62}.grid{grid-template-columns:1fr;grid-gap:18px}.grid,.tags-layout{display:grid;gap:18px;align-items:start}.tags-layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);grid-gap:18px}.assignment-manager{display:grid;grid-gap:18px;gap:18px}.assignment-note{padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,var(--surface-solid));color:var(--muted);line-height:1.6}.assignment-form{padding-top:18px;border-top:1px solid var(--line)}.comments-layout{display:grid;grid-gap:18px;gap:18px}.permissions-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.permission-role-panel{position:-webkit-sticky;position:sticky;top:18px;display:grid;grid-gap:14px;gap:14px}.permission-panel-subtitle{display:block;margin-top:3px;color:var(--muted);font-size:.82rem;font-weight:800}.permission-role-list{display:grid;grid-gap:9px;gap:9px}.permission-role-card{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-solid);color:var(--ink);cursor:pointer;text-align:left;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.permission-role-card span{display:grid;grid-gap:3px;gap:3px}.permission-role-card strong{color:var(--ink);font-size:.96rem}.permission-role-card em,.permission-role-card small{color:var(--muted);font-size:.78rem;font-style:normal;font-weight:800}.permission-role-card em{display:block;margin-top:10px}.permission-role-card.active,.permission-role-card:hover{border-color:var(--accent);background:var(--accent-panel);box-shadow:inset 3px 0 0 var(--accent)}.permission-workspace{display:grid;grid-gap:18px;gap:18px;min-width:0}.permission-summary-panel{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:18px;gap:18px}.permission-title-block{display:grid;grid-gap:6px;gap:6px}.permission-title-block h3,.permission-title-block p{margin:0}.permission-title-block p{color:var(--muted);font-weight:800}.permission-status{width:-moz-fit-content;width:fit-content;border:1px solid var(--line-strong);border-radius:999px;padding:4px 9px;background:var(--surface-muted);color:var(--muted);font-size:.76rem;font-weight:900}.permission-status.active{border-color:var(--success-line);background:var(--success-soft);color:var(--success-text)}.permission-summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(86px,auto));grid-gap:10px;gap:10px}.permission-summary-metrics span{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--surface-muted);color:var(--muted);font-size:.78rem;font-weight:800}.permission-summary-metrics strong{display:block;color:var(--ink);font-size:1.18rem}.permission-matrix-heading,.permission-summary-actions,.permission-tabs{display:flex;align-items:center;gap:10px}.permission-summary-actions{justify-content:flex-end;flex-wrap:wrap}.permission-detail-panel{display:grid;grid-gap:16px;gap:16px}.permission-tabs{width:-moz-fit-content;width:fit-content;border:1px solid var(--line);border-radius:999px;padding:4px;background:var(--surface-muted)}.permission-tabs button{border:0;border-radius:999px;padding:8px 14px;background:transparent;color:var(--muted);cursor:pointer;font-weight:900}.permission-tabs button.active{background:var(--surface-solid);color:var(--ink);box-shadow:var(--shadow-soft)}.permission-matrix-form,.permission-members-view{display:grid;grid-gap:14px;gap:14px}.permission-matrix-heading{justify-content:space-between}.permission-matrix-heading h3,.permission-matrix-heading p{margin:0}.permission-matrix-heading p{margin-top:4px;color:var(--muted);font-weight:800}.permission-member-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px}.permission-member-card{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-solid)}.permission-member-card>span{width:clamp(30px,9.5cqw,40px);height:clamp(30px,9.5cqw,40px);display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent-strong);font-weight:900}.permission-member-card div{min-width:0;display:grid;grid-gap:3px;gap:3px}.permission-member-card small,.permission-member-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.permission-member-card small{color:var(--muted);font-weight:800}.role-select-table tbody tr{cursor:pointer}.role-select-table tbody tr.active,.role-select-table tbody tr:hover{background:var(--bg-active,rgba(0,0,0,.04))}.role-select-table tbody tr.active td:first-child{border-left:3px solid var(--accent)}.comments-toolbar-panel{padding:clamp(12px,3.8cqw,16px)}.comments-toolbar{display:grid;grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(300px,1.4fr) auto;align-items:end;grid-gap:12px;gap:12px}.comments-options{min-height:38px;flex-wrap:wrap}.comments-actions,.comments-options{display:flex;align-items:center;gap:10px}.comments-actions{flex-wrap:nowrap;justify-content:flex-end}.comments-progress{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.current-operation-indicator{margin-bottom:10px;padding:6px 12px;background:var(--info-soft);border:1px solid color-mix(in srgb,var(--info) 38%,transparent);border-radius:6px;font-size:.88rem;color:var(--info)}.current-operation-indicator strong{margin:0 2px}.comments-prompt{margin-top:10px;padding:8px 10px;background:var(--bg-secondary);border-radius:6px;font-size:.85rem;color:var(--text-secondary);line-height:1.5;max-height:72px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.comments-prompt strong{color:var(--text);margin-right:4px}.comments-selection-note{margin-top:10px;color:var(--muted);font-size:.88rem;font-weight:800}.comments-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.comments-progress-meta strong{color:var(--panel-strong)}.comments-progress-current,.comments-progress-meta span{color:var(--muted);font-size:.88rem;font-weight:700}.generate-field{margin-bottom:14px}.generate-field label{display:block;margin-bottom:4px}.generate-content{padding:8px 10px;background:var(--bg-secondary);border-radius:6px;font-size:.85rem;line-height:1.6;white-space:pre-wrap;min-height:60px;max-height:300px;overflow-y:auto}.generate-content.muted{color:var(--muted);border:1px dashed var(--line);background:color-mix(in srgb,var(--surface-solid) 88%,var(--accent-soft))}.generate-loading{padding:20px;text-align:center;color:var(--muted)}.generate-warning{padding:8px 12px;background:var(--warning-soft);border:1px solid color-mix(in srgb,var(--warning) 38%,transparent);border-radius:6px;color:var(--warning-strong);font-size:.85rem;line-height:1.5}.generate-footer{display:flex;gap:8px;justify-content:flex-end}.comments-progress-error{display:block;margin-top:6px;color:var(--danger-text);font-size:.88rem;font-weight:800}.tags-create-panel{position:-webkit-sticky;position:sticky;top:22px}.panel{border:1px solid var(--line);border-radius:var(--radius-panel);padding:22px;background:var(--surface-solid);box-shadow:var(--shadow-soft)}.panel h3{margin:0 0 14px;color:var(--panel-strong);font-size:1.05rem;font-weight:720;letter-spacing:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-heading h3{margin:0}.ai-health-page{display:grid;grid-gap:20px;gap:20px}.ai-health-hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:28px 30px;border:1px solid var(--line);border-radius:22px;background:radial-gradient(circle at 86% 18%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--panel) 96%,var(--accent) 4%),var(--panel));box-shadow:var(--shadow-soft)}.ai-health-hero h2{margin:6px 0 8px;font-size:clamp(28px,3vw,42px);letter-spacing:-.04em}.ai-health-hero p{max-width:660px;margin:0;color:var(--muted);line-height:1.7}.ai-health-eyebrow{color:var(--accent);font-size:12px;font-weight:750;letter-spacing:.14em}.ai-health-actions{display:flex;gap:10px;flex:0 0 auto}.ai-health-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.ai-health-metrics article{display:grid;align-content:space-between;min-height:132px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow-soft)}.ai-health-metrics small,.ai-health-metrics span{color:var(--muted)}.ai-health-metrics strong{font-size:25px;letter-spacing:-.03em}.ai-health-success .ant-progress{margin-top:7px}.ai-health-layout{grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);align-items:start}.ai-health-layout,.ai-health-side{display:grid;grid-gap:16px;gap:16px}.ai-health-errors .panel-heading p,.ai-health-routes .panel-heading p,.ai-health-side .panel-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}.ai-route-list{display:grid;margin-top:10px}.ai-route-row{display:grid;grid-template-columns:10px minmax(150px,1fr) auto minmax(140px,.9fr);grid-gap:14px;gap:14px;align-items:center;padding:16px 2px;border-top:1px solid var(--line)}.ai-health-status{width:9px;height:9px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 4px color-mix(in srgb,var(--muted) 13%,transparent)}.ai-health-status.is-ready{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 14%,transparent)}.ai-health-status.is-warning{background:var(--warning);box-shadow:0 0 0 4px color-mix(in srgb,var(--warning) 15%,transparent)}.ai-route-main{display:grid;grid-gap:4px;gap:4px}.ai-route-fallback,.ai-route-limits,.ai-route-main span{color:var(--muted);font-size:13px}.ai-route-limits{display:flex;gap:10px;white-space:nowrap}.ai-route-fallback{text-align:right}.ai-health-detail{display:grid;margin:12px 0 0}.ai-health-detail div{display:grid;grid-template-columns:88px minmax(0,1fr);grid-gap:12px;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.ai-health-detail dt{color:var(--muted)}.ai-health-detail dd{margin:0;text-align:right;overflow-wrap:anywhere}.ai-provider-list{display:grid;margin-top:8px}.ai-provider-list>div{display:grid;grid-template-columns:10px 1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.ai-provider-list span:nth-child(2){display:grid;grid-gap:2px;gap:2px}.ai-provider-list em,.ai-provider-list small{color:var(--muted);font-size:12px;font-style:normal}.ai-health-test-error,.ai-health-test-success{margin:12px 0 0;padding:10px 12px;border-radius:10px;font-size:13px}.ai-health-test-success{color:var(--success);background:color-mix(in srgb,var(--success) 9%,transparent)}.ai-health-test-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}.ai-health-error,.ai-health-loading{min-height:220px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px dashed var(--line);border-radius:18px;color:var(--muted);background:var(--panel)}.ai-health-error{flex-direction:column;color:var(--danger)}@media (max-width:1050px){.ai-health-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-health-layout{grid-template-columns:1fr}}@media (max-width:700px){.ai-health-hero{align-items:stretch;flex-direction:column;padding:22px 20px}.ai-health-actions{display:grid;grid-template-columns:1fr 1fr}.ai-health-metrics{grid-template-columns:1fr}.ai-health-metrics article{min-height:110px}.ai-route-row{grid-template-columns:10px 1fr}.ai-route-fallback,.ai-route-limits{grid-column:2;text-align:left;white-space:normal}}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.module{min-height:92px;border:1px solid var(--line);border-radius:var(--radius-card);padding:14px;background:var(--surface-solid);box-shadow:none}.module strong{display:block;margin-bottom:7px;color:var(--panel-strong)}.module span{color:var(--muted);line-height:1.58}.form,.form-grid,.settings-form{display:grid;grid-gap:13px;gap:13px}.settings-form{grid-template-columns:repeat(2,minmax(0,1fr))}.date-field,.form label,.form-grid label,.select-field,.settings-form label,.toolbar-form label{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:.92rem;font-weight:700}.form .ant-select,.form-grid .ant-select{width:100%}.form input,.form select,.form textarea,.settings-form input,.settings-form select,.settings-form textarea,.toolbar-form select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--surface-solid);color:var(--ink);outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.form select,.settings-form select,.toolbar-form select{min-height:46px;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;background-repeat:no-repeat;background-size:5px 5px,5px 5px}.form select:invalid,.settings-form select:invalid,.toolbar-form select:invalid{color:var(--muted)}.form select option,.settings-form select option,.toolbar-form select option{background:var(--surface-solid);color:var(--ink)}.date-field,.select-field{position:relative;min-width:0}.toolbar-form .select-field{min-width:240px}.permission-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.permission-toolbar .select-field{flex:1 1 280px}.permission-toolbar .button{flex:0 0 auto}.import-panel .toolbar-form{display:block;margin-bottom:16px}.import-panel .toolbar-form .select-field{min-width:0}.import-actions{display:grid;grid-gap:12px;gap:12px}.import-action-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,220px);align-items:end;grid-gap:14px;gap:14px}.student-import-options-panel{width:min(920px,100%)}.student-import-options{display:grid;grid-gap:14px;gap:14px}.import-option-card{display:grid;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-muted)}.import-option-card h4{margin:0;font-size:1rem}.import-option-card p{margin:4px 0 0;color:var(--muted);font-size:.92rem}.select-control{position:relative;display:block}.select-control>button{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 38px 11px 12px;background:var(--surface-solid);color:var(--ink);cursor:pointer;font:inherit;font-weight:800;outline:none;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.select-control>button:after{content:"";position:absolute;top:50%;right:16px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-65%) rotate(45deg);transition:transform .14s ease}.select-control.open>button,.select-control>button:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-focus)}.select-control.open>button:after{transform:translateY(-30%) rotate(225deg)}.select-control.empty>button,.select-control>button:disabled{color:var(--muted)}.select-control>button:disabled{cursor:default}.select-control>button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-menu{position:absolute;z-index:20;top:calc(100% + 7px);left:0;right:0;max-height:240px;overflow:auto;display:grid;grid-gap:4px;gap:4px;border:1px solid var(--line-strong);border-radius:12px;padding:6px;background:var(--surface-solid);box-shadow:var(--shadow-soft)}.select-menu button{width:100%;border:0;border-radius:9px;padding:10px 11px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-weight:800;text-align:left}.select-menu button:hover{background:var(--surface-muted);color:var(--panel-strong)}.select-menu button.active{background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:var(--button-text)}.form input:focus,.form select:focus,.form textarea:focus,.settings-form input:focus,.settings-form select:focus,.settings-form textarea:focus,.toolbar-form select:focus{border-color:var(--accent);background:var(--surface-solid);box-shadow:0 0 0 4px var(--accent-focus)}.form textarea,.settings-form textarea{resize:vertical;line-height:1.55}.wide-panel{max-width:1200px}.teacher-profile-layout{width:min(1120px,100%)}.teacher-profile-card{min-height:320px}.profile-subtitle{margin:6px 0 0;color:var(--muted);font-size:.92rem}.profile-updated{color:var(--muted);font-size:.82rem;font-weight:800}.teacher-profile-form{display:grid;grid-gap:18px;gap:18px}.profile-field-grid,.profile-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.profile-role-card{display:grid;grid-gap:9px;gap:9px;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-muted);cursor:pointer}.profile-role-card.active{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent-panel) 20%,var(--surface-solid))}.profile-role-card span{color:var(--muted);font-size:.9rem;line-height:1.55}.profile-checkbox{color:var(--panel-strong);font-size:.98rem;font-weight:900}.profile-ant-field{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:.92rem;font-weight:800}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}table{width:100%;min-width:640px;border-collapse:collapse}.compact-table{overflow-x:hidden}.compact-table table{min-width:0;table-layout:auto}.compact-table td:last-child,.compact-table th:last-child{width:1%;white-space:nowrap}.student-table td:first-child,.student-table th:first-child{width:92px;white-space:nowrap}.student-table table{min-width:0}.student-table td:nth-child(2),.student-table th:nth-child(2){width:auto;white-space:nowrap}.permission-table table{min-width:960px}.permission-table td:not(:first-child),.permission-table th:not(:first-child){text-align:center}.permission-table td:first-child,.permission-table th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--surface-solid)}.permission-table th:first-child{z-index:2}.permission-table input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}td,th{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:var(--surface-muted);color:var(--muted);font-size:.82rem;font-weight:900}tbody tr{transition:background .14s ease}tbody tr:hover{background:var(--surface-muted)}tbody tr.selected-row,tbody tr.selected-row:hover{background:var(--accent-soft)}tbody tr.selected-row .row-button,tbody tr.selected-row .row-button span,tbody tr.selected-row td{color:var(--accent-strong)}tr:last-child td{border-bottom:0}.muted-line{display:block;margin-top:4px;color:var(--muted);font-size:.86rem}.single-column{grid-template-columns:1fr}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.stacked-panel{margin-top:18px}.academic-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.academic-actions .ant-btn.button{border:1px solid var(--accent);background:var(--accent);color:var(--button-text)!important;box-shadow:0 8px 16px var(--accent-shadow)}.academic-actions .ant-btn.button.secondary{border-color:var(--line-strong);background:var(--surface-solid);color:var(--ink)!important;box-shadow:none}.academic-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):focus-visible,.academic-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent);background:var(--accent-raised);color:var(--button-text)!important}.academic-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):focus-visible,.academic-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)!important}:root[data-theme=dark] .academic-actions .ant-btn.button{border-color:var(--accent);background:var(--accent);color:var(--button-text)!important;box-shadow:0 8px 18px var(--accent-shadow)}:root[data-theme=dark] .academic-actions .ant-btn.button.secondary{border-color:var(--line-strong);background:transparent;color:var(--ink)!important;box-shadow:none}:root[data-theme=dark] .academic-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):focus-visible,:root[data-theme=dark] .academic-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent);background:var(--accent-raised);color:var(--button-text)!important}:root[data-theme=dark] .academic-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):focus-visible,:root[data-theme=dark] .academic-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--button-text)!important}.academic-stack .settings-form{grid-template-columns:1fr}.academic-stack .panel,.academic-stack .wide-panel{max-width:100%}.segment-tabs{display:inline-flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted)}.segment-tabs button{min-width:86px;border:0;border-radius:10px;padding:10px 14px;background:transparent;color:var(--muted);cursor:pointer;font-weight:900}.segment-tabs button.active{background:var(--surface-solid);color:var(--accent-strong);box-shadow:0 8px 18px rgba(50,50,93,.08)}.modal-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:22px;background:rgba(7,15,33,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-panel{width:min(520px,100%);max-height:min(720px,calc(100vh - 44px));overflow:auto;border:1px solid var(--line-strong);border-radius:16px;padding:18px;background:var(--surface-solid);box-shadow:0 30px 80px rgba(0,0,0,.32)}.modal-panel:has(.manage-modal-content){width:min(940px,100%)}.manage-modal-content{display:grid;grid-gap:16px;gap:16px;min-width:0}.manage-modal-content .app-ant-table,.manage-modal-content>.grid,.manage-modal-content>.grid>.panel{width:100%;min-width:0}.modal-panel:has(.manage-edit-modal){width:min(560px,100%)}.manage-edit-modal .panel{margin:0;border:0;padding:0;background:transparent;box-shadow:none}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.modal-heading h3{margin:0}.modal-subtitle{margin:6px 0 0;color:var(--muted);font-size:.9rem;font-weight:700}.modal-close{display:inline-grid;width:clamp(28px,8cqw,36px);height:clamp(28px,8cqw,36px);place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface-muted);color:var(--ink);cursor:pointer;font:inherit;font-size:1.3rem;line-height:1}.modal-close:hover{color:var(--accent-strong);border-color:var(--line-strong)}.app-ant-modal .ant-modal-content{border:1px solid var(--line-strong);border-radius:16px;background:var(--surface-solid);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.32)}.app-ant-modal .ant-modal-header{margin-bottom:16px;background:transparent}.app-ant-modal .ant-modal-close,.app-ant-modal .ant-modal-title{color:var(--panel-strong)}.app-ant-modal .ant-modal-body{max-height:min(720px,calc(100vh - 170px));overflow:auto}.app-ant-modal .panel{box-shadow:none}.student-workbench-modal .ant-modal-body{padding-bottom:18px}.student-workbench-modal .ant-input-textarea-show-count:after{display:block;float:none;margin-top:6px;text-align:right}.student-workbench-modal .ant-modal-footer{clear:both;margin-top:8px}.ant-modal-subtitle{margin:-2px 0 18px;color:var(--muted);font-weight:700}.ant-field-label{display:grid;grid-gap:8px;gap:8px;color:var(--muted);font-size:.88rem;font-weight:800}.fixed-import-class{min-height:clamp(36px,10cqw,44px);display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:12px;padding:10px 12px;background:var(--surface-muted);color:var(--panel-strong);font-size:.95rem;font-weight:900}.ant-modal.student-import-ant-modal .ant-modal-content,.ant-modal.student-preview-ant-modal .ant-modal-content{border:1px solid var(--line-strong);background:var(--surface-solid);color:var(--ink)}.ant-modal.student-import-ant-modal .ant-modal-title,.ant-modal.student-preview-ant-modal .ant-modal-title{color:var(--panel-strong);font-weight:900}.ant-modal.student-import-ant-modal .ant-btn,.ant-modal.student-import-ant-modal .ant-select{width:100%}.ant-modal.student-import-ant-modal .import-option-card h4{color:var(--panel-strong)}.ant-modal.student-import-ant-modal .import-option-card p{color:var(--muted)}:root[data-theme=dark] .ant-modal.student-import-ant-modal .import-option-card,:root[data-theme=dark] .ant-modal.student-preview-ant-modal .preview-ant-sticky-bar{background:color-mix(in srgb,var(--surface-muted) 82%,#0b1220);border-color:var(--line-strong)}:root[data-theme=dark] .student-import-ant-modal .ant-modal-content,:root[data-theme=dark] .student-preview-ant-modal .ant-modal-content{background:#0f1728!important;border-color:rgba(214,226,244,.2)!important}:root[data-theme=dark] .student-import-ant-modal .ant-modal-header,:root[data-theme=dark] .student-preview-ant-modal .ant-modal-header{background:transparent!important}:root[data-theme=dark] .ant-modal.student-import-ant-modal .ant-btn-default{border-color:var(--line-strong);background:color-mix(in srgb,var(--surface-solid) 78%,#0a1020);color:var(--ink)}:root[data-theme=dark] .ant-modal.student-import-ant-modal .ant-btn-default:not(:disabled):hover{border-color:color-mix(in srgb,var(--accent) 56%,var(--line-strong));color:var(--panel-strong)}:root[data-theme=dark] .ant-modal.student-import-ant-modal .ant-upload-list-item{border-color:var(--line-strong);background:color-mix(in srgb,var(--surface-solid) 88%,#0a1020)}:root[data-theme=dark] .ant-modal.student-import-ant-modal .ant-upload-list-item .anticon,:root[data-theme=dark] .ant-modal.student-import-ant-modal .ant-upload-list-item-name{color:var(--ink)}.student-preview-ant-modal .ant-modal-body{padding-bottom:0}.preview-ant-sticky-bar{position:-webkit-sticky;position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;border-block:1px solid var(--line);padding:12px 0;background:color-mix(in srgb,var(--surface-solid) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.preview-ant-sticky-bar>span{color:var(--muted);font-weight:800}.preview-ant-actions{display:flex;flex:0 0 auto;gap:10px}.preview-ant-actions .ant-btn{width:-moz-fit-content;width:fit-content;min-width:92px;flex:none;white-space:nowrap}.preview-ant-actions .confirm-import-btn.ant-btn-primary{color:var(--button-text)!important}.preview-ant-actions .confirm-import-btn.ant-btn-primary.ant-btn-disabled,.preview-ant-actions .confirm-import-btn.ant-btn-primary:disabled{color:var(--muted)!important}.student-preview-ant-modal .preview-ant-actions .ant-btn.button,.student-preview-ant-modal .preview-ant-actions .button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--accent);background:var(--accent);color:var(--button-text)!important;box-shadow:0 8px 16px var(--accent-shadow)}.student-preview-ant-modal .preview-ant-actions .ant-btn.button.secondary,.student-preview-ant-modal .preview-ant-actions .button.secondary{border-color:var(--line-strong);background:var(--surface-solid);color:var(--ink)!important;box-shadow:none}.student-preview-ant-modal .preview-ant-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):focus-visible,.student-preview-ant-modal .preview-ant-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent);background:var(--accent-raised);color:var(--button-text)!important}.student-preview-ant-modal .preview-ant-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):focus-visible,.student-preview-ant-modal .preview-ant-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)!important}.student-preview-ant-modal .preview-ant-actions .ant-btn.button.ant-btn-disabled,.student-preview-ant-modal .preview-ant-actions .ant-btn.button:disabled{border-color:var(--line-strong);background:var(--surface-muted);color:var(--muted)!important;opacity:1}:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button,:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .button{border-color:var(--accent);background:var(--accent);color:var(--button-text)!important;box-shadow:0 8px 18px var(--accent-shadow)}:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button.secondary,:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .button.secondary{border-color:var(--line-strong);background:transparent;color:var(--ink)!important;box-shadow:none}:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):focus-visible,:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent);background:var(--accent-raised);color:var(--button-text)!important}:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):focus-visible,:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--button-text)!important}:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button.ant-btn-disabled,:root[data-theme=dark] .student-preview-ant-modal .preview-ant-actions .ant-btn.button:disabled{border-color:var(--line-strong);background:var(--surface-muted);color:var(--muted)!important;opacity:1}.confirm-backdrop{z-index:1010}.confirm-panel{display:grid;width:min(440px,100%);grid-gap:14px;gap:14px;padding:22px}.confirm-mark{display:inline-grid;width:42px;height:42px;place-items:center;border-radius:14px;background:var(--accent-soft);color:var(--accent-strong);font-size:1.2rem;font-weight:900}.confirm-mark.danger{background:rgba(245,54,92,.1);color:var(--danger)}.confirm-copy h3,.confirm-copy p{margin:0}.confirm-copy{display:grid;grid-gap:7px;gap:7px}.confirm-copy p{color:var(--muted);line-height:1.7}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.disabled-link{pointer-events:none;opacity:.58}.check-row{display:flex!important;grid-template-columns:none!important;flex-direction:row;align-items:center;gap:9px!important}.check-row .ant-checkbox,.checkbox-field .ant-checkbox{align-self:center;line-height:1}.check-row .ant-checkbox+span,.checkbox-field .ant-checkbox+span{display:inline-flex;align-items:center;min-height:18px;line-height:1.35}.compact-check{min-height:32px;border:0;padding:0;background:transparent}.check-row input{width:18px!important;height:18px;accent-color:var(--accent)}.comment-cell{display:block;max-width:520px;white-space:normal;line-height:1.6}.comment-cell.finalized{font-weight:800}.comment-cell.finalized,.comment-finalized-name strong{color:var(--success-text)}.comment-status{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:4px 9px;background:var(--panel-muted);font-size:.78rem;font-weight:900;white-space:nowrap;transition:background .25s ease,border-color .25s ease,color .25s ease,transform .2s ease}.comment-status.finalized{border-color:var(--success-line);background:var(--success-soft);color:var(--success-text);animation:statusPulse .4s ease-out}@keyframes statusPulse{0%{transform:scale(1.08)}70%{transform:scale(.98)}to{transform:scale(1)}}.row-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}.ant-btn.button.link-button{min-height:28px;height:28px;border:1px solid var(--line-strong);border-radius:999px;padding:0 9px;background:var(--surface-solid)!important;color:var(--ink)!important;font-size:.78rem;line-height:1;box-shadow:none}.ant-btn.button.link-button:not(:disabled):not(.ant-btn-disabled):focus-visible,.ant-btn.button.link-button:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--accent);background:var(--accent-soft)!important;color:var(--accent-strong)!important;transform:none;box-shadow:none}.ant-btn.button.link-button.ant-btn-disabled,.ant-btn.button.link-button:disabled{border-color:var(--line-strong)!important;background:var(--surface-muted)!important;color:var(--muted)!important;opacity:.72}.ant-btn.button.link-button.danger{border-color:var(--danger-strong);background:var(--surface-solid)!important;color:var(--danger-strong)!important}.ant-btn.button.link-button.danger:not(:disabled):not(.ant-btn-disabled):focus-visible,.ant-btn.button.link-button.danger:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--danger-strong);background:var(--danger-soft)!important;color:var(--danger-strong)!important}.ant-btn.button.link-button.danger.ant-btn-disabled,.ant-btn.button.link-button.danger:disabled{border-color:var(--line-strong)!important;background:var(--surface-muted)!important;color:var(--muted)!important}.tag-list{display:flex;gap:8px;flex-wrap:wrap}.tag-list span{border:1px solid var(--accent-line);border-radius:999px;padding:7px 11px;background:var(--accent-soft);color:var(--accent-strong);font-size:.86rem;font-weight:800}.compact-tags span{padding:5px 9px;font-size:.78rem;white-space:nowrap}.row-button{display:grid;grid-gap:4px;gap:4px;width:-moz-fit-content;width:fit-content;max-width:100%;border:0;border-radius:10px;padding:8px 10px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.row-button span{color:var(--muted);font-size:.82rem}.row-button.active,.row-button:hover{background:var(--accent-soft);color:var(--accent-strong)}.student-name-button{min-width:96px;padding-right:18px}.student-name-text,.student-number-cell{display:inline-block;color:var(--ink);text-align:center}.student-number-cell{min-width:54px;font-weight:900}.student-name-text span{color:var(--muted);font-size:.82rem}.dictionary-layout{display:grid;grid-template-columns:minmax(420px,.74fr) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.dictionary-category-panel,.dictionary-items-panel{min-width:0}.dictionary-list{display:grid;grid-gap:9px;gap:9px}.dictionary-list-item{display:grid;grid-gap:5px;gap:5px;width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface-muted);color:var(--ink);cursor:pointer;text-align:left;transition:border-color .14s ease,background .14s ease,color .14s ease}.dictionary-list-item span,.dictionary-list-item strong{display:block}.dictionary-list-item span{color:var(--muted);font-size:.82rem;font-weight:800}.dictionary-list-item.active,.dictionary-list-item:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--line-strong));background:var(--accent-soft);color:var(--accent-strong)}.dictionary-list-item.active span,.dictionary-list-item:hover span{color:var(--accent-strong)}.student-master-detail{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.student-detail-panel,.student-list-panel{min-width:0}.student-list-panel{position:-webkit-sticky;position:sticky;top:12px;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);box-sizing:border-box;padding:6px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.student-list-panel .app-ant-table{min-width:0}.student-detail-panel{position:-webkit-sticky;position:sticky;top:20px;display:grid;grid-gap:18px;gap:18px}.lesson-plans-shell .student-list-panel{display:flex;flex-direction:column;gap:var(--space-sm);min-height:0}.lesson-plan-guide{margin:0 var(--space-sm) var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.lesson-plan-guide-collapsed{margin:0 var(--space-sm) var(--space-xs);padding:0;border:0;background:transparent}.lesson-plan-guide-reopen{border:0;background:transparent;color:var(--accent);font-size:13px;cursor:pointer;padding:4px 0}.lesson-plan-guide-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-bottom:10px}.lesson-plan-guide-header h4{margin:0 0 4px;font-size:15px;font-weight:650;color:var(--ink)}.lesson-plan-guide-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.lesson-plan-guide-steps li{display:flex;gap:10px;align-items:flex-start}.lesson-plan-guide-step-index{flex:0 0 22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:650;color:var(--accent);background:var(--accent-soft);margin-top:1px}.lesson-plan-guide-steps strong{display:block;font-size:13px;color:var(--ink);margin-bottom:2px}.lesson-plan-guide-steps p{margin:0;font-size:12px;line-height:1.5;color:var(--ink-soft)}.lesson-plan-guide-tips{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.lesson-plan-guide-tips p{margin:0;font-size:12px;line-height:1.55;color:var(--ink-soft)}.lesson-plan-guide-tips strong{color:var(--ink);font-weight:600}.lesson-plan-guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.lesson-plans-empty-workspace{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-sm)}.lesson-plans-empty-workspace .lesson-plan-guide{margin:0}.lesson-plans-detail>.lesson-plan-guide{margin:0 var(--space-sm) var(--space-sm)}.lesson-plans-shell .student-detail-panel{min-height:0}.lesson-plan-create-modal .ant-modal-header{margin-bottom:20px}.lesson-plan-create-modal .ant-modal-body{padding-bottom:8px}.lesson-plan-create-form{gap:18px}.lesson-plan-create-form label{gap:10px}.lesson-plan-create-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.lesson-plan-create-form .form-actions{margin-top:8px;padding-top:6px}@media (max-width:560px){.lesson-plan-create-row{grid-template-columns:1fr}}.lesson-plan-list-filters{display:grid;grid-gap:10px;gap:10px;margin-bottom:12px}.lesson-plan-list-filters .checkbox-field{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem}.lesson-plan-export-panel{margin-top:var(--space-md)}.lesson-plan-export-form{margin-bottom:12px}.lesson-plan-export-panel .empty-state.compact{padding:16px}.lesson-plan-export-panel .stacked-panel.nested{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.lesson-plan-workspace-body{display:grid;grid-template-columns:minmax(280px,42%) minmax(0,1fr);grid-gap:var(--space-md);gap:var(--space-md);min-height:0}.lesson-plan-mobile-tabs{display:none}.lesson-plan-editor-stack{display:flex;flex-direction:column;gap:var(--space-md);min-height:0}.lesson-section-citations{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--line)}.lesson-section-citations h5{margin:0 0 8px;font-size:13px;font-weight:600}.lesson-section-citations ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lesson-section-citations li{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.lesson-section-citations .lesson-citation-quote{color:var(--text-secondary);font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-reflection-panel .lesson-reflection-form{display:flex;flex-direction:column;gap:var(--space-sm)}.lesson-reflection-list{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--line)}.lesson-reflection-list h5{margin:0 0 8px;font-size:13px;font-weight:600}.lesson-reflection-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.lesson-reflection-list li{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff)}.lesson-reflection-list li p{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--text)}.lesson-reflection-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.lesson-source-preview{display:flex;flex-direction:column;gap:var(--space-sm);min-height:0}.lesson-source-preview-header{display:flex;justify-content:space-between;gap:var(--space-sm);align-items:flex-start}.lesson-source-preview-paged{display:flex;flex-direction:column;gap:var(--space-sm)}.lesson-source-outline{padding:var(--space-sm)}.lesson-source-outline-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:8px}.lesson-source-outline-header h5{margin:0;font-size:14px;font-weight:650;color:var(--ink)}.lesson-source-outline-actions{display:flex;gap:6px}.lesson-source-outline-list{list-style:none;margin:0;padding:0;max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:2px}.lesson-source-outline-item{display:flex;align-items:center;gap:6px;border-radius:var(--radius-chip);padding:2px 4px}.lesson-source-outline-item.level-1{font-weight:650}.lesson-source-outline-item.level-2{padding-left:14px}.lesson-source-outline-item.active{background:var(--accent-soft)}.lesson-source-outline-title{flex:1 1;min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:8px;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--ink);font:inherit;padding:4px 2px}.lesson-source-outline-title:hover{color:var(--accent)}.lesson-source-preview-paged .lesson-source-page-toolbar{margin-bottom:0}.lesson-source-preview-paged .text-link{border:0;background:transparent;color:var(--accent);cursor:pointer;padding:0;font:inherit}.lesson-source-pdf-frame{padding:var(--space-sm)}.lesson-source-pdf-stage{width:100%;height:min(62vh,720px);min-height:360px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--surface-muted)}.lesson-source-pdf-stage.is-loading .lesson-source-pdf-page{opacity:.72}.lesson-source-pdf-page{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.lesson-source-pdf-embed{width:100%;min-height:280px;height:42vh;border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--surface-muted)}.lesson-source-text-panel{padding:var(--space-sm);min-height:0}.lesson-source-page-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;justify-content:center;margin-bottom:var(--space-sm);padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--surface)}.lesson-source-page-meter{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink)}.lesson-source-page-input{width:72px!important}.lesson-source-page-input .ant-input-number-input{text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-source-page-hint{color:var(--ink-soft)}.lesson-source-page-toolbar label{display:flex;gap:var(--space-xs);align-items:center;font-size:13px}.lesson-source-page-jump{display:flex;flex-wrap:wrap;gap:4px}.lesson-source-page-jump button{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:2px 8px;font-size:12px}.lesson-source-page-jump button.active{border-color:var(--accent);color:var(--accent)}.lesson-source-page-text{min-height:0}.lesson-source-page-text h5{margin:0 0 10px;font-size:15px;font-weight:700;color:var(--ink)}.lesson-source-page-body{max-height:42vh;overflow:auto;padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted)}.lesson-source-paragraph{margin:0 0 .9em;white-space:pre-line;word-break:break-word;font-size:14px;line-height:1.75;color:var(--ink)}.lesson-source-paragraph:last-child{margin-bottom:0}.lesson-source-page-text pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:13px;line-height:1.6;max-height:36vh;overflow:auto;padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted)}.lesson-source-highlight{background:color-mix(in srgb,var(--accent) 18%,transparent);padding:0 2px}.lesson-source-fallback,.lesson-source-parse-progress{padding:var(--space-md)}.lesson-source-attach-modal{display:flex;flex-direction:column;gap:var(--space-md)}.lesson-source-attach-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.upload-inline-button{position:relative;display:inline-flex}.upload-inline-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-inline-button span{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:4px 15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.lesson-source-existing-list{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-sm)}.lesson-source-existing-list label{display:grid;grid-template-columns:auto 1fr auto;grid-gap:var(--space-sm);gap:var(--space-sm);align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm)}.lesson-source-existing-list label.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.panel-toolbar-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.lesson-metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-sm);gap:var(--space-sm)}.lesson-section-editors .ant-collapse{background:transparent}.lesson-section-collapse-label{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.lesson-badge{font-size:11px;padding:1px 6px;border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--muted)}.lesson-badge.accent{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent)}.lesson-badge.muted{opacity:.8}.lesson-section-form,.lesson-section-panel{display:flex;flex-direction:column;gap:var(--space-sm)}.lesson-field-block{display:flex;flex-direction:column;gap:var(--space-xs)}.lesson-field-block-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.lesson-card-item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted)}.lesson-inline-row{display:flex;gap:var(--space-xs);align-items:center}.lesson-inline-row .ant-input{flex:1 1}.lesson-section-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.lesson-section-empty{padding:var(--space-sm);border:1px dashed var(--line);border-radius:var(--radius-sm)}.lesson-ai-preview-body,.lesson-ai-preview-modal{display:flex;flex-direction:column;gap:var(--space-sm)}.lesson-ai-preview-editor{max-height:52vh;overflow:auto;padding-right:4px}.lesson-ai-preview-footer{display:flex;justify-content:flex-end;gap:var(--space-sm)}.lesson-inline-alert{margin-bottom:0}.lesson-warning-list{margin:0;padding-left:1.2rem}.lesson-citation-list{display:flex;flex-direction:column;gap:var(--space-xs)}.lesson-citation-item{display:grid;grid-template-columns:auto auto 1fr;grid-gap:var(--space-xs);gap:var(--space-xs);align-items:start;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm)}.lesson-citation-quote{color:var(--muted);font-size:13px}.lesson-muted-copy{color:var(--muted);margin:0}@media (max-width:960px){.lesson-metadata-grid{grid-template-columns:1fr}}.student-profile{display:grid;grid-template-columns:52px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:center}.student-profile-avatar.ant-avatar{display:inline-flex;align-items:center;justify-content:center;line-height:1}.student-profile-avatar .ant-avatar-string{position:static;line-height:1;transform:none!important}.student-detail-grid{grid-column:1/-1;display:grid;grid-gap:12px;gap:12px}.student-detail-grid .module{min-height:auto}.detail-actions,.form-actions{display:flex;gap:10px;flex-wrap:wrap}.detail-actions{grid-column:1/-1}.student-workbench-card{grid-column:1/-1;padding:14px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface-solid) 88%,var(--accent-soft))}.student-workbench-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.student-workbench-card-title strong{color:var(--ink)}.student-workbench-card-title span,.student-workbench-list span,.student-workbench-meta{color:var(--muted);font-size:12px}.student-workbench-comment,.student-workbench-empty,.student-workbench-list p{margin:0;color:var(--ink);font-size:13px;line-height:1.7}.student-workbench-comment{white-space:pre-wrap;transition:border-color .25s ease,background .25s ease}.student-workbench-comment.finalized{color:var(--ink);border-left:3px solid var(--success-text);padding-left:10px;background:var(--success-soft);border-radius:0 4px 4px 0;animation:statusPulse .4s ease-out}.student-workbench-empty{color:var(--muted)}.student-workbench-list{display:grid;grid-gap:8px;gap:8px}.student-workbench-list p{display:grid;grid-gap:2px;gap:2px}.student-workbench-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.student-score-list{display:grid;grid-gap:8px;gap:8px}.student-score-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding:10px;border-radius:12px;background:hsla(0,0%,100%,.56)}.student-score-row span,.student-score-row strong{display:block}.student-score-row strong{color:var(--ink);font-size:13px}.student-score-row span{margin-top:3px;color:var(--muted);font-size:12px}.student-score-row>div:last-child{text-align:right}.student-tags-panel{border-top:1px solid var(--line);padding-top:18px}.student-tags-panel h3{margin-top:0}.full-span{grid-column:1/-1}.checkbox-field{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:800}.form .checkbox-field input,.settings-form .checkbox-field input{flex:0 0 auto;width:16px;height:16px;padding:0}.student-profile span,.student-profile strong{display:block}.student-profile span{margin-top:5px;color:var(--muted)}.student-profile .ant-btn span{color:inherit!important}.app-ant-table{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card)}.app-ant-table .ant-table{background:var(--surface-solid);color:var(--ink)}.app-ant-table .ant-table-container,.app-ant-table .ant-table-content,.app-ant-table .ant-table-tbody>tr>td,.app-ant-table .ant-table-thead>tr>th{border-color:var(--line)!important}.app-ant-table .ant-table-thead>tr>th{background:var(--surface-muted);color:var(--muted);font-size:.78rem;font-weight:900;letter-spacing:0}.app-ant-table .ant-table-tbody>tr>td{background:var(--surface-solid);color:var(--ink);font-size:.9rem}.app-ant-table .ant-table-tbody>tr.selectable-table-row:hover>td,.app-ant-table .ant-table-tbody>tr.selected-row>td,.app-ant-table .ant-table-tbody>tr:hover>td,.app-ant-table .app-ant-table-row-drop-target>td{background:var(--accent-soft)!important}.app-ant-table .selectable-table-row{cursor:pointer}.app-ant-table .ant-empty-description{color:var(--muted)}.date-field .app-ant-date-picker,.form .ant-input-number,.select-field .app-ant-select,.settings-form .ant-input-number{width:100%}.select-field .app-ant-select .ant-select-selector{min-height:42px;border-color:var(--line-strong)!important;border-radius:12px;background:var(--surface-solid)!important;color:var(--ink)}.select-field .app-ant-select .ant-select-arrow,.select-field .app-ant-select .ant-select-selection-item,.select-field .app-ant-select .ant-select-selection-placeholder{color:var(--muted)}.tag-picker{display:flex;flex-wrap:wrap;gap:9px}.tag-picker button{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:var(--surface-solid);color:var(--muted);cursor:pointer;font-weight:800}.tag-picker button.active{border-color:var(--success-line);background:var(--success-soft);color:var(--success-text)}.button,.icon-button{min-height:34px;border-radius:999px;cursor:pointer;font-weight:900;transition:transform .18s var(--ease-apple),box-shadow .18s var(--ease-apple),background .18s var(--ease-apple),opacity .18s var(--ease-apple)}.ant-btn.button,.button{border:1px solid var(--accent);padding:8px 16px;background:var(--accent);color:var(--button-text)!important;box-shadow:0 10px 24px var(--accent-shadow)}.ant-btn-primary.compact,.button.compact{min-height:34px;padding:8px 12px;border-radius:999px;font-size:.84rem}.ant-btn.button.secondary,.button.secondary{border:1px solid var(--line-strong)!important;background:var(--surface-solid)!important;color:var(--ink)!important;box-shadow:none!important}.ant-btn.button:not(:disabled):not(.ant-btn-disabled):focus-visible,.ant-btn.button:not(:disabled):not(.ant-btn-disabled):hover{color:var(--button-text)!important;border-color:var(--accent-raised);background:var(--accent-raised)}.ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):focus-visible,.ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):hover{color:var(--accent)!important;border-color:var(--accent-line)!important;background:var(--accent-soft)!important}:root[data-theme=dark] .ant-btn.button.secondary,:root[data-theme=dark] .button.secondary{border-color:var(--line-strong)!important;background:transparent!important;color:var(--ink)!important}:root[data-theme=dark] .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):focus-visible,:root[data-theme=dark] .ant-btn.button.secondary:not(:disabled):not(.ant-btn-disabled):hover{color:var(--button-text)!important;border-color:var(--accent-line)!important;background:var(--accent-soft)!important}.button.danger{border:1px solid var(--danger-strong);background:var(--surface-solid);color:var(--danger-strong)!important;box-shadow:none}.ant-btn.button.danger:not(:disabled):not(.ant-btn-disabled):focus-visible,.ant-btn.button.danger:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--danger-strong);background:color-mix(in srgb,var(--danger-soft) 78%,var(--surface-solid));color:var(--danger-strong)!important}.ant-btn.button.danger:active:not(:disabled):not(.ant-btn-disabled){border-color:var(--danger-strong);background:var(--danger);color:#fff!important}.ant-btn.button.danger.ant-btn-disabled,.ant-btn.button.danger:disabled{border-color:var(--danger-soft);background:var(--danger-soft);color:var(--danger-text)!important;opacity:1}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.62;box-shadow:none}.message{width:-moz-fit-content;width:fit-content;max-width:100%;margin:8px 0 0;border:1px solid var(--accent-line);border-radius:12px;padding:9px 12px;background:var(--accent-panel);color:var(--muted);line-height:1.6}.error{border-color:rgba(245,54,92,.24);background:rgba(245,54,92,.09);color:var(--danger)}.endpoint-list{display:grid;grid-gap:10px;gap:10px}.endpoint{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--surface-solid)}.endpoint code{overflow:hidden;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.method{display:inline-flex;justify-content:center;border-radius:999px;padding:5px 7px;background:var(--accent-soft);color:var(--accent-strong);font-weight:900;font-size:.76rem}.endpoint-note{color:var(--muted);font-size:.86rem;white-space:nowrap}.icon-button{border:1px solid var(--accent-line);padding:7px 11px;background:var(--accent-panel);color:var(--accent-strong)}.icon-button.danger{border-color:var(--danger-soft);background:var(--danger-soft);color:var(--danger-text)!important}.ant-btn.icon-button.danger:not(:disabled):not(.ant-btn-disabled):focus-visible,.ant-btn.icon-button.danger:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--danger-strong);background:var(--danger);color:#fff!important}.ant-btn.icon-button.danger.ant-btn-disabled,.ant-btn.icon-button.danger:disabled{border-color:var(--line-strong);background:var(--surface-muted);color:var(--muted)!important;opacity:1}.ant-popover .ant-btn-dangerous.ant-btn-primary{border-color:var(--danger-strong);background:var(--danger);color:#fff!important}.ant-popover .ant-btn-dangerous.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):focus-visible,.ant-popover .ant-btn-dangerous.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):hover{border-color:var(--danger-strong);background:var(--danger-strong);color:#fff!important}.ant-popover .ant-btn-dangerous.ant-btn-primary.ant-btn-disabled,.ant-popover .ant-btn-dangerous.ant-btn-primary:disabled{border-color:var(--danger-soft);background:var(--danger-soft);color:var(--danger-text)!important;opacity:1}.icon-button.icon-only{width:38px;min-width:38px;padding:0;display:inline-grid;place-items:center}.icon-button.icon-only svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.table-actions{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.preview-box{min-height:180px;max-height:420px;margin:14px 0 0;overflow:auto;border:1px solid var(--line-strong);border-radius:14px;padding:15px;background:var(--panel-strong);color:var(--surface-solid);white-space:pre-wrap;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.06)}.ai-interaction{display:grid;grid-gap:16px;gap:16px;margin-top:16px;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--radius-card);padding:18px;background:linear-gradient(145deg,var(--surface-solid),color-mix(in srgb,var(--accent-soft) 26%,var(--surface-solid)))}.ai-actions,.ai-interaction-header,.ai-section-heading{display:flex;align-items:center;gap:12px}.ai-interaction-header>div,.ai-section-heading>div{min-width:0;flex:1 1}.ai-interaction-header h3{margin:0;color:var(--panel-strong);font-size:1rem}.ai-empty-state span,.ai-interaction-header p,.ai-loading-state span,.ai-section-heading span,.ai-step-copy span{display:block;margin:3px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}.ai-mark{width:38px;height:38px;display:grid;flex:0 0 auto;place-items:center;border-radius:11px;background:var(--accent);color:var(--accent-contrast);box-shadow:0 8px 20px var(--accent-shadow)}.ai-mark svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linejoin:round;stroke-width:1.7}.ai-context-badge,.ai-lab-label{border:1px solid var(--accent-line);border-radius:var(--radius-chip);padding:5px 8px;background:var(--accent-panel);color:var(--accent-strong);font-size:.76rem;font-weight:700;white-space:nowrap}.ai-empty-state,.ai-loading-state{min-height:112px;display:flex;align-items:center;justify-content:center;gap:14px;border:1px dashed var(--line-strong);border-radius:14px;padding:18px;background:var(--surface-muted);text-align:left}.ai-empty-state{align-items:flex-start;flex-direction:column;gap:2px}.ai-answer{border-left:3px solid var(--accent);padding:2px 4px 2px 14px;color:var(--ink);font-size:.94rem;line-height:1.75;white-space:pre-wrap}.ai-answer>:first-child{margin-top:0}.ai-answer>:last-child{margin-bottom:0}.ai-plan,.ai-sources,.ai-task-progress{display:grid;grid-gap:12px;gap:12px;border-top:1px solid var(--line);padding-top:15px}.ai-plan-steps{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.ai-plan-steps li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-solid)}.ai-step-index{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--surface-soft);color:var(--ink-soft);font-size:.78rem;font-weight:800}.ai-step-copy{min-width:0}.ai-step-copy strong{color:var(--panel-strong);font-size:.88rem}.ai-risk{border-radius:var(--radius-chip);padding:4px 7px;font-size:.72rem;font-weight:800;white-space:nowrap}.ai-risk-low{background:var(--success-soft);color:var(--success-text)}.ai-risk-medium{background:var(--warning-soft);color:var(--warning-strong)}.ai-risk-high{background:var(--danger-soft);color:var(--danger-text)}.ai-sources>strong{color:var(--panel-strong);font-size:.84rem}.ai-sources>div{display:flex;flex-wrap:wrap;gap:7px}.ai-sources button,.ai-sources span{border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 8px;background:var(--surface-solid);color:var(--ink-soft);font:inherit;font-size:.76rem}.ai-sources button{cursor:pointer}.ai-sources button:focus-visible,.ai-sources button:hover{border-color:var(--accent);color:var(--accent-strong);outline:none}.ai-actions{justify-content:flex-end;border-top:1px solid var(--line);padding-top:15px}@media (prefers-reduced-motion:no-preference){.ai-interaction{animation:ai-surface-enter .22s var(--ease-apple)}}@keyframes ai-surface-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width:560px){.ai-interaction{border-radius:8px;padding:14px}.ai-interaction-header{align-items:flex-start;flex-wrap:wrap}.ai-context-badge{margin-left:50px;margin-top:-8px}.ai-plan-steps li{grid-template-columns:26px minmax(0,1fr)}.ai-risk{grid-column:2;justify-self:start}.ai-actions .ant-btn{flex:1 1}}.global-ai-drawer .ant-drawer-header{border-bottom-color:var(--line);padding:18px 20px}.global-ai-drawer .ant-drawer-body{padding:0;background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent-soft) 55%,transparent),transparent 36%),var(--surface-solid)}.global-ai-composer>div,.global-ai-intro,.global-ai-title{display:flex;align-items:center}.global-ai-title{gap:11px}.global-ai-title>div{display:grid;grid-gap:2px;gap:2px}.global-ai-title strong{color:var(--panel-strong);font-size:1rem}.global-ai-composer>div>span,.global-ai-intro,.global-ai-title span{color:var(--muted);font-size:.78rem;font-weight:500}.global-ai-orb{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:var(--accent);color:var(--accent-contrast);box-shadow:0 7px 18px var(--accent-shadow)}.global-ai-orb svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linejoin:round;stroke-width:1.7}.global-ai-body{min-height:100%;display:flex;flex-direction:column;gap:16px;padding:20px}.global-ai-intro{justify-content:space-between;gap:12px}.global-ai-intro button{flex:0 0 auto;border:0;background:transparent;color:var(--accent-strong);cursor:pointer;font:inherit;font-size:.8rem;font-weight:700}.global-ai-prompts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.global-ai-prompts button{position:relative;min-height:82px;display:grid;align-content:center;grid-gap:4px;gap:4px;border:1px solid var(--line-strong);border-radius:14px;padding:13px 36px 13px 14px;background:color-mix(in srgb,var(--surface-solid) 92%,var(--accent-soft));color:var(--panel-strong);cursor:pointer;text-align:left;transition:border-color .16s var(--ease-apple),transform .16s var(--ease-apple),box-shadow .16s var(--ease-apple)}.global-ai-prompts button:hover:not(:disabled){border-color:var(--accent);box-shadow:0 8px 24px var(--shadow-soft);transform:translateY(-1px)}.global-ai-prompts button:disabled{cursor:wait;opacity:.6}.global-ai-prompts strong{font-size:.9rem}.global-ai-prompts span{color:var(--muted);font-size:.76rem}.global-ai-prompts svg{position:absolute;top:50%;right:13px;width:16px;height:16px;fill:none;stroke:var(--accent-strong);stroke-linecap:round;stroke-linejoin:round;stroke-width:2;transform:translateY(-50%)}.global-ai-question{margin:2px 0 -2px;border-radius:13px 13px 4px 13px;padding:10px 12px;background:var(--accent);color:var(--accent-contrast);font-size:.88rem;line-height:1.55}.global-ai-question span{display:block;margin-bottom:3px;opacity:.75;font-size:.7rem;font-weight:700}.global-ai-result{margin-top:0;background:color-mix(in srgb,var(--surface-solid) 95%,var(--accent-soft))}.global-ai-composer{position:-webkit-sticky;position:sticky;bottom:0;z-index:2;display:grid;grid-gap:9px;gap:9px;margin-top:auto;border:1px solid var(--line-strong);border-radius:15px;padding:10px;background:color-mix(in srgb,var(--surface-solid) 94%,transparent);box-shadow:0 12px 35px var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.global-ai-composer textarea{border:0!important;background:transparent!important;box-shadow:none!important;resize:none}.global-ai-composer>div{justify-content:space-between;gap:12px;padding-left:4px}@media (max-width:560px){.ai-assistant-trigger span{display:none}.ai-assistant-trigger{min-width:32px;padding-inline:0;border-radius:50%}.global-ai-drawer{width:100%!important}.global-ai-body{padding:14px}.global-ai-prompts{grid-template-columns:1fr}.global-ai-prompts button{min-height:68px}.global-ai-composer>div>span{display:none}.global-ai-composer>div{justify-content:flex-end}}.narrow-panel{max-width:620px}.resource-admin-page,.resource-page{display:grid;grid-gap:18px;gap:18px}.resource-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:6px 2px 20px}.resource-admin-page .page-header h2,.resource-header h2{margin:0;color:var(--ink)}.resource-admin-page .page-header p,.resource-header p:last-child{margin:7px 0 0;color:var(--muted)}.resource-kicker{margin:0 0 6px;color:var(--accent-strong);font-size:.78rem;font-weight:800}.resource-header>strong{flex:0 0 auto;color:var(--muted);font-size:.86rem}.resource-header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.resource-admin-toolbar,.resource-toolbar{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(120px,.7fr)) auto;grid-gap:10px;gap:10px;align-items:center}.resource-admin-toolbar{grid-template-columns:minmax(240px,420px) 190px}.resource-category-manager{display:grid;grid-gap:14px;gap:14px}.resource-category-manager-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.resource-category-manager-header p{margin:0;color:var(--muted)}.resource-favorite-filter{display:inline-flex;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.resource-list{min-height:180px;display:grid;align-content:start;grid-gap:8px;gap:8px;transition:opacity .16s ease}.resource-list.is-loading{opacity:.55}.resource-row{display:grid;grid-template-columns:42px minmax(240px,1fr) minmax(160px,.45fr) auto;grid-gap:12px;gap:12px;align-items:center;min-height:82px;border:1px solid var(--line);border-radius:7px;padding:12px 14px;background:var(--surface-solid);box-shadow:0 3px 10px rgba(50,50,93,.035)}.resource-row:hover{border-color:var(--accent-line)}.resource-brand{width:42px;height:42px;border:0;border-radius:7px;background:var(--accent-soft);color:var(--accent-strong);font-size:1.1rem;font-weight:800;cursor:pointer;overflow:hidden}.resource-brand img{display:block;width:100%;height:100%;object-fit:contain;padding:8px}.resource-main{min-width:0;display:grid;grid-gap:4px;gap:4px;border:0;padding:0;background:none;color:var(--ink);text-align:left;cursor:pointer}.resource-main>span:nth-child(2){overflow:hidden;color:var(--muted);font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.resource-main small{color:var(--muted)}.resource-title-line{display:flex;align-items:center;gap:6px;min-width:0}.resource-title-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-tags{display:flex;flex-wrap:wrap;gap:3px}.resource-actions{display:flex;gap:7px}.resource-detail{display:grid;grid-gap:18px;gap:18px;color:var(--ink)}.resource-detail>p{color:var(--muted);line-height:1.7}.resource-detail dl{display:grid;grid-template-columns:82px 1fr;grid-gap:10px;gap:10px;margin:0}.resource-detail dt{color:var(--muted)}.resource-detail dd{margin:0;overflow-wrap:anywhere}.table-primary{display:grid;grid-gap:3px;gap:3px}.table-primary small{color:var(--muted)}.resource-form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.resource-switches{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:0 12px;gap:0 12px}.resource-favicon-preview{display:flex;align-items:center;gap:12px;min-height:66px;margin:-4px 0 18px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid)}.resource-favicon-preview-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;overflow:hidden;border-radius:10px;background:var(--accent-soft);color:var(--accent-strong);font-size:.68rem;font-weight:800;text-transform:uppercase}.resource-favicon-preview-icon img{display:block;width:100%;height:100%;padding:7px;object-fit:contain}.resource-favicon-preview strong{color:var(--ink);font-size:.88rem}.resource-favicon-preview p{margin:3px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}@media (max-width:900px){.resource-toolbar{grid-template-columns:1fr 1fr}.resource-toolbar>:first-child{grid-column:1/-1}.resource-row{grid-template-columns:42px minmax(0,1fr) auto}.resource-tags{display:none}}@media (max-width:560px){.resource-header{align-items:flex-start}.resource-header>strong{padding-top:6px}.resource-admin-toolbar,.resource-toolbar{grid-template-columns:1fr}.resource-toolbar>:first-child{grid-column:auto}.resource-row{grid-template-columns:36px minmax(0,1fr);padding:11px}.resource-brand{width:36px;height:36px}.resource-actions{grid-column:2;justify-content:flex-end}.resource-main>span:nth-child(2){white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.resource-form-row,.resource-switches{grid-template-columns:1fr}.resource-admin-page .page-header{align-items:flex-start}.resource-header-actions{width:100%}.resource-header-actions .ant-btn{flex:1 1}.resource-category-manager-header{align-items:flex-start}}.toolbox-page{display:grid;grid-gap:20px;gap:20px}.toolbox-heading{min-height:112px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:8px 2px 22px}.toolbox-kicker{margin:0 0 7px;color:var(--accent-strong);font-size:.78rem;font-weight:800}.toolbox-heading h2{margin:0;color:var(--ink);font-size:1.65rem}.toolbox-heading p:last-child{margin:8px 0 0;color:var(--muted);line-height:1.6}.toolbox-count{flex:0 0 auto;border:1px solid var(--line-strong);border-radius:6px;padding:7px 10px;background:var(--surface-solid);color:var(--muted);font-size:.82rem;font-weight:700}.toolbox-grid{display:grid;grid-template-columns:repeat(auto-fill,108px);grid-gap:12px;gap:12px}.toolbox-category{display:grid;grid-gap:11px;gap:11px}.toolbox-category h3{margin:0;color:var(--muted);font-size:.86rem}.toolbox-item{width:108px;height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px 8px;background:var(--surface-solid);color:var(--ink);text-align:center;box-shadow:0 4px 12px rgba(50,50,93,.04);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}a.toolbox-item:focus-visible,a.toolbox-item:hover{border-color:var(--accent-line);color:var(--ink);box-shadow:0 8px 18px var(--accent-shadow);outline:none;transform:translateY(-2px)}.toolbox-item.unavailable{cursor:default;opacity:.68}.toolbox-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:var(--accent-soft);color:var(--accent-strong)}.toolbox-icon.green{background:var(--success-soft);color:var(--success-text)}.toolbox-icon.amber{background:var(--warning-soft);color:var(--warning-strong)}.toolbox-icon.cyan{background:var(--info-soft);color:var(--info)}.toolbox-icon.red{background:var(--danger-soft);color:var(--danger-text)}.toolbox-icon.slate{background:var(--panel-muted);color:var(--muted)}.toolbox-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.toolbox-item strong{color:var(--ink);font-size:.82rem;line-height:1.25}.utility-ocr-layout,.utility-tool-layout{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(360px,1.18fr);grid-gap:20px;gap:20px;align-items:stretch}.text-diff-tool>.panel,.utility-document-tool,.utility-ocr-layout>.panel,.utility-tool-layout>.panel,.word-counter-tool{border-color:var(--line);border-radius:var(--radius-card);box-shadow:0 12px 30px rgba(29,29,31,.055)}.utility-tool-controls{align-content:start;background:linear-gradient(145deg,var(--surface-solid),var(--surface-muted))}.diff-input-panel .panel-heading h3,.diff-result-panel .panel-heading h3,.utility-ocr-result .panel-heading h3,.utility-tool-controls .panel-heading h3,.word-counter-tool .panel-heading h3{color:var(--panel-strong);font-size:1.32rem;letter-spacing:-.025em}.utility-ocr-result .panel-heading .message,.utility-tool-controls .panel-heading .message{margin-top:7px;border:0;padding:0;background:transparent}.utility-file-field input[type=file]{border:1px dashed rgba(0,113,227,.38);border-radius:var(--radius-panel);padding:10px;background:color-mix(in srgb,var(--surface-solid) 86%,var(--accent-soft));color:var(--ink);cursor:pointer}.utility-file-field input[type=file]::-webkit-file-upload-button{margin-right:10px;border:0;border-radius:var(--radius-chip);padding:7px 10px;background:var(--accent);color:#fff;cursor:pointer;font-weight:800}.utility-file-field input[type=file]::file-selector-button{margin-right:10px;border:0;border-radius:var(--radius-chip);padding:7px 10px;background:var(--accent);color:#fff;cursor:pointer;font-weight:800}.utility-image-preview,.utility-tool-preview{min-height:430px;display:grid;place-items:center;align-content:center;grid-gap:16px;gap:16px;overflow:hidden;border:1px solid rgba(0,113,227,.09);border-radius:var(--radius-card);background:radial-gradient(circle at 78% 16%,rgba(0,113,227,.12),transparent 34%),linear-gradient(145deg,var(--surface-solid),color-mix(in srgb,var(--surface-muted) 82%,var(--accent-soft)));box-shadow:0 12px 30px rgba(29,29,31,.055)}.utility-tool-preview img{width:min(100%,360px);aspect-ratio:1;object-fit:contain;border:12px solid #fff;border-radius:var(--radius-panel);box-shadow:0 16px 32px rgba(29,29,31,.12)}.utility-image-preview img{width:100%;max-height:480px;object-fit:contain}.utility-image-preview>span{color:var(--muted);font-size:.82rem;font-weight:800}.utility-tool-empty{min-height:260px;display:grid;place-items:center;align-content:center;grid-gap:10px;gap:10px;color:var(--muted);text-align:center}.utility-tool-empty.compact{min-height:150px;border:1px dashed var(--line-strong);border-radius:var(--radius-panel);padding:18px;background:var(--panel-muted)}.utility-tool-empty svg{width:50px;height:50px;margin-bottom:4px;fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.utility-tool-empty strong{color:var(--ink)}.utility-tool-empty span{font-size:.88rem}.utility-file-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin:2px 0 0}.utility-file-stats div{min-width:0;border:1px solid var(--line);border-radius:var(--radius-panel);padding:9px;background:var(--panel-muted)}.utility-file-stats dt{color:var(--muted);font-size:.74rem;font-weight:700}.utility-file-stats dd{margin:4px 0 0;overflow:hidden;color:var(--ink);font-size:.84rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.utility-ocr-layout{grid-template-columns:minmax(280px,.74fr) minmax(420px,1.26fr)}.utility-ocr-preview{height:230px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--surface-solid) 86%,var(--accent-soft))}.utility-ocr-preview img{width:100%;height:100%;object-fit:contain}.utility-ocr-result textarea{min-height:374px;resize:vertical;line-height:1.7}.utility-progress{height:7px;overflow:hidden;border-radius:999px;background:var(--line)}.utility-progress span{height:100%;display:block;border-radius:inherit;background:var(--accent);transition:width .18s ease}.utility-document-tool{max-width:920px;margin:0 auto;padding:0;overflow:hidden}.utility-segmented{display:inline-flex;align-self:flex-start;gap:3px;margin:18px 0 0 20px;border:1px solid var(--line);border-radius:var(--radius-chip);padding:4px;background:var(--surface-soft)}.utility-segmented button{border:0;border-radius:calc(var(--radius-chip) - 3px);padding:9px 14px;background:transparent;color:var(--muted);cursor:pointer;font-weight:900}.utility-segmented button.active{background:var(--surface-solid);box-shadow:0 1px 3px rgba(0,0,0,.12);color:var(--panel-strong)}.utility-document-body{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(360px,1.28fr);grid-gap:28px;gap:28px;padding:28px;background:linear-gradient(145deg,var(--surface-solid),var(--surface-muted))}.utility-document-copy h3{margin:14px 0 8px;font-size:1.25rem;line-height:1.4}.utility-document-copy p{margin:0;color:var(--muted);line-height:1.7}.utility-local-badge{display:inline-block;border:1px solid var(--success-line);border-radius:var(--radius-chip);padding:4px 7px;background:var(--success-soft);color:var(--success-text);font-size:.75rem;font-weight:900}.utility-file-list{max-height:190px;margin:0;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-panel);padding:4px 12px 4px 36px;background:var(--panel-muted)}.utility-file-list li{padding:8px 2px;color:var(--ink)}.utility-file-list li+li{border-top:1px solid var(--line)}.utility-file-list small,.utility-file-list span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.utility-file-list small{margin-top:3px;color:var(--muted)}.qr-color-fields,.seat-dimensions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.qr-color-fields input[type=color]{min-height:42px;padding:4px}.text-diff-tool,.word-counter-tool{position:relative}.text-diff-tool:before,.word-counter-tool:before{width:100%;height:3px;position:absolute;top:0;left:0;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--accent),#6fc6ff);content:""}.word-counter-tool{padding-top:28px}.word-stat-grid article{transition:transform .16s var(--ease-apple),box-shadow .16s var(--ease-apple)}.word-stat-grid article:hover{box-shadow:0 9px 20px rgba(0,0,0,.07);transform:translateY(-2px)}.diff-result-panel,.pinyin-preview{background:linear-gradient(145deg,var(--surface-solid),color-mix(in srgb,var(--surface-muted) 84%,var(--accent-soft)))}.video-tool-page{display:grid;grid-gap:20px;gap:20px;max-width:1120px;margin:0 auto}.video-tool-panel{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);padding:28px;background:radial-gradient(circle at 90% 0,rgba(0,113,227,.11),transparent 25%),linear-gradient(145deg,var(--surface-solid),var(--surface-muted));box-shadow:0 14px 34px rgba(29,29,31,.055)}.video-tool-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.video-tool-heading h3{margin:4px 0 7px;color:var(--panel-strong);font-size:1.5rem;letter-spacing:-.035em}.video-tool-heading .message{margin:0}.video-tool-heading>span{border:1px solid rgba(0,113,227,.15);border-radius:var(--radius-chip);padding:7px 10px;background:var(--accent-soft);color:var(--accent);font-size:.78rem;font-weight:800}.video-cookie-panel{border-color:var(--accent-line)!important;border-radius:var(--radius-panel)!important;background:color-mix(in srgb,var(--surface-solid) 88%,var(--accent-soft))!important;box-shadow:none!important}.classroom-tool-layout{grid-template-columns:minmax(292px,.72fr) minmax(420px,1.28fr)}.classroom-stage,.timer-stage{min-height:460px;display:grid;place-items:center;align-content:center;grid-gap:24px;gap:24px;overflow:hidden;border:1px solid rgba(0,113,227,.12);border-radius:var(--radius-card);background:radial-gradient(circle at 50% 20%,rgba(0,113,227,.14),transparent 36%),linear-gradient(145deg,var(--surface-solid),color-mix(in srgb,var(--surface-muted) 82%,var(--accent-soft)));box-shadow:0 20px 45px rgba(0,53,110,.09);text-align:center}.classroom-stage .toolbox-kicker,.timer-stage .toolbox-kicker{color:var(--accent);font-weight:800;letter-spacing:.12em}.picker-result,.timer-display{max-width:min(90%,900px);color:var(--panel-strong);font-size:clamp(3.25rem,10vw,8rem);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.065em;line-height:.95;text-wrap:balance}.picker-result.active{color:var(--accent);animation:classroom-result-in .36s var(--ease-apple)}.timer-display.ending{color:#d92d20;animation:timer-ending-pulse 1s ease-in-out infinite}.classroom-stage:-webkit-full-screen,.timer-stage:-webkit-full-screen{width:100%;min-height:100%;border-radius:0}.classroom-stage:fullscreen,.timer-stage:fullscreen{width:100%;min-height:100%;border-radius:0}.picked-history{max-width:680px;color:var(--muted)}.picked-history p{margin:7px 0 0;line-height:1.7}.utility-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}.utility-check input{width:auto}.timer-presets,.utility-stat-row{display:flex;flex-wrap:wrap;gap:8px}.timer-presets button,.utility-stat-row span{border:1px solid var(--line);border-radius:var(--radius-chip);padding:8px 11px;background:var(--surface-muted);color:var(--muted)}.timer-presets button{cursor:pointer;font-weight:800;transition:transform .16s var(--ease-apple),background .16s var(--ease-apple),color .16s var(--ease-apple)}.timer-presets button:hover{background:var(--accent-soft);color:var(--accent);transform:translateY(-1px)}.group-result-grid,.word-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.group-result-grid article,.word-stat-grid article{border:1px solid var(--line);border-radius:var(--radius-panel);padding:14px;background:var(--surface-muted)}.group-result-grid article span,.word-stat-grid article span{color:var(--muted);font-size:.8rem}.group-results{min-height:460px;background:linear-gradient(145deg,var(--surface-solid),var(--surface-muted))}.group-result-grid article{position:relative;overflow:hidden;min-height:130px;box-shadow:0 8px 18px rgba(0,0,0,.035)}.group-result-grid article:before{width:4px;position:absolute;inset:0 auto 0 0;background:var(--accent);content:""}.group-result-grid article strong{color:var(--panel-strong)}.group-result-grid article p{margin:13px 0 0;color:var(--ink);line-height:1.7}@keyframes classroom-result-in{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@keyframes timer-ending-pulse{50%{opacity:.45;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.picker-result.active,.timer-display.ending{animation:none}}.group-result-grid article p{margin:10px 0 0;line-height:1.65}.word-stat-grid article{display:grid;grid-gap:6px;gap:6px}.word-stat-grid article strong{color:var(--ink);font-size:1.35rem}.word-counter-tool>textarea{width:100%;min-height:260px;margin:12px 0;resize:vertical}.diff-output,.pinyin-preview{min-height:260px}.diff-output,.pinyin-inline-output,.pinyin-ruby-output{overflow-wrap:anywhere;color:var(--ink);font-size:1.08rem;line-height:2.25;white-space:pre-wrap}.pinyin-ruby-output ruby{margin-right:.18em}.pinyin-ruby-output rt{color:var(--accent-strong);font-size:.62em}.text-diff-tool{display:grid;grid-gap:16px;gap:16px}.diff-input-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;grid-gap:12px;gap:12px}.diff-input-grid label{display:grid;grid-gap:7px;gap:7px;font-weight:800}.diff-input-grid textarea{width:100%;resize:vertical}.diff-result-panel{min-height:260px}.diff-legend{display:flex;gap:14px;margin-bottom:14px;color:var(--muted);font-size:.8rem}.diff-legend .added,.diff-output .added{background:var(--success-soft);color:var(--success-text)}.diff-legend .removed,.diff-output .removed{background:var(--danger-soft);color:var(--danger-text);text-decoration:line-through}.comment-studio{--comment-accent:#0071e3;--comment-accent-soft:#eaf4ff;--comment-warm:#c97a16;display:grid;grid-gap:20px;gap:20px}.comment-studio-heading{min-height:132px;display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden;border:1px solid rgba(0,0,0,.05);border-radius:var(--radius-panel);padding:28px 32px;background:radial-gradient(circle at 92% 12%,rgba(92,184,255,.28),transparent 25%),linear-gradient(115deg,#fff 5%,#f2f8ff);box-shadow:0 14px 36px rgba(29,29,31,.06)}.comment-studio-heading h3{margin:4px 0 8px;color:#1d1d1f;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.035em}.comment-studio-heading p{max-width:680px;margin:0;color:#6e6e73;line-height:1.65}.comment-studio-kicker{color:var(--comment-accent);font-size:.73rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.comment-studio-stat{flex:0 0 auto;min-width:104px;display:grid;place-items:center;border:1px solid rgba(0,113,227,.12);border-radius:22px;padding:14px 18px;background:hsla(0,0%,100%,.72);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.comment-studio-stat strong{color:#1d1d1f;font-size:2.15rem;letter-spacing:-.06em;line-height:1}.comment-studio-stat span{margin-top:5px;color:#6e6e73;font-size:.72rem}.comment-workspace{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(480px,1.22fr);grid-gap:20px;gap:20px;align-items:stretch}.comment-dimension-panel,.comment-import-panel,.comment-template-panel{position:relative;display:grid;align-content:start;grid-gap:18px;gap:18px;border-radius:var(--radius-card);padding:24px;overflow:visible}.comment-step-heading{display:flex;align-items:center;gap:12px}.comment-result-heading>div>span,.comment-step-heading>span{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:50%;background:var(--comment-accent-soft);color:var(--comment-accent);font-size:.75rem;font-weight:800}.comment-result-heading h4,.comment-step-heading h4{margin:0;color:#1d1d1f;font-size:1rem;letter-spacing:-.01em}.comment-result-heading p,.comment-step-heading p{margin:3px 0 0;color:#86868b;font-size:.75rem}.comment-segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:0;border-radius:11px;padding:3px;background:#f1f2f5}.comment-segmented button{min-height:36px;border:0;border-radius:8px;background:transparent;color:#6e6e73;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.comment-segmented button.active{background:#fff;color:#1d1d1f;box-shadow:0 1px 4px rgba(0,0,0,.12)}.comment-manual-import{display:grid;grid-gap:10px;gap:10px}.comment-manual-import textarea{width:100%;min-height:142px;resize:vertical;line-height:1.7}.comment-field-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.comment-field-footer span{color:var(--muted);font-size:.7rem}.comment-file-drop{min-height:178px;display:grid;place-items:center;align-content:center;grid-gap:7px;gap:7px;border:1px dashed rgba(0,113,227,.45);border-radius:16px;background:linear-gradient(135deg,#f6fbff,var(--comment-accent-soft));color:var(--comment-accent);text-align:center;cursor:pointer}.comment-file-drop:before{content:"XLS";display:grid;place-items:center;width:48px;height:36px;border:2px solid;border-radius:8px;font-size:.72rem;font-weight:900}.comment-file-drop span{color:var(--muted);font-size:.72rem}.comment-student-roster{max-height:118px;display:flex;flex-wrap:wrap;gap:7px;overflow:auto;border-top:1px solid var(--line);padding-top:12px}.comment-student-roster>span{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:6px 9px;background:var(--comment-accent-soft);color:#06c;font-size:.76rem;font-weight:700}.comment-clear-button,.comment-student-roster span button{border:0;padding:0;background:transparent;color:inherit;cursor:pointer}.comment-clear-button{padding:5px 7px;color:var(--danger-text);font-size:.72rem}.comment-stage-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.comment-stage-row>span{color:var(--muted);font-size:.75rem;font-weight:800}.comment-stage-options{display:flex;gap:6px}.comment-stage-options button{min-height:32px;border:1px solid rgba(0,0,0,.08);border-radius:999px;padding:0 12px;background:#fff;color:#6e6e73;font:inherit;font-size:.75rem;font-weight:700;cursor:pointer}.comment-stage-options button.active{border-color:transparent;background:#1d1d1f;color:#fff}.comment-quote-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(201,122,22,.18);border-radius:16px;padding:12px 14px;background:#fff9ef;cursor:pointer}.comment-quote-toggle>span{display:grid;grid-gap:2px;gap:2px}.comment-quote-toggle strong{color:#704517;font-size:.8rem}.comment-quote-toggle small{color:#916f49;font-size:.68rem}.comment-quote-toggle input{width:38px;height:20px;accent-color:var(--comment-warm)}.comment-dimension-tabs{display:flex;flex-wrap:wrap;gap:6px}.comment-dimension-tabs button{min-height:32px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(0,0,0,.07);border-radius:999px;padding:0 11px;background:#fff;color:#6e6e73;font:inherit;font-size:.73rem;font-weight:700;cursor:pointer}.comment-dimension-tabs button.active{border-color:transparent;background:var(--comment-accent-soft);color:#06c;box-shadow:none}.comment-dimension-tabs button span{min-width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:var(--comment-accent);color:#fff;font-size:.62rem}.comment-dimension-menu-button:after{content:"+";font-size:.9rem}.comment-dimension-menu{position:absolute;z-index:5;top:235px;right:24px;width:min(330px,calc(100% - 48px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:15px;background:hsla(0,0%,100%,.9);box-shadow:0 18px 40px rgba(29,29,31,.16);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.comment-dimension-menu>strong{grid-column:1/-1;font-size:.8rem}.comment-dimension-menu label{display:flex;align-items:center;gap:6px;color:var(--ink);font-size:.74rem}.comment-dimension-menu input{width:auto;accent-color:var(--comment-accent)}.comment-student-selector{min-height:126px;display:grid;align-content:start;grid-gap:12px;gap:12px;border:0;border-radius:18px;padding:15px;background:#f5f5f7}.comment-student-selector>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.comment-student-selector>div:first-child strong{font-size:.82rem}.comment-student-selector>div:first-child span{color:var(--muted);font-size:.68rem}.comment-student-buttons{display:flex;flex-wrap:wrap;gap:7px}.comment-student-buttons button{min-height:32px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(0,0,0,.07);border-radius:999px;padding:0 11px;background:#fff;color:#424245;font:inherit;font-size:.75rem;font-weight:700;cursor:pointer}.comment-student-buttons button span{display:none}.comment-student-buttons button.selected{border-color:transparent;background:var(--comment-accent);color:#fff}.comment-student-buttons button.selected span{display:inline}.comment-empty-state{min-height:64px;display:grid;place-items:center;color:var(--muted);font-size:.76rem}.comment-action-bar{display:grid;grid-gap:10px;gap:10px;border:1px solid rgba(0,0,0,.05);border-radius:var(--radius-card);padding:14px;background:hsla(0,0%,100%,.82);box-shadow:0 8px 24px rgba(29,29,31,.04)}.comment-action-bar>div:first-child{display:flex;flex-wrap:wrap;gap:9px}.comment-action-bar .button:first-child{border-radius:999px;padding-inline:18px}.comment-action-bar .button.secondary{border-radius:999px}.comment-progress{height:5px;overflow:hidden;border-radius:3px;background:#dcecfb}.comment-progress span{display:block;height:100%;background:var(--comment-accent);transition:width .18s ease}.comment-template-panel{grid-template-columns:minmax(210px,.36fr) minmax(0,1fr);align-items:center}.comment-template-panel .comment-step-heading{grid-column:1/-1}.comment-signature-field{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:.74rem;font-weight:800}.comment-template-grid{display:grid;grid-template-columns:repeat(6,minmax(92px,1fr));grid-gap:8px;gap:8px}.comment-template-grid button{min-width:0;display:grid;grid-gap:5px;gap:5px;border:1px solid rgba(0,0,0,.07);border-radius:12px;padding:7px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:transform var(--ease-apple),box-shadow var(--ease-apple)}.comment-template-grid button:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(29,29,31,.08)}.comment-template-grid button.active{border-color:var(--template-accent);box-shadow:0 0 0 3px var(--template-soft)}.comment-template-grid button>strong{overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.comment-template-grid button>small{color:var(--muted);font-size:.62rem}.comment-template-preview{aspect-ratio:4/3;display:grid;place-items:center;align-content:center;grid-gap:4px;gap:4px;border:2px solid var(--template-accent);background:var(--template-soft);color:var(--template-accent);overflow:hidden}.comment-template-preview b{max-width:90%;overflow:hidden;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.comment-template-preview i{width:58%;height:2px;background:currentColor;opacity:.55}.comment-result-section{display:grid;grid-gap:12px;gap:12px}.comment-result-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:4px 2px}.comment-result-heading>div{display:flex;align-items:center;gap:10px}.comment-result-heading>strong{color:var(--comment-accent);font-size:.8rem}.comment-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.comment-result-grid article{display:grid;grid-gap:12px;gap:12px;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-card);padding:16px;background:#fff;box-shadow:0 8px 22px rgba(29,29,31,.04)}.comment-result-grid article header{display:grid;grid-template-columns:32px 1fr auto;align-items:center;grid-gap:8px;gap:8px}.comment-result-grid article header>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#d9eeff,#f1f8ff);color:var(--comment-accent);font-weight:800}.comment-result-grid article header>strong{font-size:.86rem}.comment-result-grid article header div{display:flex;gap:4px}.comment-result-grid article header button{width:29px;height:29px;border:0;border-radius:50%;background:#f5f5f7;color:#6e6e73;font:inherit;cursor:pointer}.comment-result-grid textarea{width:100%;min-height:126px;border-color:transparent;border-radius:12px;background:#f5f5f7;line-height:1.75;resize:vertical}.comment-result-grid textarea:focus{border-color:var(--comment-accent);background:var(--panel)}.comment-result-error{min-height:126px;display:grid;place-items:center;border-radius:6px;padding:12px;background:var(--danger-soft);color:var(--danger-text);font-size:.76rem;text-align:center}.comment-status{min-height:20px;margin:0;color:var(--muted);font-size:.74rem}:root[data-theme=dark] .comment-studio{--comment-accent-soft:rgba(15,124,255,.16)}:root[data-theme=dark] .comment-studio-heading{border-color:var(--line);background:radial-gradient(circle at 92% 12%,rgba(15,124,255,.18),transparent 25%),linear-gradient(115deg,var(--surface-solid) 5%,var(--surface-muted) 100%);box-shadow:var(--shadow-soft)}:root[data-theme=dark] .comment-result-heading h4,:root[data-theme=dark] .comment-step-heading h4,:root[data-theme=dark] .comment-studio-heading h3,:root[data-theme=dark] .comment-studio-stat strong{color:var(--ink)}:root[data-theme=dark] .comment-result-heading p,:root[data-theme=dark] .comment-step-heading p,:root[data-theme=dark] .comment-studio-heading p,:root[data-theme=dark] .comment-studio-stat span{color:var(--muted)}:root[data-theme=dark] .comment-action-bar,:root[data-theme=dark] .comment-dimension-menu,:root[data-theme=dark] .comment-result-grid article,:root[data-theme=dark] .comment-studio-stat{border-color:var(--line);background:color-mix(in srgb,var(--surface-solid) 92%,transparent);box-shadow:var(--shadow-soft)}:root[data-theme=dark] .comment-result-grid article header button,:root[data-theme=dark] .comment-result-grid textarea,:root[data-theme=dark] .comment-segmented,:root[data-theme=dark] .comment-student-selector{background:var(--surface-muted)}:root[data-theme=dark] .comment-dimension-tabs button,:root[data-theme=dark] .comment-result-grid textarea:focus,:root[data-theme=dark] .comment-segmented button.active,:root[data-theme=dark] .comment-stage-options button,:root[data-theme=dark] .comment-student-buttons button,:root[data-theme=dark] .comment-template-grid button{border-color:var(--line);background:var(--surface-solid);color:var(--ink)}:root[data-theme=dark] .comment-stage-options button.active,:root[data-theme=dark] .comment-student-buttons button.selected{border-color:transparent;background:var(--accent);color:var(--accent-contrast)}:root[data-theme=dark] .comment-quote-toggle{border-color:color-mix(in srgb,var(--warning) 30%,transparent);background:var(--warning-soft)}:root[data-theme=dark] .comment-quote-toggle strong{color:var(--warning-strong)}:root[data-theme=dark] .comment-quote-toggle small{color:var(--muted)}:root[data-theme=dark] .comment-file-drop{background:color-mix(in srgb,var(--surface-solid) 78%,var(--accent-soft))}:root[data-theme=dark] .comment-progress{background:var(--panel-muted)}@media (prefers-reduced-motion:no-preference){.comment-action-bar,.comment-dimension-panel,.comment-import-panel,.comment-studio-heading{animation:comment-studio-arrive .48s var(--ease-apple) both}.comment-dimension-panel{animation-delay:70ms}.comment-action-bar{animation-delay:.12s}}@keyframes comment-studio-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.seating-tool-layout{display:grid;grid-template-columns:minmax(270px,.7fr) minmax(500px,1.3fr);grid-gap:16px;gap:16px;align-items:start}.certificate-studio{display:grid;grid-template-columns:minmax(310px,370px) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.certificate-controls{display:grid;grid-gap:14px;gap:14px;padding:18px}.certificate-heading{align-items:flex-start;margin-bottom:0}.certificate-heading h3{margin-bottom:3px}.certificate-heading .message{margin:0;font-size:.75rem}.certificate-count{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:var(--panel-muted);color:var(--accent-strong);font-size:.75rem;font-weight:800}.certificate-seal-settings,.certificate-step{min-width:0;margin:0;border:0;border-bottom:1px solid var(--line);padding:0 0 14px}.certificate-step legend{display:flex;align-items:center;gap:7px;margin-bottom:9px;color:var(--ink);font-size:.8rem;font-weight:800}.certificate-step legend span{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--accent-strong);color:#fff;font-size:.68rem}.certificate-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:3px;gap:3px;border:1px solid var(--line);border-radius:7px;padding:3px;background:var(--panel-muted)}.certificate-roster button,.certificate-segment button,.certificate-template-grid button,.certificate-toolbar-actions>button{border:0;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;font:inherit}.certificate-segment button{min-height:32px;font-size:.78rem;font-weight:700}.certificate-segment button.active{background:var(--panel);color:var(--accent-strong);box-shadow:0 1px 4px rgba(23,35,49,.1)}.certificate-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:7px;gap:7px}.certificate-template-grid button{display:grid;grid-template-columns:58px minmax(0,1fr);grid-template-rows:auto auto;grid-column-gap:8px;column-gap:8px;align-items:center;border:1px solid var(--line);padding:8px;background:var(--panel);text-align:left}.certificate-template-grid button:hover{border-color:var(--template-accent)}.certificate-template-grid button.active{border-color:var(--template-color);box-shadow:inset 3px 0 var(--template-color)}.certificate-template-thumb{position:relative;grid-row:1/3;display:block;width:58px;height:41px;overflow:hidden;border:1px solid color-mix(in srgb,var(--template-color),#fff 42%);background:linear-gradient(135deg,#fff 42%,color-mix(in srgb,var(--template-accent),#fff 62%) 43%);box-shadow:0 2px 5px rgba(25,31,38,.12)}.certificate-template-thumb:after,.certificate-template-thumb:before{content:"";position:absolute;inset:3px;border:1px solid var(--template-color)}.certificate-template-thumb:after{inset:6px;border-color:var(--template-accent)}.certificate-template-thumb i{top:8px;width:25px;height:3px;background:var(--template-color)}.certificate-template-thumb b,.certificate-template-thumb i{position:absolute;z-index:1;left:50%;transform:translateX(-50%)}.certificate-template-thumb b{top:16px;width:31px;height:10px;border-block:2px solid color-mix(in srgb,var(--template-color),transparent 35%)}.certificate-template-thumb.theme-sunshine{background:linear-gradient(90deg,#ef6500,#fff200 25% 75%,#ef6500)}.certificate-template-thumb.theme-sunshine:before{inset:0 6px;border-width:0 2px;border-color:#fff}.certificate-template-thumb.theme-redBrocade{background:linear-gradient(#ad1822 0 22%,#fff4d7 22% 78%,#ad1822 78%)}.certificate-template-thumb.theme-blueRibbon{background:linear-gradient(135deg,#164f83 0 25%,#f7fbff 26% 74%,#164f83 75%)}.certificate-template-thumb.theme-greenLaurel{background:radial-gradient(ellipse at center,#fff 0 38%,#d9eadb 39% 56%,#f7fcf7 57%)}.certificate-template-thumb.theme-chalkboard{background:#245448;border-color:#d8b37b;box-shadow:inset 0 0 0 3px #d8b37b}.certificate-template-thumb.theme-chalkboard:after,.certificate-template-thumb.theme-chalkboard:before{border-color:#f0d7a7}.certificate-template-thumb.theme-children{background:radial-gradient(circle at 15% 22%,#e66c59 0 5%,transparent 6%),radial-gradient(circle at 83% 78%,#4f79b7 0 5%,transparent 6%),#fff8d7}.certificate-template-thumb.theme-heart{background:radial-gradient(circle at 15% 20%,#df9a77 0 10%,transparent 11%),radial-gradient(circle at 85% 78%,#a93e54 0 10%,transparent 11%),#fff8f6}.certificate-template-thumb.theme-appointment{background:linear-gradient(135deg,#fbf7ef 70%,#c5934a 71%)}.certificate-template-thumb.theme-graduation{background:linear-gradient(90deg,#315949 0 9%,#f8fbf6 10% 90%,#315949 91%)}.certificate-template-thumb.theme-academic{background:linear-gradient(#174f70 0 18%,#f6fbfd 19% 88%,#b78b3d 89%)}.certificate-template-thumb.theme-honor{background:radial-gradient(circle,#fffdf8 45%,#bd8733 46% 49%,#fffdf8 50%)}.certificate-template-thumb.theme-classic{background:linear-gradient(135deg,#fffaf0 50%,#f5e6be 51%)}.certificate-template-grid button.active .certificate-template-thumb{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--template-color)}.certificate-template-grid strong{overflow:hidden;color:var(--ink);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.certificate-template-grid small{color:var(--muted);font-size:.66rem}.certificate-fields,.certificate-seal-fields{display:grid;grid-gap:10px;gap:10px}.certificate-fields label,.certificate-seal-fields label{display:grid;grid-gap:6px;gap:6px;color:var(--ink);font-size:.77rem;font-weight:800}.certificate-fields input,.certificate-fields textarea,.certificate-seal-fields input:not([type=range]){width:100%}.certificate-fields input[type=date]{color-scheme:inherit}.certificate-fields textarea{resize:vertical;line-height:1.55}.certificate-field-pair{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(80px,.45fr);grid-gap:8px;gap:8px}.certificate-roster{display:flex;flex-wrap:wrap;gap:5px;margin-top:-3px}.certificate-roster button,.certificate-roster span{border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:var(--panel-muted);font-size:.7rem}.certificate-roster button.active{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong)}.certificate-seal-settings{border-bottom:0;padding-bottom:0}.certificate-check{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:.8rem;font-weight:800;cursor:pointer}.certificate-check input{width:auto}.certificate-seal-fields{margin-top:12px;border-left:3px solid var(--accent-strong);padding-left:11px}.certificate-seal-fields label:last-child{grid-template-columns:74px minmax(0,1fr) 52px;align-items:center}.certificate-seal-fields input[type=range]{min-width:0}.certificate-seal-fields label:last-child span{color:var(--muted);font-size:.68rem;font-weight:600;text-align:right}.certificate-workspace{position:-webkit-sticky;position:sticky;top:76px;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-soft)}.certificate-toolbar{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:10px 14px}.certificate-toolbar>div:first-child{display:grid;grid-gap:2px;gap:2px;min-width:110px}.certificate-toolbar strong{color:var(--ink);font-size:.86rem}.certificate-toolbar span{color:var(--muted);font-size:.72rem}.certificate-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.certificate-toolbar-actions>button{min-height:34px;border:1px solid var(--line);padding:0 10px;background:var(--panel);color:var(--ink);font-size:.73rem;font-weight:700}.certificate-toolbar-actions>button:hover:not(:disabled){border-color:var(--accent-strong);color:var(--accent-strong)}.certificate-toolbar-actions>button.button{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.certificate-toolbar-actions>button.secondary{background:var(--accent-soft);color:var(--accent-strong)}.certificate-toolbar-actions>button:disabled{opacity:.45;cursor:not-allowed}.certificate-preview{display:grid;min-height:430px;place-items:center;overflow:auto;padding:clamp(12px,2vw,26px);background-color:#e9edf0;background-image:linear-gradient(45deg,hsla(0,0%,100%,.48) 25%,transparent 0),linear-gradient(-45deg,hsla(0,0%,100%,.48) 25%,transparent 0),linear-gradient(45deg,transparent 75%,hsla(0,0%,100%,.48) 0),linear-gradient(-45deg,transparent 75%,hsla(0,0%,100%,.48) 0);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.certificate-preview canvas{display:block;width:min(100%,1000px);height:auto;aspect-ratio:1400/990;background:#fff;box-shadow:0 16px 38px rgba(24,34,43,.2)}.certificate-preview-hidden{display:grid;min-height:430px;place-content:center;grid-gap:7px;gap:7px;padding:24px;background:var(--panel-muted);color:var(--muted);text-align:center}.certificate-preview-hidden strong{color:var(--ink);font-size:1rem}.certificate-preview-hidden span{font-size:.78rem}.certificate-status{margin:0;border-top:1px solid var(--line);padding:8px 14px;background:var(--success-soft);color:var(--success-text);font-size:.73rem}.schedule-preview{max-height:400px;border:1px solid var(--line);border-radius:6px;padding:12px;background:var(--surface-muted);color:var(--ink);font-size:13px}.schedule-editor{display:flex;flex-direction:column;gap:12px}.schedule-editor>label{color:var(--ink)}.schedule-editor>label input{width:100%;margin-top:4px}.schedule-editor-table-wrap{overflow-x:auto}.schedule-editor table{width:100%;min-width:560px;border-collapse:collapse}.schedule-editor td,.schedule-editor th{border:1px solid var(--line-strong);padding:4px}.schedule-editor th{background:var(--surface-muted);color:var(--ink)}.schedule-editor th:last-child{width:40px}.schedule-editor td:last-child{text-align:center}.schedule-editor table input{width:100%;border:0;padding:5px 6px;background:transparent;text-align:center;box-shadow:none}.schedule-editor table input:focus{border:0;box-shadow:inset 0 -2px var(--accent)}.student-history-row{padding:8px 0;border-bottom:1px solid var(--line)}.student-history-grade{margin-left:8px;color:var(--muted);font-size:12px}.student-history-status{color:var(--warning-strong);font-size:12px}.student-history-status.finalized{color:var(--success-text)}.student-history-comment{margin:4px 0 0;color:var(--ink);font-size:13px;line-height:1.5;white-space:pre-wrap}.seating-controls{gap:14px}.seating-controls textarea{resize:vertical;line-height:1.65}.seating-ai-composer{display:grid;grid-gap:11px;gap:11px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:14px;padding:14px;background:linear-gradient(145deg,var(--accent-soft),var(--panel) 58%);box-shadow:var(--shadow-sm)}.seating-ai-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.seating-ai-heading h4{margin:2px 0 0;color:var(--ink);font-size:1.05rem}.seating-ai-kicker{color:var(--accent-strong);font-size:.68rem;font-weight:850;letter-spacing:.08em}.seating-ai-badge{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--accent);color:#fff;font-size:.75rem;font-weight:900}.seating-prompt-presets{display:flex;flex-wrap:wrap;gap:7px}.seating-prompt-presets button{border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;font-size:.72rem;font-weight:750}.seating-prompt-presets button:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.seating-ai-composer textarea{min-height:112px;background:var(--panel)}.form .seating-reference-option{display:flex;align-items:center;gap:8px;color:var(--ink);cursor:pointer}.form .seating-reference-option input{width:18px;height:18px;margin:0;padding:0;flex:0 0 18px}.form .seating-reference-option:has(input:disabled){color:var(--muted);cursor:not-allowed}.seating-ai-submit{width:100%;min-height:44px}.seating-ai-composer>p{margin:-2px 0 0;color:var(--muted);font-size:.7rem;line-height:1.5}.seating-ai-raw{border-top:1px solid var(--line);padding-top:9px}.seating-ai-raw summary{color:var(--accent-strong);cursor:pointer;font-size:.76rem;font-weight:800}.seating-ai-raw pre{max-height:260px;margin:9px 0 0;overflow:auto;border-radius:9px;padding:11px;background:var(--surface-solid);color:var(--ink);font-size:.72rem;line-height:1.55;white-space:pre-wrap;word-break:break-all}.seating-chart-stats,.seating-chart-toolbar,.seating-name-summary,.seating-roster-actions,.seating-secondary-actions{display:flex;flex-wrap:wrap;gap:8px}.seating-roster-actions{align-items:center;justify-content:space-between;margin-top:-8px;color:var(--muted);font-size:.78rem}.seating-roster-actions button{border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--panel);color:var(--accent-strong);cursor:pointer;font:inherit;font-weight:800}.seating-roster-actions button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.seating-roster-actions button:disabled{opacity:.5;cursor:not-allowed}.seating-name-summary{margin-top:-8px;color:var(--muted);font-size:.78rem}.seating-chart-toolbar span,.seating-name-summary span{border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:var(--panel)}.seating-fieldset{min-width:0;margin:0;border:0;padding:0}.seating-fieldset legend{margin-bottom:8px;color:var(--ink);font-size:.82rem;font-weight:800}.seating-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:7px;gap:7px}.seating-mode-switch button,.seating-secondary-actions button,.seating-template-grid button{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);cursor:pointer}.seating-template-grid button{min-width:0;padding:9px 10px;text-align:left}.seating-template-grid button small,.seating-template-grid button strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seating-template-grid button strong{font-size:.8rem}.seating-template-grid button small{margin-top:3px;color:var(--muted);font-size:.68rem}.seating-mode-switch button:hover,.seating-secondary-actions button:hover,.seating-template-grid button:hover{border-color:var(--accent)}.seating-mode-switch button.active,.seating-template-grid button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.seating-mode-switch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.seating-mode-switch button{min-height:36px;border-radius:0;font-size:.78rem;font-weight:800}.seating-mode-switch button:first-child{border-radius:6px 0 0 6px}.seating-mode-switch button:last-child{border-radius:0 6px 6px 0}.seating-mode-switch button+button{margin-left:-1px}.seating-primary-actions .button{flex:1 1 120px}.seating-secondary-actions button{flex:1 1;min-width:84px;padding:8px;font-size:.75rem;font-weight:800}.seating-chart-wrap{overflow:auto;padding:0;background:#e8edf0}.seating-chart-toolbar{position:-webkit-sticky;position:sticky;left:0;z-index:1;min-width:620px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 14px;background:var(--panel);color:var(--muted);font-size:.73rem}.seating-chart-stats{align-items:center}.seating-toolbar-mode{min-width:320px;display:grid;grid-template-columns:auto 240px;align-items:center;grid-gap:8px;gap:8px}.seating-toolbar-mode>span{color:var(--ink);font-weight:800;white-space:nowrap}.seating-toolbar-mode .seating-mode-switch button{min-height:30px;padding:4px 10px;font-size:.72rem}.seating-chart{min-width:620px;padding:28px;background:#f8faf9;color:#202735}.seating-chart h3{margin:0 0 18px;text-align:center;letter-spacing:0}.teacher-desk{width:160px;margin:0 auto 30px;border:2px solid #354b52;border-radius:5px;padding:9px;background:#fff;box-shadow:0 4px 0 #c8d2d4;text-align:center;font-weight:900}.seat-grid{display:grid;grid-gap:10px;gap:10px}.seat{position:relative;min-height:72px;display:grid;place-items:center;align-content:center;grid-gap:3px;gap:3px;border:1px dashed #aeb6c1;border-radius:6px;padding:6px;background:hsla(0,0%,100%,.55);color:#89929e;font:inherit;text-align:center;cursor:pointer}.seat.occupied{border-style:solid;border-color:#6d9baa;background:#e4f1f1;color:#173f48;cursor:-webkit-grab;cursor:grab;box-shadow:0 2px 0 #bdd1d5}.seat.occupied:active{cursor:-webkit-grabbing;cursor:grabbing}.seat.dragging{opacity:.45;transform:scale(.96)}.seat.drag-target{border-color:#23866f;background:#d9f4e9;box-shadow:0 0 0 3px rgba(35,134,111,.2)}.seat.empty{border-color:#c7ccd1;background:transparent;color:#9099a1}.seat.aisle{border-color:transparent;background:repeating-linear-gradient(135deg,transparent 0 8px,hsla(198,9%,50%,.08) 8px 16px);color:#929da1}.seat.locked{border-color:#d38a2e;background:#fff2d8;color:#6d4214;box-shadow:0 0 0 2px rgba(211,138,46,.16);cursor:pointer}.seat small{font-size:.66rem;opacity:.72}.seat strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.seat-lock{position:absolute;top:5px;right:5px;border-radius:3px;padding:2px 4px;background:#d38a2e;color:#fff;font-size:.58rem;font-weight:900}.layout-circle .seat-grid{border:1px solid #d7dfe0;border-radius:50%;padding:16px}.layout-groups .seat:nth-child(3n){margin-right:14px}.layout-groups .seat:nth-child(3n+1){margin-left:14px}.layout-staggered .seat:nth-child(2n){transform:translateY(7px)}.layout-exam .seat-grid{gap:15px}@media (max-width:620px){.toolbox-heading{min-height:0;align-items:flex-start}.toolbox-count{display:none}.toolbox-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}@media (max-width:720px){.certificate-studio,.comment-template-panel,.comment-workspace,.diff-input-grid,.seating-tool-layout,.utility-document-body,.utility-ocr-layout,.utility-tool-layout{grid-template-columns:minmax(0,1fr)}.comment-template-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.comment-result-grid{grid-template-columns:minmax(0,1fr)}.utility-image-preview,.utility-tool-preview{min-height:320px}.utility-file-stats{grid-template-columns:minmax(0,1fr)}.utility-document-body{gap:20px;padding:20px}.seating-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.seating-chart{padding:22px}.classroom-stage,.timer-stage{min-height:330px}.certificate-workspace{position:static}.certificate-toolbar{align-items:flex-start;flex-direction:column}.certificate-toolbar-actions{width:100%;justify-content:flex-start}.certificate-toolbar-actions>button{flex:1 1 auto}.certificate-preview,.certificate-preview-hidden{min-height:240px}}@media (max-width:430px){.certificate-controls{padding:14px}.certificate-template-grid{grid-template-columns:minmax(0,1fr)}.certificate-template-grid button:last-child{grid-column:auto}.certificate-field-pair{grid-template-columns:minmax(0,1fr)}.certificate-toolbar-actions>button{flex-basis:calc(50% - 3px)}}.login-page{--login-shell:#fff;--login-panel:#fbfcff;--login-panel-soft:#fff;--login-title:#172b4d;--login-text:#344767;--login-muted:#6b7891;--login-line:rgba(52,71,103,.14);--login-input:#fff;--login-input-shadow:0 8px 20px rgba(25,36,54,.05);min-height:100vh;display:grid;place-items:center;padding:clamp(18px,4vw,48px);background:linear-gradient(135deg,var(--accent-raised),var(--accent) 48%,var(--panel-strong) 100%)}.login-workbench{width:min(100%,1040px);min-height:610px;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr);overflow:hidden;border:1px solid rgba(245,251,252,.28);border-radius:22px;background:var(--login-shell);box-shadow:0 30px 80px rgba(25,36,54,.18)}.login-hero{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:26px;padding:clamp(28px,5vw,54px);background:linear-gradient(135deg,hsla(0,0%,100%,.16),transparent 42%),linear-gradient(160deg,var(--panel-strong) 0,var(--accent-strong) 58%,var(--accent-raised) 100%);color:var(--hero-ink)}.login-hero:after{content:"";position:absolute;inset:auto 0 0;height:35%;background:linear-gradient(180deg,transparent,hsla(0,0%,100%,.08));pointer-events:none}.login-topline{position:relative;z-index:1;display:flex;align-items:center;gap:16px}.login-topline .brand-mark{width:58px;height:58px;border-radius:12px}.login-topline .kicker{margin-bottom:6px}.login-topline h1{margin:0;max-width:480px;font-size:clamp(2.25rem,4.4vw,4.1rem);line-height:1.02;letter-spacing:0}.login-hero .login-copy{position:relative;z-index:1;max-width:540px;margin:0;color:rgba(245,251,252,.76);font-size:1.02rem;line-height:1.85}.login-panel{justify-content:center;border-left:1px solid var(--login-line);padding:clamp(26px,4vw,44px);background:linear-gradient(180deg,var(--login-panel),var(--login-panel-soft) 46%),var(--login-panel-soft)}.login-panel,.login-panel-header{display:flex;flex-direction:column}.login-panel-header{gap:2px;margin-bottom:28px}.login-panel-header h2{margin:0;color:var(--login-title);font-size:2rem;letter-spacing:0}.login-form{gap:16px}.login-mode-switch{display:grid;grid-template-columns:1fr 1fr;grid-gap:4px;gap:4px;padding:4px;margin-bottom:20px;border-radius:14px;background:color-mix(in srgb,var(--login-title) 7%,transparent)}.login-mode-switch button{min-height:38px;border:0;border-radius:11px;color:var(--login-text);background:transparent;cursor:pointer}.login-mode-switch button.active{color:var(--login-title);background:var(--login-panel-soft);box-shadow:0 4px 14px rgba(23,38,61,.1)}.login-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px}.login-form label{color:var(--login-text)}.login-form input{min-height:46px;border-color:var(--login-line);border-radius:12px;background:var(--login-input);color:var(--login-title);box-shadow:var(--login-input-shadow)}.login-form input:focus{border-color:rgba(133,193,31,.7);box-shadow:0 0 0 4px rgba(133,193,31,.15),var(--login-input-shadow)}.login-actions{display:grid;grid-template-columns:minmax(0,1fr);margin-top:4px}.login-actions .button{min-height:46px;border-radius:12px}.login-message{margin-top:18px;border-top:1px solid var(--login-line);padding-top:14px}.login-message .message{margin:0}:root[data-theme=dark] .login-page{--login-shell:#111827;--login-panel:#151f2f;--login-panel-soft:#0f1724;--login-title:#f8fbff;--login-text:#dce7f6;--login-muted:#9facbf;--login-line:rgba(213,229,248,.16);--login-input:#0a1220;--login-input-shadow:0 10px 24px rgba(0,0,0,.18);background:radial-gradient(circle at 18% 16%,rgba(17,205,239,.36),transparent 28vw),linear-gradient(135deg,#15213a,#203caf 54%,#07111f)}:root[data-theme=dark] .login-workbench{border-color:rgba(213,229,248,.18);box-shadow:0 32px 90px rgba(0,0,0,.42)}:root[data-theme=dark] .login-hero{background:linear-gradient(135deg,hsla(0,0%,100%,.1),transparent 42%),linear-gradient(160deg,#0b1528,#2343d1 58%,#11cdef)}:root[data-theme=dark] .login-form input::placeholder{color:var(--login-muted)}@media (max-width:980px){.app-header{height:auto;min-height:var(--header-height);align-items:flex-start;flex-wrap:wrap;padding-block:10px}.app-header-left,.app-header-right{width:100%;justify-content:space-between}.app-brand{min-width:0;flex:1 1}.global-search{flex:1 1;width:auto}.shell{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)}.sidebar{top:0;height:auto;min-height:calc(100vh - var(--header-height))}.nav-item,.nav-title{grid-template-columns:1fr;justify-items:center;gap:0;padding-inline:0}.nav-label,.nav-title>svg:last-child{display:none}.brand{max-width:520px}.grid,.module-grid,.permissions-layout,.settings-form,.tags-layout{grid-template-columns:1fr}.permission-role-panel{position:static}.permission-summary-panel{grid-template-columns:1fr}.permission-summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.permission-matrix-heading,.permission-summary-actions{align-items:flex-start;flex-direction:column}.comments-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.comments-actions{justify-content:flex-start}.tags-create-panel{position:static}.dictionary-layout,.import-action-row,.student-master-detail{grid-template-columns:1fr}.student-detail-panel,.student-list-panel{position:static;max-height:none;overflow:visible}.lesson-plan-workspace-body{grid-template-columns:1fr}.lesson-plan-mobile-tabs{display:flex;gap:4px;padding:4px;margin-bottom:var(--space-sm);border:1px solid var(--line);border-radius:10px;background:var(--surface-muted,rgba(0,0,0,.03))}.lesson-plan-mobile-tabs button{flex:1 1;border:0;border-radius:8px;padding:8px 12px;background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer}.lesson-plan-mobile-tabs button.active{background:var(--surface,#fff);color:var(--accent);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06)}.lesson-plan-workspace-body.mobile-pane-plan>.lesson-source-preview,.lesson-plan-workspace-body.mobile-pane-source>.lesson-plan-editor-stack{display:none}.lesson-source-pdf-stage{height:42vh;min-height:240px}.lesson-source-pdf-embed{height:32vh}.topbar{align-items:flex-start;flex-direction:column}.workspace-toolbar{align-items:stretch;flex-direction:column}.user-trigger{justify-content:flex-start}.endpoint{grid-template-columns:1fr}.endpoint code,.endpoint-note{white-space:normal}.login-workbench{min-height:auto;grid-template-columns:1fr}.login-panel{border-left:0}}@media (max-width:560px){.main{padding:0 12px 24px}.login-page{padding:18px}.app-header{padding-inline:10px}.app-brand strong,.global-search kbd{display:none}.header-breadcrumb{max-width:42vw;gap:6px;font-size:.8rem}.header-breadcrumb-item{gap:6px}.header-breadcrumb-item:not([aria-current=page]) span:last-child{display:none}.app-header-right{gap:6px}.global-search{min-width:118px}.workspace-tab-strip{margin-inline:-12px;padding-inline:12px}.login-panel,.panel{border-radius:8px;padding:18px}.topbar h2{font-size:1.72rem}.login-workbench{border-radius:8px}.login-hero{padding:24px}.login-topline{align-items:flex-start}.login-topline h1{font-size:2rem}.login-actions{grid-template-columns:1fr}.user-dropdown{left:0;right:0}.toolbar-form label{min-width:100%}.panel-heading{align-items:stretch;flex-direction:column}.comments-toolbar{grid-template-columns:1fr}.comments-actions,.comments-options,.comments-progress-meta{align-items:flex-start;flex-direction:column}.permission-summary-metrics{grid-template-columns:1fr}.permission-tabs{width:100%}.permission-tabs button{flex:1 1}}.dashboard-page{max-width:1400px;margin-inline:auto;padding:4px 0}.workbench-cockpit{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);grid-gap:14px;gap:14px;margin-bottom:14px}.cockpit-main,.cockpit-side{border:1px solid var(--line);border-radius:18px;background:var(--surface-solid);box-shadow:var(--shadow-soft)}.cockpit-main{padding:18px}.cockpit-side{display:grid;align-content:start;grid-gap:12px;gap:12px;padding:16px}.cockpit-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.cockpit-kicker{margin:0 0 4px;color:var(--muted);font-size:.78rem;font-weight:800}.cockpit-heading h2{margin:0;color:var(--panel-strong);font-size:1.24rem;letter-spacing:0}.cockpit-view-switch{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}.cockpit-view-switch button{min-width:86px;border:0;border-radius:9px;padding:8px 10px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:.86rem;font-weight:900}.cockpit-view-switch button.active{background:var(--surface-solid);color:var(--panel-strong);box-shadow:0 8px 18px rgba(50,50,93,.08)}.cockpit-view-switch button:disabled{opacity:.45;cursor:not-allowed}.cockpit-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.cockpit-metric{min-height:96px;display:grid;align-content:space-between;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-muted)}.cockpit-metric span{color:var(--muted);font-size:.82rem;font-weight:800}.cockpit-metric strong{color:var(--panel-strong);font-size:2rem;line-height:1}.cockpit-metric.amber strong{color:var(--warning)}.cockpit-metric.red strong{color:var(--danger)}.cockpit-metric.green strong{color:var(--success)}.cockpit-error{margin:12px 0 0;color:var(--danger-text);font-size:.88rem;font-weight:800}.cockpit-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px}.cockpit-status-row span,.cockpit-todo-list>span{color:var(--muted);font-size:.78rem;font-weight:900}.cockpit-status-row strong{min-width:0;overflow:hidden;color:var(--panel-strong);font-size:.9rem;text-align:right;text-overflow:ellipsis;white-space:nowrap}.cockpit-todo-list{display:grid;grid-gap:8px;gap:8px}.cockpit-todo-list p{margin:0;color:var(--muted);font-size:.9rem}.cockpit-todo{display:grid;grid-gap:3px;gap:3px;border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:var(--surface-muted)}.cockpit-todo.focus{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent-panel) 18%,var(--surface-solid))}.cockpit-todo strong{min-width:0;overflow:hidden;color:var(--panel-strong);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.cockpit-todo small{color:var(--muted);font-size:.78rem}.dashboard-toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}.dashboard-mgr-wrapper{position:relative}.dashboard-mgr-btn{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:4px 10px;cursor:pointer;transition:background .15s,color .15s}.dashboard-mgr-btn:hover{background:var(--surface-solid);color:var(--ink)}.dashboard-mgr-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--surface-solid);border:1px solid var(--line);border-radius:8px;padding:6px;min-width:150px;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:2px}.dashboard-mgr-item{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:4px;font-size:.84rem;color:var(--ink);cursor:pointer;transition:background .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dashboard-mgr-item:hover{background:var(--surface-soft)}.dashboard-mgr-item input{margin:0;accent-color:var(--accent)}.dashboard-mgr-instance{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;font-size:.82rem;color:var(--ink);border-radius:4px}.dashboard-mgr-instance:hover{background:var(--surface-soft)}.dashboard-empty-state{padding:60px 0;text-align:center}.dashboard-trash-zone{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(0) scale(1);display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--danger);color:#fff;border-radius:10px;font-size:.9rem;z-index:3000;box-shadow:0 4px 20px rgba(220,38,38,.4);pointer-events:none;opacity:.95;transition:transform .18s ease,background .18s ease,box-shadow .18s ease,padding .18s ease}.dashboard-trash-zone svg{transition:transform .18s ease}.dashboard-trash-zone.active{transform:translateX(-50%) translateY(-4px) scale(1.08);padding-inline:28px;background:var(--danger-strong);box-shadow:0 16px 40px rgba(220,38,38,.46)}.dashboard-trash-zone.active svg{transform:scale(1.16) rotate(-6deg)}.dashboard-grid-item-sucking .dashboard-widget{transform-origin:50% 8%;transition:transform .18s cubic-bezier(.2,.9,.2,1),opacity .18s ease,filter .18s ease,-webkit-clip-path .18s cubic-bezier(.2,.9,.2,1);transition:clip-path .18s cubic-bezier(.2,.9,.2,1),transform .18s cubic-bezier(.2,.9,.2,1),opacity .18s ease,filter .18s ease;transition:clip-path .18s cubic-bezier(.2,.9,.2,1),transform .18s cubic-bezier(.2,.9,.2,1),opacity .18s ease,filter .18s ease,-webkit-clip-path .18s cubic-bezier(.2,.9,.2,1);transform:perspective(680px) rotateX(14deg) scaleY(.9);-webkit-clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);opacity:.58;filter:saturate(.78) contrast(.96);pointer-events:none}.dashboard-grid-item-sucking .dashboard-widget:after{content:"";position:absolute;inset:auto 14% 0;height:36%;border-radius:0 0 inherit inherit;background:linear-gradient(180deg,transparent,rgba(220,38,38,.16));pointer-events:none}@media (prefers-reduced-motion:reduce){.dashboard-trash-zone,.dashboard-trash-zone svg{transition:none}.dashboard-grid-item-sucking .dashboard-widget{transition:none;transform:scaleY(.94);-webkit-clip-path:polygon(0 0,100% 0,92% 100%,8% 100%);clip-path:polygon(0 0,100% 0,92% 100%,8% 100%);opacity:.62}}.dashboard-grid-layout{min-height:480px}.dashboard-widget{position:relative;isolation:isolate;background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--radius-card);display:flex;flex-direction:column;height:100%;-moz-user-select:none;user-select:none;-webkit-user-select:none;overflow:clip;box-shadow:var(--shadow-soft);transition:transform .18s var(--ease-apple),border-color .18s var(--ease-apple),box-shadow .18s var(--ease-apple)}.dashboard-widget:before{display:none}.dashboard-widget:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 24%,var(--line));box-shadow:var(--shadow)}.dashboard-widget.has-custom-bg{border-color:color-mix(in srgb,var(--accent) 24%,var(--line-strong))}.dashboard-widget.has-custom-bg:before{display:none}.dashboard-widget.has-custom-bg .widget-header{background:transparent}.dashboard-widget .widget-header{cursor:-webkit-grab;cursor:grab;height:36px;min-height:36px;background:var(--surface-solid);border-bottom:1px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 12px;gap:6px}.dashboard-widget .widget-header:active{cursor:-webkit-grabbing;cursor:grabbing}.widget-header-title{position:relative;display:inline-flex;align-items:center;font-size:.84rem;font-weight:800;color:var(--panel-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.widget-header-actions{position:relative;flex-shrink:0;display:flex;align-items:center;gap:2px}.widget-collapse-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer;opacity:.5;transition:opacity .15s}.widget-collapse-btn:hover{opacity:1;background:color-mix(in srgb,var(--ink) 6%,transparent)}.widget-snap-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer;opacity:.5;transition:opacity .15s,background .15s}.widget-snap-btn:hover{opacity:1;background:color-mix(in srgb,var(--ink) 6%,transparent)}.widget-snap-btn.busy{opacity:1;background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent-strong)}.widget-snap-btn.ok{opacity:1;background:color-mix(in srgb,#4caf50 20%,transparent);color:#4caf50}.widget-snap-btn.fail{opacity:1;background:color-mix(in srgb,#f44336 20%,transparent);color:#f44336}.widget-snap-btn.no-clip{opacity:1;background:color-mix(in srgb,#ff9800 20%,transparent);color:#ff9800}.widget-snap-btn.no-canvas{opacity:1;background:color-mix(in srgb,#9c27b0 20%,transparent);color:#9c27b0}.widget-gear-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s}.widget-gear-btn:hover{background:var(--surface-solid);border-color:color-mix(in srgb,var(--accent) 24%,var(--line));color:var(--accent-strong);transform:translateY(-1px)}.widget-gear-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--surface-solid);border:1px solid var(--line);border-radius:14px;padding:8px;min-width:180px;z-index:100;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}.widget-gear-section-title{font-size:.76rem;font-weight:600;color:var(--ink-soft);display:block;margin-bottom:4px}.widget-gear-divider{height:1px;background:var(--line);margin:2px 0}.widget-color-picker{display:grid;grid-template-columns:repeat(4,22px);grid-gap:4px;gap:4px}.widget-color-swatch{width:22px;height:22px;border-radius:4px;border:2px solid var(--line);cursor:pointer;transition:border-color .15s,transform .1s;padding:0}.widget-color-swatch:hover{border-color:var(--accent);transform:scale(1.15)}.widget-color-swatch.active{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:1px}.widget-color-swatch:first-child{background:var(--surface-soft);position:relative;overflow:hidden}.widget-color-swatch:first-child:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,transparent 45%,var(--ink-soft) 45%,var(--ink-soft) 55%,transparent 55%)}.dashboard-widget .widget-body-wrapper{flex:1 1;display:flex;flex-direction:column;min-height:0}.dashboard-widget.widget-collapsed{background:color-mix(in srgb,var(--surface-muted) 50%,var(--surface))!important}.react-grid-item:has(.widget-collapsed) .react-resizable-handle{display:none!important}.widget-collapsed-hint{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;opacity:.35}.widget-collapsed-hint svg{width:clamp(20px,6cqi,28px);height:clamp(20px,6cqi,28px)}.widget-collapsed-hint:after{content:"已折叠";font-size:clamp(.6rem,2cqi,.75rem);color:var(--ink-soft)}.dashboard-widget .widget-body{padding:12px 14px 14px;flex:1 1;display:flex;flex-direction:column;justify-content:center;overflow:auto;container-type:inline-size}.dashboard-widget .schedule-widget-body{container-type:size;container-name:schedule-widget;justify-content:flex-start;overflow:hidden}.dashboard-widget .next-lesson-widget-body{padding:10px;justify-content:stretch;overflow:hidden;container-type:size;container-name:next-lesson-widget}.dashboard-widget .widget-empty{color:var(--ink-soft);font-size:.84rem;margin:auto}.widget-empty-illustrated{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;min-height:128px;width:100%;padding:18px 12px;border:1px dashed color-mix(in srgb,var(--accent) 22%,var(--line-strong));border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface-solid) 88%,var(--accent-soft)),color-mix(in srgb,var(--surface-muted) 82%,var(--surface-solid)));color:var(--ink-soft)}.widget-empty-mark{display:grid;place-items:center;min-width:58px;height:34px;padding:0 12px;border-radius:7px;background:color-mix(in srgb,var(--surface-solid) 86%,var(--accent-soft));border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));color:var(--panel-strong);font-size:.9rem;font-weight:900;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.58),0 7px 16px rgba(50,50,93,.06)}.widget-schedule-info{display:flex;flex-direction:column;gap:6px}.schedule-file-name{margin:0;font-weight:500;font-size:.88rem}.schedule-meta{margin:0;color:var(--ink-soft);font-size:.8rem}.schedule-preview{margin:6px 0 0;font-size:.78rem;line-height:1.5;color:var(--ink-soft);background:var(--surface-soft);padding:8px;border-radius:4px;max-height:100px;overflow:auto;white-space:pre-wrap}.countdown-compact{justify-content:center}.countdown-compact .countdown-year-name.compact{font-size:.72rem}.countdown-compact .countdown-number.compact{font-size:1.4rem}.countdown-compact .countdown-label.compact{font-size:.7rem}.links-compact{justify-content:center}.links-compact .widget-links-list.compact{display:flex;flex-wrap:wrap;gap:4px}.links-compact .widget-links-list.compact li{display:inline-block}.links-compact .widget-links-list.compact a{padding:2px 6px;font-size:.76rem;white-space:nowrap}.widget-today-schedule{display:flex;flex-direction:column;gap:10px;padding:6px 4px}.wt-prev{display:flex;align-items:center;gap:10px;padding:4px 8px;opacity:.5}.wt-prev.starred{opacity:.8}.wt-prev-arrow{font-size:1rem;line-height:1;color:var(--muted)}.wt-prev-body{flex:1 1}.wt-prev-subject{font-size:.82rem;font-weight:500}.wt-prev-info{font-size:.72rem;color:var(--muted);margin-top:1px}.wt-signboard{margin:0 -2px}.wt-signboard.starred{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--accent) 50%,transparent))}.wt-signboard-border{border:3px solid var(--accent);border-radius:14px;padding:14px 16px 12px;position:relative}.wt-signboard-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}.wt-signboard-arrow{font-size:1.2rem;line-height:1;color:var(--accent)}.wt-signboard-live{font-size:.78rem;font-weight:800;letter-spacing:1px;color:var(--accent);animation:wt-blink 1.6s ease-in-out infinite}.wt-signboard-star{margin-left:auto;font-size:.72rem;font-weight:600;color:var(--accent-strong)}.wt-signboard-subject{font-size:1.6rem;font-weight:900;line-height:1.2;letter-spacing:1px;color:var(--panel-strong)}.wt-signboard-period{font-size:.85rem;font-weight:500;color:var(--ink-soft);margin-top:4px}.wt-signboard-time{font-size:.8rem;font-weight:600;color:var(--muted);margin-top:2px}.wt-signboard-progress{display:flex;align-items:center;gap:8px;margin-top:10px}.wt-signboard-progress .wt-progress-track{flex:1 1;height:6px;border-radius:3px;background:color-mix(in srgb,var(--accent) 20%,var(--surface-muted));overflow:hidden}.wt-signboard-progress .wt-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--accent-raised));transition:width .5s ease}.wt-progress-text{font-size:.75rem;font-weight:700;color:var(--accent-strong);min-width:32px;text-align:right}.wt-next{display:flex;align-items:center;gap:10px;padding:4px 8px;opacity:.6}.wt-next.starred{opacity:1}.wt-next-arrow{font-size:1rem;line-height:1;color:var(--muted)}.wt-next-body{flex:1 1}.wt-next-subject{font-size:.9rem;font-weight:600}.wt-next-info{font-size:.74rem;color:var(--muted);margin-top:1px}.wt-row{display:flex;align-items:center;gap:8px;padding:clamp(4px,1.5cqw,6px) clamp(7px,2.4cqw,10px);border-radius:8px;font-size:.82rem}.wt-row.prev{background:transparent;opacity:.55}.wt-row.current{background:var(--accent-soft);font-weight:600;margin:2px 0}.wt-row.starred{outline:2px solid var(--accent);outline-offset:1px}.wt-arrow-icon{font-size:.7rem;color:var(--accent);flex-shrink:0}.wt-arrow-icon.dim{color:var(--ink-soft);opacity:.5}.wt-period{font-weight:500;color:var(--ink-soft);min-width:24px;text-align:center;font-size:.78rem}.wt-row.current .wt-period{color:color-mix(in srgb,var(--accent-strong) 80%,transparent)}.wt-subject{flex:1 1;font-weight:600}.wt-row.current .wt-subject{font-weight:700}.wt-time{color:var(--muted);font-size:.76rem;white-space:nowrap}.wt-row.current .wt-time{color:color-mix(in srgb,var(--accent-strong) 70%,transparent)}.wt-badge{font-size:.62rem;padding:2px 7px;border-radius:10px;background:transparent;color:var(--muted);font-weight:500;white-space:nowrap}.wt-badge.prev{color:var(--ink-soft)}.wt-badge.live{background:var(--accent);color:var(--button-text);font-weight:700;letter-spacing:.3px;animation:wt-blink 1.6s ease-in-out infinite}.wt-badge.next{color:var(--muted)}@keyframes wt-blink{0%,to{opacity:1}50%{opacity:.6}}.wt-row.current .wt-badge.live{order:-1}.wt-progress-track{height:3px;min-width:30px;flex:0 0 40px;border-radius:2px;background:color-mix(in srgb,var(--accent) 25%,transparent);overflow:hidden}.wt-progress-fill{height:100%;border-radius:2px;background:var(--accent);transition:width .5s ease}.schedule-preview-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:2000;display:flex;align-items:center;justify-content:center}.schedule-preview-modal{background:var(--surface-solid);border-radius:10px;max-width:720px;width:90%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.2)}.schedule-preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:600;font-size:.9rem;border-bottom:1px solid var(--line)}.schedule-preview-close{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--ink-soft);padding:4px 8px;border-radius:4px}.schedule-preview-close:hover{background:var(--surface-muted)}.schedule-preview-body{padding:12px 16px;overflow:auto;flex:1 1}.schedule-preview-table{width:100%;border-collapse:collapse;font-size:.82rem}.schedule-preview-table th{background:var(--surface-muted);padding:6px 8px;font-weight:600;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;position:-webkit-sticky;position:sticky;top:0}.schedule-preview-table td{padding:5px 8px;text-align:center;border-bottom:1px solid var(--line)}.schedule-preview-time{white-space:nowrap;color:var(--muted);font-size:.78rem}.widget-countdown{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px;margin:auto;isolation:isolate}.countdown-orbit{position:absolute;inset:50% auto auto 50%;width:clamp(86px,30cqi,136px);height:clamp(86px,30cqi,136px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 8%,transparent) 0 42%,transparent 43%),conic-gradient(from 220deg,color-mix(in srgb,var(--accent) 20%,transparent),transparent 28%,color-mix(in srgb,var(--amber) 16%,transparent),transparent 68%);opacity:.85;z-index:-1}.countdown-orbit span{position:absolute;border-radius:999px;background:color-mix(in srgb,var(--accent) 45%,var(--surface-solid))}.countdown-orbit span:first-child{width:42%;height:4px;left:8%;top:22%;opacity:.36}.countdown-orbit span:nth-child(2){width:5px;height:5px;right:18%;top:26%}.countdown-orbit span:nth-child(3){width:28%;height:3px;right:10%;bottom:20%;opacity:.28}.countdown-year-name{margin:0;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--surface-solid));border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);font-size:.78rem;font-weight:700;color:var(--ink-soft)}.countdown-number{margin:2px 0;font-size:clamp(1.85rem,12cqi,2.55rem);font-weight:900;color:var(--accent-strong);line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-shadow:0 8px 18px color-mix(in srgb,var(--accent) 15%,transparent)}.countdown-number.ended{color:var(--muted);text-shadow:none}.countdown-label{margin:0;font-size:.76rem;font-weight:700;color:var(--ink-soft)}.widget-sticky-pad{position:relative;flex:1 1;min-height:90px;border-radius:7px;padding:8px 8px 8px 12px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 20%,transparent) 0 3px,transparent 3px),repeating-linear-gradient(to bottom,transparent 0 27px,color-mix(in srgb,var(--line-strong) 45%,transparent) 28px),color-mix(in srgb,var(--surface-solid) 78%,var(--surface-muted));border:1px solid color-mix(in srgb,var(--accent) 12%,var(--line));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.5),0 5px 14px rgba(50,50,93,.05)}.widget-sticky-textarea{width:100%;height:100%;flex:1 1;resize:none;border:0;border-radius:0;padding:0;font-size:.84rem;line-height:28px;background:transparent;color:var(--ink);min-height:80px;-moz-user-select:text;user-select:text;-webkit-user-select:text}.widget-sticky-textarea:focus{outline:none}.widget-sticky-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.widget-sticky-status{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700}.widget-sticky-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 12%,transparent)}.widget-sticky-status.saved{color:var(--ink-soft)}.widget-sticky-status.unsaved{color:var(--warning)}.widget-links-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:7px;gap:7px}.widget-links-list li a{display:flex;align-items:center;gap:8px;min-height:34px;padding:6px 9px 6px 7px;border-radius:7px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--surface-solid) 88%,var(--accent-soft)),color-mix(in srgb,var(--surface-muted) 84%,var(--surface-solid)));color:var(--ink);text-decoration:none;font-size:.84rem;box-shadow:0 4px 12px rgba(50,50,93,.05);transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}.widget-links-list li a:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface-solid));color:var(--accent);box-shadow:0 8px 18px rgba(50,50,93,.08)}.widget-link-icon{display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border-radius:6px;background:color-mix(in srgb,var(--accent) 13%,var(--surface-solid));color:var(--accent-strong);font-size:.9rem;font-weight:900}.widget-link-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.widget-recent-files{list-style:none;margin:0;padding:0;display:grid;grid-gap:7px;gap:7px;align-self:flex-start;width:100%}.widget-recent-file-item{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;border:1px solid color-mix(in srgb,var(--accent) 13%,var(--line));background:linear-gradient(135deg,var(--surface-solid),color-mix(in srgb,var(--surface-muted) 84%,var(--accent-soft)));font-size:.84rem;box-shadow:0 4px 12px rgba(50,50,93,.05);transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}.widget-recent-file-item:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 28%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface-solid));box-shadow:0 8px 18px rgba(50,50,93,.08)}.recent-file-badge{display:grid;place-items:center;width:34px;height:30px;flex-shrink:0;border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-solid));color:var(--accent-strong);font-size:.58rem;font-weight:900;letter-spacing:.02em;border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}.recent-file-main{display:flex;flex-direction:column;min-width:0;flex:1 1;gap:2px}.recent-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:700}.recent-file-size{color:var(--accent-strong);font-size:.78rem;font-weight:800;flex-shrink:0}.recent-file-date{color:var(--ink-soft);font-size:.78rem;flex-shrink:0}.recent-file-actions{display:flex;gap:3px;flex-shrink:0}.widget-action-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:5px;background:transparent;cursor:pointer;font-size:.82rem;line-height:1;color:var(--ink-secondary);transition:background .12s,color .12s;text-decoration:none}.widget-action-btn:hover{background:color-mix(in srgb,var(--accent) 12%,var(--surface-solid));color:var(--accent-strong)}.widget-action-btn:disabled{cursor:not-allowed;opacity:.4}.widget-action-btn:disabled:hover{background:transparent;color:var(--ink-secondary)}.widget-setting-row{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--ink)}.widget-setting-date{border:1px solid var(--line);border-radius:4px;padding:4px 6px;font-size:.82rem;background:var(--surface-soft);color:var(--ink);outline:none}.widget-setting-date:focus{border-color:var(--accent)}.react-resizable-handle{position:absolute;bottom:0;right:0;width:20px;height:20px;z-index:10;cursor:se-resize}.react-resizable-handle:after{content:"";position:absolute;bottom:4px;right:4px;width:8px;height:8px;border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);opacity:.5;transition:opacity .15s}.dashboard-widget:hover .react-resizable-handle:after{opacity:1}.react-grid-placeholder{background:var(--accent-soft)!important;border-radius:8px!important;opacity:.5!important}.widget-todo-body{gap:9px;min-height:0}.widget-todo-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.widget-todo-stats>div{min-width:0;padding:8px 7px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:7px;background:color-mix(in srgb,var(--surface-solid) 72%,transparent)}.widget-todo-stats span,.widget-todo-stats strong{display:block}.widget-todo-stats strong{color:var(--accent-strong);font-size:1.05rem;line-height:1}.widget-todo-stats span{margin-top:4px;color:var(--ink-soft);font-size:.67rem;font-weight:800;white-space:nowrap}.widget-todo-composer{display:grid;grid-gap:7px;gap:7px;padding:8px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface-solid) 78%,transparent),color-mix(in srgb,var(--surface-muted) 58%,transparent))}.widget-todo-fields input,.widget-todo-fields select,.widget-todo-note-input,.widget-todo-title-input,.widget-todo-toolbar input,.widget-todo-toolbar select{width:100%;min-width:0;border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:7px;background:color-mix(in srgb,var(--surface-solid) 86%,transparent);color:var(--ink);outline:none}.widget-todo-fields input,.widget-todo-fields select,.widget-todo-title-input,.widget-todo-toolbar input,.widget-todo-toolbar select{height:30px;padding:0 8px;font-size:.78rem}.widget-todo-note-input{min-height:48px;padding:7px 8px;resize:vertical;font-size:.76rem;line-height:1.45}.widget-todo-fields input:focus,.widget-todo-fields select:focus,.widget-todo-note-input:focus,.widget-todo-title-input:focus,.widget-todo-toolbar input:focus,.widget-todo-toolbar select:focus{border-color:color-mix(in srgb,var(--accent) 56%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-soft) 55%,transparent)}.widget-todo-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.widget-todo-bulkbar,.widget-todo-command-row,.widget-todo-filter,.widget-todo-toolbar{display:flex;align-items:center;gap:6px}.widget-todo-bulkbar button,.widget-todo-check,.widget-todo-filter button,.widget-todo-icon-btn,.widget-todo-primary-btn,.widget-todo-secondary-btn{border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:7px;cursor:pointer;font-weight:800}.widget-todo-primary-btn,.widget-todo-secondary-btn{height:30px;padding:0 10px;font-size:.78rem}.widget-todo-primary-btn{border-color:var(--accent);background:var(--accent);color:#fff}.widget-todo-primary-btn:disabled{opacity:.45;cursor:default}.widget-todo-bulkbar button,.widget-todo-secondary-btn{background:var(--surface-solid);color:var(--ink)}.widget-todo-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 96px}.widget-todo-filter{padding:3px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface-muted) 58%,transparent);overflow-x:auto}.widget-todo-filter button{flex:1 0 auto;height:26px;padding:0 8px;border:0;background:transparent;color:var(--ink-soft);font-size:.72rem}.widget-todo-filter button.active{background:var(--accent);color:#fff}.widget-todo-bulkbar{justify-content:space-between;padding:7px 8px;border:1px solid color-mix(in srgb,var(--warning) 28%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--warning-soft) 74%,var(--surface-solid))}.widget-todo-bulkbar button,.widget-todo-bulkbar span{font-size:.72rem}.widget-todo-bulkbar button{height:25px;padding:0 8px}.widget-todo-groups{display:flex;flex-direction:column;gap:9px;min-height:0;overflow:auto}.widget-todo-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;color:var(--ink-soft);font-size:.69rem;font-weight:900}.widget-todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.widget-todo-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-gap:7px;gap:7px;align-items:start;padding:8px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-left:4px solid var(--accent);border-radius:8px;background:color-mix(in srgb,var(--surface-solid) 78%,transparent);transition:background .15s,border-color .15s,transform .15s}.widget-todo-item.priority-high{border-left-color:var(--danger)}.widget-todo-item.priority-medium{border-left-color:var(--warning)}.widget-todo-item.priority-low{border-left-color:var(--info)}.widget-todo-item:hover{border-color:var(--line);background:var(--surface-solid);transform:translateY(-1px)}.widget-todo-item.done{opacity:.62}.widget-todo-item.done .widget-todo-text{text-decoration:line-through;color:var(--ink-soft)}.widget-todo-select{margin:5px 0 0;flex-shrink:0;width:15px;height:15px;accent-color:var(--accent)}.widget-todo-check,.widget-todo-icon-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:var(--surface-solid);color:var(--ink-soft);line-height:1}.widget-todo-check{margin-top:1px;color:var(--accent-strong)}.widget-todo-main{min-width:0}.widget-todo-note,.widget-todo-text{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.widget-todo-text{color:var(--ink);font-size:.82rem;font-weight:800;white-space:nowrap}.widget-todo-note{margin-top:3px;color:var(--ink-soft);font-size:.72rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.widget-todo-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.widget-todo-badge{min-height:19px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--surface-muted) 76%,transparent);color:var(--ink-soft);font-size:.65rem;font-weight:900;white-space:nowrap}.widget-todo-badge.high{background:var(--danger-soft);color:var(--danger)}.widget-todo-badge.medium{background:var(--warning-soft);color:var(--warning-strong)}.widget-todo-badge.low{background:var(--info-soft);color:var(--info)}.widget-todo-badge.focus{background:var(--accent-soft);color:var(--accent-strong)}.widget-todo-badge.overdue{background:var(--danger);color:#fff}.widget-todo-actions{display:flex;gap:4px}.widget-todo-icon-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}@media (max-width:720px){.profile-field-grid,.profile-role-grid,.workbench-cockpit{grid-template-columns:1fr}.cockpit-heading{align-items:stretch;flex-direction:column}.cockpit-metrics,.widget-todo-fields,.widget-todo-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.widget-todo-item{grid-template-columns:auto auto minmax(0,1fr)}.widget-todo-actions{grid-column:3}}.pomodoro-settings{display:flex;gap:12px;margin-bottom:10px;justify-content:center}.pomodoro-setting{display:flex;align-items:center;gap:4px;font-size:.82rem;color:var(--ink-soft);padding:5px 7px;border-radius:7px;background:color-mix(in srgb,var(--surface-muted) 76%,transparent);border:1px solid color-mix(in srgb,var(--line) 80%,transparent)}.pomodoro-setting input{width:48px;text-align:center;border:1px solid var(--line);border-radius:4px;padding:3px 4px;font-size:.84rem;background:var(--surface-soft);color:var(--ink);outline:none}.pomodoro-setting input:focus{border-color:var(--accent)}.pomodoro-timer{position:relative;display:flex;align-items:center;justify-content:center;margin:4px auto 10px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 9%,transparent) 0 46%,transparent 47%)}.pomodoro-ring{width:120px;height:120px;transform:rotate(-90deg)}.pomodoro-ring-bg{fill:none;stroke:color-mix(in srgb,var(--accent) 13%,var(--line));stroke-width:6}.pomodoro-ring-fg{fill:none;stroke:var(--accent-strong);stroke-width:6;stroke-linecap:round;stroke-dasharray:276.46;transition:stroke-dashoffset .5s ease;filter:drop-shadow(0 2px 5px color-mix(in srgb,var(--accent) 28%,transparent))}.pomodoro-time{position:absolute;display:flex;flex-direction:column;align-items:center;gap:1px}.pomodoro-display{font-size:1.6rem;font-weight:900;color:var(--panel-strong);line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pomodoro-phase{font-size:.76rem;font-weight:800;color:var(--ink-soft)}.pomodoro-actions{display:flex;gap:6px;justify-content:center}.pomodoro-body-compact{flex-direction:row!important;align-items:center;gap:8px;padding-top:6px!important}.pomodoro-body-compact .pomodoro-settings{flex-direction:column;gap:4px}.pomodoro-body-compact .pomodoro-timer{margin:0;flex-shrink:0}.pomodoro-body-compact .pomodoro-timer.compact{flex-direction:row;gap:6px}.pomodoro-body-compact .pomodoro-ring.compact{width:60px;height:60px}.pomodoro-body-compact .pomodoro-time.compact{position:static}.pomodoro-body-compact .pomodoro-display.compact{font-size:1.1rem}.pomodoro-body-compact .pomodoro-phase.compact{font-size:.7rem}.pomodoro-body-compact .pomodoro-actions.compact{flex-direction:row;margin-left:auto}.schedule-settings{font-size:.8rem}.schedule-settings-list{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.schedule-settings-item{display:flex;align-items:center;justify-content:space-between;gap:4px;border-radius:4px;padding:3px 4px}.schedule-settings-item.active{background:var(--surface-soft)}.schedule-settings-label{display:flex;align-items:center;gap:6px;cursor:pointer;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-settings-label input[type=radio]{margin:0;accent-color:var(--accent)}.schedule-settings-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-settings-actions{display:flex;gap:2px;flex-shrink:0}.schedule-action-btn{background:none;border:none;cursor:pointer;color:var(--ink-soft);font-size:.78rem;padding:2px 4px;border-radius:3px;line-height:1}.schedule-action-btn:hover{background:var(--surface-hover);color:var(--ink)}.schedule-rename-input{width:80px;font-size:.78rem;padding:2px 4px;border:1px solid var(--border);border-radius:3px;outline:none;background:var(--surface);color:var(--ink)}.schedule-rename-input:focus{border-color:var(--accent)}.schedule-upload-row{display:flex;gap:6px;align-items:center}.schedule-name-input{flex:1 1;font-size:.78rem;padding:4px 6px;border:1px solid var(--border);border-radius:4px;outline:none;background:var(--surface);color:var(--ink);min-width:0}.schedule-name-input:focus{border-color:var(--accent)}.schedule-upload-btn{font-size:.8rem;padding:4px 10px;white-space:nowrap;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer}.schedule-upload-btn:disabled{opacity:.6;cursor:not-allowed}.schedule-upload-btn:hover:not(:disabled){opacity:.9}.next-lesson-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto;align-content:stretch;grid-gap:clamp(10px,2.6cqh,16px);gap:clamp(10px,2.6cqh,16px);min-height:100%;width:100%;padding:clamp(18px,5.2cqh,30px);overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.next-lesson-card:after{content:"";position:absolute;right:clamp(20px,8cqi,64px);bottom:clamp(10px,3cqh,24px);width:clamp(92px,30cqi,164px);height:clamp(50px,15cqh,88px);border:1px solid rgba(177,137,74,.2);border-radius:8px;background:repeating-linear-gradient(80deg,rgba(136,109,63,.09) 0 1px,transparent 1px 18px);transform:rotate(-8deg);opacity:.72;pointer-events:none}.next-lesson-card.is-followed:after{border-color:rgba(31,77,66,.26);background:repeating-linear-gradient(80deg,rgba(31,77,66,.12) 0 1px,transparent 1px 18px)}.next-lesson-status{position:relative;z-index:1;width:-moz-fit-content;width:fit-content;max-width:100%;padding:8px 14px;border:1px solid color-mix(in srgb,#f0a10a 42%,var(--line));border-radius:999px;background:hsla(0,0%,100%,.68);color:#9a6200;font-size:clamp(.78rem,2.2cqh,.95rem);font-weight:900;line-height:1.2;white-space:nowrap}.next-lesson-title{position:relative;z-index:1;align-self:center;max-width:76%;color:#1f3830;font-size:clamp(2.35rem,11cqh,4rem);font-weight:950;line-height:.96;overflow-wrap:anywhere}.next-lesson-meta{position:relative;z-index:1;display:flex;gap:clamp(8px,2cqi,12px);flex-wrap:wrap}.next-lesson-meta span{min-width:0;padding:9px 13px;border-radius:999px;background:hsla(0,0%,100%,.7);color:color-mix(in srgb,#1f3830 88%,var(--ink));font-size:clamp(.78rem,2.2cqh,.95rem);font-weight:900;line-height:1.2}.next-lesson-progress{position:relative;z-index:1;height:10px;overflow:hidden;border-radius:999px;background:rgba(103,92,55,.12)}.next-lesson-progress span{display:block;height:100%;min-width:8%;border-radius:inherit;background:linear-gradient(90deg,#1f4d42,#937d35 64%,#f3ad32)}.next-lesson-actions{position:relative;z-index:1;display:flex;gap:clamp(8px,2cqi,12px);flex-wrap:wrap}.next-lesson-actions button{min-height:46px;padding:0 clamp(14px,4cqi,22px);border:1px solid rgba(31,77,66,.14);border-radius:8px;background:hsla(0,0%,100%,.78);color:#1f3830;font-weight:900;cursor:default;box-shadow:0 10px 18px rgba(34,48,41,.07)}.next-lesson-followed{min-height:46px;display:inline-flex;align-items:center;padding:0 14px;border-radius:8px;background:rgba(31,77,66,.12);color:#1f4d42;font-size:.86rem;font-weight:950;white-space:nowrap}.next-lesson-actions button:first-child{background:#1f4d42;color:#fff;border-color:#1f4d42}.next-lesson-empty{width:100%;min-height:100%;display:grid;place-content:center;grid-gap:8px;gap:8px;text-align:center;border:1px dashed color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface-solid) 84%,var(--accent-soft))}.next-lesson-empty span{color:var(--ink-soft);font-weight:800}.next-lesson-empty strong{color:var(--panel-strong);font-size:1.05rem}@container next-lesson-widget (max-height: 230px){.next-lesson-card{grid-template-rows:auto auto auto auto;gap:8px;padding:14px}.next-lesson-title{max-width:100%;font-size:clamp(1.45rem,7cqh,2.05rem)}.next-lesson-progress{display:none}.next-lesson-meta span{padding:6px 10px}.next-lesson-actions button{min-height:34px;padding:0 12px}.next-lesson-followed{min-height:34px;padding:0 10px}}@container next-lesson-widget (max-width: 360px){.next-lesson-title{max-width:100%;font-size:clamp(1.9rem,9cqh,2.85rem)}.next-lesson-actions button{flex:1 1 96px}}.sched-dayline{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;gap:clamp(8px,2.2cqh,14px);padding:clamp(4px,1.2cqh,8px) 0 clamp(6px,1.6cqh,10px);overflow:auto;scroll-snap-type:y proximity}.sched-dayline:before{content:"";position:absolute;left:15px;top:10px;bottom:10px;width:2px;border-radius:999px;background:linear-gradient(to bottom,color-mix(in srgb,var(--line-strong) 46%,transparent),color-mix(in srgb,#f0a10a 58%,var(--accent)));opacity:.78}.sched-day-row{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;min-height:clamp(54px,15cqh,76px);scroll-snap-align:center}.sched-day-marker{position:relative;z-index:1;justify-self:center;width:12px;height:12px;border-radius:999px;border:2px solid color-mix(in srgb,var(--line-strong) 72%,transparent);background:color-mix(in srgb,var(--surface-solid) 82%,var(--line));box-shadow:0 0 0 5px color-mix(in srgb,var(--surface-solid) 72%,transparent)}.sched-day-card{min-width:0;border-radius:14px;padding:clamp(9px,2.5cqh,14px) clamp(13px,3.2cqi,18px);background:color-mix(in srgb,var(--surface-solid) 86%,transparent);border:1px solid transparent;box-shadow:0 8px 18px rgba(50,50,93,.04)}.sched-day-meta{display:flex;align-items:center;gap:5px;min-width:0;color:color-mix(in srgb,var(--muted) 78%,var(--ink));font-size:clamp(.76rem,2.25cqh,.92rem);font-weight:850;line-height:1.2;white-space:nowrap}.sched-day-meta span:not(:first-child):before{content:"·";margin-right:5px;color:color-mix(in srgb,currentColor 54%,transparent)}.sched-day-card strong{display:block;margin-top:clamp(3px,.9cqh,6px);overflow:hidden;color:var(--ink);font-size:clamp(1rem,3.1cqh,1.34rem);font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.sched-day-row-past{opacity:.42}.sched-day-row-past .sched-day-card{box-shadow:none}.sched-day-row-current{opacity:1}.sched-day-row-current .sched-day-marker{width:18px;height:18px;border-color:#6fb2e8;background:#6fb2e8;box-shadow:0 0 0 5px color-mix(in srgb,#6fb2e8 22%,var(--surface-solid))}.sched-day-row-current .sched-day-card{background:linear-gradient(135deg,color-mix(in srgb,#d9f1fb 76%,var(--surface-solid)),color-mix(in srgb,#cde8f3 76%,var(--surface-solid)));border-color:color-mix(in srgb,#6fb2e8 34%,transparent);box-shadow:0 12px 24px color-mix(in srgb,#4e95d8 14%,transparent)}.sched-day-row-current .sched-day-meta{color:#3277b7}.sched-day-row-next .sched-day-marker{width:18px;height:18px;border-color:#f0a10a;background:#ffc949;box-shadow:0 0 0 5px color-mix(in srgb,#ffc949 24%,var(--surface-solid))}.sched-day-row-next .sched-day-card{background:linear-gradient(145deg,color-mix(in srgb,#fff5df 78%,var(--surface-solid)),color-mix(in srgb,#fffaf0 82%,var(--surface-solid)));border-color:color-mix(in srgb,#f0a10a 48%,transparent);box-shadow:0 12px 26px rgba(240,161,10,.14),inset 0 1px 0 hsla(0,0%,100%,.72)}.sched-day-row-next .sched-day-meta{color:#bd7400}.sched-day-countdown{margin-left:auto;color:#bd7400}.sched-day-countdown:before{content:none!important}.sched-starred .sched-day-card{border-color:var(--accent);box-shadow:0 9px 24px color-mix(in srgb,var(--accent) 14%,transparent)}.sched-timeline{position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;min-height:0;height:100%;gap:clamp(5px,2cqh,13px);padding:clamp(2px,.9cqh,7px) 0}.sched-timeline:before{content:"";position:absolute;left:13px;top:16px;bottom:16px;width:2px;border-radius:999px;background:linear-gradient(to bottom,color-mix(in srgb,var(--line-strong) 54%,transparent),color-mix(in srgb,var(--accent) 44%,var(--line)));opacity:.6}.sched-row{display:flex;gap:clamp(4px,2cqi,10px);align-items:stretch;min-height:0}.sched-tl-col{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:28px;padding-top:clamp(12px,4.2cqh,20px)}.sched-dot{display:block;width:clamp(8px,3cqi,14px);height:clamp(8px,3cqi,14px);border-radius:50%;background:var(--surface-solid);border:2px solid color-mix(in srgb,var(--line-strong) 84%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--surface-solid) 72%,transparent);flex-shrink:0}.sched-row-dim2 .sched-dot{background:color-mix(in srgb,var(--ink-soft) 20%,var(--surface-solid));border-color:color-mix(in srgb,var(--ink-soft) 30%,var(--border))}.sched-dot-live{width:clamp(10px,3.5cqi,16px);height:clamp(10px,3.5cqi,16px);box-shadow:0 0 0 clamp(2px,.8cqi,5px) color-mix(in srgb,var(--accent) 20%,transparent)}.sched-dot-live,.sched-dot-next{background:var(--accent);border-color:var(--accent)}.sched-dot-next{width:clamp(12px,4cqi,18px);height:clamp(12px,4cqi,18px);box-shadow:0 0 0 clamp(3px,1cqi,6px) color-mix(in srgb,var(--accent) 15%,transparent),0 0 clamp(6px,2cqi,14px) color-mix(in srgb,var(--accent) 20%,transparent)}.sched-row-dim3{opacity:.25;filter:blur(.5px)}.sched-row-dim2{opacity:.45}.sched-row-current{opacity:1}.sched-card{flex:1 1;min-width:0;position:relative;display:flex;align-items:center;gap:clamp(8px,2.5cqi,14px);padding:clamp(8px,2.7cqh,18px) clamp(10px,3cqi,18px);border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface-solid) 96%,var(--accent-soft)),color-mix(in srgb,var(--surface-muted) 88%,var(--surface-solid)));border:1px solid color-mix(in srgb,var(--line-strong) 76%,transparent);margin-bottom:0;box-shadow:0 8px 20px rgba(50,50,93,.08),inset 0 1px 0 hsla(0,0%,100%,.68);overflow:hidden}.sched-card:after{content:"";position:absolute;top:0;right:0;width:42%;height:100%;pointer-events:none;background:linear-gradient(120deg,transparent,color-mix(in srgb,var(--accent) 6%,transparent))}.sched-card strong,.sched-card-label,.sched-card-side,.sched-chip-row,.sched-countdown,.sched-course-icon,.sched-course-main,.sched-follow-badge,.sched-live-badge,.sched-prepare-btn{position:relative;z-index:1}.sched-row-dim2 .sched-card,.sched-row-dim3 .sched-card{background:color-mix(in srgb,var(--surface-muted) 66%,var(--surface-solid));box-shadow:0 5px 14px rgba(50,50,93,.04),inset 0 1px 0 hsla(0,0%,100%,.52)}.sched-row-current .sched-card{border-color:color-mix(in srgb,#4e95d8 54%,var(--line-strong));background:linear-gradient(135deg,color-mix(in srgb,#4e95d8 14%,var(--surface-solid)),color-mix(in srgb,var(--surface-solid) 92%,#dbeeff));box-shadow:0 10px 26px color-mix(in srgb,#4e95d8 18%,rgba(50,50,93,.08)),inset 0 1px 0 hsla(0,0%,100%,.72)}.sched-starred .sched-card{border-color:var(--accent);box-shadow:0 9px 24px color-mix(in srgb,var(--accent) 14%,transparent)}.sched-card-label{display:inline-flex;align-items:center;font-size:clamp(.7rem,2.2cqh,.96rem);font-weight:800;color:var(--ink-soft);letter-spacing:0}.sched-row-current .sched-card-label{color:#3277b7}.sched-row-next .sched-card-label{font-size:clamp(.78rem,2.5cqh,1.05rem)}.sched-card strong{display:block;margin-top:clamp(3px,.9cqh,7px);font-size:clamp(.98rem,3.1cqh,1.42rem);font-weight:900;color:var(--ink);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sched-course-icon{display:inline-flex;align-items:center;justify-content:center;width:clamp(34px,8.5cqh,54px);height:clamp(34px,8.5cqh,54px);flex:0 0 auto;border-radius:999px;background:color-mix(in srgb,var(--accent) 13%,var(--surface-solid));color:color-mix(in srgb,var(--accent) 76%,var(--ink));border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);font-size:clamp(.82rem,2.6cqh,1.15rem);font-weight:900;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.72)}.sched-card-current .sched-course-icon{background:linear-gradient(145deg,#6fb2e8,#3277b7);color:#fff;box-shadow:0 7px 16px rgba(50,119,183,.25),inset 0 1px 0 hsla(0,0%,100%,.45)}.sched-card-break{justify-content:center;min-height:clamp(54px,13cqh,90px);border-color:color-mix(in srgb,#60a58b 48%,var(--line-strong));background:linear-gradient(135deg,color-mix(in srgb,#dff5ec 52%,var(--surface-solid)),color-mix(in srgb,var(--surface-solid) 90%,#dff5ec));box-shadow:0 10px 24px rgba(68,143,112,.14),inset 0 1px 0 hsla(0,0%,100%,.72)}.sched-card-break .sched-course-main{text-align:center}.sched-card-break .sched-chip-row{justify-content:center}.sched-countdown-chip{border-color:color-mix(in srgb,#f0a10a 24%,transparent);background:color-mix(in srgb,#fff5df 72%,var(--surface-solid));color:#bd7400}.sched-card-break .sched-course-icon{background:linear-gradient(145deg,#7bc6a9,#3d9674);color:#fff;box-shadow:0 7px 16px rgba(61,150,116,.22),inset 0 1px 0 hsla(0,0%,100%,.44)}.sched-card-break .sched-card-label,.sched-row-break .sched-card-label{color:#2f7f62}.sched-card-break .sched-live-badge{background:color-mix(in srgb,#60a58b 18%,var(--surface-solid));color:#2f7f62;border-color:color-mix(in srgb,#60a58b 28%,transparent)}.sched-card-next .sched-course-icon{background:linear-gradient(145deg,#ffc949,#f0a10a);color:#fff;box-shadow:0 7px 16px rgba(240,161,10,.25),inset 0 1px 0 hsla(0,0%,100%,.48)}.sched-course-main{flex:1 1;min-width:0}.sched-card-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;flex:0 0 auto}.sched-chip-row{display:flex;flex-wrap:wrap;gap:clamp(5px,1.5cqh,9px);margin-top:clamp(6px,1.6cqh,11px)}.sched-info-chip{display:inline-flex;align-items:center;justify-content:center;min-width:0;max-width:100%;padding:clamp(4px,1.1cqh,7px) clamp(8px,2cqi,13px);border-radius:7px;border:1px solid color-mix(in srgb,var(--line-strong) 58%,transparent);background:color-mix(in srgb,var(--surface-solid) 84%,transparent);color:var(--ink);font-size:clamp(.82rem,2.35cqh,1.02rem);font-weight:850;white-space:nowrap}.sched-time-chip{flex:0 0 auto;font-size:clamp(.88rem,2.55cqh,1.08rem);color:var(--panel-strong)}.sched-live-badge{display:inline-flex;align-items:center;justify-content:center;margin-top:0;padding:clamp(4px,1.1cqh,7px) clamp(7px,2cqi,12px);border-radius:8px;background:color-mix(in srgb,#4e95d8 18%,var(--surface-solid));font-size:clamp(.7rem,2cqh,.9rem);font-weight:800;color:#3277b7;border:1px solid color-mix(in srgb,#4e95d8 28%,transparent)}.sched-follow-badge{padding:clamp(1px,.3cqi,2px) clamp(4px,1.5cqi,8px);border-radius:8px;background:var(--accent);color:var(--button-text);font-size:clamp(.52rem,1.8cqi,.7rem);font-weight:800;margin-top:0;box-shadow:0 1px 4px color-mix(in srgb,var(--accent) 25%,transparent)}.sched-card-next{align-items:flex-start;border:1px solid color-mix(in srgb,#f0a10a 72%,var(--line-strong));background:linear-gradient(145deg,color-mix(in srgb,#fff5df 72%,var(--surface-solid)),color-mix(in srgb,#fffaf0 76%,var(--surface-solid)));padding:clamp(13px,3.8cqh,24px) clamp(12px,3.5cqi,20px);box-shadow:0 14px 28px rgba(240,161,10,.18),inset 0 1px 0 hsla(0,0%,100%,.78)}.sched-next-subject{font-size:clamp(1.25rem,4.4cqh,1.9rem)!important;margin-top:clamp(3px,1cqh,7px)!important}.sched-countdown{display:inline-flex;align-items:center;justify-content:center;margin-top:0;padding:clamp(4px,1.1cqh,7px) clamp(7px,2.5cqi,13px);border-radius:8px;background:color-mix(in srgb,#f0a10a 13%,var(--surface-solid));color:#bd7400;font-size:clamp(.7rem,2.05cqh,.92rem);font-weight:800;border:1px solid color-mix(in srgb,#f0a10a 24%,transparent)}.sched-prepare-btn{width:100%;margin-top:clamp(9px,2.2cqh,15px);min-height:clamp(34px,8.5cqh,52px);border:0;gap:9px;background:linear-gradient(180deg,#ffc33a,#f0a10a);color:#fff;font-size:clamp(.92rem,2.9cqh,1.2rem);font-weight:900;box-shadow:0 10px 18px rgba(240,161,10,.26),inset 0 1px 0 hsla(0,0%,100%,.58);cursor:default}.sched-prepare-btn,.sched-prepare-btn span{border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.sched-prepare-btn span{width:18px;height:18px;background:hsla(0,0%,100%,.9);color:#f0a10a;font-size:.66rem}@container schedule-widget (max-height: 310px){.sched-timeline{flex-direction:row;justify-content:flex-start;align-items:stretch;gap:clamp(8px,2.4cqw,14px);padding:4px 1px 8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity}.sched-timeline:before{display:none}.sched-row{flex:0 0 clamp(148px,calc(var(--sched-minutes, 40) * 4.4px),280px);flex-direction:column;gap:6px;scroll-snap-align:start;position:relative}.sched-row-break{flex-basis:clamp(116px,calc(var(--sched-minutes, 10) * 6px),170px)}.sched-row:not(:last-child):after{content:"";position:absolute;left:20px;right:calc(-1 * clamp(8px, 2.4cqw, 14px) - 20px);top:13px;height:2px;border-radius:999px;background:color-mix(in srgb,var(--accent) 36%,var(--line-strong));z-index:0}.sched-row-break:not(:last-child):after,.sched-row-current:not(:last-child):after{background:repeating-linear-gradient(to right,color-mix(in srgb,#f0a10a 58%,var(--line-strong)) 0 7px,transparent 7px 13px)}.sched-row-dim3{display:none}.sched-row-dim2{opacity:.72}.sched-tl-col{width:100%;height:24px;padding-top:5px;align-items:flex-start;padding-left:10px;position:relative;z-index:1}.sched-card{height:100%;align-items:center;gap:clamp(7px,2cqw,12px);padding:clamp(8px,3cqh,12px) clamp(9px,2.6cqw,14px)}.sched-card,.sched-card-break{min-height:0;flex-direction:row}.sched-card-break{padding-inline:clamp(8px,2.2cqw,12px)}.sched-card-break .sched-chip-row{flex-direction:column;align-items:center;gap:5px}.sched-card-next{align-items:center;padding:clamp(9px,3.2cqh,13px) clamp(10px,2.8cqw,15px)}.sched-course-icon{width:clamp(34px,12cqh,44px);height:clamp(34px,12cqh,44px)}.sched-card strong{font-size:clamp(1rem,4.2cqh,1.28rem)}.sched-next-subject{font-size:clamp(1.08rem,4.7cqh,1.42rem)!important}.sched-chip-row{gap:5px;margin-top:clamp(5px,1.8cqh,8px)}.sched-info-chip,.sched-time-chip{font-size:clamp(.84rem,3.4cqh,.98rem);padding:clamp(4px,1.5cqh,6px) clamp(7px,2cqw,11px)}.sched-card-side{align-self:stretch;justify-content:flex-start;padding-top:2px}.sched-countdown,.sched-live-badge{font-size:clamp(.7rem,2.8cqh,.86rem)}.sched-prepare-btn{min-height:clamp(30px,10cqh,40px);margin-top:clamp(7px,2.4cqh,10px);font-size:clamp(.88rem,3.5cqh,1.04rem)}}@container schedule-widget (max-height: 230px){.sched-row{flex-basis:clamp(168px,calc(var(--sched-minutes, 40) * 4.8px),300px)}.sched-row-break{flex-basis:clamp(120px,calc(var(--sched-minutes, 10) * 6.4px),180px)}.sched-card{flex-direction:row;align-items:stretch}.sched-card-side{justify-content:center}.sched-card-next{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center}.sched-card-next .sched-course-icon{grid-column:1;grid-row:1/span 2}.sched-card-next .sched-course-main{grid-column:2;min-width:0}.sched-card-next .sched-card-side{grid-column:2;align-items:flex-start;align-self:start;padding-top:3px}.sched-card-label{font-size:clamp(.68rem,3.1cqh,.82rem)}.sched-chip-row{flex-wrap:nowrap}.sched-time-chip{padding-inline:6px;font-size:clamp(.78rem,3.1cqh,.92rem)}.sched-card-next .sched-time-chip{justify-content:flex-start;max-width:none;padding-inline:0;border-color:transparent;background:transparent;color:#7d5b16;font-weight:900}.sched-card-next .sched-countdown{padding:3px 7px;font-size:clamp(.64rem,2.7cqh,.78rem)}.sched-info-chip{max-width:100%}.sched-prepare-btn{width:auto;min-width:112px;padding-inline:14px}}.sched-done{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:20px 0}.sched-done-icon{font-size:2.4rem;line-height:1}.cal-detail-body,.cal-widget-body{height:100%;min-height:0;display:flex;flex-direction:column;gap:clamp(6px,1.5cqi,12px);padding:clamp(6px,1.6cqi,12px)}.cal-widget-body{container-type:size;container-name:calendar-widget}.cal-toolbar{display:grid;grid-template-columns:34px minmax(0,1fr) 34px auto;grid-gap:8px;gap:8px;align-items:center}.cal-nav-btn,.cal-today-btn{height:34px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface-solid) 84%,transparent);color:var(--accent-strong);font-weight:900}.cal-nav-btn{width:34px;font-size:1.25rem;line-height:1}.cal-today-btn{padding-inline:11px;background:color-mix(in srgb,var(--accent) 88%,var(--accent-raised));color:var(--button-text)}.cal-title-block{min-width:0;text-align:center}.cal-title-block strong{display:block;color:var(--panel-strong);font-size:clamp(.98rem,3.5cqi,2rem);line-height:1.1}.cal-title-block span{display:block;margin-top:2px;overflow:hidden;color:var(--ink-soft);font-size:clamp(.58rem,1.85cqi,1rem);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.cal-month-grid,.cal-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-week-grid{gap:5px;padding-inline:2px}.cal-week-grid span{color:var(--ink-soft);font-size:clamp(.58rem,1.8cqi,1rem);font-weight:900;text-align:center}.cal-month-grid{flex:1 1;min-height:0;gap:clamp(3px,.8cqi,6px);grid-template-rows:repeat(var(--cal-visible-weeks,6),minmax(0,1fr))}.cal-day-cell{min-width:0;min-height:0;padding:clamp(4px,1.2cqi,10px);display:flex;flex-direction:column;gap:clamp(2px,.6cqi,5px);border:1px solid color-mix(in srgb,var(--accent) 9%,var(--line));border-radius:clamp(6px,1.2cqi,10px);background:color-mix(in srgb,var(--surface-solid) 72%,transparent);color:var(--ink);text-align:left;overflow:hidden}.cal-day-cell.is-outside{opacity:.46}.cal-day-cell.is-today{border-color:color-mix(in srgb,var(--warning) 52%,var(--line));background:color-mix(in srgb,var(--warning-soft) 44%,var(--surface-solid))}.cal-day-cell.is-selected{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent);background:color-mix(in srgb,var(--surface-solid) 92%,var(--accent-soft))}.cal-cell-top{display:flex;align-items:baseline;justify-content:space-between;gap:4px;min-width:0}.cal-cell-top strong{font-size:clamp(.86rem,3cqi,1.8rem);line-height:1}.cal-cell-top em{min-width:0;font-size:clamp(.5rem,1.8cqi,1rem);font-style:normal}.cal-cell-note,.cal-cell-top em{color:var(--ink-soft);font-weight:800;white-space:nowrap}.cal-cell-note{margin-top:auto;font-size:clamp(.5rem,1.7cqi,.95rem)}@container calendar-widget (max-width: 360px), calendar-widget (max-height: 310px){.cal-cell-note,.cal-mini-summary,.cal-title-block span{display:none}}.cal-widget-body[data-visible-weeks="2"] .cal-cell-note,.cal-widget-body[data-visible-weeks="2"] .cal-mini-summary,.cal-widget-body[data-visible-weeks="2"] .cal-title-block span,.cal-widget-body[data-visible-weeks="2"] .cal-today-btn,.cal-widget-body[data-visible-weeks="3"] .cal-cell-note,.cal-widget-body[data-visible-weeks="3"] .cal-mini-summary,.cal-widget-body[data-visible-weeks="3"] .cal-title-block span,.cal-widget-body[data-visible-weeks="3"] .cal-today-btn,.cal-widget-body[data-visible-weeks="4"] .cal-cell-note,.cal-widget-body[data-visible-weeks="4"] .cal-mini-summary,.cal-widget-body[data-visible-weeks="4"] .cal-title-block span{display:none}.cal-widget-body[data-visible-weeks="2"] .cal-toolbar,.cal-widget-body[data-visible-weeks="3"] .cal-toolbar{grid-template-columns:30px minmax(0,1fr) 30px}.cal-widget-body[data-visible-weeks="2"] .cal-cell-top em,.cal-widget-body[data-visible-weeks="3"] .cal-cell-top em{display:none}.cal-widget-body[data-visible-weeks="2"] .cal-day-cell,.cal-widget-body[data-visible-weeks="3"] .cal-day-cell{align-items:center;justify-content:center;padding:2px;text-align:center}.cal-widget-body[data-visible-weeks="2"] .cal-cell-top,.cal-widget-body[data-visible-weeks="3"] .cal-cell-top{justify-content:center}@container calendar-widget (max-width: 285px), calendar-widget (max-height: 255px){.cal-toolbar{grid-template-columns:30px minmax(0,1fr) 30px;gap:6px}.cal-today-btn{display:none}.cal-month-grid,.cal-week-grid{gap:3px}.cal-day-cell{align-items:center;padding:2px;text-align:center}.cal-cell-top,.cal-day-cell{justify-content:center}.cal-cell-top em{display:none}}@container calendar-widget (max-width: 230px), calendar-widget (max-height: 210px){.cal-widget-body{gap:5px;padding:6px}.cal-toolbar{grid-template-columns:26px minmax(0,1fr) 26px}.cal-nav-btn{width:26px;height:26px}.cal-title-block strong{font-size:.82rem}.cal-week-grid span{font-size:.52rem}.cal-cell-top strong{font-size:.78rem}}.cal-mini-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.cal-mini-summary>div{min-width:0;padding:8px;border:1px solid color-mix(in srgb,var(--accent) 10%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface-muted) 54%,transparent)}.cal-detail-item span,.cal-detail-title span,.cal-mini-summary span,.cal-section-title span{font-size:clamp(.55rem,2.1cqi,.9rem);color:var(--ink-soft);font-weight:900;white-space:nowrap}.cal-mini-summary strong{font-size:clamp(.7rem,2.4cqi,1.1rem)}.cal-detail-hero{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:12px;gap:12px;align-items:center}.cal-detail-day{width:clamp(58px,17cqi,76px);height:clamp(62px,18cqi,82px);display:grid;place-items:center;border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,var(--accent-raised)),var(--accent));color:var(--button-text);font-size:clamp(2rem,7cqi,3rem);font-weight:950;line-height:1}.cal-detail-title{min-width:0}.cal-detail-title strong{display:block;color:var(--panel-strong);font-size:clamp(.98rem,3.3cqi,1.24rem);line-height:1.18}.cal-detail-title span{display:block;margin-top:5px;line-height:1.45}.cal-detail-chips{display:flex;flex-wrap:wrap;gap:6px}.cal-detail-chips span{max-width:100%;padding:4px 7px;border:1px solid color-mix(in srgb,var(--accent) 10%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--surface-solid) 68%,transparent);color:var(--ink-soft);font-size:clamp(.56rem,1.8cqi,.68rem);font-weight:900}.cal-detail-chips .is-gold{border-color:color-mix(in srgb,var(--warning) 28%,var(--line));background:var(--warning-soft);color:#8f6508}.cal-detail-chips .is-red{border-color:color-mix(in srgb,var(--danger) 24%,var(--line));background:var(--danger-soft);color:var(--danger)}.cal-detail-section{min-height:0;display:flex;flex:1 1;flex-direction:column;gap:8px}.cal-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.cal-section-title strong{color:var(--panel-strong);font-size:clamp(.78rem,2.4cqi,.94rem)}.cal-detail-list{min-height:0;overflow:auto;display:grid;grid-gap:7px;gap:7px}.cal-detail-item{display:grid;grid-template-columns:48px minmax(0,1fr);grid-gap:8px;gap:8px;padding:8px;border:1px solid color-mix(in srgb,var(--accent) 10%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface-solid) 66%,transparent)}.cal-detail-item time{color:var(--accent-strong);font-size:clamp(.58rem,1.8cqi,.7rem);font-weight:950}.cal-detail-item strong{display:block;color:var(--panel-strong);font-size:clamp(.68rem,2.1cqi,.82rem)}.cal-detail-item span{display:block;margin-top:3px;line-height:1.45}