/* Shared Gatekeeper visual system. Layout and semantic status colors stay separate. */
:root{--ui-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ui-surface:#fff;--ui-subtle:#f4f7fa;--ui-border:#d3dee8;--ui-text:#203348;--ui-muted:#596e82;--ui-hover:#eaf1f7;--ui-link:#225f88;--ui-selected:#e1edf5;--ui-radius:10px;--ui-control-radius:7px;--ui-shadow:0 2px 8px #102b4508;font-family:var(--ui-font)}
:root[data-theme="dark"]{--ui-surface:#14283d;--ui-subtle:#102236;--ui-border:#34506b;--ui-text:#e7f0fa;--ui-muted:#b5c7d9;--ui-hover:#203c56;--ui-link:#b7ddff;--ui-selected:#254b68;--ui-shadow:0 2px 8px #0002}
body,button,input,select,textarea{font-family:var(--ui-font)}
:root #workspace h1{font-size:28px;font-weight:700;letter-spacing:-.5px}
:root #workspace h2{font-size:18px;font-weight:650;letter-spacing:-.2px}
:root #workspace h3{font-weight:600;letter-spacing:0}
:root #workspace .card,:root #workspace .stats article,:root #workspace .profile-section,:root #workspace .relay-overview-grid article,:root #workspace .relay-sync-details>article{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);color:var(--ui-text)}
:root #workspace .muted{color:var(--ui-muted)}
:root #workspace .card a,:root #workspace .card a:visited,:root #workspace .control-center-cards a{color:var(--ui-link)}
/* Every table uses one outer frame, header treatment, row density, and hover state. */
:root #workspace .table-wrap,:root dialog .table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);overflow:auto}
:root #workspace table,:root dialog table{border-collapse:separate;border-spacing:0;border:0;background:var(--ui-surface);color:var(--ui-text);font-size:13px}
:root #workspace table th,:root dialog table th{background:var(--ui-subtle);color:var(--ui-muted);font-size:12px;font-weight:650;text-transform:none;letter-spacing:0;line-height:1.4;padding:11px 12px;border-bottom:1px solid var(--ui-border)}
:root #workspace table td,:root dialog table td{padding:11px 12px;line-height:1.45;border-bottom:1px solid var(--ui-border);vertical-align:middle}
:root #workspace table tbody tr:last-child td,:root dialog table tbody tr:last-child td{border-bottom:0}
:root #workspace table tbody tr:hover,:root dialog table tbody tr:hover{background:var(--ui-hover)}
:root #workspace table tbody tr:hover td,:root dialog table tbody tr:hover td{background:transparent}
:root #workspace table th:first-child,:root dialog table th:first-child{border-top-left-radius:9px}
:root #workspace table th:last-child,:root dialog table th:last-child{border-top-right-radius:9px}
:root #workspace table tbody tr:last-child td:first-child,:root dialog table tbody tr:last-child td:first-child{border-bottom-left-radius:9px}
:root #workspace table tbody tr:last-child td:last-child,:root dialog table tbody tr:last-child td:last-child{border-bottom-right-radius:9px}
:root #workspace button,:root dialog button{font-size:13px;line-height:1.35;font-weight:600;border-radius:var(--ui-control-radius)}
:root #workspace input:not([type=checkbox]):not([type=radio]),:root #workspace select,:root #workspace textarea,:root dialog input:not([type=checkbox]):not([type=radio]),:root dialog select,:root dialog textarea{font-size:13px;line-height:1.4;border-radius:var(--ui-control-radius);border-color:var(--ui-border);background:var(--ui-surface);color:var(--ui-text)}
:root dialog:not(#system-topology-dialog){border-radius:var(--ui-radius);border:1px solid var(--ui-border);background:var(--ui-surface);color:var(--ui-text)}
:root #workspace :is(button,a,input,select,summary):focus-visible,:root dialog :is(button,a,input,select):focus-visible{outline:2px solid var(--ui-link);outline-offset:2px}
/* Bordered groups and button-shaped navigation items use the same visual rhythm. */
:root .section-nav .nav-group{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-subtle);margin:3px 0;overflow:hidden;flex-shrink:0}
:root .section-nav .nav-group>summary{border-radius:0;padding:10px 11px;font-size:12px;letter-spacing:.025em;color:var(--ui-text)}
:root .section-nav .nav-group[open]>summary{border-bottom:1px solid var(--ui-border)}
:root .section-nav .nav-group>div{gap:4px;padding:6px}
:root .section-nav a{border:1px solid transparent;border-radius:var(--ui-control-radius);padding:9px 10px;font-size:12px;line-height:1.35;color:var(--ui-text);background:transparent}
:root .section-nav .nav-group a{background:var(--ui-surface);border-color:var(--ui-border)}
:root .section-nav a:hover,:root .section-nav summary:hover{background:var(--ui-hover)}
:root .section-nav a[aria-current="page"]{background:var(--ui-selected);color:var(--ui-text);border-color:var(--ui-link);box-shadow:inset 3px 0 var(--ui-link)}
:root .section-nav .nav-icon{width:19px;height:19px}
:root .section-nav #logout{border:1px solid var(--ui-border);border-radius:var(--ui-control-radius);background:var(--ui-subtle);color:var(--ui-text);justify-content:center;font-size:13px;padding:10px}
:root .section-nav #logout:hover{background:var(--ui-hover)}
:root .section-nav summary::after{content:'\25B8'}
:root .section-nav details[open]>summary::after{content:'\25BE'}

/* Quiet navigation: hierarchy through spacing, with emphasis only on selection. */
:root .section-nav .nav-group{border:0;background:transparent;border-radius:0;margin:5px 0}
:root .section-nav .nav-group[open]>summary{border-bottom:0}
:root .section-nav .nav-group>summary{color:var(--ui-muted);border-radius:var(--ui-control-radius);padding:9px 10px}
:root .section-nav .nav-group>div{padding:2px 0 4px;gap:3px}
:root .section-nav .nav-group a{background:transparent;border-color:transparent}
:root .section-nav a:hover,:root .section-nav .nav-group a:hover,:root .section-nav summary:hover{background:var(--ui-hover)}
:root .section-nav a[aria-current="page"],:root .section-nav .nav-group a[aria-current="page"]{background:var(--ui-selected);border-color:transparent;color:var(--ui-text);box-shadow:inset 3px 0 var(--ui-link)}

/* Slim header; one visual boundary on group headings, not every link. */
body:has(#workspace:not([hidden]))>header{height:48px;min-height:48px;padding:6px 20px;gap:12px}
body:has(#workspace:not([hidden]))>header .brand{font-size:19px;gap:8px}
body:has(#workspace:not([hidden]))>header .brand svg{width:28px;height:28px}
body:has(#workspace:not([hidden]))>header .brand span{font-size:14px}
body:has(#workspace:not([hidden]))>header .brand small{font-size:10px;margin-top:1px}
body:has(#workspace:not([hidden]))>header .health-chip{font-size:11px;padding:4px 8px}
body:has(#workspace:not([hidden]))>header #identity{font-size:12px}
@media(min-width:761px){.section-nav{top:48px;padding-top:12px}}
:root .section-nav .nav-group>summary,:root .section-nav .nav-group[open]>summary{background:var(--ui-subtle);border:1px solid var(--ui-border);border-radius:var(--ui-control-radius);color:var(--ui-text);padding:9px 10px;letter-spacing:.02em}
:root .section-nav .nav-group>summary:hover{background:var(--ui-hover)}
:root .section-nav .nav-group>div{margin:5px 0 3px 9px;padding:0 0 0 7px;border-left:1px solid var(--ui-border)}
@media(max-width:760px){body:has(#workspace:not([hidden]))>header{height:auto;min-height:48px;padding:6px 12px;gap:6px}body:has(#workspace:not([hidden]))>header #identity{font-size:11px}}
/* Gatekeeper access portal: the same surfaces and cyan identity as the console. */
body:has(#login:not([hidden])){min-height:100dvh;background:radial-gradient(ellipse at 15% 15%,#16384b 0,transparent 48%),radial-gradient(ellipse at 90% 85%,#122d40 0,transparent 50%),#07131f;color:#eaf4ff}
body:has(#login:not([hidden]))>main{max-width:1120px;min-height:calc(100dvh - 64px);margin:0 auto;padding:48px 32px;display:grid;align-content:center}
:root #login.control-login{display:grid;grid-template-columns:1.15fr 1fr;max-width:none;width:100%;margin:0;padding:0;border:1px solid #355167;border-radius:18px;background:#0d1e2e;box-shadow:0 32px 100px #0006;overflow:hidden;color:#eaf4ff}
#login .login-command{position:relative;padding:40px;background:linear-gradient(145deg,#15344888,#0a1b2d);border-right:1px solid #2b465a;overflow:hidden}
#login .login-command::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#6da7b009 1px,transparent 1px),linear-gradient(90deg,#6da7b009 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
#login .login-brand{position:relative;margin:0 0 50px;gap:14px}
#login .login-brand svg{width:54px;height:54px}
#login .login-brand strong{font-size:25px;color:#edf8ff;letter-spacing:-.6px}
#login .login-brand span{color:#89c9d2;font-size:10px;font-weight:650;letter-spacing:3px;margin-top:5px}
#login .login-command-copy{position:relative}
#login .login-kicker{font-size:10px;color:#8ae5dc;font-weight:650;letter-spacing:2px;margin:0 0 16px}
#login .login-command-copy h2{font-size:42px;line-height:1.12;letter-spacing:-1.5px;font-weight:650;color:#edf8ff;margin:0 0 18px}
#login .login-command-copy>p:last-child{font-size:14px;line-height:1.7;color:#aec4d6;max-width:340px;margin:0}
#login .login-network{position:relative;margin:22px 0 20px}
#login .login-network svg{display:block;width:100%;height:160px}
#login .login-network>span{display:block;text-align:center;font-size:8px;letter-spacing:2px;color:#87a7bd;margin-top:4px}
#login .login-capabilities{position:relative;display:flex;gap:18px;flex-wrap:wrap;font-size:8px;font-weight:650;letter-spacing:1px;color:#87a7bd;border-top:1px solid #2a4355;padding-top:20px}
#login .login-access{display:flex;flex-direction:column;justify-content:center;padding:48px 42px}
#login .login-access-label{font-size:10px;letter-spacing:1.8px;font-weight:650;color:#8be3da;margin:0 0 30px}
#login .login-access-label span{font-size:17px;vertical-align:middle;margin-right:6px}
:root #login h1{font-size:29px;letter-spacing:-.8px;line-height:1.2;margin:0 0 12px;color:#edf8ff}
#login .login-instruction{font-size:14px;line-height:1.65;color:#afc4d6;margin:0 0 26px}
#login label{font-size:12px;color:#ccdeed;margin:0 0 18px;font-weight:550}
:root #login input{background:#091724;color:#f0f8ff;border:1px solid #466078;border-radius:8px;padding:14px;margin-top:9px;font-size:16px;box-shadow:inset 0 1px 4px #0002}
:root #login input:focus{border-color:#83e6dc;outline:2px solid #83e6dc44;outline-offset:2px}
:root #login .primary{display:flex;justify-content:space-between;align-items:center;width:100%;background:#193b60;color:#f1f6fc;border:1px solid #45688c;min-height:48px;border-radius:8px;font-size:13px;font-weight:700;padding:12px 16px;box-shadow:0 4px 14px #0003}
:root #login .primary:hover{background:#244d77;border-color:#6287ac}
:root #login #forgot-password{color:#b4d8ec;font-size:12px;font-weight:500;margin:18px 0 0;padding:8px;align-self:center;text-underline-offset:4px;background:transparent;border:0}
#login .login-access-note{font-size:11px;line-height:1.6;color:#8eaabd;margin:42px 0 0;padding-top:18px;border-top:1px solid #2b4356}
:root #login #login-error{background:#3b2430;color:#ffd0cd;border-color:#9c5b64;font-size:13px}
body:has(#login:not([hidden]))>footer{margin:0;padding:12px 24px 20px;color:#829bad;font-size:11px}
@media(max-width:760px){body:has(#login:not([hidden]))>main{padding:24px 18px;min-height:calc(100dvh - 64px)}:root #login.control-login{grid-template-columns:1fr;max-width:460px;margin:0 auto}#login .login-command{padding:24px;border-right:0;border-bottom:1px solid #2b465a}#login .login-brand{margin:0}#login .login-brand svg{width:42px;height:42px}#login .login-command-copy,#login .login-network,#login .login-capabilities{display:none}#login .login-access{padding:28px 24px}#login .login-access-label{margin-bottom:22px}#login .login-access-note{margin-top:28px}:root #login h1{font-size:26px}}

body:has(#password-recovery:not([hidden])) #login.control-login,body:has(#email-verification:not([hidden])) #login.control-login{display:none!important}

/* Command-center dashboard: compact instrumentation, shared navy actions. */
:root #workspace:has(.ecosystem-overview:not([hidden])) [data-page="dashboard"] h2{font-size:14px;font-weight:650;letter-spacing:.025em}
:root #workspace .control-center-cards article,:root #workspace .performance-cards article{position:relative;border:1px solid var(--ui-border);border-radius:10px;box-shadow:0 4px 14px #07132108;transition:border-color .2s,box-shadow .2s}
:root #workspace .control-center-cards article:hover,:root #workspace .performance-cards article:hover{border-color:#6484a3;box-shadow:0 6px 20px #07132112}
:root #workspace .control-center-cards .cc-icon{padding:7px;width:36px;height:36px;border-radius:9px;background:#e5edf6;color:#355b83;border:1px solid #ccd9e7}
:root #workspace .control-center-cards .cc-count{font-size:32px;font-weight:650;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1.15}
:root #workspace .control-center-cards h3{font-size:12px;line-height:1.45;font-weight:600}
:root #workspace .control-center-cards .cc-detail{font-size:11px;line-height:1.5}
:root #workspace .control-center-cards a,:root #workspace .control-center-cards button{font-size:11px;font-weight:600;text-decoration:none}
:root #workspace .performance-cards>article>p:first-child{font-size:11px;letter-spacing:.13em;font-weight:700;text-transform:uppercase;border-bottom:1px solid var(--ui-border);padding-bottom:10px;margin-bottom:16px;min-height:0}
:root #workspace .performance-cards strong{font-variant-numeric:tabular-nums;letter-spacing:-.7px}
:root #workspace .performance-specs{font-size:11px;line-height:1.6}
:root #workspace .performance-specs dd{font-variant-numeric:tabular-nums}
:root #workspace .gauge-fill{transition:stroke-dashoffset .65s ease;stroke:#5e9dc4}
:root #workspace .ram-segments span{transition:background-color .4s}
:root #workspace .ram-segments .filled{background:#5e9dc4}
:root #workspace #network-graph{border-radius:6px;background:repeating-linear-gradient(0deg,transparent,transparent 24px,#7b9ab00c 25px)}
:root #workspace #control-center-observed{display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:.015em}
#control-center-observed::before{content:'';width:6px;height:6px;flex:none;border-radius:50%;background:currentColor;opacity:.6}
#control-center-observed[data-refresh="received"]::before{animation:telemetry-arrived 1s ease-out 1}
#control-center-observed[data-refresh="failed"]{color:#ba6538}
@keyframes telemetry-arrived{0%{box-shadow:0 0 0 0 #77a9d077;opacity:1}100%{box-shadow:0 0 0 7px #77a9d000;opacity:.6}}
:root #workspace #show-system-topology,:root #workspace [data-page="dashboard"] button:not(.link-button){background:#193b60;color:#f1f6fc;border:1px solid #45688c}
:root #workspace #show-system-topology:hover,:root #workspace [data-page="dashboard"] button:not(.link-button):hover{background:#244d77}
:root[data-theme="dark"] body:has(#workspace:not([hidden])){background:#091421}
:root[data-theme="dark"] #workspace .control-center-cards article,:root[data-theme="dark"] #workspace .performance-cards article{background:linear-gradient(145deg,#14273c,#101f30);border-color:#2e455e;box-shadow:0 5px 20px #0002}
:root[data-theme="dark"] #workspace .control-center-cards .cc-icon{background:#1c3550;color:#a6c8e9;border-color:#35516d}
:root[data-theme="dark"] #workspace .control-center-cards .cc-count,:root[data-theme="dark"] #workspace .performance-cards strong{color:#edf5ff}
:root[data-theme="dark"] #workspace .performance-cards>article>p:first-child{color:#a9c0d8;border-color:#2e455e}
:root[data-theme="dark"] #workspace .dashboard-service-card{background:#101f30;border-color:#2e455e}
:root[data-theme="dark"] #workspace .control-center-cards a{color:#afcfef}
:root[data-theme="dark"] #workspace #control-center-observed{color:#a3bad1}
:root[data-theme="dark"] #workspace #control-center-observed[data-refresh="failed"]{color:#ffc18f}
@media(prefers-reduced-motion:reduce){#control-center-observed[data-refresh="received"]::before{animation:none}:root #workspace .gauge-fill,:root #workspace .ram-segments span,:root #workspace .control-center-cards article,:root #workspace .performance-cards article{transition:none}}

/* Double the dashboard CPU instrument while keeping the reading centered. */
:root #workspace [data-page="dashboard"] .performance-cards article:first-child{grid-template-columns:96px minmax(0,1fr)}
:root #workspace [data-page="dashboard"] .cpu-gauge{width:96px;height:96px}
:root #workspace [data-page="dashboard"] .cpu-gauge strong{top:50%;transform:translateY(-50%);font-size:22px;line-height:1.2}

/* Concurrent administrator presence and management. */
#admin-presence{display:flex;gap:6px;align-items:center;max-width:38vw;overflow-x:auto;margin-left:auto;padding:3px 0;white-space:nowrap}
.admin-presence-person{font-size:11px;background:#193b60;color:#edf5ff;border:1px solid #45688c;border-radius:16px;padding:5px 9px}
body:has(#workspace:not([hidden]))>header #identity{margin-left:auto;font-size:10px}
#admin-account-dialog,#admin-access-dialog{width:min(620px,94vw);max-height:90dvh;overflow:auto}
.admin-row-actions{min-width:180px}.admin-row-actions button{margin:3px}
.admin-weekdays{display:flex;flex-wrap:wrap;gap:12px}.admin-weekdays label{display:flex;align-items:center;gap:5px}.admin-weekdays input{width:auto;margin:0}
#admin-account-error,#admin-access-error{color:#c34a40} :root[data-theme="dark"] #admin-account-error,:root[data-theme="dark"] #admin-access-error{color:#ffb6ac}
#admin-setup-link{font-size:12px}body:has(#login:not([hidden])) #admin-presence{display:none!important}
@media(max-width:900px){body:has(#workspace:not([hidden]))>header #identity{display:none}#admin-presence{max-width:45vw}}

/* Compact service meters sit within the header; administrator and uptime stay together. */
body:has(#workspace:not([hidden]))>header .operator-health{gap:5px;margin-left:auto;margin-right:0;flex-wrap:nowrap;min-width:0}
body:has(#workspace:not([hidden]))>header .health-chip,
:root body:has(#workspace:not([hidden]))>header .health-chip.healthy{display:inline-flex;align-items:center;gap:6px;border:0!important;border-radius:5px;padding:4px 6px;background:transparent!important;color:#dce8f2!important;font-size:11px;font-weight:550;box-shadow:none!important}
body:has(#workspace:not([hidden]))>header .health-chip:hover{background:rgba(255,255,255,.09)!important}
body:has(#workspace:not([hidden]))>header .health-chip::before{content:'';width:6px;height:6px;flex:0 0 6px;margin:0;border-radius:50%;background:#95a9ba}
body:has(#workspace:not([hidden]))>header .health-chip.healthy::before{background:#4ade80}
body:has(#workspace:not([hidden]))>header .health-chip.degraded::before{background:#f5b44e}
body:has(#workspace:not([hidden]))>header .health-chip.failed::before{background:#ff7878}
body:has(#workspace:not([hidden]))>header .header-identity{display:flex;align-items:center;gap:10px;min-width:0;flex-shrink:0}
body:has(#workspace:not([hidden]))>header .header-identity #admin-presence{margin-left:0;max-width:28vw}
body:has(#workspace:not([hidden]))>header .header-identity #identity{margin-left:0;white-space:nowrap;color:#aebfd0}
@media(max-width:1180px){body:has(#workspace:not([hidden]))>header .operator-health{overflow-x:auto}body:has(#workspace:not([hidden]))>header .header-identity #admin-presence{max-width:22vw}}

/* Center the CPU instrument in the available card body below its heading. */
:root #workspace [data-page="dashboard"] .performance-cards article:first-child{grid-template-rows:auto minmax(96px,1fr);align-content:stretch}
:root #workspace [data-page="dashboard"] .cpu-gauge{align-self:center;margin:0}

#session-warning{width:min(460px,92vw);padding:28px}#session-warning .session-countdown-line{display:flex;align-items:baseline;gap:10px;color:var(--ui-muted)}#session-countdown{font-size:40px;font-variant-numeric:tabular-nums;color:var(--ui-text)}#session-warning #session-stay{background:#193b60;color:#f1f6fc;border:1px solid #45688c}#session-warning-error{color:#c34a40}:root[data-theme="dark"] #session-warning-error{color:#ffb6ac}

/* Compact relay operator control panel. */
:root #router-dialog{width:min(1180px,96vw);max-width:96vw;max-height:94vh;padding:20px;}
:root #router-dialog h2{margin:0 0 12px;font-size:22px;}
:root #relay-performance .performance-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
:root #relay-performance .performance-cards article{padding:12px;min-height:0;}
:root #relay-performance .performance-cards strong{font-size:23px;}
:root #relay-performance .performance-cards p{margin:4px 0;font-size:12px;}
:root #relay-overview-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;}
:root #relay-overview-summary article{padding:12px;min-width:0;}
:root #relay-overview-summary h3{font-size:14px;margin:0 0 10px;}
:root #relay-overview-summary .performance-specs{font-size:12px;gap:6px 12px;margin:0;}
:root #relay-overview-summary dd{overflow-wrap:anywhere;}
:root .relay-control-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;background:var(--surface-2,#14243a);border:1px solid var(--border,#30425a);border-radius:10px;}
:root .relay-control-bar p{margin:5px 0 0;font-size:12px;max-width:620px;}
:root .relay-control-bar .profile-actions{flex-wrap:nowrap;margin:0;gap:8px;}
:root .relay-admin-link{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:10px;font-size:12px;}
:root .relay-admin-link a{overflow-wrap:anywhere;min-width:0;}
:root #relay-control-dialog{width:min(480px,92vw);}
:root #relay-control-dialog p{line-height:1.5;}
@media(max-width:760px){:root #relay-performance .performance-cards,:root #relay-overview-summary{grid-template-columns:repeat(2,minmax(0,1fr));}:root .relay-control-bar{align-items:stretch;flex-direction:column;}:root .relay-admin-link{align-items:flex-start;flex-direction:column;}}
@media(max-width:480px){:root #relay-overview-summary{grid-template-columns:1fr;}}

:root #relay-control-state{color:#f4f7fc!important;}:root #relay-control-detail{color:#c6d3e5!important;}:root #relay-overview-summary .performance-specs dt,:root #relay-overview-summary .performance-specs dd{padding:3px 0!important;margin:0!important;line-height:1.35;}:root #relay-performance{margin:10px 0;}:root #relay-overview-summary article{align-self:stretch;}

/* Slim relay resource strip. */
:root #relay-performance .heading{margin:0 0 6px;align-items:center;}:root #relay-performance .heading h3{font-size:13px;margin:0;}:root #relay-performance-time{font-size:11px;}
:root #relay-performance .performance-cards{gap:8px;margin:0;}
:root #relay-performance .performance-cards article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:9px 11px;align-content:start;min-height:0;}
:root #relay-performance .performance-cards article>p:first-child{grid-column:1;grid-row:1;align-self:center;font-size:10px;letter-spacing:.06em;border:0;padding:0;margin:0;}
:root #relay-performance .performance-cards article>strong{grid-column:2;grid-row:1;font-size:18px;line-height:1.2;margin:0;white-space:nowrap;}
:root #relay-performance .performance-cards article>progress{grid-column:1/-1;width:100%;height:3px;margin:0;}
:root #relay-performance .performance-cards article>p.muted{grid-column:1/-1;font-size:10px;line-height:1.3;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Shared healthy/online badge across all operator views. */
:root{--status-green:#4ade80;--status-green-border:#22c55e;--status-green-text:#092b18;}
:root .badge.result-success,:root .router-status-active,:root .health-chip.healthy,:root .service-state.healthy,:root .relay-admission-badge.enabled,:root #relay-control-state.router-status-active{background:var(--status-green)!important;color:var(--status-green-text)!important;border:1px solid var(--status-green-border)!important;opacity:1;}
:root .service-state.healthy{display:inline-block;padding:3px 8px;border-radius:6px;}
:root #relay-control-state{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;font-size:12px;}

:root[data-theme="dark"] #router-dialog .relay-admin-link a,:root[data-theme="dark"] #router-dialog .relay-admin-link a:visited{color:#ffffff!important;text-decoration:underline;text-underline-offset:3px;}

:root .router-status-suspended,:root #relay-control-state.router-status-suspended{background:#a46a32!important;color:#ffffff!important;border:1px solid #c18b54!important;opacity:1;}
:root .router-status-blocked,:root #relay-control-state.router-status-blocked{background:#dc2626!important;color:#ffffff!important;border:1px solid #ef4444!important;opacity:1;}

/* Reboot progress is indeterminate until a new machine boot is confirmed. */
.relay-reboot-progress{display:inline-flex;align-items:center;gap:6px}.relay-reboot-progress::before{content:"";width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:relay-reboot-spin 1s linear infinite}@keyframes relay-reboot-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.relay-reboot-progress::before{animation:none}}

:root .router-status-rebooting,:root #relay-control-state.router-status-rebooting{background:#fbbf24!important;color:#302000!important;border:1px solid #f59e0b!important;opacity:1;}
/* Status badges use dark ink on light amber surfaces in both themes. */
:root .router-status-pending,:root #relay-control-state.router-status-pending{background:#fcd987!important;color:#3d2700!important;border:1px solid #c58a18!important;opacity:1;}
:root .router-status-attention,:root #relay-control-state.router-status-attention{background:#fdba74!important;color:#431407!important;border:1px solid #ea580c!important;opacity:1;}

.auth-loading{min-height:calc(100dvh - 80px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:24px;color:var(--ui-text)}.auth-loading strong{font-size:20px}.auth-loading p{margin:0;color:var(--ui-muted)}.auth-loading button{margin-top:12px}

/* Compact actions for each Chat Service Domain Name. */
:root .domain-actions-trigger{width:32px;min-width:32px;height:30px;padding:0;border-radius:8px;font-size:21px;line-height:1;display:inline-flex;align-items:center;justify-content:center;}
