@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;--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;--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.0625rem;--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;--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}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);height:60px;padding:0 var(--space-2xl);z-index:90;background:#ffffffd9;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:240px;right:0}.top-header-left{align-items:center;gap:var(--space-md);display:flex}.top-header-breadcrumb{font-size:var(--fs-subhead);color:var(--text-muted);font-weight:500}.top-header-breadcrumb strong{color:var(--text-primary);font-weight:600}.top-header-right{align-items:center;gap:var(--space-md);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-muted);cursor:pointer;transition:all var(--transition-base);min-width:200px;padding:6px 14px;display:flex}.header-search:hover{border-color:var(--border-medium);background:var(--bg-tertiary)}.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;transition:all var(--transition-base);border:1px solid var(--border-subtle);background:var(--bg-card);padding:4px 10px 4px 4px;display:flex}.header-user:hover{background:var(--bg-secondary);border-color:var(--border-medium)}.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);margin-bottom:var(--space-md);border-bottom:1px solid #ffffff14;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;font-weight:600;display:flex}.sidebar-section-label .icon{margin-right:-2px}.main-content{padding:calc(60px + var(--space-lg)) var(--space-2xl) var(--space-xl);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)}.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}.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{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--fs-body);color:var(--text-primary);align-items:center;gap:7px;font-weight:600;display:flex}.card-title .icon{vertical-align:0}.card-subtitle{font-size:var(--fs-subhead);color:var(--text-muted);margin-top:2px}.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);margin-bottom:var(--space-xl);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}.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}.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)}.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)}.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%)}.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)}@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,.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}::-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}@media (width<=1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.stat-chip-row{flex-wrap:wrap}}@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));min-width:0;margin-left:0}.top-header{left:0}.header-search,.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}.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-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;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-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-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-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-error-detail{font-family:JetBrains Mono,monospace;font-size:var(--fs-caption);opacity:.8;overflow-wrap:anywhere;margin-top:5px;line-height:1.45}.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}@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] .search-input:focus{background:var(--bg-tertiary)}
