/* HeartCast — calm, precise, medical. Self-contained (system fonts, nothing from outside this server).
   One type scale: 13px body, 11–12px labels, 15px headings, the risk figure 20px.
   Corners: 6px on every box you type or choose in and every button, 8px on cards, 999px on state tags.
   Lines: 1px hairlines. No gradients, no glows, no shadows. Face-lift 29 Oct 2026. */
:root{--bg:#f5f6f8;--card:#fff;--ink:#1b2330;--soft:#5b6676;--faint:#8a94a3;--line:#e1e5eb;--line-2:#eef1f4;
  --acc:#1f5f8b;--acc-ink:#fff;--acc-soft:#e8f0f7;--acc-hover:#194f75;
  --bad:#b3261e;--bad-soft:#fbeceb;--warn:#8a5a00;--warn-soft:#fbf3e2;--ok:#1d6b3a;--ok-soft:#e7f3eb;--field:#fff;
  --r:6px;--rc:8px;--h:28px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#11151b;--card:#181e26;--ink:#e4e8ee;--soft:#9aa5b4;--faint:#6f7a89;
  --line:#2a323d;--line-2:#222932;--acc:#6aa7d4;--acc-ink:#0d1620;--acc-soft:#1c2b39;--acc-hover:#86b9de;
  --bad:#ef8a83;--bad-soft:#3a1f1e;--warn:#e2b45a;--warn-soft:#352a14;--ok:#7cc896;--ok-soft:#18301f;--field:#131920}}
:root[data-theme="dark"]{--bg:#11151b;--card:#181e26;--ink:#e4e8ee;--soft:#9aa5b4;--faint:#6f7a89;--line:#2a323d;--line-2:#222932;
  --acc:#6aa7d4;--acc-ink:#0d1620;--acc-soft:#1c2b39;--acc-hover:#86b9de;
  --bad:#ef8a83;--bad-soft:#3a1f1e;--warn:#e2b45a;--warn-soft:#352a14;--ok:#7cc896;--ok-soft:#18301f;--field:#131920}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:var(--acc)}
h1{font-size:15px;margin:0 0 8px;font-weight:600;letter-spacing:-.005em}
h2{font-size:13px;margin:0 0 6px;font-weight:600}
p{margin:0 0 8px}
.hc-small{font-size:11.5px;color:var(--soft)}
.hc-bad{color:var(--bad)}

/* ── header: one line on a desktop, wraps tidily on a phone ─────────────── */
.hc-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;min-height:46px;padding:7px 20px;
  background:var(--card);border-bottom:1px solid var(--line)}
.hc-brand{font-weight:650;font-size:14px;color:var(--ink);text-decoration:none;letter-spacing:.1px}
.hc-pill{font-size:11px;line-height:18px;padding:0 8px;border-radius:999px;background:var(--warn-soft);color:var(--warn);white-space:nowrap}
.hc-nav{display:flex;gap:2px;flex-wrap:wrap}
.hc-nav a{display:inline-flex;align-items:center;height:28px;font-size:12.5px;padding:0 10px;border-radius:var(--r);text-decoration:none;color:var(--soft);white-space:nowrap}
.hc-nav a:hover{background:var(--line-2);color:var(--ink)}
.hc-nav a[aria-current="page"]{color:var(--acc);background:var(--acc-soft);font-weight:550}
.hc-who{margin-left:auto;font-size:11.5px;color:var(--soft);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.hc-main{max-width:1360px;margin:0 auto;padding:16px 20px 28px}
.hc-foot{max-width:1360px;margin:0 auto;padding:0 20px 24px;font-size:11px;color:var(--faint)}

/* ── cards and buttons ──────────────────────────────────────────────────── */
.hc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--rc);padding:14px 16px;margin:0 0 14px;min-width:0}
.hc-narrow{max-width:620px;margin:40px auto 16px;padding:22px 24px}
.hc-narrow h1{font-size:16px;margin-bottom:10px}
.hc-narrow p{color:var(--ink);max-width:62ch}
.hc-narrow p.hc-small{color:var(--soft)}
.hc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2)}
.hc-btn{display:inline-flex;align-items:center;justify-content:center;height:var(--h);padding:0 12px;border-radius:var(--r);border:1px solid var(--acc);
  background:var(--acc);color:var(--acc-ink);font:inherit;font-size:12.5px;font-weight:500;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background-color .15s ease,border-color .15s ease}
.hc-btn:hover{background:var(--acc-hover);border-color:var(--acc-hover);color:var(--acc-ink)}
.hc-btn:focus-visible,.hc-nav a:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.hc-btn.hc-ghost{background:transparent;color:var(--acc);border-color:var(--line)}
.hc-btn.hc-ghost:hover{background:var(--acc-soft);border-color:var(--acc);color:var(--ink)}
.hc-btn.hc-sm{height:24px;padding:0 9px;font-size:11.5px}
.hc-btn:disabled{opacity:.55;cursor:default}

/* ── clinician page: form | card ────────────────────────────────────────── */
.hc-split{display:grid;grid-template-columns:minmax(0,540px) minmax(0,1fr);gap:14px;align-items:start}
.hc-split>.hc-card{margin:0}
/* every field is label | box | unit, on one shared grid per group, so boxes and units read straight down */
.hc-form fieldset{display:grid;grid-template-columns:196px minmax(0,1fr) max-content;column-gap:10px;border:0;border-top:1px solid var(--line-2);
  margin:0;padding:10px 0 8px;min-width:0}
.hc-form fieldset:first-of-type{border-top:0;padding-top:0}
.hc-form legend{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--soft);padding:0 8px 0 0}
.hc-f{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:center;min-height:32px}
@supports not (grid-template-columns:subgrid){.hc-f{grid-template-columns:196px minmax(0,1fr) 96px;column-gap:10px}}
.hc-f>*{min-width:0}
.hc-f>label,.hc-f>.hc-lab{font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-unit{font-size:11.5px;color:var(--soft);white-space:nowrap}
.hc-form input[type=text],.hc-form input[type=date],.hc-form select{height:var(--h);width:100%;max-width:220px;padding:0 8px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--field);color:var(--ink);font:inherit;font-size:12.5px;transition:border-color .15s ease}
.hc-form input[type=text]:hover,.hc-form input[type=date]:hover,.hc-form select:hover{border-color:var(--faint)}
.hc-form input.hc-num{max-width:96px;text-align:right;font-variant-numeric:tabular-nums}
.hc-form input:focus,.hc-form select:focus{outline:2px solid var(--acc-soft);outline-offset:0;border-color:var(--acc)}
.hc-form .hc-invalid{border-color:var(--bad)!important;background:var(--bad-soft)!important}
/* tick lists (symptoms, known disease): the name above, the choices in two even columns */
.hc-f.hc-multi{align-items:start;padding:4px 0 2px}
.hc-f.hc-multi>.hc-lab{grid-column:1/-1;padding:2px 0 4px}
.hc-f.hc-multi>span:last-child:empty{display:none}
.hc-checks{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:0 0 4px}
.hc-checks label{font-size:12px;display:flex;align-items:flex-start;gap:7px;min-height:26px;padding:4px 0;line-height:1.35;cursor:pointer}
.hc-checks input{margin:1px 0 0;flex:none;accent-color:var(--acc)}
.hc-status{min-height:18px;font-size:11.5px;color:var(--bad);margin:2px 0 6px}
/* the action bar stays in reach while the form scrolls */
.hc-formbar{position:sticky;bottom:0;z-index:5;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 -14px;padding:10px 0 12px;
  border-top:1px solid var(--line);background:var(--card)}

/* ── result card ────────────────────────────────────────────────────────── */
.hc-flag{border:1px solid var(--bad);background:var(--bad-soft);color:var(--bad);border-radius:var(--rc);padding:10px 12px;margin:0 0 12px;font-size:12.5px}
.hc-flag b{display:block;margin-bottom:2px}
.hc-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 10px}
.hc-score{border:1px solid var(--line);border-radius:var(--rc);padding:10px 12px;min-width:0;background:var(--card)}
.hc-score.hc-lead{border-color:var(--acc);box-shadow:inset 2px 0 0 var(--acc)}
.hc-score .hc-alg{font-size:11.5px;color:var(--soft);display:flex;gap:6px;align-items:center;justify-content:space-between;min-height:18px}
.hc-score .hc-alg>span:first-child{min-width:0}
/* the two scores sit side by side only when each has room for its name on one line */
.hc-split>.hc-card:last-child{container-type:inline-size}
@container (max-width:600px){.hc-scores{grid-template-columns:minmax(0,1fr)}}
.hc-score .hc-val{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.3;margin:4px 0 2px;letter-spacing:-.01em}
.hc-score .hc-val small{font-size:11.5px;font-weight:400;color:var(--soft);letter-spacing:0}
.hc-score .hc-line{font-size:12px;padding:2px 0}
.hc-tag{display:inline-block;font-size:10.5px;line-height:18px;font-weight:500;padding:0 8px;border-radius:999px;background:var(--acc-soft);color:var(--acc);white-space:nowrap;vertical-align:middle}
.hc-tag.hc-t-warn{background:var(--warn-soft);color:var(--warn)}
.hc-tag.hc-t-bad{background:var(--bad-soft);color:var(--bad)}
.hc-band{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px;padding:8px 12px;font-size:12.5px;border:1px solid var(--line);
  border-radius:var(--rc);background:var(--line-2)}
.hc-band b{font-size:13.5px}
.hc-list{margin:0 0 12px;padding:0;list-style:none;font-size:12px}
.hc-list li{padding:4px 0;border-top:1px solid var(--line-2)}
.hc-list li:first-child{border-top:0}
.hc-card h2{display:flex;gap:6px 8px;align-items:center;flex-wrap:wrap;margin-top:4px}
.hc-sec{margin:0 0 12px}
.hc-chk{display:grid;grid-template-columns:18px minmax(0,1fr) minmax(0,max-content);column-gap:10px;align-items:start;padding:6px 0;border-top:1px solid var(--line-2);font-size:12.5px;cursor:pointer}
.hc-chk>*{min-width:0}
.hc-chk input{margin:2px 0 0;accent-color:var(--acc)}
.hc-chk .hc-cite{display:block;font-size:11px;color:var(--soft);margin-top:1px}
.hc-chk .hc-tags{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.hc-caution .hc-chk{color:var(--soft);cursor:default}
.hc-disc{font-size:11px;color:var(--soft);border-top:1px solid var(--line);padding-top:10px;margin-top:12px;white-space:pre-line}
.hc-empty{color:var(--soft);font-size:12.5px}

/* ── patient questionnaires (links + submissions) ───────────────────────── */
.hc-pq-head{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin:0 0 6px}
.hc-pq-head h1{margin:0}
.hc-newlink{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.hc-newlink label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--soft);white-space:nowrap}
.hc-newlink input,.hc-newurl input,.hc-form input.hc-pc{height:var(--h);padding:0 8px;border:1px solid var(--line);border-radius:var(--r);background:var(--field);color:var(--ink);font:inherit;font-size:12.5px}
.hc-newlink input:focus,.hc-newurl input:focus{outline:2px solid var(--acc-soft);outline-offset:0;border-color:var(--acc)}
.hc-newlink input[type=text]{width:180px}
.hc-form input.hc-pc{width:100%;max-width:110px;text-transform:uppercase}
.hc-newurl{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;gap:8px;align-items:center;margin:8px 0 10px;padding:8px 10px;
  border:1px solid var(--acc);border-radius:var(--rc);background:var(--acc-soft)}
.hc-newurl input{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.hc-tbl{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12.5px;margin-top:8px}
.hc-tbl th{font-size:11px;font-weight:600;color:var(--soft);text-align:left;padding:0 10px 6px 0;text-transform:uppercase;letter-spacing:.4px;
  border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-tbl th:nth-child(1){width:108px}.hc-tbl th:nth-child(3){width:84px}.hc-tbl th:nth-child(4){width:104px}.hc-tbl th:nth-child(5){width:100px}.hc-tbl th:nth-child(6){width:64px}
.hc-tbl td{padding:0 10px 0 0;border-top:1px solid var(--line-2);height:34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-tbl tbody tr:first-child td{border-top:0}
.hc-tbl tbody tr:hover td{background:var(--line-2)}
.hc-tbl .hc-c{text-align:center;font-variant-numeric:tabular-nums}
.hc-tbl .hc-num-c{font-variant-numeric:tabular-nums;color:var(--soft)}
.hc-tbl .hc-r{text-align:right;padding-right:0}
.hc-tbl th.hc-c{text-align:center}
.hc-tbl tr.hc-here td{background:var(--acc-soft)}
.hc-subhead{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12.5px;margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid var(--line)}
.hc-subhead>a.hc-small{margin-left:auto}
.hc-subhead p{flex-basis:100%;margin:2px 0 0}
.hc-copy{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.hc-copytext{width:100%;font:11.5px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid var(--line);border-radius:var(--r);background:var(--field);color:var(--ink);padding:8px 10px;resize:vertical}

/* ── narrower windows ───────────────────────────────────────────────────── */
@media (max-width:1060px){.hc-split{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .hc-top{padding:7px 14px}
  .hc-main{padding:12px 12px 24px}
  .hc-foot{padding:0 14px 20px}
  .hc-newlink{margin-left:0;flex-basis:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .hc-newlink label{display:grid;gap:3px;min-width:0}
  .hc-newlink input,.hc-newlink input[type=text]{width:100%;min-width:0}
  .hc-newlink .hc-btn{grid-column:1/-1}
  .hc-tbl th:nth-child(5),.hc-tbl td:nth-child(5){display:none}
  .hc-newurl{grid-template-columns:minmax(0,1fr) max-content}.hc-newurl>span{grid-column:1/-1}
}
@media (max-width:600px){
  .hc-card{padding:12px}
  .hc-narrow{margin:16px 0;padding:18px 16px}
  .hc-who{margin-left:0;flex-basis:100%;order:5}
  .hc-top>.hc-btn{margin-left:auto}
  .hc-form fieldset{grid-template-columns:minmax(0,1fr) 86px;column-gap:8px}
  .hc-f{row-gap:3px;padding:4px 0}
  @supports not (grid-template-columns:subgrid){.hc-f{grid-template-columns:minmax(0,1fr) 96px}}
  .hc-f>label,.hc-f>.hc-lab{grid-column:1/-1}
  .hc-form input[type=text],.hc-form input[type=date],.hc-form select,.hc-newlink input,.hc-newurl input{font-size:16px;height:36px;max-width:none}
  .hc-form input.hc-num,.hc-form input.hc-pc{max-width:none}
  .hc-checks{grid-template-columns:minmax(0,1fr)}
  .hc-checks label{font-size:13px;min-height:32px}
  .hc-formbar{margin:0 0 -12px}
  .hc-scores{grid-template-columns:minmax(0,1fr)}
  .hc-chk{grid-template-columns:18px minmax(0,1fr)}
  .hc-chk .hc-tags{grid-column:2;justify-content:flex-start;margin-top:3px}
  .hc-card h2 .hc-tag{white-space:normal;line-height:1.35;padding:2px 8px;border-radius:var(--r)}
  /* the links list: each link is two lines - reference | age/sex | status, then date | how | Open */
  .hc-tbl,.hc-tbl tbody{display:block}
  .hc-tbl thead{display:none}
  .hc-tbl tr{display:grid;grid-template-columns:minmax(0,1fr) 72px 84px;grid-template-areas:"ref age st" "date how open";column-gap:10px;align-items:center;
    height:60px;padding:6px 0;border-top:1px solid var(--line-2)}
  .hc-tbl tbody tr:first-child{border-top:0}
  .hc-tbl td,.hc-tbl tbody tr:first-child td{display:block;height:24px;line-height:24px;padding:0;border:0;background:none}
  .hc-tbl td:nth-child(1){grid-area:date}.hc-tbl td:nth-child(2){grid-area:ref;font-weight:550}.hc-tbl td:nth-child(3){grid-area:age}
  .hc-tbl td:nth-child(4){grid-area:st;text-align:right}.hc-tbl td:nth-child(5){grid-area:how;display:block}.hc-tbl td:nth-child(6){grid-area:open}
  .hc-tbl tbody tr:hover td{background:none}
  .hc-tbl tr.hc-here{background:var(--acc-soft);box-shadow:-12px 0 0 var(--acc-soft),12px 0 0 var(--acc-soft)}
  .hc-tbl tr.hc-here td{background:none}
}
@media (prefers-reduced-motion:reduce){.hc-btn,.hc-form input,.hc-form select{transition:none}}
