@import "https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--spu-magenta:#ff2e8a;--spu-magenta-light:#ff6fae;--spu-magenta-dark:#d4006b;--spu-red:#ff4d5e;--spu-red-light:#ff8a94;--pop-violet:#7c4dff;--pop-mint:#00d9c0;--pop-lemon:#ffc93c;--bg-primary:#fff;--bg-secondary:#f6f1ff;--bg-tertiary:#eceaf2;--bg-card:#fff;--bg-card-hover:#fafafc;--bg-glass:#7c4dff08;--bg-glass-strong:#7c4dff0f;--bg-sidebar:#f0e8ff;--bg-sidebar-hover:#1b10350f;--sidebar-ink-soft:#4f4566;--sidebar-line:#1b10351f;--sidebar-fill:#1b10350d;--text-primary:#1b1035;--text-secondary:#5a4c77;--text-muted:#645a79;--text-sidebar:#4a4060;--text-sidebar-active:#1b1035;--border-subtle:#1b103529;--border-medium:#1b103529;--border-accent:#ff2e8a52;--border:var(--border-subtle);--robotics:#ff2e8a;--robotics-text:#b01f5f;--robotics-bg:#ff2e8a14;--robotics-glow:#ff2e8a47;--automation:#ff9838;--automation-text:#8c541f;--automation-bg:#ff983814;--automation-glow:#ff983847;--ai:#7c4dff;--ai-text:#7247eb;--pending-text:#566268;--group-fb-0:#00766a;--group-fb-1:#5562b1;--group-fb-2:#7f6359;--group-fb-3:#536d79;--group-fb-4:#c2185b;--group-fb-5:#00737e;--group-fb-6:#6d4c41;--info:#2196f3;--info-text:#186eb1;--info-bg:#2196f31a;--part-theory:#7c4dff;--part-lab:#00b8d4;--ai-bg:#7c4dff14;--ai-glow:#7c4dff47;--safe:#14c98b;--safe-text:#0b724f;--safe-bg:#14c98b17;--warning:#ffa51f;--warning-text:#946012;--warning-bg:#ffa51f1a;--critical:#ff4d5e;--critical-text:#b53743;--critical-bg:#ff4d5e17;--accent-primary:#ff2e8a;--accent-text:#b01f5f;--accent-solid:#b01f5f;--accent-secondary:#7c4dff;--accent-gradient:linear-gradient(135deg, #ff2e8a 0%, #a63bff 55%, #7c4dff 100%);--accent-gradient-deep:linear-gradient(135deg, #c4236a 0%, #8e3bd6 55%, #7247eb 100%);--accent-gradient-soft:linear-gradient(135deg, #ff2e8a24, #7c4dff24);--mint-gradient:linear-gradient(135deg, #00d9c0, #14c98b);--glow-primary:0 6px 20px #ff2e8a47;--glow-violet:0 6px 20px #7c4dff42;--fs-title-1:1.75rem;--fs-title-2:1.375rem;--fs-title-3:1.125rem;--fs-body:.9375rem;--fs-callout:.875rem;--fs-subhead:.8125rem;--fs-footnote:.75rem;--fs-caption:.6875rem;--fs-display:2.125rem;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-xs:8px;--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:9999px;--transition-fast:.12s cubic-bezier(.2, 0, 0, 1);--transition-base:.2s cubic-bezier(.2, 0, 0, 1);--transition-slow:.42s cubic-bezier(.22, 1, .36, 1);--ease-pop:cubic-bezier(.34, 1.56, .64, 1);--shadow-sm:0 1px 2px #1b10351c, 0 4px 10px #1b103517, 0 14px 30px #1b103514;--shadow-md:0 2px 4px #1b10351a, 0 8px 20px #1b103517, 0 24px 50px #1b10351a;--shadow-lg:0 2px 4px #1b103512, 0 10px 22px #1b103514, 0 26px 56px #1b10351a;--surface-edge:0 0 0 0 transparent;font-family:Prompt,system-ui,-apple-system,sans-serif}:root[data-theme=dark]{--bg-primary:#14092b;--bg-secondary:#0b0120;--bg-tertiary:#2e2050;--bg-card:#291b4d;--bg-card-hover:#322160;--bg-glass:#ffffff0a;--bg-glass-strong:#ffffff12;--bg-sidebar:#0e0620;--bg-sidebar-hover:#ffffff12;--text-primary:#f2ecff;--text-secondary:#bcaedc;--text-muted:#a79dc2;--text-sidebar:#b0a4cc;--text-sidebar-active:#fff;--sidebar-ink-soft:#ffffff8f;--sidebar-line:#ffffff1f;--sidebar-fill:#ffffff0a;--border-subtle:#ffffff21;--border-medium:#fff3;--surface-edge:inset 0 1px 0 #ffffff1a;--safe-text:#14c98b;--warning-text:#ffa51f;--critical-text:#ff6b78;--robotics-text:#ff5ca4;--automation-text:#ff9838;--ai:#956fff;--ai-text:#a787ff;--pending-text:#90a4ae;--group-fb-0:#1f978b;--group-fb-1:#7683ca;--group-fb-2:#9c8177;--group-fb-3:#768b95;--group-fb-4:#d5608e;--group-fb-5:#24949f;--group-fb-6:#99827a;--accent-text:#ff2e8a;--info-text:#5ab0f7;--safe-bg:#14c98b24;--warning-bg:#ffa51f26;--critical-bg:#ff4d5e26;--info-bg:#5ab0f726;--robotics-bg:#ff2e8a24;--automation-bg:#ff983824;--ai-bg:#965dff26;--shadow-sm:0 2px 4px #00000073, 0 8px 22px #00000061;--shadow-md:0 3px 8px #00000080, 0 14px 34px #00000073;--shadow-lg:0 5px 14px #0000008c, 0 28px 62px #00000080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font:inherit}html{scroll-behavior:smooth}body{background:radial-gradient(20rem 16rem at 16% -10%, #ff58f566, transparent 78%), radial-gradient(19rem 15rem at 44% -12%, #ff81ff66, transparent 78%), radial-gradient(20rem 16rem at 74% -10%, #ff93ff66, transparent 78%), radial-gradient(21rem 17rem at 106% 14%, #ff9fff66, transparent 78%), radial-gradient(22rem 18rem at 108% 46%, #ffa9ff66, transparent 78%), radial-gradient(21rem 17rem at 105% 78%, #61ddff66, transparent 78%), radial-gradient(20rem 16rem at 82% 110%, #0ff6, transparent 78%), radial-gradient(19rem 15rem at 52% 112%, #0ff6, transparent 78%), radial-gradient(20rem 16rem at 22% 110%, #00fff266, transparent 78%), radial-gradient(21rem 17rem at -8% 80%, #89f8ff66, transparent 78%), radial-gradient(22rem 18rem at -10% 46%, #ffcbff66, transparent 78%), radial-gradient(20rem 16rem at -6% 14%, #ffa7ff66, transparent 78%), var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;line-height:1.6}#root{z-index:1;min-height:100vh;position:relative}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;color:var(--text-primary);font-weight:700;line-height:1.3}h1{font-size:var(--fs-title-1);letter-spacing:-.025em;font-weight:800}h2{font-size:var(--fs-title-2)}h3{font-size:var(--fs-title-3)}h4{font-size:var(--fs-body);font-weight:600}.app-layout{min-height:100vh;display:flex}.top-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-md);height:60px;padding:0 var(--space-2xl);z-index:90;background:#ffffffd9;display:flex;position:fixed;top:0;left:240px;right:0}.top-header-left{align-items:center;gap:var(--space-md);flex:1 1 0;min-width:0;display:flex;container-type:inline-size}.top-header-breadcrumb{font-size:var(--fs-subhead);color:var(--text-muted);min-width:0;font-weight:500}.top-header-breadcrumb strong{color:var(--text-primary);font-weight:600}.top-header-right{align-items:center;gap:var(--space-md);flex:none;display:flex}.header-search{align-items:center;gap:var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);font-size:var(--fs-subhead);color:var(--text-secondary);cursor:pointer;transition:border-color var(--transition-base), background var(--transition-base), color var(--transition-base);padding:6px 8px 6px 14px;font-weight:500;display:flex}.header-search .icon{color:var(--ai-text)}.header-search:hover{border-color:color-mix(in srgb, var(--ai) 40%, transparent);background:var(--ai-bg);color:var(--text-primary)}.header-search:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.header-kbd{font-family:JetBrains Mono,monospace;font-size:var(--fs-caption);color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);margin-left:4px;padding:1px 6px}.header-icon-btn{border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;width:36px;height:36px;transition:all var(--transition-base);font-size:var(--fs-body);color:var(--text-secondary);justify-content:center;align-items:center;display:flex;position:relative}.header-icon-btn:hover{background:var(--bg-secondary);border-color:var(--border-medium);color:var(--text-primary)}.header-icon-btn .badge{background:var(--spu-magenta);color:#fff;width:16px;height:16px;font-size:var(--fs-caption);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;top:-2px;right:-2px}.header-user{align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-card);font:inherit;color:inherit;text-align:left;padding:4px 10px 4px 4px;display:flex}.header-user:hover{border-color:var(--border-medium)}.header-user:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.header-user-text{flex-direction:column;line-height:1.25;display:flex}.header-user-avatar{background:var(--accent-gradient-deep);color:#fff;width:30px;height:30px;font-size:var(--fs-footnote);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.header-user-name{font-size:var(--fs-subhead);color:var(--text-primary);font-weight:600}.header-user-role{font-size:var(--fs-caption);color:var(--text-muted)}.sidebar{background:radial-gradient(26rem 20rem at 92% -6%, #ff58f538, transparent 80%), radial-gradient(22rem 17rem at 6% -4%, #00ffff38, transparent 80%), radial-gradient(27rem 22rem at -10% 40%, #ffa9ff38, transparent 80%), radial-gradient(22rem 18rem at 106% 34%, #ff81ff38, transparent 80%), radial-gradient(24rem 19rem at -6% 100%, #61ddff38, transparent 80%), radial-gradient(22rem 18rem at 98% 104%, #00fff238, transparent 80%), radial-gradient(20rem 16rem at 42% -10%, #ff9fff38, transparent 80%), radial-gradient(21rem 17rem at 58% 108%, #00ffff38, transparent 80%), var(--bg-sidebar);border-right:1px solid var(--sidebar-line);width:240px;padding:var(--space-md) var(--space-md) var(--space-md);z-index:100;flex-direction:column;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-logo{padding:var(--space-sm) var(--space-xs);padding-bottom:var(--space-md);border-bottom:1px solid var(--sidebar-line);margin-bottom:var(--space-md);flex-direction:column;align-items:flex-start;gap:10px;display:flex}.sidebar-logo>div{width:100%}.sidebar-logo-text{font-size:var(--fs-title-1);white-space:nowrap;line-height:1.15}.logo-soe{letter-spacing:-.03em;background:linear-gradient(100deg,#1b1035 8%,#d4006b 48%,#7c4dff 88%);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800}[data-theme=dark] .logo-soe{background:linear-gradient(100deg,#fff 10%,#ffb3d4 45%,#b79bff 80%);-webkit-background-clip:text;background-clip:text}.logo-max{vertical-align:super;letter-spacing:.14em;background:linear-gradient(104deg,#8a5a3e 0%,#c2916f 18%,#6e402a 34%,#d6aa8a 50%,#7a4d33 66%,#c2916f 82%,#8a5a3e 100%) 0 0/260% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;margin-left:.6em;padding-right:.14em;font-size:.44em;font-weight:500;animation:8s ease-in-out infinite maxSheen;position:relative;top:-.12em}[data-theme=dark] .logo-max{background:linear-gradient(104deg,#f6d9c4 0%,#fff4ea 18%,#e0ac8c 34%,#fffbf6 50%,#e9bfa4 66%,#fff4ea 82%,#f0c7ae 100%) 0 0/260% 100%;-webkit-background-clip:text;background-clip:text}@keyframes maxSheen{0%,to{background-position:0%}50%{background-position:100%}}@media (prefers-reduced-motion:reduce){.logo-max{background-position:40%;animation:none}}.sidebar-logo-sub{font-size:var(--fs-footnote);color:var(--sidebar-ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-link{align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);color:var(--text-sidebar);font-size:var(--fs-subhead);transition:all var(--transition-base);cursor:pointer;border:1px solid #0000;padding:8px 12px;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--bg-sidebar-hover);color:var(--text-sidebar-active)}.sidebar-link{isolation:isolate;position:relative;overflow:hidden}.sidebar-link:before{content:"";border-radius:inherit;background:var(--accent-gradient-deep);opacity:0;transform-origin:0;transition:opacity var(--transition-base), transform var(--transition-base);z-index:-1;position:absolute;inset:0;transform:scaleX(.6)}.sidebar-link.active{color:#fff;box-shadow:var(--glow-primary);border-color:#0000;font-weight:600}.sidebar-link.active:before{opacity:1;transform:scaleX(1)}.sidebar-link:not(.is-soon):not(.active):hover{transform:translate(3px)}.sidebar-link{transition:transform var(--transition-base), background var(--transition-base), color var(--transition-base)}.sidebar-link.is-soon{opacity:.65;cursor:not-allowed;color:var(--text-sidebar)}.sidebar-link.is-soon:hover{color:var(--text-sidebar);background:0 0}.soon-badge{font-size:var(--fs-caption);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--sidebar-line);color:var(--text-sidebar);white-space:nowrap;border-radius:999px;flex:none;margin-left:auto;padding:2px 6px;font-weight:600}.feature-off{padding:var(--space-xl);text-align:center;background:var(--bg-secondary);border:1px dashed var(--border-color,#80808052);border-radius:var(--radius-md)}.feature-off-title{margin-bottom:6px;font-weight:600}.feature-off-sub{font-size:var(--fs-callout);color:var(--text-muted);max-width:46ch;margin:0 auto;line-height:1.55}.card.is-off{opacity:.75}.card.is-off .soon-badge{border-color:var(--text-muted);color:var(--text-muted)}.sidebar-link-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.sidebar-link-icon svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.sidebar-section-label{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.1em;color:var(--sidebar-ink-soft);padding:var(--space-md) 12px var(--space-xs);align-items:center;gap:6px;margin-top:12px;font-weight:600;display:flex}.sidebar-section-label .icon{margin-right:-2px}.main-content{min-width:0;padding:calc(60px + var(--space-lg)) var(--space-2xl) calc(84px + var(--space-md));flex:1;min-height:100vh;margin-left:240px}.page-header{margin-bottom:var(--space-xl)}.page-header h1{margin-bottom:var(--space-xs);color:var(--text-primary)}.page-header p{color:var(--text-secondary);font-size:var(--fs-callout)}.page-head{column-gap:var(--space-md);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions""sub sub""chips chips";align-items:center;display:grid}.page-head-title{grid-area:title;min-width:0}.page-head-actions{grid-area:actions;justify-content:flex-end}.page-head-sub{grid-area:sub;margin:0}.page-head-chips{margin-top:var(--space-sm);grid-area:chips}@media (width<=640px){.page-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"title""sub""actions""chips"}.page-head-actions{margin-top:var(--space-sm);justify-content:flex-start}}.ai-banner{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);font-size:var(--fs-callout);color:var(--text-secondary);background:linear-gradient(135deg,#00c85314 0%,#00c85308 100%);border:1px solid #00c85326;display:flex}.ai-banner-icon{border-radius:var(--radius-md);width:36px;height:36px;font-size:var(--fs-title-3);background:#00c8531f;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-banner strong{color:var(--safe-text)}.ai-banner .dismiss{border-radius:var(--radius-full);cursor:pointer;width:28px;height:28px;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}.ai-banner .dismiss:hover{background:var(--bg-tertiary);color:var(--text-primary)}.icon{vertical-align:-.15em;flex-shrink:0;display:inline-block}.theme-switching *,.theme-switching :before,.theme-switching :after{transition:none!important}.pref-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.pref-pill{border-radius:var(--radius-full);border:1px solid var(--border-medium);background:var(--bg-tertiary);cursor:pointer;align-items:center;gap:2px;padding:3px;font-family:inherit;display:flex}.pref-seg{border-radius:var(--radius-full);height:28px;color:var(--text-muted);font-family:inherit;font-size:var(--fs-caption);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0 7px;font-weight:600;display:flex}.pref-seg.is-icon{width:28px;padding:0}.pref-seg.is-on{background:var(--accent-solid);color:#fff}.pref-pill:hover .pref-seg:not(.is-on){color:var(--text-secondary)}.sidebar .pref-pill{border-color:var(--sidebar-line);background:var(--sidebar-fill)}.sidebar .pref-seg{color:var(--text-sidebar)}.sidebar .pref-seg.is-on{background:var(--accent-solid);color:#fff}.sidebar .pref-pill:hover .pref-seg:not(.is-on){color:var(--text-sidebar-active)}.login-prefs{margin-bottom:var(--space-md);justify-content:center}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-box{width:100%;max-width:380px}.login-brand{flex-direction:column;align-items:center;gap:4px;margin-bottom:24px;display:flex}.login-form{flex-direction:column;gap:16px;display:flex}.login-input{background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:all var(--transition-base);box-sizing:border-box;outline:none;padding:10px 12px;font-family:inherit;font-size:.9rem}.login-input:focus{border-color:var(--accent-solid);background:var(--bg-card);box-shadow:0 0 0 3px #b01f5f24}.login-input::placeholder{color:var(--text-muted)}.login-password-wrap{position:relative}.login-password-wrap .login-input{padding-right:40px}.login-password-toggle{cursor:pointer;width:40px;height:100%;color:var(--text-muted);border-radius:0 var(--radius-md) var(--radius-md) 0;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;right:0}.login-password-toggle:hover{color:var(--text-primary)}.login-password-toggle:focus-visible{outline:2px solid var(--accent-solid);outline-offset:-2px}.login-submit{justify-content:center;width:100%}.status-page{text-align:center;padding:var(--space-3xl) var(--space-xl);flex-direction:column;align-items:center;gap:12px;display:flex}.status-page h1,.status-page h2{color:var(--text-primary);margin:0}.status-page p{color:var(--text-secondary);max-width:46ch;margin:0;line-height:1.6}.header-user-row{align-items:center;gap:8px;display:flex}.sidebar-footer-mark{background:var(--sidebar-fill);border-radius:var(--radius-md);border:1px solid var(--sidebar-line);justify-content:center;margin-top:auto;padding:10px;display:flex}.sidebar-footer-mark img{object-fit:contain;border-radius:var(--radius-sm);background:#fff;width:100%;max-width:160px;padding:4px 8px}.bottom-nav{display:none}@media (width<=768px){.bottom-nav{z-index:140;background:var(--bg-card);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom,0px);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px #0000001f}.bottom-nav a{min-height:56px;font-size:var(--fs-caption);color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 2px 8px;font-weight:500;line-height:1.2;text-decoration:none;display:flex}.bottom-nav a span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav a.active{color:var(--accent-text);font-weight:700}.bottom-nav a:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:-3px}.has-bottom-nav .main-content{padding-bottom:calc(130px + env(safe-area-inset-bottom,0px))}.has-bottom-nav .chat-fab{bottom:calc(68px + env(safe-area-inset-bottom,0px))}}.nav-count{border-radius:var(--radius-full);background:var(--spu-magenta);color:#fff;min-width:20px;font-size:var(--fs-caption);text-align:center;margin-left:auto;padding:0 6px;font-weight:700;line-height:20px}.header-ask{border:1px solid var(--border-subtle);background:var(--ai-bg);width:34px;height:34px;color:var(--ai-text);cursor:pointer;border-radius:50%;place-items:center;display:grid}.header-ask:hover{border-color:color-mix(in srgb, var(--ai) 40%, transparent)}.header-ask:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.palette-backdrop{align-items:start;padding-top:min(14vh,120px)}.palette{border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-medium);width:min(640px,100%);max-height:min(70vh,560px);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.palette-search{align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);padding:12px 16px;display:flex}.palette-search input{min-width:0;color:var(--text-primary);font:inherit;font-size:var(--fs-callout);background:0 0;border:0;outline:none;flex:1}.palette-list{margin:0;padding:6px;list-style:none;overflow-y:auto}.palette-item{border-radius:var(--radius-sm);cursor:pointer}.palette-group{font-size:var(--fs-caption);letter-spacing:.04em;color:var(--text-muted);padding:8px 10px 4px;font-weight:600;display:block}.palette-row{align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);padding:8px 10px;display:flex}.palette-item.is-active .palette-row{background:var(--ai-bg);color:var(--text-primary)}.palette-empty{font-size:var(--fs-subhead);padding:10px}.term-chip{border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--fs-footnote);white-space:nowrap;align-items:center;gap:6px;padding:5px 10px;font-weight:600;text-decoration:none;display:inline-flex}.term-chip:hover{border-color:var(--border-accent);color:var(--text-primary)}.term-chip:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.term-chip.is-other{background:var(--warning-bg);color:var(--warning-text);border-color:color-mix(in srgb, var(--warning) 35%, transparent)}.term-chip-note{font-weight:500}@media (width<=768px){.term-chip{padding:5px 8px}.term-chip span:not(.term-chip-note){display:none}}.header-pop{position:relative}.header-icon-btn{border:1px solid var(--border-subtle);background:var(--bg-card);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:relative}.header-icon-btn:hover{border-color:var(--border-medium);color:var(--text-primary)}.header-icon-btn:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.bell-count{border-radius:var(--radius-full);background:var(--spu-magenta);color:#fff;text-align:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-5px}.header-panel{z-index:300;width:min(360px,100vw - 24px);padding:var(--space-sm);background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:absolute;top:calc(100% + 8px);right:0}.header-panel-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 8px;display:flex}.header-panel-title{color:var(--text-primary);font-weight:700}.header-panel-empty{color:var(--text-secondary);font-size:var(--fs-subhead);flex-direction:column;align-items:flex-start;gap:6px;padding:14px 8px;line-height:1.5;display:flex}.header-panel-empty strong{color:var(--text-primary)}.alerts-panel{width:min(400px,100vw - 24px);max-height:min(70vh,520px);overflow-y:auto}.alerts-list{margin:0;padding:0;list-style:none}.alert-row{border-bottom:1px solid var(--border-subtle);padding:10px 8px}.alert-row:last-child{border-bottom:0}.alert-row.is-unread{background:color-mix(in srgb, var(--accent-secondary) 7%, transparent);border-radius:var(--radius-md)}.alert-row-title{font-size:var(--fs-callout);color:var(--text-primary);align-items:center;gap:6px;font-weight:600;display:flex}.alert-dot{background:var(--spu-magenta);border-radius:50%;flex:none;width:8px;height:8px}.alert-row-reason{color:var(--text-secondary);font-size:var(--fs-subhead);margin-top:2px;line-height:1.5}.alert-row-foot{font-size:var(--fs-footnote);flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.alert-row-when{color:var(--text-muted)}.alert-row-action{color:var(--accent-text);font-weight:600;text-decoration:none}.alert-row-action:hover{text-decoration:underline}.alert-row-action.is-plain{color:var(--text-secondary);font-weight:500}.account-menu{width:270px}.account-menu-who{border-bottom:1px solid var(--border-subtle);font-size:var(--fs-footnote);color:var(--text-muted);overflow-wrap:anywhere;flex-direction:column;gap:2px;margin-bottom:4px;padding:6px 8px 10px;display:flex}.account-menu-who strong{font-size:var(--fs-subhead);color:var(--text-primary)}.account-menu-item{border-radius:var(--radius-md);width:100%;min-height:40px;color:var(--text-primary);font:inherit;font-size:var(--fs-subhead);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px;display:flex}.account-menu-item:hover,.account-menu-item:focus-visible{background:var(--bg-secondary);outline:none}@media (width<=768px){.header-panel,.alerts-panel{width:auto;position:fixed;top:64px;left:12px;right:12px}.header-user .icon{display:none}}.crash-screen{text-align:center;background:var(--bg-secondary);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100vh;padding:24px;display:flex}.crash-screen.is-compact{background:0 0;min-height:60vh}.crash-title{color:var(--critical-text);margin:0}.crash-body{color:var(--text-secondary);max-width:420px;font-size:var(--fs-callout)}.crash-detail{text-align:left;max-width:520px;font-size:var(--fs-footnote);color:var(--critical-text);background:var(--critical-bg);border:1px solid var(--critical);border-radius:8px;padding:8px 12px;overflow:auto}.crash-reload{margin-top:4px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm), var(--surface-edge);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base)}.card:hover{box-shadow:var(--shadow-md), var(--surface-edge);border-color:var(--border-medium);transform:translateY(-2px)}.card{will-change:transform}.card-header{justify-content:space-between;align-items:center;gap:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.card>.card-title:first-child{margin-bottom:var(--space-md)}.card-title{font-size:var(--fs-title-3);color:var(--text-primary);align-items:center;gap:7px;font-weight:600;display:flex}.card-title .icon{vertical-align:0}.section-title{font-size:var(--fs-title-3);color:var(--text-primary);font-weight:600}.card-subtitle{font-size:var(--fs-subhead);color:var(--text-muted);margin-top:2px}.card-heading{flex:16rem;min-width:0}.grid-4{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.grid-3{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-2{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.stat-chip-row{gap:var(--space-md);display:flex}.stat-chip{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm), var(--surface-edge);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);flex:1;display:flex;position:relative;overflow:hidden}a.stat-chip{color:inherit;cursor:pointer;text-decoration:none}a.stat-chip:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}button.stat-filter{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}button.stat-filter:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}button.row-open{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}button.row-open:hover{text-decoration:underline}button.row-open:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px;border-radius:2px}.stat-chip:after{content:"";background:var(--tint,#7c4dff);opacity:0;transform-origin:0;height:3px;transition:opacity var(--transition-base), transform var(--transition-slow);position:absolute;inset:0 0 auto;transform:scaleX(.4)}.stat-chip:hover:after{opacity:1;transform:scaleX(1)}.stat-chip:hover{box-shadow:var(--shadow-md), var(--surface-edge);border-color:color-mix(in srgb, var(--tint,#7c4dff) 32%, transparent);transform:translateY(-2px)}.stat-chip:hover .stat-chip-icon{transform:rotate(-6deg)scale(1.08)}.stat-chip-icon{transition:transform var(--transition-base);border-radius:var(--radius-md);width:42px;height:42px;font-size:var(--fs-title-3);box-shadow:inset 0 1px 0 #ffffffd9, inset 0 -1px 0 color-mix(in srgb, var(--tint,#7c4dff) 16%, transparent), 0 4px 10px color-mix(in srgb, var(--tint,#7c4dff) 22%, transparent);border:1px solid color-mix(in srgb, var(--tint,#7c4dff) 18%, transparent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.stat-chip-value{font-size:var(--fs-title-1);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.stat-chip-label{font-size:var(--fs-subhead);color:var(--text-muted);margin-top:2px;font-weight:500}.stat-card{padding:var(--space-lg)}.stat-icon{border-radius:var(--radius-md);width:40px;height:40px;font-size:var(--fs-title-3);margin-bottom:var(--space-md);justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #ffffffd9,0 4px 10px #1b103514}.stat-value{font-size:var(--fs-title-1);letter-spacing:-.03em;margin-bottom:var(--space-xs);font-weight:800;line-height:1}.stat-label{font-size:var(--fs-subhead);color:var(--text-secondary);font-weight:500}.stat-value.excellent{color:var(--safe-text)}.stat-value.good{color:var(--info-text)}.stat-value.average{color:var(--warning-text)}.stat-value.poor{color:var(--critical-text)}.stat-value.muted{color:var(--text-muted)}.gauge-container{justify-content:center;align-items:center;display:flex;position:relative}.gauge-text{text-align:center;position:absolute}.gauge-value{font-size:var(--fs-title-1);letter-spacing:-.02em;font-weight:900;line-height:1}.gauge-label{font-size:var(--fs-footnote);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-weight:600}.streak-card{align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.streak-title{font-size:var(--fs-callout);color:var(--text-primary);font-weight:700}.streak-subtitle{font-size:var(--fs-footnote);color:var(--text-muted)}.streak-days{gap:var(--space-sm);display:flex}.streak-day{flex-direction:column;align-items:center;gap:2px;display:flex}.streak-day-label{font-size:var(--fs-caption);color:var(--text-muted);font-weight:600}.streak-day-icon{font-size:var(--fs-title-2)}.streak-stats{gap:var(--space-lg);font-size:var(--fs-footnote);color:var(--text-muted);display:flex}.streak-stats span{align-items:center;gap:4px;display:flex}.streak-dot{border-radius:50%;width:6px;height:6px}.branch-tag{align-items:center;gap:var(--space-xs);border-radius:var(--radius-full);font-size:var(--fs-footnote);text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;font-weight:600;display:inline-flex}.branch-tag.robotics{background:var(--robotics-bg);color:var(--robotics-text);border:1px solid #e91e631f}.branch-tag.automation{background:var(--automation-bg);color:var(--automation-text);border:1px solid #ff98001f}.branch-tag.ai{background:var(--ai-bg);color:var(--ai-text);border:1px solid #7c4dff1f}.risk-tag{border-radius:var(--radius-full);font-size:var(--fs-footnote);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.risk-tag.safe{background:var(--safe-bg);color:var(--safe-text)}.risk-tag.warning{background:var(--warning-bg);color:var(--warning-text)}.risk-tag.critical{background:var(--critical-bg);color:var(--critical-text)}.risk-tag.no_data{background:var(--bg-tertiary);color:var(--text-muted)}.risk-tag.info{background:var(--info-bg);color:var(--info-text)}.risk-tag.muted{background:var(--bg-tertiary);color:var(--text-muted)}.risk-tag.is-plain{text-transform:none;letter-spacing:0}.progress-bar{background:var(--bg-tertiary);border-radius:var(--radius-full);height:8px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.progress-fill.robotics{background:var(--robotics)}.progress-fill.automation{background:var(--automation)}.progress-fill.ai{background:var(--ai)}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;font-size:var(--fs-footnote);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);padding:var(--space-sm) var(--space-md);border-bottom:2px solid var(--border-subtle);font-weight:600}.data-table td{padding:var(--space-md);border-bottom:1px solid var(--border-subtle);font-size:var(--fs-callout);color:var(--text-primary)}.data-table tr{transition:background var(--transition-fast)}.data-table tr:hover td{background:var(--bg-secondary)}.data-table tr:last-child td{border-bottom:none}.student-avatar{border-radius:var(--radius-full);border:2px solid var(--border-medium);width:34px;height:34px}.student-row{align-items:center;gap:var(--space-md);display:flex}.student-info{flex-direction:column;display:flex}.student-name{font-weight:600;font-size:var(--fs-callout);color:var(--text-primary)}.student-id{font-size:var(--fs-footnote);color:var(--text-muted);font-family:JetBrains Mono,monospace}.btn{align-items:center;gap:var(--space-sm);padding:7px var(--space-md);border-radius:var(--radius-md);font-size:var(--fs-subhead);cursor:pointer;transition:all var(--transition-base);border:1px solid #0000;font-family:inherit;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent-gradient-deep);color:#fff;box-shadow:var(--glow-primary);transition:background-position var(--transition-slow), transform var(--transition-base), box-shadow var(--transition-base);background-position:0 0;background-size:160% 100%;position:relative;overflow:hidden}.btn-primary:hover{background-position:100% 0;transform:translateY(-2px)scale(1.02);box-shadow:0 10px 26px #ff2e8a57}.btn-primary:active{transform:translateY(0)scale(.98)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-medium);background:0 0}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--spu-magenta);transform:translateY(-1px)}.btn-secondary{background:var(--ai-bg);color:var(--ai-text);border-color:color-mix(in srgb, var(--ai) 24%, transparent)}.btn-secondary:hover{background:color-mix(in srgb, var(--ai) 15%, transparent);border-color:color-mix(in srgb, var(--ai) 42%, transparent);transform:translateY(-1px)}.btn-sm{font-size:var(--fs-footnote);border-radius:var(--radius-sm);padding:4px 12px}.btn .icon{vertical-align:0}a.btn{text-decoration:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn:focus-visible,.tile-link:focus-visible,.page-back:focus-visible,.crumb-link:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.search-input{background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;padding:7px var(--space-md) 7px 38px;color:var(--text-primary);font-size:var(--fs-callout);transition:all var(--transition-base);outline:none;font-family:inherit}.search-input:focus{border-color:var(--spu-magenta);background:var(--bg-card);box-shadow:0 0 0 3px #e91e6314}.search-input::placeholder{color:var(--text-muted)}.search-wrapper{position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input{background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--fs-callout);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);padding:8px 12px;line-height:1.4}.input:focus{border-color:var(--accent-secondary);box-shadow:0 0 0 3px var(--ai-bg);background:var(--bg-card);outline:none}.input::placeholder{color:var(--text-muted)}.input:disabled{opacity:.6;cursor:not-allowed}textarea.input{resize:vertical;width:100%}textarea.input.is-growing{resize:none;field-sizing:content;min-height:0;overflow:hidden}[data-theme=dark] .input:focus{background:var(--bg-tertiary)}select:disabled{opacity:.6;cursor:not-allowed}select option{background-color:var(--bg-card);color:var(--text-primary)}@supports (appearance:base-select){select{appearance:base-select}::picker(select){appearance:base-select}select{--menu-bg:var(--bg-card);align-items:center;gap:var(--space-sm);cursor:pointer}[data-theme=dark] select{--menu-bg:var(--bg-card-hover)}select:disabled{cursor:not-allowed}select:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}select:open{box-shadow:0 0 0 3px var(--ai-bg)}select::picker-icon{content:"";background-color:var(--text-muted);block-size:14px;inline-size:14px;transition:rotate var(--transition-fast);flex:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}select:open::picker-icon{rotate:180deg}::picker(select){background:var(--menu-bg);color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);scrollbar-width:thin;position-try-order:normal;max-block-size:min(22rem,60vh);max-inline-size:min(36rem,100vw - 32px);margin-block:6px;padding:4px;overflow-y:auto}select option{color:var(--text-primary);border-radius:var(--radius-xs);white-space:normal;cursor:pointer;background-color:#0000;gap:10px;min-block-size:36px;padding:8px 12px;line-height:1.4}select option:hover,select option:focus-visible{background-color:var(--ai-bg);outline:none}select option:checked{color:var(--ai-text);font-weight:600}select option::checkmark{color:var(--ai-text);font-weight:700}select option:disabled{opacity:.45;cursor:not-allowed}select option[value=""]{color:var(--text-muted);font-weight:400}select option[value=""]::checkmark{visibility:hidden}@media (pointer:coarse){select option{min-block-size:44px}}@media (prefers-reduced-motion:no-preference){select::picker(select){opacity:0;transition:opacity .14s ease, translate .14s cubic-bezier(.2, 0, 0, 1), display .14s allow-discrete, overlay .14s allow-discrete;translate:0 -4px}select:open::picker(select){opacity:1;translate:0}@starting-style{select:open::picker(select){opacity:0;translate:0 -4px}}}}.field-label{font-size:var(--fs-subhead);color:var(--text-secondary);margin-bottom:6px;font-weight:600;display:block}.field-label>.input{margin-top:6px;font-weight:400;display:block}.field-control{display:block}.field-control>.input,.field-control>select,.field-control>textarea{margin-top:6px;font-weight:400;display:block}@supports (appearance:base-select){.field-control>select,.field-control>select.input,.field-label>select.input{display:flex}}.field-control.is-required>.field-words:after{content:" *";color:var(--critical-text)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.file-pick{cursor:pointer;display:inline-block;position:relative}.fieldset-plain{border:0;min-width:0;margin:0;padding:0}.file-pick:focus-within .btn{outline:2px solid var(--accent-secondary);outline-offset:2px}.file-pick.is-disabled{cursor:not-allowed}.file-pick.is-disabled .btn{opacity:.55;pointer-events:none}.tile{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);color:inherit;padding:14px 16px;text-decoration:none;display:block}[data-theme=dark] .tile{background:var(--bg-glass-strong)}.tile-link{cursor:pointer;transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base), background var(--transition-base)}.tile-link:hover{border-color:var(--border-accent);background:var(--bg-card);box-shadow:var(--shadow-sm);transform:translateY(-2px)}[data-theme=dark] .tile-link:hover{background:var(--bg-card-hover)}.tile-go{color:var(--text-muted);transition:transform var(--transition-base), color var(--transition-base)}.tile-link:hover .tile-go{color:var(--accent-text);transform:translate(3px)}.tile-stack{gap:var(--space-sm);flex-direction:column;display:flex}.empty-state{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--text-muted);font-size:var(--fs-callout);line-height:1.6}.empty-state>.icon{margin:0 auto var(--space-sm);opacity:.6;display:block}.empty-state.is-compact{padding:var(--space-lg)}.loading-state{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-2xl) var(--space-lg);color:var(--text-muted);font-size:var(--fs-callout);display:flex}.loading-state:before{content:"";border:2px solid var(--border-medium);border-top-color:var(--accent-secondary);border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite spin}.notice{align-items:flex-start;gap:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--fs-subhead);border:1px solid #0000;padding:10px 14px;line-height:1.5;display:flex}.notice>.icon{margin-top:2px}.notice.is-warning{background:var(--warning-bg);color:var(--warning-text);border-color:color-mix(in srgb, var(--warning) 28%, transparent)}.notice.is-critical{background:var(--critical-bg);color:var(--critical-text);border-color:color-mix(in srgb, var(--critical) 28%, transparent)}.notice.is-safe{background:var(--safe-bg);color:var(--safe-text);border-color:color-mix(in srgb, var(--safe) 28%, transparent)}.notice.is-info{background:var(--info-bg);color:var(--info-text);border-color:color-mix(in srgb, var(--info) 28%, transparent)}.page-back{margin:0 0 var(--space-sm) -6px;border-radius:var(--radius-full);font-size:var(--fs-subhead);color:var(--accent-text);transition:background var(--transition-fast);align-items:center;gap:2px;padding:4px 10px 4px 4px;font-weight:600;text-decoration:none;display:inline-flex}.page-back:hover{background:var(--robotics-bg)}.btn-danger{color:var(--critical-text);border-color:color-mix(in srgb, var(--critical) 38%, transparent)}.btn-danger:hover{background:var(--critical-bg);color:var(--critical-text);border-color:var(--critical)}.field-error{font-size:var(--fs-footnote);color:var(--critical-text);margin-top:4px;font-weight:500;display:block}.state-block-title{color:var(--text-secondary);font-weight:600}.state-block-body{font-size:var(--fs-subhead);margin-top:4px}.state-block-actions{margin-top:var(--space-md);justify-content:center}.state-block.is-error>.icon{color:var(--critical-text);opacity:.9}.tabs{gap:var(--space-xs);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-lg);scrollbar-width:none;display:flex;overflow-x:auto}.tab{color:var(--text-secondary);font:inherit;font-size:var(--fs-callout);white-space:nowrap;cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 14px;font-weight:600;text-decoration:none;display:inline-flex}.tab:hover{color:var(--text-primary)}.tab.is-active{color:var(--accent-text);border-bottom-color:var(--spu-magenta)}.tab:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:-2px;border-radius:var(--radius-xs)}.tab-badge{border-radius:var(--radius-full);background:var(--robotics-bg);min-width:20px;color:var(--accent-text);font-size:var(--fs-caption);text-align:center;padding:0 6px;line-height:20px}.chip-count{opacity:.7;font-weight:500}.pager{margin-top:var(--space-md)}.stat-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.tile.stat-card{padding:14px 16px}.tile.stat-card .stat-value{font-size:var(--fs-title-2)}.stat-hint{font-size:var(--fs-footnote);color:var(--text-muted);margin-top:2px}.dialog-backdrop{z-index:900;padding:var(--space-md);background:#0f0a1e73;place-items:center;animation:.14s fadeIn;display:grid;position:fixed;inset:0}.dialog{width:min(460px,100%);max-height:calc(100vh - 32px);padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-medium);box-shadow:var(--shadow-lg);overflow-y:auto}.dialog-title{font-size:var(--fs-title-3);color:var(--text-primary);margin:0;font-weight:700}.dialog-body{margin-top:var(--space-sm);color:var(--text-secondary);font-size:var(--fs-callout);line-height:1.6}.dialog-field{margin-top:var(--space-md)}.dialog-field>.input,.dialog-field .field-label>.input,.dialog-field .field-control>.input{width:100%}.input.is-compact{padding:4px 8px}.combo{width:min(24rem,100%);position:relative}.field-control>.combo{margin-top:6px;font-weight:400;display:block}.combo>.input{width:100%;display:block}.combo-list{z-index:40;inset-inline:0;background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);scrollbar-width:thin;max-block-size:min(18rem,50vh);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px);overflow-y:auto}[data-theme=dark] .combo-list{background:var(--bg-card-hover)}.combo-option{border-radius:var(--radius-xs);color:var(--text-primary);cursor:pointer;align-items:baseline;gap:10px;padding:8px 12px;line-height:1.4;display:flex}.combo-option.is-active{background:var(--ai-bg)}.combo-option .mono{color:var(--ai-text);flex:none;font-weight:600}.combo-option-label{color:var(--text-secondary);font-size:var(--fs-subhead);min-width:0}@media (pointer:coarse){.combo-option{align-items:center;min-block-size:44px}}.input.is-fit{width:fit-content;min-width:12rem;max-width:100%}.input.is-wide{width:100%}.input.is-invalid{border-color:var(--critical-text)}.check-row{font-size:var(--fs-subhead);color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;display:flex}.dialog-actions{justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.toast-region{z-index:950;right:var(--space-lg);bottom:var(--space-lg);gap:var(--space-sm);pointer-events:none;flex-direction:column;width:min(380px,100vw - 32px);display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-sm);border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-medium);box-shadow:var(--shadow-md);font-size:var(--fs-subhead);pointer-events:auto;padding:12px 14px;line-height:1.5;animation:.18s fadeInUp;display:flex}.toast>.icon{flex:none;margin-top:2px}.toast.is-safe>.icon{color:var(--safe-text)}.toast.is-info>.icon{color:var(--info-text)}.toast.is-warning>.icon{color:var(--warning-text)}.toast.is-critical{border-color:color-mix(in srgb, var(--critical) 40%, transparent)}.toast.is-critical>.icon{color:var(--critical-text)}.toast-close{border-radius:var(--radius-xs);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}@media (width<=640px){.toast-region{left:50%;right:auto;bottom:var(--space-md);transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.dialog-backdrop,.toast{animation:none}}.entity-link{color:var(--accent-text);border-radius:4px;font-weight:600;text-decoration:none}.entity-link:hover{text-underline-offset:2px;text-decoration:underline}.entity-link:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:1px}.sitting-row{align-items:center;gap:var(--space-lg);border-left:4px solid var(--part-color,var(--text-muted));padding:10px 14px;display:flex}.sitting-time,.sitting-code{white-space:nowrap;font-weight:700}.sitting-main{flex:1;min-width:0}.sitting-sub{font-size:var(--fs-subhead);color:var(--text-secondary)}.sitting-note{font-size:var(--fs-footnote);color:var(--text-muted)}.sitting-note.is-warning{color:var(--warning-text)}.sitting-place{text-align:right;font-size:var(--fs-subhead);min-width:0;max-width:40%}@media (width<=480px){.sitting-row{gap:2px var(--space-md);flex-wrap:wrap}.sitting-time{font-size:var(--fs-footnote);color:var(--text-secondary);flex-basis:100%}.sitting-sub.truncate{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}}.title-chip{margin-left:var(--space-sm);border-radius:var(--radius-full);background:var(--ai-bg);color:var(--ai-text);font-size:var(--fs-footnote);letter-spacing:0;vertical-align:middle;align-items:center;padding:3px 10px;font-family:JetBrains Mono,monospace;font-weight:600;display:inline-flex}.section-facts{gap:var(--space-sm);flex-direction:column;display:flex}.section-fact{gap:var(--space-md);font-size:var(--fs-subhead);grid-template-columns:128px minmax(0,1fr);align-items:baseline;display:grid}.section-fact-label{color:var(--text-muted);align-items:center;gap:6px;font-weight:500;display:inline-flex}.meet-pills{flex-wrap:wrap;gap:6px;display:flex}.meet-pill{border-radius:var(--radius-xs);background:color-mix(in srgb, var(--part,var(--text-muted)) 10%, transparent);border-left:3px solid var(--part,var(--text-muted));color:var(--text-secondary);font-size:var(--fs-footnote);align-items:baseline;gap:4px;padding:4px 10px;display:inline-flex}.meet-pill strong{color:var(--text-primary);font-weight:600}.meet-pill.part-theory{--part:var(--part-theory)}.meet-pill.part-lab{--part:var(--part-lab)}.section-layout{gap:var(--space-xl);grid-template-columns:minmax(0,1fr);grid-template-areas:"upcoming""weeks""quizzes";align-items:start;display:grid}.section-area-upcoming{grid-area:upcoming}.section-area-weeks{grid-area:weeks}.section-area-quizzes{grid-area:quizzes}@media (width>=1200px){.section-layout{grid-template:"weeks upcoming""weeks quizzes"1fr/minmax(0,1.65fr) minmax(320px,1fr)}}.section-add-week{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border);gap:var(--space-sm) var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.week-row{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);transition:border-color var(--transition-base), box-shadow var(--transition-base)}[data-theme=dark] .week-row{background:var(--bg-glass-strong)}.week-row.is-current{border-color:color-mix(in srgb, var(--info) 45%, transparent);box-shadow:0 0 0 3px var(--info-bg)}.week-head{text-align:left;width:100%;min-height:48px;color:inherit;cursor:pointer;align-items:center;gap:var(--space-sm) var(--space-md);border-radius:inherit;background:0 0;border:none;flex-wrap:wrap;padding:12px 16px;display:flex}.week-head:hover{background:color-mix(in srgb, var(--text-primary) 3%, transparent)}.week-head:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:-2px}.week-body{padding:var(--space-md) 16px 16px 40px;border-top:1px solid var(--border-subtle)}.item-row{align-items:flex-start;gap:var(--space-sm);display:flex}.item-icon{color:var(--ai-text);margin-top:3px}.item-meta{font-size:var(--fs-footnote);color:var(--text-muted);margin-top:1px}.item-title-link{color:var(--accent-text);border-radius:4px;align-items:center;gap:4px;font-weight:600;text-decoration:none;display:inline-flex}.item-title-link:hover{text-underline-offset:2px;text-decoration:underline}.item-title-link:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.upcoming-kind{border-radius:var(--radius-sm);flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.upcoming-kind.is-quiz{background:var(--ai-bg);color:var(--ai-text)}.upcoming-kind.is-assignment{background:var(--safe-bg);color:var(--safe-text)}.tile.is-flash{animation:1.2s ease-out tileFlash}@keyframes tileFlash{0%,30%{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-secondary) 55%, transparent)}to{box-shadow:0 0 0 3px #0000}}.mark-seg{gap:4px;display:inline-flex}.mark-btn{border-radius:var(--radius-sm);border:1px solid var(--border-medium);min-height:32px;color:var(--text-muted);font-size:var(--fs-footnote);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;padding:4px 12px;font-weight:600}.mark-btn:hover:not(:disabled):not(.is-on){color:var(--text-primary);border-color:var(--text-muted)}.mark-btn.is-on{border-color:#0000}.mark-btn.is-on.is-unsaved{outline-offset:-4px;outline:1.5px dashed}.mark-btn:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.mark-btn:disabled{cursor:not-allowed;opacity:.6}.mark-btn.is-on.is-present{background:var(--safe-bg);color:var(--safe-text)}.mark-btn.is-on.is-late{color:var(--warning-text);background:#f59e0b29}.mark-btn.is-on.is-absent{color:var(--critical-text);background:#b71c1c1f}.register-row{align-items:center;gap:var(--space-lg);border-top:1px solid var(--border);flex-wrap:wrap;padding:11px 0;display:flex}.register-time{white-space:nowrap;min-width:96px;font-weight:700}.register-time.is-cancelled{color:var(--text-muted)}.register-main{--part:var(--text-muted);border-left:3px solid var(--part);min-width:0;padding-left:var(--space-md);flex:260px}.register-main.part-theory{--part:var(--part-theory)}.register-main.part-lab{--part:var(--part-lab)}.register-meta{font-size:var(--fs-subhead);color:var(--text-secondary)}.register-problem{white-space:pre-wrap;flex-basis:100%;display:block}.register-foot{border-top:1px solid var(--border);padding-top:var(--space-md);margin-top:var(--space-md);gap:var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.makeup-form{gap:var(--space-md);flex-wrap:wrap;align-items:flex-end;display:flex}.makeup-form .field-label.is-wide{flex:320px}.makeup-form .input{width:100%}.register-qr{text-align:center;padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.register-qr-plate{border-radius:var(--radius-md);background:#fff;padding:12px;display:inline-block}.register-qr-count{margin-top:var(--space-md);font-size:var(--fs-title-2);font-weight:700}.register-qr-count span{font-size:var(--fs-callout);color:var(--text-secondary);font-weight:400}.register-warn{gap:var(--space-md);color:var(--text-secondary);font-size:var(--fs-subhead);margin-bottom:var(--space-md);align-items:flex-start;display:flex}.register-tools{gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.register-tools .input{flex:200px;font-family:JetBrains Mono,monospace}.sheet-row.is-unplaced{background:color-mix(in srgb, var(--accent-secondary) 8%, transparent)}.sheet-code{width:118px}.sheet-source{width:92px;color:var(--text-muted);font-size:var(--fs-footnote);white-space:nowrap}.sheet-marks{text-align:right;white-space:nowrap;width:230px}.sheet-unplaced{color:var(--ai-text);font-size:var(--fs-footnote)}.register-close{border-top:1px solid var(--border);margin-top:var(--space-lg);padding-top:var(--space-lg)}.register-close .input{width:110px;font-family:JetBrains Mono,monospace}.register-close-row{gap:var(--space-md);flex-wrap:wrap;align-items:flex-end;display:flex}.register-amend{border-top:1px solid var(--border);margin-top:var(--space-lg);padding-top:var(--space-lg);color:var(--text-secondary);font-size:var(--fs-subhead)}.quiz-clock{top:calc(60px + var(--space-sm));z-index:20;margin-bottom:var(--space-lg);padding:var(--space-md) var(--space-lg);text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky}.quiz-clock:hover{transform:none}.quiz-clock-time{font-size:var(--fs-display);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.quiz-clock.is-late{border-color:var(--warning);box-shadow:0 0 0 3px var(--warning-bg), var(--shadow-sm)}.quiz-clock.is-late .quiz-clock-time{color:var(--warning-text)}.quiz-option{cursor:pointer;align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-subtle);min-height:44px;transition:background var(--transition-fast), border-color var(--transition-fast);padding:10px 14px;display:flex}[data-theme=dark] .quiz-option{background:var(--bg-glass-strong)}.quiz-option:hover{border-color:color-mix(in srgb, var(--ai) 40%, transparent)}.quiz-option.is-chosen{background:var(--ai-bg);border-color:var(--ai);box-shadow:inset 3px 0 0 var(--ai)}.quiz-option:focus-within{outline:2px solid var(--accent-secondary);outline-offset:2px}.quiz-option input{accent-color:var(--ai);flex:none;width:18px;height:18px}.state-chip{white-space:nowrap;font-weight:600}.state-chip .icon{vertical-align:0}.is-hidden-row{opacity:.74;border-style:dashed!important}.is-hidden-row:hover{opacity:1}.part-legend{align-items:center;gap:var(--space-md);font-size:var(--fs-footnote);color:var(--text-muted);display:inline-flex}.part-legend-item{align-items:center;gap:6px;display:inline-flex}.part-swatch{border-radius:3px;flex:none;width:10px;height:10px}.part-swatch.is-theory{background:var(--part-theory)}.part-swatch.is-lab{background:var(--part-lab)}.kind-icon{border-radius:var(--radius-sm);background:var(--bg-tertiary);width:30px;height:30px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;display:inline-flex}.kind-icon.is-info{background:var(--info-bg);color:var(--info-text)}.kind-icon.is-safe{background:var(--safe-bg);color:var(--safe-text)}.kind-icon.is-ai{background:var(--ai-bg);color:var(--ai-text)}.kind-icon.is-warning{background:var(--warning-bg);color:var(--warning-text)}.kind-icon.is-sm{border-radius:var(--radius-xs);width:24px;height:24px;margin-top:1px}.week-heading{align-items:center;gap:var(--space-sm);font-size:var(--fs-callout);color:var(--text-primary);border-bottom:1px solid var(--border-medium);flex-wrap:wrap;padding-bottom:6px;font-weight:700;display:flex}.manage-heading{align-items:center;gap:var(--space-sm) var(--space-md);padding:var(--space-sm) 2px;border-bottom:2px solid var(--border-medium);flex-wrap:wrap;display:flex}.manage-heading-title{font-size:var(--fs-title-3);color:var(--text-primary);font-weight:700}.manage-children{margin:var(--space-sm) 0 0 14px;padding-left:var(--space-md);border-left:2px solid var(--border-subtle);gap:var(--space-sm);flex-direction:column;display:flex}.kind-picker{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.kind-option{align-items:flex-start;gap:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;text-align:left;color:inherit;transition:border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);padding:10px 12px;display:flex}.kind-option:hover{border-color:color-mix(in srgb, var(--ai) 40%, transparent)}.kind-option[aria-checked=true]{border-color:var(--ai);background:var(--ai-bg);box-shadow:inset 0 0 0 1px var(--ai)}.kind-option:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:2px}.kind-option-name{font-weight:600;font-size:var(--fs-subhead);display:block}.kind-option-hint{font-size:var(--fs-footnote);color:var(--text-muted);margin-top:1px;line-height:1.4;display:block}.key-option{border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:8px;padding:4px 6px;display:flex}.key-option.is-key{background:var(--safe-bg);border-color:color-mix(in srgb, var(--safe) 35%, transparent)}.key-option input[type=radio],.key-option input[type=checkbox]{accent-color:var(--safe);flex:none;width:18px;height:18px}.field-hint{font-size:var(--fs-footnote);color:var(--text-muted);margin-top:4px;font-weight:400;line-height:1.5;display:block}.stepper{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.step{border-radius:var(--radius-full);font-size:var(--fs-footnote);color:var(--text-muted);background:var(--bg-tertiary);border:1px solid #0000;align-items:center;gap:6px;padding:5px 12px;font-weight:600;display:inline-flex}.step.is-done{color:var(--safe-text);background:var(--safe-bg)}.step.is-now{color:var(--ai-text);background:var(--ai-bg);border-color:var(--ai)}.step-sep{color:var(--text-muted)}.tt-scroll{max-height:calc(100vh - 60px - var(--space-2xl));position:relative;overflow:auto}.tt-head{z-index:4;background:var(--bg-card);position:sticky;top:0}.tt-label{z-index:3;background:var(--bg-card);box-shadow:1px 0 0 var(--border-subtle);position:sticky;left:0}.tt-corner{z-index:5;background:var(--bg-card);box-shadow:1px 0 0 var(--border-subtle);position:sticky;top:0;left:0}.week-grid{grid-template-columns:52px repeat(var(--wg-cols), var(--wg-col)) var(--wg-end);grid-template-rows:26px repeat(var(--wg-rows), var(--wg-row));min-width:calc(52px + var(--wg-cols) * var(--wg-col) + var(--wg-end));display:grid;position:relative}.week-grid-corner{grid-area:1/1}.week-grid-clock{font-family:JetBrains Mono,monospace;font-size:var(--fs-caption);color:var(--text-muted);border-bottom:1px solid var(--border);grid-row:1;align-items:flex-end;padding-bottom:2px;display:flex}.week-grid-clock.is-end{border-left:1px solid var(--border);padding-left:3px}.week-grid-day{font-weight:700;font-size:var(--fs-subhead);color:var(--text-secondary);grid-column:1;align-items:center;display:flex}.week-grid-day.is-first{border-top:1px solid var(--border)}.week-grid-cell{border-top:1px dashed #7f7f7f1f;border-left:1px dashed #7f7f7f1f}.week-grid-cell.is-first{border-top:1px solid var(--border)}.week-grid-cell.is-hour{border-left:1px solid var(--border)}.week-grid-cell.is-band{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}.week-grid-cell.is-over{background:#00c8531f}.week-sitting{--part:var(--text-muted);background:color-mix(in srgb, var(--part) 16%, var(--bg-primary,#fff));border-left:3px solid var(--part);border-radius:var(--radius-sm);font-size:var(--fs-caption);box-sizing:border-box;z-index:1;margin:2px;padding:3px 7px;line-height:1.3;overflow:hidden}.week-sitting.part-theory{--part:var(--part-theory)}.week-sitting.part-lab{--part:var(--part-lab)}.week-sitting-code{font-weight:700;font-size:var(--fs-subhead)}.week-sitting-time{color:var(--text-muted);margin-left:6px;font-weight:500}.week-sitting-line{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sitting{color:var(--text-primary);text-decoration:none}.sitting-link{cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), filter var(--transition-fast)}.sitting-link:hover{box-shadow:var(--shadow-sm);filter:saturate(1.25);transform:translateY(-1px);z-index:2!important}.sitting-link:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:1px;z-index:2!important}.sitting-open{block-size:18px;inline-size:18px;color:var(--text-secondary);background:color-mix(in srgb, var(--bg-card) 72%, transparent);transition:background var(--transition-fast), color var(--transition-fast);border-radius:6px;flex:none;place-items:center;display:inline-grid}.sitting-open:hover{background:var(--ai-bg);color:var(--ai-text)}.quiz-history{border-top:1px dashed var(--border-subtle);font-size:var(--fs-footnote);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.quiz-history-row{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.quiz-history-n{color:var(--text-secondary);font-weight:600}.quiz-history-when{color:var(--text-muted)}.quiz-history-score{color:var(--text-muted);margin-left:auto}.quiz-history-score.is-final,.quiz-history-score.is-auto{color:var(--text-primary);font-weight:600}.sitting-open:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:1px}.sitting-code-link{color:inherit;border-radius:4px;text-decoration:none}.sitting-code-link:hover{text-underline-offset:2px;text-decoration:underline}.sitting-code-link:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:1px}.crumbs{align-items:center;gap:2px;min-width:0;list-style:none;display:flex}.crumbs li{align-items:center;gap:2px;min-width:0;display:flex}.crumbs li:not(:last-child){flex-shrink:4;min-width:3em}@container (width<=440px){.crumbs li:not(:first-child):not(:last-child){display:none}}@container (width<=300px){.crumbs li:not(:last-child){display:none}.crumbs li:last-child:before{content:none}}.crumbs li+li:before{content:"/";color:var(--border-medium);margin:0 4px;font-weight:400}.crumb-link{color:var(--text-muted);border-radius:var(--radius-xs);white-space:nowrap;text-overflow:ellipsis;min-width:0;transition:color var(--transition-fast), background var(--transition-fast);padding:2px 4px;text-decoration:none;overflow:hidden}.crumb-link:hover{color:var(--text-primary);background:var(--bg-tertiary)}.crumb-here{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;padding:2px 4px;font-weight:600;overflow:hidden}.shap-bar-container{gap:var(--space-sm);flex-direction:column;display:flex}.shap-item{align-items:center;gap:var(--space-md);display:flex}.shap-label{font-size:var(--fs-subhead);color:var(--text-secondary);flex-shrink:0;min-width:200px}.shap-bar{background:var(--bg-tertiary);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.shap-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.branch-card{position:relative;overflow:hidden}.branch-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.branch-card.robotics:before{background:var(--robotics)}.branch-card.automation:before{background:var(--automation)}.branch-card.ai:before{background:var(--ai)}.branch-percentage{font-size:var(--fs-display);letter-spacing:-.04em;font-weight:900;line-height:1}.branch-percentage.robotics{color:var(--robotics-text)}.branch-percentage.automation{color:var(--automation-text)}.branch-percentage.ai{color:var(--ai-text)}.recommended-badge{background:var(--accent-gradient-deep);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;box-shadow:var(--glow-primary);align-items:center;gap:4px;padding:3px 10px;font-weight:700;display:inline-flex}.student-detail-header{align-items:center;gap:var(--space-xl);padding:var(--space-xl);margin-bottom:var(--space-xl);display:flex}.student-detail-avatar{border-radius:var(--radius-full);border:3px solid var(--spu-magenta);width:72px;height:72px;box-shadow:0 0 20px #e91e6326}.risk-bands{gap:var(--space-lg);flex-direction:column;display:flex}.risk-band{gap:var(--space-sm);flex-direction:column;display:flex}.risk-band-head{align-items:center;gap:var(--space-sm);display:flex}.risk-band-dot{border-radius:50%;flex:none;width:10px;height:10px}.risk-band-label{font-size:var(--fs-subhead);color:var(--text-secondary);font-weight:600}.risk-band-count{font-family:JetBrains Mono,monospace;font-size:var(--fs-footnote);color:var(--text-muted);font-variant-numeric:tabular-nums}.risk-band-toggle{font:inherit;font-size:var(--fs-footnote);color:var(--robotics-text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;margin-left:auto;padding:6px 10px}.risk-band-toggle:hover{text-decoration:underline}.risk-dots{flex-wrap:wrap;gap:0;display:flex}.risk-dot{cursor:pointer;width:28px;height:28px;transition:transform var(--transition-base), box-shadow var(--transition-base);background-clip:content-box;border:none;border-radius:50%;padding:6px}.risk-dot:hover{z-index:1;transform:scale(1.55)}.risk-dot:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}.risk-dot.selected{box-shadow:0 0 0 2px var(--bg-secondary), 0 0 0 4px var(--text-primary)}.risk-card{z-index:60;align-items:center;gap:var(--space-sm);background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);pointer-events:none;padding:10px 12px;animation:.12s ease-out riskCardIn;display:flex;position:fixed;box-shadow:0 8px 24px #00000029,0 2px 6px #00000014}@keyframes riskCardIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.risk-card-avatar{border-radius:50%;flex:none;width:34px;height:34px}.risk-card-body{flex:1;min-width:0}.risk-card-name{font-size:var(--fs-subhead);color:var(--text-primary);overflow-wrap:anywhere;font-weight:600;line-height:1.3}.risk-card-code{font-family:JetBrains Mono,monospace;font-size:var(--fs-footnote);color:var(--text-muted);font-variant-numeric:tabular-nums}.risk-card-risk{text-align:right;flex:none}.risk-card-pct{font-family:JetBrains Mono,monospace;font-size:var(--fs-title-3);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.risk-card-level{font-size:var(--fs-caption);color:var(--text-muted)}.section-overview{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=1100px){.section-overview{grid-template-columns:minmax(320px,1fr) minmax(0,1.5fr)}}.upcoming-row{align-items:center;gap:var(--space-sm);padding:10px 12px;display:flex}.lib-row{align-items:center;gap:var(--space-sm);min-width:0;padding:10px 12px;display:flex}.lib-kind{border-radius:var(--radius-sm);background:var(--bg-glass-strong);width:32px;height:32px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;display:inline-flex}.lib-kind.is-work{background:var(--ai-bg);color:var(--ai-text)}.lib-kind.is-collection{background:var(--safe-bg);color:var(--safe-text)}.person{align-items:flex-start;gap:var(--space-md);display:flex}.person-avatar{background:var(--ai-bg);width:52px;height:52px;color:var(--ai-text);font-weight:700;font-size:var(--fs-title-3);border-radius:50%;flex:none;place-items:center;display:grid}.sis-grid{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=1100px){.sis-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}.sis-call{gap:var(--space-sm);grid-template-columns:88px minmax(0,1fr);align-items:baseline;display:grid}.sis-call-label{font-size:var(--fs-footnote);color:var(--text-muted);font-weight:600}.sis-row{align-items:center;gap:var(--space-sm);padding:10px 12px;display:flex}.teaching-desk{gap:var(--space-lg);margin-bottom:var(--space-xl);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.teaching-desk:empty{display:none}@media (width>=1100px){.teaching-desk{grid-template-columns:repeat(2,minmax(0,1fr))}}.projector{gap:var(--space-xl);border-radius:var(--radius-xl);color:#f5f2fa;background:#0e0c14;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:clamp(20px,4vw,48px);display:grid}.projector-title{font-size:var(--fs-title-3);color:#cfc8de;font-weight:600}.projector-code{margin:var(--space-md) 0;letter-spacing:.18em;font-size:clamp(56px,11vw,160px);font-weight:700;line-height:1}.projector-state{margin:var(--space-lg) 0;color:#f0b34a;font-size:clamp(28px,4vw,48px);font-weight:700}.projector-meta{font-size:var(--fs-callout);color:#b9b2c9;flex-direction:column;gap:6px;display:flex}.projector-count{color:#fff;font-size:clamp(20px,2.4vw,32px);font-weight:700}.projector-qr{border-radius:var(--radius-md);background:#fff;padding:12px;line-height:0}.projector:fullscreen{border-radius:0;align-content:center;padding:6vw}@media (width<=720px){.projector{grid-template-columns:minmax(0,1fr)}.projector-qr{justify-self:start}}.join-code-input{font-size:var(--fs-title-2);letter-spacing:.18em;text-transform:uppercase;width:100%}.review-lines{margin-top:var(--space-sm);flex-direction:column;gap:6px;padding-left:22px;display:flex}.pick-row{align-items:center;gap:var(--space-sm);width:100%;padding:6px var(--space-sm);border:0;border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-sm);font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex}.pick-row:focus-visible{outline:2px solid var(--accent-secondary);outline-offset:-2px}.kv-row{gap:var(--space-md);border-bottom:1px solid var(--border);grid-template-columns:minmax(120px,180px) 1fr;align-items:baseline;padding:9px 0;display:grid}.kv-key{font-size:var(--fs-subhead);color:var(--text-muted)}.kv-value{font-size:var(--fs-callout);overflow-wrap:anywhere;min-width:0}.course-tile{flex-direction:column;height:100%;display:flex}.course-tile-head{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.course-tile-code{font-weight:700;font-size:var(--fs-subhead)}.course-tile-name{font-size:var(--fs-callout);margin-top:2px;font-weight:600}.course-tile-times{font-size:var(--fs-footnote);color:var(--text-muted);margin-top:auto;padding-top:6px}.result-card{text-align:center;padding:var(--space-2xl)}.result-mark{width:56px;height:56px;margin:0 auto var(--space-md);background:var(--bg-tertiary);color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;display:flex}.result-mark.is-safe,.result-status.is-safe{background:var(--safe-bg);color:var(--safe-text)}.result-mark.is-warning,.result-status.is-warning{background:var(--warning-bg);color:var(--warning-text)}.result-mark.is-critical{background:var(--critical-bg);color:var(--critical-text)}.result-title{font-size:var(--fs-title-3);font-weight:700}.result-status{margin-top:var(--space-md);border-radius:var(--radius-sm);font-size:var(--fs-subhead);background:var(--bg-tertiary);color:var(--text-muted);padding:3px 12px;font-weight:600;display:inline-block}.result-actions{justify-content:center}.check-in-form{align-items:flex-end;gap:var(--space-md)}.check-in-form .field-label{flex:260px}.check-in-form .input{width:100%}.plan-tag{border-radius:var(--radius-sm);font-size:var(--fs-caption);white-space:nowrap;background:var(--bg-tertiary);color:var(--text-muted);padding:1px 8px;font-weight:600}.plan-tag.is-passed{background:var(--safe-bg);color:var(--safe-text)}.plan-tag.is-ongoing{background:var(--ai-bg);color:var(--ai-text)}.plan-tag.is-failed{background:var(--critical-bg);color:var(--critical-text)}.plan-bar{background:var(--bg-tertiary);height:10px;margin-top:var(--space-lg);border-radius:999px;display:flex;overflow:hidden}.plan-bar>span{height:100%;display:block}.plan-bar .is-passed,.part-swatch.is-passed{background:var(--safe)}.plan-bar .is-ongoing,.part-swatch.is-ongoing{background:var(--accent-secondary)}.plan-bar .is-slots,.part-swatch.is-slots{background:color-mix(in srgb, var(--text-primary) 18%, transparent)}.plan-legend{flex-wrap:wrap;margin-top:8px}.plan-course-link{color:var(--accent-text);font-weight:600}.fold-toggle{align-items:center;gap:var(--space-sm);text-align:left;background:var(--bg-tertiary);border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--text-primary);font-family:inherit;font-size:var(--fs-subhead);border:none;padding:7px 10px;font-weight:700;display:flex}.fold-toggle-note{color:var(--text-muted);font-weight:500;font-size:var(--fs-footnote);margin-left:auto}.directory-search{gap:var(--space-lg)}.directory-search>.grow{min-width:200px}.term-course{align-items:center;gap:var(--space-lg);padding:10px 14px;display:flex}.term-course-meets{justify-content:flex-end}.status-pen{border-left:3px solid var(--warning)}.form-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.form-grid .input{width:100%}.facts{gap:var(--space-lg) var(--space-xl);color:var(--text-secondary);font-size:var(--fs-body);flex-wrap:wrap;display:flex}.chip-facts{gap:var(--space-xl);margin:var(--space-md) 0 var(--space-lg);flex-wrap:wrap;display:flex}.chip-fact{flex-direction:column;gap:5px;display:flex}.chip-fact-label{font-size:var(--fs-caption);color:var(--text-muted);letter-spacing:.02em;font-weight:600}.student-title{align-items:baseline;gap:var(--space-md);flex-wrap:wrap;margin-bottom:2px;display:flex}.student-title .mono{font-size:var(--fs-subhead);color:var(--text-muted);letter-spacing:0;font-weight:500}.study-mode-tag{background:var(--sidebar-fill,var(--bg-tertiary));color:var(--text-secondary)}.term-heading{align-items:center;gap:var(--space-sm);font-size:var(--fs-subhead);color:var(--text-secondary);margin-bottom:var(--space-xs);font-weight:600;display:flex}.retake-tag{font-size:var(--fs-footnote);border-radius:var(--radius-full);color:var(--warning-text);background:#ff98001f;margin-left:6px;padding:1px 6px;font-weight:700}.metric-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.metric{text-align:center;padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md)}.metric-value{font-size:var(--fs-title-2);color:var(--text-muted);font-family:JetBrains Mono,monospace;font-weight:800}.metric-value.is-safe{color:var(--safe-text)}.metric-value.is-warning{color:var(--warning-text)}.metric-value.is-critical{color:var(--critical-text)}.metric-label{font-size:var(--fs-subhead);color:var(--text-muted);margin-top:4px}.count-pill{font-size:var(--fs-footnote);border-radius:var(--radius-full);color:var(--critical-text);white-space:nowrap;background:#f871711f;padding:3px 10px;font-weight:700}.plan-legend-swatch{border:1px solid var(--border-medium);border-radius:3px;flex-shrink:0;width:12px;height:12px}.plan-legend-swatch.is-settled{background:var(--safe-bg);border-color:var(--safe-text)}.plan-legend-swatch.is-pending{background:var(--warning-bg);border-color:var(--warning-text)}.plan-legend-swatch.is-slot{background:0 0;border-style:dashed}.plan-term{border-left:3px solid var(--border-medium);padding-left:var(--space-lg)}.plan-term.is-idle{opacity:.6}.plan-term.is-complete{border-left-color:var(--safe)}.plan-term-head{align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.plan-term-mark{border:2px solid var(--text-muted);background:var(--border-medium);border-radius:50%;flex-shrink:0;width:12px;height:12px}.plan-term-mark.is-complete{background:var(--safe);border:none}.plan-courses{gap:var(--space-sm);padding-left:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.plan-course{align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--fs-subhead);border:1px solid var(--border-subtle);padding:8px 12px;display:flex}.plan-course.is-settled{background:var(--safe-bg)}.plan-course.is-pending{background:var(--warning-bg)}.plan-course.is-slot{border:1px dashed var(--border-medium);background:0 0}.plan-course-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:6px;height:6px}.plan-course.is-slot .plan-course-dot{border:1px solid var(--text-muted);background:0 0}.plan-course-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.plan-course-meta{font-size:var(--fs-footnote);color:var(--text-muted);font-family:JetBrains Mono,monospace}.calendar-bar{align-items:flex-end;gap:var(--space-md)}.calendar-term{min-width:180px}.calendar-dates{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.calendar-dates .input{width:100%}.calendar-periods{min-width:820px}.calendar-name{min-width:200px}.curriculum-name{font-size:var(--fs-title-3);margin:0 0 var(--space-sm);color:var(--text-primary);font-weight:700}.book-terms{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.book-term{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);background:var(--bg-secondary)}.book-term-head{align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.book-line{align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--fs-subhead);background:var(--bg-card);border:1px solid var(--border-subtle);padding:5px 8px;display:flex}.book-line.is-slot{border:1px dashed var(--border-medium);color:var(--text-secondary);background:0 0}.book-code{color:var(--text-muted);font-size:var(--fs-footnote);min-width:68px}.book-group{border-left:3px solid var(--cat,var(--text-muted));padding-left:var(--space-md)}.book-courses{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:6px;display:grid}.book-course{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-secondary);font-size:var(--fs-subhead);flex-direction:column;gap:2px;padding:6px 10px;display:flex}.book-course-meta{gap:var(--space-md);font-size:var(--fs-caption);color:var(--text-muted);flex-wrap:wrap;padding-left:76px;display:flex}.book-pill{font-size:var(--fs-caption);border-radius:var(--radius-full);white-space:nowrap;padding:1px 7px;font-weight:700}.book-pill.is-regular{color:var(--safe-text);background:#00c8531f}.book-pill.is-special{color:var(--ai-text);background:#7c4dff1f}.book-pill.is-choose{color:var(--info-text);background:#00b8d41f;font-weight:600}.stat-chip.tint-accent{--tint:var(--accent-secondary)}.stat-chip.tint-accent .stat-chip-icon{color:#6366f1;background:#7c4dff1a}.stat-chip.tint-accent .stat-chip-value{color:var(--accent-secondary)}.stat-chip.tint-safe{--tint:var(--safe)}.stat-chip.tint-safe .stat-chip-icon{color:#00c853;background:#14c98b1a}.stat-chip.tint-safe .stat-chip-value{color:var(--safe-text)}.stat-chip.tint-critical{--tint:var(--critical)}.stat-chip.tint-critical .stat-chip-icon{color:#f44336;background:#ff4d5e1a}.stat-chip.tint-critical .stat-chip-value{color:var(--critical-text)}.stat-chip.tint-warning{--tint:var(--warning)}.stat-chip.tint-warning .stat-chip-icon{color:#ffa51f;background:#ffa51f1a}.stat-chip.tint-warning .stat-chip-value{color:var(--warning-text)}.stat-chip.tint-probation{--tint:#e65100}.stat-chip.tint-probation .stat-chip-icon{color:#e65100;background:#e651001a}.stat-chip.tint-probation .stat-chip-value{color:#e65100}.charts-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));display:grid}.chart-row{align-items:center;gap:var(--space-md);display:flex}.chart-legend{flex-direction:column;gap:6px;display:flex}.chart-legend-item{font-size:var(--fs-subhead);align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.health-card{justify-content:center;align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.gauge-svg{transform:rotate(-90deg)}.gauge-arc{transition:stroke-dasharray .8s}.gauge-value.is-safe{color:var(--safe-text)}.streak-dot.is-safe{background:#00c853}.streak-dot.is-warning{background:#ff9800}.pick-layout{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.pick-layout.is-list-first{grid-template-columns:340px minmax(0,1fr)}.pick-panel{top:var(--space-xl);position:sticky}.pick-scroll{max-height:600px;overflow-y:auto}.pick-row{transition:background var(--transition-base);background:0 0}.pick-row:hover{background:var(--bg-secondary)}.pick-row.is-picked{background:#e91e630f}.pick-row .student-avatar.is-small{width:28px;height:28px}.branch-tag.is-small{font-size:var(--fs-caption);padding:1px 6px}@media (width<=900px){.pick-layout,.pick-layout.is-list-first{grid-template-columns:minmax(0,1fr)}.pick-panel{position:static}}.match-row{align-items:center;gap:var(--space-lg);padding:var(--space-md);border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:var(--space-xs);display:flex}.match-row.is-top{background:var(--bg-secondary)}.match-mark{width:48px;color:var(--ai-text);flex-shrink:0;justify-content:center;display:flex}.match-name{margin-bottom:2px;font-weight:700}.match-star{color:#ffb300;vertical-align:-1px;margin-right:4px}.match-score{text-align:center;min-width:70px}.match-score-value{font-size:var(--fs-title-2);font-weight:900}.match-score-label{font-size:var(--fs-footnote);color:var(--text-muted);font-weight:600}.track-chips .filter-chip.active{border-color:var(--track);color:var(--track-text);background:color-mix(in srgb, var(--track) 7%, transparent)}.track-text{color:var(--track-text)}.road-step{gap:var(--space-lg);display:flex}.road-rail{flex-direction:column;flex-shrink:0;align-items:center;width:40px;display:flex}.road-month{background:var(--bg-tertiary);width:32px;height:32px;color:var(--text-secondary);font-size:var(--fs-subhead);border:2px solid var(--track,var(--border-medium));border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.road-line{background:var(--border-medium);flex:1;width:2px;min-height:20px}.road-body{min-width:0;padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);flex:1}.road-type{border-radius:var(--radius-full);font-size:var(--fs-footnote);white-space:nowrap;color:var(--kind);background:color-mix(in srgb, var(--kind) 8%, transparent);padding:2px 8px;font-weight:600}.road-title{font-weight:700;font-size:var(--fs-body);margin-bottom:var(--space-xs)}.skill-pill{border-radius:var(--radius-full);font-size:var(--fs-footnote);background:var(--bg-glass-strong);color:var(--text-secondary);border:1px solid var(--border-subtle);padding:2px 8px}.track-course{border-radius:var(--radius-full);font-size:var(--fs-footnote);color:var(--track-text);background:color-mix(in srgb, var(--track) 6%, transparent);border:1px solid color-mix(in srgb, var(--track) 12%, transparent);padding:4px 10px;font-weight:500}.picked-student{padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md)}.picked-student .student-avatar{width:40px;height:40px}.level-stars{color:var(--text-muted);gap:3px;display:inline-flex}.level-stars .is-on{color:var(--track-text)}.pick-scroll.is-short{max-height:400px}.curriculum-picker{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.stack>.curriculum-picker,.stack-md>.curriculum-picker,.stack-lg>.curriculum-picker{margin-bottom:0}.curriculum-picker-label{font-size:var(--fs-footnote);color:var(--text-muted);white-space:nowrap}.curriculum-picker-name{font-size:var(--fs-subhead);color:var(--text-primary);font-weight:600}.curriculum-picker-select{font-size:var(--fs-subhead);min-width:0;max-width:28rem}.level-safe{--level:#00c853;--level-ink:var(--safe-text);--level-bg:var(--safe-bg)}.level-warning{--level:#ff9800;--level-ink:var(--warning-text);--level-bg:var(--warning-bg)}.level-critical{--level:#f44336;--level-ink:var(--critical-text);--level-bg:var(--critical-bg)}.level-no_data{--level:#9e9e9e;--level-ink:var(--text-muted);--level-bg:var(--bg-tertiary)}.risk-band-dot{background:var(--level)}.risk-card-pct{color:var(--level)}.stat-filter .level-ink{color:var(--level-ink)}.stat-filter .icon.level-ink{margin-bottom:var(--space-xs)}.stat-filter[aria-pressed=true]{border:1px solid var(--level-ink)}.stat-filter-share{font-size:var(--fs-display);opacity:.2;font-weight:900}.level-filters{gap:var(--space-lg)}.risk-legend{gap:var(--space-md)}.risk-legend-item{font-size:var(--fs-footnote);color:var(--text-muted);gap:4px}.risk-swatch{border-radius:3px;flex:none;width:12px;height:12px}.risk-swatch.level-safe{background:#34d39959}.risk-swatch.level-warning{background:#fbbf2480}.risk-swatch.level-critical{background:#f87171b3}.risk-swatch.level-no_data{background:#9e9e9e99}.risk-layout{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.risk-layout.has-panel{grid-template-columns:minmax(0,1fr) 380px}.risk-panel{top:var(--space-xl);position:sticky}@media (width<=1100px){.risk-layout.has-panel{grid-template-columns:minmax(0,1fr)}.risk-panel{position:static}}tr.row-pickable{cursor:pointer}tr.row-pickable.is-picked{background:#e91e630f}.mono-figure{font-family:JetBrains Mono,monospace;font-size:var(--fs-callout)}.student-avatar.is-large{width:48px;height:48px}.risk-score{text-align:center;padding:var(--space-lg);border-radius:var(--radius-md);background:var(--level-bg)}.risk-score-value{font-size:var(--fs-display);color:var(--level-ink);font-weight:900}.risk-score-label{font-size:var(--fs-callout);color:var(--text-secondary);font-weight:600}.risk-score-chips{margin-top:var(--space-xs);justify-content:center}.reg-chip{font-size:var(--fs-caption);border-radius:var(--radius-full);color:#b71c1c;background:#b71c1c14;padding:1px 6px;font-family:JetBrains Mono,monospace;font-weight:700}.reg-chip.is-override{background:#b71c1c1f;border:1px solid #b71c1c40;font-family:inherit}.ml-chip{font-size:var(--fs-caption);border-radius:var(--radius-full);background:var(--bg-glass);color:var(--text-muted);padding:2px 6px;font-weight:600}.metric-tiles{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100px,100%),1fr));display:grid}.metric-tile{text-align:center;padding:var(--space-sm);background:var(--bg-glass);border-radius:var(--radius-sm)}.metric-tile-value{font-size:var(--fs-title-3);color:var(--text-primary);font-weight:800}.metric-tile-value.text-critical{color:var(--critical-text)}.panel-note{text-align:center;padding:var(--space-lg);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;line-height:1.5;display:flex}.panel-note.is-safe{background:#00c8530f;border-color:#00c85326}.panel-note.is-safe>.icon,.panel-note.is-safe>.strong{color:var(--safe-text)}.factor-row{align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--warning-bg);display:flex}.factor-row.is-critical{background:var(--critical-bg)}.factor-row.is-regulation{background:#b71c1c0f;border-left:3px solid #b71c1c}.factor-mark{color:var(--warning);flex-shrink:0;margin-top:3px}.factor-row.is-critical .factor-mark{color:var(--critical)}.factor-row.is-regulation .factor-mark{color:#b71c1c}.factor-head{gap:4px}.action-row{align-items:flex-start;gap:var(--space-sm);padding:6px 0;display:flex}.action-mark{color:var(--tone,var(--text-muted));flex-shrink:0;margin-top:3px}.tier-chip{border-radius:var(--radius-full);font-size:var(--fs-footnote);color:var(--tone);background:color-mix(in srgb, var(--tone) 12.5%, transparent);padding:2px 8px;font-weight:700}.health-row{background:var(--bg-secondary);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.btn.is-block{justify-content:center;width:100%}.tier-1{color:#b07a3c}.tier-2{color:#9aa3ad}.tier-3{color:#e3a008}.shields{gap:1px;display:inline-flex}.tier-card-head{align-items:flex-start}.tier-card-head .medal{margin-bottom:var(--space-xs)}.tier-count{font-size:var(--fs-display);color:var(--track);font-weight:900}.progress-bar.is-thin{height:6px}.progress-fill.is-track{background:var(--track)}.progress-fill.is-earned{background:var(--safe)}.req-row{align-items:center;gap:var(--space-sm);font-size:var(--fs-subhead);color:var(--text-muted);padding:4px 8px;display:flex}.req-row.is-done{color:var(--safe-text)}.req-row.is-done .req-name{opacity:.7;text-decoration:line-through}.intel-row{gap:var(--space-lg)}.chart-legend.is-row{justify-content:center;gap:var(--space-lg);margin-top:var(--space-sm);flex-flow:wrap}.fail-bar{flex:none;width:80px}.progress-fill.tone-critical{background:#f44336}.progress-fill.tone-warning{background:#ff9800}.progress-fill.tone-safe{background:#00c853}.gap-item{padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:4px solid var(--gap);align-items:flex-start;gap:var(--space-xs);flex-direction:column;display:flex}.gap-item.is-high{--gap:#f44336;--gap-bg:var(--critical-bg);--gap-ink:var(--critical-text)}.gap-item.is-medium{--gap:#ff9800;--gap-bg:var(--warning-bg);--gap-ink:var(--warning-text)}.gap-item.is-low{--gap:#2196f3;--gap-bg:#2196f31a;--gap-ink:var(--info-text)}.priority-chip{border-radius:var(--radius-full);font-size:var(--fs-footnote);background:var(--gap-bg);color:var(--gap-ink);padding:2px 8px;font-weight:700}.gap-title{font-weight:700;font-size:var(--fs-title-3)}.structure-band{gap:2px;margin-bottom:3px;display:flex}.structure-band.is-leaves{margin-bottom:var(--space-lg)}.structure-seg{flex:var(--share) 0 0;background:var(--cat);border-radius:4px;min-width:2px;height:14px}.structure-band.is-leaves .structure-seg{opacity:.75;border-radius:3px;height:8px}.structure-list{flex-direction:column;gap:2px;display:flex}.structure-row{align-items:center;gap:var(--space-sm);padding:3px 0;display:flex}.structure-row.is-leaf{padding:2px 0 2px 22px}.structure-swatch{background:var(--cat);border-radius:3px;flex-shrink:0;width:10px;height:10px}.structure-row.is-leaf .structure-swatch{border-radius:2px;width:6px;height:6px}.structure-name{font-size:var(--fs-callout);color:var(--text-primary);font-weight:600}.structure-value{font-size:var(--fs-callout);white-space:nowrap;margin-left:auto;font-weight:700}.structure-row.is-leaf .structure-name,.structure-row.is-leaf .structure-value{font-size:var(--fs-subhead);color:var(--text-secondary);font-weight:400}.structure-total{align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);display:flex}.structure-total-label{font-size:var(--fs-callout);color:var(--text-muted)}.structure-total-value{font-size:var(--fs-body);margin-left:auto;font-weight:800}.users-search{width:260px;max-width:100%}tr.is-inactive{opacity:.55}.row-actions{flex-wrap:nowrap;justify-content:flex-end;gap:6px}.input.is-picker{min-width:260px;max-width:100%}.grant-row{align-items:flex-end;gap:var(--space-md)}.grants-table{min-width:720px}.inset-form{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md)}.narrow-field{max-width:480px}.program-name{margin-left:6px}.section-toolbar{align-items:flex-end;gap:var(--space-md)}.section-search{min-width:200px}.form-grid .span-2{grid-column:span 2}@media (width<=640px){.form-grid .span-2{grid-column:auto}}.sections-table{min-width:980px}.sections-table th.is-wide{min-width:200px}.course-cell{max-width:260px}.instructor-line{font-size:var(--fs-callout);gap:6px}.risk-tag.is-tight{padding:1px 7px}tr.inline-editor>td{background:var(--bg-secondary)}.section-edit{align-items:flex-end;gap:var(--space-md)}.input.is-code{width:90px}.input.is-count{width:110px}.instructor-entry{gap:2px}.room-board{grid-template-columns:116px repeat(var(--rb-cols), 50px) 44px;min-width:calc(116px + var(--rb-cols) * 50px + 44px);grid-auto-rows:38px;display:grid;position:relative}.room-board-rule{top:0;bottom:0;left:calc(116px + var(--at) * 50px);background:var(--border-medium);pointer-events:none;z-index:0;width:1px;position:absolute}.room-board-corner{border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-size:var(--fs-caption);color:var(--text-muted);grid-area:1/1;align-items:center;display:flex}.room-board-clock{border-bottom:1px solid var(--border);border-left:1px solid var(--border);font-size:var(--fs-caption);color:var(--text-muted);grid-row:1;padding-left:3px;font-family:JetBrains Mono,monospace}.room-board-clock.is-hour{color:var(--text-secondary);border-left:none}.room-board-clock.is-end{border-left:1px solid var(--border);color:var(--text-muted)}.room-board-floor{background:var(--bg-tertiary);border:none;border-top:1px solid var(--border-medium);border-bottom:1px solid var(--border-medium);font-size:var(--fs-caption);color:var(--text-primary);cursor:pointer;text-align:left;border-radius:0;grid-column:1/-1;padding:0;font-family:inherit;font-weight:600;display:block}.room-board-floor-words{z-index:3;background:var(--bg-tertiary);align-items:center;gap:8px;height:100%;padding:0 4px;display:inline-flex;position:sticky;left:0}.normal{font-weight:400}.room-board-room{border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-size:var(--fs-caption);grid-column:1;align-items:center;gap:4px;padding-right:4px;display:flex}.room-board-room.is-band{background:color-mix(in srgb, var(--text-primary) 5%, var(--bg-card))}.room-kind{background:var(--text-muted);border-radius:2px;flex:none;width:6px;height:6px}.room-kind.is-lab{background:var(--part-lab)}.room-board-slot{border-bottom:1px solid var(--border);border-left:1px dashed var(--border)}.room-board-slot.is-hour{border-left:none}.room-board-slot.is-end{border-left:1px solid var(--border)}.room-board-slot.is-band{background:color-mix(in srgb, var(--text-primary) 5%, transparent)}.room-board-slot.is-over{background:#00c85324}.board-block{--part:var(--text-muted);z-index:1;border-radius:var(--radius-sm);box-sizing:border-box;background:color-mix(in srgb, var(--part) 16%, var(--bg-primary,#fff));border-left:3px solid var(--part);white-space:nowrap;font-size:var(--fs-caption);align-self:stretch;align-items:center;gap:6px;margin:2px 1px;padding:1px 5px;line-height:1.2;display:flex;position:relative;overflow:hidden}.board-block.part-theory{--part:var(--part-theory)}.board-block.part-lab{--part:var(--part-lab)}.board-block.is-movable{cursor:grab}.board-block.is-foreign{opacity:.55}.board-block.is-dragging{opacity:.45}.tt-card{flex-direction:column;line-height:1.25;display:flex}.tt-card.is-movable{cursor:grab}.tt-card.is-dragging{opacity:.45}.tt-card-hours{align-items:center;gap:4px;font-weight:700;display:flex}.tt-card-room{color:var(--text-secondary);font-weight:400}.tt-card-code{font-weight:700;font-size:var(--fs-subhead);justify-content:space-between;gap:8px;margin:1px 0;display:flex}.tt-card-section{color:var(--text-secondary);font-weight:600}.tt-card-name{font-size:var(--fs-subhead);line-height:1.2}.tt-card-foot{color:var(--text-muted);white-space:nowrap;align-self:flex-end;margin-top:auto}.planned-mark{opacity:.8}.tt-toolbar{align-items:flex-end;gap:var(--space-md)}.tt-lookup{align-items:flex-end;gap:var(--space-sm)}.filter-chip.is-empty{opacity:.45}.move-notice{flex-wrap:wrap;align-items:center}.move-notice-text{flex:240px}.clash-panel{border-radius:var(--radius-sm);font-size:var(--fs-subhead);background:#b71c1c14;border:1px solid #b71c1c4d;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.clash-reasons{color:var(--text-secondary);margin:0;padding-left:18px}.clash-reasons li{margin-bottom:2px}.inset-panel{background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:var(--fs-subhead);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.candidate-list{flex-direction:column;gap:4px;max-height:220px;display:flex;overflow-y:auto}.btn.candidate{text-align:left;justify-content:flex-start;gap:8px}.btn.candidate.is-busy{opacity:.6}.jigsaw-layout{gap:var(--space-lg);flex-wrap:wrap;align-items:flex-start;display:flex}.jigsaw-menu{flex:0 0 300px;min-width:260px}.jigsaw-week{flex:460px;min-width:0}.jigsaw-auto>.btn{flex:auto}.jigsaw-empty{padding:var(--space-lg)}.jigsaw-pieces{flex-direction:column;gap:6px;max-height:520px;display:flex;overflow-y:auto}.jigsaw-piece{--part:var(--text-muted);border:1px solid var(--border);border-left:3px solid var(--part);border-radius:var(--radius-sm);font-size:var(--fs-caption);background:var(--bg-primary,#fff);flex-direction:column;gap:3px;padding:6px 8px;display:flex}.jigsaw-piece.part-theory{--part:var(--part-theory)}.jigsaw-piece.part-lab{--part:var(--part-lab)}.jigsaw-piece.is-movable{cursor:grab}.jigsaw-piece.is-dragging{opacity:.5}.jigsaw-piece-head{font-weight:700;font-size:var(--fs-subhead);justify-content:space-between;gap:6px;display:flex}.jigsaw-piece-facts{gap:8px}.jigsaw-sitting{line-height:1.25}.jigsaw-sitting.is-tba{background:var(--warning-bg)}.jigsaw-sitting.is-pickable{cursor:pointer}.title-aside{margin-left:var(--space-md)}.attempt-tile{padding:0}.attempt-toggle{align-items:center;gap:var(--space-sm) var(--space-md);min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;flex:1;padding:12px 16px;display:flex}.attempt-toggle.is-locked{cursor:default}.attempt-who{flex-direction:column;min-width:0;display:flex}.attempt-student{margin-right:12px}.attempt-detail{padding:var(--space-md) 16px 16px;border-top:1px solid var(--border)}.attempt-detail-note{padding:var(--space-md)}.field-label.is-inline{align-items:center;gap:var(--space-sm);margin:0;display:flex}.field-label.is-inline>.input{display:revert;margin-top:0}.question-head{gap:var(--space-sm)}.question-answers{margin:var(--space-sm) 0 0 22px;flex-direction:column;gap:6px;display:flex}.quiz-option.is-closed{cursor:default}.input.is-number{max-width:180px}.attempt-actions{gap:var(--space-md);margin-top:var(--space-xl)}.question-editor{border-left:3px solid var(--border);padding-left:12px}.question-editor.has-problem{border-left-color:var(--warning-text)}.input.is-points{width:80px}.assign-confirm{gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--border-accent);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;flex:100%;min-width:0;display:flex}.assign-confirm-list{margin:0;padding-left:1.2em}.assign-confirm .row-wrap{margin-top:var(--space-xs)}.question-level{align-items:center;gap:var(--space-xs);display:inline-flex}.tutor-thread{gap:var(--space-sm);flex-direction:column;display:flex}.tutor-docs{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tutor-doc{align-items:center;gap:var(--space-md);border-bottom:1px solid var(--border-subtle);min-width:0;padding:10px 0;display:flex}.tutor-doc:last-child{border-bottom:0}.gen-group{border:0;flex-direction:column;gap:2px;min-width:0;margin:0;padding:0;display:flex}.gen-group-title{font-weight:600;font-size:var(--fs-subhead);color:var(--text-secondary);margin-bottom:var(--space-xs);padding:0}.gen-subhead{font-size:var(--fs-footnote);color:var(--text-muted);padding:var(--space-xs) 0 0 28px}.gen-source{align-items:center;gap:var(--space-sm);cursor:pointer;border-radius:8px;min-width:0;padding:6px 8px;display:flex}.gen-source:hover{background:var(--bg-secondary)}.gen-source>.grow{overflow-wrap:break-word;flex-direction:column;min-width:0;display:flex}.gen-source.is-off{cursor:default;opacity:.6}.gen-source.is-off:hover{background:0 0}.manage-item,.hand-in{padding:10px 14px}.manage-item-head{gap:var(--space-sm) var(--space-md)}.manage-item-head>.grow{flex:12rem}.manage-item-title{font-weight:600;display:block}.manage-item-meta{font-size:var(--fs-footnote);color:var(--text-muted);display:block}.manage-item-body{font-size:var(--fs-subhead);color:var(--text-secondary);white-space:pre-wrap;margin-top:6px}.manage-group{border-width:0}.tile.is-form,[data-theme=dark] .tile.is-form{background:var(--bg-card)}.week-visibility{gap:var(--space-md)}.week-visibility-note{font-size:var(--fs-subhead);color:var(--text-secondary);flex:260px}.file-line{max-width:100%;font-size:var(--fs-footnote);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.file-open{max-width:100%;overflow:hidden}.file-list{flex-direction:column;align-items:flex-start;gap:6px;margin-top:6px;display:flex}.file-list>.file-line{margin-top:0}.release-bar{gap:var(--space-sm) var(--space-md)}.release-note{font-size:var(--fs-footnote);color:var(--text-muted);flex:220px}.mark-form{align-items:flex-end;gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.mark-form .field-label{margin:0}.mark-feedback{flex:220px;min-width:0}.join-code{gap:var(--space-sm)}.join-code-value{letter-spacing:.14em;font-size:1.25rem}.assign-form-title{font-size:var(--fs-callout);color:var(--text-primary);font-weight:700}.assign-also{border:0;flex-direction:column;gap:4px;min-width:0;margin:0;padding:0;display:flex}.check-stack{font-size:var(--fs-subhead);flex-direction:column;justify-content:center;gap:4px;display:flex}.assign-actions{gap:var(--space-md)}.week-item{margin-left:calc(var(--depth,0) * 20px);border-radius:var(--radius-sm);border:1px solid #0000}.week-item.is-hidden-row{border-color:var(--border-medium);padding:4px 6px}.week-item-body{font-size:var(--fs-subhead);color:var(--text-secondary);white-space:pre-wrap;margin-top:4px;line-height:1.6}.item-head{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.week-blank{padding:var(--space-sm) 0}.upcoming-when{text-align:right;flex:none}.roster-search{width:240px;max-width:100%}.cm-form,.live-form{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.live-form{margin:var(--space-lg) 0 0;padding:var(--space-lg)}.cm-inline-form{gap:var(--space-md)}.cm-inline-form .field-label{margin-bottom:0}.form-grid.is-narrow{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.cm-decide{justify-content:flex-end;gap:6px}.cm-aside{margin-left:4px}.cm-search{min-width:240px}.input.is-building{min-width:120px}.input.is-medium{width:200px;max-width:100%}.cm-tinted{border-left:3px solid var(--cat,var(--text-muted));padding-left:8px}.cm-tinted.is-group{padding-left:var(--space-md)}.cm-categories{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.cm-group-fields{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;display:grid}.cm-group-fields .span-2{grid-column:span 2}@media (width<=640px){.cm-group-fields .span-2{grid-column:auto}}.cm-plan{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.cm-plan-term{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:var(--space-sm);font-size:var(--fs-footnote)}.cm-course-columns{columns:3;column-gap:var(--space-md)}@media (width<=640px){.cm-course-columns{columns:1}}.cm-json{min-height:420px;font-size:var(--fs-footnote);white-space:pre;resize:vertical;line-height:1.45}.live-scope{gap:var(--space-md);color:var(--text-secondary);font-size:var(--fs-subhead);margin-bottom:var(--space-lg);align-items:flex-start;display:flex}.live-heading{margin:0 0 var(--space-sm)}.live-heading.is-later{margin-top:var(--space-2xl)}.live-fields{gap:var(--space-md)}.live-fields .field-label{margin-bottom:0}.live-name-field{flex:220px;min-width:0}.live-actions{gap:var(--space-md);margin-top:var(--space-lg)}.live-add{max-width:380px}.member-chips{margin-bottom:var(--space-sm);flex-wrap:wrap;gap:6px;display:flex}.member-chip{background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--fs-footnote);align-items:center;gap:6px;padding:3px 6px 3px 9px;display:inline-flex}.member-chip-remove{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;line-height:1}.member-chip-remove:hover{color:var(--text-primary)}.col-credits{width:90px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-in{animation:fadeInUp .42s var(--ease-pop) forwards}.animate-in-delay-1{opacity:0;animation-delay:60ms}.animate-in-delay-2{opacity:0;animation-delay:.12s}.animate-in-delay-3{opacity:0;animation-delay:.18s}.animate-in-delay-4{opacity:0;animation-delay:.24s}@keyframes dotPop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}.risk-dot{animation:dotPop .34s var(--ease-pop) backwards;animation-delay:calc(var(--i,0) * 4ms)}.count-up{font-variant-numeric:tabular-nums}@keyframes auroraDrift{0%,to{background-position:0%}50%{background-position:100%}}.aurora-text{background:linear-gradient(100deg, var(--spu-magenta), var(--pop-violet), var(--pop-mint), var(--spu-magenta));color:#0000;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;animation:9s ease-in-out infinite auroraDrift}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.card:hover,.stat-chip:hover,.btn-primary:hover,.btn-ghost:hover,.btn-secondary:hover,.tile-link:hover,.tile-link:hover .tile-go,.sitting-link:hover,.sidebar-link:not(.is-soon):not(.active):hover{transform:none}}.filter-chips{gap:var(--space-sm);flex-wrap:wrap;display:flex}.filter-chip{border-radius:var(--radius-full);font-size:var(--fs-subhead);cursor:pointer;background:var(--bg-card);border:1px solid var(--border-medium);color:var(--text-secondary);transition:all var(--transition-base);padding:5px 14px;font-family:inherit;font-weight:500}.filter-chip:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--spu-magenta)}.filter-chip.active{background:var(--robotics-bg);border-color:var(--spu-magenta);color:var(--accent-text);font-weight:600}.divider{background:var(--border-subtle);height:1px;margin:var(--space-lg) 0}.mono{font-family:JetBrains Mono,monospace}.grade-badge{border-radius:var(--radius-sm);min-width:36px;font-size:var(--fs-subhead);justify-content:center;align-items:center;padding:2px 8px;font-family:JetBrains Mono,monospace;font-weight:700;display:inline-flex}.grade-badge.excellent{color:var(--safe-text);background:#00c85314}.grade-badge.good{color:var(--info-text);background:#2196f314}.grade-badge.average{color:var(--warning-text);background:#ff980014}.grade-badge.poor{color:var(--critical-text);background:#f4433614}.grade-badge.muted{background:var(--bg-tertiary);color:var(--text-muted)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.hamburger-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-base);background:0 0;padding:4px;display:none}.hamburger-btn:hover{background:var(--bg-secondary);border-color:var(--border-medium);color:var(--text-primary)}.sidebar-overlay{display:none}.row{align-items:center;gap:var(--space-sm);min-width:0;display:flex}.row-wrap{align-items:center;gap:var(--space-sm);flex-wrap:wrap;min-width:0;display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.stack-sm{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.stack{gap:var(--space-sm);flex-direction:column;min-width:0;display:flex}.stack-md{gap:var(--space-md);flex-direction:column;min-width:0;display:flex}.stack-lg{gap:var(--space-lg);flex-direction:column;min-width:0;display:flex}.stack-xl{gap:var(--space-xl);flex-direction:column;min-width:0;display:flex}.spacer{flex:1}.grow{flex:1;min-width:0}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.text-caption{font-size:var(--fs-caption)}.text-footnote{font-size:var(--fs-footnote)}.text-subhead{font-size:var(--fs-subhead)}.text-callout{font-size:var(--fs-callout)}.strong{font-weight:600}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.eyebrow{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.nowrap{white-space:nowrap}.preline{white-space:pre-wrap}.table-scroll{overflow-x:auto}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.row-baseline{align-items:baseline;gap:var(--space-md);flex-wrap:wrap;min-width:0;display:flex}.text-right{text-align:right}.block{display:block}.m-0{margin:0}.mt-0{margin-top:0}.basis-full{flex-basis:100%}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.stack-tight{flex-direction:column;gap:2px;min-width:0;display:flex}.col-index{width:48px}.text-center{text-align:center}.text-warning{color:var(--warning-text)}.text-critical{color:var(--critical-text)}.text-safe{color:var(--safe-text)}.text-accent{color:var(--accent-text)}.ml-auto{margin-left:auto}.details-summary{cursor:pointer;font-size:var(--fs-subhead);color:var(--text-secondary)}.col-code{width:110px}.col-num{text-align:right;width:60px}.col-tag{text-align:right;width:110px}.col-note{width:130px;color:var(--text-muted);font-size:var(--fs-footnote)}@media (width<=768px){.col-code{width:84px}.col-num{width:36px}.col-tag{width:84px}.col-note{width:88px}}@media (width<=1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.stat-chip-row{flex-wrap:wrap}}@media (width<=1440px){.header-kbd{display:none}}@media (width<=1280px){.header-search{padding:8px}.header-search span,.header-user-name,.header-user-role{display:none}.header-user{padding:4px}}@media (width<=1200px){.top-header{padding:0 var(--space-lg)}.term-chip{padding:5px 8px}.term-chip span:not(.term-chip-note){display:none}}@media (width<=768px){.sidebar{transition:transform var(--transition-base);z-index:200;display:flex;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-overlay{z-index:150;background:#0006;display:block;position:fixed;inset:0}.hamburger-btn{align-items:center;display:flex}.main-content{padding:var(--space-md);padding-top:calc(60px + var(--space-md));padding-bottom:calc(66px + var(--space-md));min-width:0;margin-left:0}.top-header{padding:0 var(--space-md);left:0}.header-search{padding:8px}.header-search span,.header-search .header-kbd,.header-ask,.header-user-name,.header-user-role{display:none}.header-user{padding:4px}.top-header-breadcrumb{white-space:nowrap;text-overflow:ellipsis;max-width:48vw;overflow:hidden}.crumbs li:not(:last-child){display:none}.crumbs li:last-child:before{content:none}.btn{min-height:44px}.btn-sm{min-height:36px}.data-table th,.data-table td{padding:var(--space-sm)}.section-fact{grid-template-columns:minmax(0,1fr);gap:2px}.week-body{padding-left:16px}.mark-btn{min-height:40px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.stat-chip-row{flex-direction:column}.card{overflow-x:auto}h1{font-size:var(--fs-title-2)}.chat-sidebar{border-radius:0!important;width:100%!important;right:0!important}.chat-fab{width:50px;height:50px;bottom:16px;right:16px}}.chat-fab{color:#fff;cursor:pointer;z-index:500;width:58px;height:58px;transition:transform var(--transition-base), box-shadow var(--transition-base);background:linear-gradient(140deg,#ff2e8a 0%,#b14bff 52%,#7c4dff 100%);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:26px;right:26px;box-shadow:inset 0 1px #ffffff80,0 6px 16px #ff2e8a52,0 16px 40px #7c4dff47}.chat-fab:before{content:"";pointer-events:none;border:2px solid #ff2e8a59;border-radius:50%;animation:2.8s ease-out infinite fabHalo;position:absolute;inset:-6px}@keyframes fabHalo{0%{opacity:.9;transform:scale(.92)}70%{opacity:0;transform:scale(1.28)}to{opacity:0;transform:scale(1.28)}}.chat-fab:hover{transform:scale(1.08)rotate(-6deg);box-shadow:inset 0 1px #ffffff80,0 10px 24px #ff2e8a6b,0 22px 54px #7c4dff57}.chat-fab:active{transform:scale(.96)}.chat-sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:600;background:#1b103552;animation:.2s fadeIn;position:fixed;inset:0}.chat-sidebar{width:var(--chat-w,440px);-webkit-backdrop-filter:blur(22px)saturate(1.3);backdrop-filter:blur(22px)saturate(1.3);z-index:700;height:100vh;animation:slideInRight .34s var(--ease-pop,cubic-bezier(.22, 1, .36, 1));background:radial-gradient(30rem 20rem at 100% 0,#7c4dff1a,#0000 68%),radial-gradient(24rem 18rem at 0 100%,#ff2e8a12,#0000 70%),#fdfbfff7;border-left:1px solid #7c4dff24;border-radius:22px 0 0 22px;flex-direction:column;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-10px 0 44px #1b103529,inset -1px 0 #ffffffb3}.chat-sidebar.is-wide{--chat-w:min(860px, 92vw)}.chat-sidebar{transition:width var(--transition-slow)}@media (prefers-reduced-motion:reduce){.chat-sidebar{transition:none}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-header{justify-content:space-between;align-items:center;gap:var(--space-sm);background:linear-gradient(#ffffffe6,#ffffff8c);border-bottom:1px solid #7c4dff1f;flex-shrink:0;padding:13px 14px;display:flex}.chat-brand{align-items:center;gap:10px;min-width:0;display:flex}.chat-brand-mark{color:#fff;background:var(--tint,linear-gradient(140deg, #ff2e8a, #7c4dff));width:36px;height:36px;box-shadow:inset 0 1px 0 #ffffff8c, 0 4px 12px color-mix(in srgb, var(--tint,#7c4dff) 38%, transparent);transition:background var(--transition-base), box-shadow var(--transition-base);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-brand-text{min-width:0}.chat-brand-name{font-size:var(--fs-callout);letter-spacing:-.01em;color:var(--text-primary);font-weight:800;line-height:1.15}.chat-brand-sub{font-size:var(--fs-footnote);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;font-weight:600;display:flex;overflow:hidden}.chat-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.chat-dot.online{background:var(--safe);animation:2s ease-out infinite livePulse;box-shadow:0 0 #00c85380}.chat-dot.offline{background:var(--text-muted);opacity:.5}@keyframes livePulse{0%{box-shadow:0 0 #00c85373}70%{box-shadow:0 0 0 6px #00c85300}to{box-shadow:0 0 #00c85300}}.chat-header-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.chat-icon-btn{width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;display:flex}.chat-icon-btn:hover{color:var(--ai-text);background:#7c4dff17;border-color:#7c4dff2e;transform:translateY(-1px)}.chat-icon-btn.active{color:var(--ai-text);background:#7c4dff21;border-color:#7c4dff42}.chat-scope-notice{font-size:var(--fs-footnote);border-bottom:1px solid var(--border-subtle);align-items:flex-start;gap:7px;padding:9px 14px;line-height:1.45;display:flex}.chat-scope-notice .icon{margin-top:2px}.chat-scope-notice.is-narrow{background:var(--warning-bg);color:var(--warning-text);border-bottom-color:color-mix(in srgb, var(--warning) 28%, transparent)}.chat-scope-notice.is-self{background:var(--info-bg);color:var(--info-text);border-bottom-color:color-mix(in srgb, var(--info) 28%, transparent)}.chat-scope-notice.is-none{background:var(--critical-bg);color:var(--critical-text);border-bottom-color:color-mix(in srgb, var(--critical) 28%, transparent)}.chat-context-banner{font-size:var(--fs-footnote);color:var(--ai-text);background:linear-gradient(90deg,#7c4dff1f,#7c4dff0a);border-bottom:1px solid #7c4dff24;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px;display:flex}.chat-context-code{font-family:JetBrains Mono,monospace;font-size:var(--fs-footnote);border-radius:var(--radius-full);background:#7c4dff24;padding:1px 6px}.chat-context-note{color:var(--text-muted);font-size:var(--fs-footnote)}.chat-messages{scrollbar-width:thin;scrollbar-color:#7c4dff40 transparent;flex-direction:column;flex:1;gap:12px;padding:16px 14px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#7c4dff38 padding-box content-box;border:2px solid #0000}.chat-welcome{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:30px 8px;display:flex}.chat-welcome-orb{color:#fff;background:conic-gradient(from 210deg,#ff2e8a,#b14bff,#7c4dff,#00d9c0,#ff2e8a);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;margin-bottom:16px;animation:5s ease-in-out infinite orbFloat;display:flex;position:relative;box-shadow:inset 0 2px #fff6,0 10px 30px #7c4dff52}.chat-welcome-orb:after{content:"";-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:-1;background:#1b10352e;border-radius:50%;position:absolute;inset:6px}@keyframes orbFloat{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.03)}}.chat-welcome h4{color:var(--text-primary);font-size:var(--fs-title-3);margin-bottom:5px}.chat-welcome p{color:var(--text-muted);font-size:var(--fs-subhead);max-width:30ch;margin-bottom:18px;line-height:1.5}.chat-suggestions{flex-direction:column;gap:8px;width:100%;max-width:340px;display:flex}.chat-suggestion{border:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;font-size:var(--fs-subhead);color:var(--text-secondary);text-align:left;transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;display:flex;box-shadow:0 1px 2px #1b10350a}.chat-suggestion:hover{border-color:color-mix(in srgb, var(--tint,#7c4dff) 40%, transparent);box-shadow:0 8px 20px color-mix(in srgb, var(--tint,#7c4dff) 18%, transparent);transform:translateY(-2px)}.chat-suggestion-icon{width:28px;height:28px;color:var(--tint,#7c4dff);background:color-mix(in srgb, var(--tint,#7c4dff) 12%, transparent);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-suggestion-text{flex:1;line-height:1.35}.chat-suggestion-go{color:var(--text-muted);opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);transform:translate(-4px)}.chat-suggestion:hover .chat-suggestion-go{opacity:1;color:var(--tint,#7c4dff);transform:none}.chat-message{max-width:94%;animation:msgIn .26s var(--ease-pop,cubic-bezier(.22, 1, .36, 1));gap:8px;display:flex}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.chat-message.user{flex-direction:row-reverse;align-self:flex-end}.chat-message.assistant{align-self:flex-start}.chat-message-avatar{width:30px;height:30px;color:var(--tint,#7c4dff);background:color-mix(in srgb, var(--tint,#7c4dff) 13%, white);border:1px solid color-mix(in srgb, var(--tint,#7c4dff) 28%, transparent);box-shadow:0 2px 8px color-mix(in srgb, var(--tint,#7c4dff) 22%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:flex}.chat-message-avatar.is-error{color:var(--critical-text);background:var(--critical-bg);box-shadow:none;border-color:#f443364d}.chat-message-bubble{font-size:var(--fs-subhead);border-radius:16px;min-width:0;padding:10px 14px;line-height:1.58;position:relative}.user .chat-message-bubble{color:#fff;background:linear-gradient(140deg,#c4236a 0%,#8e3bd6 100%);border-bottom-right-radius:5px;box-shadow:0 4px 14px #b14bff47}.assistant .chat-message-bubble{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);border-bottom-left-radius:5px;box-shadow:0 2px 10px #1b10350e}.assistant .chat-message-bubble.is-error{background:var(--critical-bg);color:#96110a;border-color:#f4433640}.chat-message-tools{border-top:1px dashed var(--border-subtle);margin-top:8px;padding-top:7px}.chat-messages[hidden],.chat-input-area[hidden]{display:none}.chat-history{flex:1;min-height:0;padding:16px 18px;overflow-y:auto}.chat-history-title{font-size:var(--fs-subhead);color:var(--text-primary);margin:0 0 10px;font-weight:700}.chat-history-note{font-size:var(--fs-footnote);color:var(--critical-text);margin-bottom:10px}.chat-history-empty{text-align:center;font-size:var(--fs-footnote);color:var(--text-muted);padding:24px 0}.chat-history-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chat-history-row{border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:12px;align-items:center;gap:6px;display:flex}.chat-history-open{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:9px 12px;display:flex}.chat-history-open:disabled,.chat-history-delete:disabled{cursor:default;opacity:.6}.chat-history-name{text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--text-primary);font-weight:600;overflow:hidden}.chat-history-meta{font-size:var(--fs-caption);color:var(--text-muted)}.chat-history-delete{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;margin-right:6px;display:inline-flex}.chat-history-delete:hover:not(:disabled){color:var(--critical-text);background:var(--critical-bg)}.chat-icon-btn.is-active{color:var(--spu-magenta)}.chat-review{font-size:var(--fs-footnote);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:8px;display:flex}.chat-review-btn{border:1px solid var(--border-subtle);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.chat-review-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-medium)}.chat-review-btn.is-chosen{color:var(--spu-magenta);border-color:var(--spu-magenta);background:color-mix(in srgb, var(--spu-magenta) 10%, transparent)}.chat-review-btn:disabled{opacity:.6;cursor:default}.chat-review-note.is-error{color:var(--critical-text)}.chat-review-form{flex-direction:column;flex-basis:100%;gap:6px;display:flex}.chat-review-input{resize:vertical;border:1px solid var(--border-medium);background:var(--bg-secondary);width:100%;color:var(--text-primary);font:inherit;font-size:var(--fs-footnote);border-radius:10px;padding:6px 9px}.chat-review-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.chat-review-send{border-radius:var(--radius-full);background:var(--spu-magenta);color:#fff;font:inherit;cursor:pointer;border:none;padding:4px 12px;font-weight:700}.chat-review-send:disabled{opacity:.5;cursor:default}.chat-tools-toggle{cursor:pointer;font-size:var(--fs-footnote);color:var(--text-muted);transition:color var(--transition-fast);background:0 0;border:none;align-items:center;gap:5px;padding:2px 0;font-family:inherit;font-weight:600;display:flex}.chat-tools-toggle:hover{color:var(--ai-text)}.chat-tools-count{border-radius:var(--radius-full);color:var(--ai-text);font-size:var(--fs-caption);background:#7c4dff1f;padding:0 5px;font-weight:700}.chat-tools-arrow{transition:transform var(--transition-fast)}.chat-tools-toggle.open .chat-tools-arrow{transform:rotate(180deg)}.chat-tools-list{flex-wrap:wrap;gap:4px;margin-top:6px;animation:.2s msgIn;display:flex}.chat-tool-badge{border-radius:var(--radius-full);font-size:var(--fs-caption);color:var(--ai-text);background:#7c4dff14;border:1px solid #7c4dff29;padding:2px 8px;font-family:JetBrains Mono,monospace;font-weight:500}.chat-message-time{font-size:var(--fs-caption);color:var(--text-muted);text-align:right;margin-top:4px}.user .chat-message-time{color:#ffffffb3}.chat-tool-progress{background:#7c4dff0d;border:1px solid #7c4dff24;border-radius:14px;flex-direction:column;align-self:flex-start;gap:5px;padding:9px 12px;animation:.24s msgIn;display:flex}.tool-call-item{font-size:var(--fs-footnote);color:var(--text-secondary);align-items:center;gap:7px;display:flex}.tool-call-item.calling{color:var(--warning-text)}.tool-call-item.done{color:var(--safe-text)}.tool-name{font-family:JetBrains Mono,monospace;font-size:var(--fs-footnote)}.tool-spinner{border:2px solid #7c4dff2e;border-top-color:var(--warning-text);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.chat-input-area{background:linear-gradient(#fff9,#fffffff2);border-top:1px solid #7c4dff1f;flex-shrink:0;padding:10px 14px 12px}.chat-input-shell{border:1px solid var(--border-subtle);background:var(--bg-card);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:20px;align-items:flex-end;gap:8px;padding:6px 6px 6px 14px;display:flex;box-shadow:0 1px 3px #1b10350d}.chat-input-shell:focus-within{border-color:#ff2e8a73;box-shadow:0 0 0 3px #ff2e8a1c,0 4px 14px #1b103512}.chat-input-shell textarea{font-size:var(--fs-subhead);resize:none;max-height:120px;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:8px 0;font-family:inherit;line-height:1.45}.chat-input-shell textarea::placeholder{color:var(--text-muted)}.chat-send-btn{cursor:pointer;color:#fff;width:36px;height:36px;transition:transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);background:linear-gradient(140deg,#ff2e8a 0%,#b14bff 100%);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 3px 10px #b14bff52}.chat-send-btn:hover:not(:disabled){transform:scale(1.07);box-shadow:0 5px 16px #b14bff6b}.chat-send-btn:active:not(:disabled){transform:scale(.94)}.chat-send-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.chat-send-btn.is-cancel{background:var(--critical);box-shadow:0 3px 10px #f4433652}.chat-input-hint{text-align:center;font-size:var(--fs-caption);color:var(--text-muted);opacity:.75;margin-top:6px}.chat-blocks{background:#00a8960d;border:1px solid #00a89638;border-radius:12px;margin:2px 0 8px;padding:9px 11px 4px}.chat-blocks-badge{border-radius:var(--radius-full);color:#00796b;font-size:var(--fs-caption);letter-spacing:.02em;background:#00a89624;align-items:center;gap:4px;margin-bottom:6px;padding:1px 7px 1px 5px;font-weight:700;display:inline-flex}.chat-blocks>.chat-md+.chat-md{margin-top:12px}.chat-md{font-size:var(--fs-subhead);overflow-wrap:anywhere;line-height:1.55}.chat-md>:last-child{margin-bottom:0}.chat-md p{margin-bottom:6px}.chat-md ul,.chat-md ol{margin:0 0 6px;padding-left:18px}.chat-md li{margin-bottom:2px}.chat-md strong{font-weight:700}.chat-md table{border-collapse:collapse;width:max-content;max-width:100%;font-size:var(--fs-footnote);white-space:nowrap;margin:4px 0 8px;display:block;overflow-x:auto}.chat-md th,.chat-md td{border-bottom:1px solid var(--border-subtle);text-align:left;padding:4px 9px}.chat-md th{color:var(--text-secondary);background:#1b103508;font-weight:700;position:sticky;top:0}.chat-md code{font-family:JetBrains Mono,monospace;font-size:var(--fs-footnote);background:#7c4dff17;border-radius:5px;padding:1px 5px}.user .chat-md code{background:#fff3}.chat-prose{color:var(--text-secondary)}.chat-notice{font-size:var(--fs-footnote);border-radius:10px;align-items:flex-start;gap:6px;margin-bottom:8px;padding:7px 10px;line-height:1.45;display:flex}.chat-notice.is-partial{background:var(--warning-bg);color:#8a5a00;border:1px solid #ffa51f47}.chat-notice.is-refused{color:#5b32c4;background:#7c4dff12;border:1px solid #7c4dff33}.chat-notice .icon{margin-top:2px}.chat-notice.is-outcome.is-info{background:var(--ai-bg);color:var(--ai-text);border:1px solid color-mix(in srgb, var(--ai) 22%, transparent)}.chat-notice.is-outcome.is-warning{background:var(--warning-bg);color:var(--warning-text);border:1px solid #ffa51f47}.chat-notice.is-outcome.is-refused{color:#5b32c4;background:#7c4dff12;border:1px solid #7c4dff33}.chat-blocks.is-evidence{border-color:color-mix(in srgb, var(--ai) 20%, transparent);background:color-mix(in srgb, var(--ai-bg) 60%, transparent);margin:8px 0 4px}.chat-blocks.is-evidence .chat-blocks-badge{background:var(--ai-bg);color:var(--ai-text)}.chat-route-label{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;opacity:.8;margin-top:6px;font-weight:700}.chat-stage{font-size:var(--fs-footnote);color:var(--text-secondary);background:#7c4dff0d;border:1px solid #7c4dff24;border-radius:14px;flex-wrap:wrap;align-self:flex-start;align-items:center;gap:8px;max-width:100%;padding:8px 12px;animation:.24s msgIn;display:flex}.chat-stage-text{font-weight:500}.chat-stage-chip{border-radius:var(--radius-full);font-size:var(--fs-caption);color:var(--tint,#7c4dff);background:color-mix(in srgb, var(--tint,#7c4dff) 12%, transparent);align-items:center;gap:4px;padding:1px 8px;font-weight:700;display:inline-flex}.chat-stage-debug{width:100%;font-family:JetBrains Mono,monospace;font-size:var(--fs-caption);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-artifact{background:#ff2e8a0d;border:1px solid #ff2e8a38;border-radius:12px;align-items:center;gap:10px;margin-top:10px;padding:9px 10px;display:flex}.chat-artifact-icon{width:30px;height:30px;color:var(--accent-text);background:#ff2e8a1f;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-artifact-body{flex:1;min-width:0}.chat-artifact-name{font-size:var(--fs-subhead);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.chat-artifact-meta{font-size:var(--fs-caption);color:var(--text-muted);gap:8px;display:flex}.chat-artifact-error{font-size:var(--fs-caption);color:var(--critical-text);margin-top:3px}.chat-artifact-btn{cursor:pointer;color:#fff;background:var(--spu-magenta);width:32px;height:32px;transition:transform var(--transition-fast);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-artifact-btn:hover:not(:disabled){transform:scale(1.07)}.chat-artifact-btn:disabled{opacity:.5;cursor:progress;background:var(--text-muted)}.chat-error-title{font-size:var(--fs-subhead);align-items:center;gap:6px;font-weight:600;display:flex}.chat-retry-btn{border-radius:var(--radius-full);color:inherit;font-family:inherit;font-size:var(--fs-footnote);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:1px solid;align-items:center;gap:5px;margin-top:8px;padding:5px 12px;font-weight:600;display:inline-flex}.chat-retry-btn:hover{background:#f443361a}.chat-retry-link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;margin-left:6px;padding:0;font-weight:700;text-decoration:underline}@media (prefers-reduced-motion:reduce){.chat-fab:before,.chat-welcome-orb,.chat-dot.online,.chat-sidebar,.chat-message,.chat-stage,.chat-blocks,.chat-tool-progress{animation:none}}.campus-hero{border-radius:var(--radius-lg);height:clamp(170px,19vw,286px);margin-bottom:var(--space-xl);box-shadow:var(--shadow-md);isolation:isolate;background:#150b2e;position:relative;overflow:hidden}.hero-sky{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-stars circle{animation:3.6s ease-in-out infinite twinkle}@keyframes twinkle{0%,to{opacity:.25}50%{opacity:.95}}.hero-train{animation:13s linear infinite trainRun}@keyframes trainRun{0%{animation-timing-function:cubic-bezier(.16,.62,.3,1);transform:translate(-1000px)}26%{animation-timing-function:linear;transform:translate(-330px)}49%{animation-timing-function:cubic-bezier(.62,0,.88,.38);transform:translate(-330px)}to{transform:translate(1500px)}}.hero-watermark{letter-spacing:-.05em;background:linear-gradient(105deg,#ffffff0d 0% 40%,#ff6fae8c 47%,#ffffffd9 50%,#7c4dff8c 53%,#ffffff0d 60% 100%) 0 0/320% 100%;color:#0000;-webkit-text-stroke:2px #ffffff26;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,5.2vw,4.6rem);font-weight:900;line-height:1;animation:7s ease-in-out infinite watermarkShine;position:absolute;top:50%;left:.4rem;transform:translateY(-46%)}@keyframes watermarkShine{0%,12%{background-position:118%}55%,to{background-position:-18%}}.hero-eyebrow{letter-spacing:.32em;text-transform:uppercase;color:#ffffff9e;font-size:clamp(.6rem,1.1vw,.75rem);font-weight:600;position:absolute;top:clamp(.7rem,2vw,1.1rem);left:clamp(1rem,3vw,2rem)}.hero-clock{text-align:right;color:#fff;position:absolute;top:clamp(.9rem,3vw,1.6rem);right:clamp(1rem,3vw,2.2rem)}.hero-time{font-variant-numeric:tabular-nums;text-shadow:0 2px 14px #ff2e8a73;justify-content:flex-end;align-items:baseline;gap:2px;font-family:JetBrains Mono,monospace;font-size:clamp(1.7rem,4vw,2.9rem);font-weight:700;line-height:1;display:flex}.hero-colon{animation:1s step-end infinite colonBlink}@keyframes colonBlink{0%,49%{opacity:1}50%,to{opacity:.25}}.hero-sec{color:var(--pop-mint);align-self:flex-start;margin-left:5px;padding-top:.35em;font-size:.36em;font-weight:600}.hero-date{color:#ffffffb8;margin-top:4px;font-size:clamp(.62rem,1.2vw,.76rem)}@media (width<=720px){.hero-watermark{display:none}}@media (prefers-reduced-motion:reduce){.hero-train{animation:none;transform:translate(-330px)}.hero-stars circle{opacity:.7;animation:none}.hero-colon{animation:none}}.hero-turbine,.hero-rotor ellipse,.hero-pulse circle,.hero-leaves path{transform-box:fill-box;transform-origin:50%}.hero-turbine{animation:7s linear infinite spin}.hero-rotor ellipse{animation:.28s linear infinite spin}.hero-pulse circle{opacity:0;animation:3.6s ease-out infinite pulseOut}.hero-pulse circle:nth-child(2){animation-delay:1.2s}.hero-pulse circle:nth-child(3){animation-delay:2.4s}@keyframes pulseOut{0%{opacity:.85;transform:scale(.35)}70%{opacity:0}to{opacity:0;transform:scale(2.6)}}.hero-link{animation:2.2s linear infinite dashFlow}@keyframes dashFlow{to{stroke-dashoffset:-28px}}.hero-drone{animation:34s linear infinite droneDrift}.hero-drone-mid{animation-duration:43s;animation-delay:-17s}.hero-drone-far{animation-duration:55s;animation-delay:-36s}@keyframes droneDrift{0%{transform:translate(-80px)}to{transform:translate(1280px)}}.hero-drone-bob{animation:3.2s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(86px)}50%{transform:translateY(79px)}}@keyframes walkRight{0%{transform:translate(-60px, var(--y)) scale(var(--s))}to{transform:translate(1260px, var(--y)) scale(var(--s))}}@keyframes walkLeft{0%{transform:translate(1260px, var(--y)) scale(calc(var(--s) * -1), var(--s))}to{transform:translate(-60px, var(--y)) scale(calc(var(--s) * -1), var(--s))}}.hero-robot-a{--s:.48;--y:253px;animation:46s linear infinite walkRight}.hero-robot-b{--s:.38;--y:249px;animation:62s linear -22s infinite walkLeft}.hero-robot-c{--s:.43;--y:251px;animation:54s linear -37s infinite walkRight}.hero-robot-b .hero-robot-bob,.hero-robot-b .hero-leg-a,.hero-robot-b .hero-leg-b,.hero-robot-b .hero-arm-a,.hero-robot-b .hero-arm-b{animation-delay:-.31s}.hero-robot-c .hero-robot-bob,.hero-robot-c .hero-leg-a,.hero-robot-c .hero-leg-b,.hero-robot-c .hero-arm-a,.hero-robot-c .hero-arm-b{animation-delay:-.62s}.hero-robot-bob{animation:.62s ease-in-out infinite robotBob}@keyframes robotBob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.4px)}}.hero-leg-a,.hero-leg-b,.hero-arm-a,.hero-arm-b{transform-box:fill-box;transform-origin:top}.hero-leg-a,.hero-arm-b{animation:1.24s ease-in-out infinite strideFwd}.hero-leg-b,.hero-arm-a{animation:1.24s ease-in-out infinite strideBack}@keyframes strideFwd{0%,to{transform:rotate(15deg)}50%{transform:rotate(-15deg)}}@keyframes strideBack{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}.hero-leaves path{animation-name:leafFall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes leafFall{0%{opacity:0;transform:translate(0)rotate(0)}12%{opacity:.8}85%{opacity:.55}to{opacity:0;transform:translate(26px,34px)rotate(320deg)}}@keyframes driveRight{0%{transform:translate(-70px)}to{transform:translate(1270px)}}@keyframes driveLeft{0%{transform:translate(1270px)}to{transform:translate(-70px)}}.hero-car-f1{animation:5.5s linear infinite f1Lap}@keyframes f1Lap{0%{transform:translate(-70px)}55.1%{transform:translate(1270px)}to{transform:translate(1270px)}}.hero-car-hatch{animation:24s linear -9s infinite driveRight}.hero-car-lambo{animation:10s linear -5s infinite driveLeft}.hero-car-pod{animation:40s linear -25s infinite driveLeft}@media (prefers-reduced-motion:reduce){.hero-turbine,.hero-rotor ellipse,.hero-pulse circle,.hero-link,.hero-pulse circle{opacity:.35}.hero-drone{animation:none;transform:translate(760px)}.hero-drone-mid{animation:none;transform:translate(430px)}.hero-drone-far{animation:none;transform:translate(180px)}.hero-drone-bob{animation:none;transform:translateY(86px)}.hero-robot-a{animation:none;transform:translate(300px,253px)scale(.48)}.hero-robot-b{animation:none;transform:translate(700px,249px)scale(-.38,.38)}.hero-robot-c{animation:none;transform:translate(940px,251px)scale(.43)}.hero-robot-bob,.hero-leg-a,.hero-leg-b,.hero-arm-a,.hero-arm-b{animation:none}.hero-leg-a{transform:rotate(11deg)}.hero-leg-b{transform:rotate(-11deg)}.hero-watermark{background-position:50%;animation:none}.hero-leaves path{opacity:.5;animation:none}.hero-car-f1{animation:none;transform:translate(240px)}.hero-car-lambo{animation:none;transform:translate(560px)}.hero-car-hatch{animation:none;transform:translate(820px)}.hero-car-pod{animation:none;transform:translate(1080px)}}[data-theme=dark] body{background:radial-gradient(26rem 20rem at 86% 6%, #3a041bf2, transparent 80%), radial-gradient(22rem 17rem at 18% 10%, #001d29f2, transparent 80%), radial-gradient(27rem 22rem at 6% 72%, #1e0f47f2, transparent 80%), radial-gradient(22rem 19rem at 72% 92%, #001f1af2, transparent 80%), radial-gradient(20rem 17rem at 46% 38%, #33092af2, transparent 80%), radial-gradient(24rem 19rem at 96% 60%, #051744f2, transparent 80%), radial-gradient(19rem 15rem at 34% 88%, #3a041bf2, transparent 80%), radial-gradient(22rem 17rem at 62% 20%, #240d41f2, transparent 80%), radial-gradient(20rem 17rem at 52% 72%, #001e23f2, transparent 80%), radial-gradient(24rem 19rem at 24% 44%, #280b3ff2, transparent 80%), var(--bg-secondary);background-attachment:fixed}[data-theme=dark] .sidebar{background:radial-gradient(24rem 18rem at 120% 0%, #ff2e8a38, transparent 60%), radial-gradient(20rem 16rem at -20% 70%, #00d9c024, transparent 60%), var(--bg-sidebar)}[data-theme=dark] .chat-sidebar{background:radial-gradient(30rem 20rem at 100% 0,#965dff29,#0000 68%),radial-gradient(24rem 18rem at 0 100%,#ff2e8a1a,#0000 70%),#140c28f7;border-left-color:#ffffff1a;box-shadow:-10px 0 44px #00000080}[data-theme=dark] .top-header{background:#140c28d1}[data-theme=dark] .chat-header,[data-theme=dark] .chat-input-area{background:linear-gradient(#ffffff0a,#ffffff03)}[data-theme=dark] .chat-md th{background:#ffffff0d}[data-theme=dark] .chat-md code,[data-theme=dark] .chat-tool-badge{background:#965dff29}[data-theme=dark] .risk-card{background:var(--bg-card);border-color:var(--border-medium)}[data-theme=dark] .stat-chip-icon,[data-theme=dark] .stat-icon{box-shadow:var(--surface-edge), 0 4px 10px #00000059}[data-theme=dark] .search-input:focus{background:var(--bg-tertiary)}.student-scale{--fs-title-1:1.875rem;--fs-title-2:1.5rem;--fs-title-3:1.25rem;--fs-body:1rem;--fs-callout:.9375rem;--fs-subhead:.875rem;--fs-footnote:.8125rem;--fs-caption:.75rem}
