/* Portale clienti ACVM – stile minimo, neutro (aspetto definitivo: SPEC §11, decisione aperta). */
/* Unico punto dei colori (decisione 19): area clienti, mail e colore principale
   del pannello leggono da qui (le mail tramite App\Support\Brand). Fuori da
   :root nessun colore scritto: lo controlla tests/Feature/BrandingTest.php. */
:root {
  --fg:#18181b; --muted:#52525b; --bg:#f4f4f5; --card:#ffffff; --line:#e4e4e7; --field-line:#a1a1aa;
  --accent:#1d4ed8; --on-accent:#ffffff; --badge-bg:#e4e4e7;
  --danger:#b91c1c; --danger-bg:#fee2e2; --danger-soft:#fef2f2; --danger-line:#fecaca;
  --ok:#15803d; --ok-bg:#ecfdf5; --ok-line:#a7f3d0;
}
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color:var(--fg); background:var(--bg); line-height:1.5; }
a { color:var(--accent); }
header.top { background:var(--card); border-bottom:1px solid var(--line); }
header.top .wrap { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; justify-content:space-between; }
header.top strong { font-size:1.05rem; }
nav { display:flex; flex-wrap:wrap; gap:4px 14px; align-items:center; }
nav form { margin:0; }
.wrap { max-width:960px; margin:0 auto; padding:14px 16px; }
.narrow { max-width:440px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:20px; margin:16px 0; }
h1 { font-size:1.4rem; margin:0 0 12px; }
h2 { font-size:1.1rem; margin:0 0 10px; }
label { display:block; font-weight:600; margin:12px 0 4px; }
input[type=text], input[type=email], input[type=search], select, textarea { width:100%; padding:10px; border:1px solid var(--field-line); border-radius:6px; font:inherit; }
input.code { font-size:1.4rem; letter-spacing:.25em; max-width:12ch; }
.btn { display:inline-block; background:var(--accent); color:var(--on-accent); border:0; border-radius:6px; padding:10px 16px; font:inherit; cursor:pointer; text-decoration:none; }
.btn.secondary { background:var(--card); color:var(--fg); border:1px solid var(--field-line); }
.btn.link { background:none; color:var(--accent); padding:0; text-decoration:underline; }
.actions { margin-top:16px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.status { background:var(--ok-bg); border:1px solid var(--ok-line); color:var(--ok); padding:10px 12px; border-radius:6px; }
.errors { background:var(--danger-soft); border:1px solid var(--danger-line); color:var(--danger); padding:10px 12px; border-radius:6px; }
.muted { color:var(--muted); font-size:.92rem; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:8px 6px; border-bottom:1px solid var(--line); vertical-align:top; }
.badge { display:inline-block; font-size:.8rem; padding:1px 8px; border-radius:999px; background:var(--badge-bg); }
.badge.off { background:var(--danger-bg); color:var(--danger); }
.badge.overdue { background:var(--danger-bg); color:var(--danger); font-weight:600; }
li.overdue { color:var(--danger); }
.codes { font-family: ui-monospace, Consolas, monospace; font-size:1.05rem; columns:2; }
.qr img { width:200px; height:200px; }
/* Testo dei messaggi con gli a capo del cliente; paragrafo senza margine sotto.
   Classi invece di style="": la CSP dell'area clienti non ammette stili inline. */
.message-body { white-space:pre-wrap; }
.flush { margin-bottom:0; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
label.inline { display:inline; margin:0; }
select.auto { width:auto; max-width:100%; }
@media (max-width: 600px) {
  table.responsive thead { display:none; }
  table.responsive tr { display:block; border-bottom:1px solid var(--line); padding:6px 0; }
  table.responsive td { display:block; border:0; padding:2px 0; }
  table.responsive td[data-label]::before { content:attr(data-label) ": "; color:var(--muted); }
  .codes { columns:1; }
}
/* Piè di pagina con il link all'informativa privacy; pagina dell'informativa. */
.foot { padding:1.5rem 0 2rem; font-size:.9rem; }
.foot a { color:var(--muted); }
.legal h1 { font-size:1.4rem; }
.legal h2 { font-size:1.1rem; margin-top:1.5rem; }
.legal blockquote { margin:0 0 1rem; padding:.5rem 1rem; border-left:4px solid var(--danger-line); background:var(--danger-soft); }
.legal table { border-collapse:collapse; width:100%; display:block; overflow-x:auto; }
.legal th, .legal td { border:1px solid var(--line); padding:.4rem .6rem; text-align:left; vertical-align:top; }
