:root{--bg: #0f1419;--surface: #182029;--surface-2: #1f2a35;--line: #2c3a48;--text: #e6edf3;--muted: #8b9aa9;--up: #3ecf8e;--degraded: #f5b83d;--down: #f2555a;--accent: #5aa9ff;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1,h2,h3,p{margin:0}.muted{color:var(--muted);font-size:.85rem}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.topbar h1{font-size:1.1rem;font-weight:650}.status{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.is-live{background:var(--up);box-shadow:0 0 0 3px color-mix(in srgb,var(--up) 25%,transparent)}.dot.is-closed{background:var(--down)}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;text-transform:capitalize;border:1px solid currentColor}.pill.is-up{color:var(--up)}.pill.is-degraded{color:var(--degraded)}.pill.is-down{color:var(--down)}.warning{margin:10px 20px 0;padding:8px 12px;border-radius:6px;background:#3a2a10;color:var(--degraded);font-size:.85rem}.stage{flex:1;display:flex;min-height:0}.canvas{position:relative;flex:1;overflow:auto;padding:28px;display:flex;gap:88px;align-items:flex-start}.column{position:relative;z-index:1;display:flex;flex-direction:column;gap:22px;width:280px;flex-shrink:0}.leader-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:visible}.leader-lines path{fill:none;stroke-width:1.6;opacity:.75;transition:opacity .2s}.leader-lines path.is-dimmed{opacity:.12}.card{position:relative;display:block;width:100%;text-align:left;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--health);border-radius:8px;padding:0;cursor:pointer;overflow:hidden;transition:transform .12s,border-color .2s,box-shadow .2s}.card:hover{transform:translateY(-1px)}.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card.is-selected{box-shadow:0 0 0 2px var(--accent)}.card.is-down{background:color-mix(in srgb,var(--down) 12%,var(--surface))}.sparkline{display:block;width:100%;background:var(--surface-2)}.card__body{display:flex}.card__id{flex:1;padding:10px 12px;min-width:0}.card__name{display:block;font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card__host{display:block;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}.card__details{margin:8px 0 0;display:grid;gap:2px;font-size:.72rem}.card__details div{display:flex;gap:6px}.card__details dt{color:var(--muted);min-width:58px}.card__details dd{margin:0;white-space:nowrap}.card__metrics{list-style:none;margin:0;padding:0;border-left:1px solid var(--line);min-width:96px}.card__metrics li{padding:6px 10px;border-top:1px solid var(--line);white-space:nowrap}.card__metrics li:first-child{border-top:0}.card__metrics strong{display:block;font-size:.9rem;font-variant-numeric:tabular-nums}.card__metrics span{font-size:.68rem;color:var(--muted)}.card--consumer .card__metrics{min-width:118px}.card__badge{display:inline-block;margin-top:6px;font-size:.65rem;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--health) 22%,transparent);color:var(--health)}.panel{width:300px;border-left:1px solid var(--line);padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:12px;background:var(--surface)}.panel header{display:flex;justify-content:space-between;align-items:flex-start}.panel header button{background:none;border:0;color:var(--muted);font-size:1.4rem;cursor:pointer}.panel h2{font-size:1rem}.panel h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.kv{margin:0;display:grid;gap:4px;font-size:.82rem}.kv div{display:flex;justify-content:space-between;gap:12px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-variant-numeric:tabular-nums}.links{margin:0;padding-left:16px;font-size:.85rem}.links li.is-down{color:var(--down)}.links li.is-degraded{color:var(--degraded)}@media (max-width: 720px){.stage{flex-direction:column}.panel{width:auto;border-left:0;border-top:1px solid var(--line)}}
