.img-square {
  width: 250px;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 10px;
}

.img-square img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (max-width: 736px) {
  .article-list .img-square {
    width: 100%;
  }
}

.message-box {
  padding: 10px;
  margin-bottom: 1rem;
  border-left: 4px solid;
}

.message-error {
  background: #ffebee;
  border-color: #f44336;
}

.message-error p {
  margin: 0;
  color: #c62828;
  font-size: 0.95em;
}

.message-success {
  background: #e8f5e9;
  border-color: #4caf50;
}

.message-success p {
  margin: 0;
  color: #2e7d32;
  font-size: 0.95em;
}

.message-warning {
  background: #fff3cd;
  border-color: #ffc107;
}

.message-warning p {
  margin: 0;
  color: #856404;
  font-size: 0.9em;
}

.form-fields {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.form-field {
  display: flex;
  flex-direction: column;
}

.form-field label {
  margin-bottom: 0.5rem;
  font-size: 0.9em;
  display: block;
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field textarea {
  width: 100%;
  padding: 0.5em;
}

.form-field textarea {
  min-height: 80px;
  resize: vertical;
}

.form-field .cf-turnstile {
  margin-top: 0.25rem;
}

.privacy-field {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.privacy-field input[type="checkbox"] {
  margin-top: 4px;
  width: 18px;
  height: 18px;
  min-width: 18px;
  flex-shrink: 0;
  display: inline-block;
  visibility: visible;
  opacity: 1;
  appearance: checkbox;
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  background: #fff;
  border: 1px solid #777;
}

.privacy-field label {
  flex: 1;
  font-size: 0.9em;
  line-height: 1.35;
  cursor: pointer;
}

.privacy-field label p {
  margin: 0.2rem 0 0;
  color: #555;
  font-size: 0.85em;
  line-height: 1.4;
}

.form-field .actions {
  margin-top: 0.5rem;
  margin-bottom: 0;
}

/* Newsletter page improvements */
/* Riquadri chiari con bordo verde solo nella pagina newsletter (articolo .box), non nel footer */
article.box .nl-note {
  background: #f5f5f5;
  padding: 1rem;
  border-radius: 4px;
  margin-top: 0.5rem;
  border-left: 3px solid #4caf50;
}

article.box .nl-note p {
  margin: 0;
  color: #555;
  font-size: 0.9em;
  line-height: 1.5;
}

article.box .nl-note strong {
  color: #333;
  font-weight: 600;
}

/* Footer: testo bianco sullo sfondo, niente riquadri */
#footer .newsletter .nl-note {
  background: none;
  border: none;
  padding: 0;
  margin-top: 1em;
}

#footer .newsletter .nl-note p {
  color: #f0f6ff;
  opacity: 0.95;
  font-size: 0.9em;
  line-height: 1.5em;
}

#footer .newsletter .nl-note a {
  color: #e7eefc;
}

.newsletter .box h3 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  color: #333;
}

.newsletter .box > p {
  margin-bottom: 1.5rem;
  color: #666;
  line-height: 1.6;
}

#footer .newsletter .nl-turnstile {
  margin: 0.75rem 0;
}

#footer .newsletter .nl-turnstile .cf-turnstile {
  margin: 0;
}

.centri-lista {
  margin-top: 1.5rem;
}

.centri-zona {
  margin-bottom: 2rem;
}

.centri-zona h3 {
  margin-bottom: 1rem;
  font-size: 1.1em;
  border-bottom: 2px solid #6288D1;
  padding-bottom: 0.5rem;
}

.centri-elenco {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 0.75rem;
}

.centri-elenco li {
  border-left: 4px solid #818181;
  padding: 0.5rem 0 0.5rem 0.75rem;
  min-height: 60px;
}

.centri-elenco li:hover {
  background: #ececec;
}

.centri-elenco li a {
  display: block;
  text-decoration: none;
  color: inherit;
  width: 100%;
  height: 100%;
}

.centri-elenco li strong {
  display: block;
  margin-bottom: 0.25rem;
}

.centri-elenco li span {
  font-size: 0.9em;
  color: #666;
}

.centro-content-wrapper {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.centro-dati {
  flex: 1;
  min-width: 0;
}

.centro-foto {
  flex-shrink: 0;
  max-width: 300px;
}

/* Responsive: su schermi stretti, l'immagine va sotto */
@media (max-width: 768px) {
  .centro-content-wrapper {
    flex-direction: column;
  }
  
  .centro-foto {
    max-width: 100%;
    width: 100%;
  }
}

.centro-foto img {
  max-width: 100%;
  height: auto;
  display: block;
}

.centro-foto p {
  margin-top: 0.5rem;
  font-size: 0.9em;
  text-align: center;
  color: #666;
}

.centro-dati ul {
  list-style: none;
  padding: 0;
  margin: 1rem 0;
}

.centro-dati ul li {
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
  position: relative;
}

.centro-dati ul li:before {
  content: "•";
  position: absolute;
  left: 0;
  color: #6288D1;
  font-weight: bold;
}

.centro-descrizione,
.centro-note {
  margin-top: 1rem;
}

.centro-descrizione iframe,
.centro-note iframe {
  max-width: 100%;
  height: auto;
  margin-top: 1rem;
}

@media (max-width: 736px) {
  .centri-elenco {
    grid-template-columns: 1fr;
  }
  
  .centro-foto {
    float: none;
    margin: 0 0 1rem 0;
    max-width: 100%;
  }
  
  .centro-descrizione iframe,
  .centro-note iframe {
    width: 100% !important;
    height: 300px !important;
  }
}

/* mappa */

#wrap_mappa{
width:270px;
height:344px;
margin:0px 0px 0px 25px;
}
#mappa img{
border:none;
}
#mappa{
width:270px;
height:319px;
position:relative;
left:10px;
top:10px;
}
#mappa a{
text-decoration:none;
color:#000000;
outline:none;
}
#mappa a img.regione{
position:absolute;
display:block;
}
#mappa a:hover img.regione{
filter:alpha(opacity=60);
-moz-opacity:.60;
opacity:.60;
}
#mappa a span{
display:none;
}
#mappa a:hover span, #mappa #info{
display:block;
width:232px;
height:273px;
position:absolute;
right:10px;
top:10px;
border:2px solid #CCCCCC;
background-color:#FFFFFF;
padding:10px;
color:#333333;
font-size:12px;
line-height:18px;
letter-spacing:1px;
text-align:justify;
overflow:hidden;
z-index:20;
}
#mappa span b{
display:block;
height:30px;
line-height:30px;
margin-bottom:10px;
border-bottom:1px solid #CCCCCC;
}
#aosta{
left:5px;
top:37px;
z-index:1;
}
#piemonte{
left:2px;
top:27px;
}
#liguria{
left:20px;
top:77px;
}
#lombardia{
left:41px;
top:19px;
}
#trentino{
left:80px;
top:3px;
z-index:2;
}
#veneto{
left:85px;
top:15px;
}
#friuli{
left:120px;
top:15px;
z-index:3;
}
#romagna{
left:55px;
top:62px;
}
#toscana{
left:66px;
top:81px;
}
#marche{
left:118px;
top:96px;
}
#umbria{
left:113px;
top:108px;
}
#lazio{
left:105px;
top:132px;
}
#abruzzo{
left:139px;
top:128px;
}
#molise{
left:160px;
top:152px;
z-index:4;
}
#puglia{
left:182px;
top:154px;
}
#campania{
left:158px;
top:169px;
}
#basilicata{
left:194px;
top:179px;
z-index:5;
}
#calabria{
left:205px;
top:210px;
}
#sardegna{
left:30px;
top:175px;
}
#sicilia{
left:130px;
top:270px;
}
/*fine stile mappa*/


/* mappa */

#wrap_mappa_grande{
width:350px;
height:700px;
margin:0px 0px 0px 25px;
}
#mappa img{
border:none;
}
#mappa-grande{
width:350px;
height:700px;
position:relative;
left:200px;
top:10px;
}
#mappa-grande a{
text-decoration:none;
color:#000000;
outline:none;
}
#mappa-grande a img.regione{
position:absolute;
display:block;
}
#mappa-grande a:hover img.regione{
filter:alpha(opacity=60);
-moz-opacity:.60;
opacity:.60;
}
#mappa-grande a span{
display:none;
}
#mappa-grande a:hover span, #mappa-grande #info{
display:block;
width:232px;
height:273px;
position:absolute;
right:10px;
top:10px;
border:2px solid #CCCCCC;
background-color:#FFFFFF;
padding:10px;
color:#333333;
font-size:12px;
line-height:18px;
letter-spacing:1px;
text-align:justify;
overflow:hidden;
z-index:20;
}
#mappa-grande span b{
display:block;
height:30px;
line-height:30px;
margin-bottom:10px;
border-bottom:1px solid #CCCCCC;
}
#mappa-grande #aosta{
left:17px;
top:100px;
z-index:1;
}
#mappa-grande #piemonte{
left:10px;
top:77px;
}
#mappa-grande #lombardia{
left:82px;
top:69px;
}
#mappa-grande #veneto{
left:168px;
top:67px;
}
#mappa-grande #friuli{
left:229px;
top:67px;
z-index:3;
}
#mappa-grande #liguria{
left:36px;
top:178px;
}
#mappa-grande #romagna{
left:115px;
top:149px;
}
#mappa-grande #toscana{
left:128px;
top:190px;
}
#mappa-grande #trentino{
left:157px;
top:45px;
z-index:2;
}

#mappa-grande #marche{
left:220px;
top:221px;
}
#mappa-grande #umbria{
left:210px;
top:242px;
}
#mappa-grande #lazio{
left:193px;
top:285px;
}
#mappa-grande #abruzzo{
left:255px;
top:283px;
}
#mappa-grande #molise{
left:293px;
top:328px;
z-index:4;
}
#mappa-grande #puglia{
left:336px;
top:333px;
}
#mappa-grande #campania{
left:288px;
top:361px;
}
#mappa-grande #basilicata{
left:354px;
top:377px;
}
#mappa-grande #calabria{
left:376px;
top:433px;
}
#mappa-grande #sardegna{
left:37px;
top:377px;
}
#mappa-grande #sicilia{
left:238px;
top:538px;
}
/*fine stile mappa grande*/


.mappa-mobile{
	display:none;
}

@media screen and (max-width: 768px) {
	.mappa-mobile{
		display:block;
		margin:0 auto 20px auto;
	}

	#mappa-grande{
		display:none;
	}
}


/* Contenitore del blocco previsioni */
/* Intestazione: prima riga */
#contenitore_corpo_noborder table tr:first-child td {
    background: #6288D1;
    color: #fff;
    font-weight: 700;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.20rem 0.8rem;    /* ↓ prima era 0.45rem */
    border-bottom: 2px solid rgba(255, 255, 255, 0.4);
    text-align: center;
    vertical-align: middle;
}

#contenitore_corpo_noborder table tr:first-child td strong{
	 color: #fff !important;
	 border-top:50px;
}


/* Tabella del bollettino */
#contenitore_corpo_noborder table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
    font-size: 0.95rem;
    border-radius: 8px;
    overflow: hidden; /* per arrotondare gli angoli */
}


/* Celle del corpo tabella */
#contenitore_corpo_noborder table tr:not(:first-child) td {
    padding: .30rem .8rem;    /* ↓ prima era 0.6rem */
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

/* Zebra (esclusa la prima riga di header) */
#contenitore_corpo_noborder table tr:nth-child(odd):not(:first-child) td {
    background: rgba(255, 255, 255, 0.98);
}

#contenitore_corpo_noborder table tr:nth-child(even):not(:first-child) td {
    background: rgba(98, 136, 209, 0.05);
}

/* Prima colonna: nome polline */
#contenitore_corpo_noborder table td:first-child {
    font-weight: 600;
}

/* Colonne dei livelli (da "ASSENTE" in poi) centrate e con larghezza compatta */
#contenitore_corpo_noborder table td:nth-child(n+4) {
    text-align: center;
    white-space: nowrap;
}

/* Ultima riga senza bordo inferiore */
#contenitore_corpo_noborder table tr:last-child td {
    border-bottom: none;
}


/* Mobile: scroll orizzontale se serve */
@media (max-width: 768px) {
    #contenitore_corpo_noborder {
        padding: 1rem;
    }

    #contenitore_corpo_noborder table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}





```css
/* =========================================================
   Bollettino pollini: rifiniture UI (selettore, titoli, tabelle,
   box informativo, menu bottom "Bollettini disponibili", link torna)
   ========================================================= */

/* --- Contenitore pagina (area articolo) --- */
.box.post{
  position: relative;
}
.box.post header{
  margin-bottom: 1.25em;
}

/* --- Selezione polline: layout “label a sinistra, select a destra” --- */
#pollen_selector{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
  padding: .85rem 1rem;
  margin: 0 0 1rem 0;

  border-radius: 12px;
  margin-top:-80px;
}

#pollen_selector{
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #404248;
  font-size: .85em;
  padding-right:0px !important;
}

/* Select “bello” coerente col tema */
#pollen_selector select{
  width: min(220px, 100%);
  background: #fff;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 10px;
  padding: .55rem 2.25rem .55rem .75rem;
  line-height: 1.2em;
  font-size: 1em;
  color: #333;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(0,0,0,.04);
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  /* freccia */
  background-image:
    linear-gradient(45deg, transparent 50%, #5D81CF 50%),
    linear-gradient(135deg, #5D81CF 50%, transparent 50%),
    linear-gradient(to right, rgba(0,0,0,0.06), rgba(0,0,0,0.06));
  background-position:
    calc(100% - 18px) 55%,
    calc(100% - 12px) 55%,
    calc(100% - 2.2rem) 50%;
  background-size:
    6px 6px,
    6px 6px,
    1px 60%;
  background-repeat: no-repeat;
}

#pollen_selector select:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(88,125,207,.25);
  border-color: rgba(88,125,207,.65);
}

/* Mobile: stack */
@media screen and (max-width: 736px){
  #pollen_selector{
    justify-content: flex-start;
    flex-direction: column;
    align-items: stretch;
  }
  #pollen_selector select{
    width: 100%;
  }
}


.sfondo-title{
 
  border-bottom: 2px solid rgba(88,125,207,0.25);
  padding-bottom:8px;

  margin: .75rem 0 1rem 0;
  color: #5D81D0;
  text-shadow: none;
}

/* --- Sottotitoli (classe .titolo già presente) --- */
.titolo{
  color: #404248;
  margin-top: .75rem;
}
.titolo br{
  display: block;
  content: "";
  margin-top: .35rem;
}


.marg_left{
  margin-left: 0 !important;
  padding: .35rem .75rem;
  display: inline-block;
  
  background: rgba(98,136,209,0.08);
  border-radius: 10px;
  margin-top:25px !important;
}

.marg_left a{
	text-decoration:none;
	color:#404248
}

/* --- Wrapper corpo: spacing e leggibilità --- */
#contenitore_corpo_noborder{
  margin-top: 1rem;

  background: #fff;

}

#contenitore_corpo_noborder h2{
	padding-bottom:8px;

	border-bottom: 2px solid rgba(88,125,207,0.25);
}

#contenitore_corpo_noborder p{
	margin:0px !important;
	font-weight: normal !important;
}

/* Link “Scarica istruzioni” più coerente */
#contenitore_corpo_noborder > p a{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  background: rgba(88,125,207,0.08);
  border: 1px solid rgba(88,125,207,0.18);
  border-radius: 10px;
  text-decoration: none;
}
#contenitore_corpo_noborder > p a:hover{
  background: rgba(88,125,207,0.12);
}

/* Pulsante stampa (div.dx) più ordinato */
#contenitore_corpo_noborder .dx.dontPrint{
  float: right;
  margin: .0rem 0 0 0;
}
#contenitore_corpo_noborder .dx.dontPrint a{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .7rem;
  border-radius: 10px;
  background: rgba(0,0,0,0.04);
  border: 1px solid rgba(0,0,0,0.10);
}
#contenitore_corpo_noborder .dx.dontPrint a:hover{
  background: rgba(0,0,0,0.06);
}

/* --- Sezione “Previsioni Polliniche”: sistema line-height “folle” --- */
/* Normalizza i paragrafi generati (con molti <strong>&nbsp;</strong>) */
#contenitore_corpo_noborder h2{
  margin-top: 1.25rem;
  margin-bottom: .75rem;
}

/* forza una tipografia “normale” dentro la sezione che segue l'H2 */
#contenitore_corpo_noborder h2 + p,
#contenitore_corpo_noborder h2 + p *{
  line-height: 1.45em !important;
}

/* riduce margini enormi e paragrafi vuoti */
#contenitore_corpo_noborder h2 + p p{
  margin: 0 0 .55rem 0 !important;
}
#contenitore_corpo_noborder h2 + p p:empty{
  display: none;
}

/* evita che <strong> faccia “righe giganti” */
#contenitore_corpo_noborder h2 + p strong{
  display: inline;
  font-weight: 700;
}

/* --- Tabella “GRADI DI GRAVITA’” --- */
#contenitore_corpo_noborder table{
  margin-top: .75rem;
}

/* Centrare verticalmente e migliorare densità */
#contenitore_corpo_noborder table td,
#contenitore_corpo_noborder table th{
  vertical-align: middle !important;
}

/* Pulizia dei <p> dentro celle (riduce spazio extra) */
#contenitore_corpo_noborder table td p,
#contenitore_corpo_noborder table th p{
  margin: 0 !important;
  line-height: 1.25em !important;
}

/* Celle numeriche (da "ASSENTE" in poi) un po' più compatte */
#contenitore_corpo_noborder table td:nth-child(n+4){
  font-variant-numeric: tabular-nums;
}

/* --- Box informativo: “Cupr/Taxaceae: Informazioni” --- */
/* Si applica al paragrafo subito dopo l'h3.titolo che contiene "Informazioni" */
h3.titolo + p{
  background: rgba(98,136,209,0.07);
  border: 1px solid rgba(98,136,209,0.20);
  border-left: 6px solid rgba(98,136,209,0.75);
  border-radius: 14px;
  padding: 1rem 1rem;
  margin: .75rem 0 1rem 0;
  color: #3a3c42;
}

/* --- “Bollettini disponibili” come bottom menu --- */
.elencopollini{
  margin: 1rem 0 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: .5rem;
}

.elencopollini li{
  margin: 0;
  padding: 0;
}

.elencopollini li a{
  display: block;
  padding: .65rem .85rem;
  border-radius: 12px;
  background: rgba(88,125,207,0.08);
  border: 1px solid rgba(88,125,207,0.18);
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.elencopollini li a:hover{
  background: rgba(88,125,207,0.12);
  border-color: rgba(88,125,207,0.28);
}

/* Mobile: una colonna */
@media screen and (max-width: 736px){
  .elencopollini{
    grid-template-columns: 1fr;
  }
}

/* --- Link “<< Torna alla selezione della regione” --- */
.goback{
  text-align:center;
  margin-top:45px;
}
.goback a{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem .85rem;
  border-radius: 12px;
  background: #F2F5FB;
  color: #5D81D0 !important;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.goback a:hover{
  background: #E6ECF8;
}

/* --- Micro-fix: evita “doppi <br>” e spazi strani nell’area bollettino --- */
#contenitore_corpo_noborder br{
  line-height: 0.8em;
}

/* --- Stampa: alleggerisce box e menu --- */
@media print{
  #pollen_selector,
  .elencopollini,
  .goback,
  #contenitore_corpo_noborder .dx.dontPrint{
    display: none !important;
  }
  #contenitore_corpo_noborder{
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
  }
}

.goup{
	margin-top:-55px !important;
}

/* --- Area riservata: elenco link --- */
.area-riservata-links {
  list-style: none;
  margin: 1.5rem 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.area-riservata-links li {
  margin: 0;
}
.area-riservata-links .button {
  white-space: nowrap;
}
.area-riservata-note {
  margin-top: 1.5rem;
  font-size: 0.9em;
  color: #555;
}

/* --- Login desktop: non si sovrappone alla testata (riga dedicata sopra la barra) --- */
#header {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
#login-bar-desktop {
  position: static;
  top: auto;
  right: auto;
  align-self: flex-end;
  margin-bottom: 0.35em;
}

/* --- Login mobile: stato logged-in e messaggio errore --- */
#login-bar-mobile .login-err {
  font-size: 0.85em;
  color: #d32f2f;
  margin-right: 0.5em;
  display: block;
  width: 100%;
  margin-bottom: 0.35em;
}
#login-bar-mobile .login-logged-mobile {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.6em;
}
#login-bar-mobile .login-user-link {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}
#login-bar-mobile .login-user-link:hover {
  text-decoration: underline;
}
#login-bar-mobile .login-logout {
  color: rgba(255,255,255,0.9);
  text-decoration: none;
  font-size: 0.9em;
}
#login-bar-mobile .login-logout:hover {
  text-decoration: underline;
}

/* --- Ultime rilevazioni: breadcrumb e tabelle --- */
.breadcrumb-ul {
  margin-bottom: 1rem;
  font-size: 0.9em;
}
.breadcrumb-ul a {
  color: #5D81D0;
  text-decoration: none;
}
.breadcrumb-ul a:hover {
  text-decoration: underline;
}

.archivio-anno-select {
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.archivio-anno-select label {
  font-weight: 600;
  margin: 0;
}
.archivio-anno-select select {
  padding: 0.4em 0.6em;
  font-size: 1em;
  border-radius: 6px;
  border: 1px solid #c8cdd6;
  min-width: 6em;
}

.archivio-storico .rilevazioni-tabelle table.stats td:first-child {
  min-width: 2.5em;
}

.rilevazioni-tabelle {
  margin: 1.5rem 0;
  overflow-x: auto;
}
.rilevazioni-tabelle table.stats {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 0 0 1.5rem 0;
  font-size: 0.9em;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  border: none;
}
.rilevazioni-tabelle table.stats td {
  padding: 0.5em 0.6em;
  border: 1px solid #c8cdd6;
  text-align: center;
  background: #fff;
  vertical-align: middle;
}
.rilevazioni-tabelle table.stats td.hed {
  background: #5D80E6;
  color: #fff;
  font-weight: 600;
  text-align: left;
  border-color: #4a6bc7;
  font-size: 1em;
  vertical-align: middle;
}
.rilevazioni-tabelle table.stats td:first-child {
  text-align: left;
  min-width: 10em;
}
.rilevazioni-tabelle table.stats tbody td:last-child {
  font-size: 1em;
  font-weight: normal;
}
.rilevazioni-tabelle table.stats tbody tr:nth-child(odd) td {
  background: #fff;
}
.rilevazioni-tabelle table.stats tbody tr:nth-child(even) td {
  background: #e8eef7;
}

/* --- Immissione dati: note, subtitle, form --- */
.immissione-nota {
  margin: 1rem 0;
  font-size: 0.95em;
  color: #444;
}
.immissione-nota-evidenza {
  margin: 1rem 0;
  padding: 0.5em 0.75em;
  background: #fff3cd;
  border-left: 4px solid #ffc107;
  font-weight: 600;
  font-size: 0.95em;
}
.immissione-subtitle {
  margin: 1.5rem 0 0.5rem;
  font-size: 1.1em;
}
.immissione-actions {
  margin: 1.5rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.immissione-actions .button {
  margin: 0;
}
#errmsg_container {
  margin-bottom: 0.75rem;
}
#errmsg {
  display: none;
  color: #c62828;
  font-size: 0.9em;
}
.rilevazioni-tabelle table.stats input.dato,
.rilevazioni-tabelle table.stats select {
  width: 3.5em;
  max-width: 100%;
  padding: 0.35em 0.4em;
  font-size: 0.9em;
  border: 1px solid #c8cdd6;
  border-radius: 4px;
  text-align: center;
}
.rilevazioni-tabelle table.stats select {
  width: auto;
  min-width: 3.5em;
}

/* --- Scheda personale: foto, dati read-only, form --- */
.scheda-personale-form .form-fields {
  max-width: 48em;
}
.scheda-foto-section {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  align-items: flex-start;
  margin-bottom: 1.5rem;
}
.scheda-foto-preview img {
  max-width: 284px;
  height: auto;
  border-radius: 8px;
  border: 1px solid #c8cdd6;
}
.scheda-foto-upload {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.scheda-foto-upload label {
  font-weight: 600;
  margin: 0;
}
.scheda-foto-upload input[type="file"] {
  padding: 0.35em 0;
}
.scheda-foto-upload input[type="text"] {
  max-width: 20em;
  padding: 0.4em 0.5em;
  border: 1px solid #c8cdd6;
  border-radius: 6px;
}
.scheda-dati-readonly {
  margin: 1rem 0;
  padding: 0.75rem 1rem;
  background: #f0f4f8;
  border-radius: 8px;
  border: 1px solid #e0e6ee;
}
.scheda-dati-readonly p {
  margin: 0.35em 0;
}
.scheda-personale-form .form-field textarea {
  width: 100%;
  max-width: 40em;
  min-height: 8em;
  padding: 0.5em 0.6em;
  border: 1px solid #c8cdd6;
  border-radius: 6px;
  font-family: inherit;
}
.scheda-personale-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  max-width: 20em;
}
.scheda-personale-actions .button,
.scheda-personale-actions button {
  width: 100%;
  margin: 0;
  text-align: center;
  box-sizing: border-box;
}

/* --- Mobile: miglioramenti per liste eventi, articoli, news --- */
@media screen and (max-width: 736px) {
  /* Layout a colonna singola: immagine sopra, testo sotto */
  .box.excerpt {
    display: flex;
    flex-direction: column;
  }
  
  .box.excerpt .image.left {
    width: 100% !important;
    float: none !important;
    margin: 0 0 1rem 0 !important;
  }
  
  .box.excerpt .img-square {
    width: 100% !important;
    max-width: 100%;
  }
  
  .box.excerpt > div {
    width: 100% !important;
    margin-left: 0 !important;
  }
  
  .box.excerpt header {
    margin-left: 0 !important;
  }
  
  .box.excerpt p {
    clear: both !important;
  }
  
  /* Paginazione più compatta su mobile */
  .pagination {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: stretch;
  }
  
  .pagination .button.small {
    width: 100%;
    padding: 0.75em 1em;
    font-size: 0.95em;
  }
  
  .pagination span {
    text-align: center;
    margin: 0 !important;
    padding: 0.5em 0;
  }
  
  /* Assicura che il testo troncato mostri i puntini */
  .box.excerpt p {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    line-height: 1.5em;
    max-height: 6em;
  }
}

/* --- Mobile menu: fix sovrapposizione testo quando va a capo --- */
@media screen and (max-width: 980px) {
  #navPanel .link {
    height: auto !important;
    min-height: 44px;
    line-height: 1.4em !important;
    padding: 0.75em 1em !important;
    display: flex;
    align-items: center;
    word-wrap: break-word;
    white-space: normal;
  }
}

