/* Fleet-wide dashboard stylesheet — every page links it via templates/base.html so
   styling changes land everywhere without per-page tuning. Strict ops console:
   neutral tokens (light/dark), hairlines, colour only for status; self-contained. */
:root{color-scheme:light dark;--bg:#fbfbfa;--fg:#1b1d1f;--muted:#6b7075;--line:#e2e3e5;
--surface:#f1f2f3;--accent:#2457c5;--ok:#1a7f37;--warn:#9a6700;--bad:#c62828;--unk:#8a8f94;
--warn-bg:#fff7e0;--bad-bg:#fdf0f0;--log-bg:#111315;--log-fg:#d8dadc}
@media (prefers-color-scheme:dark){:root{--bg:#111315;--fg:#e4e6e8;--muted:#8d949a;
--line:#2a2e32;--surface:#1a1d20;--accent:#7aa5ff;--ok:#3fb950;--warn:#d29922;--bad:#f06b68;
--unk:#7d858c;--warn-bg:#2a2110;--bad-bg:#2a1516;--log-bg:#0a0b0c;--log-fg:#d0d3d6}}
*{box-sizing:border-box}
body{margin:0 auto;max-width:72rem;padding:0 16px 32px;background:var(--bg);color:var(--fg);
font:14px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit;font-size:13px;color:var(--fg);background:transparent;
border:1px solid var(--line);border-radius:3px;padding:2px 10px;cursor:pointer}
button:hover{border-color:var(--muted)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
form{margin:0}
.m,.top .host,.sum,#svc label,#status,#log{font-family:ui-monospace,SFMono-Regular,Menlo,
Consolas,monospace;font-variant-numeric:tabular-nums}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:12px 0;
margin-bottom:16px;border-bottom:1px solid var(--line)}
.top .brand{font-weight:600}
.top .host{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.top nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-left:auto}
.top nav a{color:var(--muted)}
.top nav a[aria-current=page]{color:var(--fg);font-weight:600}
h2{margin:24px 0 8px;font-size:11px;font-weight:600;letter-spacing:.06em;
text-transform:uppercase;color:var(--muted)}
.sum{margin:0 0 12px;font-size:13px}
.notice{margin:12px 0;padding:6px 10px;border-left:3px solid var(--warn);
background:var(--warn-bg);font-size:13px}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:3px}
table{width:100%;border-collapse:collapse}
th,td{padding:6px 10px;text-align:left;vertical-align:baseline;white-space:nowrap;
border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
th{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
color:var(--muted);background:var(--surface)}
td.m{font-size:12.5px}
td.wrap{white-space:normal;min-width:14rem}
td.ua{max-width:22rem;overflow:hidden;text-overflow:ellipsis}
td.lim{width:1%}
.num{text-align:right}
.dot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;
background:currentColor}
.ok{color:var(--ok)}
.warn{color:var(--warn)}
.bad{color:var(--bad)}
.unk{color:var(--unk)}
.mut,tr.off td{color:var(--muted)}
tr.down td{background:var(--bad-bg)}
#svc{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
#svc label{position:relative;padding:3px 10px;border:1px solid var(--line);border-radius:3px;
font-size:12.5px;color:var(--muted);cursor:pointer;overflow-wrap:anywhere}
#svc label:hover{border-color:var(--muted)}
#svc label:has(input:checked){border-color:var(--accent);color:var(--fg);background:var(--surface)}
#svc label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
#svc input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;
overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
#status{margin:8px 0;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
#log{margin:0;padding:12px;border-radius:3px;background:var(--log-bg);color:var(--log-fg);
font-size:12px;line-height:1.4;max-height:70vh;overflow:auto;white-space:pre-wrap;
word-break:break-all}
