:root{color-scheme:light;
--bg:#f6f7f9;--surface:#fff;--surface-2:#f2f4f7;--surface-3:#e9ecf1;--seg:#eceef2;--seg-on:#fff;
--border:#e4e7ec;--border-strong:#d0d5dd;
--text:#101828;--text-2:#344054;--muted:#667085;
--accent:#4f46e5;--accent-hover:#4338ca;--accent-fg:#fff;--accent-soft:#eef0ff;--accent-text:#4338ca;--focus:#6366f1;
--ok:#067647;--ok-bg:#ecfdf3;--ok-bd:#abefc6;
--warn:#b54708;--warn-bg:#fffaeb;--warn-bd:#fedf89;
--bad:#b42318;--bad-bg:#fef3f2;--bad-bd:#fecdca;--bad-solid:#d92d20;
--info:#3538cd;--info-bg:#eef4ff;--info-bd:#c7d7fe;
--neutral-bg:#f2f4f7;--neutral-bd:#e4e7ec;
--shadow-sm:0 1px 2px rgba(16,24,40,.05);--shadow-seg:0 1px 2px rgba(16,24,40,.12);
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;
--r-sm:6px;--r:8px;--r-lg:12px;--r-full:999px;
--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:26px;
--font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
--maxw:1120px}
@media (prefers-color-scheme:dark){:root{color-scheme:dark;
--bg:#0c0e12;--surface:#14171c;--surface-2:#1a1e25;--surface-3:#232831;--seg:#1a1e25;--seg-on:#2a303a;
--border:#262b33;--border-strong:#383e49;
--text:#f0f2f5;--text-2:#c4cad4;--muted:#8e97a5;
--accent:#5b52e8;--accent-hover:#6c64ef;--accent-fg:#fff;--accent-soft:#1e1f45;--accent-text:#a5b4fc;--focus:#818cf8;
--ok:#75e0a7;--ok-bg:#0b2a1c;--ok-bd:#165c3a;
--warn:#fdb022;--warn-bg:#2b1d05;--warn-bd:#5c3d0a;
--bad:#fda29b;--bad-bg:#2d1110;--bad-bd:#6a1f1a;--bad-solid:#d92d20;
--info:#a4bcfd;--info-bg:#151c3d;--info-bd:#2d3a7a;
--neutral-bg:#1f242c;--neutral-bd:#2c323c;
--shadow-sm:none;--shadow-seg:0 1px 2px rgba(0,0,0,.4)}}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:var(--fs-base)/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--accent-text);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1{font-size:var(--fs-xl);line-height:1.25;font-weight:650;letter-spacing:-.015em;margin:0}
h2{font-size:var(--fs-md);line-height:1.3;font-weight:600;margin:0}
p{margin:0 0 var(--sp-3)}
code{font:12.5px/1.5 var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;overflow-wrap:anywhere}
.muted{color:var(--muted)}
.hi{color:var(--bad);font-weight:600}
.ok{color:var(--ok)}
.top{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--border)}
.top-in{max-width:var(--maxw);margin:0 auto;padding:var(--sp-2) var(--sp-4);min-height:56px;display:flex;align-items:center;gap:var(--sp-2) var(--sp-4);flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:var(--fs-md);color:var(--text);margin-right:auto;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand small{font-size:var(--fs-sm);font-weight:500;color:var(--muted)}
.logo{display:block;flex:none;width:30px;height:30px}
.topnav{display:flex;align-items:center;gap:2px}
.topnav a{display:flex;align-items:center;min-height:32px;padding:0 10px;border-radius:var(--r);color:var(--text-2);font-size:var(--fs-sm);font-weight:500}
.topnav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}
.user{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-2)}
.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);font-weight:650}
main{max-width:var(--maxw);margin:0 auto;padding:var(--sp-5) var(--sp-4) var(--sp-7)}
main.wide,body:has(main.wide) .top-in{max-width:1440px}
.ph{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3);margin:0 0 var(--sp-4)}
.ph .sub{margin:var(--sp-1) 0 0;color:var(--muted);font-size:var(--fs-sm)}
.ph .tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:var(--sp-2)}
.crumbs{margin:0 0 6px;font-size:var(--fs-sm);color:var(--muted)}
.crumbs a{color:var(--muted)}
nav.tabs{display:flex;gap:2px;width:max-content;max-width:100%;margin:0 0 var(--sp-4);padding:3px;background:var(--seg);border:1px solid var(--border);border-radius:10px;overflow-x:auto;scrollbar-width:none}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs a{flex:none;display:flex;align-items:center;min-height:30px;padding:0 12px;border-radius:7px;color:var(--text-2);font-size:var(--fs-sm);font-weight:500;white-space:nowrap}
nav.tabs a:hover{color:var(--text);text-decoration:none}
nav.tabs a.on{background:var(--seg-on);color:var(--text);box-shadow:var(--shadow-seg)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);margin:0 0 var(--sp-4);overflow:hidden}
.card-h{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}
.card-h .muted{font-size:var(--fs-xs)}
.card-b{padding:var(--sp-4)}
.card-b>:last-child{margin-bottom:0}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3);margin:0 0 var(--sp-4)}
.metric{min-width:0;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.metric .k{font-size:var(--fs-xs);font-weight:500;color:var(--muted)}
.metric .v{margin-top:2px;font-size:var(--fs-2xl);font-weight:650;line-height:1.25;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
th{padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--muted);font-size:var(--fs-xs);font-weight:600;text-align:left;white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
th:first-child,td:first-child{padding-left:var(--sp-4)}
th:last-child,td:last-child{padding-right:var(--sp-4)}
tbody tr:last-child>td{border-bottom:0}
.ts{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.pill{display:inline-flex;align-items:center;min-height:22px;padding:0 9px;border-radius:var(--r-full);border:1px solid var(--neutral-bd);background:var(--neutral-bg);color:var(--text-2);font-size:var(--fs-xs);font-weight:500;white-space:nowrap}
.pill.ok{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok)}
.pill.bad{background:var(--bad-bg);border-color:var(--bad-bd);color:var(--bad)}
.pill.warn{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--warn)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:500 var(--fs-sm)/1 var(--font);cursor:pointer}
.btn:hover{background:var(--surface-2)}
.btn:disabled{opacity:.55;cursor:default}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn.primary:hover{background:var(--accent-hover)}
.btn.danger{color:var(--bad);border-color:var(--bad-bd);background:var(--bad-bg)}
.btn.sm{min-height:28px;padding:0 10px;font-size:var(--fs-xs)}
input[type=text],input[type=password]{min-height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface);color:var(--text);font:var(--fs-base) var(--font);max-width:100%}
label.f{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);font-weight:500;color:var(--muted)}
.row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3)}
.err{margin:var(--sp-3) 0 0;color:var(--bad);font-size:var(--fs-sm)}
.okmsg{margin:var(--sp-3) 0 0;color:var(--ok);font-size:var(--fs-sm)}
.center{max-width:420px;margin:12vh auto 0;padding:0 var(--sp-4)}
.center .card-b{display:flex;flex-direction:column;gap:var(--sp-3)}
.soon{margin:0;padding-left:var(--sp-5);color:var(--text-2)}
.soon li{margin:2px 0}
@media (max-width:720px){.user .who{display:none}.topnav{order:3;width:100%;overflow-x:auto;scrollbar-width:none}.topnav a{white-space:nowrap}main{padding-top:var(--sp-4)}}
.topnav a.on{background:var(--accent-soft);color:var(--accent-text)}
select{min-height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface);color:var(--text);font:var(--fs-base) var(--font);max-width:100%}
.vfilter{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}
td.wrap{white-space:pre-wrap;overflow-wrap:anywhere;min-width:200px}
td.bad-cell{color:var(--bad)}
pre.pgn{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:12.5px/1.5 var(--mono)}
.actions{align-items:center}.actions form.act{display:flex;align-items:center;gap:var(--sp-2)}
/* /links (10-19) */
.lk-g{margin:0 0 var(--sp-5)}
.lk-g h2{font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--sp-3)}
.lk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-3)}
.lk{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);color:var(--text);transition:border-color .15s,transform .15s}
.lk:hover{border-color:var(--accent);transform:translateY(-1px)}
.lk:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.lk-t{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-md)}
.lk-t b{margin-left:auto;font-weight:400;color:var(--muted)}
.lk:hover .lk-t b{color:var(--accent-text)}
.lk-s{color:var(--text-2);font-size:var(--fs-sm)}
.lk-h{margin-top:var(--sp-2);font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){.lk-grid{grid-template-columns:1fr}}
