:root {
  color-scheme: light;
  --bg: #f4f6f8;
  --surface: #ffffff;
  --surface-2: #eef2f5;
  --text: #17212b;
  --muted: #687783;
  --line: #d9e0e5;
  --nav: #112f3b;
  --nav-2: #173f4d;
  --nav-text: #edf7f8;
  --accent: #167c80;
  --accent-strong: #0f666a;
  --danger: #a83a45;
  --ok: #2d7f52;
  --shadow: 0 8px 24px rgba(28, 45, 55, .10);
  --shell-top-height: 74px;
  --shell-footer-height: 44px;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #10171b;
  --surface: #182126;
  --surface-2: #202b31;
  --text: #eef4f5;
  --muted: #a4b1b7;
  --line: #334148;
  --nav: #0b2029;
  --nav-2: #123540;
  --nav-text: #f0f8f9;
  --accent: #4bb3b4;
  --accent-strong: #63c5c6;
  --shadow: 0 10px 28px rgba(0,0,0,.24);
}
* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; background:var(--bg); color:var(--text); }
body.app-shell { height:100vh; overflow:hidden; }
a { color:var(--accent); }
button, input, select, textarea { font:inherit; }
.shell { display:grid; grid-template-columns: 250px 1fr; height:100vh; }
.sidebar { background:var(--nav); color:var(--nav-text); display:flex; flex-direction:column; min-width:0; border-right:1px solid rgba(255,255,255,.06); }
.brand { height:var(--shell-top-height); flex:0 0 var(--shell-top-height); display:flex; align-items:center; gap:12px; padding:0 16px; border-bottom:1px solid rgba(255,255,255,.09); }
.brand strong { display:block; font-size:15px; }
.brand small { display:block; opacity:.68; margin-top:2px; }
.brand-mark { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; font-weight:800; background:var(--accent); color:#fff; letter-spacing:-.04em; }
.sidebar nav { flex:1 1 auto; min-height:0; padding:12px 8px; display:flex; flex-direction:column; gap:4px; overflow-y:auto; }
.nav-item { border:0; background:transparent; color:inherit; width:100%; display:grid; grid-template-columns:16px 24px 1fr; gap:7px; align-items:center; text-align:left; border-radius:9px; padding:9px 10px; cursor:pointer; }
.nav-item:hover { background:rgba(255,255,255,.08); }
.nav-item.active { background:var(--nav-2); box-shadow:inset 3px 0 0 var(--accent); }
.nav-item.dragging { opacity:.35; }
.drag-handle { opacity:.4; cursor:grab; }
.nav-icon { text-align:center; font-size:17px; }
.shell-main { min-width:0; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:var(--shell-top-height) minmax(0,1fr) var(--shell-footer-height); }
.topbar { height:var(--shell-top-height); background:var(--surface); border-bottom:1px solid var(--line); padding:0 18px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.topbar small { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:10px; }
.topbar h1 { margin:1px 0 0; font-size:20px; }
.frame-wrap { min-height:0; background:var(--bg); }
#mainFrame { border:0; width:100%; height:100%; display:block; background:var(--bg); }
.shell-footer { margin-top:0; height:var(--shell-footer-height); min-height:var(--shell-footer-height); background:var(--surface); border-top:1px solid var(--line); padding:5px 14px; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:16px; font-size:11px; color:var(--muted); }
.health-line { display:flex; flex-wrap:wrap; gap:4px 18px; justify-self:start; min-width:0; }
.health.ok { color:var(--ok); }
.health.error { color:var(--danger); }
.health.checking { color:var(--muted); }
.theme-control { display:flex; align-items:center; gap:6px; justify-self:end; }
.theme-control select { border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--text); padding:3px 6px; }
.muted { color:var(--muted); }
.primary { border:0; border-radius:8px; background:var(--accent); color:#fff; padding:10px 14px; font-weight:700; cursor:pointer; }
.primary:hover { background:var(--accent-strong); }
.alert { padding:10px 12px; border-radius:8px; margin-top:15px; }
.alert.error { background:color-mix(in srgb, var(--danger) 12%, transparent); color:var(--danger); }
@media (max-width: 760px) {
  :root { --shell-footer-height:86px; }
  .shell-footer { grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; }
  .shell-footer .app-copyright { grid-column:1/-1; grid-row:2; }
  .shell { grid-template-columns:72px 1fr; }
  .brand > div:last-child, .nav-item > span:last-child, .drag-handle { display:none; }
  .brand { justify-content:center; padding-inline:8px; }
  .nav-item { grid-template-columns:1fr; place-items:center; padding:11px 4px; }
  .nav-icon { font-size:20px; }
  .topbar { padding-inline:12px; }
}
@media (max-width:480px) {
  :root { --shell-footer-height:110px; }
  .shell-footer { grid-template-columns:minmax(0,1fr); }
  .shell-footer .app-copyright { grid-row:3; }
  .shell-footer .theme-control { justify-self:start; }
  .topbar>div:first-child { min-width:0; }
  .topbar h1 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}


/* Navigation customization is deliberately opt-in, matching MyAssurius. */
.drag-handle { visibility:hidden; }
body.nav-editing .drag-handle { visibility:visible; }
body.nav-editing .nav-item { cursor:grab; }
body.nav-editing .nav-item:active { cursor:grabbing; }

.security-setup-grid { display:grid; grid-template-columns:minmax(280px,320px) 1fr; gap:28px; align-items:start; margin-top:10px; }
.qr-panel h2,.setup-instructions h2 { margin-top:12px; }
.qr-frame { width:min(100%,304px); aspect-ratio:1; display:grid; place-items:center; padding:12px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.qr-frame img { display:block; width:100%; height:auto; image-rendering:pixelated; }
.security-label { display:block; margin:14px 0 5px; font-size:12px; font-weight:700; }
.secret-box { padding:10px 12px; background:var(--surface-2); border:1px solid var(--line); border-radius:8px; font:700 13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; word-break:break-all; }
.recovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:14px 0; }
.recovery-grid code { background:var(--surface-2); border:1px solid var(--line); border-radius:7px; padding:8px; text-align:center; }
.alert.success { background:color-mix(in srgb,var(--ok) 12%,transparent); color:var(--ok); }
.alert.warning { background:#fff8e8; color:#6e5200; border:1px solid #e7d098; }
html[data-theme="dark"] .alert.warning { background:#302814; color:#f1d780; border-color:#695927; }
.link-button { display:inline-block; text-decoration:none; }
.small { font-size:12px; }

@media (max-width:700px) {
  .security-setup-grid { grid-template-columns:1fr; }
  .qr-frame { margin-inline:auto; }
}
@media (max-width:560px) {
  .recovery-grid { grid-template-columns:1fr; }
}

/* 0.3.1 shell/navigation alignment with MyAssurius */
.sidebar>.main-navigation{flex:1 1 auto;min-height:0;padding:12px 8px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.sidebar-utility{flex:0 0 auto;border-top:1px solid rgba(255,255,255,.09);padding:7px 8px 9px}
.sidebar-utility nav{display:flex;flex:0 0 auto;min-height:0;flex-direction:column;gap:4px;overflow:visible;padding:0}
.sidebar-utility .drag-handle{visibility:hidden!important}
.sidebar-utility .nav-item{min-height:38px}
.nav-logout-form{margin:0;padding:0}
.nav-logout{font:inherit}
.nav-logout:hover{background:rgba(255,255,255,.08)}
body.nav-editing .sidebar-utility{opacity:.48;pointer-events:none}

.topbar{align-items:center}
.module-heading{min-width:180px}
.navigation-customizer{display:flex;min-width:0;justify-content:flex-end;align-items:center;margin-left:auto}
.topbar-secondary,.topbar-primary{border-radius:8px;padding:8px 11px;font-size:12px;font-weight:750;cursor:pointer;white-space:nowrap}
.topbar-secondary{border:1px solid var(--line);background:var(--surface);color:var(--text)}
.topbar-secondary:hover{background:var(--surface-2)}
.topbar-primary{border:1px solid var(--accent);background:var(--accent);color:#fff}
.topbar-primary:hover{background:var(--accent-strong)}
.topbar-secondary:disabled,.topbar-primary:disabled{opacity:.55;cursor:wait}
.nav-edit-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.nav-edit-toolbar[hidden],#navCustomizeIdle[hidden]{display:none!important}
.nav-edit-copy{display:flex;min-width:0;align-items:baseline;gap:5px;color:var(--muted);font-size:12px;white-space:nowrap}
.nav-edit-copy strong{color:var(--text)}
.nav-edit-status{margin-left:5px;font-size:11px;color:var(--muted)}
.nav-edit-status.error{color:var(--danger)}
.nav-edit-actions{display:flex;gap:7px;align-items:center}
body.nav-editing .main-navigation .nav-item{cursor:grab}
body.nav-editing .main-navigation .nav-item:active{cursor:grabbing}
body.nav-editing .main-navigation .drag-handle{visibility:visible}

@media(max-width:1120px){
  .nav-edit-copy span{display:none}
  .nav-edit-toolbar{gap:9px}
}
@media(max-width:900px){
  .nav-edit-copy{display:none}
  .nav-edit-actions{gap:5px}
  .topbar-secondary,.topbar-primary{padding:7px 8px}
}
@media(max-width:760px){
  .sidebar-utility{padding:7px 4px 9px}
  .sidebar-utility .nav-item{grid-template-columns:1fr;place-items:center;padding:9px 4px}
  .sidebar-utility .nav-item>span:last-child{display:none}
  .navigation-customizer{max-width:70%}
  .nav-edit-actions{flex-wrap:wrap;justify-content:flex-end}
}

/* 0.4.0 notification centre */
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;margin-left:auto}
.notification-center{position:relative;flex:0 0 auto}
.notification-button{position:relative;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);cursor:pointer;font-size:21px;font-weight:800}
.notification-button:hover{background:var(--surface-2);border-color:var(--accent)}
.notification-badge{position:absolute;right:-6px;top:-6px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border:2px solid var(--surface);border-radius:999px;background:var(--danger);color:#fff;font-size:9px;font-weight:900}
.notification-panel{position:absolute;z-index:50;right:0;top:44px;width:min(390px,calc(100vw - 32px));max-height:min(560px,70vh);overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.notification-panel[hidden]{display:none!important}
.notification-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.notification-panel>header button{border:0;background:transparent;color:var(--accent);font-size:11px;font-weight:800;cursor:pointer}
.notification-list{display:grid;max-height:500px;overflow-y:auto}
.notification-item{display:grid;gap:3px;width:100%;border:0;border-bottom:1px solid var(--line);padding:11px 12px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer}
.notification-item:hover{background:var(--surface-2)}
.notification-item.unread{background:color-mix(in srgb,var(--accent) 9%,var(--surface));box-shadow:inset 3px 0 0 var(--accent)}
.notification-item strong{font-size:12px}.notification-item span{font-size:11px;line-height:1.4;color:var(--muted)}.notification-item small{font-size:9.5px;color:var(--muted)}
.notification-empty{margin:0;padding:18px;color:var(--muted);font-size:11px;text-align:center}
@media(max-width:900px){.topbar-actions{gap:6px}.notification-panel{right:-8px}}

/* 0.5.0 notification bell / compact inbox */
.notification-button[hidden]{display:none!important}.notification-bell{display:block}.notification-panel>footer{display:flex;justify-content:center;padding:9px 12px;border-top:1px solid var(--line);background:var(--surface-2)}.notification-panel>footer button{border:0;background:transparent;color:var(--accent);font-size:11px;font-weight:800;cursor:pointer}.notification-panel>footer button:hover{text-decoration:underline}

/* 0.5.3 contextual module action in the shell header */
.frame-context-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.frame-context-actions[hidden],.frame-context-actions.navigation-edit-hidden{display:none!important}

/* 0.5.4 contextual module Help action */
#frameHelpActions[hidden],#frameHelpActions.navigation-edit-hidden{display:none!important}

/* 0.9.4.11 — explicit navigation drop target */
.nav-item-placeholder{display:grid;place-items:center;margin:2px 0;border:2px dashed var(--accent);border-radius:9px;color:var(--accent);font-size:10px;font-weight:800;background:color-mix(in srgb,var(--accent) 6%,transparent)}

/* 0.9.4.13 shared public authentication/onboarding shell ---------------- */
.secondary{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:10px 14px;font-weight:700;cursor:pointer}
.secondary:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.primary,.secondary{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.primary:focus-visible,.secondary:focus-visible,.public-auth-card a:focus-visible,.public-auth-card input:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 34%,transparent);outline-offset:2px}

.public-auth-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:clamp(18px,4vw,46px);
  background:
    radial-gradient(circle at 18% 14%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 34%),
    radial-gradient(circle at 84% 82%,color-mix(in srgb,var(--nav-2) 20%,transparent),transparent 38%),
    var(--bg);
}
.public-auth-shell{width:min(560px,100%)}
.public-auth-shell-wide{width:min(820px,100%)}
.public-auth-card{
  width:100%;
  padding:clamp(22px,4vw,32px);
  border:1px solid color-mix(in srgb,var(--line) 92%,var(--accent));
  border-radius:18px;
  background:var(--surface);
  box-shadow:0 22px 64px rgba(17,47,59,.14),var(--shadow);
}
.public-auth-brand{display:flex;align-items:center;gap:12px;padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.public-auth-brand .brand-mark{width:44px;height:44px;flex:0 0 44px;border-radius:13px}
.public-auth-brand-copy{display:grid;gap:2px;min-width:0}
.public-auth-brand-copy strong{font-size:15px;line-height:1.25}
.public-auth-brand-copy small{color:var(--muted);font-size:11px;line-height:1.3}
.public-auth-heading{display:grid;gap:7px;margin-bottom:22px}
.public-auth-heading h1{margin:0;font-size:clamp(24px,4vw,29px);line-height:1.15;letter-spacing:-.025em}
.public-auth-heading p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.55}
.public-auth-help{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.55}
.public-auth-help-after{margin:16px 0 0}
.public-auth-section-title{margin:4px 0 8px;font-size:17px}
.public-auth-card ol{color:var(--muted);line-height:1.7;padding-left:22px}
.public-auth-mfa-form{margin-top:24px}
.public-auth-form{display:grid;gap:16px;margin:0}
.public-auth-field{display:grid;gap:7px;font-size:12.5px;font-weight:750;color:var(--text)}
.public-auth-field input{
  width:100%;
  min-height:44px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--surface);
  color:var(--text);
  padding:10px 12px;
  box-shadow:inset 0 1px 1px rgba(0,0,0,.015);
}
.public-auth-field input:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}
.public-auth-field input:focus-visible{border-color:var(--accent)}
.public-auth-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:4px}
.public-auth-actions :is(.primary,.secondary,.public-auth-link-button){min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.public-auth-actions-single .primary{min-width:132px}
.public-auth-support-link{margin-top:18px;padding-top:17px;border-top:1px solid var(--line);text-align:center;font-size:12.5px}
.public-auth-support-link a,.public-auth-link-button{font-weight:750;text-decoration:none}
.public-auth-support-link a:hover,.public-auth-link-button:hover{text-decoration:underline}
.public-auth-logout-form{margin:0}
.public-auth-link-button{border:0;background:transparent;color:var(--accent);padding:0;cursor:pointer;font:inherit}
.public-auth-card .alert{margin:0 0 18px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:9px;font-size:12.5px;line-height:1.5}
.public-auth-card .alert.error{border-color:color-mix(in srgb,var(--danger) 34%,var(--line));background:color-mix(in srgb,var(--danger) 9%,var(--surface));color:var(--danger)}
.public-auth-card .alert.success{border-color:color-mix(in srgb,var(--ok) 34%,var(--line));background:color-mix(in srgb,var(--ok) 9%,var(--surface));color:var(--ok)}
html[data-theme="dark"] .public-auth-card{box-shadow:0 24px 70px rgba(0,0,0,.32)}
@media(max-width:560px){
  .public-auth-page{place-items:start center;padding:14px}
  .public-auth-card{border-radius:14px;padding:20px 18px}
  .public-auth-brand{margin-bottom:20px;padding-bottom:17px}
  .public-auth-actions{align-items:stretch;flex-direction:column-reverse}
  .public-auth-actions .primary,.public-auth-actions .secondary{width:100%}
  .public-auth-actions-single{flex-direction:column}
}
