/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */:root{--palette-brand-50:#eef6f5;--palette-brand-100:#d6ebe8;--palette-brand-200:#aed6d1;--palette-brand-300:#7fbdb6;--palette-brand-400:#4f9f97;--palette-brand-500:#2e847c;--palette-brand-600:#1f6b65;--palette-brand-700:#185752;--palette-brand-800:#134541;--palette-brand-900:#0e3431;--palette-ink-900:#1f2328;--palette-ink-700:#3d434b;--palette-ink-600:#545b64;--palette-ink-500:#656c75;--palette-ink-400:#8c939b;--palette-ink-300:#c4c9cf;--palette-ink-200:#dee2e6;--palette-ink-100:#eceef1;--palette-ink-50:#f5f6f8;--palette-white:#fff;--palette-green-600:#2e7d4f;--palette-green-700:#256b43;--palette-green-50:#eaf5ee;--palette-green-200:#bfe0cb;--palette-amber-500:#c29a45;--palette-amber-800:#6e5320;--palette-amber-50:#f8f3e7;--palette-amber-200:#e4d2a8;--palette-red-600:#a8443c;--palette-red-700:#8e3a33;--palette-red-50:#f7efed;--palette-red-200:#ddbab4;--palette-blue-600:#33699b;--palette-blue-700:#285a87;--palette-blue-50:#eaf2fa;--palette-blue-100:#dce8f4;--palette-blue-200:#c4daef;--palette-violet-600:#6a5aae;--palette-violet-700:#56469a;--palette-violet-50:#f3f0fb;--palette-slate-600:#5b6676;--palette-slate-700:#455060;--palette-slate-50:#eef0f3;--palette-slate-200:#cdd3dc;--color-primary:var(--palette-brand-600);--color-primary-hover:var(--palette-brand-700);--color-primary-active:var(--palette-brand-800);--color-primary-soft:var(--palette-brand-50);--color-primary-soft-hover:var(--palette-brand-100);--color-primary-border:var(--palette-brand-200);--color-primary-text:var(--palette-brand-700);--color-ai:var(--palette-blue-600);--color-ai-hover:var(--palette-blue-700);--color-ai-soft:var(--palette-blue-50);--color-ai-soft-hover:var(--palette-blue-100);--color-ai-border:var(--palette-blue-200);--color-accent:#b7892f;--color-accent-soft:#fbf4e4;--color-accent-text:#7a5a12;--bg-app:#f4f7f6;--bg-sidebar:var(--bg-app);--bg-main:var(--palette-white);--bg-card:var(--palette-white);--bg-soft:var(--palette-ink-50);--bg-hover:var(--palette-ink-50);--bg-active:var(--palette-ink-100);--bg-disabled:var(--palette-ink-50);--bg-mask:#1f232852;--text-primary:var(--palette-ink-900);--text-secondary:var(--palette-ink-600);--text-tertiary:var(--palette-ink-500);--text-placeholder:var(--palette-ink-500);--text-disabled:var(--palette-ink-400);--text-inverse:var(--palette-white);--border-color:var(--palette-ink-200);--border-light:var(--palette-ink-100);--border-dark:var(--palette-ink-300);--border-control:var(--palette-ink-400);--scrollbar-thumb:var(--palette-ink-300);--scrollbar-thumb-hover:var(--palette-ink-400);--color-success:var(--palette-green-600);--color-success-soft:var(--palette-green-50);--color-success-border:var(--palette-green-200);--color-success-text:var(--palette-green-700);--color-warning:var(--palette-amber-500);--color-warning-soft:var(--palette-amber-50);--color-warning-border:var(--palette-amber-200);--color-warning-text:var(--palette-amber-800);--color-warning-on-solid:var(--palette-ink-900);--color-danger:var(--palette-red-600);--color-danger-hover:var(--palette-red-700);--color-danger-soft:var(--palette-red-50);--color-danger-border:var(--palette-red-200);--color-danger-text:var(--palette-red-700);--color-error:var(--color-danger);--color-error-soft:var(--color-danger-soft);--color-error-border:var(--color-danger-border);--color-error-text:var(--color-danger-text);--color-info:var(--color-primary);--color-info-soft:var(--color-primary-soft);--color-info-border:var(--color-primary-border);--color-info-text:var(--color-primary-text);--color-success-solid:var(--color-success);--color-warning-solid:var(--color-warning);--color-danger-solid:var(--color-danger);--color-error-solid:var(--color-danger);--color-info-solid:var(--color-info);--color-draft:var(--palette-violet-600);--color-draft-soft:var(--palette-violet-50);--color-draft-border:var(--palette-violet-600);--color-draft-text:var(--palette-violet-700);--border-draft:1px dashed var(--color-draft-border);--color-locked:var(--palette-slate-600);--color-locked-soft:var(--palette-slate-50);--color-locked-border:var(--palette-slate-200);--color-locked-text:var(--palette-slate-700);--border-locked:1px solid var(--color-locked-border);--color-draft-solid:var(--color-draft);--color-locked-solid:var(--color-locked);--status-todo-fg:var(--color-locked-text);--status-todo-bg:var(--color-locked-soft);--status-preparing-fg:var(--color-info-text);--status-preparing-bg:var(--color-info-soft);--status-ready-fg:var(--color-success-text);--status-ready-bg:var(--color-success-soft);--status-upcoming-fg:var(--color-primary-text);--status-upcoming-bg:var(--color-primary-soft);--status-live-fg:var(--text-inverse);--status-live-bg:var(--color-success);--status-pending-fg:var(--color-warning-text);--status-pending-bg:var(--color-warning-soft);--status-finished-fg:var(--palette-ink-600);--status-finished-bg:var(--palette-ink-50);--status-risk-fg:var(--color-danger-text);--status-risk-bg:var(--color-danger-soft);--font-family:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei UI","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;--font-family-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;--font-family-mono:"JetBrains Mono","Cascadia Mono",Consolas,ui-monospace,monospace;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:14px;--font-size-body:14px;--font-size-md:15px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-title:24px;--font-size-display:30px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.35;--line-height-ui:1.5;--line-height-body:1.7;--font-size-h1:var(--font-size-2xl);--font-size-h2:var(--font-size-lg);--font-size-h3:var(--font-size-md);--font-size-dialog:var(--font-size-xl);--font-size-help:var(--font-size-sm);--font-size-table:var(--font-size-sm);--font-size-caption:var(--font-size-xs);--font-size-stat:var(--font-size-title);--line-height-h:1.4;--math-font-scale:1.06em;--math-display-margin:.5em 0;--math-color:var(--text-primary);--math-error-bg:var(--color-error-soft);--radius-2xs:4px;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-round:999px;--radius-control:var(--radius-sm);--radius-card:var(--radius-md);--shadow-xs:0 1px 2px #1f23280d;--shadow-sm:0 1px 2px #1f23280a,0 2px 8px #1f23280d;--shadow-md:0 4px 16px #1f232814;--shadow-lg:0 16px 40px #1f232824;--focus-ring:0 0 0 2px var(--palette-white),0 0 0 4px var(--color-primary);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--sidebar-width:224px;--sidebar-width-collapsed:64px;--header-height:56px;--topbar-height:var(--header-height);--content-max-width:1440px;--control-height:36px;--control-height-sm:28px;--control-height-md:var(--control-height);--control-height-lg:44px;--button-padding-x-sm:10px;--button-padding-x-md:16px;--button-padding-x-lg:24px;--button-font-sm:var(--font-size-sm);--button-font-md:var(--font-size-base);--button-font-lg:var(--font-size-lg);--icon-size-sm:14px;--icon-size-md:16px;--icon-size-lg:18px;--tag-height:22px;--row-height:44px;--card-padding:var(--space-5);--disabled-opacity:.5;--duration-fast:.12s;--duration-normal:.18s;--duration-slow:.26s;--ease-standard:cubic-bezier(.2,.8,.2,1);--z-dropdown:1000;--z-sticky:1100;--z-mask:1500;--z-modal:1600;--z-toast:2000}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-normal:0s;--duration-slow:0s}}:root[data-app=teacher],[data-app=teacher]{--color-primary:#1f6b65;--color-primary-hover:#185752;--color-primary-active:#134541;--color-primary-soft:#eef6f5;--color-primary-soft-hover:#d6ebe8;--color-primary-border:#aed6d1;--color-primary-text:#185752;--bg-app:#f4f7f6;--color-accent:#b7892f;--color-accent-soft:#fbf4e4;--color-accent-text:#7a5a12;--font-size-body:14px;--line-height-body:1.7;--control-height:36px;--radius-control:var(--radius-sm);--radius-card:var(--radius-md);--font-size-h1:20px;--font-size-h2:16px;--font-size-h3:15px;--font-size-help:13px;--font-size-table:13px;--font-size-caption:12px;--font-size-stat:24px;--control-height-sm:28px;--control-height-lg:44px;--button-font-md:14px;--tag-height:22px;--row-height:44px;--card-padding:20px}:root[data-app=student],[data-app=student]{--color-primary:#20766e;--color-primary-hover:#1a635c;--color-primary-active:#165b55;--color-primary-soft:#e8f5f3;--color-primary-soft-hover:#dcf0ed;--color-primary-border:#a6dad3;--color-primary-text:#165b55;--bg-app:#f2f8f7;--color-accent:#c9974a;--color-accent-soft:#fbf3e6;--color-accent-text:#76542a;--font-size-body:15px;--line-height-body:1.7;--control-height:40px;--radius-control:var(--radius-sm);--radius-card:var(--radius-lg);--font-size-h1:24px;--font-size-h2:18px;--font-size-h3:16px;--font-size-help:13px;--font-size-table:14px;--font-size-caption:12px;--font-size-stat:30px;--control-height-sm:32px;--control-height-lg:48px;--button-font-md:15px;--tag-height:22px;--row-height:48px;--card-padding:20px}:root[data-app=parent],[data-app=parent]{--color-primary:#1f6b65;--color-primary-hover:#185752;--color-primary-active:#134541;--color-primary-soft:#eef6f5;--color-primary-soft-hover:#d6ebe8;--color-primary-border:#aed6d1;--color-primary-text:#185752;--bg-app:#faf7f1;--color-accent:#b9783a;--color-accent-soft:#f9efe5;--color-accent-text:#7e4a22;--font-size-body:16px;--line-height-body:1.8;--control-height:44px;--radius-control:var(--radius-sm);--radius-card:var(--radius-md);--font-size-h1:24px;--font-size-h2:18px;--font-size-h3:16px;--font-size-help:14px;--font-size-table:15px;--font-size-caption:13px;--font-size-stat:30px;--control-height-sm:36px;--control-height-lg:52px;--button-font-md:16px;--tag-height:22px;--row-height:48px;--card-padding:20px}:root[data-app=admin],[data-app=admin]{--color-primary:#2a5552;--color-primary-hover:#214542;--color-primary-active:#1a3735;--color-primary-soft:#edf3f2;--color-primary-soft-hover:#dce8e6;--color-primary-border:#bcd3d1;--color-primary-text:#214542;--bg-app:#f5f6f8;--color-accent:#5f666f;--color-accent-soft:#f0f2f4;--color-accent-text:#3d434b;--font-size-body:13px;--line-height-body:1.5;--control-height:32px;--radius-control:var(--radius-2xs);--radius-card:var(--radius-sm);--font-size-h1:20px;--font-size-h2:16px;--font-size-h3:14px;--font-size-help:12px;--font-size-table:13px;--font-size-caption:12px;--font-size-stat:24px;--control-height-sm:28px;--control-height-lg:40px;--button-font-md:13px;--tag-height:20px;--row-height:40px;--card-padding:16px}