:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#1a1320;--well:#221829;--surface:#2a1f33;--surface-2:#332541;--line:#3d2d4a;--line-soft:#2f2239;--grid:#b39ddb1a;--text:#f0e6f5;--text-2:#d5cbe2;--text-dim:#a594b3;--text-mute:#a594b3;--text-faint:#6d5d7a;--accent:#ff6b8a;--accent-light:#ffa1b5;--accent-soft:#ff6b8a22;--accent-edge:#ff6b8a55;--accent-grad:linear-gradient(135deg, #ff8fa6, #ff6b8a);--on-accent:#1a1320;--avatar:#332541;--user-bubble:#ff6b8a24;--user-bubble-text:#f0e6f5;--good:#7ee5b8;--warn:#e8c56a;--bad:#ff4d8d;--internal-fg:#7ee5b8;--internal-bg:#7ee5b81a;--internal-dot:#7ee5b8;--internal-ring:#7ee5b866;--cloud-fg:#b39ddb;--cloud-bg:#b39ddb1f;--cloud-dot:#b39ddb;--cloud-ring:#b39ddb73;--deciding-fg:#a594b3;--deciding-bg:#332541;--deciding-dot:#6d5d7a;--deciding-ring:#a594b359;--stack:#b39ddb;--chart-baseline:#9a7fe0;--chart-router:#e0587a;--chart-energy:#e0587a;--chart-hardware:#9a7fe0;--chart-maintenance:#2aa57a;--shadow-card:0 4px 18px #0a060e4d;--shadow-featured:0 4px 18px #0a060e4d, 0 12px 40px -16px #ff6b8a38;--shadow-float:0 12px 34px #0a060e99;--shadow-modal:0 24px 70px #08050cb3;--shadow-tab:0 1px 3px #00000059;--scrim:#0c0810a8;--r-card:14px;--r-modal:16px;--r-drawer:16px;--r-pop:10px;--r-tile:10px;--edge-w:3px;--edge-featured:#ff6b8a;--edge-plain:#b39ddb;--font-body:"Geist", system-ui, sans-serif;--font-num:"Geist", system-ui, sans-serif;--font-brand:"Silkscreen", "Courier New", monospace;--brand-glow:0 0 24px #ff6b8a55}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f6f5f9;--well:#faf8fd;--surface:#fff;--surface-2:#f6f5f9;--line:#e9e5f2;--line-soft:#f0edf6;--grid:#ecebf0;--text:#17141f;--text-2:#3f3a4b;--text-dim:#5b5668;--text-mute:#7a7488;--text-faint:#a7a1b3;--accent:#7e22ce;--accent-light:#c084fc;--accent-soft:#f3e8ff;--accent-edge:#e9d5ff;--accent-grad:linear-gradient(135deg, #c084fc, #7e22ce);--on-accent:#fff;--avatar:#e4e1ea;--user-bubble:#f3e8ff;--user-bubble-text:#3b0764;--good:#15803d;--warn:#b45309;--bad:#dc2626;--internal-fg:#15803d;--internal-bg:#ecfdf3;--internal-dot:#22c55e;--internal-ring:#22c55e73;--cloud-fg:#1d4ed8;--cloud-bg:#eff6ff;--cloud-dot:#3b82f6;--cloud-ring:#3b82f673;--deciding-fg:#5b5668;--deciding-bg:#f3f1f7;--deciding-dot:#a7a1b3;--deciding-ring:#a7a1b366;--stack:#3b82f6;--chart-baseline:#2a78d6;--chart-router:#eb6834;--chart-energy:#2a78d6;--chart-hardware:#eb6834;--chart-maintenance:#1baf7a;--shadow-card:0 1px 2px #17141f0a;--shadow-featured:0 1px 2px #17141f0a, 0 12px 40px -16px #7e22ce2e;--shadow-float:0 16px 40px -12px #17141f38;--shadow-modal:0 30px 80px -20px #17141f73;--shadow-tab:0 1px 3px #17141f1a;--scrim:#17141f61;--r-card:24px;--r-modal:24px;--r-drawer:18px;--r-pop:14px;--r-tile:16px;--edge-w:1px;--edge-featured:#e9e5f2;--edge-plain:#e9e5f2;--font-body:Manrope, system-ui, sans-serif;--font-num:"JetBrains Mono", monospace;--font-brand:"Silkscreen", "Courier New", monospace;--brand-glow:none}html,body{background:var(--page);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;padding:0}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--ring)}70%{box-shadow:0 0 0 7px #0000}}@keyframes live{0%,to{opacity:1}50%{opacity:.4}}.page{z-index:1;box-sizing:border-box;flex-direction:column;gap:20px;max-width:1440px;height:100vh;min-height:640px;margin:0 auto;padding:20px 32px 24px;display:flex;position:relative}.theme-toggle{z-index:30;border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--text-dim);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:inline-flex;position:fixed;top:16px;left:16px}.theme-toggle:hover{color:var(--accent);border-color:var(--accent-edge);background:var(--accent-soft)}.theme-toggle svg{width:18px;height:18px}.header{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.wordmark{font-family:var(--font-brand);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);text-shadow:var(--brand-glow);-webkit-user-select:none;user-select:none;font-size:22px;font-weight:400;line-height:1}.header h1{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:800;line-height:1.1}.status{color:var(--text-dim);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.status-dot{background:var(--bad);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite live}.status-dot.off{background:var(--text-faint);animation:none}.menu{margin-top:4px;position:relative}.menu-pill{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text-dim);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:12px;font-weight:700;display:flex}.menu-pill:hover,.menu-pill.open{border-color:var(--accent-edge);color:var(--accent)}.chev{font-size:10px;transition:transform .15s}.menu-pill.open .chev{transform:rotate(180deg)}.drawer{z-index:10;box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-drawer);width:320px;box-shadow:var(--shadow-float);text-align:left;flex-direction:column;gap:12px;padding:16px;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.field{flex-direction:column;gap:6px;display:flex}.field select{width:100%}.drawer-buttons{flex-wrap:wrap;gap:8px;display:flex}.ctl{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700}.ctl:disabled{opacity:.5;cursor:default}.ctl.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-edge)}select.ctl{padding-right:10px}.columns{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(380px,1fr) 260px minmax(380px,1fr);gap:24px;min-height:0;display:grid}@media (width<=1080px){.page{height:auto}.columns{grid-template-rows:none;grid-template-columns:1fr}.card{height:80vh;min-height:520px}.stacks{flex:none;height:320px}}.card{background:var(--surface);border-radius:var(--r-card);border:1px solid var(--line);border-left:var(--edge-w) solid var(--edge-plain);box-shadow:var(--shadow-card);flex-direction:column;min-height:0;display:flex;overflow:hidden}.card.featured{border-left-color:var(--edge-featured);box-shadow:var(--shadow-featured)}.card-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.ident{align-items:center;gap:12px;display:flex}.avatar{background:var(--avatar);border-radius:12px;flex:none;width:36px;height:36px}.featured .avatar{background:var(--accent-grad)}.ident-text{flex-direction:column;gap:2px;display:flex}.name{letter-spacing:-.01em;color:var(--text-2);font-size:17px;font-weight:800}.featured .name{color:var(--text)}.sub{color:var(--text-mute);font-size:12px;font-weight:600}.pill{white-space:nowrap;background:var(--deciding-bg);color:var(--text-dim);border-radius:999px;align-items:center;gap:10px;padding:8px 14px 8px 10px;font-size:13px;font-weight:700;display:flex}.pill-dot{background:var(--text-faint);border-radius:50%;width:10px;height:10px}.pill-dot.pulse{animation:1.6s ease-out infinite pulse}.mono{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.mono.faint{color:var(--text-faint)}.mono.internal{color:var(--internal-fg)}.mono.cloud{color:var(--cloud-fg)}.chat{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;flex:1 1 0;gap:12px;min-height:0;padding:24px;display:flex;overflow-y:auto}.chat>:first-child{margin-top:auto}.bubble{white-space:pre-wrap;text-wrap:pretty;overflow-wrap:anywhere;max-width:82%;padding:12px 16px;font-size:15px;font-weight:500;line-height:1.5}.bubble.user{background:var(--user-bubble);color:var(--user-bubble-text);border-radius:18px 18px 4px;align-self:flex-end}.bubble.bot{background:var(--surface-2);color:var(--text);border-radius:18px 18px 18px 4px;align-self:flex-start}.bubble.pending{color:var(--text-faint)}.bubble.error{color:var(--bad)}.composer{border-top:1px solid var(--line-soft);align-items:flex-end;gap:10px;padding:14px 24px;display:flex}.composer textarea{resize:none;box-sizing:border-box;font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:14px;outline:none;flex:1;height:46px;padding:10px 14px;font-size:15px;font-weight:500;line-height:1.5}.composer textarea:focus{border-color:var(--accent-light);box-shadow:0 0 0 3px var(--accent-soft)}.composer textarea[readonly]{background:var(--well);color:var(--text-2)}.composer textarea::placeholder{color:var(--text-faint)}.send{font:inherit;height:46px;color:var(--on-accent);background:var(--accent-grad);cursor:pointer;border:0;border-radius:999px;padding:0 20px;font-size:14px;font-weight:700;transition:transform .12s,filter .12s}.send.mirror{background:var(--avatar);color:var(--text-2);cursor:default}.send:disabled{opacity:.45;cursor:default}.send.flash{filter:brightness(1.12);transform:scale(.93)}.middle{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;gap:12px;min-height:0;display:flex;overflow-y:auto}.middle>.panel{flex-shrink:0}.middle>.stacks{flex-shrink:1}.panel{box-sizing:border-box;background:var(--surface);border-radius:var(--r-card);border:1px solid var(--line);box-shadow:var(--shadow-card)}.results{flex-direction:column;gap:2px;padding:14px 16px 8px;display:flex}.results>.kpi-label{text-align:center;margin-bottom:6px}.result-row{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.result-text{flex-direction:column;min-width:0;display:flex}.result-label{color:var(--text-2);font-size:12px;font-weight:700}.result-text .note{white-space:nowrap;text-overflow:ellipsis;min-height:0;font-size:11px;overflow:hidden}.result-value{font-family:var(--font-num);color:var(--text-2);font-variant-numeric:tabular-nums;flex:none;font-size:16px;font-weight:700}.result-value.good,.savings-value.good{color:var(--good)}.result-value.warn{color:var(--warn)}.result-value.bad,.savings-value.bad{color:var(--bad)}.savings{text-align:center;flex-direction:column;align-items:center;gap:2px;padding:14px 12px;display:flex}.savings-value{font-family:var(--font-num);letter-spacing:-.03em;color:var(--text-faint);font-size:44px;font-weight:700;line-height:1}.savings-label{color:var(--text-2);font-size:14px;font-weight:700}.session-grid{border-top:1px solid var(--line-soft);grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:8px;padding-top:8px;display:grid}.session-stat{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.session-stat .kpi-label{font-size:10px}.session-stat .note{min-height:0;font-size:11px}.session-value{font-family:var(--font-num);color:var(--text-faint);font-size:20px;font-weight:700}.session-value.good{color:var(--good)}.session-value.warn{color:var(--warn)}.session-value.bad{color:var(--bad)}.impact-divider{border-top:1px solid var(--line-soft);width:100%;margin-top:10px;padding-top:10px}.impact-btn{width:100%;font:inherit;color:var(--on-accent);background:var(--accent-grad);cursor:pointer;border:0;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:700}.impact-btn:hover{filter:brightness(1.08)}.modal-backdrop{z-index:50;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-modal);width:min(920px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-modal);padding:24px 28px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-head h2{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:800}.modal-close{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--text-dim);cursor:pointer;border-radius:50%;flex:none;font-size:20px;line-height:1}.modal-close:hover{color:var(--accent);border-color:var(--accent-edge)}.tabs{background:var(--page);border-radius:var(--r-pop);flex-wrap:wrap;gap:6px;margin:16px 0 4px;padding:4px;display:flex}.tab{font:inherit;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700}.tab.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-tab)}.impact-volume{color:var(--text-mute);margin:12px 0 16px;font-size:13px;font-weight:600}.impact-empty{text-align:center;color:var(--text-mute);margin:32px 0;font-weight:600}.impact-foot,.impact-assumptions{color:var(--text-mute);margin:12px 0 0;font-size:12px;font-weight:600;line-height:1.5}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;display:grid}.tile.hero{flex-flow:wrap;grid-column:1/-1;justify-content:space-between;align-items:baseline;column-gap:16px}.tile{border-radius:var(--r-tile);background:var(--well);border:1px solid var(--line-soft);flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.tile-label{color:var(--text-dim);font-size:12px;font-weight:700}.tile-value{letter-spacing:-.02em;color:var(--text);font-size:24px;font-weight:800}.tile.hero .tile-value{font-size:48px;line-height:1}.tile-value.good{color:var(--good)}.tile-value.bad{color:var(--bad)}.chart-block{margin:0}.chart-block figcaption{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.chart-title{color:var(--text);font-size:14px;font-weight:800}.chart-legend{color:var(--text-dim);gap:14px;font-size:12px;font-weight:600;display:flex}.chart-legend span,.chart-tip span{align-items:center;gap:6px;display:flex}.chart-legend i,.chart-tip i{border-radius:3px;flex:none;width:10px;height:10px}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--grid);stroke-width:1px}.chart .crosshair{stroke:var(--text-faint);stroke-width:1px}.chart .axis{fill:var(--text-mute);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.chart .axis.label{fill:var(--text-2);font-size:13px}.chart .axis.value{fill:var(--text);font-size:13px;font-weight:700}.chart-tip{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-float);color:var(--text-2);white-space:nowrap;pointer-events:none;border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;font-size:12px;font-weight:600;display:flex;position:absolute;top:8px}.chart-tip strong{color:var(--text);font-size:12px}.tip-saved{color:var(--text);font-weight:800}.data-table{color:var(--text-dim);margin-top:12px;font-size:12px}.data-table summary{cursor:pointer;font-weight:700}.data-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px}.data-table th,.data-table td{text-align:right;border-bottom:1px solid var(--line-soft);padding:5px 8px}.data-table th:first-child,.data-table td:first-child{text-align:left}.stacks{text-align:center;flex-direction:column;flex:1;align-items:center;gap:8px;min-height:180px;padding:14px 12px;display:flex}.stacks-plot{flex:1;grid-template-columns:1fr 1fr;gap:8px;width:100%;min-height:0;display:grid}.stack-col{flex-direction:column;align-items:center;gap:4px;min-height:0;display:flex}.stack-area{border-bottom:1px solid var(--line);flex:1;width:100%;min-height:0;margin-top:8px;position:relative}.stack{background:var(--stack);border-radius:8px 8px 0 0;width:40px;transition:height .25s ease-out;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.stack-name{color:var(--text-2);margin-top:4px;font-size:12px;font-weight:700}.stack-tokens{color:var(--text-mute);font-size:11px}.legend{color:var(--text-dim);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{background:var(--stack);border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.kpis{background:var(--line-soft);border-top:1px solid var(--line-soft);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.kpi{background:var(--well);flex-direction:column;gap:6px;min-width:0;padding:16px 20px;display:flex}.kpi.small{background:var(--surface);gap:4px;min-width:0;padding:14px 20px}.kpis-small{grid-template-columns:repeat(5,minmax(0,1fr))}.kpis-small .kpi.small{padding:12px 14px}.kpi.has-detail{cursor:help;outline:none}.kpi.has-detail:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-light)}.detail-popover{z-index:60;box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pop);box-shadow:var(--shadow-float);color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 14px;font-size:12px;font-weight:500;line-height:1.5;position:fixed;overflow-y:auto}.kpi.has-detail .kpi-value{-webkit-text-decoration:underline dotted var(--text-faint);text-decoration:underline dotted var(--text-faint);text-underline-offset:4px}.kpi-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-mute);font-size:11px;font-weight:700}.kpi-row{align-items:baseline;gap:6px;display:flex}.kpi-value{font-family:var(--font-num);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:600}.kpi.small .kpi-value{letter-spacing:0;font-size:18px}.kpi.small .kpi-row{flex-wrap:wrap;row-gap:0}.unit{color:var(--text-mute);font-size:13px;font-weight:600}.note{color:var(--text-mute);min-height:16px;font-size:12px;font-weight:600}.note.good{color:var(--good);font-weight:700}.kpis-mini{background:var(--line-soft);border-top:1px solid var(--line-soft);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.kpi-mini{background:var(--surface);flex-direction:column;gap:2px;min-width:0;padding:10px 20px;display:flex}.kpi-mini-row{white-space:nowrap;align-items:baseline;gap:8px;min-width:0;display:flex}.kpi-mini .note{text-overflow:ellipsis;min-width:0;min-height:0;overflow:hidden}.login-page{z-index:1;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100vh;padding:24px;display:flex;position:relative}.login-brand{text-align:center;-webkit-user-select:none;user-select:none}.login-wordmark{font-family:var(--font-brand);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);text-shadow:var(--brand-glow);font-size:36px;line-height:1}.login-tagline{letter-spacing:.3em;text-transform:uppercase;color:var(--text-faint);margin-top:8px;font-size:12px}.login-card{box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-modal);width:min(404px,100%);box-shadow:var(--shadow-modal);flex-direction:column;gap:10px;padding:24px 22px 30px;display:flex}.login-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:12px;font-weight:500}.login-input{box-sizing:border-box;border:1px solid var(--line);background:var(--well);height:42px;color:var(--text);font:inherit;border-radius:10px;outline:none;padding:0 12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.login-input:focus{border-color:var(--accent-edge);box-shadow:0 0 0 3px var(--accent-soft)}.login-btn{background:var(--accent);color:#fff;height:42px;font:inherit;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:0;border-radius:8px;margin-top:14px;font-size:14px;font-weight:500;transition:filter .15s}.login-btn:hover{filter:brightness(1.06)}.login-btn:disabled{opacity:.6;cursor:default;filter:none}.login-error{color:var(--bad);margin:0;font-size:12px;font-weight:600}:root[data-theme=dark] body{letter-spacing:-.005em}:root[data-theme=dark] body:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(1px 1px at 20% 30%,#ffffff08,#0000 50%),radial-gradient(1px 1px at 70% 80%,#ffffff06,#0000 50%),radial-gradient(1px 1px at 40% 60%,#ffffff05,#0000 50%);position:fixed;inset:0}:root[data-theme=dark] .wordmark{font-size:26px}:root[data-theme=dark] .kpi:not(.small) .kpi-value,:root[data-theme=dark] .savings-value,:root[data-theme=dark] .session-value,:root[data-theme=dark] .tile-value{font-family:var(--font-brand);letter-spacing:0;font-weight:400}:root[data-theme=dark] .kpi:not(.small) .kpi-value{font-size:22px}:root[data-theme=dark] .savings-value{font-size:40px}:root[data-theme=dark] .tile-value{font-size:20px}:root[data-theme=dark] .tile.hero .tile-value{font-size:40px}:root[data-theme=dark] .modal-head h2{font-family:var(--font-brand);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:15px;font-weight:700}:root[data-theme=dark] .results>.kpi-label,:root[data-theme=dark] .stacks>.kpi-label{letter-spacing:.2em;font-size:10px}
