:root{--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;--font-serif: ui-serif, "New York", "Source Serif Pro", "Charter", "Iowan Old Style", Georgia, "Songti SC", "Source Han Serif SC", serif;--font-mono: "SF Mono", "JetBrains Mono", Consolas, ui-monospace, monospace;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 28px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--s-20: 80px;--r-pill: 999px;--r-card: 10px;--r-btn: 5px}[data-theme=light]{--bg: oklch(96.5% .012 85);--surface-1: oklch(99% .008 85);--surface-2: oklch(94% .014 80);--surface-3: oklch(90% .018 78);--hairline: oklch(86% .022 75);--hairline-strong: oklch(74% .025 70);--ink-1: oklch(22% .025 55);--ink-2: oklch(38% .022 60);--ink-3: oklch(54% .02 65);--ink-4: oklch(66% .018 70);--accent: oklch(58% .17 38);--accent-soft: oklch(93% .05 50);--pos: oklch(48% .14 152);--pos-soft: oklch(92% .05 140);--neg: oklch(54% .19 25);--neg-soft: oklch(94% .05 30);--warn: oklch(68% .14 78);--warn-soft: oklch(95% .05 78);--shadow-1: 0 1px 2px oklch(22% .025 55 / .05);--shadow-2: 0 2px 12px oklch(22% .025 55 / .08)}[data-theme=dark]{--bg: oklch(16% .012 250);--surface-1: oklch(20% .012 250);--surface-2: oklch(24% .014 250);--surface-3: oklch(29% .016 250);--hairline: oklch(36% .015 250 / .55);--hairline-strong: oklch(46% .018 250 / .7);--ink-1: oklch(97% .003 250);--ink-2: oklch(82% .01 250);--ink-3: oklch(62% .014 250);--ink-4: oklch(48% .018 250);--accent: oklch(72% .17 240);--accent-soft: oklch(72% .17 240 / .18);--pos: oklch(74% .13 152);--pos-soft: oklch(74% .13 152 / .18);--neg: oklch(70% .18 28);--neg-soft: oklch(70% .18 28 / .18);--warn: oklch(80% .14 78);--warn-soft: oklch(80% .14 78 / .18);--shadow-1: 0 1px 2px oklch(5% 0 0 / .4);--shadow-2: 0 4px 12px oklch(5% 0 0 / .5)}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;margin:0;background:var(--bg);color:var(--ink-2);font-family:var(--font-sans);font-size:14px;line-height:1.55;font-feature-settings:"tnum" 1,"lnum" 1,"ss01" 1;-webkit-font-smoothing:antialiased;text-wrap:pretty;transition:background .2s,color .2s}.num,.hero-num,.delta,code,.mono,.data-table .num,[class*=num]{font-variant-numeric:tabular-nums lining-nums}.mono,code,kbd{font-family:var(--font-mono)}a{color:var(--ink-1);text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit}.serif{font-family:var(--font-serif)}.eyebrow{font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-weight:500}hr.hr{border:0;border-top:1px solid var(--hairline);margin:0}.app{height:100vh;display:grid;grid-template-columns:224px 1fr}.app.mobile-mode{grid-template-columns:1fr;grid-template-rows:1fr 56px}.sidebar{background:var(--surface-1);border-right:1px solid var(--hairline);display:flex;flex-direction:column;padding:var(--s-5) 0;min-height:0}.app.mobile-mode .sidebar{display:none}.brand{padding:0 var(--s-5) var(--s-5);display:flex;align-items:center;gap:var(--s-3);border-bottom:1px solid var(--hairline)}.brand-mark{width:22px;height:22px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:var(--surface-1);font-weight:500;font-size:12px;font-family:var(--font-serif);box-shadow:inset 0 0 0 1px oklch(from var(--accent) calc(l - .1) c h)}.brand-title{font-family:var(--font-serif);font-weight:500;color:var(--ink-1);letter-spacing:-.005em;font-size:16px}.brand-build{margin-left:auto;padding:2px 6px;border-radius:999px;font-size:9px;letter-spacing:.06em;background:var(--surface-2);color:var(--ink-3);font-family:var(--font-mono)}.sidebar-picker{padding:var(--s-4) var(--s-5) var(--s-3);border-bottom:1px solid var(--hairline)}.sidebar-picker .selector{width:100%}.nav{display:flex;flex-direction:column;padding:var(--s-3) 0;overflow-y:auto}.nav-group{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);padding:var(--s-4) var(--s-5) var(--s-2);font-weight:500}.nav-item{display:grid;grid-template-columns:16px 1fr auto;gap:var(--s-3);align-items:center;padding:7px var(--s-5);color:var(--ink-2);cursor:pointer;position:relative;font-size:13px;transition:background .12s}.nav-item:hover{background:var(--surface-2);color:var(--ink-1)}.nav-item.router-link-active,.nav-item.active{color:var(--ink-1);background:var(--accent-soft);font-weight:500}.nav-item.router-link-active:before,.nav-item.active:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;background:var(--accent)}.nav-item svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5}.nav-badge{font-size:10px;padding:1px 6px;border-radius:999px;background:var(--neg);color:#fff;font-variant-numeric:tabular-nums;line-height:1.4}.nav-badge.soft{background:var(--warn);color:#fff}.sidebar-foot{margin-top:auto;padding:var(--s-4) var(--s-5);border-top:1px solid var(--hairline);display:flex;align-items:center;gap:var(--s-3)}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#8d92f9,#5aa3ec 50%,#47a7e8,#2aabe5 75%,#0cade3 81.25%,#00ade1,#00aedf 87.5%,#00b0d5);background:linear-gradient(135deg,#8d92f9,#5aa3ec 50%,#47a7e8,#2aabe5 75%,#0cade3 81.25%,color(xyz 0.286 0.355 0.776),color(xyz 0.283 0.356 0.77) 87.5%,color(xyz 0.269 0.36 0.748));color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600}.sidebar-foot .who{flex:1;line-height:1.2;min-width:0}.sidebar-foot .who .n{color:var(--ink-1);font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot .who .s{color:var(--ink-4);font-size:11px;letter-spacing:.04em}.theme-toggle{background:transparent;border:0;padding:4px 6px;border-radius:var(--r-btn);color:var(--ink-3);font-size:14px}.theme-toggle:hover{background:var(--surface-2);color:var(--ink-1)}.content{overflow-y:auto;overflow-x:hidden;container-type:inline-size;background:var(--bg);min-height:0}.content-inner{padding:var(--s-8) var(--s-10);max-width:1200px;margin:0 auto}.app.mobile-mode .content-inner{padding:var(--s-5) var(--s-4) var(--s-12)}.tabbar{display:none;grid-template-columns:repeat(5,1fr);background:var(--surface-1);border-top:1px solid var(--hairline);height:56px}.app.mobile-mode .tabbar{display:grid}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-3);font-size:10px;gap:3px;cursor:pointer;text-decoration:none}.tab.router-link-active,.tab.active{color:var(--accent)}.tab svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5}.tab.router-link-active svg,.tab.active svg{stroke-width:2}.mobile-assistant-fab{display:none;position:fixed;top:max(16px,env(safe-area-inset-top));right:16px;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 2px 12px #0000002e;z-index:100;transition:transform .15s ease,box-shadow .15s ease}.app.mobile-mode .mobile-assistant-fab{display:flex}.mobile-assistant-fab:active{transform:scale(.92);box-shadow:0 1px 6px #0000003d}.mobile-assistant-fab.active{outline:3px solid color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:2px}.mobile-assistant-fab svg{stroke-width:1.8}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-6);margin-bottom:var(--s-8);flex-wrap:wrap}.page-head .title-block{line-height:1.1}.page-head .crumb{display:block;margin-bottom:var(--s-2);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}.page-head h1{margin:0;font-family:var(--font-serif);font-size:34px;font-weight:500;letter-spacing:-.022em;color:var(--ink-1);line-height:1.1}.page-head h1 .sub{color:var(--ink-3);font-weight:400;margin-left:8px;font-size:.55em;font-family:var(--font-sans);font-style:italic;letter-spacing:0;vertical-align:4px}.page-head .utils{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.selector{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-btn);padding:6px 28px 6px 10px;font-size:13px;color:var(--ink-1);cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 10px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none}.seg{display:inline-flex;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-btn);overflow:hidden}.seg button{background:transparent;border:0;padding:6px 12px;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;border-right:1px solid var(--hairline)}.seg button:last-child{border-right:0}.seg button.on{background:var(--surface-3);color:var(--ink-1);font-weight:500}.btn{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-btn);padding:6px 12px;font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:5px;transition:all .12s}.btn:hover{border-color:var(--ink-3);color:var(--ink-1)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{padding:4px 8px;font-size:12px}.btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.btn:disabled{opacity:.5;cursor:not-allowed}.pill-p{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;font-family:var(--font-mono)}.pill-p:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill-p.p0{background:var(--neg-soft);color:var(--neg)}.pill-p.p1{background:var(--warn-soft);color:var(--warn)}.pill-p.p2{background:var(--surface-3);color:var(--ink-3)}.delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;padding:1px 6px;border-radius:var(--r-btn);font-variant-numeric:tabular-nums;font-weight:500}.delta.up{color:var(--pos);background:var(--pos-soft)}.delta.down{color:var(--neg);background:var(--neg-soft)}.delta.flat{color:var(--ink-3);background:var(--surface-2)}.section{margin:var(--s-8) 0 var(--s-4);display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--hairline)}.section h2{margin:0;font-size:12px;font-weight:600;color:var(--ink-1);letter-spacing:.08em;text-transform:uppercase}.section h2 .ct{color:var(--ink-4);font-weight:400;margin-left:6px;font-style:italic;letter-spacing:.02em;text-transform:none}.section .util{display:flex;align-items:center;gap:var(--s-3)}.section .util a{font-size:12px;color:var(--ink-3);cursor:pointer}.section .util a:hover{color:var(--ink-1)}.hero-roi{display:grid;grid-template-columns:2fr 3fr;gap:var(--s-10);padding:var(--s-8) var(--s-10);background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-card);margin-bottom:var(--s-6);box-shadow:var(--shadow-2);align-items:center}.hero-roi .label{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3)}.hero-roi .label .live{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--pos);box-shadow:0 0 0 4px var(--pos-soft);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.hero-roi .roi-num{font-family:var(--font-serif);font-size:clamp(60px,7.5vw,96px);font-weight:400;line-height:1;color:var(--ink-1);letter-spacing:-.045em;font-variant-numeric:tabular-nums}.hero-roi .roi-num .unit{font-size:.5em;color:var(--ink-3);font-weight:500}.hero-roi .roi-meta{margin-top:var(--s-3);display:flex;align-items:center;gap:var(--s-3);font-size:13px;flex-wrap:wrap}.pending-tag{display:inline-block;padding:1px 8px;font-size:11px;color:var(--warn);border:1px solid var(--warn);border-radius:10px;background:transparent;vertical-align:middle}.rt-badge{display:inline-block;margin-left:8px;padding:1px 8px;font-size:10px;color:var(--pos);border:1px solid var(--pos);border-radius:10px;background:transparent;vertical-align:middle;font-family:ui-monospace,monospace}.budget-gauge .label{color:var(--ink-4);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.budget-gauge .gauge{margin-top:var(--s-4);height:12px;background:var(--surface-3);border-radius:999px;overflow:hidden;position:relative}.budget-gauge .gauge .fill{height:100%;background:linear-gradient(90deg,var(--accent),oklch(from var(--accent) l calc(c*.7) h));border-radius:999px;transition:width .4s ease}.budget-gauge .gauge .marker{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink-4)}.budget-gauge .gauge .marker:after{content:attr(data-label);position:absolute;top:-16px;transform:translate(-50%);font-size:9px;font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.04em;white-space:nowrap}.budget-gauge .scale{margin-top:var(--s-3);display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.budget-gauge .scale strong{color:var(--ink-1);font-weight:600}.next-action{border:1px solid var(--accent);background:var(--accent-soft);border-radius:var(--r-card);padding:var(--s-4) var(--s-5);display:grid;grid-template-columns:auto 1fr auto;gap:var(--s-4);align-items:center;margin-bottom:var(--s-6)}.next-action .ico{width:36px;height:36px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:#fff}.next-action .ico svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.next-action .body .l{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:600}.next-action .body .h{font-family:var(--font-serif);font-size:17px;color:var(--ink-1);margin-top:4px;font-weight:500;letter-spacing:-.01em}.next-action .body .m{font-size:12px;color:var(--ink-3);margin-top:4px}.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-5);margin-bottom:var(--s-8)}.kpi-strip .item{padding:var(--s-3) 0;border-top:2px solid var(--hairline-strong)}.kpi-strip .item .l{font-size:11px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.08em}.kpi-strip .item .v{font-family:var(--font-serif);font-size:26px;font-weight:400;color:var(--ink-1);margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}.kpi-strip .item .d{font-size:11px;color:var(--ink-3);margin-top:2px;font-variant-numeric:tabular-nums}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead th{text-align:left;padding:var(--s-3) var(--s-3);border-bottom:1px solid var(--hairline-strong);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-weight:500;background:var(--bg)}.data-table thead th.right{text-align:right}.data-table tbody td{padding:var(--s-3) var(--s-3);border-bottom:1px solid var(--hairline);vertical-align:middle}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover{background:var(--surface-2)}.data-table .right{text-align:right}.data-table .num{font-variant-numeric:tabular-nums;color:var(--ink-1)}.data-table .name{color:var(--ink-1);font-weight:500;line-height:1.3}.data-table .id{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);margin-top:2px}.data-table .spark{width:64px;height:18px}.data-table tbody tr.row-empty td{padding:var(--s-8);text-align:center;color:var(--ink-4)}.status-foot{display:flex;justify-content:space-between;align-items:center;margin-top:var(--s-5);font-size:11px;color:var(--ink-4);letter-spacing:.04em;flex-wrap:wrap;gap:var(--s-3)}.status-foot .live-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--pos);margin-right:6px;animation:pulse 2s ease-in-out infinite}.alert-group{margin-bottom:var(--s-8)}.alert-group-head{display:flex;justify-content:space-between;align-items:center;padding:var(--s-3) var(--s-4);background:var(--surface-2);border-radius:var(--r-btn) var(--r-btn) 0 0;border:1px solid var(--hairline);border-bottom:0}.alert-group-head h3{margin:0;font-size:12px;font-weight:600;color:var(--ink-1);letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:var(--s-2)}.alert-group.p0 .alert-group-head h3:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--neg)}.alert-group.p1 .alert-group-head h3:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--warn)}.alert-list{border:1px solid var(--hairline);border-top:0;border-radius:0 0 var(--r-btn) var(--r-btn);background:var(--surface-1);overflow:hidden}.alert-row{display:grid;grid-template-columns:64px 1fr auto;gap:var(--s-5);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--hairline);align-items:flex-start}.alert-row:last-child{border-bottom:0}.alert-row .when{font-variant-numeric:tabular-nums;color:var(--ink-1);font-size:14px;font-weight:500;line-height:1.3}.alert-row .when .d{color:var(--ink-4);font-size:10px;font-weight:400;display:block}.alert-row h4{margin:0 0 4px;font-family:var(--font-serif);font-size:16px;color:var(--ink-1);font-weight:500;letter-spacing:-.005em;display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap}.alert-row h4 .kind{font-family:var(--font-mono);font-size:10px;color:var(--ink-4);letter-spacing:.02em;font-weight:400}.alert-row p{margin:0;color:var(--ink-2);font-size:13px}.alert-row .diag{margin-top:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--accent-soft);border-left:3px solid var(--accent);font-size:13px;color:var(--ink-1);border-radius:0 var(--r-btn) var(--r-btn) 0;line-height:1.6;font-family:var(--font-serif);font-style:italic}.alert-row .diag:before{content:"AI";display:inline-block;font-family:var(--font-mono);font-size:9px;font-weight:700;padding:1px 4px;margin-right:6px;background:var(--accent);color:#fff;border-radius:2px;letter-spacing:.04em;vertical-align:1px;font-style:normal}.alert-row .alert-meta{font-family:var(--font-mono);color:var(--ink-4);font-size:10px;margin-top:6px}.sug-section-head{display:flex;justify-content:space-between;align-items:center;padding:var(--s-4) 0;border-bottom:1px solid var(--hairline-strong);margin-top:var(--s-6)}.sug-section-head h2{margin:0;font-size:13px;font-weight:600;color:var(--ink-1);letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:baseline;gap:var(--s-3)}.sug-section-head h2 .ct{font-family:var(--font-mono);color:var(--ink-3);font-size:11px;font-weight:400;padding:1px 6px;background:var(--surface-2);border-radius:999px}.sug-bulk{display:flex;gap:var(--s-2)}.sug-row{padding:var(--s-4) 0;border-bottom:1px solid var(--hairline)}.sug-row .row-main{display:grid;grid-template-columns:auto 1fr auto;gap:var(--s-4);align-items:center}.verb-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-btn);font-size:12px;font-weight:600;letter-spacing:.02em;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);white-space:nowrap}.verb-chip.warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.verb-chip.neg{background:var(--neg-soft);color:var(--neg);border-color:var(--neg)}.sug-headline{font-family:var(--font-serif);font-size:16px;color:var(--ink-1);font-weight:500;line-height:1.35;letter-spacing:-.008em}.sug-headline .target{color:var(--ink-3);font-family:var(--font-mono);font-size:12px;margin-left:8px}.sug-row .reason{margin-top:4px;color:var(--ink-3);font-size:12px;display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.sug-row .reason .impact{color:var(--pos);font-weight:600;font-variant-numeric:tabular-nums}.sug-row .reason .impact.neg{color:var(--neg)}.sug-actions{display:flex;gap:var(--s-2);align-items:center}.sug-actions .approve{background:var(--accent);color:#fff;border:0;padding:7px 14px;border-radius:var(--r-btn);font-weight:600;font-size:13px;transition:filter .12s;cursor:pointer}.sug-actions .approve:hover{filter:brightness(1.08)}.sug-actions .approve:disabled{opacity:.5;cursor:not-allowed}.sug-row details{margin-top:var(--s-3);padding-left:0}.sug-row details summary{cursor:pointer;color:var(--ink-3);font-size:12px;list-style:none;display:inline-flex;align-items:center;gap:4px;-webkit-user-select:none;user-select:none}.sug-row details summary::-webkit-details-marker{display:none}.sug-row details summary:before{content:"▸";font-size:9px;transition:transform .15s}.sug-row details[open] summary:before{transform:rotate(90deg)}.sug-row details summary:hover{color:var(--ink-1)}.sug-row details .ev{margin-top:var(--s-3);padding:var(--s-4);background:var(--surface-2);border-radius:var(--r-btn);display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);font-size:12px}.sug-row details .ev .ev-h{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);margin-bottom:var(--s-2)}.sug-row details .ev .prob{font-family:var(--font-serif);font-size:32px;font-weight:400;line-height:1;color:var(--ink-1);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.sug-row details .ev .prob.good{color:var(--pos)}.sug-row details .ev .prob.warn{color:var(--warn)}.sim-list{display:flex;flex-direction:column;gap:2px}.sim-list .sim-row{display:grid;grid-template-columns:48px 1fr auto;gap:var(--s-3);padding:3px 0;font-family:var(--font-mono);font-size:11px;align-items:center}.sim-list .outcome{font-size:9px;padding:1px 4px;border-radius:2px;font-weight:700;text-align:center}.sim-list .outcome.win{background:var(--pos);color:#fff}.sim-list .outcome.loss{background:var(--neg);color:#fff}.sim-list .roi{color:var(--ink-1);font-weight:600}.pat-section{margin-bottom:var(--s-8)}.pat-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-bottom:var(--s-6)}.pat-card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-card);padding:var(--s-5);box-shadow:var(--shadow-1)}.pat-card .label{font-size:11px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.1em}.pat-card .v{font-family:var(--font-serif);font-size:44px;font-weight:400;color:var(--ink-1);line-height:1;letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin:var(--s-3) 0}.pat-card .v.trained{font-size:22px;color:var(--pos);display:flex;align-items:center;gap:6px}.pat-card .v.trained:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pos)}.pat-card .v.untrained{color:var(--ink-3)}.pat-card .meta{display:flex;gap:var(--s-4);font-size:12px;color:var(--ink-3);flex-wrap:wrap;align-items:center}.pat-card .meta .num{color:var(--ink-1);font-weight:600}.train-progress{height:6px;background:var(--surface-3);border-radius:999px;margin-top:var(--s-3);overflow:hidden}.train-progress>div{height:100%;background:var(--pos);border-radius:999px}.label-row{display:grid;grid-template-columns:1fr 140px 240px 180px;gap:var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--hairline);align-items:center}.label-row .trajectory{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px}.label-row .trajectory .t-label{color:var(--ink-4);letter-spacing:.06em;text-transform:uppercase}.label-row .trajectory .t-total{color:var(--ink-3);font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.label-row .spark rect{fill:var(--accent);opacity:.55;transition:opacity .12s}.label-row .spark rect.has-users{fill:var(--pos);opacity:.85}.label-row .spark:hover rect{opacity:1}.label-row .trajectory.empty .t-label{color:var(--ink-4);font-style:italic}.label-row:first-of-type{border-top:1px solid var(--hairline)}.label-row .stats{display:flex;gap:var(--s-4);font-size:12px;font-variant-numeric:tabular-nums}.label-row .stats .l{color:var(--ink-4);font-size:10px;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:2px}.label-pick{display:flex;gap:4px;justify-content:flex-end}.label-pick button{width:44px;height:32px;border:1px solid var(--hairline);background:var(--surface-1);color:var(--ink-3);font-size:13px;font-weight:600;border-radius:var(--r-btn);transition:all .12s}.label-pick button.win:hover{border-color:var(--pos);color:var(--pos)}.label-pick button.loss:hover{border-color:var(--neg);color:var(--neg)}.label-pick button.win.active{background:var(--pos);color:#fff;border-color:var(--pos)}.label-pick button.loss.active{background:var(--neg);color:#fff;border-color:var(--neg)}.label-pick button.neutral.active{background:var(--surface-3);color:var(--ink-1)}.dash-chart{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-card);padding:var(--s-5);box-shadow:var(--shadow-1)}.dash-chart-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--hairline)}.legend{display:flex;gap:var(--s-4);font-size:11px}.legend-item{display:flex;align-items:center;gap:6px;color:var(--ink-3)}.legend-item .swatch{width:12px;height:3px;border-radius:999px}.dash-chart .echarts-wrap{width:100%;height:clamp(280px,32vw,380px)}.grade{display:inline-block;width:26px;height:26px;border-radius:var(--r-btn);color:#fff;font-weight:700;font-size:12px;text-align:center;line-height:26px}.grade.s{background:var(--pos)}.grade.a{background:#359658}.grade.b{background:var(--accent)}.grade.c{background:var(--warn)}.grade.d{background:var(--neg)}.chat-shell{display:grid;grid-template-columns:240px 1fr;gap:var(--s-5)}.chat-side{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-card);padding:var(--s-4)}.chat-side h3{margin:0 0 var(--s-3);font-size:10px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.chat-side .suggested{display:flex;flex-direction:column;gap:var(--s-2)}.chat-side .suggested button{text-align:left;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-btn);padding:var(--s-2) var(--s-3);font-size:12px;color:var(--ink-2);line-height:1.4;transition:all .12s}.chat-side .suggested button:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--ink-1)}.chat-side .history-list{display:flex;flex-direction:column;gap:2px;margin-top:var(--s-5)}.chat-side .history-list a{padding:6px 8px;border-radius:var(--r-btn);color:var(--ink-3);font-size:12px;line-height:1.4;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-side .history-list a:hover{background:var(--surface-2);color:var(--ink-1)}.chat-side .history-list a.active{background:var(--accent-soft);color:var(--ink-1)}.chat-side .history-list a .t{color:var(--ink-4);font-size:10px;font-family:var(--font-mono);margin-right:6px}.chat{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-card);display:flex;flex-direction:column;min-height:560px;box-shadow:var(--shadow-1)}.chat-head{padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-3)}.chat-head .session-info{font-family:var(--font-mono);letter-spacing:.04em}.chat-cost{display:flex;align-items:center;gap:var(--s-2);font-variant-numeric:tabular-nums}.chat-cost .progress{width:96px;height:4px;background:var(--surface-3);border-radius:999px;overflow:hidden}.chat-cost .progress>div{height:100%;background:var(--accent);border-radius:999px}.chat-body{flex:1;padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4);overflow-y:auto}.msg-user{align-self:flex-end;max-width:78%;background:var(--accent);color:#fff;padding:var(--s-2) var(--s-4);border-radius:16px 16px 4px;font-size:14px;line-height:1.5}.msg-ai{max-width:92%;padding-left:var(--s-2)}.msg-ai p{margin:var(--s-2) 0;line-height:1.6}.msg-ai strong{color:var(--ink-1);font-weight:600}.tool-trace{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;padding:4px 10px;margin:3px 0;background:var(--surface-2);border-left:2px solid var(--accent);border-radius:0 var(--r-btn) var(--r-btn) 0;color:var(--ink-3)}.tool-trace .arrow{color:var(--accent);font-weight:600}.tool-trace .name{color:var(--ink-1);font-weight:500}.chat-input-wrap{border-top:1px solid var(--hairline);padding:var(--s-3) var(--s-4);display:flex;gap:var(--s-3);align-items:center;background:var(--surface-2)}.chat-input-wrap input{flex:1;background:var(--surface-1);border:1px solid var(--hairline);color:var(--ink-1);font-size:14px;padding:8px 12px;border-radius:var(--r-btn);font-family:var(--font-sans);outline:none;transition:border-color .12s}.chat-input-wrap input:focus{border-color:var(--accent)}.chat-input-wrap button{padding:8px 16px;border-radius:var(--r-btn);background:var(--accent);color:#fff;border:0;font-weight:600;font-size:13px}.set-layout{display:grid;grid-template-columns:180px 1fr;gap:var(--s-8)}.set-nav{position:sticky;top:var(--s-5);height:fit-content}.set-nav h3{font-size:10px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.12em;margin:0 0 var(--s-3);font-weight:600}.set-nav a{display:block;padding:6px 10px;border-radius:var(--r-btn);color:var(--ink-3);font-size:13px;cursor:pointer}.set-nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:500}.set-nav a:hover{color:var(--ink-1)}.set-section{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-card);padding:var(--s-6);margin-bottom:var(--s-5);box-shadow:var(--shadow-1)}.set-section h2{margin:0 0 var(--s-2);font-family:var(--font-serif);font-size:22px;font-weight:500;color:var(--ink-1);letter-spacing:-.015em;line-height:1.2}.set-section .desc{color:var(--ink-3);font-size:13px;margin:0 0 var(--s-5)}.set-grid{display:grid;grid-template-columns:140px 1fr;gap:var(--s-4) var(--s-5);align-items:baseline}.set-grid .k{color:var(--ink-3);font-size:12px;letter-spacing:.04em}.set-grid .v{color:var(--ink-1);font-size:13px}.set-grid .v.mono{font-family:var(--font-mono);font-size:12px}.ok{color:var(--pos);display:inline-flex;align-items:center;gap:6px}.ok:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pos)}.set-input{background:var(--surface-2);border:1px solid var(--hairline);color:var(--ink-1);padding:6px 10px;border-radius:var(--r-btn);font-size:12px;font-family:var(--font-mono);min-width:280px}.wizard-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);margin:var(--s-4) 0}.wizard-step{padding:var(--s-4);border:1px solid var(--hairline);border-radius:var(--r-card);background:var(--surface-2);position:relative}.wizard-step.done{background:var(--pos-soft);border-color:var(--pos)}.wizard-step.active{background:var(--accent-soft);border-color:var(--accent)}.wizard-step .n{width:22px;height:22px;border-radius:50%;background:var(--surface-3);color:var(--ink-3);display:grid;place-items:center;font-weight:600;font-size:12px;margin-bottom:var(--s-2)}.wizard-step.done .n{background:var(--pos);color:#fff}.wizard-step.active .n{background:var(--accent);color:#fff}.wizard-step .h{font-size:13px;color:var(--ink-1);font-weight:500}.wizard-step .d{font-size:11px;color:var(--ink-3);margin-top:4px;line-height:1.4}.toggle-row{display:grid;grid-template-columns:1fr auto;align-items:center;padding:var(--s-3) 0;border-bottom:1px solid var(--hairline)}.toggle-row:last-child{border-bottom:0}.toggle-row .lbl{font-size:14px;color:var(--ink-1)}.toggle-row .lbl .desc{display:block;font-size:11px;color:var(--ink-4);margin-top:2px;font-family:var(--font-mono);letter-spacing:.02em}.switch{width:36px;height:20px;background:var(--surface-3);border-radius:999px;position:relative;cursor:pointer;transition:background .16s;border:0;padding:0}.switch:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:left .16s}.switch.on{background:var(--accent)}.switch.on:after{left:18px}@container (max-width: 640px){.content-inner{padding:var(--s-5) var(--s-4) var(--s-12)}.page-head{flex-direction:column;align-items:stretch;gap:var(--s-3)}.hero-roi{grid-template-columns:1fr;gap:var(--s-5);padding:var(--s-5)}.kpi-strip{grid-template-columns:repeat(2,1fr)}.next-action{grid-template-columns:1fr;text-align:center}.sug-row .row-main{grid-template-columns:1fr}.sug-row details .ev{grid-template-columns:1fr}.label-row{grid-template-columns:1fr;gap:var(--s-3)}.label-row .trajectory{flex-direction:row;gap:var(--s-3);align-items:baseline}.pat-stats{grid-template-columns:1fr}.alert-row{grid-template-columns:1fr;gap:var(--s-2)}.set-layout{grid-template-columns:1fr}.set-nav{position:static}.chat-shell{grid-template-columns:1fr}.chat-side{display:none}.data-table thead th:nth-child(n+5),.data-table tbody td:nth-child(n+5){display:none}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:380px;background:var(--surface-1);border:1px solid var(--hairline);padding:var(--s-8);border-radius:var(--r-card);display:flex;flex-direction:column;gap:var(--s-4);box-shadow:var(--shadow-2)}.login-card h1{margin:0;font-family:var(--font-serif);font-size:28px;font-weight:500;color:var(--ink-1);letter-spacing:-.02em}.login-card .sub{color:var(--ink-3);margin:0 0 var(--s-2);font-size:13px;font-style:italic}.login-card input{background:var(--surface-2);border:1px solid var(--hairline);color:var(--ink-1);padding:10px 14px;border-radius:var(--r-btn);font-size:14px;outline:none;transition:border-color .12s}.login-card input:focus{border-color:var(--accent)}.login-card button{background:var(--accent);color:#fff;border:none;padding:10px 14px;border-radius:var(--r-btn);font-weight:600;font-size:14px;cursor:pointer;transition:filter .12s}.login-card button:hover{filter:brightness(1.05)}.login-card button:disabled{opacity:.6}.login-card .error{color:var(--neg);font-size:13px}.muted{color:var(--ink-3)}.empty-state{padding:var(--s-12) var(--s-5);text-align:center;color:var(--ink-3);background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-card)}.empty-state h3{margin:0 0 var(--s-2);font-family:var(--font-serif);color:var(--ink-1);font-weight:500;font-size:18px}</content>{}
