/*
 * Audit Console design system ("Clinic" direction)
 * Plain CSS, no build step. Works with Thymeleaf + htmx.
 * Fonts are self-hosted (static/fonts) so the console works without internet.
 *
 * Layers: 1 fonts  2 tokens (light, dark)  3 base  4 layout  5 components
 *         6 states  7 utilities  8 responsive  9 print
 * Rule: templates use these classes only. No inline colours, no inline font sizes.
 */

/* 1 ── Fonts ─────────────────────────────────────────────────────────────── */
@font-face{font-family:"Plex Sans";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Plex Sans";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Plex Sans";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Plex Mono";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Plex Mono";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Noto Sinhala";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/noto-sans-sinhala-sinhala-400-normal.woff2") format("woff2")}
@font-face{font-family:"Noto Sinhala";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/noto-sans-sinhala-sinhala-600-normal.woff2") format("woff2")}
@font-face{font-family:"Noto Tamil";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/noto-sans-tamil-tamil-400-normal.woff2") format("woff2")}
@font-face{font-family:"Noto Tamil";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/noto-sans-tamil-tamil-600-normal.woff2") format("woff2")}

/* 2 ── Tokens ────────────────────────────────────────────────────────────── */
:root{
  color-scheme:light;
  --font:"Plex Sans","Noto Sinhala","Noto Tamil",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;

  /* surfaces */
  --bg:#f6f5f1; --panel:#ffffff; --panel-sub:#faf9f5; --panel-tint:#fcfcfa;
  --border:#d7d9d2; --border-soft:#e6e7e0; --border-faint:#eeeee8; --border-input:#8a9794;
  /* text */
  --ink:#1d2a2e; --ink-2:#4b5a5f; --ink-3:#5d6b70; --ink-on-accent:#ffffff;
  /* accent */
  --accent:#0b6e6e; --accent-line:#0b6e6e; --accent-hover:#095c5c; --accent-text:#0b5b5b; --accent-wash:#e8f3f1; --accent-ring:#cfe6e2;
  /* status pairs: background / text */
  --ok-bg:#e1f1e6;   --ok-fg:#1b5e33;
  --bad-bg:#fbe3e3;  --bad-fg:#9b2226;
  --warn-bg:#fff0cf; --warn-fg:#774400;
  --info-bg:#e3f0ee; --info-fg:#0b4f4f;
  --off-bg:#eceeea;  --off-fg:#3d4a4f;
  --warn-edge:#ecd49a; --warn-wash:#fff7e3;
  /* charts (graphics need 3:1 against the panel) */
  --chart-ok:#2a78d6; --chart-fail:#c93535; --chart-ok-soft:#3f8f89; --chart-grid:#e6e7e0; --chart-warn:#b06a00;

  --radius:8px; --radius-lg:12px; --radius-sm:5px;
  --shadow:0 1px 2px rgba(29,42,46,.05);
  --shadow-hover:0 6px 18px -6px rgba(29,42,46,.16),0 1px 2px rgba(29,42,46,.06);
  --shadow-pop:0 14px 34px -8px rgba(10,20,30,.22),0 2px 6px rgba(10,20,30,.08);
  --hi:none;                                   /* top edge highlight on panels (dark only) */
  --line:color-mix(in srgb,var(--border) 42%,var(--border-soft)); /* panel edges: quieter than control edges */
  --field:var(--panel);                         /* input background */
  --btn-edge:color-mix(in srgb,var(--border-input) 45%,var(--border));
  /* type scale: page title, section title, body, data, meta, label */
  --fs-page:24px; --fs-section:15px; --fs-body:14px; --fs-data:13.5px; --fs-meta:12.5px; --fs-label:11.5px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --focus-gap:#ffffff; --focus-ring:#0b6e6e;
  --focus:0 0 0 3px var(--focus-gap), 0 0 0 5px var(--focus-ring);
  --header-h:54px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px;
  --row-pad:11px; /* table row padding, 7px in compact density */
}

:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0f1517; --panel:#162024; --panel-sub:#1b272b; --panel-tint:#182226;
  --border:#2f3f3e; --border-soft:#25332f; --border-faint:#202b2b; --border-input:#6f807c;
  --ink:#e8eeee; --ink-2:#aab8bb; --ink-3:#98a7aa; --ink-on-accent:#ffffff;
  --accent:#0b6e6e; --accent-line:#4fb6b0; --accent-hover:#0c7b7b; --accent-text:#7ad0ca; --accent-wash:#16393a; --accent-ring:#1f5654;
  --ok-bg:#1c3a2a; --ok-fg:#94d9ad;
  --bad-bg:#4a2024; --bad-fg:#f7a9ac;
  --warn-bg:#4a3a12; --warn-fg:#f3c872;
  --info-bg:#173b3b; --info-fg:#93d6d0;
  --off-bg:#2a3639; --off-fg:#b9c5c8;
  --warn-edge:#6b5521; --warn-wash:#33290f;
  --chart-ok:#6aa6f0; --chart-fail:#f07878; --chart-ok-soft:#4f9a94; --chart-grid:#25332f; --chart-warn:#e0a13a;
  --shadow:none;
  --focus-gap:#0f1517; --focus-ring:#7ad0ca;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0f1517; --panel:#162024; --panel-sub:#1b272b; --panel-tint:#182226;
    --border:#2f3f3e; --border-soft:#25332f; --border-faint:#202b2b; --border-input:#6f807c;
    --ink:#e8eeee; --ink-2:#aab8bb; --ink-3:#98a7aa; --ink-on-accent:#ffffff;
    --accent:#0b6e6e; --accent-line:#4fb6b0; --accent-hover:#0c7b7b; --accent-text:#7ad0ca; --accent-wash:#16393a; --accent-ring:#1f5654;
    --ok-bg:#1c3a2a; --ok-fg:#94d9ad;
    --bad-bg:#4a2024; --bad-fg:#f7a9ac;
    --warn-bg:#4a3a12; --warn-fg:#f3c872;
    --info-bg:#173b3b; --info-fg:#93d6d0;
    --off-bg:#2a3639; --off-fg:#b9c5c8;
    --warn-edge:#6b5521; --warn-wash:#33290f;
    --chart-ok:#6aa6f0; --chart-fail:#f07878; --chart-ok-soft:#4f9a94; --chart-grid:#25332f; --chart-warn:#e0a13a;
    --shadow:none;
    --focus-gap:#0f1517; --focus-ring:#7ad0ca;
  }
}
/* 2c ── Dark refinement: layered surfaces (page < panel < raised), hairline edges, quiet shadows, field wells. Applies to every accent. */
:root[data-theme="dark"]{--field:color-mix(in srgb,var(--bg) 58%,var(--panel));--line:var(--border-soft);--hi:inset 0 1px 0 rgba(255,255,255,.035);--shadow:none;--shadow-hover:0 8px 24px -8px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04);--shadow-pop:0 18px 44px -10px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.05);--btn-edge:var(--border);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--field:color-mix(in srgb,var(--bg) 58%,var(--panel));--line:var(--border-soft);--hi:inset 0 1px 0 rgba(255,255,255,.035);--shadow:none;--shadow-hover:0 8px 24px -8px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04);--shadow-pop:0 18px 44px -10px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.05);--btn-edge:var(--border);}}

/* 2b ── Colour themes (data-accent). Generated from the checked palette: every text pair is at least 4.5:1, every control edge and chart mark at least 3:1. */
/* Ocean */
:root[data-accent="ocean"]{--bg:#f3f6fb;--panel:#ffffff;--panel-sub:#f7f9fd;--panel-tint:#fafbfe;--border:#d3dbe8;--border-soft:#e2e8f2;--border-faint:#eaeef6;--border-input:#7a8aa3;--ink:#17212f;--ink-2:#46556b;--ink-3:#566680;--ink-on-accent:#ffffff;--accent:#1d5fd1;--accent-line:#1d5fd1;--accent-hover:#174db0;--accent-text:#1a53b8;--accent-wash:#e8f0fd;--accent-ring:#c5d8f7;--info-bg:#e2ecfc;--info-fg:#173f82;--off-bg:#eaeef5;--off-fg:#3a4658;--warn-edge:#ecd49a;--warn-wash:#fff7e3;--chart-ok-soft:#4a82d6;--chart-grid:#e2e8f2;--focus-gap:#ffffff;--focus-ring:#1d5fd1}
:root[data-theme="dark"][data-accent="ocean"]{color-scheme:dark;--bg:#0f1620;--panel:#162030;--panel-sub:#1a2638;--panel-tint:#182234;--border:#2e3d55;--border-soft:#26344a;--border-faint:#202c40;--border-input:#70829f;--ink:#e8eef7;--ink-2:#a9b7cc;--ink-3:#98a8c0;--ink-on-accent:#ffffff;--accent:#2a66d9;--accent-line:#6ea4ff;--accent-hover:#2358c0;--accent-text:#8ab8ff;--accent-wash:#16294a;--accent-ring:#264a86;--info-bg:#162d52;--info-fg:#a2c6ff;--off-bg:#26324a;--off-fg:#b9c5d9;--warn-edge:#6b5521;--warn-wash:#33290f;--chart-ok-soft:#5b95e6;--chart-grid:#26344a;--focus-gap:#0f1620;--focus-ring:#6ea4ff;--shadow:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"])[data-accent="ocean"]{color-scheme:dark;--bg:#0f1620;--panel:#162030;--panel-sub:#1a2638;--panel-tint:#182234;--border:#2e3d55;--border-soft:#26344a;--border-faint:#202c40;--border-input:#70829f;--ink:#e8eef7;--ink-2:#a9b7cc;--ink-3:#98a8c0;--ink-on-accent:#ffffff;--accent:#2a66d9;--accent-line:#6ea4ff;--accent-hover:#2358c0;--accent-text:#8ab8ff;--accent-wash:#16294a;--accent-ring:#264a86;--info-bg:#162d52;--info-fg:#a2c6ff;--off-bg:#26324a;--off-fg:#b9c5d9;--warn-edge:#6b5521;--warn-wash:#33290f;--chart-ok-soft:#5b95e6;--chart-grid:#26344a;--focus-gap:#0f1620;--focus-ring:#6ea4ff;--shadow:none}}
/* Ministry */
:root[data-accent="ministry"]{--bg:#f7f4f3;--panel:#ffffff;--panel-sub:#faf7f6;--panel-tint:#fcfaf9;--border:#ddd4d2;--border-soft:#ebe4e2;--border-faint:#f1ebe9;--border-input:#8f7f84;--ink:#1b2233;--ink-2:#4c5266;--ink-3:#5e6377;--ink-on-accent:#ffffff;--accent:#7b1e34;--accent-line:#7b1e34;--accent-hover:#641829;--accent-text:#7b1e34;--accent-wash:#f8ecee;--accent-ring:#e8c9d0;--info-bg:#e8ebf4;--info-fg:#1d2b58;--off-bg:#eeeaea;--off-fg:#443f47;--warn-edge:#ecd49a;--warn-wash:#fff7e3;--chart-ok-soft:#4a7fcf;--chart-grid:#ebe4e2;--focus-gap:#ffffff;--focus-ring:#7b1e34}
:root[data-theme="dark"][data-accent="ministry"]{color-scheme:dark;--bg:#14121a;--panel:#1d1a25;--panel-sub:#231f2c;--panel-tint:#201c29;--border:#3a3446;--border-soft:#2f2a3a;--border-faint:#292433;--border-input:#827a92;--ink:#ece9f1;--ink-2:#b4aec2;--ink-3:#a39dB3;--ink-on-accent:#ffffff;--accent:#a02c4a;--accent-line:#e0708a;--accent-hover:#b2395a;--accent-text:#f2a3b6;--accent-wash:#3a1b27;--accent-ring:#5e2c3c;--info-bg:#1f2748;--info-fg:#b3bff0;--off-bg:#2d2937;--off-fg:#c2bccf;--warn-edge:#6b5521;--warn-wash:#33290f;--chart-ok-soft:#5b8fdc;--chart-grid:#2f2a3a;--focus-gap:#14121a;--focus-ring:#e0708a;--shadow:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"])[data-accent="ministry"]{color-scheme:dark;--bg:#14121a;--panel:#1d1a25;--panel-sub:#231f2c;--panel-tint:#201c29;--border:#3a3446;--border-soft:#2f2a3a;--border-faint:#292433;--border-input:#827a92;--ink:#ece9f1;--ink-2:#b4aec2;--ink-3:#a39dB3;--ink-on-accent:#ffffff;--accent:#a02c4a;--accent-line:#e0708a;--accent-hover:#b2395a;--accent-text:#f2a3b6;--accent-wash:#3a1b27;--accent-ring:#5e2c3c;--info-bg:#1f2748;--info-fg:#b3bff0;--off-bg:#2d2937;--off-fg:#c2bccf;--warn-edge:#6b5521;--warn-wash:#33290f;--chart-ok-soft:#5b8fdc;--chart-grid:#2f2a3a;--focus-gap:#14121a;--focus-ring:#e0708a;--shadow:none}}
/* Observatory */
:root[data-accent="observatory"]{--bg:#eef2f6;--panel:#ffffff;--panel-sub:#f4f7fa;--panel-tint:#f8fafc;--border:#cdd6e0;--border-soft:#dde4ec;--border-faint:#e7ecf2;--border-input:#6f8296;--ink:#0f1b27;--ink-2:#415366;--ink-3:#52647a;--ink-on-accent:#ffffff;--accent:#0a6a8e;--accent-line:#0a6a8e;--accent-hover:#085878;--accent-text:#075c7c;--accent-wash:#e1f1f7;--accent-ring:#b9dcea;--info-bg:#dff0f7;--info-fg:#07506b;--off-bg:#e6ebf1;--off-fg:#34465a;--warn-edge:#ecd49a;--warn-wash:#fff7e3;--chart-ok-soft:#3f86d4;--chart-grid:#dde4ec;--focus-gap:#ffffff;--focus-ring:#0a6a8e}
:root[data-theme="dark"][data-accent="observatory"]{color-scheme:dark;--bg:#0a1017;--panel:#111a23;--panel-sub:#151f2a;--panel-tint:#0f1821;--border:#25323f;--border-soft:#1d2935;--border-faint:#18222d;--border-input:#5f7387;--ink:#e6edf5;--ink-2:#a3b2c2;--ink-3:#90a1b3;--ink-on-accent:#ffffff;--accent:#0f7ea3;--accent-line:#4cc3e6;--accent-hover:#0b6a8a;--accent-text:#6fd3f0;--accent-wash:#0f2c3a;--accent-ring:#1b4a5e;--info-bg:#12303f;--info-fg:#9bdcf2;--off-bg:#1f2b38;--off-fg:#b3c0ce;--warn-edge:#6b5521;--warn-wash:#33290f;--chart-ok-soft:#4a8fe0;--chart-grid:#1d2935;--focus-gap:#0a1017;--focus-ring:#4cc3e6;--shadow:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"])[data-accent="observatory"]{color-scheme:dark;--bg:#0a1017;--panel:#111a23;--panel-sub:#151f2a;--panel-tint:#0f1821;--border:#25323f;--border-soft:#1d2935;--border-faint:#18222d;--border-input:#5f7387;--ink:#e6edf5;--ink-2:#a3b2c2;--ink-3:#90a1b3;--ink-on-accent:#ffffff;--accent:#0f7ea3;--accent-line:#4cc3e6;--accent-hover:#0b6a8a;--accent-text:#6fd3f0;--accent-wash:#0f2c3a;--accent-ring:#1b4a5e;--info-bg:#12303f;--info-fg:#9bdcf2;--off-bg:#1f2b38;--off-fg:#b3c0ce;--warn-edge:#6b5521;--warn-wash:#33290f;--chart-ok-soft:#4a8fe0;--chart-grid:#1d2935;--focus-gap:#0a1017;--focus-ring:#4cc3e6;--shadow:none}}

:root[data-density="compact"]{--row-pad:7px}

/* 3 ── Base ──────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.45 var(--font);-webkit-font-smoothing:antialiased}
:lang(si) body,:lang(ta) body,body:lang(si),body:lang(ta){line-height:1.65}
h1,h2,h3,h4,p,dl,dd,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
h1{font-size:22px;font-weight:600;line-height:1.25}
h2{font-size:18px;font-weight:600;line-height:1.3}
h3,.eyebrow{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
:lang(si) h3,:lang(si) .eyebrow,:lang(ta) h3,:lang(ta) .eyebrow,:lang(si) th,:lang(ta) th{letter-spacing:0;text-transform:none}
a{color:var(--accent-text);text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled,.btn[aria-disabled="true"]{cursor:not-allowed;opacity:.55}
:focus{outline:none}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}
.mono{font-family:var(--font-mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
kbd{font:500 12px var(--font-mono);border:1px solid var(--border-input);border-bottom-width:2px;border-radius:var(--radius-sm);padding:1px 6px;background:var(--panel)}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:8px;top:-60px;background:var(--accent);color:var(--ink-on-accent);padding:10px 14px;border-radius:var(--radius);z-index:300;font-weight:600}
.skip-link:focus{top:8px}

/* 4 ── Layout ────────────────────────────────────────────────────────────── */
.page{max-width:1600px;margin:0 auto;padding:18px 28px 32px;display:flex;flex-direction:column;gap:14px}
.page-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.page-head .lede{color:var(--ink-2)}
.page-head .actions{margin-inline-start:auto;display:flex;gap:var(--s2);flex-wrap:wrap}
.breadcrumb{font-size:13px;color:var(--ink-2)}
.breadcrumb b{color:var(--ink);font-weight:600}
.split{display:flex;gap:16px;align-items:flex-start}
.split>.grow{flex:1;min-width:0}
.split>.side{width:360px;flex:none;display:flex;flex-direction:column;gap:14px}
.grid-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

/* 5 ── Components ────────────────────────────────────────────────────────── */
/* panel */
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;overflow:clip}
.panel-pad{padding:16px 18px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:12px 18px;border-bottom:1px solid var(--border-soft);background:var(--panel-sub)}
.panel-foot{padding:10px 18px;border-top:1px solid var(--border-soft);background:var(--panel-tint);font-size:12.5px;color:var(--ink-2)}
.panel.planned{border:1.5px dashed var(--ink-3);background:var(--panel-tint)}
.sub{display:block;color:var(--ink-2);font-size:12.5px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--border-input);background:var(--panel);color:var(--ink);font-weight:500;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--panel-sub);border-color:var(--ink-2)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent);font-weight:600}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-danger{background:var(--bad-fg);border-color:var(--bad-fg);color:var(--panel);font-weight:600}
.btn-ghost{border-color:transparent;background:transparent;color:var(--accent-text);font-weight:600;padding:0 8px}
.btn-ghost:hover{background:var(--accent-wash);border-color:transparent}
.btn-sm{min-height:32px;padding:0 12px;font-size:13px}
.btn-planned{border-style:dashed;background:var(--panel-tint)}
.btn .htmx-indicator{display:none}
.htmx-request .btn .htmx-indicator,.btn.htmx-request .htmx-indicator{display:inline-block}
.spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* segmented control (period, group by, filters) */
.segmented{display:inline-flex;border:1px solid var(--border-input);border-radius:var(--radius);overflow:hidden;background:var(--panel)}
.segmented>*{border:0;background:var(--panel);padding:7px 14px;min-height:34px;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.segmented>*+*{border-inline-start:1px solid var(--border-soft)}
.segmented>[aria-pressed="true"],.segmented>[aria-current="true"],.segmented>.on{background:var(--info-bg);color:var(--info-fg);font-weight:600}
.segmented>:focus-visible{position:relative;border-radius:0}

/* form fields */
.field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--ink-2)}
.input,.select,.textarea{width:100%;min-height:38px;padding:8px 12px;border:1px solid var(--border-input);border-radius:var(--radius);background:var(--panel);color:var(--ink);font-size:14px}
.textarea{min-height:72px;resize:vertical}
.input::placeholder{color:var(--ink-3)}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--accent-line)}
.input[aria-invalid="true"]{border-color:var(--bad-fg)}
.field-error{color:var(--bad-fg);font-size:12.5px}
.searchbar{display:flex;align-items:center;gap:10px;flex:1;background:var(--panel);border:1px solid var(--border-input);border-radius:var(--radius);padding:0 14px;min-height:44px}
.searchbar:focus-within{box-shadow:var(--focus);border-color:var(--accent-line)}
.searchbar input{flex:1;border:0;background:none;min-height:40px;font-family:var(--font-mono);font-size:13.5px;box-shadow:none}
.searchbar input:focus-visible{box-shadow:none}
.searchbar .label{color:var(--ink-2)}
.try-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.try{font:400 12.5px var(--font-mono);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;color:var(--ink)}
.try:hover{border-color:var(--accent-line)}

/* switch (checkbox with role=switch) */
.switch{appearance:none;-webkit-appearance:none;width:40px;height:22px;border-radius:12px;background:var(--ink-3);position:relative;flex:none;cursor:pointer;margin:0;transition:background .15s}
.switch::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.switch:checked{background:var(--accent-line)}
.switch:checked::after{transform:translateX(18px)}
.switch:focus-visible{box-shadow:var(--focus);border-radius:12px}
:root[dir="rtl"] .switch:checked::after{transform:translateX(-18px)}

/* tags: always text plus colour, never colour alone */
.tag{display:inline-block;border-radius:var(--radius-sm);padding:2px 8px;font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap}
.tag-ok{background:var(--ok-bg);color:var(--ok-fg)}
.tag-bad{background:var(--bad-bg);color:var(--bad-fg)}
.tag-warn{background:var(--warn-bg);color:var(--warn-fg)}
.tag-info{background:var(--info-bg);color:var(--info-fg)}
.tag-off{background:var(--off-bg);color:var(--off-fg)}
.tag-planned{background:var(--off-bg);color:var(--off-fg);border:1px dashed var(--ink-3)}
.tag-sm{font-size:11px;padding:1px 6px}

/* chips (active filters) */
.chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--info-bg);color:var(--info-fg);border:1px solid var(--accent-ring);border-radius:999px;padding:3px 6px 3px 12px;font-size:13px}
.chip button{border:0;background:none;color:inherit;font-size:16px;line-height:1;min-width:24px;min-height:24px;border-radius:50%}
.chip button:hover{background:var(--accent-ring)}
.chip-add{border:1px dashed var(--accent-text);background:none;color:var(--accent-text);border-radius:999px;padding:4px 14px}

/* data table */
.table-wrap{overflow:clip}   /* clip, not auto: keeps header rows sticky; narrow screens scroll sideways (section 10) */
.table{width:100%;border-collapse:collapse}
.table th{position:sticky;top:var(--header-h);z-index:2;text-align:start;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);padding:10px 12px;border-bottom:1px solid var(--border);background:var(--panel-sub);white-space:nowrap}
.table td{padding:var(--row-pad) 12px;border-bottom:1px solid var(--border-soft);vertical-align:top}
.table tbody tr:hover td{background:var(--panel-tint)}
.table tbody tr[aria-selected="true"] td,.table tbody tr.selected td{background:var(--accent-wash)}
.table tbody tr[aria-selected="true"] td:first-child,.table tbody tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent-line)}
.table .day-divider td{background:var(--panel-sub);font-weight:600;font-size:12px;color:var(--ink-2);padding:7px 12px}
.table .group-row td{background:var(--panel-sub)}
.table .num,.table td.right{text-align:end}
.table-plain td{padding:9px 12px}
.row-link{color:inherit;text-decoration:none}
.row-link:hover{text-decoration:underline}

/* KPI tile */
.kpi{padding:14px 16px}
.kpi .value{display:block;font-size:28px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}
.kpi .value small{font-size:16px;font-weight:500;color:var(--ink-2)}
.kpi .delta{font-size:12.5px;color:var(--ink-2)}
.kpi.bad .value{color:var(--bad-fg)} .kpi.warn .value{color:var(--warn-fg)} .kpi.ok .value{color:var(--ok-fg)}

/* bars and charts (SVG or flex; colours from tokens) */
.bars{display:flex;align-items:flex-end;gap:4px;height:84px}
.bars>b{flex:1;background:var(--chart-ok-soft);border-radius:2px 2px 0 0;display:flex;flex-direction:column}
.bars>b>u{display:block;background:var(--chart-fail);border-radius:2px 2px 0 0}
.chart-axis{display:flex;justify-content:space-between;color:var(--ink-2);margin-top:6px}
.legend{display:flex;gap:14px;font-size:12.5px;color:var(--ink-2)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-inline-end:5px;vertical-align:-1px}
.hbar{display:grid;grid-template-columns:1fr 2fr auto;gap:12px;align-items:center;padding:7px 0}
.hbar .track{height:10px;background:var(--border-soft);border-radius:5px;overflow:hidden}
.hbar .track>b{display:block;height:100%;background:var(--chart-ok);border-radius:5px}

/* detail list */
.dl{display:grid;grid-template-columns:120px 1fr;gap:8px 10px;font-size:13px}
.dl dt{color:var(--ink-2);font-size:12px}
.dl-stack dt{margin-top:12px;color:var(--ink-2);font-size:12px}
.dl-stack dd{margin-top:2px}

/* timeline / steps */
.steps{display:grid;gap:0}
.step{display:flex;gap:12px;padding:9px 0}
.step::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent-line);margin-top:6px;flex:none}
.step.warn::before{background:var(--chart-warn)} .step.bad::before{background:var(--chart-fail)}
.visit{display:flex;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border-soft)}
.visit .dot{width:12px;height:12px;border-radius:50%;background:var(--accent-line);margin-top:5px;flex:none;box-shadow:0 0 0 4px var(--info-bg)}

/* queue rows (Needs a human) */
.queue-item{display:grid;grid-template-columns:104px 1fr auto;gap:12px;align-items:flex-start;padding:12px 18px;border-bottom:1px solid var(--border-faint)}
.queue-item .why{color:var(--bad-fg);font-size:12.5px}
.queue-item .why.warn{color:var(--warn-fg)}

/* notices */
.notice{padding:10px 12px;border-radius:var(--radius);font-size:13px;background:var(--off-bg);color:var(--off-fg)}
.notice-warn{background:var(--warn-bg);color:var(--warn-fg)}
.notice-bad{background:var(--bad-bg);color:var(--bad-fg)}
.notice-info{background:var(--info-bg);color:var(--info-fg)}
.notice-planned{border:1.5px dashed var(--ink-3);background:var(--panel-tint);color:var(--off-fg)}

/* detail drawer (htmx target) */
.drawer{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px}
.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3)}

/* avatar */
.avatar{width:32px;height:32px;border-radius:50%;background:var(--info-bg);color:var(--info-fg);font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:13px}
.avatar-lg{width:52px;height:52px;font-size:18px}

/* language switch */
.lang-switch{display:inline-flex;border:1px solid var(--border-input);border-radius:6px;overflow:hidden}
.lang-switch a,.lang-switch button{border:0;background:var(--panel);padding:6px 12px;color:var(--ink);text-decoration:none;min-height:32px}
.lang-switch [aria-current="true"]{background:var(--accent);color:var(--ink-on-accent)}

/* 6 ── States ────────────────────────────────────────────────────────────── */
.skeleton{height:14px;border-radius:4px;background:linear-gradient(90deg,var(--border-soft),var(--panel-sub),var(--border-soft));background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
.state{padding:30px 28px;text-align:center}
.state-icon{width:44px;height:44px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;background:var(--info-bg);color:var(--info-fg)}
.state-icon.bad{background:var(--bad-bg);color:var(--bad-fg)} .state-icon.warn{background:var(--warn-bg);color:var(--warn-fg)}
.state h2{font-size:16px}
.state p{color:var(--ink-2);margin:6px 0 14px}
.htmx-request.dim{opacity:.55;transition:opacity .15s}
.htmx-added{animation:fade-in .2s ease-out}
@keyframes fade-in{from{opacity:0}to{opacity:1}}

/* 7 ── Utilities ─────────────────────────────────────────────────────────── */
.row{display:flex;gap:var(--s3);align-items:center}
.row-wrap{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:var(--s3)}
.stack-sm{display:flex;flex-direction:column;gap:var(--s2)}
.grow{flex:1;min-width:0}
.push-end{margin-inline-start:auto}
.muted{color:var(--ink-2)}
.nowrap{white-space:nowrap}
.hidden{display:none!important}
.mt-1{margin-top:var(--s2)}.mt-2{margin-top:var(--s3)}.mt-3{margin-top:var(--s4)}.mt-4{margin-top:var(--s5)}

/* 8 ── Responsive and motion ─────────────────────────────────────────────── */
@media (max-width:1100px){
  .split{flex-direction:column}
  .split>.side{width:100%}
  .grid-3{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .page{padding:14px 16px 28px}
  .grid-2,.grid-3{grid-template-columns:1fr}
  /* tables become cards: add class table-cards, put data-label="..." on each td
     and wrap the cell content in ONE <div> so label and value sit side by side */
  .table-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .table-cards tr{display:block;border-bottom:1px solid var(--border);padding:8px 0}
  .table-cards td{display:grid;grid-template-columns:104px 1fr;gap:12px;border:0;padding:4px 14px}
  .table-cards td::before{content:attr(data-label);color:var(--ink-2);font:400 12px var(--font);padding-top:2px}
  .table-cards .num,.table-cards td.right{text-align:start}
  .table-cards .day-divider td{display:block}
  .table-cards .day-divider td::before{content:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media (forced-colors:active){
  .tag,.chip,.btn,.panel{border:1px solid CanvasText}
  .switch:checked{background:Highlight}
}

/* 9 ── Print (reports) ───────────────────────────────────────────────────── */
@media print{
  :root{--bg:#fff;--panel:#fff;--panel-sub:#f2f2f2;--ink:#000;--ink-2:#333;--border:#999;--border-soft:#ccc}
  body{font-size:11pt}
  .app-header,.page-head .actions,.no-print,.btn,.segmented,.try-row,.skip-link,.toasts,.busy-bar,.demo-strip,.dd,.nav-toggle,.find-box{display:none!important}
  .panel{overflow:visible}
  .table th{background:#eee!important}
  main.page{animation:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt}
  .page{max-width:none;padding:0}
  .panel{border:0;box-shadow:none;break-inside:avoid}
  .table th{position:static}
  .table tr{break-inside:avoid}
  a{color:#000;text-decoration:none}
}

/* nav extras */
.count-badge{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:var(--bad-bg);color:var(--bad-fg);font-size:11.5px;font-weight:700;text-align:center;margin-inline-start:4px}

/* states: end of list, stale figures (fragments/states.html) */
.end-of-list{text-align:center;padding:12px 16px;border-top:1px dashed var(--border);color:var(--ink-2);font-size:13px}



/* phone width: nothing may push the page sideways */
@media (max-width:640px){
  .ex-groupby{flex-wrap:wrap;gap:8px;max-width:100%}
  .ex-groupby .segmented{max-width:100%;overflow-x:auto}
  .panel,.panel.grow{min-width:0;max-width:100%}
  .table-cards td{min-width:0;overflow-wrap:anywhere}
}


/* 10 ── Shell: header, menus, appearance, toasts, progress ────────────────── */
.demo-strip{background:var(--warn-bg);color:var(--warn-fg);text-align:center;padding:8px 16px;font-size:13px}
.busy-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:400;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .15s}
.busy-bar::after{content:"";position:absolute;inset:0;width:35%;background:var(--accent-line);border-radius:2px;animation:busy 1.1s ease-in-out infinite}
:root[data-busy] .busy-bar{opacity:1}
@keyframes busy{from{transform:translateX(-100%)}to{transform:translateX(300%)}}

.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:var(--s4);height:56px;padding:0 24px;background:var(--panel);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;color:var(--ink);text-decoration:none;flex:none;border-radius:var(--radius-sm)}
.brand-mark{width:28px;height:28px;flex:none;display:block}
.bm-shield{fill:var(--accent)}.bm-shade{fill:#000;opacity:.16}.bm-eye{fill:var(--ink-on-accent,#fff)}.bm-iris{fill:var(--accent)}.bm-pupil{fill:var(--ink-on-accent,#fff)}
.main-nav{display:flex;align-items:stretch;flex:1;align-self:stretch;min-width:0;gap:2px}
.main-nav>a,.nav-more-btn{display:flex;align-items:center;gap:6px;padding:0 10px;color:var(--ink-2);text-decoration:none;border-bottom:3px solid transparent;border-top:3px solid transparent;white-space:nowrap;font-weight:500;border-radius:0;transition:color .12s,background-color .12s}
.main-nav>a:hover,.nav-more-btn:hover{color:var(--ink);background:var(--panel-sub)}
.main-nav>a[aria-current="page"],.nav-more.has-current .nav-more-btn{color:var(--accent-text);border-bottom-color:var(--accent-line);font-weight:600}
.main-nav>a:focus-visible,.nav-more-btn:focus-visible{border-radius:var(--radius-sm);box-shadow:inset 0 0 0 2px var(--focus-ring)}
.nav-more{display:flex;align-self:stretch}
.nav-more-btn,.icon-btn,.user-btn{list-style:none;cursor:pointer;user-select:none}
.nav-more-btn::-webkit-details-marker,.icon-btn::-webkit-details-marker,.user-btn::-webkit-details-marker{display:none}
.nav-more-btn{height:100%}
.chev{transition:transform .15s;flex:none}
details[open]>summary .chev{transform:rotate(180deg)}
.nav-extra,.nav-find,.nav-toggle{display:none}
.find-box{position:relative;flex:none}
.find-box .input{width:200px;min-height:36px;padding-inline-end:56px}
.find-box kbd{position:absolute;inset-inline-end:8px;top:50%;transform:translateY(-50%);font:500 11px var(--font-mono);color:var(--ink-2);border:1px solid var(--border);border-radius:4px;padding:0 5px;background:var(--panel-sub)}
.header-tools{display:flex;align-items:center;gap:var(--s2);flex:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius);border:1px solid transparent;color:var(--ink-2)}
.icon-btn:hover,details[open]>.icon-btn{background:var(--panel-sub);border-color:var(--border);color:var(--ink)}
.icon-btn:focus-visible,.user-btn:focus-visible{box-shadow:var(--focus);border-radius:var(--radius)}
.ico-dark{display:none}
:root[data-theme="dark"] .ico-light{display:none}
:root[data-theme="dark"] .ico-dark{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ico-light{display:none}:root:not([data-theme="light"]) .ico-dark{display:block}}
.user-btn{display:flex;align-items:center;gap:10px;padding:4px 8px 4px 4px;border-radius:var(--radius);border:1px solid transparent;color:var(--ink)}
.user-btn:hover,details[open]>.user-btn{background:var(--panel-sub);border-color:var(--border)}
.user-block{text-align:start;line-height:1.25;min-width:0}
.user-block b{display:block;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-block span{display:block;font-size:12px;color:var(--ink-2);white-space:nowrap}

/* dropdown menus: <details class="menu"> so they open without JavaScript */
.dd{position:relative}
.dd-pop{position:absolute;top:calc(100% + 6px);z-index:120;min-width:240px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 10px 30px rgba(10,20,30,.18);padding:8px;display:flex;flex-direction:column;gap:2px}
:root[data-theme="dark"] .dd-pop{box-shadow:0 10px 30px rgba(0,0,0,.5)}
.dd-pop-end{inset-inline-end:0}
.dd-pop-start{inset-inline-start:0}
.nav-more .dd-pop{top:calc(100% - 3px)}
.dd-pop a,.dd-link{display:flex;align-items:center;min-height:36px;padding:6px 12px;border-radius:var(--radius);color:var(--ink);text-decoration:none;font-weight:500;width:100%;border:0;background:none;text-align:start}
.dd-pop a:hover,.dd-link:hover{background:var(--panel-sub)}
.dd-pop a[aria-current="page"]{color:var(--accent-text);background:var(--accent-wash);font-weight:600}
.dd-title{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);padding:8px 12px 4px}
:lang(si) .dd-title,:lang(ta) .dd-title{letter-spacing:0;text-transform:none}
.dd-who{padding:8px 12px 10px;border-bottom:1px solid var(--border-soft);margin-bottom:4px;display:flex;flex-direction:column}
.dd-who b{font-weight:600}
.dd-out{color:var(--bad-fg);border-top:1px solid var(--border-soft);border-radius:0 0 var(--radius) var(--radius);margin-top:4px;cursor:pointer}
.dd .lang-switch{margin:2px 12px 6px;align-self:flex-start}
.dd-pop .lang-switch a{width:auto;border-radius:0}
.dd-pop .lang-switch a[aria-current="true"]{background:var(--accent);color:var(--ink-on-accent)}
.appearance{display:flex;flex-direction:column;gap:2px}
.appearance .segmented{margin:2px 12px 6px}
.seg-3>button{flex:1;cursor:pointer;justify-content:center;padding:6px 10px;min-height:34px;font-weight:500}
.seg-3>button[aria-pressed="true"]{background:var(--info-bg);color:var(--info-fg);font-weight:600}
.appearance-pop{min-width:290px}
.accent-list{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}
.accent-opt{display:flex;align-items:center;gap:12px;width:100%;padding:7px 12px;border:1px solid transparent;border-radius:var(--radius);background:none;text-align:start;cursor:pointer;color:var(--ink)}
.accent-opt:hover{background:var(--panel-sub)}
.accent-opt[aria-pressed="true"]{border-color:var(--accent-line);background:var(--accent-wash)}
.accent-opt b{display:block;font-weight:600}
.accent-opt .sub{font-size:12px}
.accent-opt:focus-visible{box-shadow:var(--focus)}
/* theme swatches: fixed colours on purpose, each one previews its own theme whatever theme is on now */
.swatch{display:inline-flex;width:54px;height:30px;border-radius:7px;overflow:hidden;border:1px solid var(--border-input);flex:none;background:var(--sw-bg)}
.swatch i{display:block;flex:1}
.swatch i:nth-child(1){background:var(--sw-bg)}
.swatch i:nth-child(2){background:var(--sw-panel)}
.swatch i:nth-child(3){background:var(--sw-accent)}
.swatch[data-sw="clinic"]{--sw-bg:#f6f5f1;--sw-panel:#ffffff;--sw-accent:#0b6e6e}
.swatch[data-sw="ocean"]{--sw-bg:#f3f6fb;--sw-panel:#ffffff;--sw-accent:#1d5fd1}
.swatch[data-sw="ministry"]{--sw-bg:#f7f4f3;--sw-panel:#ffffff;--sw-accent:#7b1e34}
.swatch[data-sw="observatory"]{--sw-bg:#0a1017;--sw-panel:#151f2a;--sw-accent:#4cc3e6}
.swatch-lg{width:88px;height:46px;border-radius:9px}

/* toasts */
.toasts{position:fixed;inset-inline-end:16px;bottom:16px;z-index:500;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px));pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:11px 12px 11px 16px;border-radius:var(--radius);background:var(--ink);color:var(--bg);box-shadow:0 8px 24px rgba(0,0,0,.28);font-size:13.5px;border-inline-start:4px solid var(--chart-ok);animation:toast-in .18s ease-out}
.toast-bad{border-inline-start-color:var(--chart-fail)}
.toast span{flex:1;padding-top:1px}
.toast-x{border:0;background:none;color:inherit;font-size:18px;line-height:1;min-width:24px;min-height:24px;border-radius:50%;opacity:.8}
.toast-x:hover{opacity:1;background:rgba(127,127,127,.3)}
.toast.out{opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* page title block: title (and tags), subtitle underneath, actions at the end of the title row */
.page-head{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px;row-gap:2px;padding-bottom:4px}
.page-head h1{font-size:24px;letter-spacing:-.01em}
.page-head .lede{order:5;flex:1 0 100%;font-size:14px}
.page-head .actions{order:2}
.page-head .push-end{order:2}
.h-small{font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink)}

/* rhythm, rows, focus */
.page{gap:16px}
.panel-head h2,.panel-head h3{margin:0}
.table tbody tr{transition:background-color .1s}
.table tbody tr:not([aria-selected="true"]):not(.selected):hover td{background:var(--panel-sub)}
.table tbody tr:focus-within td{background:var(--panel-tint);box-shadow:inset 0 -1px 0 var(--accent-line)}
.table td.num,.table th.num,.table td.right,.table td.mono,td[data-num]{font-variant-numeric:tabular-nums}
.table td:has(> .num),.kpi .value,.count-badge,time,.sub.num,.delta{font-variant-numeric:tabular-nums}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible,select:focus-visible{box-shadow:var(--focus)}
.btn:active{transform:translateY(1px)}
.btn{transition:background-color .12s,border-color .12s}
/* button hierarchy: one primary per area, secondary is the default, quiet for the rest, danger only for destructive acts */
.btn-quiet{border-color:transparent;background:transparent;color:var(--ink-2)}
.btn-quiet:hover{background:var(--panel-sub);border-color:var(--border)}
.btn-danger:hover{filter:brightness(1.08)}
.panel.hover-lift{transition:box-shadow .15s}
.state .state-icon svg{display:block}
.empty-art{opacity:.9}

/* sign-in pages */
.auth-body{min-height:100vh;display:flex;flex-direction:column}
.auth{width:100%;max-width:520px;margin:0 auto;padding:40px 16px 48px;display:flex;flex-direction:column;gap:16px}
.auth-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px}
.auth h1{font-size:28px;margin-top:8px}
.auth-tag{color:var(--ink-2);margin-top:-12px}
.auth-pick{display:grid;gap:8px;padding:12px}
.pick{display:grid;gap:2px;width:100%;padding:12px 14px;text-align:start;justify-items:start;background:var(--panel);border:1px solid var(--border-input);border-radius:var(--radius);color:var(--ink);transition:border-color .12s,background-color .12s}
.pick:hover{background:var(--accent-wash);border-color:var(--accent-line)}

/* 11 ── Responsive shell ─────────────────────────────────────────────────── */
@media (max-width:1480px){.find-box .input{width:150px;padding-inline-end:12px}.find-box kbd{display:none}.app-header{gap:var(--s3);padding:0 16px}.main-nav>a,.nav-more-btn{padding:0 8px}}
@media (max-width:1360px){.find-box .input{width:128px}}
/* under 1280px (where the seven tabs and More no longer fit beside the Find box): menu button, the navigation opens below the bar */
@media (max-width:1280px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius);color:var(--ink);border:1px solid var(--border);background:var(--panel);flex:none}
  .nav-toggle:hover{background:var(--panel-sub)}
  .find-box{display:none}
  .app-header{gap:var(--s3)}
  .brand{margin-inline-end:auto}
  .main-nav{display:none;position:absolute;top:100%;inset-inline:0;flex-direction:column;align-items:stretch;gap:0;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:0 14px 28px rgba(10,20,30,.16);padding:8px 16px 14px;max-height:calc(100vh - var(--header-h));overflow-y:auto}
  :root.nav-open .main-nav,.main-nav:target{display:flex}
  .main-nav>a{min-height:44px;border-bottom:1px solid var(--border-faint);border-top:0;padding:0 8px}
  .main-nav>a[aria-current="page"]{border-bottom-color:var(--border-faint);box-shadow:inset 3px 0 0 var(--accent-line);background:var(--accent-wash)}
  .nav-more{display:none}
  .nav-extra{display:flex;flex-direction:column}
  .nav-extra a{display:flex;align-items:center;min-height:44px;padding:0 8px;color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--border-faint);font-weight:500}
  .nav-extra a[aria-current="page"]{color:var(--accent-text);font-weight:600;box-shadow:inset 3px 0 0 var(--accent-line);background:var(--accent-wash)}
  .nav-find{display:block;padding:6px 0 10px}
  .user-block span{display:none}
  .dd-pop{position:fixed;top:calc(var(--header-h) + 6px);inset-inline:12px;min-width:0}
  .appearance-pop{min-width:0}
}
@media (max-width:900px){
  .page{padding:14px 16px 28px;gap:14px}
  .page-head h1{font-size:22px}
  .table-wrap{overflow-x:auto}
}
@media (max-width:1100px){.table-wrap{overflow-x:auto}.table th{top:0}}
@media (max-width:640px){
  .brand-name{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .user-block{display:none}
  .user-btn{padding:4px}
  .user-btn .chev{display:none}
  .toasts{inset-inline:12px;bottom:12px;max-width:none}
}

/* page transitions: none by default, a gentle fade when the person has not asked for less motion */
@media (prefers-reduced-motion:no-preference){
  main.page{animation:page-in .18s ease-out}
  @keyframes page-in{from{opacity:0}to{opacity:1}}
}

/* empty states: icon, headline, one line of help, optional action (fragments/states.html) */
.empty-inline{padding:10px 4px;color:var(--ink-2);font-size:13px;margin:0}
.state-icon{font-variant-numeric:tabular-nums}
.table td .state{padding:24px 12px}

/* 12 ── Look and feel pass ────────────────────────────────────────────────────
   A calm ledger: quiet paper surfaces, hairline edges, one accent used for action and state, strong blue and red only for data.
   Type scale: page title 24 / section title 15 / body 14 / data 13.5 / meta 12.5 / label 11.5 caps. Figures are tabular everywhere.
   Everything below uses the tokens above, so all four colour themes, light and dark, follow. */

/* 12.1 icons: one stroke system, drawn from the sprite in fragments/icons.html */
.ico{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.ico-sm{width:14px;height:14px}.ico-lg{width:20px;height:20px}.ico-xl{width:28px;height:28px}
.ico-sprite{position:absolute;width:0;height:0;overflow:hidden}
.btn .ico{margin-inline-start:-2px}
.btn-sm .ico{width:15px;height:15px}

/* 12.2 base type and rhythm */
body{font:400 var(--fs-body)/1.5 var(--font);font-variant-numeric:tabular-nums;color:var(--ink);display:flex;flex-direction:column;min-height:100vh;text-rendering:optimizeLegibility}
body>main,body>.page{flex:1 0 auto}
h1{font-size:var(--fs-page);letter-spacing:-.015em}
h2{font-size:18px;letter-spacing:-.01em}
.panel-head h2,.panel-head h3,.panel-head .h-small{font-size:var(--fs-section);font-weight:600;letter-spacing:-.003em;text-transform:none;color:var(--ink);line-height:1.3}
h3,.eyebrow{font-size:var(--fs-label);letter-spacing:.07em}
.sub{font-size:var(--fs-meta);line-height:1.45}
.mono{font-size:12.5px;letter-spacing:-.01em}
.page-head .lede{flex:1 0 100%;max-width:none;padding-inline-end:max(0px,calc(100% - 78ch));text-wrap:pretty}
.panel-pad>p,.state p{max-width:70ch}
.state p{margin-inline:auto}
::selection{background:var(--accent-ring);color:var(--ink)}
.page{padding:22px 32px 40px;gap:18px;width:100%}
@media (max-width:900px){.page{padding:16px 16px 32px;gap:14px}}

/* 12.3 page header: crumbs, title row with actions at the end, subtitle */
.page-head{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px;row-gap:4px;padding:0 0 6px}
.page-head h1{display:flex;align-items:center;gap:10px}
.page-head .lede{color:var(--ink-2);font-size:14px;margin-top:0}
.page-head .actions{margin-inline-start:auto;display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--fs-meta);color:var(--ink-3);margin-bottom:-10px}
.breadcrumb a{color:var(--ink-2);text-decoration:none}
.breadcrumb a:hover{color:var(--accent-text);text-decoration:underline}
.breadcrumb b{color:var(--ink);font-weight:500}

/* 12.4 surfaces */
.panel{border-color:var(--line);border-radius:var(--radius-lg);box-shadow:var(--hi),var(--shadow)}
.panel-head{padding:14px 20px 12px;background:transparent;border-bottom:1px solid var(--line);min-height:50px}
.panel-head .sub{white-space:nowrap}
.panel-pad{padding:18px 20px}
.panel-foot{padding:11px 20px;background:var(--panel-tint);border-top:1px solid var(--line)}
a.panel,.panel.hover-lift,.rv-card,.pick{transition:box-shadow .18s var(--ease),border-color .18s var(--ease),background-color .18s var(--ease),transform .18s var(--ease)}
a.panel:hover,.panel.hover-lift:hover{box-shadow:var(--shadow-hover);border-color:var(--border)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:var(--radius);line-height:1.45}
.notice>.ico{margin-top:2px}
.notice b{font-weight:600}
.drawer{border-color:var(--line);border-radius:var(--radius-lg);box-shadow:var(--hi),var(--shadow)}

/* 12.5 buttons: primary (one per area) > secondary (default) > quiet > danger. Planned stays dashed. */
.btn{min-height:36px;padding:0 14px;border-color:var(--btn-edge);border-radius:var(--radius);font-weight:500;font-size:var(--fs-body);box-shadow:var(--hi),0 1px 0 rgba(20,30,30,.04);transition:background-color .14s var(--ease),border-color .14s var(--ease),box-shadow .14s var(--ease),transform .08s}
:root[data-theme="dark"] .btn{box-shadow:var(--hi)}
.btn:hover{background:var(--panel-sub);border-color:var(--border-input);color:var(--ink)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 2px rgba(10,30,30,.18)}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--ink-on-accent)}
.btn-danger{background:var(--bad-fg);border-color:var(--bad-fg);color:var(--panel);box-shadow:none}
.btn-danger:hover{background:var(--bad-fg);border-color:var(--bad-fg);color:var(--panel)}
.btn-quiet,.btn-ghost{background:transparent;border-color:transparent;box-shadow:none}
.btn-quiet{color:var(--ink-2)}
.btn-quiet:hover{background:var(--panel-sub);border-color:var(--line);color:var(--ink)}
.btn-ghost{color:var(--accent-text)}
.btn-ghost:hover{background:var(--accent-wash);border-color:transparent;color:var(--accent-text)}
.btn-sm{min-height:30px;padding:0 11px;font-size:var(--fs-data)}
.btn-planned{border-style:dashed;background:transparent;box-shadow:none}
.btn:active{transform:translateY(1px)}
.btn-block{width:100%}
:focus-visible{box-shadow:var(--focus)}
.btn:focus-visible{border-radius:var(--radius)}

/* 12.6 form controls */
.field{gap:5px;font-size:var(--fs-meta);font-weight:500;color:var(--ink-2)}
.input,.select,.textarea{background:var(--field);min-height:36px;padding:7px 11px;font-size:var(--fs-body);border-radius:var(--radius);transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--ink-3)}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible,.searchbar:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-ring)}
.select{appearance:none;-webkit-appearance:none;padding-inline-end:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235d6b70' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:12px}
:root[dir="rtl"] .select{background-position:left 11px center}
:root[data-theme="dark"] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2398a7aa' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2398a7aa' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}}
input[type=checkbox],input[type=radio]{accent-color:var(--accent-line)}
.searchbar{background:var(--field);border-radius:var(--radius-lg);min-height:46px}
.searchbar .label{color:var(--ink-2);font-weight:500}
.try{border-color:var(--line);background:var(--panel)}

/* 12.7 segmented controls and tabs: a recessed track, the chosen option raised */
.segmented{background:var(--panel-sub);border:1px solid var(--line);border-radius:10px;padding:2px;gap:2px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.segmented::-webkit-scrollbar{display:none}
.segmented>*{flex:none}
.segmented>*{border-radius:7px;min-height:30px;padding:4px 12px;background:transparent;color:var(--ink-2);font-weight:500;font-size:var(--fs-data);transition:background-color .14s var(--ease),color .14s var(--ease)}
.segmented>*+*{border-inline-start:0}
.segmented>a:hover,.segmented>button:hover{color:var(--ink);background:color-mix(in srgb,var(--panel) 60%,transparent)}
.segmented>[aria-pressed="true"],.segmented>[aria-current="true"],.segmented>.on{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--btn-edge),0 1px 2px rgba(20,30,30,.08)}
.segmented>[aria-pressed="true"]::before,.segmented>[aria-current="true"]::before{content:none}
.segmented>:focus-visible{border-radius:7px;box-shadow:inset 0 0 0 2px var(--focus-ring)}
.seg-3>button{min-height:30px;font-size:var(--fs-data)}
.seg-3>button[aria-pressed="true"]{background:var(--panel);color:var(--ink);box-shadow:0 0 0 1px var(--btn-edge),0 1px 2px rgba(20,30,30,.08)}

/* 12.8 tags, chips, badges: one pill family, always text plus colour (and an icon when scripts run) */
.tag{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:1px 9px 1px 8px;font-size:12px;font-weight:600;line-height:1.55;letter-spacing:.005em}
.tag .ico{width:12px;height:12px;stroke-width:2.2;vertical-align:0}
.tag-sm{font-size:11px;padding:0 7px;gap:3px}
.tag-sm .ico{width:11px;height:11px}
.tag-planned{border:1px dashed var(--ink-3)}
.count-badge{border-radius:999px;min-width:18px;padding:0 6px;font-size:11px;line-height:17px;vertical-align:1px}
.chip{border-radius:999px;background:var(--accent-wash);color:var(--accent-text);border-color:var(--accent-ring);font-weight:500}
.chip button:hover{background:var(--accent-ring)}
.chip-add{border-radius:999px;border-color:var(--accent-line);color:var(--accent-text)}
.avatar{background:var(--accent-wash);color:var(--accent-text);font-weight:600}
.lang-switch{border-color:var(--btn-edge);border-radius:8px}

/* 12.9 tables */
.table th{font-size:var(--fs-label);letter-spacing:.06em;font-weight:600;color:var(--ink-2);background:var(--panel);padding:10px 14px;border-bottom:1px solid var(--border);transition:box-shadow .15s}
.table td{padding:var(--row-pad) 14px;border-bottom:1px solid var(--border-faint);font-size:var(--fs-data)}
.table tbody tr:last-child td{border-bottom:0}
.table .day-divider td,.table .group-row td{background:var(--panel-sub);font-size:var(--fs-meta);color:var(--ink-2);font-weight:600}
.table tbody tr:not([aria-selected="true"]):not(.selected):hover td{background:color-mix(in srgb,var(--accent-wash) 45%,var(--panel))}
.table-zebra tbody tr:nth-child(even) td{background:var(--panel-tint)}
.table.is-stuck th{box-shadow:0 1px 0 var(--border),0 8px 12px -8px rgba(20,30,30,.28)}
:root[data-density="compact"] .table td{font-size:13px;line-height:1.35}
:root[data-density="compact"] .table th{padding-block:7px}
:root[data-density="compact"] .sub{font-size:12px}
:root[data-density="compact"] .panel-pad{padding-block:14px}
.table .num,.table td.right{font-variant-numeric:tabular-nums}

/* 12.10 KPI tiles */
.kpi{padding:16px 18px;position:relative}
.kpi-label{display:flex;align-items:center;gap:9px;color:var(--ink-2);font-size:var(--fs-meta);font-weight:500;line-height:1.25;margin-bottom:8px}
.kpi-label .ico{box-sizing:content-box;width:15px;height:15px;padding:6px;border-radius:9px;background:var(--accent-wash);color:var(--accent-text)}
.kpi.bad .kpi-label .ico{background:var(--bad-bg);color:var(--bad-fg)}
.kpi.warn .kpi-label .ico{background:var(--warn-bg);color:var(--warn-fg)}
.kpi.ok .kpi-label .ico{background:var(--ok-bg);color:var(--ok-fg)}
.kpi .value{font-size:30px;font-weight:600;letter-spacing:-.025em;line-height:1.1}
.kpi .value small{font-size:15px;letter-spacing:0}
.kpi .delta{display:block;margin-top:4px;font-size:var(--fs-meta);line-height:1.35}

/* 12.11 states: brand mark with a small badge */
.state{padding:36px 28px}
.state-art{position:relative;width:60px;height:64px;margin:0 auto 14px}
.state-art .brand-mark{width:60px;height:64px;opacity:.92;filter:saturate(.85)}
.state-art .state-badge{position:absolute;inset-inline-end:-8px;bottom:2px;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--panel);color:var(--accent-text);border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line),var(--shadow)}
.state-art.warn .state-badge{color:var(--warn-fg);background:var(--warn-bg)}
.state-art.bad .state-badge{color:var(--bad-fg);background:var(--bad-bg)}
.state-art.warn .brand-mark,.state-art.bad .brand-mark{opacity:.55}
.state h2{font-size:16px}
.skeleton{background:linear-gradient(90deg,var(--border-faint),var(--panel-sub) 40%,var(--border-faint));background-size:220% 100%}
.htmx-added{animation:fade-up .22s var(--ease)}
@keyframes fade-up{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.end-of-list{border-top:1px solid var(--line)}

/* 12.12 header and menus */
.app-header{height:58px;background:var(--panel);border-bottom:1px solid var(--line);transition:box-shadow .2s var(--ease);padding:0 28px}
.app-header.is-scrolled{box-shadow:0 1px 0 var(--border),0 10px 18px -14px rgba(10,20,30,.35)}
.brand{font-size:16px;letter-spacing:-.01em;gap:10px}
.brand-mark{width:30px;height:30px}
.bm-shield{fill:var(--bm-shield,var(--accent))}.bm-shade{fill:var(--bm-shade,#000)}.bm-eye{fill:var(--bm-eye,var(--ink-on-accent,#fff))}.bm-iris{fill:var(--bm-iris,var(--accent))}.bm-pupil{fill:var(--bm-pupil,var(--ink-on-accent,#fff))}
.main-nav>a,.nav-more-btn{font-size:var(--fs-body);padding:0 11px;border-bottom-width:2px;border-top:2px solid transparent;color:var(--ink-2)}
.main-nav>a[aria-current="page"],.nav-more.has-current .nav-more-btn{color:var(--ink);border-bottom-color:var(--accent-line)}
.main-nav>a .nav-ico{display:none}
.main-nav>a:hover,.nav-more-btn:hover{background:transparent;color:var(--ink)}
.count-badge{margin-inline-start:6px}
.find-box .input,.nav-find .input{padding-inline-start:34px;border-color:var(--btn-edge);background:var(--panel-sub)}
.find-box .input:hover,.nav-find .input:hover{border-color:var(--border-input)}
.find-box .find-ico,.nav-find .find-ico{position:absolute;inset-inline-start:11px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none;width:15px;height:15px}
.nav-find{position:relative}
.find-box .input{width:210px}
.icon-btn,.user-btn{transition:background-color .14s var(--ease),border-color .14s var(--ease)}
.dd-pop{border-color:var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:6px}
:root[data-theme="dark"] .dd-pop{box-shadow:var(--shadow-pop);background:color-mix(in srgb,var(--panel) 90%,#fff)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dd-pop{box-shadow:var(--shadow-pop);background:color-mix(in srgb,var(--panel) 90%,#fff)}}
.dd-pop a,.dd-link{gap:10px;font-weight:500;font-size:var(--fs-body);min-height:36px}
.dd-pop a .ico,.dd-link .ico{color:var(--ink-3)}
.dd-pop a[aria-current="page"] .ico,.dd-pop a:hover .ico,.dd-link:hover .ico{color:var(--accent-text)}
.dd-out .ico{color:var(--bad-fg)!important}
.dd-title{font-size:var(--fs-label)}
@media (max-width:1280px){
  .main-nav>a{gap:12px;font-size:15px}
  .main-nav>a .nav-ico,.nav-extra a .nav-ico{display:inline-block;color:var(--ink-3);width:18px;height:18px}
  .main-nav>a[aria-current="page"] .nav-ico,.nav-extra a[aria-current="page"] .nav-ico{color:var(--accent-text)}
  .nav-extra a{gap:12px;font-size:15px}
  .main-nav{box-shadow:var(--shadow-pop)}
  .app-header{padding:0 16px}
}

/* 12.13 footer */
.app-footer{margin-top:auto;border-top:1px solid var(--line);background:transparent;color:var(--ink-2);font-size:var(--fs-meta)}
.foot-inner{max-width:1600px;margin:0 auto;padding:16px 32px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}
.foot-brand{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}
.foot-brand .brand-mark{width:18px;height:18px}
.foot-brand b{font-weight:600}
.foot-brand .mono{color:var(--ink-2);font-size:12px}
.foot-zone{display:inline-flex;align-items:center;gap:6px}
.foot-links{display:flex;gap:16px;margin-inline-start:auto}
.foot-links a{color:var(--ink-2);text-decoration:none}
.foot-links a:hover{color:var(--accent-text);text-decoration:underline}
.foot-note{flex:1 0 100%;color:var(--ink-3);font-size:12px;order:5}
@media (max-width:900px){.foot-inner{padding:14px 16px 20px}.foot-links{margin-inline-start:0;flex:1 0 100%}}
@media print{.foot-links,.foot-note{display:none}.app-footer{border:0}.foot-inner{padding:8px 0}}

/* 12.14 toasts */
.toast{align-items:center;border-radius:var(--radius-lg);padding:11px 12px 11px 14px;border-inline-start-width:0;box-shadow:var(--shadow-pop);gap:10px;background:var(--ink);color:var(--bg)}
.toast>.ico{width:18px;height:18px;color:var(--chart-ok);margin:0}
.toast-bad>.ico{color:var(--chart-fail)}
.toast-bad{border-inline-start-color:transparent}
:root[data-theme="dark"] .toast{background:color-mix(in srgb,var(--panel) 82%,#fff);color:var(--ink);box-shadow:var(--shadow-pop)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .toast{background:color-mix(in srgb,var(--panel) 82%,#fff);color:var(--ink)}}

/* 12.15 sign-in: brand panel beside the card; stacked on a phone */
.auth-body{min-height:100vh;background:var(--bg)}
.auth-shell{flex:1 0 auto;display:grid;grid-template-columns:minmax(360px,5fr) minmax(0,6fr);min-height:calc(100vh - 62px)}
.auth-brand-panel{--bm-shield:#fff;--bm-shade:#0b2a2a;--bm-eye:var(--brand-deep);--bm-iris:#fff;--bm-pupil:var(--brand-deep);
  --brand-deep:color-mix(in srgb,var(--accent) 62%,#000);position:relative;overflow:hidden;color:#fff;background:
  radial-gradient(900px 520px at 85% -10%,color-mix(in srgb,var(--accent) 80%,#fff 8%),transparent 60%),
  linear-gradient(165deg,color-mix(in srgb,var(--accent) 78%,#000),var(--brand-deep));display:flex}
.auth-brand-panel::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(160deg,#000 0,transparent 70%);mask-image:linear-gradient(160deg,#000 0,transparent 70%);pointer-events:none}
.auth-brand-panel::after{content:"";position:absolute;inset-inline-end:-120px;bottom:-140px;width:460px;height:460px;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 60px rgba(255,255,255,.03),0 0 0 120px rgba(255,255,255,.02);pointer-events:none}
.abp-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:40px;padding:48px 56px;max-width:560px;margin-inline-start:auto;width:100%;justify-content:space-between}
.abp-logo{display:inline-flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:600;font-size:18px;letter-spacing:-.01em}
.abp-logo .brand-mark{width:44px;height:44px}
.abp-copy h2{font-size:34px;line-height:1.15;letter-spacing:-.025em;font-weight:600;color:#fff;max-width:15ch}
.abp-copy p{margin-top:16px;font-size:16px;line-height:1.55;color:rgba(255,255,255,.88);max-width:38ch}
.abp-trust{display:flex;flex-direction:column;gap:14px;padding-top:24px;border-top:1px solid rgba(255,255,255,.22)}
.abp-trust li{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:rgba(255,255,255,.92)}
.abp-trust .ico{margin-top:1px;color:#fff;opacity:.95}
.auth{max-width:520px;width:100%;margin:0 auto;padding:56px 32px 48px;gap:20px;align-self:center}
.auth-head h1{font-size:28px;letter-spacing:-.02em;margin:0}
.auth-tag{color:var(--ink-2);margin:6px 0 0}
.auth-section{display:flex;flex-direction:column;gap:6px}
.auth-h{font-size:var(--fs-section);font-weight:600;letter-spacing:0;margin:0;color:var(--ink)}
.auth-card{box-shadow:var(--hi),var(--shadow)}
.auth-card .panel-pad{padding:22px}
.auth-card .btn-primary{min-height:42px;font-size:15px}
.auth-pick{display:grid;gap:10px;padding:8px 0 0}
.pick{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:13px 14px;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--panel);box-shadow:var(--hi),var(--shadow);text-align:start}
.pick:hover{border-color:var(--accent-line);background:var(--panel);box-shadow:var(--shadow-hover);transform:translateY(-1px)}
.pick:active{transform:none}
.pick .avatar{width:40px;height:40px;font-size:15px;border-radius:12px}
.pick-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.pick-body b{font-weight:600;font-size:15px}
.pick-can{color:var(--ink-2);font-size:var(--fs-meta);line-height:1.4}
.pick-cred{color:var(--ink-3);font-size:12px;margin-top:2px}
.pick-go{color:var(--ink-3);transition:transform .18s var(--ease),color .18s}
.pick:hover .pick-go{transform:translateX(3px);color:var(--accent-text)}
.auth-body .app-footer{border-top:1px solid var(--line)}
@media (max-width:900px){
  .auth-shell{grid-template-columns:1fr;min-height:0}
  .abp-inner{padding:22px 20px 24px;gap:18px;max-width:none}
  .abp-logo .brand-mark{width:36px;height:36px}
  .abp-copy h2{font-size:22px;max-width:none}
  .abp-copy p{font-size:14.5px;margin-top:8px}
  .abp-trust{padding-top:14px;gap:10px}
  .abp-trust li{font-size:13px}
  .auth{padding:24px 16px 32px}
  .auth-head h1{font-size:24px}
}

/* 12.16 motion: quiet by default, none on request */
@media (prefers-reduced-motion:reduce){
  .pick:hover,.btn:active{transform:none}
  .htmx-added{animation:none}
}
@media (forced-colors:active){
  .segmented>[aria-pressed="true"],.segmented>[aria-current="true"],.segmented>.on{outline:2px solid Highlight}
  .ico{stroke:currentColor}
}

/* 12.17 recorded-notice bar: quiet strip, not a banner */
.acc-notice.notice-info{background:var(--accent-wash);color:var(--ink);border-bottom:1px solid var(--accent-ring);padding:9px 32px;font-size:var(--fs-data);align-items:center}
.acc-notice b{color:var(--accent-text)}
.acc-notice .btn-primary{min-height:30px}
@media (max-width:900px){.acc-notice.notice-info{padding:10px 16px}}
.tag{flex:none}
