:root{color-scheme:light dark;--bg:#f6f5f2;--panel:#fff;--text:#292721;--muted:#68645b;--line:#dad6cd;--accent:#875b16;--error:#a52636}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,sans-serif}.card{max-width:480px;margin:7vh auto;padding:36px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 70px #18283b12}.wide{max-width:920px}.eyebrow{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:1.5px}h1{font-size:30px;margin:12px 0}h2{font-size:21px}p,.note{color:var(--muted)}.note{font-size:13px}label{display:block;margin:18px 0;font-size:14px;font-weight:600}input,select{width:100%;padding:12px;margin-top:7px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit}button{padding:12px 18px;border:0;border-radius:8px;background:var(--accent);color:white;font:600 15px system-ui;cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--accent)}#message,.error{color:var(--error)}section{border-top:1px solid var(--line);margin-top:28px;padding-top:16px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}html[data-theme=dark]{color-scheme:dark;--bg:#151619;--panel:#202226;--text:#f0f0f2;--muted:#aeb0b8;--line:#393c43;--accent:#e5b567;--error:#ff9aab}html[data-theme=dark] button{color:#281d0a}@media(prefers-color-scheme:dark){html:not([data-theme=light]){color-scheme:dark;--bg:#151619;--panel:#202226;--text:#f0f0f2;--muted:#aeb0b8;--line:#393c43;--accent:#e5b567;--error:#ff9aab}html:not([data-theme=light]) button{color:#281d0a}}@media(max-width:520px){.card{margin:18px;padding:24px}}

.settings-sidebar{position:fixed;inset:0 auto 0 0;width:222px;padding:34px 22px;background:var(--panel);border-right:1px solid var(--line)}.settings-brand{font-size:24px;font-weight:700;text-decoration:none}.settings-brand small{font-size:10px;letter-spacing:2px}.settings-sidebar nav{margin-top:36px}.settings-sidebar nav a{display:block;padding:12px;text-decoration:none;color:var(--muted);border-radius:8px;margin:5px 0}.settings-sidebar nav a[aria-current=page]{background:var(--bg);color:var(--accent);font-weight:700}.settings-layout .card{margin-left:254px;margin-right:32px;max-width:920px}input[type=checkbox]{width:auto;display:inline;margin-right:8px}@media(max-width:700px){.settings-sidebar{position:static;width:auto;padding:20px}.settings-sidebar nav{display:flex;flex-wrap:wrap;margin-top:12px}.settings-sidebar nav a{font-size:13px;padding:8px}.settings-layout .card{margin:20px}}
.password-control{position:relative;margin-top:-12px;margin-bottom:18px}.password-control input{padding-right:52px}.password-control button{position:absolute;right:4px;top:11px;padding:8px;background:transparent;color:var(--muted);line-height:0}.password-control button:hover{color:var(--accent)}

.settings-logout{position:absolute;bottom:28px;left:22px;width:178px}@media(max-width:700px){.settings-logout{position:static;width:auto;margin-top:16px}}

.enrollment-indicator{margin-left:auto;text-align:right;font-size:.85rem}dialog{max-width:42rem;width:90%;border-radius:1rem;padding:1.5rem}dialog input{width:100%;box-sizing:border-box}dialog button{margin:.5rem .5rem .5rem 0}

.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.settings-grid>section{border:1px solid var(--line);border-radius:14px;padding:24px;margin-top:16px}.settings-layout .card{max-width:1200px}.settings-grid input{min-width:0}html[data-text-size=large] body{font-size:18px}html[data-text-size=larger] body{font-size:20px}@media(max-width:1000px){.settings-grid{grid-template-columns:1fr}}

/* Match dashboard geometry and navigation. */
.card,.settings-grid section{border-radius:12px}.settings-sidebar nav a[aria-current=page]{background:rgba(229,181,103,.12);color:var(--accent)}.settings-sidebar nav a:hover{background:rgba(229,181,103,.08);color:var(--text)}.settings-brand{font-size:21px}.settings-brand small{letter-spacing:2.7px;font-size:9px}.settings-layout h1{font-size:30px;font-weight:650;letter-spacing:-.6px}.settings-layout h2{font-size:18px}.settings-layout button{font-size:13px;min-height:38px}.settings-logout{background:transparent;color:var(--text);border:1px solid var(--line)}
/* Match the Relay Router enterprise identity. */
:root{--accent:#4d711d}.card{background:linear-gradient(145deg,var(--panel),var(--bg));box-shadow:0 20px 65px #00000012}.settings-sidebar nav a[aria-current=page]{background:#c0ed6818;box-shadow:inset 3px 0 var(--accent)}.settings-sidebar nav a:hover{background:#c0ed680d}html[data-theme=dark]{--bg:#0e1217;--panel:#191e25;--line:#343c47;--muted:#a8b1be;--text:#f2f5ef;--accent:#c0ed68}html[data-theme=dark] body{background:radial-gradient(ellipse at 80% 0%,#8793a415,transparent 48%),var(--bg)}html[data-theme=dark] button{background:linear-gradient(135deg,#f2f5ef,#a5cf50);color:#171c23}html[data-theme=dark] .settings-sidebar{background:linear-gradient(175deg,#20242b,#11151b)}@media(prefers-color-scheme:dark){html:not([data-theme=light]){--bg:#0e1217;--panel:#191e25;--line:#343c47;--muted:#a8b1be;--text:#f2f5ef;--accent:#c0ed68}html:not([data-theme=light]) button{background:linear-gradient(135deg,#f2f5ef,#a5cf50);color:#171c23}}

html[data-theme=dark]{--bg:#090c0b;--panel:#141916;--line:#2d362f;--muted:#a2afa5;--text:#f2f5ef;--accent:#c0ed68}html[data-theme=dark] .settings-sidebar{background:linear-gradient(170deg,#192019,#0d120f)}html[data-theme=dark] button{background:linear-gradient(135deg,#d0f789,#a5cf50);color:#17210b;box-shadow:0 0 16px #c0ed6810}@media(prefers-color-scheme:dark){html:not([data-theme=light]){--bg:#090c0b;--panel:#141916;--line:#2d362f;--muted:#a2afa5;--text:#f2f5ef;--accent:#c0ed68}html:not([data-theme=light]) button{background:linear-gradient(135deg,#d0f789,#a5cf50);color:#17210b}}

html[data-theme=dark]{--bg:#080f1b;--panel:#111d30;--line:#2a3951;--muted:#a0aec3;--text:#eef2f8;--accent:#91acd4}html[data-theme=dark] body{background:var(--bg)}html[data-theme=dark] .settings-sidebar{background:linear-gradient(170deg,#142238,#0a1425)}html[data-theme=dark] button{background:linear-gradient(135deg,#a9bedb,#7998c2);color:#0c192c;box-shadow:none}@media(prefers-color-scheme:dark){html:not([data-theme=light]){--bg:#080f1b;--panel:#111d30;--line:#2a3951;--muted:#a0aec3;--text:#eef2f8;--accent:#91acd4}html:not([data-theme=light]) button{background:linear-gradient(135deg,#a9bedb,#7998c2);color:#0c192c;box-shadow:none}}

nav a{display:flex;align-items:center;gap:10px}.nav-icon{width:18px;height:18px;flex:0 0 18px}.two-factor-section{margin-top:18px}

/* Login presentation only. Settings, recovery and activation keep their styles. */
body.login-page{
  --login-bg:#070e18;--login-panel:#101c2c;--login-input:#0b1523;
  --login-text:#edf3fa;--login-muted:#a2b2c7;--login-dim:#7e91ab;
  --login-line:#283b52;--login-accent:#b5cce6;--login-focus:#9ec5ee;
  margin:0;min-height:100svh;color:var(--login-text);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:radial-gradient(ellipse at 16% 42%,#18365560,transparent 52%),radial-gradient(ellipse at 86% 14%,#19335240,transparent 40%),var(--login-bg);
}
.login-page::before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(#8eafd505 1px,transparent 1px),linear-gradient(90deg,#8eafd505 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(#000,transparent 85%)}
.login-shell{position:relative;display:flex;flex-direction:column;min-height:100svh;max-width:1320px;margin:auto;padding:40px 64px 24px}
.login-brand{display:flex;align-items:center;gap:12px;width:fit-content;color:var(--login-text);line-height:1.15}
.login-brand-mark{width:42px;height:42px;color:var(--login-accent)}
.login-brand>span{font-size:22px;font-weight:700;letter-spacing:-.55px}
.login-brand small{display:block;margin-top:6px;color:var(--login-muted);font-size:9px;font-weight:600;letter-spacing:3.5px}
.login-layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:76px;padding:44px 0 56px}
.login-intro{position:relative;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.login-kicker{color:var(--login-accent);font-size:11px;font-weight:650;letter-spacing:1.5px;text-transform:uppercase}
.login-intro h2{margin:16px 0 18px;font-size:clamp(42px,4.3vw,60px);font-weight:600;line-height:1.08;letter-spacing:-2.5px}
.login-intro h2 span{color:var(--login-muted)}
.login-intro p{margin:0;color:var(--login-muted);font-size:16px;line-height:1.8}
.login-network{display:block;width:calc(100% + 48px);max-width:600px;height:auto;margin:4px 0 -24px -32px}
.login-network-grid{stroke:var(--login-accent);stroke-width:.6;opacity:.09}
.login-network-paths{stroke:url(#signal-line);stroke-width:1.3}
.login-network-nodes{fill:var(--login-input);stroke:var(--login-line);stroke-width:1.2}
.login-network-core path:first-child{fill:var(--login-panel);stroke:var(--login-accent);stroke-width:1;opacity:.9}
.login-network-core path:nth-child(2){stroke:var(--login-line);stroke-width:1}
.login-network-core path:nth-child(3){fill:#8db6dd14;stroke:var(--login-accent);stroke-width:1.3}
.login-network-core path:last-child{stroke:var(--login-accent);stroke-width:1.3}
.login-network-points{fill:var(--login-accent)}
.login-page .login-card{
  position:relative;isolation:isolate;width:100%;max-width:none;margin:0;padding:34px;
  color:var(--login-text);background:linear-gradient(150deg,#16263b,var(--login-panel) 65%);
  border:1px solid var(--login-line);border-radius:18px;box-shadow:0 24px 80px #00000040,inset 0 1px #dbeaff08;
}
.login-card::before{content:"";position:absolute;top:-1px;left:28px;right:28px;height:1px;background:linear-gradient(90deg,transparent,#c4def285,transparent)}
.login-card-heading{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.login-access-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid #8cb3df30;border-radius:10px;background:#7cafe00a;color:var(--login-accent)}
.login-access-icon svg{width:19px;height:19px}
.login-page .login-card h1{margin:0 0 8px;font-size:31px;font-weight:600;line-height:1.2;letter-spacing:-.9px}
.login-page #description{margin:0 0 28px;color:var(--login-muted);font-size:14px}
.login-page #login label{display:block;margin:20px 0 8px;color:var(--login-text);font-size:13px;font-weight:550}
.login-page #login>label:first-child{margin-top:0}
.login-page #login input{display:block;margin:0;width:100%;height:48px;min-width:0;padding:12px 14px;border:1px solid var(--login-line);border-radius:9px;background:var(--login-input);color:var(--login-text);font:inherit;transition:border-color .15s,box-shadow .15s}
.login-page #login label input{margin-top:8px}
.login-page #login input::placeholder{color:var(--login-dim);opacity:1}
.login-page #login input:hover{border-color:#4a6381}
.login-page #login input:focus{border-color:var(--login-focus);outline:2px solid #9ec5ee24;outline-offset:2px;box-shadow:0 0 0 3px #9ec5ee0a}
.login-page #login input:disabled{opacity:.6;cursor:not-allowed}
.login-page .password-control{position:relative;margin:0}
.login-page .password-control input{padding-right:52px!important}
.login-page #password-toggle{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:6px;background:transparent;color:var(--login-muted);box-shadow:none}
.login-page #password-toggle:hover{color:var(--login-text);background:#b5cce60a}
.login-page a{color:var(--login-accent);text-decoration:none;text-underline-offset:4px}
.login-page a:hover{text-decoration:underline;color:var(--login-text)}
.login-page a:focus-visible,.login-page button:focus-visible{outline:2px solid var(--login-focus);outline-offset:4px}
.login-recovery{display:flex;justify-content:flex-end;margin:16px 0 22px;font-size:12px}
.login-page #submit{display:block;width:100%;min-height:48px;padding:12px 16px;border:1px solid #d9e8f44d;border-radius:9px;background:linear-gradient(135deg,#dae7f4,#a8c3df);color:#132239;box-shadow:0 4px 16px #00000016;font:650 14px/1.5 system-ui,sans-serif;letter-spacing:.1px;transition:filter .15s,box-shadow .15s}
.login-page #submit:hover:not(:disabled){filter:brightness(1.07);box-shadow:0 6px 22px #a8c3df15}
.login-page #submit:disabled{opacity:.6;cursor:wait}
.login-page #username-fields>label{margin-top:0}
.login-page #username-fields[hidden]+#name-label[hidden]+#password-fields>label{margin-top:0}
.login-page .login-card h1{overflow-wrap:anywhere}
.login-page #different-account{display:block;width:100%;margin-top:14px;padding:8px 12px;min-height:40px;border:1px solid var(--login-line);border-radius:9px;background:transparent;color:var(--login-accent);box-shadow:none;font:550 13px/1.5 system-ui,sans-serif}
.login-page #different-account:hover:not(:disabled){background:#b5cce60a;color:var(--login-text)}
.login-page #different-account:disabled{opacity:.6;cursor:wait}
.login-page #resend-code{display:block;width:100%;min-height:40px;margin-top:12px;padding:8px 12px;border:0;border-radius:9px;background:transparent;color:var(--login-accent);box-shadow:none;font:550 13px/1.5 system-ui,sans-serif;font-variant-numeric:tabular-nums}
.login-page #resend-code:hover:not(:disabled){background:#b5cce60a;color:var(--login-text)}
.login-page #resend-code:disabled{opacity:1;color:var(--login-muted);cursor:default}
.login-page #message:empty{display:none}
.login-page #message{margin:18px 0 0;padding:12px 14px;border:1px solid #ef929d30;border-radius:8px;background:#b939500c;color:#ffc0c8;font-size:13px;overflow-wrap:anywhere}
.login-page #setup-note{margin:14px 0 0;color:var(--login-muted);font-size:12px}
.login-page #restart-login{margin:18px 0 0;font-size:13px;overflow-wrap:anywhere}
.login-page #login-code-label input{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:8px}
.login-card-footer{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:26px;padding-top:20px;border-top:1px solid var(--login-line);color:var(--login-muted);font-size:11px}
.login-card-footer svg{width:14px;height:14px;flex:0 0 14px}
.login-page .login-footer{display:flex;justify-content:space-between;gap:20px;padding-top:20px;border-top:1px solid #7792b21c;color:var(--login-dim);font-size:11px;letter-spacing:.2px}
html[data-theme=light] body.login-page{--login-bg:#eff3f8;--login-panel:#ffffff;--login-input:#f8fafd;--login-text:#182b43;--login-muted:#526780;--login-dim:#61758d;--login-line:#d2ddea;--login-accent:#395f88;--login-focus:#456c97;background:radial-gradient(ellipse at 16% 42%,#c9daee80,transparent 55%),var(--login-bg)}
html[data-theme=light] .login-page .login-card{background:linear-gradient(150deg,#fff,#f9fbfe);box-shadow:0 24px 80px #243e5910}
html[data-theme=light] .login-page #message{color:#aa2942}
@media(min-width:1450px){.login-layout{gap:110px;grid-template-columns:minmax(0,1fr) 440px}}
@media(max-width:1050px){.login-shell{padding:32px 40px 24px}.login-layout{gap:36px;grid-template-columns:minmax(0,1fr) 390px}.login-intro h2{font-size:44px}.login-page .login-card{padding:30px}.login-network{width:calc(100% + 20px);margin-left:-20px}}
@media(max-width:800px){.login-shell{max-width:520px;padding:28px 28px 22px}.login-layout{display:flex;align-items:center;justify-content:center;padding:40px 0}.login-intro{display:none}.login-brand{align-self:center}.login-page .login-card{padding:32px}.login-page .login-footer{justify-content:center}.login-footer>span:last-child{display:none}}
@media(max-width:420px){.login-shell{padding:24px 18px 18px}.login-layout{padding:32px 0}.login-page .login-card{padding:26px 22px;border-radius:14px}.login-page .login-card h1{font-size:28px}.login-brand>span{font-size:20px}.login-brand-mark{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.login-page #login input,.login-page #submit{transition:none}}

/* Approved Relay console baseline: shared with the sign-in presentation.
   Account and settings behavior is unchanged; every preference remains usable. */
:root,html[data-theme=dark],html[data-theme=system]{
  color-scheme:dark;
  --bg:#070e18;--panel:#101c2c;--input:#0b1523;--text:#edf3fa;
  --muted:#a2b2c7;--line:#283b52;--accent:#b5cce6;--focus:#9ec5ee;
  --surface-top:#16263b;--sidebar-bottom:#0a1422;--hover:#b5cce60d;
  --selected:#b5cce617;--shadow:#00000030;
  --button-top:#dae7f4;--button-bottom:#a8c3df;--button-text:#132239;
  --healthy:#88e5b3;--healthy-bg:#164d35;--healthy-line:#31875a;
  --warning:#f0cb83;--warning-bg:#46391e;--warning-line:#876d36;
  --failed:#ffb1b1;--failed-bg:#532b32;--failed-line:#99505b;--error:#ffb1b1;
}
html[data-theme=light]{
  color-scheme:light;
  --bg:#eff3f8;--panel:#ffffff;--input:#f8fafd;--text:#182b43;
  --muted:#526780;--line:#d2ddea;--accent:#395f88;--focus:#456c97;
  --surface-top:#ffffff;--sidebar-bottom:#e8eff7;--hover:#395f8809;
  --selected:#395f8811;--shadow:#243e5910;
  --healthy:#176444;--healthy-bg:#e6f5ed;--healthy-line:#a6d8bc;
  --warning:#785012;--warning-bg:#fff3dc;--warning-line:#e4c892;
  --failed:#973d4b;--failed-bg:#fce9ed;--failed-line:#e5b4be;--error:#973d4b;
}
@media(prefers-color-scheme:light){
  html[data-theme=system]{
    color-scheme:light;
    --bg:#eff3f8;--panel:#ffffff;--input:#f8fafd;--text:#182b43;
    --muted:#526780;--line:#d2ddea;--accent:#395f88;--focus:#456c97;
    --surface-top:#ffffff;--sidebar-bottom:#e8eff7;--hover:#395f8809;
    --selected:#395f8811;--shadow:#243e5910;
    --healthy:#176444;--healthy-bg:#e6f5ed;--healthy-line:#a6d8bc;
    --warning:#785012;--warning-bg:#fff3dc;--warning-line:#e4c892;
    --failed:#973d4b;--failed-bg:#fce9ed;--failed-line:#e5b4be;--error:#973d4b;
  }
}
body:not(.login-page),html[data-theme=dark] body:not(.login-page){
  min-height:100svh;
  background:radial-gradient(ellipse at 80% 0%,var(--hover),transparent 55%),var(--bg);
  color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body:not(.login-page) .card{
  background:linear-gradient(150deg,var(--surface-top),var(--panel) 65%);
  border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 80px var(--shadow),inset 0 1px #dbeaff08;
}
body:not(.login-page) h1{font-weight:600;letter-spacing:-.8px;line-height:1.2}
body:not(.login-page) h2{font-weight:600;letter-spacing:-.25px}
body:not(.login-page) .eyebrow{color:var(--accent);font-size:11px;letter-spacing:2px}
body:not(.login-page) p,body:not(.login-page) .note{color:var(--muted);line-height:1.6}
body:not(.login-page) label{color:var(--text);font-size:.875em;font-weight:550;margin:16px 0}
body:not(.login-page) input,body:not(.login-page) select,body:not(.login-page) textarea{
  width:100%;min-width:0;min-height:44px;padding:11px 13px;margin-top:7px;
  border:1px solid var(--line);border-radius:8px;background:var(--input);color:var(--text);font:inherit;
}
body:not(.login-page) textarea{resize:vertical;line-height:1.5}
body:not(.login-page) input::placeholder,body:not(.login-page) textarea::placeholder{color:var(--muted);opacity:.85}
body:not(.login-page) input:disabled,body:not(.login-page) select:disabled{opacity:.6;cursor:not-allowed}
body:not(.login-page) input[type=checkbox]{width:16px;min-height:16px;margin:0 8px 0 0;accent-color:var(--accent)}
body:not(.login-page) button,html[data-theme=dark] body:not(.login-page) button{
  min-height:40px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;
  background:linear-gradient(135deg,var(--button-top),var(--button-bottom));color:var(--button-text);
  font:600 .875em/1.4 system-ui,sans-serif;box-shadow:0 3px 12px var(--shadow);cursor:pointer;
}
body:not(.login-page) button:hover:not(:disabled){filter:brightness(1.05)}
body:not(.login-page) button:disabled{opacity:.5;cursor:not-allowed}
body:not(.login-page) a{color:var(--accent);text-underline-offset:4px}
body:not(.login-page) a:hover{color:var(--text)}
body:not(.login-page) :is(input,select,textarea,button,a):focus-visible{outline:2px solid var(--focus);outline-offset:3px}
body:not(.login-page) #message,body:not(.login-page) .error{color:var(--error);overflow-wrap:anywhere}
body:not(.login-page) #message:empty{display:none}
body:not(.login-page) .card>form>button{width:100%;min-height:44px;margin-top:4px}
body:not(.login-page) .card>p:last-child{font-size:.875em;margin-bottom:0}

/* Navigation and the settings canvas share the dashboard's spacing and surfaces. */
body.settings-layout .settings-sidebar{
  display:flex;flex-direction:column;width:222px;padding:28px 18px 20px;overflow-y:auto;
  background:linear-gradient(170deg,var(--panel),var(--sidebar-bottom));border-right:1px solid var(--line);
}
.settings-layout .settings-brand{display:grid;grid-template-columns:30px 1fr;column-gap:10px;align-items:center;color:var(--text);font-size:21px;line-height:1.2;letter-spacing:-.55px}
.settings-brand::before{content:"◈";grid-row:1 / 3;color:var(--accent);font-size:30px;font-weight:400;line-height:1}
.settings-layout .settings-brand small{color:var(--muted);font-size:9px;letter-spacing:2.7px;margin-top:5px}
.settings-layout .settings-sidebar nav{margin:30px 0 20px}
.settings-layout .settings-sidebar nav a{display:flex;align-items:center;gap:10px;padding:11px 10px;margin:0 0 6px;border:1px solid transparent;border-radius:8px;color:var(--muted);font-size:.8125em;line-height:1.4}
.settings-layout .settings-sidebar nav a:hover{color:var(--text);background:var(--hover)}
.settings-layout .settings-sidebar nav a[aria-current=page]{color:var(--accent);background:var(--selected);border-color:var(--line);box-shadow:inset 3px 0 var(--accent);font-weight:600}
body.settings-layout .settings-logout{
  position:static;width:100%;margin-top:auto;flex-shrink:0;background:var(--input);color:var(--text);box-shadow:none;
}
.settings-layout .settings-sidebar button.settings-logout{background:var(--input);color:var(--text);box-shadow:none}
body.settings-layout main.card{max-width:1800px;margin:24px 24px 24px 246px;padding:0;border:0;background:transparent;box-shadow:none;border-radius:0;min-width:0}
.settings-layout header{display:flex;justify-content:flex-end;margin-bottom:12px}
.settings-layout button.enrollment-manage,html[data-theme=dark] .settings-layout button.enrollment-manage{min-height:0;padding:0;background:transparent;color:var(--muted);border:0;box-shadow:none;font-size:.8125em}
.settings-layout button.enrollment-manage:hover{color:var(--text);filter:none}
.settings-layout .card>header:empty{display:none}
.settings-layout .card>.actions{margin:0 0 12px;font-size:.8125em}
.settings-layout h1{font-size:28px;margin:8px 0 22px}
.settings-layout h2{font-size:18px;margin:0 0 14px}
.settings-layout .settings-grid{gap:16px}
.settings-layout .settings-grid>section,.settings-layout .card>section,.settings-layout .card>.panel{
  min-width:0;border:1px solid var(--line);border-radius:12px;padding:22px;margin:0 0 16px;
  background:linear-gradient(150deg,var(--surface-top),var(--panel) 65%);box-shadow:0 8px 24px var(--shadow),inset 0 1px #dbeaff06;
}
.settings-layout .settings-grid>section{margin:0}
.settings-layout .settings-grid{margin-bottom:16px}
.settings-layout .note{font-size:.8125em;margin:12px 0}
.settings-layout #verify-email{margin-top:22px;padding-top:8px;border-top:1px solid var(--line)}
.settings-layout #mfa-form{max-width:520px}
.settings-layout #mfa-cancel{background:var(--input);color:var(--text);box-shadow:none}
.settings-layout #mail-history{padding-left:20px;color:var(--muted);font-size:.875em;overflow-wrap:anywhere}
.settings-layout #mail-history li{margin:10px 0}
body:not(.login-page) dialog{max-height:calc(100svh - 40px);overflow-y:auto;max-width:680px;width:calc(100% - 40px);padding:24px;border:1px solid var(--line);border-radius:14px;color:var(--text);background:linear-gradient(150deg,var(--surface-top),var(--panel) 65%);box-shadow:0 32px 100px #0008}
body:not(.login-page) dialog::backdrop{background:#070e18bd;backdrop-filter:blur(5px)}
body:not(.login-page) dialog dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;font-size:.875em}
body:not(.login-page) dialog dt{color:var(--muted)}
body:not(.login-page) dialog dd{margin:0;overflow-wrap:anywhere}
@media(max-width:1000px){.settings-layout .settings-grid{grid-template-columns:1fr}}
@media(max-width:700px){
  body.settings-layout .settings-sidebar{position:static;width:auto;padding:18px 16px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}
  .settings-layout .settings-sidebar nav{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 12px}
  .settings-layout .settings-sidebar nav a{padding:8px;margin:0;font-size:.8125em}
  body.settings-layout .settings-logout{width:auto;align-self:flex-start;margin:0}
  body.settings-layout main.card{margin:20px 16px;max-width:none}
  .settings-layout .settings-grid>section,.settings-layout .card>section{padding:18px}
  .settings-layout h1{font-size:26px;margin-bottom:18px}
}
@media(max-width:520px){body:not(.settings-layout):not(.login-page) .card{margin:24px 18px;padding:26px 22px}body:not(.login-page) dialog{width:calc(100% - 24px);padding:20px}}
@media(prefers-reduced-motion:reduce){body:not(.login-page) *{scroll-behavior:auto;transition:none!important}}

/* Admin Profile: committed email authentication state and compact setup. */
.settings-layout .mfa-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.settings-layout .mfa-heading h2{margin:0 0 6px}
.settings-layout #mfa-status{margin:0;font-size:.875em;color:var(--muted)}
.settings-layout button.mfa-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:56px;padding:4px;background:transparent!important;border:0;box-shadow:none!important;border-radius:24px}
.settings-layout .mfa-switch-track{position:relative;display:block;width:44px;height:26px;border:1px solid var(--line);border-radius:999px;background:var(--input);transition:background .15s,border-color .15s}
.settings-layout .mfa-switch-track::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}
.settings-layout .mfa-toggle[aria-checked=true] .mfa-switch-track{background:#17804d;border-color:#28a767}
.settings-layout .mfa-toggle[aria-checked=true] .mfa-switch-track::after{background:#fff;transform:translateX(18px)}
.settings-layout .mfa-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.settings-layout .mfa-toggle:disabled{opacity:.65;cursor:default}
.settings-layout #mfa-flow-message:empty{display:none}
.settings-layout #mfa-form{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.settings-layout .mfa-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.settings-layout .mfa-actions button{width:auto;margin:0}

/* Authenticator setup uses the existing profile card and private, transient text. */
.settings-layout .mfa-method-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-top:16px;max-width:520px}
.settings-layout .mfa-method-row label{flex:1;min-width:180px;margin:0}
.settings-layout .mfa-method-row button{width:auto;margin:0;min-height:40px}
.settings-layout .mfa-private-panel{max-width:520px;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--input)}
.settings-layout .mfa-private-panel h3{font-size:1em;margin:0 0 10px}
.settings-layout #mfa-secret{display:block;margin:12px 0;padding:12px;font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:.08em;overflow-wrap:anywhere;user-select:all;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.settings-layout .mfa-enrollment-layout{display:grid;grid-template-columns:minmax(0,224px) minmax(0,1fr);gap:16px;align-items:start}
.settings-layout .mfa-qr-panel{width:100%;max-width:224px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px;box-sizing:border-box}
.settings-layout #mfa-qr{display:block;width:100%;height:auto;aspect-ratio:1;image-rendering:pixelated}
.settings-layout .mfa-setup-instructions{min-width:0}
.settings-layout .mfa-qr-panel[hidden]+.mfa-setup-instructions{grid-column:1/-1}
.settings-layout .mfa-setup-instructions .note:first-child{margin-top:0}
.settings-layout #mfa-qr-error{color:var(--warning);margin:10px 0}
.settings-layout #mfa-manual-setup{margin-top:12px;overflow-wrap:anywhere}
.settings-layout #mfa-manual-setup summary{cursor:pointer;color:var(--accent);font-size:var(--label-size);font-weight:600}
.settings-layout #mfa-manual-setup summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}
.settings-layout #mfa-manual-setup a{overflow-wrap:anywhere}
@media(max-width:700px){.settings-layout .mfa-enrollment-layout{grid-template-columns:minmax(0,1fr)}.settings-layout .mfa-qr-panel{justify-self:center}}
.settings-layout #mfa-backup-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;margin:14px 0;padding:0;list-style:none;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.875em;user-select:text}
.settings-layout #mfa-backup-codes li{overflow-wrap:anywhere}
@media(max-width:650px){.settings-layout .mfa-method-row label{min-width:0;width:100%;flex-basis:100%}.settings-layout #mfa-backup-codes{grid-template-columns:1fr}}

.login-page input.authenticator-code{font-size:16px!important;letter-spacing:.03em!important;text-align:left!important;font-family:ui-monospace,SFMono-Regular,monospace}
.settings-layout #mfa-method{min-height:44px}

/* The shared Relay status header and read-only Self-Healing dialog. */
:root{--label-size:13px;--small-size:12px}
html[data-text-size=large]{--label-size:14px;--small-size:13px}
html[data-text-size=larger]{--label-size:15px;--small-size:14px}
.settings-layout main>header.console-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;height:auto;margin:0 0 16px;padding:10px 0;border-bottom:1px solid var(--line)}
.settings-layout .identity{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:var(--input);color:var(--muted);font-size:var(--small-size);line-height:1.4;min-width:0;max-width:100%;overflow-wrap:anywhere;margin-left:auto}
.settings-layout .identity .dot{display:inline-block;width:6px;height:6px;background:var(--healthy);border-radius:50%;flex:none}
.settings-layout #recovery-state{border:1px solid var(--line);border-radius:999px;padding:2px 7px;font-weight:650;line-height:1.35}
.settings-layout #recovery-state.good{color:var(--healthy);background:var(--healthy-bg);border-color:var(--healthy-line)}
.settings-layout #recovery-state.health-warning{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-line)}
.settings-layout #recovery-state.health-failed{color:var(--failed);background:var(--failed-bg);border-color:var(--failed-line)}
.settings-layout #recovery-state.unavailable{color:var(--muted)}
.settings-layout #self-healing-dialog .secondary{background:var(--input);color:var(--text);box-shadow:none;border:1px solid var(--line)}
/* Self-Healing: compact status checks in the approved console theme. */
main>header .self-healing-trigger{display:inline-flex;align-items:center;gap:10px;padding:7px 10px;background:transparent;color:var(--text);border:1px solid transparent;box-shadow:none;font-size:var(--label-size);font-weight:600;min-width:0}
main>header .self-healing-trigger:hover{border-color:var(--line);background:var(--panel)}
#self-healing-dialog{width:min(860px,calc(100% - 32px));max-width:860px;padding:22px;overflow-wrap:anywhere}
#self-healing-dialog button{margin:0;flex-shrink:0}
.healing-dialog-heading,.healing-check-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.healing-dialog-heading h2{font-size:22px;letter-spacing:-.3px}
.healing-dialog-heading p{margin:6px 0 0;max-width:620px}
.healing-close{font-size:22px;line-height:1;padding:7px 12px;min-height:34px}
.healing-explanation{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--input)}
.healing-explanation p{margin:0;font-size:var(--label-size);line-height:1.5}
.healing-explanation b{display:block;color:var(--text);margin-bottom:4px}
.healing-check-heading{align-items:center;margin:18px 0 6px}
.healing-check-heading h3{margin:0;font-size:16px}
.healing-check-heading p{font-size:var(--label-size);margin:4px 0 0}
#self-healing-result{font-size:var(--label-size);color:var(--muted);font-variant-numeric:tabular-nums;margin:10px 0}
.healing-alert{border:1px solid var(--warning);background:var(--warning-bg);color:var(--warning);padding:10px 12px;border-radius:8px;margin:12px 0;font-size:var(--label-size)}
.healing-checks{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.healing-check{display:flex;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--input);min-width:0}
.healing-mark{flex:0 0 24px;height:24px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--muted);font-weight:700;font-size:15px}
.healing-check-content{min-width:0;flex:1}
.healing-check-title{display:flex;gap:8px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}
.healing-check-title h4{margin:0;font-size:var(--label-size);color:var(--text);font-weight:650}
.healing-check-state{font-size:var(--small-size);font-weight:600;color:var(--muted);white-space:nowrap}
#self-healing-dialog .healing-check-detail,#self-healing-dialog .healing-check-help{margin:5px 0 0;font-size:var(--label-size);line-height:1.45}
.healing-check-help b{font-weight:600;color:var(--text)}
.healing-check-help a{display:inline-block;margin-left:7px;color:var(--accent)}
.healing-check[data-state=pass] .healing-mark,.healing-check[data-state=pass] .healing-check-state{color:var(--healthy)}
.healing-check[data-state=pass] .healing-mark{background:var(--healthy-bg);border-color:var(--healthy)}
.healing-check[data-state=warning] .healing-mark,.healing-check[data-state=warning] .healing-check-state{color:var(--warning)}
.healing-check[data-state=fail] .healing-mark,.healing-check[data-state=fail] .healing-check-state{color:var(--failed)}
.healing-check[data-state=fail] .healing-mark{background:var(--failed-bg);border-color:var(--failed)}
.healing-check[data-state=checking] .healing-mark{color:var(--accent);animation:healing-spin 1.2s linear infinite}
#self-healing-dialog .healing-scope{font-size:var(--small-size);margin:12px 0;color:var(--muted)}
.healing-events{border-top:1px solid var(--line);padding-top:12px;font-size:var(--label-size)}
.healing-events summary{cursor:pointer;color:var(--text);width:fit-content}
.healing-events summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.healing-events #recovery-details{margin-top:8px;font-size:var(--label-size)}
@keyframes healing-spin{to{transform:rotate(360deg)}}
@media(max-width:650px){#self-healing-dialog{padding:16px}.healing-explanation,.healing-checks{grid-template-columns:1fr}.healing-check-heading{align-items:flex-start;flex-direction:column;gap:10px}.healing-dialog-heading{gap:10px}.healing-dialog-heading h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){.healing-check[data-state=checking] .healing-mark{animation:none}}


/* Quiet connection indicators, distinct from the actionable Self-Healing badge. */
.header-statuses{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-left:auto;min-width:0;font-size:var(--label-size);color:var(--muted)}
.header-statuses>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.header-statuses b{font-weight:500;font-variant-numeric:tabular-nums;color:var(--text)}
.header-signal i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0}
.header-signal[data-state=good] i{background:var(--healthy)}
.header-signal[data-state=good] b{color:var(--healthy)}
.header-signal[data-state=warning] i{background:var(--warning)}
.header-signal[data-state=failed] i{background:var(--failed)}
main>header .header-statuses+.identity{margin-left:0}
@media(max-width:1100px){main>header{flex-wrap:wrap}.header-statuses{order:3;flex-basis:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px 18px;margin:0}main>header .header-statuses+.identity{margin-left:auto}}
@media(max-width:650px){.header-statuses{font-size:var(--small-size);gap:6px 12px}.header-statuses b{font-size:var(--small-size)}}
/* Keep status text intact and honor the selected reading size. */
main>header .self-healing-trigger{flex-shrink:0;white-space:nowrap}
.self-healing-trigger #recovery-state{font-size:var(--small-size);white-space:nowrap;flex-shrink:0}
@media(max-width:1240px){main>header{flex-wrap:wrap}.header-statuses{order:3;flex-basis:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px 18px;margin:0}main>header .header-statuses+.identity{margin-left:auto}}

/* Installed software metadata uses the same compact console surfaces. */
/* Fix the Relay status bar above all console pages, including mobile navigation. */
main>header.console-header{position:fixed;top:0;left:var(--console-header-left,246px);right:var(--console-header-right,24px);z-index:20;background:var(--bg);min-height:58px;margin-top:0;padding:10px 0;border-bottom:1px solid var(--line)}
.console-layout main,body.settings-layout main.card{padding-top:calc(var(--console-header-height,72px) + 14px)}
html{scroll-padding-top:calc(var(--console-header-height,72px) + 16px)}
@media(max-width:700px){body.settings-layout{padding-top:var(--console-header-height,112px)}body.settings-layout main.card{padding-top:0}body.settings-layout main>header.console-header{left:16px;right:16px}}
@media(max-width:650px){body.console-layout{padding-top:var(--console-header-height,112px)}.console-layout main{padding-top:0}.console-layout main>header.console-header{left:16px;right:16px}}

/* Match the dashboard's upper edge without a redundant return link. */
body.settings-layout main.card{margin-top:0}
@media(max-width:700px){body.settings-layout main.card{margin-top:0}}

/* Keep Self-Healing quiet despite the inherited dark-theme primary-button rule. */
body.settings-layout main>header button.self-healing-trigger,html[data-theme=dark] body.settings-layout main>header button.self-healing-trigger{background:transparent;color:var(--text);border:1px solid transparent;box-shadow:none;padding:7px 10px;min-height:38px;font-size:var(--label-size);font-weight:600}
body.settings-layout main>header button.self-healing-trigger:hover{border-color:var(--line);background:var(--panel)}

/* Shared, compact session expiry warning on every authenticated console page. */
#session-timeout-dialog{width:min(440px,calc(100vw - 32px));max-width:440px;box-sizing:border-box;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:0 24px 80px #0006}
#session-timeout-dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}
#session-timeout-dialog h2{margin:0 0 12px;font-size:20px;color:var(--text)}
#session-timeout-dialog p{font-size:14px;line-height:1.5;color:var(--muted)}
#session-timeout-dialog p[role=alert]{color:var(--failed)}
#session-timeout-dialog p[role=alert]:empty{display:none}
.session-timeout-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
#session-timeout-dialog .session-timeout-actions button{flex:1;min-width:120px;min-height:42px}
