.bgv2-area-riservata { width: 100%; margin: 0 auto; color: #1a1a1a; }

/* Layout a due colonne: sidebar + contenuto */
.bgv2-area-layout { display: flex; gap: 28px; align-items: flex-start; }
.bgv2-sidebar { width: 220px; flex-shrink: 0; display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid #eaeaef; border-radius: 4px; padding: 10px; position: sticky; top: 20px; }
.bgv2-nav-item { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: none; background: none; border-radius: 4px; text-align: left; font-size: 0.92em; font-weight: 600; color: #555; cursor: pointer; width: 100%; transition: background .15s, color .15s; position: relative; }
.bgv2-nav-badge { margin-left: auto; background: #fe0000; color: #fff; font-size: 0.72em; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px; display: flex; align-items: center; justify-content: center; padding: 0 5px; flex-shrink: 0; }
.bgv2-nav-item.bgv2-nav-active .bgv2-nav-badge { background: #fff; color: #fe0000; }

/* Bacheca messaggi in Panoramica */
.bgv2-bacheca-box { margin-bottom: 18px; }
.bgv2-bacheca-lista { display: flex; flex-direction: column; gap: 2px; }
.bgv2-bacheca-msg { padding: 12px 4px; border-bottom: 1px solid #f0f0f3; cursor: pointer; }
.bgv2-bacheca-msg:last-child { border-bottom: none; }
.bgv2-bacheca-msg-testa { display: flex; align-items: center; gap: 8px; }
.bgv2-bacheca-pallino { width: 8px; height: 8px; border-radius: 50%; background: #fe0000; flex-shrink: 0; }
.bgv2-bacheca-data { margin-left: auto; color: #999; font-size: 0.78em; flex-shrink: 0; }
.bgv2-bacheca-non-letto strong { color: #111; }
.bgv2-bacheca-letto strong { color: #555; font-weight: 600; }
.bgv2-bacheca-testo { margin: 6px 0 0; color: #666; font-size: 0.9em; white-space: pre-wrap; max-height: 1.4em; overflow: hidden; text-overflow: ellipsis; transition: max-height .2s; }
.bgv2-bacheca-espanso .bgv2-bacheca-testo { max-height: 500px; }
.bgv2-nav-item:hover { background: #f4f5fb; color: #0033ca; }
.bgv2-nav-item.bgv2-nav-active { background: #0033ca; color: #fff; }
.bgv2-nav-icon { width: 20px; height: 20px; flex-shrink: 0; display: flex; }
.bgv2-nav-icon svg { width: 100%; height: 100%; }
.bgv2-nav-avatar { width: 26px; height: 26px; border-radius: 4px; background: #eef1fc; color: #0033ca; font-size: 0.72em; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.bgv2-nav-item.bgv2-nav-active .bgv2-nav-avatar { background: rgba(255,255,255,.25); color: #fff; }
.bgv2-content { flex: 1; min-width: 0; }

/* Panoramica: righe cliccabili per ogni atleta */
.bgv2-panoramica-list { display: flex; flex-direction: column; gap: 10px; }
.bgv2-panoramica-row { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid #eaeaef; border-radius: 4px; padding: 14px 18px; cursor: pointer; text-align: left; width: 100%; transition: box-shadow .15s, border-color .15s; }
.bgv2-panoramica-row:hover { border-color: #0033ca; box-shadow: 0 2px 8px rgba(0,51,202,.08); }
.bgv2-avatar-sm { width: 38px; height: 38px; border-radius: 4px; background: #eef1fc; color: #0033ca; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.95em; flex-shrink: 0; }
.bgv2-panoramica-row-info { flex: 1; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.bgv2-panoramica-row-info strong { color: #111; font-size: 0.98em; }
.bgv2-pill-blu { background: #eef1fc; color: #0033ca; }
.bgv2-add-child-btn { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; background: #fff; color: #0033ca; border: 1.5px dashed #0033ca; padding: 12px 20px; border-radius: 4px; font-weight: 700; font-size: 0.92em; text-decoration: none; transition: background .15s; }
.bgv2-add-child-btn:hover { background: #f4f5fb; }
.bgv2-add-child-btn svg { width: 16px; height: 16px; }

@media (max-width: 720px) {
	.bgv2-area-layout { flex-direction: column; }
	.bgv2-sidebar { width: 100%; flex-direction: row; overflow-x: auto; position: static; gap: 4px; }
	.bgv2-nav-item { flex-direction: column; gap: 4px; white-space: nowrap; font-size: 0.78em; padding: 10px 12px; }
}

/* Intro pagina */
.bgv2-page-intro { margin-bottom: 24px; }
.bgv2-page-intro h2 { color: #111; font-size: 1.5em; margin: 0 0 4px; letter-spacing: -0.01em; }
.bgv2-page-intro p { color: #777; margin: 0; font-size: 0.98em; }

/* Card generica */
.bgv2-card { border: 1px solid #eaeaef; border-radius: 4px; padding: 24px 28px; margin-bottom: 20px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.04); }

/* Card atleta: header con avatar, nome, categorie, badge stato */
.bgv2-card-atleta { padding: 0; overflow: hidden; }
.bgv2-card-header { display: flex; align-items: center; gap: 16px; padding: 20px 24px; background: #fff; border-bottom: 1px solid #eee; }
.bgv2-avatar { width: 44px; height: 44px; border-radius: 4px; background: #f0f1f5; color: #333; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.05em; flex-shrink: 0; }
.bgv2-card-header-info { flex: 1; min-width: 0; }
.bgv2-card-header-info h3 { margin: 0 0 6px; color: #111; font-size: 1.15em; font-weight: 700; }
.bgv2-pill-row { display: flex; flex-wrap: wrap; gap: 6px; }
.bgv2-pill { background: #f0f1f5; color: #555; font-size: 0.76em; font-weight: 600; padding: 3px 11px; border-radius: 3px; }

/* Badge stato */
.bgv2-badge { font-size: 0.78em; font-weight: 700; padding: 5px 13px; border-radius: 3px; white-space: nowrap; flex-shrink: 0; }
.bgv2-badge-pending { background: #fff3cd; color: #8a6400; }
.bgv2-badge-approved { background: #d9f2df; color: #1b7a2e; }
.bgv2-badge-rejected { background: #fde0e0; color: #b30000; }

/* Sezioni dentro la card (I tuoi dati / Documenti) */
.bgv2-card-section { padding: 22px 28px; border-top: 1px solid #f0f0f3; }
.bgv2-section-heading { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; color: #111; font-size: 1.02em; font-weight: 700; }

.bgv2-riepilogo-sola-lettura { display: flex; flex-direction: column; }
.bgv2-riepilogo-riga { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid #f4f4f7; }
.bgv2-riepilogo-riga:last-child { border-bottom: none; }
.bgv2-riepilogo-label { color: #888; font-size: 0.85em; font-weight: 600; flex-shrink: 0; }
.bgv2-riepilogo-valore { color: #111; font-size: 0.92em; font-weight: 600; text-align: right; }
.bgv2-section-icon { width: 22px; height: 22px; color: #0033ca; flex-shrink: 0; display: flex; }
.bgv2-section-icon svg { width: 100%; height: 100%; }
.bgv2-caricamento { color: #999; font-size: 0.9em; margin: 0; }

/* Cambio password obbligatorio */
#bgv2-cambia-password-box { width: 100%; max-width: 480px; margin: 40px auto; background: #fff; border: 1px solid #e5e5ea; border-radius: 4px; padding: 32px 34px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
#bgv2-cambia-password-box h2 { margin-top: 0; }
#bgv2-cambia-password-box .bgv2-grid { grid-template-columns: 1fr; }

/* Alert documenti mancanti */
.bgv2-alert-documenti { display: flex; align-items: flex-start; gap: 12px; background: #fff8ea; border: 1px solid #ffe4a8; color: #6b4c00; padding: 14px 18px; border-radius: 4px; margin-bottom: 14px; font-size: 0.93em; line-height: 1.5; }
.bgv2-alert-icon { width: 22px; height: 22px; color: #d98c00; flex-shrink: 0; margin-top: 1px; }
.bgv2-alert-icon svg { width: 100%; height: 100%; }

/* Topbar utente loggato */
.bgv2-area-topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; padding-bottom: 16px; border-bottom: 1px solid #eee; font-size: 0.95em; color: #444; }
.bgv2-area-logout { color: #fe0000; text-decoration: none; font-weight: 700; font-size: 0.9em; padding: 7px 16px; border: 1.5px solid #fe0000; border-radius: 3px; transition: all .15s; }
.bgv2-area-logout:hover { background: #fe0000; color: #fff; }

/* Lista documenti uniforme (club + per-atleta) */
.bgv2-doc-heading { color: #111; margin: 0 0 14px; font-size: 1.02em; font-weight: 700; display: flex; align-items: center; gap: 10px; }
.bgv2-doc-list { list-style: none; margin: 0; padding: 0; }
.bgv2-doc-list li { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid #f2f2f5; }
.bgv2-doc-list li:last-child { border-bottom: none; }
.bgv2-doc-icon { width: 34px; height: 34px; background: #eef1fc; color: #0033ca; border-radius: 4px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; padding: 7px; }
.bgv2-doc-icon svg { width: 100%; height: 100%; }
.bgv2-doc-label { flex: 1; display: flex; flex-direction: column; font-size: 0.92em; min-width: 0; }
.bgv2-doc-label strong { color: #222; }
.bgv2-doc-extra { color: #888; font-size: 0.85em; margin-top: 2px; }
.bgv2-doc-link { background: #0033ca; color: #fff; text-decoration: none; padding: 7px 16px; border-radius: 3px; font-size: 0.83em; font-weight: 700; flex-shrink: 0; transition: background .15s; }
.bgv2-doc-link:hover { background: #00269e; }
.bgv2-doc-elimina { background: none; border: none; color: #b30000; font-size: 1.3em; font-weight: 700; cursor: pointer; padding: 0 4px; line-height: 1; flex-shrink: 0; }
.bgv2-doc-elimina:hover { color: #fe0000; }
.bgv2-doc-empty { color: #999; font-size: 0.9em; padding: 8px 0; }

/* Blocco genitore dentro il form di modifica */
.bgv2-genitore-edit { border-top: 1px solid #f0f0f3; margin-top: 16px; padding-top: 16px; }
.bgv2-genitore-edit h4 { margin: 0 0 10px; color: #0033ca; font-size: 0.95em; font-weight: 700; }

/* ---------------- Login / registrazione (stile a tab) ---------------- */
.bgv2-auth-wrap { max-width: 640px; width: 100%; margin: 30px auto; font-family: inherit; }
.bgv2-auth-tabs { display: flex; gap: 28px; border-bottom: 1px solid #e2e2e2; }
.bgv2-auth-tab { padding: 14px 2px; font-weight: 700; font-size: 1.05em; color: #888; text-decoration: none; border-bottom: 3px solid transparent; cursor: pointer; }
.bgv2-auth-tab-active { color: #fe0000; border-bottom-color: #fe0000; }
.bgv2-auth-tab:not(.bgv2-auth-tab-active):hover { color: #444; }
.bgv2-auth-card { background: #fff; border: 1px solid #e5e5ea; border-top: none; border-radius: 0 0 4px 4px; padding: 40px 48px; box-shadow: 0 2px 12px rgba(0,0,0,.05); }
.bgv2-auth-card h2 { margin: 0 0 8px; color: #111; font-size: 1.4em; }
.bgv2-auth-subtitle { color: #777; margin: 0 0 28px; font-size: 0.98em; }
.bgv2-auth-form { display: flex; flex-direction: column; gap: 8px; }
.bgv2-auth-form label { font-weight: 700; color: #333; font-size: 0.95em; margin-top: 10px; }
.bgv2-auth-form input[type=text], .bgv2-auth-form input[type=email], .bgv2-auth-form input[type=password] {
	padding: 13px 16px; border: 1px solid #ddd; border-radius: 4px; font-size: 1em; background: #fafafa;
}
.bgv2-auth-form input:focus { outline: none; border-color: #0033ca; background: #fff; }
.bgv2-password-wrap { position: relative; display: flex; }
.bgv2-password-wrap input { flex: 1; padding-right: 46px !important; }
.bgv2-toggle-pwd { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #999; cursor: pointer; padding: 0; display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.bgv2-toggle-pwd svg { width: 20px; height: 20px; }
.bgv2-toggle-pwd.bgv2-pwd-visible { color: #0033ca; }
.bgv2-auth-checkbox { display: flex; align-items: center; gap: 8px; font-weight: 400 !important; margin-top: 14px !important; color: #555; }
.bgv2-auth-checkbox input { width: auto; }
.bgv2-auth-submit { margin-top: 22px; background: #fe0000; color: #fff; border: none; padding: 15px; border-radius: 4px; font-size: 1.05em; font-weight: 700; cursor: pointer; transition: background .15s; }
.bgv2-auth-submit:hover { background: #d40000; }
.bgv2-auth-links { text-align: left; margin-top: 16px; font-size: 0.92em; }
.bgv2-auth-links a { color: #fe0000; font-weight: 600; text-decoration: none; }
.bgv2-auth-links a:hover { text-decoration: underline; }
.bgv2-auth-links span { color: #ccc; margin: 0 8px; }

@media (max-width: 600px) {
	.bgv2-auth-card { padding: 28px 22px; }
	.bgv2-card-header { flex-wrap: wrap; padding: 18px 20px; }
	.bgv2-card-section { padding: 18px 20px; }
	.bgv2-badge { margin-left: auto; }
}

/* Le pagine strumento (Bacheca, Anagrafica Atleti, Area Riservata) riempiono tutto lo spazio
   orizzontale che il tema mette a disposizione, senza however uscire dal contenitore del tema
   (un tentativo precedente con un trucco "full-bleed" basato su 100vw causava un layout
   sbilanciato, perché non teneva conto del padding del contenitore reale del tema). */
.bgv2-area-riservata,
.bgv2-bacheca-app,
.bgv2-gestione-app {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* Il vero contenitore che limita la larghezza su TUTTE le pagine strumento è .page-content
   del tema — comune a più template (page-template-page-login per Area Riservata,
   page-template-default per Bacheca/Anagrafica Atleti), con una width fissa esplicita, non
   solo max-width. Trovato e verificato ispezionando le pagine live una per una (misurato con
   getBoundingClientRect prima di scrivere questa regola, su tutte e tre le pagine). Questo
   foglio di stile carica solo sulle pagine del plugin, quindi il selettore può restare
   generico senza rischiare di toccare il resto del sito. */
.page-content {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Nasconde solo il banner rosso "hero" (via JS in basket-gestionale-v2.php, il tema lo
   riapplica dinamicamente quindi il solo CSS non basta). L'header vero del tema resta
   visibile (ristilizzato in blu) ed è "position: fixed", non spinge giù il contenuto da
   solo: senza il banner, il contenuto ci finirebbe sotto. Margine verificato dal vivo. */
/* Il margine sopra al contenuto (per liberare l'header fisso del tema, di altezza diversa
   da pagina a pagina) è calcolato dinamicamente via JavaScript in basket-gestionale-v2.php,
   misurando l'altezza reale dell'header ad ogni caricamento — un valore fisso qui non
   reggeva su tutte le pagine. */

/* ---------------- QUOTA E PAGAMENTI ---------------- */

.bgv2-piani { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 14px 0 4px; }
.bgv2-piano { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 16px; border: 2px solid #dfe3ec; border-radius: 8px; background: #fff; cursor: pointer; font: inherit; transition: border-color .15s, box-shadow .15s; }
.bgv2-piano:hover:not(:disabled) { border-color: #0033ca; box-shadow: 0 4px 14px rgba(0,51,202,0.12); }
.bgv2-piano:disabled { opacity: .55; cursor: default; }
.bgv2-piano strong { font-size: 1em; }
.bgv2-piano-cifra { font-size: 1.5em; font-weight: 800; color: #0033ca; line-height: 1.1; }
.bgv2-piano-nota { font-size: .82em; color: #666; }

/* Sfondo tinta unita per lo stato, niente barra laterale: e' lo stesso taglio
   dei riquadri del certificato medico, e in app la barra scura si notava troppo. */
.bgv2-rata { border-radius: 8px; padding: 12px 14px; margin-top: 10px; background: rgba(0,51,202,0.06); }
.bgv2-rata-incassato { background: rgba(46,125,50,0.08); }
.bgv2-rata-segnalato { background: rgba(199,138,0,0.10); }
.bgv2-rata-scaduto   { background: rgba(230,0,0,0.07); }
.bgv2-rata-testa { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.bgv2-rata-importo { font-size: 1.15em; font-weight: 800; white-space: nowrap; }
.bgv2-rata-sotto { font-size: .85em; color: #555; margin-top: 2px; }
.bgv2-rata-causale { font-size: .82em; color: #555; margin-top: 6px; }
.bgv2-rata-causale code { background: rgba(255,255,255,0.75); padding: 2px 6px; border-radius: 4px; }
.bgv2-rata-azione { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(0,0,0,0.08); }
.bgv2-rata-azione label { display: flex; flex-direction: column; font-size: .8em; color: #555; gap: 3px; }
.bgv2-rata-azione input[type="text"] { padding: 7px 9px; border: 1px solid #ccd0da; border-radius: 6px; }

.bgv2-bonifico { margin-top: 18px; padding: 14px; border-radius: 8px; background: #f7f8fc; border: 1px solid #e6e9ef; }
.bgv2-bonifico h5 { margin: 0 0 6px; font-size: .95em; }
.bgv2-bonifico p { margin: 4px 0; }
.bgv2-bonifico-riga { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; padding: 4px 0; }
.bgv2-bonifico-riga span { min-width: 100px; color: #666; font-size: .85em; }
.bgv2-bonifico-riga code { font-family: ui-monospace, Menlo, monospace; }
.bgv2-btn-link { background: none; border: none; padding: 0; color: #0033ca; text-decoration: underline; cursor: pointer; font: inherit; font-size: .85em; }

/* Scheda atleta: una persona per riquadro, invece di un elenco unico in cui
   "Data di nascita" compariva tre volte senza dire di chi. */
.bgv2-riepilogo-azioni { display: flex; justify-content: flex-end; margin-bottom: 12px; }
.bgv2-blocco-dati { border: 1px solid #e6e9ef; border-radius: 8px; margin-bottom: 14px; overflow: hidden; background: #fff; }
.bgv2-blocco-testa { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; padding: 10px 14px; background: #f7f8fc; border-bottom: 1px solid #e6e9ef; font-size: .78em; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: #0033ca; }
.bgv2-blocco-testa span { text-transform: none; letter-spacing: 0; font-size: 1.15em; font-weight: 700; color: #1a1a2e; }
.bgv2-blocco-dati .bgv2-riepilogo-riga { padding-left: 14px; padding-right: 14px; }
.bgv2-blocco-dati .bgv2-riepilogo-riga:last-child { border-bottom: none; }

/* Riepilogo di famiglia quando ci sono piu' figli iscritti */
.bgv2-riepilogo-famiglia { border: 1px solid #cdd6f5; background: #f2f5ff; border-radius: 8px; padding: 14px 16px; margin-bottom: 16px; }
.bgv2-riepilogo-famiglia h4 { margin: 0 0 8px; font-size: .95em; }
.bgv2-famiglia-cifre { display: flex; flex-wrap: wrap; gap: 18px; }
.bgv2-famiglia-cifre div { display: flex; flex-direction: column; }
.bgv2-famiglia-cifre span { font-size: .75em; text-transform: uppercase; letter-spacing: .6px; color: #5a6480; font-weight: 700; }
.bgv2-famiglia-cifre strong { font-size: 1.25em; color: #1a1a2e; }

/* Quota e pagamenti vive dentro la Panoramica: serve uno stacco dall'elenco atleti */
.bgv2-sezione-pagamenti { margin-top: 26px; padding-top: 20px; border-top: 1px solid #e6e9ef; }

/* Testa del riepilogo quota: il comando per cambiare modalita' sta qui, accanto
   alla riga che dice quale modalita' e' in corso, non in fondo alle rate. */
.bgv2-quota-testa { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.bgv2-quota-testa .bgv2-btn-link { white-space: nowrap; padding-top: 2px; }

/* ---------------- 7.58.1: area famiglie piu' chiara ---------------- */

/* Angoli vivi, come l'identita' del club (restano tondi solo pallini e contatori). */
.bgv2-area-riservata *:not(.bgv2-bacheca-pallino):not(.bgv2-nav-badge) { border-radius: 0 !important; }

/* Pulsanti d'azione pieni: il grigio chiaro sembrava un pulsante spento. */
.bgv2-area-riservata .bgv2-btn-secondary { background: #0033ca; color: #fff; }
.bgv2-area-riservata .bgv2-btn-secondary:hover:not(:disabled) { background: #00269e; }
.bgv2-area-riservata .bgv2-btn-secondary:disabled { opacity: .6; cursor: not-allowed; }
.bgv2-area-riservata .bgv2-riepilogo-azioni .bgv2-btn-secondary { background: #fff; color: #0033ca; border: 1.5px solid #0033ca; }
.bgv2-area-riservata .bgv2-riepilogo-azioni .bgv2-btn-secondary:hover { background: #f4f5fb; }

/* Testi secondari piu' grandi e scuri: da telefono si leggevano male. */
.bgv2-area-riservata .bgv2-hint { font-size: .9em; color: #444; }
.bgv2-area-riservata .bgv2-rata-sotto { font-size: .92em; color: #333; }
.bgv2-area-riservata .bgv2-rata-causale { font-size: .9em; color: #333; }
.bgv2-area-riservata .bgv2-doc-extra { font-size: .9em; color: #555; }
.bgv2-area-riservata .bgv2-riepilogo-label { color: #555; }
.bgv2-area-riservata .bgv2-page-intro p { color: #555; }

/* Riepilogo: stato di certificato e quota per ogni figlio */
.bgv2-area-riservata .bgv2-stati-riga { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.bgv2-area-riservata .bgv2-stato { font-size: .8em; font-weight: 700; padding: 3px 9px; border: 1px solid transparent; }
.bgv2-area-riservata .bgv2-stato-verde { background: #e7f5ea; color: #1b6e2b; border-color: #bfe3c7; }
.bgv2-area-riservata .bgv2-stato-ambra { background: #fff5e0; color: #7a5200; border-color: #ffdd99; }
.bgv2-area-riservata .bgv2-stato-rosso { background: #fde8e8; color: #a30000; border-color: #f5b5b5; }
.bgv2-area-riservata .bgv2-stato-grigio { background: #f0f1f5; color: #555; }

/* Segnalazione del bonifico: pulsante, poi il modulo */
.bgv2-area-riservata .bgv2-rata-apri { margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(0,0,0,0.08); }
.bgv2-area-riservata .bgv2-rata-azione { flex-direction: column; align-items: stretch; }
.bgv2-area-riservata .bgv2-rata-azione-titolo { margin: 0; font-weight: 700; font-size: .95em; }
.bgv2-area-riservata .bgv2-rata-azione label { font-size: .88em; font-weight: 700; color: #333; }
.bgv2-area-riservata .bgv2-rata-azione input[type="text"] { max-width: 220px; }
.bgv2-area-riservata .bgv2-file-campo { display: flex; flex-direction: column; gap: 4px; }
.bgv2-area-riservata .bgv2-file-etichetta { font-size: .88em; font-weight: 700; color: #333; }
.bgv2-area-riservata .bgv2-file-etichetta em { font-style: normal; color: #a30000; font-weight: 600; }
.bgv2-area-riservata label.bgv2-file-scegli { display: flex; flex-direction: row; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px; border: 1.5px dashed #9aa6c9; background: #fff; cursor: pointer; font-weight: 400; }
.bgv2-area-riservata .bgv2-file-scegli input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.bgv2-area-riservata .bgv2-file-bottone { background: #0a2a7a; color: #fff; font-weight: 700; font-size: .9em; padding: 8px 14px; white-space: nowrap; }
.bgv2-area-riservata .bgv2-file-nome { color: #555; font-size: .88em; word-break: break-all; }
/* 7.67.0: trascinamento e file scelto ben visibili */
.bgv2-area-riservata label.bgv2-file-scegli.bgv2-file-sopra { border-style: solid; border-color: #0a2a7a; background: #eef2fb; }
.bgv2-area-riservata label.bgv2-file-scegli.bgv2-file-scelto { border-style: solid; border-color: #1b7a2e; background: #f1f8f2; }
.bgv2-area-riservata .bgv2-file-scelto .bgv2-file-nome { color: #1b7a2e; font-weight: 700; }
.bgv2-area-riservata .bgv2-rata-azione-bottoni { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* Come si paga: una volta sola, in evidenza */
.bgv2-area-riservata .bgv2-sezione-pagamenti > .bgv2-bonifico { margin: 0 0 16px; background: #fff; border: 1px solid #cdd6f5; border-left: 4px solid #0033ca; }
.bgv2-area-riservata .bgv2-bonifico-riga code { font-size: 1.05em; }

/* Documenti a gruppi */
.bgv2-area-riservata .bgv2-doc-list li.bgv2-doc-gruppo { display: block; padding: 14px 0 6px; border-bottom: 2px solid #eef1fc; font-size: .78em; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: #0033ca; }
.bgv2-area-riservata .bgv2-doc-list li.bgv2-doc-gruppo:first-child { padding-top: 0; }

/* Telefono: il menu va a capo invece di scorrere di lato, cosi' si vedono tutte le voci */
@media (max-width: 720px) {
	.bgv2-area-riservata .bgv2-sidebar { flex-wrap: wrap; overflow-x: visible; padding: 6px; box-sizing: border-box; }
	.bgv2-area-riservata .bgv2-nav-item { flex: 1 1 calc(33.333% - 4px); min-width: 0; white-space: normal; text-align: center; align-items: center; font-size: .78em; padding: 9px 6px; line-height: 1.2; }
	.bgv2-area-riservata .bgv2-nav-item > span:not(.bgv2-nav-icon):not(.bgv2-nav-avatar):not(.bgv2-nav-badge) { overflow-wrap: anywhere; }
	.bgv2-area-riservata .bgv2-nav-badge { position: absolute; top: 4px; right: 6px; margin: 0; }
	.bgv2-area-riservata .bgv2-card { padding: 18px 16px; }
	.bgv2-area-riservata .bgv2-panoramica-row { flex-wrap: wrap; padding: 12px 14px; }
	.bgv2-area-riservata .bgv2-rata-azione input[type="text"] { max-width: none; }
}
.bgv2-area-riservata .bgv2-rata-azione .bgv2-btn-link { align-self: flex-start; }
.bgv2-area-riservata .bgv2-upload-block { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 2px solid #eef1fc; }
.bgv2-area-riservata .bgv2-upload-block .bgv2-btn-secondary { align-self: flex-start; }

/* 7.60.2: cestino sul messaggio della bacheca */
.bgv2-area-riservata .bgv2-bacheca-cestino { flex-shrink: 0; background: none; border: none; color: #999; cursor: pointer; padding: 4px; margin-left: 6px; display: flex; }
.bgv2-area-riservata .bgv2-bacheca-cestino:hover { color: #a30000; }
.bgv2-area-riservata .bgv2-bacheca-cestino:disabled { opacity: .4; }

/* 7.63.1: "Scadenza * (obbligatoria)" su una riga nel blocco del certificato. La label e' un flex
   a colonna (iscrizione-form.css): il testo sta in un solo span, asterisco e small restano in linea. */
.bgv2-area-riservata .f-cert-scadenza-campo .bgv2-cert-scad-etichetta { display: block; }
.bgv2-area-riservata .f-cert-scadenza-campo .bgv2-obb,
.bgv2-area-riservata .f-cert-scadenza-campo small { display: inline; }
.bgv2-area-riservata .f-cert-scadenza-campo small { font-weight: 400; color: #444; font-size: .85em; }

/* ---------------- 7.69.0: piu' facile da usare ---------------- */
/* Da fare: una riga per cosa, tutta toccabile, porta dove si risolve */
.bgv2-dafare-famiglia { background: #fff; border: 1px solid #e3e6ef; border-radius: 6px; padding: 12px 14px; margin-bottom: 16px; }
.bgv2-dafare-famiglia .bgv2-doc-heading { margin: 0 0 8px; }
.bgv2-dafare-voce { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 48px; margin: 6px 0 0; padding: 10px 14px; border-radius: 6px; border: 1px solid; background: #fff8ea; border-color: #ffe4a8; color: #5c4200; font: inherit; font-size: .95em; text-align: left; cursor: pointer; line-height: 1.4; }
.bgv2-dafare-voce.bgv2-dafare-rosso { background: #fdecec; border-color: #f5b5b5; color: #8a1010; }
.bgv2-dafare-voce.bgv2-dafare-blu { background: #eef2fd; border-color: #c4d0f5; color: #0a2a7a; }
.bgv2-dafare-voce:hover, .bgv2-dafare-voce:focus-visible { filter: brightness(.97); outline: 2px solid currentColor; outline-offset: 1px; }
.bgv2-dafare-azione { flex-shrink: 0; font-weight: 700; white-space: nowrap; }
.bgv2-dafare-ok-famiglia { background: #eaf7ee; border: 1px solid #b9e2c4; color: #1d6b34; border-radius: 6px; padding: 12px 14px; font-weight: 600; margin: 0 0 16px; }
/* Il punto raggiunto da "Da fare" lampeggia un attimo */
@keyframes bgv2Evidenzia { 0%, 100% { box-shadow: 0 0 0 0 rgba(0, 51, 202, 0); } 30% { box-shadow: 0 0 0 4px rgba(0, 51, 202, .45); } }
.bgv2-evidenzia { animation: bgv2Evidenzia 1.6s ease 2; border-radius: 6px; }

/* Pagamento in tre passi dentro la rata */
.bgv2-passi { margin: 10px 0 4px; padding-left: 22px; }
.bgv2-passi > li { margin: 0 0 12px; }
.bgv2-passo-titolo { display: block; font-weight: 700; margin-bottom: 2px; }
.bgv2-passo-riga { display: block; margin: 2px 0 6px; }
.bgv2-passo-riga code { word-break: break-all; }
.bgv2-passo-riga code { font-size: 1em; background: #f2f4f9; padding: 2px 6px; border-radius: 4px; }
.bgv2-btn-copia { min-height: 44px; min-width: 44px; padding: 8px 14px; margin: 2px 4px 2px 0; border: 1px solid #0033ca; border-radius: 6px; background: #fff; color: #0033ca; font: inherit; font-size: .92em; font-weight: 600; cursor: pointer; }
.bgv2-btn-copia.bgv2-copiato { background: #1d6b34; border-color: #1d6b34; color: #fff; }
.bgv2-btn-piccolo { min-height: 44px; font-size: .9em; }
.bgv2-btn-ricevuta { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; text-decoration: none; }

/* Pulsanti piccoli portati a misura di dito (44 px) */
.bgv2-doc-elimina { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.6em; }
.bgv2-area-riservata .bgv2-bacheca-cestino { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.bgv2-area-riservata .bgv2-bacheca-cestino svg { width: 20px; height: 20px; }

/* Anteprima della foto scelta */
.bgv2-file-anteprima { display: block; max-width: 160px; max-height: 160px; margin: 8px 0 0; border: 1px solid #dde; border-radius: 4px; object-fit: contain; background: #fafafa; }

/* Rinnovo */
.bgv2-rinnovo { border-color: #c4d0f5; background: #f7f9ff; }
.bgv2-rinnovo-passo { font-weight: 700; margin: 16px 0 6px; }
.bgv2-rinnovo-firma { display: block; max-width: 100%; border: 1px dashed #99a; border-radius: 4px; background: #fff; touch-action: none; }
