:root{
  color-scheme:light;
  --bg:#f5f1e9;--surface:#fffdf8;--surface-2:#ece5d8;--line:#e1d8c8;--text:#2a251e;
  --muted:#6b6252; /* brand #79705f fails AA on cream; darkened to ~5.3:1 */
  --accent:#2c6e6b;--accent-ink:#ffffff;--accent-soft:#dfe9e7;
  --ok:#256b48;--ok-soft:#e2efe7;
  --warn:#7e560e;--warn-soft:#f1e7d2; /* brand #8a6112 sits at 4.50:1; darkened for margin */
  --destr:#c0492f;--destr-soft:#f4e1d8;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,system-ui,"Helvetica Neue",Arial,sans-serif;
  --font-num:ui-monospace,"SF Mono","Segoe UI",system-ui,sans-serif;
  --fs-name:1.75rem;--fs-tile:1.5rem;--fs-sig:1rem;--fs-body:1rem;--fs-cell:.9375rem;--fs-title:.8125rem;--fs-small:.8125rem;--fs-micro:.75rem;
  --lh-tight:1.2;--lh-body:1.5;
  --sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;
  --r-sheet:16px;--r-card:12px;--r-chip:999px;--r-sm:6px;--hair:1px solid var(--line);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;padding:clamp(.5rem,2vw,2rem);background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
.report{max-width:46rem;margin-inline:auto;background:var(--surface);border:var(--hair);border-radius:var(--r-sheet);padding:clamp(1rem,4vw,2rem);hyphens:auto;-webkit-hyphens:auto}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clamp-1{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;-webkit-line-clamp:1;line-clamp:1}
/* Zone A — header */
.brandbar{display:flex;align-items:center;gap:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-4);padding-bottom:var(--sp-3);border-bottom:var(--hair);flex-wrap:wrap}
.brand-lockup{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0}
.brand-mark{width:1.5rem;height:1.5rem;flex:0 0 auto;display:block}
.brand-mark-path{fill:var(--accent)} /* teal via CSS class — no inline style (CSP style-src 'self') */
.brand{font-weight:700;letter-spacing:.01em;color:var(--accent);font-size:1.0625rem}
.brand-doc{font-size:var(--fs-small);color:var(--muted)}
.pet-name{margin:0;font-size:var(--fs-name);line-height:var(--lh-tight);font-weight:700;letter-spacing:-.01em;overflow-wrap:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.signalment{margin:var(--sp-2) 0 0;font-size:var(--fs-sig);color:var(--text)}
.sig-item{white-space:nowrap}
.sig-sep{color:var(--muted);margin:0 var(--sp-2)}
.pet-food{margin:var(--sp-2) 0 0;font-size:var(--fs-small);color:var(--muted)}
.pet-food .lead{font-weight:600;color:var(--text)}
.chip-row{list-style:none;margin:var(--sp-4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.chip{display:inline-flex;align-items:center;gap:var(--sp-2);max-width:100%;padding:.1875rem var(--sp-3);border-radius:var(--r-chip);font-size:var(--fs-small);line-height:1.35;border:1px solid var(--line);background:var(--surface-2);color:var(--text)}
.chip-txt{display:block;max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip--active{background:var(--accent-soft);border-color:#c7dcd9;color:var(--text);font-weight:600}
.chip--active::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.chip--more{background:transparent;border-style:dashed;color:var(--muted);font-weight:600}
.meta{margin:var(--sp-4) 0 0;font-size:var(--fs-small);color:var(--muted)}
/* Zone B — status band */
.band{margin-top:var(--sp-6);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.tile{min-width:0;background:var(--surface-2);border:var(--hair);border-radius:var(--r-card);padding:var(--sp-3)}
.tile-label{margin:0;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--muted);overflow-wrap:break-word}
.tile-value{margin:var(--sp-2) 0 0;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:clamp(1.25rem,5vw,var(--fs-tile));line-height:1.1;font-weight:700;color:var(--text);display:flex;align-items:baseline;gap:.15em}
.tile-unit{font-size:.7em;font-weight:600;color:var(--muted)}
.tile-sub{margin:var(--sp-1) 0 0;font-size:var(--fs-small);color:var(--muted);overflow-wrap:break-word}
.tile--warn{border-left:3px solid var(--warn)}
.tile--danger{border-left:3px solid var(--destr)}
.flag{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;border-radius:50%;font-size:.8em;font-weight:800;line-height:1;color:var(--accent-ink);flex:0 0 auto}
.tile--warn .flag{background:var(--warn)}
.tile--danger .flag{background:var(--destr)}
/* Block template (extensibility contract) */
.block{margin-top:var(--sp-8)}
.block-title{margin:0;font-size:var(--fs-title);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);padding-bottom:var(--sp-2);border-bottom:var(--hair)}
.block-body{margin-top:var(--sp-4)}
.block-note{margin:var(--sp-3) 0 0;font-size:var(--fs-small);color:var(--muted)}
.empty{margin:0;color:var(--muted);font-style:italic}
/* Diagnosi */
.dx-list{list-style:none;margin:0;padding:0}
.dx{padding:var(--sp-3) 0;border-bottom:var(--hair)}
.dx:last-child{border-bottom:0;padding-bottom:0}
.dx:first-child{padding-top:0}
.dx-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}
.dx-label{font-weight:600}
.dx-meta{margin:var(--sp-1) 0 0;font-size:var(--fs-small);color:var(--muted)}
.dx-note{margin:var(--sp-2) 0 0;font-size:var(--fs-cell);color:var(--text)}
.status{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);font-weight:600;padding:.125rem var(--sp-2);border-radius:var(--r-chip);border:1px solid var(--line);white-space:nowrap}
.status-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.status--active{background:var(--ok-soft);color:var(--ok)}
.status--active .status-dot{background:var(--ok)}
.status--remission{background:var(--warn-soft);color:var(--warn)}
.status--remission .status-dot{background:transparent;box-shadow:inset 0 0 0 2px var(--warn)}
.status--resolved{background:var(--surface-2);color:var(--muted)}
.status--resolved .status-dot{background:transparent;box-shadow:inset 0 0 0 2px var(--muted)}
/* Terapia table — dose never wraps/truncates; drug name wraps in FULL (never clamped, #226 P0) so a
   strength inside the name is never hidden. The table scrolls WITHIN a focusable region at 320px; a
   CSS-only scroll-shadow (background-attachment:local) cues the hidden columns (#226 P1-2). */
.rx-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;
  background:linear-gradient(to right,var(--surface) 30%,rgba(255,253,248,0)) left center,linear-gradient(to left,var(--surface) 30%,rgba(255,253,248,0)) right center,radial-gradient(farthest-side at 0 50%,rgba(42,37,30,.16),rgba(42,37,30,0)) left center,radial-gradient(farthest-side at 100% 50%,rgba(42,37,30,.16),rgba(42,37,30,0)) right center;
  background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}
.rx-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}
.rx{width:100%;min-width:32rem;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-cell)}
.rx caption{text-align:left}
.rx th,.rx td{text-align:left;vertical-align:top;padding:var(--sp-2) var(--sp-2);border-bottom:var(--hair)}
.rx thead th{font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:700;border-bottom:2px solid var(--line)}
.rx tbody tr:last-child td{border-bottom:0}
.rx td:first-child,.rx th:first-child{padding-left:0}
.rx td:last-child,.rx th:last-child{padding-right:0}
.col-drug{width:30%}.col-dose{width:17%}.col-route{width:15%}.col-times{width:20%}.col-note{width:18%}
.rx .col-drug .drug{font-weight:600;overflow-wrap:break-word}
.rx .col-dose{white-space:nowrap;font-variant-numeric:tabular-nums}
.rx .col-route{overflow-wrap:break-word}
.rx .col-times{overflow-wrap:break-word;font-variant-numeric:tabular-nums}
.rx .col-note{overflow-wrap:break-word;color:var(--text)}
/* Andamento — SVG chart (shape-encoded state) + accessible table */
.chart{margin:0}
.chart-svg{display:block;width:100%;height:auto;background:var(--surface);border:var(--hair);border-radius:var(--r-card)}
.corridor{fill:var(--accent-soft)}
.grid-line{stroke:#c7dcd9;stroke-width:1;stroke-dasharray:4 3}
.axis{stroke:var(--line);stroke-width:1}
.divider{stroke:var(--line);stroke-width:1;opacity:.55}
.divider-strong{stroke:var(--line);stroke-width:1.8;opacity:.8}
.axis-label{fill:var(--muted);font-size:13px;font-family:var(--font)}
.chart-period{font-size:var(--fs-small);font-weight:600;color:var(--muted);margin:0 0 var(--sp-2)}
.trend-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pt-in{fill:var(--accent);stroke:var(--surface);stroke-width:1.5}
.pt-out{fill:var(--destr);stroke:var(--surface);stroke-width:1.5}
.pt-neutral{fill:var(--surface);stroke:var(--accent);stroke-width:2}
.chart-legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-2);font-size:var(--fs-small);color:var(--muted)}
.lg{display:inline-flex;align-items:center;gap:var(--sp-2)}
.lg-mark{flex:0 0 auto}
.lg-in{width:10px;height:10px;border-radius:50%;background:var(--accent)}
.lg-out{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:11px solid var(--destr)}
.lg-neutral{width:10px;height:10px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent)}
.trend-table{width:100%;border-collapse:collapse;margin-top:var(--sp-4);font-size:var(--fs-cell)}
.trend-table caption{text-align:left;font-size:var(--fs-small);color:var(--muted);padding-bottom:var(--sp-2)}
.trend-table th,.trend-table td{text-align:left;padding:var(--sp-2);border-bottom:var(--hair)}
.trend-table thead th{font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:2px solid var(--line)}
.trend-table th:first-child,.trend-table td:first-child{padding-left:0}
.trend-table .val{font-variant-numeric:tabular-nums}
.oor{font-weight:600;color:var(--destr)}
/* Scorte */
.supply-list{list-style:none;margin:0;padding:0}
.supply{display:flex;align-items:baseline;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:var(--hair)}
.supply:last-child{border-bottom:0;padding-bottom:0}
.supply:first-child{padding-top:0}
.supply-name{flex:1 1 auto;min-width:0}
.supply-status{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--muted);text-align:right}
.supply--out .supply-status{color:var(--destr);font-weight:600}
.flag--inline{width:1.05em;height:1.05em;background:var(--destr);font-size:.75rem}
/* Zone D — footer */
.doc-foot{margin-top:var(--sp-10);padding-top:var(--sp-4);border-top:var(--hair)}
.disclaimer{margin:0;font-size:var(--fs-small);color:var(--text)}
.foot-meta{margin:var(--sp-2) 0 0;font-size:var(--fs-small);color:var(--muted)}
@media (max-width:360px){:root{--fs-name:1.5rem}.band{gap:var(--sp-2)}.tile{padding:var(--sp-2)}}
@media print{body{padding:0;background:#fff}.report{max-width:none;border:0;border-radius:0;padding:0}.block{break-inside:avoid}.tile,.dx,.supply,.rx tr,.trend-table tr{break-inside:avoid}.rx-wrap{overflow:visible;background:none}.rx{min-width:0}}

/* — плашка демо-данных (только на лендинг-реплике) — */
.sample-plaque{display:inline-block;margin:0 0 var(--sp-3);padding:.1875rem var(--sp-3);background:#f1e7d2;border:1px solid #e4d5b3;border-radius:999px;color:#6d4b0c;font-size:.8125rem;font-weight:700}
