.tour-root-container,.tour-mask-container{z-index:100050;pointer-events:none;position:fixed;inset:0}.tour-mask-svg{width:100vw;height:100vh;display:block;position:fixed;top:0;left:0}.tour-mask-backdrop{fill:#0f172aa6;pointer-events:auto;cursor:pointer;transition:fill .2s}:root[data-theme=dark] .tour-mask-backdrop{fill:#020617c7}.tour-mask-cutout{transition:x .25s cubic-bezier(.16,1,.3,1),y .25s cubic-bezier(.16,1,.3,1),width .25s cubic-bezier(.16,1,.3,1),height .25s cubic-bezier(.16,1,.3,1)}.tour-spotlight-halo{pointer-events:none;z-index:100055;box-shadow:0 0 0 2px var(--accent,#2563eb), 0 0 16px #2563eb73;transition:top .25s cubic-bezier(.16,1,.3,1),left .25s cubic-bezier(.16,1,.3,1),width .25s cubic-bezier(.16,1,.3,1),height .25s cubic-bezier(.16,1,.3,1);animation:2s ease-in-out infinite tourHaloPulse;position:fixed}@keyframes tourHaloPulse{0%{box-shadow:0 0 0 2px var(--accent,#2563eb), 0 0 12px #2563eb59}50%{box-shadow:0 0 0 3px var(--accent,#2563eb), 0 0 22px #2563eba6}to{box-shadow:0 0 0 2px var(--accent,#2563eb), 0 0 12px #2563eb59}}.tour-popover{z-index:100060;pointer-events:auto;background:var(--surface,#fff);color:var(--text,#0f172a);border:1px solid var(--border-strong,#cbd5e1);box-sizing:border-box;border-radius:10px;flex-direction:column;gap:12px;max-width:420px;padding:16px;animation:.25s cubic-bezier(.16,1,.3,1) tourPopoverFadeIn;display:flex;position:fixed;box-shadow:0 16px 38px #0f172a3d,0 4px 14px #0f172a1f}:root[data-theme=dark] .tour-popover{background:var(--surface,#0f172a);border-color:var(--border-strong,#334155);box-shadow:0 20px 48px #0000008c,0 6px 18px #00000059}@keyframes tourPopoverFadeIn{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.tour-popover.placement-center{max-width:460px;padding:22px}.tour-popover-arrow{background:var(--surface,#fff);border:1px solid var(--border-strong,#cbd5e1);z-index:-1;width:12px;height:12px;position:absolute;transform:rotate(45deg)}:root[data-theme=dark] .tour-popover-arrow{background:var(--surface,#0f172a);border-color:var(--border-strong,#334155)}.tour-popover.placement-bottom .tour-popover-arrow{border-bottom:none;border-right:none;top:-6px}.tour-popover.placement-top .tour-popover-arrow{border-top:none;border-left:none;bottom:-6px}.tour-popover.placement-right .tour-popover-arrow{border-top:none;border-right:none;left:-6px}.tour-popover.placement-left .tour-popover-arrow{border-bottom:none;border-left:none;right:-6px}.tour-popover-header{justify-content:space-between;align-items:center;display:flex}.tour-badge{text-transform:uppercase;letter-spacing:.06em;background:var(--accent-soft,#dbeafe);color:var(--accent-ink,#1e40af);border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700}:root[data-theme=dark] .tour-badge{color:#93c5fd;background:#60a5fa33}.tour-close-btn{color:var(--text-muted,#64748b);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px 6px;font-size:14px;line-height:1;transition:all .15s;display:flex}.tour-close-btn:hover{background:var(--hover,#e2e8f0);color:var(--text,#0f172a)}.tour-popover-body{flex-direction:column;gap:8px;display:flex}.tour-title{color:var(--text,#0f172a);margin:0;font-size:15px;font-weight:700;line-height:1.3}.tour-popover.placement-center .tour-title{font-size:17px}.tour-description{color:var(--text-muted,#475569);margin:0;font-size:13px;line-height:1.5}:root[data-theme=dark] .tour-description{color:var(--text-muted,#94a3b8)}.tour-tip{background:var(--surface-2,#f1f5f9);border-left:3px solid var(--accent,#2563eb);color:var(--text,#1e293b);border-radius:4px 6px 6px 4px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:12px;line-height:1.45;display:flex}:root[data-theme=dark] .tour-tip{background:var(--surface-2,#1e293b);color:var(--text,#e2e8f0)}.tour-tip-icon{font-size:13px;line-height:1.2}.tour-tip-text{flex:1}.tour-popover-footer{border-top:1px solid var(--border,#e2e8f0);justify-content:space-between;align-items:center;margin-top:4px;padding-top:10px;display:flex}.tour-dots{align-items:center;gap:5px;display:flex}.tour-dot{background:var(--surface-3,#cbd5e1);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:all .2s cubic-bezier(.16,1,.3,1)}:root[data-theme=dark] .tour-dot{background:var(--surface-3,#334155)}.tour-dot.active{background:var(--accent,#2563eb);border-radius:4px;width:18px}.tour-dot:hover:not(.active){background:var(--text-muted,#64748b)}.tour-actions{align-items:center;gap:6px;display:flex}.tour-btn{cursor:pointer;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;line-height:1.2;transition:all .15s}.tour-btn-skip{color:var(--text-muted,#64748b);background:0 0;border:none}.tour-btn-skip:hover{background:var(--hover,#f1f5f9);color:var(--text,#0f172a)}.tour-btn-back{background:var(--surface-2,#f1f5f9);border:1px solid var(--border,#cbd5e1);color:var(--text,#0f172a)}:root[data-theme=dark] .tour-btn-back{background:var(--surface-2,#1e293b);border-color:var(--border,#334155);color:var(--text,#e2e8f0)}.tour-btn-back:hover{background:var(--hover,#e2e8f0)}.tour-btn-primary{background:var(--btn-bg,#2563eb);color:var(--btn-text,#fff);border:1px solid #0000;font-weight:600}.tour-btn-primary:hover{background:var(--btn-hover,#1d4ed8)}.whats-new-tour-cta-btn{background:var(--surface-2,#f1f5f9);border:1px solid var(--border-strong,#cbd5e1);color:var(--text,#0f172a);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}:root[data-theme=dark] .whats-new-tour-cta-btn{background:var(--surface-2,#1e293b);border-color:var(--border-strong,#334155);color:var(--text,#e2e8f0)}.whats-new-tour-cta-btn:hover{background:var(--hover,#e2e8f0);border-color:var(--accent,#2563eb);color:var(--accent,#2563eb)}[data-tour=col-header-filter] .col-menu-btn{opacity:1!important}@media (width<=600px){.tour-popover:not(.placement-center){width:auto!important;max-width:none!important;left:12px!important;right:12px!important}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fb;--surface:#fff;--surface-2:#f1f5f9;--surface-3:#e2e8f0;--hover:#eef2f7;--gutter-bg:#f8fafc;--gutter-text:#64748b;--border:#e5e7eb;--border-strong:#cbd5e1;--text:#0f172a;--text-muted:#64748b;--text-faint:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#dbeafe;--accent-ink:#1e40af;--accent-contrast:#fff;--link:#2563eb;--link-hover:#1d4ed8;--btn-bg:#2563eb;--btn-hover:#1d4ed8;--btn-text:#fff;--warning:#b45309;--warning-soft:#fef3c7;--danger:#b91c1c;--danger-soft:#fee2e2;--core-bg:#dcfce7;--core-ink:#15803d;--core-border:#bbf7d0;--elective-bg:#f3e8ff;--elective-ink:#7c3aed;--elective-border:#ddd6fe;--matrix-empty:#fafafa;--head-bg:#f1f5f9;--head-spec-bg:#f8fafc;--head-seat-bg:#eef2f7;--banner-ink:#991b1b;--panel-bg:#fff;--shadow-1:0 1px 2px #0f172a0f, 0 4px 12px #0f172a14;--shadow-2:0 2px 6px #0f172a1f, 0 12px 32px #0f172a24;--icon-hover-bg:#0f172a14;--term-fall-a:#f3e8cf;--term-fall-b:#ecdcba;--term-summer-a:#f8dfdb;--term-summer-b:#f2d1cc;--term-spring-a:#ddeaf6;--term-spring-b:#cddfee;--term-default:#eef2f7;--term-ink:#1f2937;--lock-bg:color-mix(in srgb, var(--accent) 9%, var(--surface));--lock-border:color-mix(in srgb, var(--accent) 60%, var(--border-strong));--chrome-h:32px;--toolbar-h:30px;--search-h:30px;--letters-h:18px;--header-h:26px;--row-h:23px;--tab-h:28px;font-feature-settings:"tnum" 0, "ss01" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1120;--surface:#0f172a;--surface-2:#1e293b;--surface-3:#334155;--hover:#1a2436;--gutter-bg:#0f172a;--gutter-text:#94a3b8;--border:#1e293b;--border-strong:#334155;--text:#e2e8f0;--text-muted:#94a3b8;--text-faint:#64748b;--accent:#60a5fa;--accent-hover:#93c5fd;--accent-soft:#60a5fa29;--accent-ink:#93c5fd;--accent-contrast:#0b1120;--link:#60a5fa;--link-hover:#93c5fd;--btn-bg:#2563eb;--btn-hover:#1d4ed8;--btn-text:#fff;--warning:#fbbf24;--warning-soft:#fbbf2429;--danger:#f87171;--danger-soft:#f8717129;--core-bg:#0c2f1e;--core-ink:#86efac;--core-border:#14532d;--elective-bg:#2e1065;--elective-ink:#c4b5fd;--elective-border:#4c1d95;--matrix-empty:#0f172a;--head-bg:#1e293b;--head-spec-bg:#16233a;--head-seat-bg:#243044;--banner-ink:#fca5a5;--panel-bg:#1e293b;--shadow-1:0 1px 2px #0006, 0 4px 12px #0006;--shadow-2:0 2px 6px #00000080, 0 12px 32px #0000008c;--icon-hover-bg:#e2e8f024;--term-fall-a:#2f2a1c;--term-fall-b:#3a3322;--term-summer-a:#331f1e;--term-summer-b:#3f2725;--term-spring-a:#1b2a3a;--term-spring-b:#223547;--term-default:#1e293b;--term-ink:#e2e8f0;--lock-bg:color-mix(in srgb, var(--accent) 10%, var(--surface));--lock-border:color-mix(in srgb, var(--accent) 65%, var(--border-strong))}:root[data-scheme=github]{--bg:#fff;--surface:#fff;--surface-2:#f6f8fa;--surface-3:#eaeef2;--hover:#f3f4f6;--gutter-bg:#fff;--gutter-text:#656d76;--border:#d0d7de;--border-strong:#afb8c1;--text:#1f2328;--text-muted:#59636e;--text-faint:#8c959f;--accent:#0969da;--accent-hover:#0550ae;--accent-soft:#ddf4ff;--accent-ink:#0550ae;--accent-contrast:#fff;--link:#0969da;--link-hover:#0550ae;--btn-bg:#0969da;--btn-hover:#0550ae;--btn-text:#fff;--warning:#9a6700;--warning-soft:#fff8c5;--danger:#cf222e;--danger-soft:#ffebe9;--core-bg:#dafbe1;--core-ink:#116329;--core-border:#aceebb;--elective-bg:#fbefff;--elective-ink:#8250df;--elective-border:#d8b5ff;--matrix-empty:#fff;--head-bg:#f6f8fa;--head-spec-bg:#fbfcfd;--head-seat-bg:#eaeef2;--banner-ink:#d1242f;--panel-bg:#fff;--shadow-1:0 1px 0 #1f23280a, 0 3px 6px #8c959f26;--shadow-2:0 1px 3px #1f23281f, 0 8px 24px #424a5333;--icon-hover-bg:#1f232814;--term-fall-a:#f7ecd6;--term-fall-b:#efe1bf;--term-summer-a:#ffebe9;--term-summer-b:#f7d4cd;--term-spring-a:#ddf4ff;--term-spring-b:#b6e3ff;--term-default:#f6f8fa;--term-ink:#1f2328}:root[data-theme=dark][data-scheme=github]{--bg:#0d1117;--surface:#161b22;--surface-2:#21262d;--surface-3:#30363d;--hover:#1c2128;--gutter-bg:#0d1117;--gutter-text:#8b949e;--border:#30363d;--border-strong:#484f58;--text:#e6edf3;--text-muted:#8d96a0;--text-faint:#6e7681;--accent:#58a6ff;--accent-hover:#79c0ff;--accent-soft:#58a6ff29;--accent-ink:#79c0ff;--accent-contrast:#0d1117;--link:#58a6ff;--link-hover:#79c0ff;--btn-bg:#238636;--btn-hover:#2ea043;--btn-text:#fff;--warning:#d29922;--warning-soft:#d2992229;--danger:#f85149;--danger-soft:#f8514929;--core-bg:#2ea04329;--core-ink:#3fb950;--core-border:#2ea04359;--elective-bg:#bc8cff2e;--elective-ink:#bc8cff;--elective-border:#bc8cff66;--matrix-empty:#0d1117;--head-bg:#161b22;--head-spec-bg:#11161d;--head-seat-bg:#1a2027;--banner-ink:#f85149;--panel-bg:#161b22;--shadow-1:0 1px 0 #01040966, 0 3px 6px #0006;--shadow-2:0 2px 6px #01040980, 0 8px 24px #01040999;--icon-hover-bg:#e6edf31f;--term-fall-a:#3a3322;--term-fall-b:#312b1a;--term-summer-a:#3f2725;--term-summer-b:#331f1e;--term-spring-a:#223547;--term-spring-b:#1b2a3a;--term-default:#1e293b;--term-ink:#e6edf3}:root[data-scheme=catppuccin]{--bg:#eff1f5;--surface:#e6e9ef;--surface-2:#ccd0da;--surface-3:#bcc0cc;--hover:#e6e9ef;--gutter-bg:#eff1f5;--gutter-text:#9ca0b0;--border:#ccd0da;--border-strong:#bcc0cc;--text:#4c4f69;--text-muted:#6c6f85;--text-faint:#9ca0b0;--accent:#1e66f5;--accent-hover:#173fa6;--accent-soft:#dce1f8;--accent-ink:#173fa6;--accent-contrast:#fff;--link:#1e66f5;--link-hover:#173fa6;--btn-bg:#1e66f5;--btn-hover:#173fa6;--btn-text:#fff;--warning:#df8e1d;--warning-soft:#f6e2c4;--danger:#d20f39;--danger-soft:#f6d2da;--core-bg:#e0f2df;--core-ink:#40a02b;--core-border:#bfe0bd;--elective-bg:#ece6fa;--elective-ink:#8839ef;--elective-border:#d3c3f0;--matrix-empty:#eff1f5;--head-bg:#e6e9ef;--head-spec-bg:#f2f4f8;--head-seat-bg:#dce0e8;--banner-ink:#d20f39;--panel-bg:#e6e9ef;--shadow-1:0 1px 0 #4c4f690f, 0 3px 6px #4c4f691f;--shadow-2:0 2px 6px #4c4f6929, 0 12px 32px #4c4f6933;--icon-hover-bg:#4c4f6914;--term-fall-a:#f6e3c7;--term-fall-b:#eed3ab;--term-summer-a:#f4d8d0;--term-summer-b:#ecc5bd;--term-spring-a:#d7e4f2;--term-spring-b:#cbd9ee;--term-default:#dce0e8;--term-ink:#4c4f69}:root[data-theme=dark][data-scheme=catppuccin]{--bg:#1e1e2e;--surface:#181825;--surface-2:#313244;--surface-3:#45475a;--hover:#313244;--gutter-bg:#1e1e2e;--gutter-text:#6c7086;--border:#313244;--border-strong:#45475a;--text:#cdd6f4;--text-muted:#a6adc8;--text-faint:#6c7086;--accent:#89b4fa;--accent-hover:#b4befe;--accent-soft:#89b4fa29;--accent-ink:#b4befe;--accent-contrast:#1e1e2e;--link:#89b4fa;--link-hover:#b4befe;--btn-bg:#89b4fa;--btn-hover:#b4befe;--btn-text:#1e1e2e;--warning:#f9e2af;--warning-soft:#f9e2af29;--danger:#f38ba8;--danger-soft:#f38ba829;--core-bg:#a6e3a129;--core-ink:#a6e3a1;--core-border:#a6e3a159;--elective-bg:#cba6f72e;--elective-ink:#cba6f7;--elective-border:#cba6f766;--matrix-empty:#1e1e2e;--head-bg:#181825;--head-spec-bg:#161624;--head-seat-bg:#262638;--banner-ink:#f38ba8;--panel-bg:#181825;--shadow-1:0 1px 0 #00000059, 0 3px 6px #00000059;--shadow-2:0 2px 6px #00000080, 0 12px 32px #0000008c;--icon-hover-bg:#cdd6f41f;--term-fall-a:#3a3322;--term-fall-b:#332c1c;--term-summer-a:#3f2725;--term-summer-b:#35211f;--term-spring-a:#223547;--term-spring-b:#1e2d41;--term-default:#313244;--term-ink:#cdd6f4}:root[data-scheme=tokyonight]{--bg:#e9ebf2;--surface:#f4f5fa;--surface-2:#e2e5ee;--surface-3:#d3d8e6;--hover:#e2e5ee;--gutter-bg:#e9ebf2;--gutter-text:#7a84a8;--border:#cfd4e2;--border-strong:#b0b9cf;--text:#1f2a44;--text-muted:#4c5678;--text-faint:#7a84a8;--accent:#3760bf;--accent-hover:#2c4fa1;--accent-soft:#dfe6f7;--accent-ink:#2c4fa1;--accent-contrast:#fff;--link:#3760bf;--link-hover:#2c4fa1;--btn-bg:#3760bf;--btn-hover:#2c4fa1;--btn-text:#fff;--warning:#a16207;--warning-soft:#f3ecd2;--danger:#c23b5c;--danger-soft:#f7dfe5;--core-bg:#e4efd8;--core-ink:#62810f;--core-border:#c6dcae;--elective-bg:#e9e2f6;--elective-ink:#7d4fc0;--elective-border:#d3c6e8;--matrix-empty:#e9ebf2;--head-bg:#e2e5ee;--head-spec-bg:#f0f1f7;--head-seat-bg:#d8dce9;--banner-ink:#f52a65;--panel-bg:#f4f5fa;--shadow-1:0 1px 0 #1f2a440f, 0 3px 6px #1f2a441f;--shadow-2:0 2px 6px #1f2a4429, 0 12px 32px #1f2a4438;--icon-hover-bg:#1f2a4414;--term-fall-a:#e8dcbd;--term-fall-b:#ddd0a8;--term-summer-a:#f5d6de;--term-summer-b:#ecc6d2;--term-spring-a:#d3e2f4;--term-spring-b:#c6d8ee;--term-default:#c4c8da;--term-ink:#3760bf}:root[data-theme=dark][data-scheme=tokyonight]{--bg:#1a1b26;--surface:#16161e;--surface-2:#24283b;--surface-3:#2f3549;--hover:#24283b;--gutter-bg:#1a1b26;--gutter-text:#3b4261;--border:#292e42;--border-strong:#414868;--text:#c0caf5;--text-muted:#a9b1d6;--text-faint:#565f89;--accent:#7aa2f7;--accent-hover:#8db2fb;--accent-soft:#7aa2f729;--accent-ink:#8db2fb;--accent-contrast:#1a1b26;--link:#7aa2f7;--link-hover:#8db2fb;--btn-bg:#7aa2f7;--btn-hover:#8db2fb;--btn-text:#1a1b26;--warning:#e0af68;--warning-soft:#e0af6829;--danger:#f7768e;--danger-soft:#f7768e29;--core-bg:#9ece6a29;--core-ink:#9ece6a;--core-border:#9ece6a59;--elective-bg:#bb9af72e;--elective-ink:#bb9af7;--elective-border:#bb9af766;--matrix-empty:#1a1b26;--head-bg:#16161e;--head-spec-bg:#181925;--head-seat-bg:#1f2130;--banner-ink:#f7768e;--panel-bg:#16161e;--shadow-1:0 1px 0 #00000059, 0 3px 6px #00000059;--shadow-2:0 2px 6px #00000080, 0 12px 32px #0000008c;--icon-hover-bg:#c0caf51f;--term-fall-a:#332c1c;--term-fall-b:#2b2517;--term-summer-a:#3a2328;--term-summer-b:#33202a;--term-spring-a:#1d2c41;--term-spring-b:#1a2739;--term-default:#24283b;--term-ink:#c0caf5}:root[data-scheme=nord]{--bg:#eceff4;--surface:#e5e9f0;--surface-2:#d8dee9;--surface-3:#c8d0dc;--hover:#e5e9f0;--gutter-bg:#eceff4;--gutter-text:#4c566a;--border:#d8dee9;--border-strong:#bcc5d1;--text:#2e3440;--text-muted:#4c566a;--text-faint:#6a7689;--accent:#5e81ac;--accent-hover:#4c6f9c;--accent-soft:#e3ebf4;--accent-ink:#4c6f9c;--accent-contrast:#fff;--link:#5e81ac;--link-hover:#4c6f9c;--btn-bg:#5e81ac;--btn-hover:#4c6f9c;--btn-text:#fff;--warning:#9c7c22;--warning-soft:#f0ecd6;--danger:#ad4650;--danger-soft:#f6e0e2;--core-bg:#e3eeda;--core-ink:#577f35;--core-border:#c4d9ae;--elective-bg:#f0e6ef;--elective-ink:#885f83;--elective-border:#dcc4d6;--matrix-empty:#eceff4;--head-bg:#e5e9f0;--head-spec-bg:#f0f3f7;--head-seat-bg:#dbe1ea;--banner-ink:#bf616a;--panel-bg:#e5e9f0;--shadow-1:0 1px 0 #2e34400f, 0 3px 6px #2e34401f;--shadow-2:0 2px 6px #2e344029, 0 12px 32px #2e344038;--icon-hover-bg:#2e344014;--term-fall-a:#efe4c9;--term-fall-b:#e7d8b0;--term-summer-a:#f0dadd;--term-summer-b:#e8ccd1;--term-spring-a:#dce6f0;--term-spring-b:#d0dde9;--term-default:#d8dee9;--term-ink:#2e3440}:root[data-theme=dark][data-scheme=nord]{--bg:#2e3440;--surface:#3b4252;--surface-2:#434c5e;--surface-3:#4c566a;--hover:#3b4252;--gutter-bg:#2e3440;--gutter-text:#4c566a;--border:#434c5e;--border-strong:#566178;--text:#eceff4;--text-muted:#d8dee9;--text-faint:#7b87a0;--accent:#88c0d0;--accent-hover:#a5cdd8;--accent-soft:#88c0d029;--accent-ink:#a5cdd8;--accent-contrast:#2e3440;--link:#88c0d0;--link-hover:#a5cdd8;--btn-bg:#88c0d0;--btn-hover:#a5cdd8;--btn-text:#2e3440;--warning:#ebcb8b;--warning-soft:#ebcb8b29;--danger:#bf616a;--danger-soft:#bf616a29;--core-bg:#a3be8c29;--core-ink:#a3be8c;--core-border:#a3be8c59;--elective-bg:#b48ead2e;--elective-ink:#b48ead;--elective-border:#b48ead66;--matrix-empty:#2e3440;--head-bg:#3b4252;--head-spec-bg:#343b4a;--head-seat-bg:#404858;--banner-ink:#bf616a;--panel-bg:#3b4252;--shadow-1:0 1px 0 #00000059, 0 3px 6px #00000059;--shadow-2:0 2px 6px #00000080, 0 12px 32px #0000008c;--icon-hover-bg:#eceff41f;--term-fall-a:#454032;--term-fall-b:#3b3729;--term-summer-a:#463437;--term-summer-b:#3c2b2e;--term-spring-a:#33404f;--term-spring-b:#2c3946;--term-default:#434c5e;--term-ink:#eceff4}:root[data-scheme=solarized]{--bg:#fdf6e3;--surface:#f6f0dd;--surface-2:#eee8d5;--surface-3:#ddd5bf;--hover:#f0ead6;--gutter-bg:#fdf6e3;--gutter-text:#839496;--border:#dcd4bc;--border-strong:#b3ac90;--text:#586e75;--text-muted:#839496;--text-faint:#93a1a1;--accent:#268bd2;--accent-hover:#1b6da6;--accent-soft:#dbeaf5;--accent-ink:#1b5f90;--accent-contrast:#fff;--link:#268bd2;--link-hover:#1b6da6;--btn-bg:#268bd2;--btn-hover:#1b6da6;--btn-text:#fff;--warning:#b58900;--warning-soft:#f2ebcf;--danger:#dc322f;--danger-soft:#f8dfdf;--core-bg:#e6e9cf;--core-ink:#859900;--core-border:#cdd3a0;--elective-bg:#e7e3f2;--elective-ink:#6c71c4;--elective-border:#cbc6e3;--matrix-empty:#fdf6e3;--head-bg:#eee8d5;--head-spec-bg:#f5efdd;--head-seat-bg:#e7e0ca;--banner-ink:#dc322f;--panel-bg:#f6f0dd;--shadow-1:0 1px 0 #657b8326, 0 3px 6px #657b832e;--shadow-2:0 2px 6px #657b8340, 0 12px 32px #657b834d;--icon-hover-bg:#586e7514;--term-fall-a:#efe3bd;--term-fall-b:#e5d6a8;--term-summer-a:#f0d8d2;--term-summer-b:#e6c7c0;--term-spring-a:#d3e2e6;--term-spring-b:#c6d9de;--term-default:#eee8d5;--term-ink:#586e75}:root[data-theme=dark][data-scheme=solarized]{--bg:#002b36;--surface:#073642;--surface-2:#0e424d;--surface-3:#17505c;--hover:#0b3d48;--gutter-bg:#002b36;--gutter-text:#586e75;--border:#0e424d;--border-strong:#17505c;--text:#93a1a1;--text-muted:#839496;--text-faint:#586e75;--accent:#268bd2;--accent-hover:#4db3e6;--accent-soft:#268bd229;--accent-ink:#4db3e6;--accent-contrast:#002b36;--link:#268bd2;--link-hover:#4db3e6;--btn-bg:#268bd2;--btn-hover:#1f7abf;--btn-text:#fdf6e3;--warning:#b58900;--warning-soft:#b5890029;--danger:#dc322f;--danger-soft:#dc322f29;--core-bg:#85990029;--core-ink:#859900;--core-border:#85990059;--elective-bg:#6c71c42e;--elective-ink:#6c71c4;--elective-border:#6c71c466;--matrix-empty:#002b36;--head-bg:#073642;--head-spec-bg:#05303b;--head-seat-bg:#0a3a45;--banner-ink:#dc322f;--panel-bg:#073642;--shadow-1:0 1px 0 #0006, 0 3px 6px #00000059;--shadow-2:0 2px 6px #00000080, 0 12px 32px #0000008c;--icon-hover-bg:#93a1a11f;--term-fall-a:#4a3a17;--term-fall-b:#403112;--term-summer-a:#4a2726;--term-summer-b:#3e1f1e;--term-spring-a:#1d3f4a;--term-spring-b:#18343e;--term-default:#0e424d;--term-ink:#93a1a1}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0;padding:0}a{color:var(--link);-webkit-text-decoration-color:color-mix(in srgb, var(--link) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--link) 40%, transparent)}a:hover{color:var(--link-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.chrome{background:var(--surface);border-bottom:1px solid var(--border-strong);z-index:200;flex:none;position:relative}.chrome-top{align-items:center;gap:8px;min-height:30px;padding:5px 10px 3px;display:flex}.sheets-icon{width:20px;height:20px;color:var(--accent);opacity:.95;flex:none}.chrome-title-block{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.chrome-title-row{align-items:baseline;gap:6px;line-height:1.15;display:flex}.chrome-title{letter-spacing:-.15px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:650;overflow:hidden}.chrome-star{color:var(--text-faint);cursor:default;-webkit-user-select:none;user-select:none;font-size:11px;transform:translateY(-1px)}.chrome-menus{color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:1px;margin-left:-4px;font-size:11.5px;line-height:1;display:flex}.menu{position:relative}.menu-label{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:1px 6px;font-size:11.5px;line-height:18px}.menu-label:hover,.menu.open .menu-label{background:var(--surface-2)}.menu-panel{z-index:1000;background:var(--panel-bg);border:1px solid var(--border);min-width:260px;box-shadow:var(--shadow-2);border-radius:10px;padding:6px 0;position:absolute;top:100%;left:0;overflow:hidden}.menu-item{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:0;align-items:center;gap:8px;padding:6px 12px 6px 8px;font-size:12px;line-height:1.35;text-decoration:none;transition:background .1s;display:flex}.menu-item:hover:not(:disabled){background:var(--surface-2)}.menu-item:disabled{color:var(--text-faint);cursor:default}.menu-item--external{color:var(--text)}.menu-item--external:hover{background:var(--surface-2)}.menu-item--indent .menu-label-text{padding-left:14px}.menu-check{text-align:center;width:16px;color:var(--text);flex:none;font-size:10px;display:inline-block}.menu-icon{text-align:center;background:var(--surface-2);border:1px solid #0000;border-radius:4px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;line-height:1;display:inline-flex}.menu-item:hover .menu-icon:not(.menu-icon--empty){background:var(--surface-3);border-color:var(--border)}.menu-item--external .menu-icon:not(.menu-icon--empty){background:var(--surface-2)}.menu-label-text{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.menu-ext{color:var(--text-faint);opacity:.9;margin-left:auto;padding-left:10px;font-size:10px}.menu-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint);-webkit-user-select:none;user-select:none;padding:8px 10px 3px;font-size:9.5px;font-weight:700;line-height:1.2}.menu-header+.menu-item{margin-top:1px}.menu-sep{background:var(--border);height:1px;margin:6px 0}.menu-sep+.menu-header{margin-top:-2px;padding-top:6px}.menu-icon--empty{background:0 0;border-color:#0000}.menu-icon--empty+.menu-label-text{margin-left:0}.chrome-actions{flex:none;align-items:center;gap:6px;display:flex}.share-btn{background:var(--btn-bg);color:var(--btn-text);cursor:pointer;letter-spacing:.1px;border:none;border-radius:6px;flex:none;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:550;line-height:18px;box-shadow:0 .5px 1px #00000014}.share-btn:hover{background:var(--btn-hover)}.theme-btn{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:11px;font-weight:500;line-height:18px;display:inline-flex}.theme-btn:hover{background:var(--surface-3);color:var(--text)}.whats-new-btn{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:4.5px;padding:3px 8px;font-family:inherit;font-size:11px;font-weight:500;line-height:18px;transition:background .12s,color .12s,border-color .12s;display:inline-flex;position:relative}.whats-new-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}.whats-new-btn.unread{color:var(--text);border-color:color-mix(in srgb, var(--accent) 50%, var(--border));background:var(--accent-soft)}.whats-new-sparkle{font-size:11px;line-height:1;display:inline-block}.whats-new-badge-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 2px var(--bg);border-radius:50%;position:absolute;top:-2px;right:-2px}.theme-switch{position:relative}.theme-menu{z-index:60;background:var(--panel-bg);border:1px solid var(--border);min-width:210px;box-shadow:var(--shadow-2);border-radius:8px;padding:4px 0;position:absolute;top:100%;right:0}.theme-menu-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-faint);padding:5px 14px 2px 6px;font-size:10px;font-weight:600}.theme-opt{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:5px 14px 5px 6px;font-size:12px;line-height:1.25;display:flex}.theme-opt:hover{background:var(--surface-2)}.theme-swatch{flex:none;gap:3px;display:inline-flex}.theme-swatch .swatch{border:1px solid var(--border-strong);border-radius:3px;width:12px;height:12px}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;min-height:30px;margin:0;padding:3px 10px;font-size:11px;line-height:1.2;display:flex}.tb-icon{color:var(--text-faint);cursor:default;font-size:9px}.tb-sep{background:var(--border);width:1px;height:14px;margin:0 2px}.tb-select{color:var(--text-faint);text-transform:uppercase;letter-spacing:.35px;align-items:center;gap:4px;font-size:10.5px;font-weight:600;display:inline-flex}.tb-select select{text-transform:none;letter-spacing:0;color:var(--text);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:6px;max-width:190px;padding:2px 22px 2px 8px;font-family:inherit;font-size:11px;font-weight:500;line-height:1.2}.tb-program select{min-width:188px}.tb-select select:hover{background:var(--surface-3);border-color:var(--border-strong)}.tb-check{cursor:pointer;color:var(--text);white-space:nowrap;align-items:center;gap:4px;font-size:11px;font-weight:450;display:inline-flex}.tb-check input{accent-color:var(--accent);width:12px;height:12px;margin:0}.tb-check.disabled{opacity:.45;cursor:not-allowed}.tb-clear{color:var(--link);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-family:inherit;font-size:11px;font-weight:500}.tb-clear:hover{text-decoration:underline}.tb-colstate{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent-ink);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;line-height:18px}.tb-colstate:hover{filter:brightness(.97);text-decoration:none}.hr-wrap{display:inline-flex;position:relative}.hr-btn{color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 8px 3px 10px;font-family:inherit;font-size:12.5px;display:inline-flex}.hr-btn:hover,.hr-wrap.open .hr-btn{background:var(--surface-3);border-color:var(--border-strong)}.hr-btn-key{color:var(--text-muted)}.hr-btn-value{font-weight:600}.hr-btn.expanded .hr-btn-value{color:var(--accent-ink)}.hr-btn.expanded{background:var(--accent-soft);border-color:#0000}.hr-caret{color:var(--text-muted);font-size:9px}.hr-panel{z-index:70;background:var(--panel-bg);border:1px solid var(--border);min-width:250px;box-shadow:var(--shadow-2);text-align:left;border-radius:8px;padding:6px 0;position:absolute;top:calc(100% + 6px);left:0}.hr-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;padding:4px 14px;font-size:11px;font-weight:700}.hr-item{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:4px;padding:6px 14px 6px 8px;font-size:13px;display:flex}.hr-item:hover{background:var(--surface-2)}.hr-item.on{color:var(--accent-ink);font-weight:600}.hr-check{text-align:center;flex:none;width:18px;font-size:11px;display:inline-block}.hr-item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.hr-item-hint{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:400}.hr-sep{background:var(--border);height:1px;margin:5px 0}.hr-foot{color:var(--text-faint);white-space:normal;max-width:250px;padding:4px 14px 2px;font-size:11px;line-height:1.35}.hist-more-cell{background:var(--surface-2)!important;text-align:center!important;border-left:1px solid var(--border-strong)!important;padding:0!important}.hist-more-letter{border-left:1px solid var(--border-strong)}.hist-more-th{vertical-align:middle}.hist-more-btn{width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:3px 2px;font-family:inherit;font-size:10px;font-weight:700;line-height:1.1;display:inline-flex}.hist-more-btn:hover{background:var(--accent-soft);color:var(--accent-ink)}.hist-more-chevron{font-size:13px;line-height:1}.hist-more-label{white-space:nowrap}.hist-more-head{vertical-align:middle}.tb-count{color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:10.5px;font-weight:500}.search-bar{background:var(--surface-2);border-bottom:1px solid var(--border-strong);align-items:center;gap:6px;height:30px;min-height:30px;padding:0 6px 0 10px;display:flex}.search-icon{color:var(--text-faint);flex:none;font-size:12px}.search-label{color:var(--text-muted);letter-spacing:.6px;text-transform:uppercase;flex:none;font-size:10px;font-weight:700}.search-input{border:1px solid var(--border);background:var(--surface);height:22px;color:var(--text);border-radius:6px;outline:none;flex:1;padding:0 10px;font-size:12px;font-weight:450}.search-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 2.5px var(--accent-soft)}.search-input::placeholder{color:var(--text-faint);font-weight:400}.search-clear{background:var(--surface-3);color:var(--text-muted);cursor:pointer;text-align:center;border:none;border-radius:50%;flex:none;width:18px;height:18px;font-size:10px;line-height:18px}.search-clear:hover{background:var(--border-strong);color:var(--text)}.search-range{width:84px;color:var(--text-faint);border-left:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;letter-spacing:.2px;flex:none;padding:0 8px;font-size:10px;font-weight:600;overflow:hidden}.spec-link{color:var(--link);font-size:11px;font-weight:650;text-decoration:underline}.spec-link:hover{color:var(--link-hover)}.spec-head.active{box-shadow:inset 0 0 0 1.5px var(--accent)}.offering-head .hcell-label{text-align:center}.col-offering{text-overflow:ellipsis;overflow:hidden;text-align:left!important;font-size:10.5px!important}.offering-primary{white-space:nowrap;align-items:center;gap:4px;font-weight:700;display:inline-flex}.offering-pattern{color:var(--text-muted);white-space:nowrap;margin-left:7px;font-size:9.5px}.rating-head .hcell-label{text-align:center}.col-rating,.col-difficulty,.col-workload{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:center!important}.col-rating{font-weight:700}.col-difficulty,.col-workload{color:var(--text-muted)}.term-mini{color:var(--term-ink);text-transform:uppercase;letter-spacing:.4px;text-align:center!important;font-size:10px!important;font-weight:700!important}.hist-break{font-size:12px;background:var(--surface-2)!important;text-align:center!important}.hist-gap{color:var(--text-muted);cursor:help;background:var(--surface-2)!important;text-align:center!important}.hist-total.first,.hist-left.first{color:var(--accent-ink);font-size:10.5px;background:var(--accent-soft)!important;text-align:center!important}.sheet-area{flex-direction:column;flex:1;min-height:0;display:flex}.grid-wrap{background:var(--surface);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;min-height:0;overflow:auto}.grid-wrap::-webkit-scrollbar{width:8px;height:8px}.grid-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.grid-wrap::-webkit-scrollbar-track{background:0 0}.grid{border-collapse:separate;border-spacing:0;color:var(--text);table-layout:fixed;width:max-content;font-size:12px;line-height:1.25}.grid th,.grid td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap;text-align:left;height:var(--row-h);vertical-align:middle;background-clip:padding-box;padding:2px 6px;font-weight:400;overflow:hidden}.rownum{z-index:3;background:var(--gutter-bg);color:var(--gutter-text);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;width:32px;min-width:32px;font-size:10px;font-weight:500;position:sticky;left:0;overflow:visible;text-align:center!important;border-right:1px solid var(--border-strong)!important}.row-resizer{cursor:row-resize;-webkit-user-select:none;user-select:none;touch-action:none;z-index:20;background:0 0;height:7px;position:absolute;bottom:0;left:0;right:0}.row-resizer:after{content:"";pointer-events:none;background:0 0;border-radius:1px;height:2px;transition:background .12s,left .12s,right .12s;position:absolute;top:50%;left:15%;right:15%;transform:translateY(-50%)}.row-resizer:hover:after,.row-resizer.isResizing:after{background:var(--accent);opacity:.85;left:0;right:0}.row-resizer:hover,.row-resizer.isResizing{background:color-mix(in srgb, var(--accent) 12%, transparent)}body.row-resizing,body.row-resizing *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}.letters-row th{z-index:4;background:var(--gutter-bg);color:var(--gutter-text);text-align:center;height:var(--letters-h);border-bottom:1px solid var(--border-strong);-webkit-user-select:none;user-select:none;letter-spacing:.2px;padding:0 4px;font-size:9.5px;font-weight:600;position:sticky;top:0}.corner-box{left:0;z-index:6!important;border-right:1px solid var(--border-strong)!important}.letters-row th:nth-child(2),.letters-row th.col-A,.letters-row .col-letter-A{box-shadow:1px 0 0 var(--border-strong);left:32px;z-index:5!important}.info-row .cell{background:var(--surface);height:20px;padding:1px 6px;font-size:11px;line-height:1.25}.info-row .rownum{height:20px}.info-note{color:var(--text-muted);font-weight:450;text-align:left!important;font-size:10.5px!important}.info-note b{color:var(--text);font-weight:600}.red-banner{color:var(--banner-ink);letter-spacing:.15px;text-align:center!important;font-size:10.5px!important;font-weight:600!important}.navy-cell{color:var(--accent-ink);background:var(--accent-soft)!important;text-align:center!important;font-size:11px!important;font-weight:600!important}.navy-sub{color:var(--accent-ink);opacity:.68;text-transform:uppercase;letter-spacing:.3px;font-size:9px;font-weight:500;display:block}.navy-date{font-variant-numeric:tabular-nums;font-size:11.5px!important;font-weight:700!important}.khaki-cell{color:var(--text-muted);background:var(--surface-2)!important;text-align:center!important;font-size:11px!important;font-weight:600!important}.khaki-sub{color:var(--text-faint);font-size:9.5px;font-weight:400;display:block}.cream-cell{font-size:11px;background:var(--surface)!important;text-align:center!important}.cream-link a{color:var(--link);font-size:11px;font-weight:550;text-decoration:none}.cream-link a:hover{text-decoration:underline}.link-a{background:var(--surface);color:var(--text)!important;font-weight:600!important}.cell-link a{color:var(--link);font-weight:500;text-decoration:none}.cell-link a:hover{text-decoration:underline}.specs-label{text-transform:uppercase;letter-spacing:.5px;background:var(--surface)!important;text-align:center!important;color:var(--text-faint)!important;font-size:10px!important;font-weight:700!important}.spec-name-cell{background:var(--surface-2)!important;text-align:center!important;font-size:11px!important;font-weight:600!important}.spec-name-cell a{color:var(--text);text-decoration:none}.spec-name-cell a:hover{color:var(--link);text-decoration:underline}.rule-label{text-transform:uppercase;letter-spacing:.4px;white-space:normal;word-break:break-word;text-align:center!important;font-size:9px!important;font-weight:700!important;line-height:1.2!important}.rule-label.rule-core{background:var(--core-bg)!important;color:var(--core-ink)!important}.rule-label.rule-elective{background:var(--elective-bg)!important;color:var(--elective-ink)!important}.rule-label.rule-free{background:var(--surface-2)!important;color:var(--text-muted)!important}.rule-cell{text-align:left!important;font-size:11px!important;font-weight:450!important;line-height:1.25!important}.rule-cell.rule-core{background:var(--core-bg)!important;color:var(--core-ink)!important}.rule-cell.rule-elective{background:var(--elective-bg)!important;color:var(--elective-ink)!important}.rule-cell.rule-free{background:var(--surface)!important;color:var(--text-muted)!important}.header-row th,.header-row td{top:var(--letters-h);z-index:2;height:var(--header-h);border-top:1px solid var(--border-strong);position:sticky;border-bottom:1px solid var(--border-strong)!important}.header-row .rownum{z-index:5;background:var(--gutter-bg)}.hcell{vertical-align:middle;letter-spacing:.15px;font-size:11px!important;font-weight:650!important}.hcell-inner{justify-content:space-between;align-items:center;gap:3px;padding-right:4px;display:flex}.gray-head .hcell-inner,.khaki-head .hcell-inner{justify-content:center}.hcell-label.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:inherit;overflow:hidden}.hcell-label.sortable:hover{color:var(--accent);text-decoration:none}.hcell.wrap-head .hcell-label.sortable{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;text-align:center;line-height:1.05}.col-menu-btn{width:16px;height:16px;color:var(--text-faint);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex:none;padding:0;font-size:9px;line-height:16px;transition:opacity .12s,background .12s}.hcell:hover .col-menu-btn,.col-menu-btn.active{opacity:1}.col-menu-btn:hover{background:var(--surface-3);color:var(--text)}.col-menu-btn.active{background:var(--accent);color:var(--accent-contrast);opacity:1}.hcell{position:relative;overflow:visible!important}.col-resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;z-index:20;background:0 0;width:10px;height:100%;position:absolute;top:0;right:0}.col-resizer:after{content:"";pointer-events:none;background:0 0;border-radius:1px;width:2px;transition:background .12s,top .12s,bottom .12s;position:absolute;top:15%;bottom:15%;left:50%;transform:translate(-50%)}.col-resizer:hover:after,.col-resizer.isResizing:after{background:var(--accent);opacity:.85;top:0;bottom:0}.col-resizer:hover,.col-resizer.isResizing{background:color-mix(in srgb, var(--accent) 12%, transparent)}.hcell.resizing{background:var(--accent-soft)!important}.grid th{overflow:visible}body.col-resizing,body.col-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.grid-wrap.is-resizing{overflow:auto}.col-menu-panel{z-index:80;background:var(--panel-bg);border:1px solid var(--border);box-shadow:var(--shadow-2);color:var(--text);text-align:left;border-radius:8px;padding:4px 0;font-size:12px;font-weight:400;position:fixed}.lock-menu-panel{min-width:232px;max-width:340px}.lock-menu-title{color:var(--text-muted);text-transform:none;letter-spacing:0;padding-top:1px;font-size:10.5px;font-weight:400;display:block}.cmp-row{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:5px 12px;font-size:12px;display:flex}.cmp-icon{text-align:center;flex:none;width:18px}.cmp-row:hover{background:var(--surface-2)}.cmp-row.on{background:var(--accent-soft);color:var(--accent-ink)}.cmp-sep{background:var(--border);height:1px;margin:4px 0}.cmp-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;padding:3px 12px 2px;font-size:10px;font-weight:700}.cmp-links{color:var(--text-muted);align-items:center;gap:5px;padding:1px 12px 3px;font-size:11px;display:flex}.cmp-links button{font:inherit;color:var(--link);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.cmp-links button:hover{text-decoration:underline}.cmp-search{padding:2px 10px 5px}.cmp-search input{box-sizing:border-box;border:1px solid var(--border-strong);width:100%;font:inherit;color:var(--text);background:var(--surface-2);border-radius:4px;padding:4px 7px;font-size:11.5px}.cmp-search input:focus{border-color:var(--accent);outline:none}.cmp-values{max-height:220px;padding:1px 0 3px;overflow-y:auto}.cmp-value{cursor:pointer;align-items:center;gap:7px;padding:3px 12px;font-size:11.5px;display:flex}.cmp-value:hover{background:var(--surface-2)}.cmp-value input{accent-color:var(--accent);flex:none;width:12px;height:12px;margin:0}.cmp-value-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cmp-value-label.blank{color:var(--text-muted);font-style:italic}.cmp-count{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:10px}.cmp-none{color:var(--text-muted);padding:6px 12px;font-size:11.5px}.navy-head{text-transform:uppercase;letter-spacing:.35px;background:var(--head-bg)!important;color:var(--text)!important;text-align:left!important;font-size:10.5px!important}.gray-head{text-transform:uppercase;letter-spacing:.3px;background:var(--head-spec-bg)!important;text-align:center!important;font-size:10.5px!important}.fake-link{color:var(--link);cursor:pointer;font-weight:600;text-decoration:none}.fake-link.active{color:var(--accent-ink);font-weight:800}.spec-head:hover{background:var(--surface-3)!important}.khaki-head{text-transform:uppercase;letter-spacing:.3px;background:var(--head-seat-bg)!important;text-align:center!important;font-size:10px!important}.sticky-code{z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border);position:sticky;left:32px}.header-row .sticky-code,.header-row .sheet-th.col-A{z-index:4;background:var(--head-bg);box-shadow:1px 0 0 var(--border-strong)}.cell{background:var(--surface)}.col-code a{color:var(--link);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:600;text-decoration:none}.col-code a:hover{text-decoration:underline}.col-title{text-overflow:ellipsis;letter-spacing:-.1px;font-weight:450;overflow:hidden}.title-sub{color:var(--text-muted);font-size:10.5px;font-weight:400}.title-req{color:var(--danger);font-size:10.5px;font-weight:600}.col-slack a{color:var(--text-muted);font-size:11px;text-decoration:none}.col-slack a:hover{color:var(--link);text-decoration:underline}.col-lang{color:var(--text-muted);font-size:11px;text-align:left!important}.col-found{font-size:12px;text-align:center!important}.data-row:hover td.cell:not(.mx-core):not(.mx-elective):not(.mx-both):not(.band-label):not(.band-note){background:var(--hover)}.data-row:hover td.cell.mx-empty{background:var(--hover)!important}.data-row.locked>td{top:calc(var(--letters-h) + var(--header-h) + var(--pin,0) * var(--row-h));z-index:5;background:var(--lock-bg);box-shadow:0 1px 0 var(--lock-border);position:sticky}.data-row.locked .rownum{z-index:6;background:var(--lock-bg)}.data-row.locked .sticky-code{z-index:6;box-shadow:1px 0 0 var(--border-strong), 0 1px 0 var(--lock-border)}.data-row.locked:hover td.cell:not(.mx-core):not(.mx-elective):not(.mx-both):not(.band-label):not(.band-note){background:var(--lock-bg)}.data-row.locked:hover td.cell.mx-empty{background:var(--lock-bg)!important}.row-lock-badge{-webkit-user-select:none;user-select:none;pointer-events:none;font-size:7.5px;line-height:1;position:absolute;top:0;left:1px}.mx-cell{letter-spacing:.15px;text-align:center!important;font-size:10.5px!important;font-weight:600!important}.mx-empty{background:var(--matrix-empty)!important}.mx-core,.mx-both{box-shadow:inset 0 0 0 1px var(--core-border);background:var(--core-bg)!important;color:var(--core-ink)!important}.mx-elective{box-shadow:inset 0 0 0 1px var(--elective-border);background:var(--elective-bg)!important;color:var(--elective-ink)!important}.col-seats{font-variant-numeric:tabular-nums;text-align:right!important;font-size:11px!important}.hist-left.full{color:var(--danger);font-weight:700}.band-row td{height:22px!important}.band-row .band-label{text-transform:uppercase;letter-spacing:.5px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background:var(--surface-2)!important;color:var(--text-muted)!important;font-size:10px!important;font-weight:700!important}.band-row .band-note{color:var(--text-muted);font-style:italic;background:var(--surface)!important;text-align:left!important;padding-left:12px!important;font-size:10.5px!important}.band-row .band-note em{font-style:normal}.band-row .band-note b{color:var(--text)}.empty-cell{color:var(--text-muted);padding:10px 14px;font-size:11.5px}.notes-sheet{background:var(--surface);flex:1;overflow:auto}.about-backdrop{z-index:100;background:#0f172a80;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}:root[data-theme=dark] .about-backdrop{background:#02061799}.about-panel{background:var(--panel-bg);border:1px solid var(--border);box-shadow:var(--shadow-2);border-radius:12px;width:min(560px,100%);max-height:min(80vh,640px);overflow:auto}.about-head{border-bottom:1px solid var(--border);background:var(--panel-bg);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 10px;display:flex;position:sticky;top:0}.about-head h2{color:var(--text);margin:0;font-size:15px;font-weight:700}.about-close{background:var(--surface-2);width:26px;height:26px;color:var(--text-muted);text-align:center;cursor:pointer;border:none;border-radius:6px;flex:none;font-size:12px;line-height:26px}.about-close:hover{background:var(--surface-3);color:var(--text)}.about-body{color:var(--text);padding:14px 16px 18px;font-size:12.5px;line-height:1.55}.about-body p{margin:0 0 10px}.about-body h3{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin:14px 0 6px;font-size:11.5px;font-weight:700}.about-body ul{margin:0 0 10px;padding-left:18px}.about-body li{margin:3px 0}.about-note{color:var(--text-muted);font-style:italic;font-size:11.5px!important}.whats-new-backdrop{z-index:105;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a8c;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out modalFadeIn;display:flex;position:fixed;inset:0}:root[data-theme=dark] .whats-new-backdrop{background:#020617a6}.whats-new-panel{background:var(--panel-bg);border:1px solid var(--border-strong);box-shadow:var(--shadow-2);border-radius:12px;flex-direction:column;width:min(620px,100%);max-height:min(85vh,680px);animation:.15s ease-out modalPopIn;display:flex;overflow:hidden}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.whats-new-head{border-bottom:1px solid var(--border);background:var(--panel-bg);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px 12px;display:flex}.whats-new-title-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.whats-new-icon{font-size:16px;line-height:1}.whats-new-head h2{color:var(--text);letter-spacing:-.2px;margin:0;font-size:15px;font-weight:700}.whats-new-version-pill{background:var(--accent-soft);color:var(--accent-ink);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.whats-new-close{background:var(--surface-2);width:26px;height:26px;color:var(--text-muted);text-align:center;cursor:pointer;border:none;border-radius:6px;flex:none;font-size:12px;line-height:26px;transition:background .1s,color .1s}.whats-new-close:hover{background:var(--surface-3);color:var(--text)}.whats-new-tabs{background:var(--surface-2);border-bottom:1px solid var(--border);flex:none;gap:4px;padding:8px 18px 0;display:flex;overflow-x:auto}.whats-new-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:11.5px;font-weight:600;transition:color .1s,background .1s;display:inline-flex}.whats-new-tab:hover{color:var(--text);background:var(--surface-3)}.whats-new-tab.active{color:var(--text);background:var(--panel-bg);border-bottom:2px solid var(--accent);font-weight:700}.whats-new-tab-latest{text-transform:uppercase;letter-spacing:.3px;background:var(--core-bg);color:var(--core-ink);border:1px solid var(--core-border);border-radius:4px;padding:1px 5px;font-size:9.5px;font-weight:700}.whats-new-body{flex-direction:column;flex:1;gap:14px;padding:16px 18px;display:flex;overflow-y:auto}.whats-new-meta{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:5px;padding:13px 15px;display:flex}.whats-new-meta-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:2px;display:flex}.whats-new-meta-label{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-size:10px;font-weight:700}.whats-new-meta-title{color:var(--text);letter-spacing:-.2px;margin:0;font-size:14.5px;font-weight:700;line-height:1.35}.whats-new-summary{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.welcomeback-dialog .whats-new-icon{filter:hue-rotate(160deg)}.welcomeback-lede{font-size:12.5px}.welcomeback-show-more{color:var(--accent,#4c7dff);cursor:pointer;background:0 0;border:none;border-radius:6px;align-self:flex-start;margin-top:2px;padding:4px 10px;font-size:11.5px;font-weight:600}.welcomeback-show-more:hover{text-decoration:underline}.welcomeback-pulse{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:flex-start;gap:10px;margin-top:10px;padding:10px 14px;display:flex}.welcomeback-pulse.pulse-active{background:#ffaa0014;border-color:#ffaa008c}.welcomeback-pulse.pulse-upcoming{background:#4caf5014;border-color:#4caf5073}.welcomeback-pulse-icon{font-size:16px;line-height:1.4}.welcomeback-pulse-text{color:var(--text);margin:0;font-size:12px;line-height:1.5}.welcomeback-recap-group{flex-direction:column;gap:8px;display:flex}.welcomeback-recap-head{align-items:center;gap:8px;display:flex}.welcomeback-recap-version{letter-spacing:.3px;color:var(--text-muted);border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}.welcomeback-recap-title{color:var(--text);letter-spacing:-.2px;font-size:12.5px;font-weight:700}.welcomeback-item{cursor:default}.whats-new-items-list{flex-direction:column;gap:10px;display:flex}.whats-new-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:10px 14px;transition:border-color .15s,box-shadow .15s,transform .15s,background .15s}.whats-new-item:hover,.whats-new-item:focus-visible,.whats-new-item.spotlight-active{border-color:var(--accent);background:var(--surface-2);box-shadow:var(--shadow-2);outline:none;transform:translateY(-1px)}.ui-feature-spotlight-active{outline:3px solid var(--accent)!important;outline-offset:3px!important;box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 40%, transparent), 0 0 24px color-mix(in srgb, var(--accent) 60%, transparent)!important;z-index:99999!important;animation:1.5s ease-in-out infinite pulseSpotlightTarget!important;position:relative!important}@keyframes pulseSpotlightTarget{0%,to{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 20px color-mix(in srgb, var(--accent) 50%, transparent)}50%{box-shadow:0 0 0 9px color-mix(in srgb, var(--accent) 55%, transparent), 0 0 32px color-mix(in srgb, var(--accent) 75%, transparent)}}.spotlight-beacon-portal{pointer-events:none;z-index:100000;transition:all .18s cubic-bezier(.16,1,.3,1);position:fixed}.spotlight-beacon-ring{border:2px solid var(--accent);box-shadow:0 0 16px color-mix(in srgb, var(--accent) 75%, transparent), inset 0 0 10px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:8px;animation:1.6s ease-in-out infinite pulseSpotlightGlow;position:absolute;inset:0}.spotlight-beacon-radar{border:2px solid color-mix(in srgb, var(--accent) 70%, transparent);border-radius:14px;animation:1.6s cubic-bezier(0,0,.2,1) infinite radarPing;position:absolute;inset:-12px}.spotlight-beacon-tooltip{background:var(--accent);color:#fff;white-space:nowrap;letter-spacing:.01em;z-index:100000;pointer-events:none;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:700;display:flex;position:absolute;box-shadow:0 4px 16px #00000059,0 0 0 1px #ffffff2e}.spotlight-beacon-portal.placement-above .spotlight-beacon-tooltip,.spotlight-beacon-tooltip{inset:auto auto calc(100% + 8px) 50%;transform:translate(-50%)}.spotlight-beacon-portal.placement-above .spotlight-beacon-tooltip:after,.spotlight-beacon-tooltip:after{content:"";top:100%;bottom:auto;left:var(--arrow-left,50%);border-style:solid;border-width:5px;border-color:var(--accent) transparent transparent transparent;position:absolute;right:auto;transform:translate(-50%)}.spotlight-beacon-portal.placement-below .spotlight-beacon-tooltip{inset:calc(100% + 8px) auto auto 50%;transform:translate(-50%)}.spotlight-beacon-portal.placement-below .spotlight-beacon-tooltip:after{content:"";top:auto;bottom:100%;left:var(--arrow-left,50%);border-style:solid;border-width:5px;border-color:transparent transparent var(--accent) transparent;position:absolute;right:auto;transform:translate(-50%)}.spotlight-beacon-portal.placement-right .spotlight-beacon-tooltip{inset:50% auto auto calc(100% + 12px);transform:translateY(-50%)}.spotlight-beacon-portal.placement-right .spotlight-beacon-tooltip:after{content:"";left:auto;right:100%;top:var(--arrow-top,50%);border-style:solid;border-width:5px;border-color:transparent var(--accent) transparent transparent;position:absolute;bottom:auto;transform:translateY(-50%)}.spotlight-beacon-portal.placement-left .spotlight-beacon-tooltip{inset:50% calc(100% + 12px) auto auto;transform:translateY(-50%)}.spotlight-beacon-portal.placement-left .spotlight-beacon-tooltip:after{content:"";left:100%;right:auto;top:var(--arrow-top,50%);border-style:solid;border-width:5px;border-color:transparent transparent transparent var(--accent);position:absolute;bottom:auto;transform:translateY(-50%)}@keyframes pulseSpotlightGlow{0%,to{box-shadow:0 0 15px color-mix(in srgb, var(--accent) 70%, transparent), inset 0 0 10px color-mix(in srgb, var(--accent) 40%, transparent);transform:scale(1)}50%{box-shadow:0 0 25px color-mix(in srgb, var(--accent) 90%, transparent), inset 0 0 15px color-mix(in srgb, var(--accent) 60%, transparent);transform:scale(1.02)}}@keyframes radarPing{0%{opacity:.85;transform:scale(.95)}to{opacity:0;transform:scale(1.25)}}.whats-new-item-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.badge-tag{text-transform:uppercase;letter-spacing:.4px;border-radius:4px;align-items:center;padding:2px 6px;font-size:9.5px;font-weight:700;line-height:1.2;display:inline-flex}.badge-tag-new{background:var(--core-bg);color:var(--core-ink);border:1px solid var(--core-border)}.badge-tag-improvement{background:var(--accent-soft);color:var(--accent-ink);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent)}.badge-tag-fix{background:var(--warning-soft);color:var(--warning);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent)}.whats-new-item-title{color:var(--text);font-size:12.5px;font-weight:650}.whats-new-item-desc{color:var(--text-muted);margin:0;padding-left:2px;font-size:12px;line-height:1.45}.whats-new-footer{background:var(--surface);border-top:none;flex:none;justify-content:center;align-items:center;gap:12px;padding:12px 18px;display:flex}.whats-new-footer-info{color:var(--text-muted);font-size:11.5px;font-style:italic}.whats-new-dismiss-btn{background:var(--btn-bg);color:var(--btn-text);cursor:pointer;border:none;border-radius:8px;padding:9px 28px;font-family:inherit;font-size:14px;font-weight:600;transition:background .12s,transform 50ms;box-shadow:0 1px 2px #00000014}.whats-new-dismiss-btn:hover{background:var(--btn-hover)}.whats-new-dismiss-btn:active{transform:translateY(1px)}.whats-new-dismiss-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.notes-table{border-collapse:separate;border-spacing:0;min-width:100%;color:var(--text);font-size:11.5px;line-height:1.4}.notes-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);white-space:normal;max-width:900px;padding:4px 8px}.tab-bar{background:var(--surface);border-top:1px solid var(--border-strong);height:var(--tab-h);-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:1px;padding:0 6px;display:flex}.sheet-tab{letter-spacing:.2px;color:var(--text-muted);border:none;border-right:1px solid var(--border);height:var(--tab-h);cursor:pointer;text-transform:uppercase;background:0 0;padding:0 12px;font-family:inherit;font-size:11px;font-weight:600}.sheet-tab:first-of-type{border-left:1px solid var(--border)}.sheet-tab.active{background:var(--surface);color:var(--text);box-shadow:inset 0 2px 0 var(--accent), inset 0 -1px 0 var(--surface);border-bottom:1px solid var(--surface);font-weight:700}.sheet-tab:hover:not(.active){background:var(--surface-2);color:var(--text)}.app-workspace{flex-direction:row;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.workspace-content{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.sidebar-container{z-index:15;flex-direction:row;flex-shrink:0;height:100%;display:flex;position:relative}.activity-bar{background:var(--surface);border-right:1px solid var(--border);z-index:20;flex-direction:column;justify-content:space-between;align-items:center;width:46px;min-width:46px;padding:6px 0;display:flex}.activity-bar-top,.activity-bar-bottom{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.activity-btn{width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.activity-btn:hover{background:var(--surface-2);color:var(--text)}.activity-btn.active{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 2.5px 0 0 var(--accent);font-weight:600}.activity-icon{flex-shrink:0;width:18px;height:18px}.activity-badge{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:15px;height:15px;padding:0 4px;font-size:9px;font-weight:700;line-height:1;display:flex;position:absolute;top:3px;right:3px}.activity-tooltip{background:var(--text);color:var(--surface);white-space:nowrap;pointer-events:none;opacity:0;z-index:999;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500;transition:opacity .15s;position:absolute;top:50%;left:50px;transform:translateY(-50%);box-shadow:0 2px 8px #00000026}.activity-btn:hover .activity-tooltip{opacity:1}.sidebar-container.is-open .activity-bar-top .activity-tooltip{display:none}.sidebar-drawer{background:var(--surface);border-right:1px solid var(--border);will-change:width;flex-direction:column;width:min(430px,92vw);height:100%;transition:width .22s cubic-bezier(.2,0,0,1),opacity .18s;display:flex;overflow:hidden}.sidebar-container.is-closed .sidebar-drawer{opacity:0;pointer-events:none;visibility:hidden;border-right-color:#0000;width:0}.sidebar-drawer-inner{flex-direction:column;flex:1;width:100%;min-width:0;max-width:430px;height:100%;min-height:0;display:flex}.sidebar-drawer-header{border-bottom:1px solid var(--border);background:var(--surface-2);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.sidebar-title{color:var(--text);margin:0;font-size:13px;font-weight:700;line-height:1.2}.sidebar-subtitle{color:var(--text-muted);margin-top:1px;font-size:10.5px;display:block}.sidebar-close-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:24px;height:24px;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;font-size:11px;transition:all .15s;display:flex}.sidebar-close-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.sidebar-drawer-content{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;min-height:0;padding:12px;overflow:hidden auto}.col-code,.cell-course-code,.sheet-td.col-A{box-sizing:border-box;min-width:110px;padding:2px 6px}.col-code-inner{white-space:nowrap;align-items:center;gap:5px;width:100%;min-width:0;display:flex}.code-link,.code-text{font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.1px;flex:none;font-size:11.5px;font-weight:600}.row-star-btn{color:var(--text-muted);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:0 2px;font-size:13px;line-height:1;transition:opacity .12s,color .12s,transform .1s;display:inline-flex}.data-row:hover .row-star-btn,.row-star-btn.starred{opacity:1}.row-star-btn:hover{color:#e37400;transform:scale(1.15)}.row-star-btn.starred{color:#e37400;font-weight:700}.row-intel-btn{cursor:pointer;color:var(--text-muted);opacity:0;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:1px 3px;font-size:11px;transition:all .12s;display:inline-flex}.data-row:hover .row-intel-btn{opacity:.85}.row-intel-btn:hover{background:var(--surface-2);color:var(--accent);opacity:1}.ext-reviews-panel{flex-direction:column;gap:12px;display:flex}.ext-reviews-search-section{flex-direction:column;gap:8px;display:flex}.ext-search-input-wrapper{align-items:center;width:100%;display:flex;position:relative}.ext-search-icon{opacity:.6;pointer-events:none;font-size:12px;position:absolute;left:10px}.ext-search-input{border:1px solid var(--border-strong);background:var(--surface);width:100%;height:32px;color:var(--text);border-radius:6px;padding:0 28px;font-size:11.5px;transition:border-color .15s,box-shadow .15s}.ext-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.ext-search-clear-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 5px;font-size:11px;position:absolute;right:6px}.ext-program-chips-row{flex-wrap:wrap;gap:4px;display:flex}.ext-program-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:12px;padding:3px 9px;font-size:10.5px;font-weight:500;transition:all .15s}.ext-program-chip:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.ext-program-chip.active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.ext-course-list-wrapper{flex-direction:column;gap:8px;display:flex}.ext-list-header{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:10.5px;font-weight:600;display:flex}.ext-cards-scroll-container{flex-direction:column;gap:7px;display:flex}.ext-course-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;flex-direction:column;gap:4px;padding:9px 11px;transition:all .12s;display:flex}.ext-course-card:hover{border-color:var(--accent);background:var(--surface-2);transform:translateY(-1px);box-shadow:0 3px 8px #0000000f}.ext-course-card-top{justify-content:space-between;align-items:center;display:flex}.ext-card-code-col{align-items:center;gap:6px;display:flex}.ext-card-star-btn{color:var(--text-faint);cursor:pointer;opacity:.75;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:14px;line-height:1;transition:opacity .12s,color .12s,transform .12s cubic-bezier(.34,1.56,.64,1);display:inline-flex}.ext-course-card:hover .ext-card-star-btn,.ext-card-star-btn.starred{opacity:1}.ext-card-star-btn:hover{color:#e37400;transform:scale(1.22)}.ext-card-star-btn.starred{color:#e37400;font-weight:700}.ext-card-star-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ext-card-code{color:var(--text);font-size:12px;font-weight:700}.ext-card-aka{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.ext-card-score-col{align-items:center;gap:6px;font-size:11px;display:flex}.ext-card-rating{color:#b78103;font-weight:700}.ext-card-workload{color:var(--text-muted);background:var(--surface-2);border-radius:3px;padding:1px 4px;font-size:10px}.ext-card-title{color:var(--text);font-size:11.5px;line-height:1.3}.ext-card-footer{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.ext-card-sentiment{color:var(--text-muted);font-size:10px;font-style:italic}.ext-card-diff-tag{text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:700}.ext-no-results{text-align:center;color:var(--text-muted);padding:24px 12px;font-size:11px}.ext-course-intel-detail{flex-direction:column;gap:12px;display:flex}.ext-detail-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.ext-back-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:4px 9px;font-size:11px;font-weight:600;transition:all .12s}.ext-back-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.ext-detail-star-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:4px 9px;font-size:11px;font-weight:600;transition:all .12s}.ext-detail-star-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.ext-detail-star-btn.starred{color:#b78103;background:#fff8e1;border-color:#ffd54f}.ext-hero-card{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.ext-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.ext-hero-code-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ext-hero-code{color:var(--text);font-size:15px;font-weight:800}.ext-hero-aka{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.ext-hero-foundational{color:#137333;background:#e6f4ea;border:1px solid #ceead6;border-radius:8px;padding:1px 6px;font-size:9.5px;font-weight:700}.ext-hero-credits{color:var(--text-muted);font-size:11px;font-weight:600}.ext-hero-title{color:var(--text);margin:0;font-size:13px;font-weight:700;line-height:1.35}.ext-hero-formerly{color:var(--text-muted);font-size:10.5px;font-style:italic}.ext-review-metrics-section{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;flex-direction:column;gap:10px;padding:12px;display:flex}.ext-scorecard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ext-scorecard-title-col{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.ext-section-heading{align-items:center;gap:6px;display:flex}.ext-section-icon{font-size:14px}.ext-section-heading h4{color:var(--text);margin:0;font-size:12px;font-weight:700}.ext-scorecard-attribution{color:var(--text-muted);font-size:9.5px;line-height:1.25}.ext-scorecard-portals{flex-shrink:0;align-items:center;gap:5px;padding-top:1px;display:flex}.ext-mini-portal-btn{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);border-radius:4px;align-items:center;gap:4.5px;padding:3px 7px;font-size:10.5px;font-weight:600;line-height:1;text-decoration:none;transition:all .15s;display:inline-flex}.ext-mini-portal-btn:hover{background:var(--surface);border-color:var(--accent);color:var(--text);text-decoration:none;transform:translateY(-1px);box-shadow:0 2px 5px #00000014}.ext-mini-btn-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.dot-omshub{background:#f59e0b;box-shadow:0 0 0 1px #f59e0b40}.dot-omscentral{background:#0284c7;box-shadow:0 0 0 1px #0284c740}.ext-mini-btn-text{letter-spacing:-.1px}.ext-mini-btn-arrow{color:var(--text-muted);opacity:.8;font-size:9px;transition:transform .12s}.ext-mini-portal-btn:hover .ext-mini-btn-arrow{color:var(--accent);transform:translate(1px,-1px)}.ext-review-count-badge{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:1px 6px;font-size:10px;font-weight:600}.ext-metrics-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ext-metric-card{background:var(--surface-2);border:1px solid var(--border);text-align:center;border-radius:6px;flex-direction:column;align-items:center;gap:3px;padding:8px;display:flex}.ext-metric-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:9.5px;font-weight:700}.ext-rating-score-row,.ext-workload-val-row,.ext-diff-val-row{align-items:baseline;gap:2px;display:flex}.ext-rating-number{color:#b78103;font-size:16px;font-weight:800}.ext-rating-max{color:var(--text-muted);font-size:10px}.ext-stars-wrapper{color:#e37400;font-size:11px}.ext-sentiment-tag{color:var(--text-muted);margin-top:2px;font-size:9px;font-weight:600;line-height:1.2}.ext-workload-number{color:var(--text);font-size:16px;font-weight:800}.ext-workload-unit{color:var(--text-muted);font-size:10px;font-weight:600}.ext-workload-bar-bg{background:var(--border);border-radius:2px;width:100%;height:4px;margin:3px 0;overflow:hidden}.ext-workload-bar-fill{background:var(--accent);border-radius:2px;height:100%}.ext-workload-hint{color:var(--text-muted);font-size:8.5px}.ext-diff-number{color:var(--text);font-size:16px;font-weight:800}.ext-diff-max{color:var(--text-muted);font-size:10px}.ext-diff-pill{text-transform:uppercase;border-radius:4px;margin-top:2px;padding:2px 6px;font-size:9px;font-weight:700}.diff-easy{color:#137333;background:#e6f4ea}.diff-medium{color:#b06000;background:#fef7e0}.diff-hard{color:#c5221f;background:#fce8e6}.diff-very-hard{color:#721c24;background:#f8d7da;font-weight:800}.ext-takeaways-card{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;margin-top:4px;padding:10px 12px}.ext-takeaways-header{align-items:center;gap:5px;margin-bottom:6px;display:flex}.ext-takeaways-icon{font-size:12px}.ext-takeaways-header h5{color:var(--text);margin:0;font-size:11px;font-weight:700}.ext-takeaways-list{flex-direction:column;gap:4px;margin:0;padding-left:16px;display:flex}.ext-takeaway-item{color:var(--text);font-size:10.5px;line-height:1.35}.ext-detail-section{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.ext-subheading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin:0;font-size:11px;font-weight:700}.ext-langs-row{flex-wrap:wrap;gap:4px;display:flex}.ext-lang-badge{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:2px 7px;font-size:10.5px;font-weight:600}.ext-lang-badge.muted{color:var(--text-muted);font-style:italic;font-weight:400}.ext-specs-list{flex-direction:column;gap:5px;display:flex}.ext-spec-chip{border:1px solid var(--border);background:var(--surface);border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:5px 8px;display:flex}.ext-spec-prog{color:var(--text-muted);text-transform:uppercase;font-size:9px;font-weight:700}.ext-spec-name{color:var(--text);flex:1;font-size:10.5px;font-weight:600}.ext-spec-role{border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700}.ext-spec-role.core{background:var(--mx-core);color:var(--mx-core-ink)}.ext-spec-role.elective{background:var(--mx-elective);color:var(--mx-elective-ink)}.ext-seats-table-wrapper{border:1px solid var(--border);border-radius:4px;overflow-x:auto}.ext-seats-table{border-collapse:collapse;width:100%;font-size:10px}.ext-seats-table th{background:var(--surface-2);text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:4px 6px;font-weight:700}.ext-seats-table td{border-bottom:1px solid var(--border);color:var(--text);padding:4px 6px}.seat-term-name{color:var(--text);font-weight:400}.seat-status-pill{border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700}.seat-status-pill.offered{color:#137333;background:#e6f4ea}.seat-status-pill.not-offered{background:var(--surface-2);color:var(--text-muted)}.ext-links-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.ext-portal-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:5px;flex-direction:column;padding:7px 9px;font-size:11px;font-weight:600;text-decoration:none;transition:all .12s;display:flex}.ext-portal-btn:hover{border-color:var(--accent);background:var(--surface-2);transform:translateY(-1px)}.ext-portal-sub{color:var(--text-muted);margin-top:1px;font-size:9.5px;font-weight:400}.ext-watchlist-panel{flex-direction:column;gap:12px;display:flex}.ext-header-area{padding-bottom:4px}.ext-header-icon-group{align-items:flex-start;gap:8px;display:flex}.ext-header-badge-icon{font-size:18px;line-height:1}.ext-panel-heading{color:var(--text);margin:0;font-size:13px;font-weight:700;line-height:1.2}.ext-panel-subheading{color:var(--text-muted);margin:2px 0 0;font-size:10.5px}.ext-stats-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.ext-stat-card{background:var(--surface-2);border:1px solid var(--border);text-align:center;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:7px 4px;display:flex}.ext-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:9px;font-weight:700}.ext-stat-val{color:var(--text);font-size:11px}.ext-stat-val strong{color:var(--text);font-size:14px;font-weight:800}.ext-add-form{flex-direction:column;gap:4px;width:100%;display:flex}.ext-field-label{color:var(--text-muted);font-size:11px;font-weight:700}.ext-add-input-group{align-items:center;gap:6px;width:100%;display:flex}.ext-add-select{border:1px solid var(--border-strong);background:var(--surface);min-width:0;height:30px;color:var(--text);border-radius:4px;flex:1;padding:0 6px;font-size:11px}.ext-add-select:focus{border-color:var(--accent);outline:none}.ext-add-btn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;flex-shrink:0;height:30px;padding:0 12px;font-size:11px;font-weight:700;transition:opacity .12s}.ext-add-btn:hover:not(:disabled){opacity:.92}.ext-add-btn:disabled{opacity:.45;cursor:not-allowed}.ext-empty-watchlist{text-align:center;background:var(--surface-2);border:1px dashed var(--border-strong);color:var(--text-muted);border-radius:6px;padding:24px 14px}.ext-empty-icon{margin-bottom:6px;font-size:22px}.ext-empty-watchlist h4{color:var(--text);margin:0 0 4px;font-size:12px;font-weight:700}.ext-empty-watchlist p{margin:0;font-size:10.5px;line-height:1.4}.inline-star{color:#e37400;font-size:13px}.ext-semester-groups,.ext-groups-list{flex-direction:column;gap:10px;display:flex}.ext-sem-section{border:1px solid var(--border);background:var(--surface);border-radius:6px;overflow:hidden}.ext-sem-header{background:var(--surface-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.ext-sem-title-row{align-items:center;gap:5px;display:flex}.ext-sem-pill-icon{font-size:11px}.ext-sem-title{color:var(--text);margin:0;font-size:11.5px;font-weight:700}.ext-sem-badge{color:var(--text-muted);font-size:10px;font-weight:600}.ext-sem-items{flex-direction:column;gap:6px;padding:8px;display:flex}.ext-sem-empty-hint{color:var(--text-muted);padding:4px;font-size:10px;font-style:italic}.ext-plan-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;padding:8px 10px}.ext-plan-card-main{flex-direction:column;gap:5px;display:flex}.ext-plan-card-header{justify-content:space-between;align-items:center;display:flex}.ext-code-group{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.ext-plan-code{color:var(--text);font-size:12px;font-weight:800}.ext-aka-badge{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:3px;padding:1px 4px;font-size:9.5px;font-weight:600}.ext-plan-credits{color:var(--text-muted);font-size:10px;font-weight:600}.ext-program-tag{color:var(--accent-ink);background:#1a73e81a;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700}.ext-card-actions{align-items:center;gap:4px;display:flex}.ext-intel-btn{border:1px solid var(--border);background:var(--surface);color:var(--link);cursor:pointer;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600;transition:all .12s}.ext-intel-btn:hover{background:var(--surface-2);border-color:var(--link)}.ext-remove-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:3px;padding:2px 6px;font-size:10px;transition:all .12s}.ext-remove-btn:hover{color:var(--danger);border-color:var(--danger);background:var(--surface-2)}.ext-plan-title{color:var(--text);font-size:11px;line-height:1.3}.ext-plan-sem-row{align-items:center;gap:6px;margin-top:2px;display:flex}.ext-sem-label{color:var(--text-muted);flex-shrink:0;font-size:10px;font-weight:600}.ext-sem-select{border:1px solid var(--border);background:var(--surface);min-width:0;height:24px;color:var(--text);border-radius:3px;flex:1;padding:0 4px;font-size:10px}.ext-plan-notes{color:var(--text-muted);cursor:pointer;padding:2px 0;font-size:10.5px}.ext-has-notes{color:var(--text);font-style:italic}.ext-add-notes-btn{color:var(--link);font-size:10px}.ext-notes-edit-area{flex-direction:column;gap:4px;margin-top:4px;display:flex}.ext-notes-input{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:4px;padding:4px 6px;font-size:10.5px}.ext-notes-actions{justify-content:flex-end;gap:4px;display:flex}.ext-save-note-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:3px 8px;font-size:10px;font-weight:700}.ext-cancel-note-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:3px;padding:3px 8px;font-size:10px}.ext-planner-footer{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.ext-footer-btn-row{gap:6px;display:flex}.ext-btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;flex:1;height:30px;font-size:11px;font-weight:700;transition:opacity .12s}.ext-btn-primary:hover{opacity:.92}.ext-btn-secondary{background:var(--surface);height:30px;color:var(--danger);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:0 10px;font-size:10.5px;font-weight:600;transition:all .12s}.ext-btn-secondary:hover{background:var(--surface-2);border-color:var(--danger)}.ext-copy-feedback{color:#137333;text-align:center;background:#e6f4ea;border-radius:4px;padding:4px 8px;font-size:10.5px;font-weight:600}.ext-calendar-panel{flex-direction:column;gap:12px;display:flex}.ext-calendar-empty-box{text-align:center;background:var(--surface-2);border:1px dashed var(--border-strong);color:var(--text-muted);border-radius:6px;padding:24px 14px}.ext-calendar-empty-box h4{color:var(--text);margin:0 0 4px;font-size:12px;font-weight:700}.ext-calendar-empty-box p{margin:0;font-size:10.5px;line-height:1.4}.ext-violations-disclosure{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:11px}.ext-violations-summary{cursor:pointer;color:var(--warning);-webkit-user-select:none;user-select:none;outline:none;font-weight:600}.ext-violations-list{color:var(--text-muted);margin:6px 0 2px;padding-left:18px;font-size:10.5px;line-height:1.4}.ext-violations-item{margin-bottom:3px}.ext-calendar-term-selector{scrollbar-width:thin;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.ext-calendar-term-tab{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.ext-calendar-term-tab:hover{border-color:var(--border-strong);color:var(--text);background:var(--surface)}.ext-calendar-term-tab.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 1px 2px #0000000d}.ext-term-tab-label{line-height:1}.ext-term-tab-count{opacity:.8;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1px 5px;font-size:9.5px;font-weight:700;line-height:1.1}.ext-calendar-term-tab.active .ext-term-tab-count{background:var(--accent);color:var(--accent-contrast);border-color:#0000}.ext-calendar-filter-bar{flex-direction:column;gap:8px;display:flex}.ext-calendar-search-box{align-items:center;display:flex;position:relative}.ext-calendar-search-input{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;outline:none;padding:6px 28px;font-size:11px;transition:border-color .15s}.ext-calendar-search-input:focus{border-color:var(--accent);background:var(--surface)}.ext-calendar-category-chips{flex-wrap:wrap;gap:4px;display:flex}.ext-cal-chip{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:500;transition:all .12s}.ext-cal-chip:hover{border-color:var(--border-strong);color:var(--text)}.ext-cal-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.ext-calendar-section{border:1px solid var(--border);background:var(--surface);border-radius:6px;overflow:hidden}.ext-calendar-events-list{flex-direction:column;gap:6px;padding:8px;display:flex}.ext-calendar-event-card{border:1px solid var(--border);background:var(--surface);border-radius:5px;flex-direction:column;gap:6px;padding:8px 10px;transition:border-color .12s,box-shadow .12s;display:flex}.ext-calendar-event-card:hover{border-color:var(--border-strong)}.ext-calendar-event-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ext-calendar-event-title-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ext-calendar-event-icon{font-size:13px;line-height:1}.ext-calendar-category-badge{text-transform:uppercase;letter-spacing:.3px;color:var(--accent-ink);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:4px;padding:1px 6px;font-size:9.5px;font-weight:700;line-height:1.2}.ext-calendar-session-badge{color:var(--warning);background:var(--warning-soft);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:4px;padding:1px 6px;font-size:9.5px;font-weight:700;line-height:1.2}.ext-calendar-event-datetime{color:var(--text-muted);align-items:center;gap:5px;font-size:10.5px;display:flex}.ext-calendar-event-date{color:var(--text);font-weight:600}.ext-calendar-event-text{color:var(--text);font-size:11px;line-height:1.4}.ext-calendar-footer{border-top:1px solid var(--border);color:var(--text-muted);flex-direction:column;gap:5px;margin-top:8px;padding-top:8px;font-size:10px;display:flex}.ext-calendar-updated{color:var(--text-muted)}.ext-calendar-sources{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ext-sources-label{color:var(--text-muted);font-weight:600}.ext-source-link{color:var(--link);font-weight:600;text-decoration:none}.ext-source-link:hover{text-decoration:underline}.state{text-align:center;color:var(--text-muted);padding:40px;font-size:13px}.state.error{color:var(--danger)}.state code{background:var(--surface-2);border-radius:4px;padding:1px 4px;font-size:12px}@media (width<=768px){.chrome-menus{display:none}.toolbar{gap:6px;padding:4px 8px}.search-range,.tb-count{display:none}.chrome-title{font-size:12.5px}.chrome-top{padding:4px 8px 2px}.whats-new-btn-text{display:none}.whats-new-btn{padding:3px 6px}.whats-new-panel{width:95%;max-height:90vh}.whats-new-head{padding:12px 14px}.whats-new-body{gap:10px;padding:12px 14px}.whats-new-footer{padding:10px 14px}.col-code,.cell-course-code,.sheet-td.col-A,.sheet-th.col-A{min-width:112px}.col-code-inner{gap:4px}.code-link,.code-text{font-size:11px}.row-star-btn,.ext-card-star-btn{opacity:.85;font-size:13px}.row-intel-btn{opacity:.75;font-size:11px}}@media (width<=480px){.col-code,.cell-course-code,.sheet-td.col-A,.sheet-th.col-A{min-width:110px}.col-code-inner{gap:3px}.code-link,.code-text{letter-spacing:-.15px;font-size:11px}.row-star-btn,.ext-card-star-btn{opacity:.9;padding:0 1px;font-size:13px}.row-intel-btn{opacity:.8;padding:1px 2px;font-size:10.5px}}.ext-phase-flow{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px 8px}.ext-phase-flow-header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.ext-phase-flow-title{color:var(--text);letter-spacing:.02em;font-size:11px;font-weight:700}.ext-phase-flow-range{color:var(--text-muted);white-space:nowrap;font-size:10px}.ext-phase-flow-canvas{position:relative}.ext-phase-flow-axis{height:14px;margin-bottom:2px;position:relative}.ext-phase-tick{color:var(--text-muted);white-space:nowrap;background:var(--surface-2);padding:0 3px;font-size:9px;font-weight:600;line-height:1.4;position:absolute;top:0;transform:translate(-50%)}.ext-phase-tick-start{transform:translate(0)}.ext-phase-tick-end{transform:translate(-100%)}.ext-phase-flow-lanes{position:relative}.ext-phase-lanes-has-today{margin-bottom:13px}.ext-phase-lane{height:30px;position:relative}.ext-phase-gridline{background:var(--border);opacity:.6;width:1px;position:absolute;top:0;bottom:0}.ext-phase-bar{white-space:nowrap;border-radius:12px;justify-content:space-between;align-items:center;gap:6px;height:24px;padding:0 8px;font-size:9.5px;font-weight:700;transition:filter .15s;display:flex;position:absolute;top:3px;overflow:hidden;box-shadow:0 1px 3px #0000001f}.ext-phase-bar:hover{filter:brightness(1.08)}.ext-phase-bar-compact{letter-spacing:-.01em;justify-content:center;padding:0 4px;font-size:8.5px}.ext-phase-bar-label{text-overflow:ellipsis;overflow:hidden}.ext-phase-bar-status{opacity:.85;flex-shrink:0;font-size:8.5px;font-weight:600}.ext-phase-bar-active{background:var(--accent);color:var(--accent-contrast);box-shadow:0 1px 4px color-mix(in srgb, var(--accent) 45%, transparent)}.ext-phase-bar-upcoming{background:color-mix(in srgb, var(--accent) 15%, var(--surface-2));color:var(--accent-ink);border:1px solid color-mix(in srgb, var(--accent) 70%, var(--border-strong));box-shadow:0 1px 2px #00000014}.ext-phase-bar-past{background:color-mix(in srgb, var(--text) 8%, var(--surface-2));color:var(--text-muted);border:1px solid color-mix(in srgb, var(--text) 18%, var(--surface-2));box-shadow:0 1px 2px #00000014}.ext-phase-today{background:var(--warning,#d97706);z-index:2;width:2px;position:absolute;top:-2px;bottom:0}.ext-phase-today-flag{color:var(--warning,#d97706);white-space:nowrap;margin-top:2px;font-size:8px;font-weight:700;position:absolute;top:100%;left:50%;transform:translate(-50%)}.ext-phase-today-end .ext-phase-today-flag{left:auto;right:0;transform:none}.ext-phase-today-start .ext-phase-today-flag{left:0;transform:none}.ext-phase-flow-legend{flex-direction:column;gap:2px;margin:6px 0 0;padding:0;list-style:none;display:flex}.ext-phase-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:9.5px;line-height:1.4;display:flex}.ext-phase-legend-item strong{color:var(--text);font-weight:700}.ext-phase-legend-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.ext-phase-legend-dot-past,.ext-phase-legend-dot.ext-phase-bar-past{background:var(--text-faint);border:none}.ext-phase-legend-dot-upcoming,.ext-phase-legend-dot.ext-phase-bar-upcoming{background:var(--accent-ink);border:none}.ext-phase-legend-dot-active,.ext-phase-legend-dot.ext-phase-bar-active{background:var(--accent);border:none}@media (width<=480px){.ext-phase-flow{padding:8px 8px 6px}.ext-phase-tick-mid,.ext-phase-bar-status{display:none}.ext-phase-bar{justify-content:center;padding:0 4px}.ext-phase-flow-legend{gap:1px}}@media print{.app,.sheet-area,.grid-wrap{height:auto;overflow:visible}.letters-row th,.header-row th,.header-row td,.rownum,.sticky-code{position:static!important}.toolbar,.formula-bar,.tab-bar,.share-btn,.theme-btn,.theme-switch,.whats-new-btn,.whats-new-backdrop,.about-backdrop,.chrome-menus,.col-menu-btn,.col-menu-panel,.menu-panel,.col-resizer,.row-resizer{display:none!important}.grid{font-size:9px}.grid tr{break-inside:avoid}}.ext-grades-panel{flex-direction:column;gap:12px;display:flex}.ext-grades-source-note{color:var(--text-muted);margin:0;font-size:10.5px;line-height:1.4}.ext-grades-source-note a{color:var(--text)}.ext-grades-field{flex-direction:column;gap:4px;display:flex}.ext-grades-field-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:10.5px;font-weight:700}.ext-grades-select{background:var(--surface-2);border:1px solid var(--border-strong);width:100%;color:var(--text);border-radius:6px;padding:6px 8px;font-size:12px}.ext-grades-course-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ext-grades-course-info{flex-direction:column;gap:4px;min-width:0;display:flex}.ext-grades-course-code-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ext-grades-course-code{color:var(--text);letter-spacing:-.2px;font-size:15px;font-weight:800}.ext-grades-course-foundational{background:var(--core-bg);color:var(--core-ink);border:1px solid var(--core-border);border-radius:8px;padding:1px 6px;font-size:9.5px;font-weight:700}.ext-grades-course-title{color:var(--text);margin:0;font-size:13px;font-weight:600;line-height:1.35}.ext-grades-critique-link{color:var(--text-muted);white-space:nowrap;flex-shrink:0;padding-top:2px;font-size:11px}.ext-grades-critique-link:hover{color:var(--text)}.ext-grades-summary{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ext-grades-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.ext-grades-stat-value{color:var(--text);font-size:15px;font-weight:700}.ext-grades-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:9.5px;font-weight:600}.ext-grades-table-wrap{border:1px solid var(--border);border-radius:6px;overflow-x:auto}.ext-grades-table{border-collapse:collapse;width:100%;font-size:11px}.ext-grades-table th,.ext-grades-table td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 7px}.ext-grades-table th:first-child,.ext-grades-table td:first-child,.ext-grades-table th:nth-child(2),.ext-grades-table td:nth-child(2){text-align:left}.ext-grades-table th{background:var(--surface-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:9.5px;font-weight:700;position:sticky;top:0}.ext-grades-table tbody tr:last-child td{border-bottom:none}.ext-grades-instructor{text-overflow:ellipsis;max-width:140px;overflow:hidden}.ext-grades-gpa{font-weight:700}.ext-grades-footnote{color:var(--text-muted);margin:0;font-size:10px;line-height:1.4}.update-banner{z-index:1000;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong,var(--border));box-shadow:var(--shadow-2,0 4px 16px #00000040);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex;position:fixed;bottom:16px;right:16px}.update-banner-text{white-space:nowrap}.update-banner-btn{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.update-banner-btn:hover{filter:brightness(1.08)}.update-banner-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.update-banner-close:hover{color:var(--text)}
