/* ============================================================
   TripsBack: il profilo (pages/profilo.php) e i campi dei dati per il
   cashback (lib_page/_campi_cashback.php), che compaiono anche nel
   checkout. La registrazione usa solo .pf-check (le caselle dei consensi).

   Il profilo e' una pagina di impostazioni, non una dashboard: niente
   riquadri bianchi uno sotto l'altro (PRODUCT.md, anti-reference "pannello di
   amministrazione"). Ogni blocco e' una riga separata da un filo, col titolo a
   sinistra e il form a destra; sotto i 760px il titolo sale sopra il form.
   Solo token di executive.css.
   ============================================================ */

.pf-shell { max-width: 960px; }

.pf-avviso { margin-bottom: 8px; }

.pf-sec {
    display: grid;
    grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
    gap: 16px 40px;
    padding: 28px 0;
    border-top: 1px solid var(--tb-line);
}
.pf-sec:first-of-type { border-top: 0; }

.pf-sec-head { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.pf-sec-head h2 { margin: 0; font: var(--tb-t-card-title); color: var(--tb-ink); }

.pf-card { min-width: 0; }

.pf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.pf-f { display: block; min-width: 0; }
.pf-hint { display: block; margin-top: 6px; font: var(--tb-t-caption); color: var(--tb-ink-soft); text-wrap: pretty; }
.pf-intro { margin: 0 0 16px; }
.pf-attuale, .pf-testo { margin: 0 0 16px; font: var(--tb-t-meta); color: var(--tb-ink-soft); text-wrap: pretty; }
.pf-attuale strong { color: var(--tb-ink); font-weight: 600; overflow-wrap: anywhere; }
.pf-attuale a { color: var(--tb-accent-ink); font-weight: 600; }
.pf-manca { margin: 0 0 16px; }

.pf-foot {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: 10px 12px;
    margin-top: 20px;
}
.pf-esito, .pf-errore { flex-basis: 100%; margin: 0; font: var(--tb-t-caption); }
.pf-esito  { color: var(--tb-emerald-ink); }
.pf-errore { color: var(--tb-danger-ink); }

.pf-check {
    display: flex; align-items: flex-start; gap: 10px;
    font: var(--tb-t-meta); color: var(--tb-ink);
    cursor: pointer;
}
.pf-check input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--tb-accent); }

/* Elimina: un bottone col bordo rosso, non pieno. Il rosso pieno sta solo nel
   dialogo, sul gesto che non si annulla. */
.pf-btn-elimina.tb-btn { color: var(--tb-danger-ink); border-color: var(--tb-danger); }
.pf-btn-elimina.tb-btn:hover { background: var(--tb-danger-soft); }

.pf-dialog-f { margin-top: 14px; }
.tb-dialog .pf-errore { margin-top: 12px; }

/* --- I campi dei dati per il cashback ------------------------------------
   Sei colonne, perche' i sotto-campi hanno larghezze naturali diverse: un
   numero civico non e' largo come una via. */
.tb-cb { margin: 0; padding: 0; border: 0; min-width: 0; }
.tb-cb legend { padding: 0; }
.tb-cb-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}
.tb-cb-f { display: block; min-width: 0; }
.tb-cb-l { display: block; margin-bottom: 6px; font: var(--tb-t-caption); color: var(--tb-ink-soft); }
.tb-cb-via    { grid-column: span 4; }
.tb-cb-civico { grid-column: span 2; }
.tb-cb-cap    { grid-column: span 2; }
.tb-cb-citta  { grid-column: span 4; }
.tb-cb-prov   { grid-column: span 3; }
.tb-cb-paese  { grid-column: span 3; }
.tb-cb-iban   { margin-top: 16px; }
.tb-cb-iban input { font-variant-numeric: tabular-nums; letter-spacing: .02em; text-transform: uppercase; }
.tb-cb-iban input::placeholder { text-transform: none; }
.tb-cb-hint { display: block; margin-top: 6px; font: var(--tb-t-caption); color: var(--tb-ink-soft); text-wrap: pretty; }

@media (max-width: 760px) {
    .pf-sec { grid-template-columns: minmax(0, 1fr); padding: 24px 0; }
    .pf-sec-head { flex-direction: row; align-items: center; justify-content: space-between; }
}

@media (max-width: 520px) {
    .pf-grid { grid-template-columns: minmax(0, 1fr); }
    .tb-cb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tb-cb-via, .tb-cb-citta, .tb-cb-prov, .tb-cb-paese { grid-column: span 2; }
    .tb-cb-civico, .tb-cb-cap { grid-column: span 1; }
}

/* "facoltativo" accanto all'etichetta: la regola sta in auth.css, che qui non c'e'. */
.page-profilo .auth-opt { font-weight: 400; color: var(--tb-ink-soft); }
