
* { box-sizing:border-box } body { margin:0;background:#121212;color:#e5e5e5;font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif }
.page { width:min(100% - 48px,1080px);margin:56px auto 32px } header { margin-bottom:32px }
h1 { margin:0;font-size:28px;line-height:1.25;font-weight:600;letter-spacing:-.6px } header p,.muted,dt { color:#a3a3a3 }
h2 { margin:0 0 12px;font-size:16px;font-weight:600 } section { margin-top:32px } a { color:#b5cddf }
nav { display:flex;gap:8px;flex-wrap:wrap;margin-top:24px;align-items:center } nav form { margin-left:auto }
nav a { display:inline-flex;align-items:center;padding:9px 13px;border:1px solid #3c3c3c;border-radius:6px;background:#1b1b1b;color:#d4d4d4;text-decoration:none;line-height:1.5 }
nav a:hover,nav a[aria-current="page"] { color:#fff;background:#292929;border-color:#686868 }nav button { border-radius:6px }
.summary { display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;padding:24px 0;border-block:1px solid #333;gap:24px }
.summary>div { padding:0 24px;border-left:1px solid #333 } .summary>div:first-child { padding-left:0;border-left:0 }
dd { margin:0;font-variant-numeric:tabular-nums } .summary dd { margin-top:6px;font-size:32px;line-height:1.2;font-weight:600 }
.table-wrap { overflow-x:auto;border:1px solid #333;border-radius:4px } table { width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums }
.admin-scroll { height:clamp(400px,calc(100dvh - 270px),800px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:#555 #171717 }
.table-wrap.admin-scroll table { min-width:960px }.table-wrap.admin-scroll th { position:sticky;top:0;z-index:1 }.table-wrap.admin-scroll>.empty { margin:0;border:0 }
th,td { padding:12px 16px;white-space:nowrap } th { background:#1c1c1c;color:#b3b3b3;font-size:12px;font-weight:500 } td { border-top:1px solid #2a2a2a }
.mono { font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px }.healthy { color:#8fcaa8 }.warning { color:#dfbd78 }.danger { color:#e89a9a }
.empty,.notice { padding:20px 16px;border:1px solid #333;border-radius:4px }.empty { color:#a3a3a3 }.wrap { white-space:pre-wrap;overflow-wrap:anywhere;max-width:420px }
footer { display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:40px;padding-top:16px;border-top:1px solid #333;color:#a3a3a3;font-size:12px }footer p { margin:0 }
label { display:block;margin:16px 0 6px }input,select,textarea,button { font:inherit;color:inherit;background:#1c1c1c;border:1px solid #555;border-radius:4px;padding:9px 12px }
input,textarea { width:100%;max-width:600px } textarea { display:block;min-height:110px } button { cursor:pointer }button:hover { background:#303030 }
:focus-visible { outline:2px solid #b5cddf;outline-offset:3px }.login { max-width:400px }.login button,.actions { margin-top:20px }.inline { display:inline }
details { margin:12px 0 } summary { cursor:pointer }
.status-heading { font-size:20px;margin:32px 0 24px }.service-list { border:1px solid #333;border-radius:6px;margin:0 }
.service-list>div { display:flex;justify-content:space-between;gap:20px;padding:16px 20px }.service-list>div+div { border-top:1px solid #333 }
.service-list dt { color:#ddd }.notice+.notice { margin-top:12px }.notice h2 { margin:0 }.public-message { white-space:pre-wrap;overflow-wrap:anywhere }
.relay-list>div { align-items:center }.relay-list dt { min-width:0 }.relay-name { display:block;overflow-wrap:anywhere }
.relay-region { display:block;margin-top:3px;font-size:12px;overflow-wrap:anywhere }.relay-state { flex-shrink:0;font-size:13px }
@media(max-width:400px) { .relay-list>div { align-items:flex-start;flex-direction:column;gap:10px } }
.update+.update { border-top:1px solid #333;margin-top:16px;padding-top:12px }.update p:last-child { margin-bottom:0 }
.subheading { margin-top:24px }
.map-pool { --map-border:#333 }
.map-layout { display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start }.map-pool section { margin:0 }
.map-panel,.map-settings,.map-add,.map-confirm { border:1px solid var(--map-border);border-radius:6px;background:#171717 }
.map-panel-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--map-border) }
.map-panel-heading h2 { margin:0 }.map-panel-heading>span { font-size:12px;white-space:nowrap }
.map-card { padding:20px }.map-card+.map-card { border-top:1px solid var(--map-border) }
.map-card-heading { display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px }.map-card h3 { margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere }
.map-state { font-size:12px;white-space:nowrap }.map-fields { display:grid;grid-template-columns:1fr 1fr;gap:16px }
.map-pool .map-field { display:flex;flex-direction:column;gap:6px;margin:0;font-size:12px;color:#b3b3b3;min-width:0 }
.map-pool input:not([type=checkbox]),.map-pool select { width:100%;max-width:none;min-width:0;font-size:14px;color:#e5e5e5 }
.map-checks { display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:16px }.map-checks label { display:flex;align-items:center;gap:8px;margin:0;cursor:pointer }
.map-checks input[type=checkbox] { width:16px;height:16px;max-width:none;margin:0;padding:0;flex:0 0 16px;accent-color:#b5cddf }
.map-actions { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px }.map-actions a { font-size:12px }.map-actions button { flex-shrink:0 }
.map-sidebar { display:grid;gap:16px }.map-settings,.map-add,.map-confirm { padding:20px }.map-settings h2 { margin-bottom:16px }
.map-settings button,.map-add button { width:100% }.map-settings button { margin-top:16px }
.map-add { margin:0 }.map-add summary { font-weight:600 }.map-add[open] summary { margin-bottom:16px }.map-add .map-fields { grid-template-columns:1fr;margin-top:16px }.map-add button { margin-top:20px }
.map-empty { margin:0;padding:32px 20px }.map-confirm { max-width:600px }.map-confirm .map-actions { margin-top:24px }
@media(max-width:850px) { .map-layout { grid-template-columns:minmax(0,1fr) }.map-sidebar { grid-template-columns:1fr 1fr;align-items:start } }
@media(max-width:600px) { .map-fields,.map-sidebar { grid-template-columns:minmax(0,1fr) }.admin-scroll { height:70dvh;min-height:320px }.map-card,.map-settings,.map-add { padding:16px }.map-panel-heading { padding:14px 16px } }
@media(max-width:600px) { .page { width:calc(100% - 32px);margin-top:32px }h1 { font-size:24px }.summary>div { padding:0 12px }.summary dd { font-size:28px }th,td { padding:10px 12px } }
