/* HealthONE Horizon — design system  (Altron HealthTech CI) */
@font-face{font-family:"Ubuntu";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/ubuntu-400.woff2) format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/ubuntu-500.woff2) format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/ubuntu-700.woff2) format("woff2")}
@font-face{font-family:"Caveat";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/caveat-600.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/jbmono-400.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/jbmono-600.woff2) format("woff2")}

:root{
  /* brand */
  --forest:#1F4650; --forest-deep:#123038; --navy:#28468D; --sky:#54B8DF; --lime:#EBF982; --coral:#EF865B; --green:#1D9E75;
  /* surfaces */
  --bg:#F2F6F7; --surface:#FFFFFF; --surface-2:#EDF3F5; --surface-3:#E3ECEF; --ink:#0F2A31; --ink-2:#2F4A52; --muted:#5B737B; --line:#D9E4E8; --line-2:#C7D6DB;
  /* status (text-safe) */
  --ok:#137A59; --ok-bg:#DDF3EA; --warn:#8F5E0A; --warn-bg:#FCEFD2; --bad:#B23A22; --bad-bg:#FCE4DC; --info:#1F5C94; --info-bg:#E0EEF9; --neutral-bg:#E8EEF0;
  --accent:var(--navy); --accent-ink:#fff; --focus:#54B8DF;
  /* hero */
  --hero: linear-gradient(45deg, #1F4650 0%, #1F4650 28%, #28468D 100%);
  --shadow-1: 0 1px 2px rgba(15,42,49,.06), 0 1px 1px rgba(15,42,49,.04);
  --shadow-2: 0 10px 30px -12px rgba(15,42,49,.22), 0 2px 6px rgba(15,42,49,.06);
  --sans:"Ubuntu",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --hand:"Caveat","Segoe Print","Bradley Hand",cursive;
  --r-lg:18px; --r-md:12px; --r-sm:8px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0A161A; --surface:#10222A; --surface-2:#152B34; --surface-3:#1B3540; --ink:#E5F0F2; --ink-2:#C4D6DB; --muted:#8FA8B0; --line:#21404A; --line-2:#2B4F5B;
  --ok:#5ED3A5; --ok-bg:#0F3A2D; --warn:#F2C35E; --warn-bg:#3A2D0E; --bad:#FF967C; --bad-bg:#43201A; --info:#86C8F2; --info-bg:#122F47; --neutral-bg:#1A323C;
  --accent:var(--sky); --accent-ink:#06202A;
  --shadow-1:0 1px 2px rgba(0,0,0,.4); --shadow-2:0 14px 34px -14px rgba(0,0,0,.7);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0A161A; --surface:#10222A; --surface-2:#152B34; --surface-3:#1B3540; --ink:#E5F0F2; --ink-2:#C4D6DB; --muted:#8FA8B0; --line:#21404A; --line-2:#2B4F5B;
  --ok:#5ED3A5; --ok-bg:#0F3A2D; --warn:#F2C35E; --warn-bg:#3A2D0E; --bad:#FF967C; --bad-bg:#43201A; --info:#86C8F2; --info-bg:#122F47; --neutral-bg:#1A323C;
  --accent:var(--sky); --accent-ink:#06202A;
  --shadow-1:0 1px 2px rgba(0,0,0,.4); --shadow-2:0 14px 34px -14px rgba(0,0,0,.7);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
a{color:var(--accent)}
.num,.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.muted{color:var(--muted)} .small{font-size:13px} .xs{font-size:12px}
.hand{font-family:var(--hand);font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
svg.i{width:18px;height:18px;flex:none;stroke-width:1.9}
svg.i.sm{width:15px;height:15px} svg.i.lg{width:22px;height:22px}

/* ------------------------------------------------ module page */
.page{padding:22px 28px 64px;max-width:1320px;margin:0 auto}
@media (max-width:760px){.page{padding:14px 14px 56px}}

/* hero band: the one bold element per page */
.hero{position:relative;border-radius:var(--r-lg);background:var(--hero);color:#fff;padding:26px 28px 30px;overflow:hidden;margin-bottom:22px;isolation:isolate;box-shadow:var(--shadow-2)}
.hero::before{content:"";position:absolute;inset:auto -10% -62% 35%;height:130%;background:radial-gradient(closest-side,rgba(84,184,223,.35),transparent 70%);z-index:-1}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--lime),var(--sky) 55%,var(--coral))}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px 24px;flex-wrap:wrap}
.hero .kicker{font-family:var(--hand);font-size:24px;line-height:1;color:var(--lime);margin:0 0 6px}
.hero h1{font-size:30px;line-height:1.12;margin:0;font-weight:700;letter-spacing:-.4px;max-width:22ch}
.hero p.lede{margin:10px 0 0;color:rgba(255,255,255,.78);max-width:62ch;font-size:15px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hero .btn.ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.22)}
.hero .btn.ghost:hover{background:rgba(255,255,255,.18)}
.hero .btn.solid{background:var(--lime);color:#13302A;border-color:transparent}
.hero-stats{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:24px}
.hstat{position:relative;min-width:110px}
.hstat .n{font-family:var(--mono);font-size:34px;font-weight:600;line-height:1;letter-spacing:-.5px}
.hstat .l{font-size:13px;color:rgba(255,255,255,.72);margin-top:6px}
.hstat.warn .n{color:#FFD58A} .hstat.bad .n{color:#FFB39C} .hstat.ok .n{color:#9FF0CD}
/* viewfinder brackets (CI) around the primary metric */
.hstat.vf{padding:10px 16px;margin:-10px -16px}
.hstat.vf::before,.hstat.vf::after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--coral)}
.hstat.vf::before{left:0;top:0;border-right:0;border-bottom:0}
.hstat.vf::after{right:0;bottom:0;border-left:0;border-top:0}
.hero.compact{padding:20px 24px 22px}
.hero.compact h1{font-size:24px}
@media (max-width:760px){.hero{padding:20px 18px 24px}.hero h1{font-size:24px}.hstat .n{font-size:28px}.hero-stats{gap:14px 26px}}

/* back link row */
.crumb{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--muted);cursor:pointer;padding:4px 0;margin-bottom:10px;font-size:14px}
.crumb:hover{color:var(--ink)}

/* ------------------------------------------------ layout */
.grid{display:grid;gap:18px}
.g-2{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.g-2e{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stack{display:flex;flex-direction:column;gap:18px;min-width:0}
.stack>*,.grid>*{min-width:0}
@media (max-width:980px){.g-2,.g-2e,.g-3{grid-template-columns:minmax(0,1fr)}}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.grow{flex:1 1 220px;min-width:0}

/* ------------------------------------------------ cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-1);min-width:0}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px 0}
.card-h h2{font-size:16px;margin:0;font-weight:700;letter-spacing:-.1px}
.card-h .sub{font-size:13px;color:var(--muted)}
.card-b{padding:14px 18px 18px}
.card.flush .card-b{padding:0}
.card.tint{background:var(--surface-2);box-shadow:none}
h2.sec{font-size:17px;margin:4px 0 12px;font-weight:700}
h3{font-size:14px;margin:0 0 8px;font-weight:700}

/* KPI strip (secondary numbers) */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden;margin-bottom:18px}
.kpi{padding:14px 18px;border-right:1px solid var(--line)}
.kpi:last-child{border-right:0}
.kpi .n{font-family:var(--mono);font-size:24px;font-weight:600;line-height:1.1}
.kpi .l{font-size:13px;color:var(--muted)}

/* ------------------------------------------------ tables */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1)}
.card .tw{border:0;border-radius:0;box-shadow:none;border-top:1px solid var(--line)}
table.t{border-collapse:collapse;width:100%;font-size:14px}
.t th{text-align:left;font-weight:500;color:var(--muted);font-size:12.5px;padding:11px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);position:sticky;top:0}
.t td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.t tr:last-child td{border-bottom:0}
.t tr.click{cursor:pointer}
.t tr.click:hover td,.t tr.click:focus-visible td{background:var(--surface-2)}
.t td.r,.t th.r{text-align:right}
.t .empty{padding:36px 16px;text-align:center;color:var(--muted)}
.who{display:flex;align-items:center;gap:11px;min-width:0}
.who .nm{font-weight:500;line-height:1.25}
.who .sb{font-size:12.5px;color:var(--muted);line-height:1.3}
.av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12.5px;color:#fff;flex:none;letter-spacing:.3px}
.av.lg{width:56px;height:56px;font-size:19px}
.av.xl{width:72px;height:72px;font-size:24px}

/* ------------------------------------------------ pills, chips, badges */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:3px 10px 3px 9px;border-radius:999px;white-space:nowrap;line-height:1.4}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.pill.nodot::before{display:none}
.p-ok{background:var(--ok-bg);color:var(--ok)} .p-warn{background:var(--warn-bg);color:var(--warn)} .p-bad{background:var(--bad-bg);color:var(--bad)} .p-info{background:var(--info-bg);color:var(--info)} .p-neutral{background:var(--neutral-bg);color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;background:var(--surface)}
.chip.haz{border-color:transparent;background:var(--warn-bg);color:var(--warn)}
.tri{display:inline-flex;align-items:center;font-size:12px;font-weight:700;padding:3px 10px;border-radius:6px;color:#fff;letter-spacing:.2px}
.tri-Red{background:#C62828}.tri-Orange{background:#B9531B}.tri-Yellow{background:#E9B621;color:#2E2400}.tri-Green{background:#2E7D32}
.prov{font-size:11.5px;padding:1px 8px;border-radius:999px;background:var(--neutral-bg);color:var(--muted);white-space:nowrap}

/* ------------------------------------------------ buttons & inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:9px 15px;font-weight:500;cursor:pointer;background:var(--accent);color:var(--accent-ink);font-size:14px;white-space:nowrap;line-height:1.2;transition:filter .15s,background .15s}
.btn:hover{filter:brightness(1.08)}
.btn.sec{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
.btn.sec:hover{background:var(--surface-2);filter:none}
.btn.go{background:var(--green);color:#fff}
.btn.danger{background:#C4452B;color:#fff}
.btn.quiet{background:none;color:var(--ink-2);border-color:transparent}
.btn.quiet:hover{background:var(--surface-2);filter:none}
.btn.sm{padding:6px 11px;font-size:13px;border-radius:8px}
.btn.xs{padding:4px 9px;font-size:12.5px;border-radius:7px}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.fld{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted);min-width:0}
.in,.fld input,.fld select,.fld textarea,textarea.in,select.in{border:1px solid var(--line-2);background:var(--surface);border-radius:9px;padding:8px 11px;font-size:14px;color:var(--ink);min-width:0;max-width:100%}
.in:focus,.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--focus);outline-offset:0;border-color:transparent}
.fld input.num{font-family:var(--mono)}
textarea.in,.fld textarea{min-height:92px;resize:vertical;line-height:1.5;width:100%}
.check{display:flex;align-items:flex-start;gap:9px;font-size:14px;cursor:pointer;color:var(--ink)}
.check input{accent-color:var(--green);width:16px;height:16px;margin-top:2px;flex:none}
.search{position:relative;flex:1;max-width:420px;min-width:180px}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}
.search input{width:100%;padding-left:36px}

/* segmented tabs */
.tabs{display:inline-flex;gap:2px;background:var(--surface-3);padding:3px;border-radius:11px;margin:0 0 18px;max-width:100%;overflow-x:auto}
.tabs button{border:0;background:none;padding:7px 14px;border-radius:8px;font-size:14px;color:var(--muted);cursor:pointer;white-space:nowrap;font-weight:500}
.tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}

/* notes / callouts */
.note{border-left:3px solid var(--sky);background:var(--info-bg);padding:11px 14px;border-radius:0 10px 10px 0;font-size:14px;color:var(--ink)}
.note.warn{border-color:#D9A13B;background:var(--warn-bg)}
.note.bad{border-color:var(--coral);background:var(--bad-bg)}
.note.ok{border-color:var(--green);background:var(--ok-bg)}
.note+.note{margin-top:8px}

/* key-value lines */
.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.kv:last-child{border-bottom:0}
.kv .k{color:var(--muted)}

/* bars */
.bars{display:flex;flex-direction:column;gap:10px}
.bar{display:grid;grid-template-columns:minmax(90px,170px) minmax(0,1fr) auto;gap:12px;align-items:center;font-size:13.5px}
.bar .num{white-space:nowrap;min-width:36px;text-align:right}
.bar .track{height:10px;background:var(--surface-3);border-radius:6px;overflow:hidden}
.bar .fill{height:100%;border-radius:6px}

/* timeline */
.tl{list-style:none;margin:0;padding:0}
.tl li{position:relative;padding:0 0 18px 24px;border-left:2px solid var(--line);margin-left:6px}
.tl li:last-child{border-left-color:transparent;padding-bottom:0}
.tl li::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2.5px solid var(--sky)}
.tl .d{font-family:var(--mono);font-size:12px;color:var(--muted)}
.tl .t{font-weight:500;display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* kanban */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}
.kcol{background:var(--surface-2);border-radius:var(--r-md);padding:12px;min-height:160px}
.kcol h3{font-size:13px;color:var(--muted);font-weight:500;display:flex;justify-content:space-between;margin-bottom:10px}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;font-size:13.5px;box-shadow:var(--shadow-1)}
.kcard .t{font-weight:500;margin:2px 0}

/* AI panel */
.ai{border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(180deg,var(--info-bg),var(--surface) 90px);padding:16px 18px}
.ai pre{white-space:pre-wrap;font:14px/1.6 var(--sans);margin:10px 0;background:var(--surface);border:1px solid var(--line);padding:12px 14px;border-radius:10px}
.ai ul{font-size:12.5px;color:var(--muted);margin:6px 0 12px;padding-left:18px}

/* empty */
.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}
.empty-state svg{width:40px;height:40px;color:var(--line-2);margin-bottom:8px}
.empty-state h3{color:var(--ink);font-size:16px;margin-bottom:4px}

/* skeleton */
.skel{display:grid;gap:14px}
.skel div{height:18px;border-radius:8px;background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:sh 1.2s linear infinite}
.skel .h{height:150px;border-radius:var(--r-lg)}
@keyframes sh{to{background-position:-200% 0}}

/* test cards (medicals) */
.test{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);margin-bottom:12px;box-shadow:var(--shadow-1)}
.test.done{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.test-h{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;gap:10px;flex-wrap:wrap}
.test-h .why{font-size:12.5px;color:var(--muted)}
.test-b{padding:0 16px 16px;display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end}
.test-b .fld input{width:96px}
.done-mark{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ok);font-weight:500}

/* audiogram input grid */
.agrid{border-collapse:collapse;font-size:13px}
.agrid th{font-weight:500;color:var(--muted);padding:4px 5px;font-size:12px;text-align:center}
.agrid td{padding:3px}
.agrid input{width:52px;text-align:center;padding:6px 4px;font-family:var(--mono);border:1px solid var(--line-2);background:var(--surface);border-radius:7px;color:var(--ink)}
.agrid .ear-R{color:#D0342C;font-weight:700} .agrid .ear-L{color:#1F63C6;font-weight:700}

/* fitness outcome picker */
.outcomes{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.outcomes label{border:1px solid var(--line-2);border-radius:10px;padding:11px 12px;cursor:pointer;display:flex;gap:9px;align-items:center;background:var(--surface);font-size:14px}
.outcomes input{accent-color:var(--green)}
.outcomes label:has(input:checked){border-color:var(--green);box-shadow:0 0 0 1px var(--green);background:var(--ok-bg)}

/* certificate (always light — it is a printed document) */
.cert{background:#fff;color:#0F2A31;border-radius:10px;max-width:780px;margin:0 auto;position:relative;overflow:hidden;border:1px solid #D9E4E8;box-shadow:var(--shadow-2)}
.cert .band{height:12px;background:linear-gradient(45deg,#1F4650 0 45%,#28468D 45% 72%,#54B8DF 72% 90%,#EBF982 90%)}
.cert .in{padding:36px 44px 32px}
.cert .ct{font-size:13px;color:#5B737B;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cert h2{font-size:30px;margin:6px 0 22px;letter-spacing:-.4px}
.cert dl{display:grid;grid-template-columns:170px 1fr;gap:9px 16px;margin:0 0 22px;font-size:14.5px}
.cert dt{color:#5B737B} .cert dd{margin:0;font-weight:500}
.cert .outcome{font-size:22px;font-weight:700;padding:12px 18px;border-radius:8px;margin-bottom:20px;display:inline-block}
.cert .foot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-top:1px solid #D9E4E8;padding-top:20px;flex-wrap:wrap}
.cert .sig{font-family:var(--hand);font-size:34px;color:#28468D;line-height:1}
.cert .serial{font-family:var(--mono);font-size:12px;color:#5B737B}
.cert .qr svg{width:116px;height:116px;display:block}
.cert.revoked::after{content:"REVOKED";position:absolute;top:46%;left:50%;transform:translate(-50%,-50%) rotate(-16deg);font-size:88px;font-weight:700;color:rgba(178,58,34,.2);letter-spacing:8px}
@media (max-width:640px){.cert .in{padding:24px 20px}.cert dl{grid-template-columns:1fr;gap:2px}.cert dd{margin-bottom:8px}}

/* charts (SVG) */
.chart text{font-family:var(--sans);fill:var(--muted);font-size:11px}
.chart .grid-l{stroke:var(--line);stroke-width:1}
.chart .axis{stroke:var(--line-2)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* diary */
.diary{border-collapse:separate;border-spacing:0;min-width:820px;width:100%}
.diary th{position:sticky;top:0;background:var(--surface-2);font-weight:500;font-size:12.5px;color:var(--muted);padding:10px;text-align:left;border-bottom:1px solid var(--line)}
.diary td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);height:50px;padding:4px 6px;vertical-align:top;min-width:150px}
.diary td.tm{min-width:64px;font-family:var(--mono);font-size:12px;color:var(--muted);border-right:1px solid var(--line-2)}
.diary td.slot{cursor:pointer}
.diary td.slot:hover{background:var(--surface-2)}
.diary td.slot:hover::after{content:"+ Book";font-size:12px;color:var(--muted)}
.appt{background:var(--info-bg);border-left:3px solid var(--sky);padding:4px 8px;font-size:12px;border-radius:6px;line-height:1.3;margin-bottom:3px;color:var(--ink)}
.appt.blk{background:var(--neutral-bg);border-left-color:var(--muted)}
.appt.done{background:var(--ok-bg);border-left-color:var(--green)}

/* misc */
.divider{height:1px;background:var(--line);margin:14px 0}
.swatch{width:34px;height:34px;border-radius:50%;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line-2);cursor:pointer;padding:0}
.swatch[aria-pressed="true"]{box-shadow:0 0 0 2px var(--focus)}
.matrix th{font-size:11.5px;white-space:normal;text-align:center;min-width:80px}
.matrix td{text-align:center}
.matrix td:first-child,.matrix th:first-child{text-align:left}
.matrix input{accent-color:var(--green);width:17px;height:17px}
.progress{height:8px;background:var(--surface-3);border-radius:6px;overflow:hidden;margin-top:6px}
.progress>div{height:100%;background:linear-gradient(90deg,var(--green),var(--sky));border-radius:6px}
.lock{text-align:center;padding:48px 20px}
.lock .ic{width:56px;height:56px;border-radius:50%;background:var(--bad-bg);color:var(--bad);display:grid;place-items:center;margin:0 auto 14px}
.qs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.qs button{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:6px 13px;cursor:pointer;font-size:13px;color:var(--ink-2)}
.qs button:hover{border-color:var(--sky)}
.rx{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.rx:last-child{border-bottom:0}
.fbuild{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--surface)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.noprint,.hero{display:none!important}body{background:#fff}.page{padding:0}}
