/* ──────────────────────────────────────────────────────────────────────────
   CARE PORTÁL app-shell — JEDINÁ care-specifická vrstva NAD sdíleným
   greenhive.css (kanonický brand). Web nemá dashboard/app-shell; tady jen
   to, co brand lib nepokrývá. VÝHRADNĚ z BRAND tokenů — žádné nové barvy/
   fonty/radiusy. Brand komponenty (header/footer/karty/tlačítka/.field/
   .reg-header/.page-bg) = greenhive.css, NE zde. ────────────────────────── */
.care-top{display:flex;align-items:center;justify-content:space-between;
  padding:.9rem clamp(16px,5vw,40px);background:var(--card-bg-header-solid);
  border-bottom:1px solid color-mix(in srgb,var(--gh-light-green) 30%,transparent)}
.care-top .logo img{height:30px;width:auto;display:block}
.care-top .right{display:flex;align-items:center;gap:1.1rem;font-size:.85rem}
.care-top .right a{color:var(--ink-faint);text-decoration:none}
.care-top .right a:hover{color:var(--brand)}
.care-wrap{width:min(1080px,92vw);margin:0 auto;padding:clamp(2rem,5vw,4rem) 0 5rem;position:relative;z-index:1}
.care-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;margin-top:1.4rem;align-items:stretch}
/* CARE F1: 4-up varianta (rychlé odkazy na dashboardu) — užší minmax, ať se 4 dlaždice
   vejdou do 1080px kontejneru bez osiřelé dlaždice na druhém řádku; mobil stack drží */
.care-grid--4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.care-grid .feature-card{width:100%;max-width:none;height:100%}
/* CTA dole, tlačítka NATURAL-width pilulky (NE full-width stretch) — přesný web .btn sizing */
.feature-card .stack{margin-top:auto;width:100%;align-items:center}
/* CTA-with-icon (ikona uvnitř .btn-solid/.btn-ghost) = shared/components.css (canon) */
.care-top .right .key-link{display:inline-flex;align-items:center;gap:.38rem}
.care-top .right .key-link svg{width:16px;height:16px;fill:none;stroke:var(--brand);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.care-foot{border-top:1px solid var(--line);background:var(--card-bg-header-solid);
  padding:1.8rem clamp(16px,5vw,40px);color:var(--ink-faint);font-size:.82rem;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;position:relative;z-index:1}
.kv{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem 0;
  border-bottom:1px solid color-mix(in srgb,var(--gh-light-green) 18%,transparent)}
.kv:last-child{border-bottom:0}
.kv .k{color:var(--ink-faint)}
.badge-soon{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--brand);background:color-mix(in srgb,var(--gh-light-green) 22%,transparent);
  border-radius:999px;padding:.25rem .7rem}
.care-form{display:grid;gap:1rem;max-width:760px;margin:1.2rem auto 0;
  background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:var(--card-line);border-radius:var(--radius-card);padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--card-shadow)}
.care-2up{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.care-2up{grid-template-columns:1fr}}
.errlist{list-style:none;margin:.4rem 0 0;padding:0;max-width:760px;margin-left:auto;margin-right:auto}
/* R4a: chybový text = sankcionovaná --danger terakota (components.css :root,
   BRAND_COLORS.md „Funkční danger tón"); stará ad-hoc červená zakázaná */
.errlist li{color:var(--danger);font-size:.85rem;margin:.2rem 0}
.feature-card h2,.care-card-title{font-family:var(--font-display);font-weight:450;
  font-size:clamp(1.2rem,2.4vw,1.5rem);color:var(--ink);margin:.2rem 0;letter-spacing:-.01em}
.stack{display:flex;flex-direction:column;gap:.7rem;align-items:center;width:100%}
/* R3: nowrap + shrink labelu — dlouhý label (čl. 9 souhlas) se láme UVNITŘ,
   akce (Odvolat) drží vpravo na řádku; wrap posílal button vlevo pod label */
.row-between{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:nowrap}
.row-between .k{min-width:0;flex:1 1 auto}
.row-between form{flex:0 0 auto}
.mt2{margin-top:1.4rem}
/* ── care-role-login (FOCUS v3): rozcestník + register retrofit — CARE-ONLY layout
   glue nad sdílenými komponentami (.ptype-tile/.card-head/.focus-note/.wiz-steps =
   shared components.css; sem jen to, co je care-specifické). Jen brand tokeny. ── */
/* rozcestník: střední karta — .auth-card-narrow (520px) je pro 2 dlaždice těsná,
   wizard --wide (960px) zbytečně velká; stejný margin rytmus jako auth-card-narrow */
.portal-card--login.gate-card{width:min(720px,100%);margin:clamp(1.2rem,2.4vw,1.8rem) auto 0}
/* 2 role dlaždice vedle sebe (b2b canon .ptype-grid = 3-up); mobil ≤760px stack
   řeší canon media na .ptype-grid; dvojitá třída = vyšší specificita než canon
   (components.css se linkuje až ZA care-app.css) */
.ptype-grid.ptype-grid--2{grid-template-columns:1fr 1fr}
/* mobil stack: dvojitá třída přebíjí i canon media (.ptype-grid, 0-1-0) → vlastní media */
@media (max-width:760px){.ptype-grid.ptype-grid--2{grid-template-columns:1fr}}
/* dlaždice jako PŘÍMÝ odkaz (b2b má <label>+radio): shodit podtržení; focus ring
   zrcadlí canon .ptype-tile:focus-within */
a.ptype-tile{text-decoration:none}
a.ptype-tile:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* doctor register: .care-form je FOCUS v3 OBSAH wizard karty, ne karta v kartě —
   shodit vlastní card chrome (pozadí/rám/stín/padding), field grid zůstává 1:1 */
.wizard-card .care-form{background:none;border:0;box-shadow:none;padding:0;max-width:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;margin:0.4rem 0 0}
/* primary CTA = natural-width pilulka vpravo dole (grid stretch by ji roztáhl
   na full-width — DoD zakazuje); web .btn sizing (padding/font) beze změny */
.wizard-card .care-form .btn-solid{justify-self:end}
/* honeypot .care-form: bare input.hp neměl ŽÁDNÉ skrývací pravidlo (canon kryje
   jen .partner-form .hp-field) → renderoval se jako viditelný prázdný řádek.
   Stejná technika jako canon: absolute off-screen (display:none by boti poznali) */
.care-form .hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
/* kompaktní rytmus .care-form uvnitř kompaktní karty (fit 1440×900):
   hustší gap + submit bez velkého mt2 odsazení; pole/fonty beze změny */
.wizard-card--compact .care-form{gap:0.7rem}
.wizard-card--compact .care-form .btn-solid.mt2{margin-top:0.3rem}
/* druhá .focus-note (Už máte účet? / Nemáte účet?) těsněji pod první */
.focus-note+.focus-note{margin-top:0.35rem}
/* 3 volitelná pole v řádku rovných třetin (doctor register fit ≤900) — mirror .care-2up */
.care-3up{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.wizard-card--compact .care-form .care-3up,
.wizard-card--compact .care-form .care-2up{gap:0.7rem}
@media (max-width:560px){.care-3up{grid-template-columns:1fr}}
/* souhlasy vlevo + primary CTA vpravo dole (natural-width, flex-end — DoD) */
.care-consent-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1.2rem}
.care-consents{display:grid;gap:0.45rem}
@media (max-width:560px){.care-consent-row{flex-direction:column;align-items:flex-end}
  .care-consent-row .care-consents{width:100%}}
/* nejtěsnější shell (doctor register): focus top padding na kompaktní hodnotě */
.care-wrap--tight.care-wrap--focus{padding-top:clamp(0.8rem,1.4vw,1.1rem)}

/* ── F2-4 Analytika — hand-rolled SVG grafy (bez JS knihovny/CDN, vzor radaru
   v doctor_catalog_detail.html). Jen --cv2-* tokeny z components.css (cv2 app
   shell), žádné nové barvy. Zelená base (F2 RESKIN), NE fialová. ────────── */
.care-v2 .cv2-linechart{width:100%}
.care-v2 .cv2-linechart svg{width:100%;height:auto;display:block}
.care-v2 .cv2-linechart polyline{fill:none;stroke:var(--cv2-accent);stroke-width:2}
.care-v2 .cv2-linechart circle{fill:var(--cv2-accent)}
.care-v2 .cv2-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:760px){.care-v2 .cv2-chart-grid{grid-template-columns:1fr}}
.care-v2 .cv2-chart-card h3{font-size:13.5px;font-weight:600;margin:0 0 8px;color:var(--cv2-text)}
.care-v2 .cv2-muted.small{font-size:11.5px}

/* Analytika scorecard redesign (2026-07-10) — kompaktní karta nahrazuje 4
   velké grafy natvrdo; plný graf schovaný za <details> (per-card toggle). */
.care-v2 .cv2-scorecard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.care-v2 .cv2-scorecard h3{font-size:13px;font-weight:600;margin:0 0 2px;color:var(--cv2-text)}
.care-v2 .cv2-scorecard .direction-hint{font-size:11px;color:var(--cv2-sub);margin:0 0 10px}
.care-v2 .cv2-scorecard .headline{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.care-v2 .cv2-scorecard .headline .baseline{font-size:15px;color:var(--cv2-sub)}
.care-v2 .cv2-scorecard .headline .arrow-sep{color:var(--cv2-sub);font-size:13px}
.care-v2 .cv2-scorecard .headline .latest{font-size:26px;font-weight:700;color:var(--cv2-text)}
/* delta barva SMĚROVĚ UVĚDOMĚLÁ (doctor_analytics.py color_state) — nikdy
   natvrdo "dolů = zelená"; improving/worsening/flat počítá Python dle
   HIGHER_IS_BETTER, šablona jen mapuje na token. */
.care-v2 .cv2-scorecard .delta{font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:3px;margin:4px 0 10px}
.care-v2 .cv2-scorecard .delta.improving{color:var(--cv2-ok)}
.care-v2 .cv2-scorecard .delta.worsening{color:var(--cv2-err)}
.care-v2 .cv2-scorecard .delta.flat{color:var(--cv2-sub)}
.care-v2 .cv2-sparkline{width:100%;max-width:140px;height:34px;display:block}
.care-v2 .cv2-scorecard-detail{margin-top:6px}
.care-v2 .cv2-scorecard-detail summary{cursor:pointer;font-size:12px;color:var(--cv2-accent);font-weight:600;list-style:none;user-select:none}
.care-v2 .cv2-scorecard-detail summary::-webkit-details-marker{display:none}
.care-v2 .cv2-scorecard-detail summary::before{content:"▸ ";display:inline-block;transition:transform .15s ease}
.care-v2 .cv2-scorecard-detail[open] summary::before{transform:rotate(90deg)}
.care-v2 .cv2-scorecard-detail .cv2-linechart{margin-top:10px}

/* chemotyp srovnání — horizontální pruhy, reuse .cv2-spark idiom (výška→šířka) */
.care-v2 .cv2-hbar-row{display:flex;align-items:center;gap:10px;margin:8px 0}
.care-v2 .cv2-hbar-row .lbl{width:110px;font-size:12.5px;color:var(--cv2-sub);flex:none}
.care-v2 .cv2-hbar-track{flex:1;height:14px;background:var(--cv2-bg);border-radius:4px;overflow:hidden}
.care-v2 .cv2-hbar-fill{height:100%;background:var(--cv2-accent);border-radius:4px}
.care-v2 .cv2-hbar-row .val{width:56px;text-align:right;font-size:12.5px;font-weight:600;flex:none}

/* NÚ trend — stacked mini-bars per měsíc, severity barvy = canon .cv2-pill ok/warn/err */
.care-v2 .cv2-ae-stack{display:flex;align-items:flex-end;gap:8px;height:70px}
/* height:70px EXPLICIT (musí sedět s .cv2-ae-stack) — bez toho je výška
   sloupce "auto" (align-items:flex-end nestretchuje), takže i style="height:X%"
   na .cv2-ae-col i počítá % z nedefinované výšky → CSS spec: computed jako
   "auto" = 0px. Bary se seedovanou DEMO daty renderovaly neviditelné (2026-07-10). */
.care-v2 .cv2-ae-col{display:flex;flex-direction:column-reverse;width:22px;height:70px;border-radius:3px 3px 0 0;overflow:hidden}
.care-v2 .cv2-ae-col i{display:block;width:100%;flex:none}
.care-v2 .cv2-ae-col i.mild{background:var(--cv2-ok)}
.care-v2 .cv2-ae-col i.moderate{background:var(--cv2-warn)}
.care-v2 .cv2-ae-col i.severe{background:var(--cv2-err)}
.care-v2 .cv2-ae-labels{display:flex;gap:8px;margin-top:6px}
.care-v2 .cv2-ae-labels span{width:22px;font-size:10.5px;color:var(--cv2-sub);text-align:center}
