:root{--bg: #0a0f14;--surface: #111820;--surface-2: #1a2530;--border: rgba(255,255,255,.08);--ink: #e2e8f0;--ink-muted: #64748b;--accent: #0ea5e9;--accent-soft: rgba(14,165,233,.12);--up: #22c55e;--up-soft: rgba(34,197,94,.12);--down: #ef4444;--down-soft: rgba(239,68,68,.12);--warn: #f59e0b;--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius: 6px;--radius-lg: 10px;--shadow: 0 4px 24px rgba(0,0,0,.4)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;font:inherit}input,textarea,select{font:inherit}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--ink-muted);font-size:13px}.loading-spinner:after{content:"Loading…"}.error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:12px 16px;border-radius:var(--radius);font-size:13px;margin:16px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px;width:100%;max-width:360px;box-shadow:var(--shadow)}.login-brand{font-size:11px;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}.login-title{font-size:22px;font-weight:600;color:var(--ink);margin:0 0 4px}.login-subtitle{font-size:13px;color:var(--ink-muted);margin:0 0 28px}.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);font-size:14px;font-weight:500;transition:border-color .15s,background .15s}.btn-google:hover:not(:disabled){border-color:#fff3;background:#ffffff0d}.btn-google:disabled{opacity:.5;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--ink-muted);font-size:12px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-form{display:flex;flex-direction:column;gap:10px}.login-input{width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);font-size:14px;outline:none;transition:border-color .15s}.login-input:focus{border-color:var(--accent)}.btn-primary{width:100%;padding:10px 16px;background:var(--accent);border:none;border-radius:var(--radius);color:#fff;font-size:14px;font-weight:600;transition:opacity .15s;margin-top:4px}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.login-error{margin:14px 0 0;padding:10px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius);color:#fca5a5;font-size:13px}.portal-layout{min-height:100vh;display:flex;flex-direction:column}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:52px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.portal-header-left{display:flex;align-items:center;gap:16px}.portal-brand{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:500}.portal-tenant-name{font-size:13px;color:var(--ink-muted);font-weight:400}.portal-header-right{display:flex;align-items:center;gap:12px}.portal-user-email{font-size:12px;color:var(--ink-muted)}.btn-ghost{padding:5px 10px;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--ink-muted);font-size:12px;transition:color .15s,border-color .15s}.btn-ghost:hover{color:var(--ink);border-color:#fff3}.portal-main{flex:1;padding:32px 24px;max-width:1100px;width:100%;margin:0 auto}.portal-page-title{font-size:20px;font-weight:600;color:var(--ink);margin:0 0 24px}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.room-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;text-align:left;transition:border-color .15s,transform .1s;cursor:pointer;width:100%}.room-card:hover{border-color:#ffffff2e;transform:translateY(-1px)}.room-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.room-card-name{font-size:15px;font-weight:600;color:var(--ink);line-height:1.3}.status-badge{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;padding:3px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0}.status-badge--active{background:#22c55e1f;color:var(--up);border:1px solid rgba(34,197,94,.25)}.status-badge--paused{background:#f59e0b1f;color:var(--warn);border:1px solid rgba(245,158,11,.25)}.status-badge--archived{background:#64748b1f;color:var(--ink-muted);border:1px solid rgba(100,116,139,.2)}.room-card-meta{display:flex;flex-direction:column;gap:4px}.meta-row{display:flex;justify-content:space-between;align-items:center}.meta-label{font-size:11px;color:var(--ink-muted)}.meta-value{font-size:11px;color:var(--ink);font-family:var(--font-mono)}.empty-state{color:var(--ink-muted);font-size:14px;grid-column:1 / -1}.room-error-screen{padding:24px}.btn-back{background:none;border:none;color:var(--accent);font-size:13px;padding:0;cursor:pointer}.btn-back:hover{text-decoration:underline}.room-screen{min-height:100vh;display:flex;flex-direction:column}.room-screen-header{display:flex;align-items:center;gap:16px;padding:0 24px;height:52px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.room-screen-title-group{display:flex;align-items:baseline;gap:12px}.room-screen-title{font-size:16px;font-weight:600;color:var(--ink);margin:0}.room-screen-updated{font-size:11px;color:var(--ink-muted);font-family:var(--font-mono)}.room-screen-body{flex:1;display:grid;grid-template-columns:1fr 280px;gap:0;max-width:1400px;margin:0 auto;width:100%;padding:24px;gap:24px;align-items:start}.room-screen-main{display:flex;flex-direction:column;gap:0}.room-screen-sidebar{position:sticky;top:76px}.chain-summary-bar{display:flex;flex-direction:column;gap:8px}.chain-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s}.chain-row--expanded{border-color:#0ea5e94d}.chain-row-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:none;border:none;text-align:left;gap:12px}.chain-row-header:hover{background:#ffffff05}.chain-row-left{display:flex;align-items:center;gap:10px;min-width:0}.chain-row-name{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chain-row-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.chain-row-prob{font-size:20px;font-weight:700;font-family:var(--font-mono);color:var(--ink)}.chain-row-prob--empty{color:var(--ink-muted)}.chain-row-delta{font-size:12px;font-family:var(--font-mono);font-weight:500}.chain-row-expand{font-size:10px;color:var(--ink-muted)}.chain-detail-placeholder{padding:16px 20px;border-top:1px solid var(--border)}.support-badge{font-size:10px;font-family:var(--font-mono);padding:2px 7px;border-radius:4px;white-space:nowrap}.support-badge--healthy{color:var(--up);background:var(--up-soft)}.support-badge--thin{color:var(--warn);background:#f59e0b1a}.support-badge--empty{color:var(--ink-muted);background:#64748b1a}.activity-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.activity-sidebar-title{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:0 0 12px;font-weight:500}.activity-feed{display:flex;flex-direction:column;gap:10px}.activity-event{display:flex;gap:8px;align-items:flex-start}.activity-icon{font-size:13px;color:var(--ink-muted);flex-shrink:0;margin-top:1px}.activity-body{display:flex;flex-direction:column;gap:2px}.activity-label{font-size:12px;color:var(--ink);line-height:1.4}.activity-time{font-size:10px;color:var(--ink-muted);font-family:var(--font-mono)}.activity-empty{font-size:12px;color:var(--ink-muted);margin:0}.chain-detail{padding:16px 20px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:16px}.chain-detail-plots-placeholder{padding:12px;background:var(--surface-2);border-radius:var(--radius);text-align:center}.causal-graph-container{display:flex;flex-direction:column;gap:12px}.causal-graph-svg-wrapper{overflow-x:auto;border-radius:var(--radius);background:var(--bg);padding:4px}.causal-graph-svg{display:block}.causal-graph-tooltip{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;max-width:400px}.causal-graph-tooltip-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.causal-graph-tooltip-name{font-size:13px;font-weight:600;color:var(--ink)}.causal-graph-tooltip-label{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-bottom:8px}.causal-graph-tooltip-markets{display:flex;flex-direction:column;gap:6px}.causal-graph-tooltip-market{display:flex;justify-content:space-between;align-items:center;gap:12px}.causal-graph-tooltip-market-question{font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.causal-graph-tooltip-market-prob{font-size:12px;font-family:var(--font-mono);color:var(--accent);flex-shrink:0}.causal-graph-tooltip-more{font-size:11px;color:var(--ink-muted)}.causal-graph-tooltip-close{background:none;border:none;color:var(--ink-muted);font-size:12px;cursor:pointer;padding:0 2px;line-height:1;opacity:.6;transition:opacity .15s}.causal-graph-tooltip-close:hover{opacity:1}.latent-snapshots{display:flex;flex-direction:column;gap:12px}.latent-snapshots-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.latent-snapshots-title{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-weight:500}.latent-snapshots-toggles{display:flex;gap:6px;flex-wrap:wrap}.latent-toggle{padding:3px 8px;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--ink);font-size:11px;font-family:var(--font-mono);transition:opacity .15s,border-color .15s}.latent-toggle--hidden{opacity:.35;border-color:transparent}.latent-toggle:hover{border-color:#fff3;opacity:1}.latent-snapshots-charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.snapshot-chart{display:flex;flex-direction:column;gap:6px}.snapshot-chart-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.snapshot-chart-name{font-size:11px;font-weight:500;color:var(--ink);font-family:var(--font-mono)}.snapshot-chart-toggle{padding:2px 8px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--ink-muted);font-size:10px;font-family:var(--font-mono);cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}.snapshot-chart-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.snapshot-chart-toggle--active{border-color:var(--accent);color:var(--accent)}.snapshot-chart-toggle:disabled{opacity:.5;cursor:default}.snapshot-chart-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:4px 2px}.snapshot-chart-legend-item{display:flex;align-items:center;gap:5px}.snapshot-chart-legend-swatch{display:inline-block;border-radius:1px;flex-shrink:0}.snapshot-chart-legend-label{font-size:10px;color:var(--ink-muted);font-family:var(--font-mono)}.snapshot-chart-empty{background:var(--surface-2);border-radius:var(--radius);padding:16px;display:flex;justify-content:space-between;align-items:center}.snapshot-chart-insufficient{font-size:11px;color:var(--ink-muted)}.chain-detail-actions{display:flex;gap:8px}.btn-scenario{padding:7px 14px;background:var(--accent-soft);border:1px solid rgba(14,165,233,.3);border-radius:var(--radius);color:var(--accent);font-size:13px;font-weight:500;transition:background .15s,border-color .15s}.btn-scenario:hover{background:#0ea5e92e;border-color:#0ea5e980}.scenario-panel{background:var(--surface-2);border:1px solid rgba(14,165,233,.2);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:16px}.scenario-panel-header{display:flex;align-items:center;justify-content:space-between}.scenario-panel-title{font-size:15px;font-weight:600;color:var(--ink);margin:0}.scenario-panel-close{background:none;border:none;color:var(--ink-muted);font-size:14px;padding:4px;line-height:1}.scenario-panel-close:hover{color:var(--ink)}.scenario-panel-instructions{font-size:13px;color:var(--ink-muted);margin:0}.scenario-levers{display:flex;flex-direction:column;gap:16px}.lever{display:flex;flex-direction:column;gap:6px}.lever-header{display:flex;justify-content:space-between;align-items:center}.lever-name{font-size:13px;font-weight:500;color:var(--ink)}.lever-value{font-size:13px;font-family:var(--font-mono);color:var(--accent);font-weight:600}.lever-slider{width:100%;accent-color:var(--accent);cursor:pointer;height:4px}.lever-endpoints{display:flex;justify-content:space-between;font-size:10px;color:var(--ink-muted);font-family:var(--font-mono)}.scenario-run-btn{align-self:flex-start}.scenario-no-levers{font-size:13px;color:var(--ink-muted);margin:0}.scenario-results{display:flex;flex-direction:column;gap:10px}.scenario-results-title{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.scenario-results-table{display:flex;flex-direction:column;gap:4px}.scenario-node{display:grid;grid-template-columns:1fr auto auto auto auto;align-items:center;gap:10px;padding:8px 10px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.scenario-node--up{border-color:#22c55e33}.scenario-node--down{border-color:#ef444433}.scenario-node-name{font-size:12px;color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenario-node-baseline,.scenario-node-scenario{font-size:12px;font-family:var(--font-mono);color:var(--ink-muted)}.scenario-node-arrow{font-size:12px;color:var(--ink-muted)}.scenario-node-delta{font-size:12px;font-family:var(--font-mono);font-weight:600;min-width:48px;text-align:right}.delta--up{color:var(--up)}.delta--down{color:var(--down)}
