/* 云教室 · macOS 教师端 — generated from tokens.json (canvas copy) */
:root, [data-theme="light"] {
  --bg-window: #f5f5f7;
  --bg-sidebar: #efeff2;
  --bg-panel: #ffffff;
  --bg-raised: #ffffff;
  --bg-sunken: #ececf0;
  --bg-stage: #ebebef;
  --bg-hover: rgba(24,32,48,0.06);
  --bg-pressed: rgba(24,32,48,0.11);
  --line-subtle: #e3e3e8;
  --line: #d1d1d6;
  --line-strong: #7f8792;
  --fg: #1d1d1f;
  --fg-2: #515156;
  --fg-3: #6a6a70;
  --fg-disabled: #a3a9b1;
  --accent: #0071e3;
  --accent-hover: #0062c4;
  --accent-soft: #e6f0fc;
  --on-accent: #ffffff;
  --accent-text: #0066cc;
  --glass: rgba(248,248,251,0.72);
  --glass-sheen: rgba(255,255,255,0.75);
  --glass-line: rgba(0,0,0,0.08);
  --stage-dot: rgba(0,0,0,0.09);
  --dock: rgba(28,28,32,0.80);
  --dock-fg: #f5f5f7;
  --dock-btn: rgba(255,255,255,0.14);
  --dock-btn-off: #f5f5f7;
  --dock-btn-off-fg: #1d1d1f;
  --focus: #0071e3;
  --st-on: #17713f;
  --st-on-soft: #e2f2e8;
  --st-pending: #2b56a3;
  --st-pending-soft: #e6edf9;
  --st-warn: #8a5600;
  --st-warn-soft: #fdf1d8;
  --st-err: #b4261f;
  --st-err-soft: #fbe6e4;
  --live: #d92d20;
  --live-hover: #b8251a;
  --on-live: #ffffff;
  --video-bg: #101214;
  --video-fg: #c9ced5;
  --scrim: rgba(12,14,18,0.42);
  --board-paper: #ffffff;
  --board-grid: #e9edf2;
  --board-ink: #1d2126;
  --board-ink-2: #626a74;
  --board-chrome: #ffffff;
  --board-sel: #0b6b75;
  --board-pending: #2b56a3;
  --board-err: #b4261f;
  --ink-black: #1a1a1a;
  --ink-red: #e0352b;
  --ink-blue: #1e5fd6;
  --ink-green: #1d9a50;
  --ink-orange: #ef8a00;
  --ink-purple: #7a46c8;
  --ink-white: #ffffff;
  --hl-yellow: rgba(255,221,51,0.45);
  --hl-green: rgba(80,230,120,0.40);
  --hl-pink: rgba(255,110,190,0.38);
  --laser: #ff3b30;
  --shadow-float: 0 2px 10px rgba(0,0,0,0.08), 0 0 0 0.5px rgba(0,0,0,0.12);
  --shadow-pop: 0 10px 30px rgba(0,0,0,0.14), 0 0 0 0.5px rgba(0,0,0,0.12);
  --shadow-glass: inset 0 1px 0 rgba(255,255,255,1), inset 0 0 0 1px rgba(255,255,255,0.55), inset 0 -1px 0 rgba(0,0,0,0.04), 0 0 0 0.5px rgba(0,0,0,0.14), 0 2px 4px rgba(0,0,0,0.05), 0 12px 32px rgba(0,0,0,0.12);
  --shadow-dock: inset 0 1px 0 rgba(255,255,255,0.22), inset 0 0 0 1px rgba(255,255,255,0.08), 0 0 0 0.5px rgba(0,0,0,0.3), 0 12px 32px rgba(0,0,0,0.25);
  --shadow-dialog: 0 24px 60px rgba(0,0,0,0.22), 0 0 0 0.5px rgba(0,0,0,0.12);
}
[data-theme="dark"] {
  --bg-window: #1c1c1e;
  --bg-sidebar: #202022;
  --bg-panel: #2c2c2e;
  --bg-raised: #333336;
  --bg-sunken: #141416;
  --bg-stage: #161618;
  --bg-hover: rgba(255,255,255,0.07);
  --bg-pressed: rgba(255,255,255,0.12);
  --line-subtle: #3a3a3d;
  --line: #48484c;
  --line-strong: #7a828c;
  --fg: #f5f5f7;
  --fg-2: #b8b8bf;
  --fg-3: #a1a1a8;
  --fg-disabled: #5e646c;
  --accent: #0a6cd8;
  --accent-hover: #2a80e6;
  --accent-soft: #16304f;
  --on-accent: #ffffff;
  --accent-text: #4da3ff;
  --glass: rgba(44,44,48,0.74);
  --glass-sheen: rgba(255,255,255,0.12);
  --glass-line: rgba(255,255,255,0.10);
  --stage-dot: rgba(255,255,255,0.07);
  --dock: rgba(58,58,64,0.82);
  --dock-fg: #f5f5f7;
  --dock-btn: rgba(255,255,255,0.14);
  --dock-btn-off: #f5f5f7;
  --dock-btn-off-fg: #1d1d1f;
  --focus: #4da3ff;
  --st-on: #5fd08f;
  --st-on-soft: #173826;
  --st-pending: #93b4f0;
  --st-pending-soft: #1d2a42;
  --st-warn: #f0b44c;
  --st-warn-soft: #3a2d12;
  --st-err: #ff8a7f;
  --st-err-soft: #41201d;
  --live: #d92d20;
  --live-hover: #e8463a;
  --on-live: #ffffff;
  --video-bg: #0b0c0e;
  --video-fg: #c9ced5;
  --scrim: rgba(0,0,0,0.6);
  --board-paper: #ffffff;
  --board-grid: #e9edf2;
  --board-ink: #1d2126;
  --board-ink-2: #626a74;
  --board-chrome: #ffffff;
  --board-sel: #0b6b75;
  --board-pending: #2b56a3;
  --board-err: #b4261f;
  --ink-black: #1a1a1a;
  --ink-red: #e0352b;
  --ink-blue: #1e5fd6;
  --ink-green: #1d9a50;
  --ink-orange: #ef8a00;
  --ink-purple: #7a46c8;
  --ink-white: #ffffff;
  --hl-yellow: rgba(255,221,51,0.45);
  --hl-green: rgba(80,230,120,0.40);
  --hl-pink: rgba(255,110,190,0.38);
  --laser: #ff3b30;
  --shadow-float: 0 2px 10px rgba(0,0,0,0.45), 0 0 0 0.5px rgba(255,255,255,0.12);
  --shadow-pop: 0 10px 30px rgba(0,0,0,0.55), 0 0 0 0.5px rgba(255,255,255,0.12);
  --shadow-glass: inset 0 1px 0 rgba(255,255,255,0.22), inset 0 0 0 1px rgba(255,255,255,0.08), 0 0 0 0.5px rgba(0,0,0,0.6), 0 12px 32px rgba(0,0,0,0.5);
  --shadow-dock: inset 0 1px 0 rgba(255,255,255,0.24), inset 0 0 0 1px rgba(255,255,255,0.10), 0 0 0 0.5px rgba(0,0,0,0.6), 0 12px 32px rgba(0,0,0,0.55);
  --shadow-dialog: 0 24px 60px rgba(0,0,0,0.6), 0 0 0 0.5px rgba(255,255,255,0.12);
  color-scheme: dark;
}
:root {
  --sp-2: 2px;
  --sp-4: 4px;
  --sp-6: 6px;
  --sp-8: 8px;
  --sp-12: 12px;
  --sp-16: 16px;
  --sp-20: 20px;
  --sp-24: 24px;
  --sp-32: 32px;
  --size-ctl-sm: 22px;
  --size-ctl: 28px;
  --size-tool: 36px;
  --size-dock: 44px;
  --size-titlebar: 52px;
  --size-controlbar: 60px;
  --size-rail: 280px;
  --size-rail-mini: 64px;
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 18px;
  --r-pill: 999px;
  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-mono: "SF Mono", ui-monospace, Menlo, "JetBrains Mono", monospace;
}
.large-title { font-family: var(--font-sans); font-size: 26px; line-height: 32px; font-weight: 700; }
.title-1 { font-family: var(--font-sans); font-size: 20px; line-height: 26px; font-weight: 600; }
.title-2 { font-family: var(--font-sans); font-size: 16px; line-height: 22px; font-weight: 600; }
.title-3 { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600; }
.body { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 400; }
.body-em { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 600; }
.callout { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 400; }
.caption { font-family: var(--font-sans); font-size: 11px; line-height: 14px; font-weight: 400; }
.caption-em { font-family: var(--font-sans); font-size: 11px; line-height: 14px; font-weight: 600; }
.num { font-family: var(--font-mono); font-size: 13px; line-height: 18px; font-weight: 500; }
.num-lg { font-family: var(--font-mono); font-size: 20px; line-height: 24px; font-weight: 500; }
.diag { font-family: var(--font-mono); font-size: 11px; line-height: 15px; font-weight: 400; }
