/* ============================================================
   ArgentoVivo — componenti
   Regola trasversale: ogni cosa cliccabile è alta almeno --tap,
   ha un bordo visibile e un'etichetta scritta (mai la sola icona).
   ============================================================ */

/* ---------- comandi ---------- */
.btn{
  min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;gap:11px;
  padding:0 26px;border-radius:15px;border:2px solid var(--brand);background:var(--brand);color:#fff;
  font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;text-align:center;
}
.btn:hover{filter:brightness(1.12)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:var(--card);color:var(--brand)}
.btn.quiet{background:transparent;border-color:var(--line-strong);color:var(--ink)}
.btn.danger{background:var(--sos);border-color:var(--sos);color:#fff}
.btn.wide{width:100%}
.btn.big{min-height:74px;font-size:1.15rem;border-radius:18px}
.btn.small{min-height:48px;padding:0 16px;font-size:.9rem;border-radius:12px}
.btn[disabled]{opacity:.45;cursor:not-allowed}

.tbtn{
  min-height:50px;min-width:50px;padding:0 13px;border:2px solid var(--line);background:var(--card);
  color:var(--ink);border-radius:13px;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:7px;
}
.tbtn:hover{border-color:var(--line-strong);background:var(--paper)}
.tbtn[aria-pressed="true"]{background:var(--brand);color:#fff;border-color:var(--brand)}

.sos-btn{
  min-height:54px;padding:0 20px;border:2px solid var(--sos);border-radius:15px;background:var(--sos);color:#fff;
  font-weight:700;font-size:1rem;letter-spacing:.05em;cursor:pointer;display:inline-flex;align-items:center;gap:9px;
  box-shadow:0 0 0 3px var(--sos-soft);
}
.sos-btn:hover{filter:brightness(1.1)}

/* ---------- schede ---------- */
.card{background:var(--card);border:2px solid var(--line);border-radius:var(--r-m);padding:22px}
a.card,button.card{display:block;width:100%;text-align:left;text-decoration:none;color:inherit;cursor:pointer;transition:transform .12s ease,border-color .12s ease}
a.card:hover,button.card:hover{border-color:var(--pc,var(--brand));transform:translateY(-2px)}
.card h3{margin-bottom:5px}
.card p{color:var(--ink-soft);font-size:.94rem;margin:0}
.ic{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:var(--pcbg,var(--paper));color:var(--pc,var(--brand));margin-bottom:13px;border:2px solid transparent}
html.contrasto .ic{border-color:currentColor}

/* le sei domande della home */
.q-card{position:relative;padding:26px 24px 24px;border-radius:var(--r-l);overflow:hidden}
.q-card::before{content:"";position:absolute;inset:0 auto 0 0;width:9px;background:var(--pc)}
.q-card .ic{width:58px;height:58px}
.q-card .qq{font-family:var(--font-display);font-size:1.62rem;font-weight:600;line-height:1.12;display:block;margin-bottom:6px}
.q-card .pill-name{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pc);font-weight:700}
.q-card .go{margin-top:16px;display:inline-flex;align-items:center;gap:8px;color:var(--pc);font-weight:700;font-size:.92rem}

/* ---------- righe elenco ---------- */
.row{display:flex;gap:16px;align-items:center;padding:16px;background:var(--card);border:2px solid var(--line);border-radius:var(--r-m)}
.row+.row{margin-top:12px}
.row .meta{flex:1;min-width:0}
.row .meta b{display:block;font-size:1.05rem}
.row .meta span{color:var(--ink-soft);font-size:.9rem;display:block}
.row .side{display:flex;flex-direction:column;gap:9px;align-items:flex-end}
.avatar{width:58px;height:58px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:1.3rem;font-weight:700;background:var(--pcbg,var(--brand-soft));color:var(--pc,var(--brand));border:2px solid currentColor}
.avatar.sq{border-radius:15px}
.verified{display:inline-flex;align-items:center;gap:5px;color:var(--brand);font-weight:700;font-size:.8rem}

/* ---------- etichette ---------- */
.chip{display:inline-block;white-space:nowrap;font-size:.82rem;padding:6px 13px;border-radius:999px;background:var(--paper);border:2px solid var(--line);color:var(--ink-soft)}
.chiproll{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fase{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:4px 10px;border-radius:999px;border:2px solid var(--line);color:var(--ink-soft);background:var(--card);white-space:nowrap}
.fase.f1{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
html.solo-mvp [data-fase]:not([data-fase="1"]){display:none}

/* ---------- scelta grande (una decisione per schermata) ---------- */
.choice{
  display:flex;align-items:center;gap:16px;width:100%;text-align:left;
  min-height:80px;padding:16px 18px;margin-bottom:12px;cursor:pointer;
  background:var(--card);border:2px solid var(--line);border-radius:18px;
}
.choice:hover{border-color:var(--pc,var(--brand))}
.choice .ic{width:52px;height:52px;margin:0}
.choice .lab{flex:1;min-width:0}
.choice .lab b{display:block;font-size:1.1rem}
.choice .lab span{display:block;color:var(--ink-soft);font-size:.9rem}
.choice .tick{width:34px;height:34px;flex:none;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;color:transparent}
.choice[aria-pressed="true"],.choice.on{border-color:var(--pc,var(--brand));border-width:3px;background:var(--pcbg,var(--brand-soft))}
html.contrasto .choice.on,html.contrasto .choice[aria-pressed="true"]{background:#000}
.choice[aria-pressed="true"] .tick,.choice.on .tick{background:var(--pc,var(--brand));border-color:var(--pc,var(--brand));color:#fff}

/* ---------- procedura guidata ---------- */
.wiz-bar{display:flex;align-items:center;gap:14px;margin-bottom:8px;flex-wrap:wrap}
.wiz-bar .conta{font-size:.88rem;color:var(--ink-soft);font-weight:700}
.wiz-track{display:flex;gap:6px;margin:14px 0 26px}
.wiz-track i{flex:1;height:9px;border-radius:5px;background:var(--line)}
.wiz-track i.on{background:var(--brand)}
.recap{background:var(--card);border:2px solid var(--line);border-radius:var(--r-m);padding:4px 18px;margin-bottom:22px}
.recap div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.recap div:last-child{border-bottom:none}
.recap span{color:var(--ink-soft)}
.recap b{text-align:right}
.wiz-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.wiz-actions .btn{flex:1;min-width:180px}

/* ---------- moduli ---------- */
label.f{display:block;margin-bottom:20px}
label.f>span{display:block;font-weight:700;margin-bottom:8px}
label.f small{display:block;font-weight:400;color:var(--ink-soft);font-size:.88rem;margin-top:-4px;margin-bottom:8px}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=number],select,textarea{
  width:100%;min-height:var(--tap);padding:13px 16px;background:var(--card);
  border:2px solid var(--line-strong);border-radius:13px;
}
textarea{min-height:120px;resize:vertical}
.err{color:var(--sos);font-weight:700;font-size:.9rem;margin-top:8px;display:flex;gap:8px;align-items:flex-start}

/* ---------- interruttori permessi ---------- */
.perm{display:flex;align-items:center;gap:16px;padding:17px;border:2px solid var(--line);border-radius:var(--r-m);background:var(--card)}
.perm+.perm{margin-top:11px}
.perm .txt{flex:1;min-width:0}
.perm .txt b{display:block}
.perm .txt span{font-size:.88rem;color:var(--ink-soft)}
.sw{position:relative;flex:none;width:68px;height:38px;border-radius:999px;border:2px solid var(--line-strong);background:var(--paper);cursor:pointer}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:28px;height:28px;border-radius:50%;background:var(--line-strong);transition:.15s}
.sw[aria-checked="true"]{background:var(--brand-soft);border-color:var(--brand)}
.sw[aria-checked="true"]::after{left:33px;background:var(--brand)}

/* ---------- dati ---------- */
.stat{background:var(--card);border:2px solid var(--line);border-radius:var(--r-m);padding:19px}
.stat b{display:block;font-family:var(--font-display);font-size:2rem;line-height:1;color:var(--pc,var(--ink))}
.stat b em{font-style:normal;font-size:.85rem;font-family:var(--font-ui);color:var(--ink-soft)}
.stat span{font-size:.86rem;color:var(--ink-soft);display:block;margin-top:7px}

/* ---------- avvisi ---------- */
.nota{border-left:7px solid var(--amber);background:var(--card);border-radius:0 var(--r-s) var(--r-s) 0;padding:17px 19px;margin-top:22px}
.nota b{display:block;margin-bottom:4px}
.nota p{margin:0;font-size:.92rem;color:var(--ink-soft)}
.nota.ok{border-left-color:var(--brand)}
.nota.grave{border-left-color:var(--sos)}

/* ---------- "adesso" in home ---------- */
.adesso{position:relative;background:var(--card);border:3px solid var(--pc,var(--brand));border-radius:var(--r-xl);padding:26px 24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.adesso .ic{width:66px;height:66px;margin:0}
.adesso .body{flex:1;min-width:220px}
.adesso .quando{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--pc,var(--brand))}
.adesso h2{font-size:1.55rem;margin:4px 0 2px}
.adesso p{color:var(--ink-soft);margin:0}

/* ---------- chiamata rapida ---------- */
.callrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:12px}
.callcard{display:flex;align-items:center;gap:14px;padding:14px;background:var(--card);border:2px solid var(--line);border-radius:var(--r-m);text-decoration:none;color:inherit;min-height:var(--tap)}
.callcard:hover{border-color:var(--brand)}
.callcard b{display:block}
.callcard span{font-size:.85rem;color:var(--ink-soft)}

/* ---------- messaggio a comparsa ---------- */
.toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:100px;z-index:150;
  background:var(--ink);color:var(--paper);padding:16px 22px;border-radius:16px;
  display:flex;gap:12px;align-items:center;max-width:min(560px,92vw);box-shadow:0 10px 30px rgba(0,0,0,.28);
}
html.contrasto .toast{background:#000;color:#fff;border:2px solid #fff}

/* ---------- sovrapposizione emergenza ---------- */
.overlay{position:fixed;inset:0;z-index:200;background:rgba(8,16,22,.82);display:none;place-items:center;padding:16px}
.overlay.open{display:grid}
.sheet{background:var(--card);border:4px solid var(--sos);border-radius:28px;max-width:580px;width:100%;padding:30px 26px;text-align:center;max-height:94vh;overflow:auto}
.ring{width:200px;height:200px;margin:16px auto 10px;display:block}
.ring circle{fill:none;stroke-width:13}
.ring .bg{stroke:var(--sos-soft)}
html.contrasto .ring .bg{stroke:#444}
.ring .fg{stroke:var(--sos);stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1s linear}
.ring text{font-family:var(--font-display);font-size:3.4rem;font-weight:700;fill:var(--ink);stroke:none}
.chain{text-align:left;margin:20px 0 0;padding:0}
.chain li{list-style:none;display:flex;gap:13px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line);opacity:.32;transition:opacity .3s}
.chain li.done{opacity:1}
.chain li b{display:block}
.chain li span{font-size:.86rem;color:var(--ink-soft)}
.chain .dot{width:28px;height:28px;flex:none;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;color:transparent}
.chain li.done .dot{background:var(--brand);border-color:var(--brand);color:#fff}

/* ============================================================
   Guide
   ============================================================ */
.avanz{margin-top:16px}
.avanz-riga{display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink-soft);margin-bottom:7px}
.avanz-riga b{color:var(--pc,var(--brand))}
.avanz-barra{height:12px;border-radius:6px;background:var(--paper);border:2px solid var(--line);overflow:hidden}
.avanz-barra i{display:block;height:100%;background:var(--pc,var(--brand))}
.guida-card .go{margin-top:16px;display:inline-flex;align-items:center;gap:8px;color:var(--pc,var(--brand));font-weight:700;font-size:.95rem}

.lez-riga{text-decoration:none;color:inherit}
.lez-riga:hover{border-color:var(--pc,var(--brand))}
.lez-riga .avatar{font-size:1.15rem}
.lez-riga .avatar.fatta{background:var(--brand);border-color:var(--brand);color:#fff}
.lez-riga .side{color:var(--pc,var(--brand))}

/* i passi: uno per riquadro, numerati, testo grande */
ol.passi{list-style:none;margin:0;padding:0}
ol.passi li{display:flex;gap:16px;padding:22px 0;border-bottom:2px solid var(--line)}
ol.passi li:last-child{border-bottom:none}
ol.passi .num{
  width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-display);font-size:1.25rem;font-weight:700;
  background:var(--pcbg,var(--brand-soft));color:var(--pc,var(--brand));border:2px solid currentColor;
}
ol.passi .corpo{flex:1;min-width:0}
ol.passi .testo{font-size:1.12rem;margin:8px 0 0;line-height:1.5}

/* dove andrà la fotografia: descritta, non inventata */
.figura{margin:16px 0 0}
.figura-vuota{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  min-height:150px;border:3px dashed var(--line-strong);border-radius:var(--r-m);
  background:var(--paper);color:var(--ink-soft);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;
}
.figura-vuota svg{width:2.2em;height:2.2em}
.figura figcaption{font-size:.9rem;color:var(--ink-soft);margin-top:10px;font-style:italic}

.ricorda{
  display:flex;gap:16px;align-items:flex-start;margin-top:28px;padding:20px;
  border:3px solid var(--pc,var(--brand));border-radius:var(--r-l);background:var(--pcbg,var(--brand-soft));
}
html.contrasto .ricorda{background:#000}
.ricorda .ic{margin:0;width:44px;height:44px;background:transparent}
.ricorda b{display:block;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--pc,var(--brand))}
.ricorda p{margin:5px 0 0;font-family:var(--font-display);font-size:1.2rem;line-height:1.3}

.capito{border-width:3px;border-color:var(--brand)}

@media (max-width:560px){
  ol.passi li{gap:12px;padding:18px 0}
  ol.passi .num{width:40px;height:40px;font-size:1.1rem}
  ol.passi .testo{font-size:1.05rem}
  .capito .btn{width:100%}
}

@media (max-width:860px){
  .adesso{padding:20px}
  .sheet{padding:22px 18px}
  .ring{width:164px;height:164px}
  .wiz-actions .btn{min-width:100%}
}

/* ============================================================
   Telefoni stretti: le righe elenco si impilano.
   Con avatar + testo + azioni tutti su una riga, a 360 px il testo
   si riduceva a una colonna di due lettere e le etichette diventavano
   pallini. Le azioni vanno a capo su una riga tutta loro.
   ============================================================ */
@media (max-width:560px){
  .row{flex-wrap:wrap;align-items:flex-start;row-gap:14px;gap:14px}
  .row .meta{flex:1 1 0}
  .row .side{flex:1 1 100%;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
  .row .side .btn{min-width:132px}
  .row .side .chip,.row .side .verified{flex:0 1 auto}
  .perm{flex-wrap:wrap;row-gap:14px}
  .perm .txt{flex:1 1 calc(100% - 84px)}
  .callcard{min-height:66px}
}
