:root{--ink: #14110f;--ink-2: #3b332d;--ink-3: #7a6f66;--ink-4: #b5ab9f;--paper: #f5efe4;--paper-2: #ebe3d3;--paper-rule: #d8cdb6;--accent: #d94f2b;--accent-g: #2f7d4a;--accent-b: #2a4d8f;--accent-y: #d9a83b;--pad: 16px;--gap: 12px;--radius: 4px;--font-sketch: "Architects Daughter", cursive;--font-display: "Caveat", cursive;--font-mono: "JetBrains Mono", ui-monospace, monospace}body[data-theme=dark]{--ink: #f0e9da;--ink-2: #c9bfac;--ink-3: #8b8170;--ink-4: #4a4438;--paper: #1c1a17;--paper-2: #25221d;--paper-rule: #3a352d;--accent-g: #58c47f;--accent: #ff7a52}@media(prefers-color-scheme:dark){body:not([data-theme=paper]){color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-sketch);-webkit-font-smoothing:antialiased}body{min-height:100vh}#app{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.cockpit{display:grid;grid-template-columns:280px 1fr 320px;grid-template-rows:64px 1fr 1fr;gap:1px;background:var(--ink-2);border:1.5px solid var(--ink-2);min-height:calc(100vh - 4px)}.cockpit .cell{background:var(--paper);padding:14px 16px;position:relative;overflow:hidden}.cockpit .topstrip{grid-column:1 / 4}.cockpit .left-rail{grid-column:1;grid-row:2 / 4;overflow-y:auto}.cockpit .center-1{grid-column:2;grid-row:2}.cockpit .center-2{grid-column:2;grid-row:3}.cockpit .right-rail{grid-column:3;grid-row:2 / 4;overflow-y:auto}@media(max-width:1099px){.cockpit{grid-template-columns:240px 1fr;grid-template-rows:64px auto auto auto}.cockpit .topstrip{grid-column:1 / 3}.cockpit .left-rail{grid-column:1;grid-row:2 / 5}.cockpit .center-1{grid-column:2;grid-row:2}.cockpit .center-2{grid-column:2;grid-row:3}.cockpit .right-rail{grid-column:2;grid-row:4}}@media(max-width:767px){.cockpit{display:block;border:0;background:var(--paper);padding-bottom:calc(64px + env(safe-area-inset-bottom,0))}.cockpit .cell{border-bottom:1px dashed var(--paper-rule);padding:14px 16px}.cockpit .cell[hidden]{display:none!important}}.topstrip{display:flex;align-items:center;gap:24px;overflow-x:auto;scrollbar-width:none}.topstrip::-webkit-scrollbar{display:none}.brand{font-family:var(--font-display);font-size:28px;line-height:1;white-space:nowrap}.brand small{font-family:var(--font-sketch);font-size:12px;color:var(--ink-3);margin-left:8px}.kpi{display:flex;flex-direction:column;gap:1px;white-space:nowrap}.kpi .lbl{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-3)}.kpi .val{font-family:var(--font-mono);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.kpi .val.up{color:var(--accent-g)}.kpi .val.dn{color:var(--accent)}.kpi .val.muted{color:var(--ink-3)}.btn{font-family:var(--font-sketch);font-size:12px;padding:6px 12px;border:1.5px solid var(--ink-2);border-radius:var(--radius);background:transparent;color:var(--ink-2);cursor:pointer;min-height:32px;-webkit-tap-highlight-color:transparent}.btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.danger{border-color:var(--accent);color:var(--accent)}.btn.danger:hover{background:var(--accent);color:var(--paper)}.panel-title{font-family:var(--font-sketch);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;display:flex;align-items:center;gap:8px}.panel-title .dot{width:7px;height:7px;background:var(--ink);border-radius:50%}.panel-title .more{margin-left:auto;color:var(--ink-4);font-size:12px;letter-spacing:0}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1.5px solid var(--ink-2);border-radius:999px;font-family:var(--font-sketch);font-size:11px;letter-spacing:.5px;background:var(--paper)}.pill .d{width:6px;height:6px;border-radius:50%;background:var(--ink-3)}.pill.run{border-color:var(--accent-g);color:var(--accent-g)}.pill.run .d{background:var(--accent-g);animation:blink 1.6s infinite}.pill.pause{border-color:var(--accent-y);color:var(--accent-y)}.pill.pause .d{background:var(--accent-y)}.pill.block{border-color:var(--accent);color:var(--accent)}.pill.block .d{background:var(--accent)}.pill.gated{border-color:var(--ink-3);color:var(--ink-3)}.pill.gated .d{background:var(--ink-3)}.pill.compr{border-color:var(--accent-y);color:var(--accent-y)}.pill.compr .d{background:var(--accent-y);animation:blink 1.6s infinite}.pill.rng{border-color:var(--ink-2);color:var(--ink-2)}.pill.rng .d{background:var(--ink-2);animation:blink 1.6s infinite}@keyframes blink{50%{opacity:.3}}.rg-pref{display:inline-block;margin-left:6px;padding:1px 6px;font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--ink-3);border:1px dashed var(--ink-3);border-radius:3px;vertical-align:1px;text-transform:uppercase;letter-spacing:.5px}.rg-body{display:flex;flex-direction:column;gap:6px;margin-top:8px}.rg-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rg-allowed{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.rg-detail{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);opacity:.8;word-break:break-word}.rail-agent{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--paper-rule);cursor:pointer;min-height:44px;-webkit-tap-highlight-color:transparent}.rail-agent:last-child{border-bottom:0}.rail-agent.sel{background:var(--paper-2);margin:0 -16px;padding-left:16px;padding-right:16px}.rail-agent .n{font-family:var(--font-display);font-size:20px;line-height:1}.rail-agent .p{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.rail-agent .v{font-family:var(--font-mono);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.row{display:grid;align-items:center;padding:8px 0;border-bottom:1px dashed var(--paper-rule);font-family:var(--font-mono);font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.row.head{color:var(--ink-3);font-size:10px;text-transform:uppercase;letter-spacing:1px}.row:last-child{border-bottom:0}.row .buy{color:var(--accent-g)}.row .sell{color:var(--accent)}.row .up{color:var(--accent-g)}.row .dn{color:var(--accent)}.cell hr{border:0;border-top:1px dashed var(--paper-rule);margin:16px 0}.svc-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;padding:4px 0;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.svc-line .status.up{color:var(--accent-g)}.svc-line .status.down{color:var(--accent)}.svc-line .status.warn{color:var(--accent-y)}.svc-line .latency{color:var(--ink-3);font-size:10.5px}.cal-line{display:grid;grid-template-columns:92px 36px 1fr auto;gap:8px;align-items:baseline;padding:3px 0;font-family:var(--font-mono);font-size:11px;color:var(--ink-2);font-variant-numeric:tabular-nums}.cal-ts{color:var(--ink-3)}.cal-ccy{color:var(--ink-1);font-weight:600}.cal-name{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-impact{font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:3px}.cal-impact.high{color:var(--accent);border:1px solid var(--accent)}.cal-impact.med{color:var(--accent-y);border:1px solid var(--accent-y)}.cal-impact.low{color:var(--ink-3);border:1px solid var(--ink-4)}.placeholder{padding:10px;font-family:var(--font-sketch);font-size:11px;color:var(--ink-3);border:1.5px dashed var(--ink-4);border-radius:var(--radius);text-align:center;background:repeating-linear-gradient(45deg,transparent 0 8px,rgba(0,0,0,.018) 8px 9px)}.conn{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px}.conn .d{width:6px;height:6px;border-radius:50%;background:var(--ink-3)}.conn.live .d{background:var(--accent-g);animation:blink 1.6s infinite}.conn.down .d{background:var(--accent)}.tabbar{display:none}@media(max-width:767px){.topstrip{padding-top:max(14px,env(safe-area-inset-top,14px))}.tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;background:var(--paper);border-top:1.5px solid var(--ink);padding:6px 0 calc(6px + env(safe-area-inset-bottom,0));z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tabbar button{background:transparent;border:0;padding:8px 4px;font-family:var(--font-sketch);font-size:11px;color:var(--ink-3);cursor:pointer;min-height:44px;-webkit-tap-highlight-color:transparent}.tabbar button.active{color:var(--ink);font-weight:700}.tabbar button.active:after{content:"";display:block;width:18px;height:2px;background:var(--ink);margin:4px auto 0;border-radius:1px}.topstrip{gap:16px;padding:10px 14px}.brand{font-size:22px}.brand small{display:none}.kpi .val{font-size:15px}.kpi .lbl{font-size:9px}}
