/* Ritocchi UI del sito (spec utente 2026-09-19): titolo sidebar centrato, pulsante
 * PayPal, box bianco dietro il titolo di pagina, pagina donazione. Caricato dopo
 * style.css e tema-blu.css. */

/* Titolo sidebar centrato (logo + nome del sito) */
.sidebar-area .logo { padding: 22px 16px 18px; }
.sidebar-area .logo .logo-link { gap: 10px; }
.sidebar-area .logo .logo-link img { width: 38px; height: 38px; }
.sidebar-area .logo .logo-text {
  position: static;
  font-size: 22px;
  line-height: 1;
}

/* Pulsante PayPal in fondo alla sidebar, sopra il box utente */
.btn-paypal {
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #ffc439;
  color: #003087;
  font-weight: 600;
  font-size: 14px;
  transition: filter .15s ease, transform .15s ease;
}
.btn-paypal i { font-size: 20px; }
.btn-paypal:hover { filter: brightness(.95); color: #003087; transform: translateY(-1px); }

/* Box bianco dietro il titolo di pagina: distanzia il titolo dal bordo superiore */
.main-content { padding-top: 16px; }
.main-content-container > h3:first-child,
.main-content-container > .d-flex:first-child:has(> h3) {
  background: #fff;
  border-radius: 12px;
  padding: 18px 24px;
  margin-bottom: 20px !important;
}

/* Pagina donazione */
.dona-card { max-width: 520px; margin: 0 auto; }
.dona-importi { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.dona-importi .btn { padding: 12px 0; font-weight: 600; }
.dona-paypal {
  background: #ffc439; color: #003087; font-weight: 700; border: 0;
  padding: 14px; border-radius: 10px; font-size: 16px;
}
.dona-paypal:hover { filter: brightness(.95); color: #003087; }


/* ---- Electo Data: preloader con il nome del sito (11 lettere: il tema animava solo le prime 5) ---- */
#preloader .preloader .waviy.preloader-nome { white-space: nowrap; }
#preloader .preloader .waviy.preloader-nome span:nth-child(6) { animation-delay: 0.6s; }
#preloader .preloader .waviy.preloader-nome span:nth-child(7) { animation-delay: 0.7s; }
#preloader .preloader .waviy.preloader-nome span:nth-child(8) { animation-delay: 0.8s; }
#preloader .preloader .waviy.preloader-nome span:nth-child(9) { animation-delay: 0.9s; }
#preloader .preloader .waviy.preloader-nome span:nth-child(10) { animation-delay: 1s; }
#preloader .preloader .waviy.preloader-nome span:nth-child(11) { animation-delay: 1.1s; }
#preloader .preloader .waviy.preloader-nome span:nth-child(12) { animation-delay: 1.2s; }
#preloader .preloader .waviy.preloader-nome span:nth-child(13) { animation-delay: 1.3s; }
@media only screen and (max-width: 767px) { #preloader .preloader .waviy.preloader-nome { font-size: 24px; } }

/* ---- Menu: voce Dashboard inibita (grigia, non cliccabile) ---- */
.menu-link.menu-link-disabilitato { color: #9aa3b2 !important; opacity: .6; cursor: not-allowed; pointer-events: none; }
.menu-link.menu-link-disabilitato .menu-icon { color: #b8bfcc !important; }

/* ---- Menu: sezione Novita' ---- */
.novita-box { padding: 0 16px 16px; }
.novita-stacco { margin: 14px 0 10px; border-top: 1px solid #d9dee8; opacity: 1; }
.novita-elenco { margin: 8px 0 0; padding: 0; }
.novita-voce { margin-bottom: 12px; font-size: 12.5px; line-height: 1.35; }
.novita-data { color: #8a94a6; font-size: 11px; }
.novita-titolo { font-weight: 600; color: #2b3445; }
.novita-testo { color: #566074; margin-top: 2px; }
.novita-fonte { color: #8a94a6; font-size: 11px; margin-top: 3px; font-style: italic; }


/* ---- Mappa: selettore vista Collegi/Municipi/Quartieri, in alto al centro e piu' grande ---- */
.toggle-vista-mappa {
	position: absolute; top: 14px; left: 50%; transform: translateX(-50%);
	z-index: 950; background: #fff; border-radius: 10px;
	box-shadow: 0 4px 14px rgba(20, 30, 60, .28);
}
.toggle-vista-mappa .btn {
	font-size: 13px; font-weight: 600; padding: 6px 16px; background: #fff; white-space: nowrap;
}
.toggle-vista-mappa .btn.active { background: var(--bs-primary, #605dff); color: #fff; }
.toggle-vista-mappa[hidden], .toggle-vista-mappa .btn[hidden] { display: none !important; }


/* ---- Rondella di caricamento a schermo intero (caricamento.js): blocca i clic finche' i dati non arrivano ---- */
.caricamento-velo {
	position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .55); cursor: progress; backdrop-filter: blur(1px);
}
.caricamento-velo.attivo { display: flex; }
.caricamento-box {
	display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 30px;
	background: #fff; border-radius: 14px; box-shadow: 0 8px 28px rgba(20, 30, 60, .25);
}
.caricamento-box .spinner-border { width: 3rem; height: 3rem; }
.caricamento-testo { font-size: 14px; color: #566074; }


/* ---- Menu mobile (sotto i 1200px): barra in alto con hamburger + sfondo scuro quando il menu e' aperto ---- */
.barra-mobile, .menu-mobile-sfondo { display: none; }
@media only screen and (max-width: 1199px) {
	.barra-mobile {
		display: flex; align-items: center; gap: 8px; position: fixed; top: 0; left: 0; right: 0;
		height: 56px; padding: 0 12px; z-index: 1040; background: #fff; border-bottom: 1px solid #ededed;
	}
	.barra-mobile-menu {
		display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
		border: 0; background: transparent; border-radius: 10px; color: #2b3445; padding: 0;
	}
	.barra-mobile-menu .material-symbols-outlined { font-size: 28px; }
	.barra-mobile-menu:active { background: #f1f3f9; }
	.barra-mobile-logo { display: flex; align-items: center; gap: 8px; text-decoration: none; color: #2b3445; font-weight: 700; font-size: 20px; }
	.barra-mobile-logo img { width: 32px; height: 32px; }
	body.boxed-size { padding-top: 56px; }
	/* il menu del tema (z-index 1 o 13) deve stare sopra barra e sfondo */
	body .sidebar-area, body[sidebar-data-theme] .sidebar-area { z-index: 1060; }
	.menu-mobile-sfondo {
		display: block; position: fixed; inset: 0; z-index: 1050; background: rgba(15, 23, 42, .5);
		opacity: 0; visibility: hidden; transition: opacity .25s ease;
	}
	body.menu-mobile-aperto .menu-mobile-sfondo { opacity: 1; visibility: visible; }
	body.menu-mobile-aperto { overflow: hidden; }
}


/* Il blocco utente e' ancorato in basso al menu e coprirebbe le novita': ne resta sempre UNA sola (le altre sono
 * in /novita/) e sotto c'e' spazio riservato (spec utente 2026-09-24). */
.novita-box { padding-bottom: 96px; }
.novita-link { color: inherit; text-decoration: none; }
.novita-link:hover { text-decoration: underline; }
.novita-tutte { display: inline-block; font-size: 12px; font-weight: 600; color: #1976d2; text-decoration: none; }
.novita-tutte:hover { text-decoration: underline; }
.novita-voce:nth-child(n+2) { display: none; }

/* Pagina Novita' */
.novita-pagina-voce { border-left: 3px solid #1976d2; padding: 2px 0 2px 14px; margin-bottom: 22px; }
.novita-pagina-data { color: #8a94a6; font-size: 12px; }
.novita-pagina-titolo { font-weight: 700; color: #2b3445; font-size: 16px; margin: 2px 0; }
.novita-pagina-testo { color: #566074; margin: 0; }
.novita-pagina-fonte { color: #8a94a6; font-size: 12px; font-style: italic; margin-top: 4px; }


/* ---- Pulsanti di opzione (Confronta liste / Confronta candidati / Vedi dati di Partito), spec utente 2026-09-20:
 * grigio chiaro; se spuntati compare una piccola spunta sul pulsante stesso. ---- */
.btn-check + .btn.btn-opzione {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f1f3f5;
  border: 1px solid #dfe3e8;
  color: #555b63;
}
.btn-check + .btn.btn-opzione:hover { background: #e8ebee; border-color: #d0d5db; color: #33383e; }
.btn-check:checked + .btn.btn-opzione {
  background: #e3e7eb;
  border-color: #c9cfd6;
  color: #33383e;
}
.btn-check:checked + .btn.btn-opzione::before {
  content: "";
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%231976D2' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / contain;
}
.btn-check:focus-visible + .btn.btn-opzione { box-shadow: 0 0 0 .2rem rgba(25, 118, 210, .25); }

/* ---- Footer piu' basso e compatto (spec utente 2026-09-20): la mail sta attaccata sotto la riga © ---- */
.footer-area { padding: 6px 12px 8px; }
.footer-area p, .footer-area p.mb-1, .footer-area p.mb-0 { padding: 0; margin: 0 !important; line-height: 1.35; }


/* Icona utente al posto della foto profilo (spec utente 2026-09-21) */
.avatar-utente { font-size: 34px; line-height: 1; color: #1976d2; display: block; }

/* Pagina di benvenuto */
.benvenuto-card { background: #fff; border-radius: 12px; padding: 24px 28px; }
.benvenuto-voce { display: block; height: 100%; text-decoration: none; color: inherit; border: 1px solid #e3e8f2; border-radius: 12px; padding: 16px 18px; background: #fff; transition: box-shadow .15s ease, transform .15s ease; }
.benvenuto-voce:hover { box-shadow: 0 4px 14px rgba(25, 118, 210, .15); transform: translateY(-1px); color: inherit; }
.benvenuto-voce .material-symbols-outlined { font-size: 28px; }
