:root{--bg: #0e1113;--surface: #171b1e;--surface-2: #1f2529;--line: #2a3136;--text: #e8eced;--text-dim: #8b979d;--text-faint: #5d686d;--accent: #e8a33d;--accent-dim: #6b4d1d;--good: #35c08a;--bad: #e0574a;--warn: #e8a33d;--info: #5aa9e6;--radius: 12px;--radius-sm: 8px;--pad: 16px;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}.app{display:flex;flex-direction:column;min-height:100%;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.masthead{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) var(--pad) 12px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.wordmark{font-weight:700;letter-spacing:-.02em;font-size:17px}.wordmark span{color:var(--accent)}.masthead .spacer{flex:1}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--text-faint);font:inherit;font-size:11px;padding:10px 4px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar button[aria-current=page]{color:var(--accent)}.tabbar .glyph{font-size:17px;line-height:1}main{padding:var(--pad);display:grid;gap:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--pad)}.card h2{margin:0 0 12px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:10px}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.mono{font-family:var(--mono)}.small{font-size:13px}.tiny{font-size:11px}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.banner{border-radius:var(--radius);padding:var(--pad);border:1px solid;display:grid;gap:10px}.banner.ok{background:color-mix(in srgb,var(--good) 12%,var(--surface));border-color:color-mix(in srgb,var(--good) 40%,transparent)}.banner.warn{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.banner.danger{background:color-mix(in srgb,var(--bad) 14%,var(--surface));border-color:color-mix(in srgb,var(--bad) 45%,transparent)}.banner .headline{display:flex;align-items:baseline;gap:10px}.banner .mode{font-size:20px;font-weight:700;letter-spacing:-.01em;text-transform:uppercase}.banner .facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px}.fact{display:grid;gap:1px}.fact .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.fact .value{font-family:var(--mono);font-size:14px}.equity-value{font-size:34px;font-weight:700;letter-spacing:-.02em;font-family:var(--mono)}.equity-delta{font-size:15px;font-family:var(--mono)}.budget{display:grid;gap:4px}.budget .row{font-size:13px}.meter{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.meter>i{display:block;height:100%;border-radius:3px;background:var(--good);transition:width .3s ease}.meter>i.warn{background:var(--warn)}.meter>i.bad{background:var(--bad)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-weight:600;border-radius:var(--radius-sm);padding:12px 14px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);cursor:pointer;width:100%}.btn:active{transform:translateY(1px)}.btn.pause{border-color:color-mix(in srgb,var(--warn) 50%,transparent);color:var(--warn)}.btn.halt{border-color:color-mix(in srgb,var(--bad) 50%,transparent);color:var(--bad)}.btn.flat{background:var(--bad);border-color:var(--bad);color:#fff}.btn.ghost{background:none}.btn:disabled{opacity:.45;cursor:not-allowed}.kill-grid{display:grid;gap:8px;grid-template-columns:1fr}@media (min-width: 520px){.kill-grid{grid-template-columns:repeat(3,1fr)}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 0 0;padding:20px var(--pad) calc(20px + env(safe-area-inset-bottom));width:100%;max-width:560px;display:grid;gap:14px;max-height:90dvh;overflow-y:auto}@media (min-width: 640px){.sheet-backdrop{align-items:center}.sheet{border-radius:16px;padding:20px var(--pad);max-height:85dvh}}.sheet h3{margin:0;font-size:18px}.sheet .consequence{background:var(--surface-2);border-left:3px solid var(--warn);padding:10px 12px;border-radius:var(--radius-sm);font-size:14px}.sheet input,.sheet textarea,.sheet select{width:100%;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:6px 10px 6px 0;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:9px 10px 9px 0;border-bottom:1px solid var(--surface-2);font-family:var(--mono);white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:active{background:var(--surface-2)}tr.stale td{color:var(--bad)}.empty{color:var(--text-faint);font-size:13px;padding:8px 0}.event{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:start;padding:7px 0;border-bottom:1px solid var(--surface-2)}.event:last-child{border-bottom:0}.dot{width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--text-faint)}.dot.info{background:var(--info)}.dot.warn{background:var(--warn)}.dot.error{background:var(--bad)}.dot.critical{background:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 30%,transparent)}.pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--line)}.pill.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent)}.pill.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.pill.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.heatmap{display:grid;gap:2px;grid-auto-flow:column;grid-template-rows:repeat(7,12px)}.heat{width:12px;height:12px;border-radius:2px;background:var(--surface-2)}.chain{display:grid;gap:0}.chain-step{position:relative;padding:10px 0 10px 22px;border-left:2px solid var(--line)}.chain-step:last-child{border-left-color:transparent}.chain-step:before{content:"";position:absolute;left:-5px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.chain-step .title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.chain-step pre{margin:6px 0 0;font-size:11px;font-family:var(--mono);background:var(--surface-2);padding:10px;border-radius:var(--radius-sm);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.check{display:flex;gap:8px;align-items:baseline;font-size:12px;padding:3px 0}.check .verdict{font-family:var(--mono)}.check.pass .verdict{color:var(--good)}.check.fail .verdict{color:var(--bad)}.filters{display:flex;gap:6px;flex-wrap:wrap}.filters button{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:12px;cursor:pointer;padding:5px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--text-dim)}.filters button[aria-pressed=true]{color:var(--bg);background:var(--accent);border-color:var(--accent)}.chart{width:100%;height:120px}.notice{font-size:13px;color:var(--text-dim);background:var(--surface-2);padding:12px;border-radius:var(--radius-sm)}.notice.alarm{color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 40%,transparent)}
