/* =========================================================
   Il mio giardino — stili frontend
   Le variabili colore sono su :root (non solo su .mg-app):
   almeno un elemento del plugin (il modale "Confronta le
   proposte", costruito da JavaScript) viene aggiunto fuori da
   .mg-app con document.body.appendChild() per evitare problemi
   di sovrapposizione — se le variabili restassero disponibili
   solo dentro .mg-app, quell'elemento non le vedrebbe affatto:
   causa reale, verificata nel codice, dell'intestazione della
   tabella di confronto invisibile (sfondo verde scuro previsto
   ma mai applicato, testo bianco su sfondo trasparente).
   Il resto del plugin resta comunque racchiuso in .mg-app per
   non toccare il tema.
   ========================================================= */

:root {
	/* Le variabili puntano ai colori/font veri del tema (definiti in
	   style.css del tema, gia' caricato su ogni pagina) invece di un
	   proprio set indipendente — cosi' il plugin resta visivamente
	   coerente col resto del sito senza dover riscrivere ogni singola
	   regola qui sotto, che continua a usare solo queste variabili. */
	--mg-bosco: var(--p-green-deep, #2E4A1C);
	--mg-bosco2: var(--p-green-ink, #1E3312);
	--mg-foglia: var(--p-green, #4A762F);
	--mg-foglia2: var(--p-green, #4A762F);
	--mg-velo: var(--p-tint, #EAF0DF);
	--mg-lino: var(--p-off, #F7F5EB);
	--mg-carta: var(--p-white, #FFFFFF);
	--mg-bordo: var(--p-line, #E4E1D2);
	--mg-inchiostro: var(--p-text, #24311D);
	--mg-grigio: var(--p-text-soft, #4E5C46);
	--mg-tenue: var(--p-text-soft, #8A937F);
	--mg-acqua:#2F6F8F;
	--mg-concime:#B4762A;
	--mg-sole:#C79A2E;
	--mg-cura:#5E8A54;
	--mg-ruggine:#A8432E;
	--mg-r: var(--p-radius, 20px);
	--mg-r-sm:12px;
	--mg-shadow: var(--p-shadow-md, 0 18px 40px -24px rgba(30,51,18,.5));
	--mg-shadow-sm: var(--p-shadow-sm, 0 6px 18px -12px rgba(30,51,18,.45));
}

.mg-app {
	font-family: var(--p-font-sans, "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
	color:var(--mg-grigio);
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
}

.mg-app *,
.mg-app *::before,
.mg-app *::after { box-sizing:border-box; }

.mg-app [hidden] { display:none !important; }
/* Stessa protezione, ma senza richiedere il contenitore ".mg-app":
   le pagine di riconoscimento (riconosci-*.php) non lo usano, quindi
   un elemento nascosto via JavaScript (es. il pulsante "Scatta una
   foto" su desktop, dove riconosci.js lo nasconde apposta) restava
   comunque visibile — una regola come ".mg-btn{display:inline-flex}"
   vinceva sull'attributo "hidden" a parita' di specificita', per il
   solo motivo di essere scritta nel foglio di stile (che vince sempre
   sullo stile predefinito del browser). Causa reale del pulsante
   "morto" segnalato dal vivo: restava visibile e cliccabile, ma su
   desktop apriva solo la scelta file normale (i browser desktop
   ignorano l'attributo "capture", pensato solo per il mobile),
   sembrando non fare nulla. */
[hidden] { display:none !important; }

.mg-app h1,.mg-app h2,.mg-app h3 { color:var(--mg-inchiostro); line-height:1.15; margin:0; }
.mg-app p { margin:0; }
.mg-app a { color:var(--mg-foglia); text-decoration:none; }

.mg-display { font-family: var(--p-font-serif, "Fraunces", Georgia, "Times New Roman", serif); font-weight: 500; letter-spacing:-.01em; }
.mg-display em { font-style:italic; color:var(--mg-foglia); }

.mg-eyebrow {
	display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em;
	text-transform:uppercase; color:var(--mg-foglia); margin-bottom:14px;
}

.mg-ic { width:1.15em; height:1.15em; display:inline-block; vertical-align:-.16em; flex:none; }
.mg-ic--flip { transform:scaleX(-1); }

/* ---------- Bottoni ---------- */
.mg-btn {
	display:inline-flex; align-items:center; gap:.5em; cursor:pointer;
	font-family:inherit; font-size:16px; font-weight:600; line-height:1;
	border:1px solid transparent; border-radius:999px; padding:15px 26px;
	transition:transform .12s ease, box-shadow .18s ease, background .18s ease; white-space:nowrap;
	text-decoration:none !important;
}
.mg-btn:hover { transform:translateY(-1px); }
.mg-btn--sm { font-size:14px; padding:11px 18px; }
.mg-btn--primary { background: var(--p-green-deep, #2E4A1C); color:#fff !important; box-shadow:var(--mg-shadow-sm); }
.mg-btn--primary:hover { background: var(--p-green-ink, #1E3312); color:#fff !important; }
.mg-btn--ghost { background:transparent; color:var(--mg-bosco); border-color:var(--mg-bordo); }
.mg-btn--ghost:hover { background:var(--mg-lino); }
.mg-btn--light { background:#fff; color:var(--mg-bosco); }
.mg-btn--danger { background:#B3261E; color:#fff !important; }
.mg-btn--danger:hover { background:#8C1D17; color:#fff !important; }
.mg-btn--danger-outline { background:#fff; color:#B3261E; border-color:#E8B4B0; }
.mg-btn--danger-outline:hover { background:#FBEEED; border-color:#B3261E; color:#8C1D17; }

.mg-oggi__bulk { display:flex; gap:18px; flex-wrap:wrap; margin:12px 0 14px; }
.mg-link-piccolo {
  display:inline-flex; align-items:center; gap:6px;
  background:none; border:0; padding:2px; font-family:inherit;
  font-size:12.5px; font-weight:600; color:var(--mg-bosco); cursor:pointer;
}
.mg-link-piccolo .mg-ic { width:14px; height:14px; }
.mg-link-piccolo:hover { color:var(--mg-foglia); text-decoration:underline; }

/* "Elimina questa pianta": ora un vero pulsante (prima era un link
   troppo poco visibile) — bordo/testo rosso per segnalare che e'
   un'azione distruttiva, ma senza il rosso pieno che le azioni
   primarie della pagina (verdi) usano, per non competere con quelle. */
.mg-scheda__elimina { text-align:center; margin:36px 0 0; }
/* Sotto i 480px: il testo del pulsante non va mai a capo di suo
   (".mg-btn" ha "white-space:nowrap") e "Elimina questa pianta"/
   "Elimina questo riconoscimento" sono abbastanza lunghi da superare la
   larghezza di un telefono stretto anche da soli, centrati come sono
   qui — stessa causa e correzione gia' viste per altri pulsanti in
   questa pagina. Vale sia qui sia per Il mio giardino, che condivide
   la stessa classe. */
@media(max-width:480px) {
	.mg-scheda__elimina .mg-btn { width:100%; justify-content:center; white-space:normal; }
}

/* ---------- Chip ---------- */
.mg-chip {
	display:inline-flex; align-items:center; gap:.4em; font-size:12.5px; font-weight:700;
	padding:5px 11px; border-radius:999px; background:var(--mg-velo); color:var(--mg-foglia); line-height:1;
}
.mg-chip--ok { background:var(--mg-velo); color:var(--mg-foglia); }
.mg-chip--room { background:var(--mg-lino); color:var(--mg-grigio); }
.mg-chip--late { background:#F7E2DC; color:var(--mg-ruggine); }

/* =========================================================
   INVITO
   ========================================================= */
.mg-invito { display:block; padding-bottom: 64px; }
.mg-dash, .mg-scheda { display:block; padding-bottom: 64px; }
.mg-ric { display:block; }
.mg-ric .mg-card { margin-top:20px; }
.mg-ric__cta { margin-top:16px; }
.mg-ric #mgr-nuova { margin-top:20px; }

/* Box "mirino": angoli a L in stile inquadratura fotocamera, icona e
   testo centrati — stessa struttura del mockup fornito, con la
   palette reale del plugin al posto dei colori a se' del mockup. */
.mg-ric-mirino { position:relative; border:1.5px dashed #B9C4AC; border-radius:14px; background:var(--mg-lino); padding:32px 18px; text-align:center; }
.mg-ric-mirino::before, .mg-ric-mirino::after { content:""; position:absolute; width:24px; height:24px; border:2.5px solid var(--mg-foglia); opacity:.55; }
.mg-ric-mirino::before { top:10px; left:10px; border-right:0; border-bottom:0; border-radius:5px 0 0 0; }
.mg-ric-mirino::after { bottom:10px; right:10px; border-left:0; border-top:0; border-radius:0 0 5px 0; }
.mg-ric-mirino__ic { display:flex; align-items:center; justify-content:center; width:52px; height:52px; margin:0 auto 12px; color:var(--mg-bosco); }
.mg-ric-mirino__ic .mg-ic { width:100%; height:100%; }
.mg-ric-mirino strong { display:block; font-size:16px; color:var(--mg-inchiostro); margin-bottom:4px; }
.mg-ric-mirino p { margin:0; color:var(--mg-tenue); font-size:13.5px; }

.mg-ric-azioni { display:grid; gap:10px; margin-top:16px; }
@media(min-width:560px) { .mg-ric-azioni { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.mg-ric-azioni .mg-btn { width:100%; justify-content:center; white-space:normal; text-align:center; }
/* Su desktop (nessun puntatore "a dito", vedi riconosci.js) niente
   fotocamera da scattare sul momento: solo il caricamento di un file
   gia' presente sul computer, a piena larghezza. */
.mg-ric-azioni.mg-ric-azioni--no-cam { grid-template-columns:1fr; }
/* Stesso criterio del controllo JS (pointer:coarse = touch), ma in CSS
   puro: si applica subito al caricamento della pagina, senza il breve
   lampo del pulsante verde visibile prima che il JavaScript facesse in
   tempo a nasconderlo (visto dal vivo su desktop). Il JS resta come
   rete di sicurezza per i browser che non supportano questa media
   query, ma qui la CSS arriva sempre prima. */
@media (pointer: fine) {
	#mgr-opt-cam { display:none; }
	.mg-ric-azioni { grid-template-columns:1fr; }
}

.mg-ric-contatore { display:flex; align-items:center; gap:9px; margin-top:16px; padding-top:14px; font-size:13.5px; color:var(--mg-tenue); }
.mg-ric-pallino { width:9px; height:9px; border-radius:50%; background:var(--mg-foglia); flex:none; }
.mg-ric-pallino--vuoto { background:var(--mg-bordo); }

/* Vista ospiti: card bianca che ospita lo strumento dentro la colonna
   "visual" dell'hero (stesso .mg-hero__visual gia' usato altrove nel
   plugin, qui senza le decorazioni statiche che normalmente contiene). */
.mg-ric-tool-card { position:relative; z-index:1; background:#fff; border:1px solid var(--mg-bordo); border-radius:var(--mg-r); padding:28px; box-shadow:var(--mg-shadow-sm); }
.mg-ric-tool-card .mg-ric { max-width:none; padding-bottom:0; }
/* La riduzione (80%) e il margine sopra servono solo a lasciar vedere
   la foglia decorativa dietro (vedi .mg-ric-hero-leaf, nascosta sotto i
   900px) — sotto quella soglia niente foglia da mostrare, quindi la
   card resta a piena larghezza. Ristretta anche li' senza motivo,
   avrebbe compresso troppo i due pulsanti "Scatta"/"Carica": il testo
   non si comprime (nessun a-capo), e una cella piu' stretta del testo
   costringe la riga a sbordare oltre i bordi della card — probabile
   causa reale dello sbordamento visto dal vivo su mobile. */
@media(min-width:901px) {
	.mg-ric-tool-card { width:80%; margin:70px 0 0 auto; }
	/* "Cos'ha la mia pianta?" (ospiti): il riquadro qui e' piu' alto
	   delle pagine gemelle (due campi in piu'), quindi anche con lo
	   stesso margine di 70px usato altrove finisce per scendere troppo
	   rispetto al testo a sinistra. Resta in alto (niente margine), e
	   la foglia decorativa sbuca da sinistra invece che dall'alto —
	   usa lo spazio gia' libero a sinistra del box (che e' all'80% e
	   allineato a destra), non serve spingere nulla verso il basso per
	   fare posto. */
	.pit-diagnosi-page:not(.pit-diagnosi-loggedin) .mg-ric-tool-card { margin-top:0; }
	.pit-diagnosi-page:not(.pit-diagnosi-loggedin) .mg-ric-hero-leaf {
		top:auto; right:auto; bottom:-8%; left:-16%; width:34%; transform:scaleX(-1);
	}
}

/* Foglia decorativa nell'hero, stessa gia' usata altrove nel sito — in
   alto a destra, in parte coperta dal box dello strumento (z-index piu'
   basso, vedi .mg-ric-tool-card sopra). */
.mg-ric-hero-leaf { position:absolute; top:0; right:0; width:38%; height:auto; z-index:0; opacity:.95; pointer-events:none; }
@media(max-width:900px) { .mg-ric-hero-leaf { display:none; } }

/* Vista registrati: piu' stretta e centrata, senza le fasce a piena
   larghezza della vista ospiti. */
.mg-ric-wrap--min { display:block; padding-bottom:64px; }
.mg-ric-wrap--min h1 { margin-bottom:20px; }

.mg-ric-consigli { display:grid; gap:20px; margin-top:24px; margin-bottom:48px; }
@media(min-width:760px) { .mg-ric-consigli { grid-template-columns:1fr 1fr; } }
.mg-ric-lista { list-style:none; margin:0; padding:0; color:var(--mg-grigio); font-size:14.5px; }
.mg-ric-lista li { display:flex; align-items:flex-start; gap:10px; margin-bottom:10px; }
.mg-ric-lista .mg-ic { width:17px; height:17px; flex:none; margin-top:2px; }
.mg-ric-lista--si .mg-ic { color:var(--mg-foglia2); }
.mg-ric-lista--no .mg-ic { color:var(--mg-ruggine); }

/* Spazio in piu' dove richiesto. Il paragrafo vive ORA fuori da
   .mg-sechead (che lo limitava a 640px senza un modo sicuro di
   allargarlo): qui usa solo max-width+margin:auto, che a differenza del
   vecchio trucco (larghezza fissa + margini negativi) non sbordava mai
   a nessuna dimensione di schermo — quel trucco causava davvero uno
   sbordamento orizzontale nella fascia di larghezze intermedie
   (tablet/mobile in orizzontale), segnalato dal vivo. */
p.mg-lead.mg-ric-lead--staccato {
	margin: 22px auto 0;
	max-width: 62ch;
	text-align: center;
}

/* Ultima sezione della pagina (FAQ): un po' di respiro dal footer. */
.mg-ric-sec--ultima { padding-bottom:40px; }

/* Il paragrafo introduttivo della sezione "oggi" nella pagina del
   lunario non ha nulla sotto per compensare il margine solo-sopra
   della regola condivisa qui sopra: risultava attaccato al box della
   dashboard subito dopo. */
#mgl-oggi p.mg-lead.mg-ric-lead--staccato { margin-bottom: 24px; }
#mgl-mese p.mg-lead.mg-ric-lead--staccato { margin-bottom: 24px; }
#mgl-email p.mg-lead.mg-ric-lead--staccato { margin-bottom: 24px; }

/* Avviso tossicita'/attenzioni nel risultato — stesso principio gia'
   usato nella tabella riassuntiva delle schede pianta degli articoli:
   nota a parte, non una riga tra i parametri. */
.mg-ric-avviso { margin:14px 0 0; padding:12px 14px; background:var(--mg-lino); border-left:3px solid var(--mg-foglia); border-radius:0 10px 10px 0; font-size:13.5px; line-height:1.5; color:var(--mg-inchiostro); }
.mg-quale-vincitrice .mg-ric-avviso { margin-top:22px; }
.mg-ric-avviso strong { color:var(--mg-inchiostro); }

.mg-ric-tabella { width:100%; table-layout:fixed; border-collapse:collapse; margin-top:24px; background:#fff; border:1px solid var(--mg-bordo); border-radius:var(--mg-r); overflow:hidden; font-size:14.5px; box-shadow:var(--mg-shadow-sm); }
.mg-ric-tabella th, .mg-ric-tabella td { padding:14px 16px; text-align:left; border-bottom:1px solid var(--mg-bordo); word-break:break-word; }
.mg-ric-tabella th:first-child, .mg-ric-tabella td:first-child { width:26%; }
.mg-ric-tabella thead th { background:var(--mg-bosco); color:#fff; font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.mg-ric-tabella tbody tr:last-child th, .mg-ric-tabella tbody tr:last-child td { border-bottom:0; }
.mg-ric-tabella tbody tr:nth-child(even) { background:var(--mg-lino); }
.mg-ric-tabella td:not(:first-child) { text-align:center; font-weight:700; }
.mg-ric-tabella thead th:not(:first-child) { text-align:center; }
.mg-ric-tabella tbody th { font-weight:600; color:var(--mg-inchiostro); }
.mg-ric-tabella td.mg-ric-tabella__si { color:var(--mg-foglia2); }
.mg-ric-tabella td.mg-ric-tabella__no { color:var(--mg-tenue); font-weight:400; }

/* Opt-in posizione (solo loggati) e link alla scheda completa */
.mg-ric__geo { display:flex; align-items:flex-start; gap:8px; font-size:13px; color:var(--mg-tenue); margin-top:14px; cursor:pointer; }
.mg-ric__geo input { margin-top:2px; }
.mg-azioni-ric { margin-top:16px; }
.mg-azioni-ric .mg-btn { width:100%; justify-content:center; }

/* Storico dei riconoscimenti (vista registrati) */
/* Card dello storico riconoscimenti: riusa .mg-pcard/.mg-plants di "Il
   mio giardino" (stessa presentazione de "Le mie piante"), con una
   variante propria solo dove serve davvero. */
.mg-ric-card { cursor:pointer; }
.mg-ric-aggiungi:hover { background:var(--mg-velo); color:var(--mg-foglia); }

.mg-ric-cerca { display:flex; align-items:center; gap:10px; margin-top:18px; padding:10px 14px; background:#fff; border:1px solid var(--mg-bordo); border-radius:999px; max-width:360px; }
.mg-ric-cerca .mg-ic { width:18px; height:18px; color:var(--mg-tenue); flex:none; }
.mg-ric-cerca input { border:0; outline:0; font-family:inherit; font-size:14.5px; width:100%; background:none; }

.mg-ric-filtri { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.mg-ric-filtro { display:inline-flex; align-items:center; gap:6px; font-family:inherit; font-size:13.5px; font-weight:600; padding:7px 14px; border-radius:999px; border:1px solid var(--mg-bordo); background:#fff; color:var(--mg-grigio); cursor:pointer; }
.mg-ric-filtro span { font-size:12px; opacity:.75; }
.mg-ric-filtro.is-attivo { background:var(--mg-bosco); border-color:var(--mg-bosco); color:#fff; }
.mg-ric-filtro.is-attivo span { opacity:.85; }

/* Card laterali "Oggi" e consigli foto — stessa griglia .mg-grid2 di
   "Il mio giardino" (main + aside sticky), vedi riconosci-registrati.php. */
.mg-ric-credito { display:flex; align-items:baseline; gap:8px; justify-content:center; margin-top:6px; }
.mg-ric-credito b { font-size:40px; font-weight:800; color:var(--mg-bosco); line-height:1; }
.mg-ric-credito small { font-size:13px; color:var(--mg-tenue); }
.mg-ric-pallini { display:flex; flex-wrap:wrap; gap:5px; justify-content:center; margin:14px 0; }

.mg-ric-consiglibrevi { list-style:none; margin:0; padding:0; }
.mg-ric-consiglibrevi li { display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-bottom:1px solid var(--mg-bordo); font-size:13.5px; color:var(--mg-grigio); }
.mg-ric-consiglibrevi li:last-child { border-bottom:0; }
.mg-ric-consiglibrevi .mg-ic { width:17px; height:17px; flex:none; margin-top:1px; color:var(--mg-foglia); }

.mg-linkbtn { border:0; background:none; padding:0; font-family:inherit; font-size:inherit; color:var(--mg-foglia); text-decoration:underline; cursor:pointer; }

.mg-gettoni-riga { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:4px; }
.mg-azioni-ric--doppia { display:flex; flex-wrap:wrap; gap:10px; }
.mg-azioni-ric--doppia .mg-btn { width:auto; flex:1 1 0; min-width:200px; justify-content:center; }
@media(max-width:480px) { .mg-azioni-ric--doppia { flex-direction:column; } }

/* Nella vista registrati il contatore "ricco" e' nella colonna laterale
   (.mg-ric-credito): quello semplice dentro lo strumento resterebbe
   ridondante, meglio nasconderlo li'. */
.mg-ric-wrap--min .mg-ric-contatore { display:none; }

.mg-ric-dati { margin-top:40px; }
.mg-ric-dati__griglia { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:14px; }
.mg-ric-dato { background:#fff; border:1px solid var(--mg-bordo); border-radius:var(--mg-r-sm); padding:18px 14px; text-align:center; }
.mg-ric-dato b { display:block; font-size:28px; font-weight:800; color:var(--mg-bosco); line-height:1; }
.mg-ric-dato span { display:block; margin-top:6px; font-size:12.5px; color:var(--mg-grigio); }
@media(max-width:560px) { .mg-ric-dati__griglia { grid-template-columns:1fr; } }

.mg-hero-band {
	background: var(--p-off, #F7F5EB);
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
}

.mg-hero {
	display:grid; grid-template-columns:1.05fr .95fr; gap:48px;
	/* "start", non "center": con "center" la colonna di testo viene
	   centrata verticalmente rispetto alla riga piu' alta tra le due
	   colonne — se l'illustrazione a destra e' piu' alta o piu' bassa
	   da una pagina all'altra (es. "Il mio giardino" contro "Che pianta
	   e'"), lo stesso identico padding-top produce uno spazio visibile
	   diverso sopra l'eyebrow/testo, pur essendo il CSS letteralmente
	   identico — osservato dal vivo confrontando le due pagine. Con
	   "start" entrambe le colonne cominciano sempre subito dopo il
	   padding, a prescindere da quanto e' alta l'illustrazione. */
	align-items:start;
	max-width: var(--p-max, 1240px); margin: 0 auto;
	padding: 48px clamp(20px, 4vw, 40px); position:relative; overflow:hidden;
}
.mg-hero__copy { position:relative; z-index:2; }
.mg-display.mg-hero__copy, .mg-hero__copy h1 { font-size:clamp(34px,4.2vw,52px); }
.mg-hero h1 {
	font-family: var(--p-font-sans, inherit); font-weight:800; font-size:clamp(34px,4.2vw,52px);
	letter-spacing:-.035em; line-height:1.08; margin-bottom:18px;
}
.mg-lead { font-size:18px; max-width:40ch; margin-bottom:26px; }
.mg-hero__claim { font-family: var(--p-font-serif, "Fraunces", Georgia, "Times New Roman", serif); font-size:20px; font-weight:500; color:var(--mg-foglia); margin:6px 0 14px; }
.mg-hero__claim em { font-style:italic; }

/* Widget di riconoscimento per visitatori non registrati (invito.php) */
.mg-anon-widget { margin-top:26px; padding:22px; background:#fff; border-radius:var(--mg-r); }
.mg-anon-widget__upload { text-align:center; }
.mg-anon-widget__nota { margin:14px 0 0 !important; font-size:13px; color:var(--mg-tenue); }
.mg-anon-widget__risultato { text-align:center; }
.mg-anon-widget__esito { font-size:19px; margin:0 0 8px; }
.mg-anon-widget__esito em { color:var(--mg-tenue); font-weight:400; }
.mg-anon-widget__risultato p { margin:0 0 14px; color:var(--mg-grigio); }
.mg-anon-widget__risultato .mg-btn { margin:0 auto; }

/* Sezione a sfondo scuro (es. "Come funziona"), stesso verde bosco
   scuro usato per il resto del sito in blocchi analoghi (footer ecc.)
   A piena larghezza, stessa tecnica di ".mg-hero-band": un involucro
   esterno sfonda a 100vw per il colore, il contenuto vero resta
   dentro alla larghezza normale di lettura.
   IMPORTANTE: le card dei singoli passi (".mg-steps .mg-step") sono
   bianche — la versione precedente rendeva bianco anche il LORO
   testo, invisibile su una card bianca. Qui si tocca solo il testo
   che sta DIRETTAMENTE sullo sfondo scuro (etichetta ed titolo di
   sezione), le card restano come sono altrove (gia' leggibili). */
.mg-sec-band--scuro {
  background: var(--mg-bosco2);
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  padding: 48px 0;
}
.mg-sec-band--scuro .mg-sec {
  margin-top: 0;
  max-width: var(--p-max, 1240px);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 4vw, 40px);
  padding-right: clamp(20px, 4vw, 40px);
}
.mg-sec-band--scuro .mg-eyebrow { color: rgba(255,255,255,.72); }
.mg-sec-band--scuro .mg-sechead h2.mg-display { color: #fff; }
/* Il paragrafo "lead" (es. ".mg-ric-lead--staccato") sta direttamente
   sullo sfondo scuro, non dentro una card bianca come i passi sotto:
   qui va reso bianco apposta, e staccato con un margine sotto piu'
   ampio del solito, per non sembrare incollato ai box che seguono. */
.mg-sec-band--scuro > .mg-sec > .mg-lead {
  color: rgba(255,255,255,.82);
  margin-bottom: 32px !important;
}

/* Domande frequenti: testo semplice, non a riquadri — collassate di
   serie, si aprono al clic (<details>/<summary> nativi, nessun
   JavaScript necessario). */
.mg-faq { border-top:1px solid var(--mg-bordo); }
.mg-faq__voce { border-bottom:1px solid var(--mg-bordo); padding:18px 0; }
.mg-faq__voce summary {
	cursor:pointer; font-weight:700; font-size:16.5px; color:var(--mg-inchiostro);
	list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.mg-faq__voce summary::-webkit-details-marker { display:none; }
.mg-faq__voce summary::after {
	content:'+'; font-size:24px; font-weight:400; line-height:1; color:var(--mg-foglia); flex-shrink:0;
}
.mg-faq__voce[open] summary::after { content:'−'; }
.mg-faq__voce p { margin:12px 0 0; color:var(--mg-grigio); font-size:15px; line-height:1.6; }
.mg-hero__ctas { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; margin-bottom:26px; }
/* Sotto i 480px, a piena larghezza impilati: il testo dei pulsanti non
   va mai a capo (".mg-btn" ha "white-space:nowrap"), quindi "Iscriviti
   e aumenta i limiti" da solo puo' essere piu' largo di un telefono
   stretto anche come unico elemento della riga — il flex-wrap del
   contenitore aiuta solo a mandare a capo piu' elementi tra loro, non
   restringe il contenuto non spezzabile di uno solo. Sbordamento
   orizzontale segnalato dal vivo, causa qui. */
@media(max-width:480px) {
	.mg-hero__ctas { flex-direction:column; align-items:stretch; }
	.mg-hero__ctas .mg-btn { width:100%; justify-content:center; white-space:normal; }
}
.mg-hero__small { display:flex; flex-wrap:wrap; gap:18px; font-size:13.5px; font-weight:600; color:var(--mg-grigio); margin-top:18px; margin-bottom:20px; }
.mg-hero__small span { display:inline-flex; align-items:center; gap:.4em; }
.mg-hero__small .mg-ic { color:var(--mg-foglia); }
.mg-hero__login { margin-top:8px; font-size:14.5px; color:var(--mg-tenue); }
.mg-hero__login a { font-weight:600; }

.mg-hero__visual { position:relative; min-height:380px; }
.mg-blob {
	position:absolute; inset:8% 4% 8% 8%;
	width: 84%; height: 84%; object-fit: contain; object-position: center;
}
.mg-democard {
	position:absolute; left:12%; top:20%; width:230px; background:#fff; border-radius:var(--mg-r);
	box-shadow:var(--mg-shadow); overflow:hidden; z-index:2;
}
.mg-democard__ph {
	height:120px; overflow:hidden; background:var(--mg-lino);
}
.mg-democard__ph img { width:100%; height:100%; object-fit:cover; display:block; }
.mg-democard__body { padding:14px 16px 16px; }
.mg-democard__body h3 { font-size:16px; }
.mg-democard__body p { font-size:13px; color:var(--mg-tenue); margin:2px 0 10px; }
.mg-democard__task {
	display:flex; align-items:center; gap:.5em; font-size:12.5px; font-weight:600;
	color:var(--mg-acqua); background:#eaf3f7; border-radius:10px; padding:8px 10px;
}
.mg-fchip {
	position:absolute; display:flex; align-items:center; gap:10px; background:#fff;
	border-radius:14px; padding:10px 14px; box-shadow:var(--mg-shadow); z-index:3; font-size:12.5px;
}
.mg-fchip .mg-ic { width:20px; height:20px; }
.mg-fchip b, .mg-fchip div { font-weight:700; color:var(--mg-inchiostro); line-height:1.25; }
.mg-fchip small { display:block; font-weight:500; color:var(--mg-tenue); }
.mg-fchip--ai { top:8%; right:2%; color:var(--mg-foglia); animation:mg-float 5s ease-in-out infinite; }
.mg-fchip--mail { bottom:8%; right:6%; color:var(--mg-acqua); animation:mg-float 6s ease-in-out .8s infinite; }
@keyframes mg-float { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }

.mg-ptag {
	position:absolute; top:12px; left:12px; z-index:3; background:rgba(255,255,255,.94);
	color:var(--mg-bosco); font-size:11.5px; font-style:italic; font-family: var(--p-font-serif, "Fraunces", serif);
	padding:5px 12px; border-radius:999px; box-shadow:var(--mg-shadow-sm);
}
.mg-ptag::before { content:""; }

.mg-sec { margin-top:56px; }

/* La sezione bianca subito prima di una banda scura (es. "Come
   funziona") a volte contiene un contenuto variabile al suo interno
   (es. il box "Carica una foto e scoprilo gratis" in invito.php,
   presente solo se il riconoscimento anonimo e' attivo dalle
   impostazioni) — senza un margine sotto proprio, lo spazio prima
   della banda scura dipendeva "in prestito" dal margine di quel
   contenuto opzionale: se assente, spariva anche lo spazio. Selettore
   ":has()" invece di aggiungere una classe dedicata nei tre template
   che condividono questa stessa struttura (vedi invito.php,
   riconosci-ospiti.php, quale-ospiti.php) — un solo punto da
   aggiornare in futuro. */
.mg-sec:has(+ .mg-sec-band--scuro) { margin-bottom:56px; }
.mg-sechead { text-align:center; max-width:640px; margin:0 auto 34px; }
.mg-sechead h2 {
	font-family: var(--p-font-sans, inherit); font-weight:800; font-size:clamp(24px,2.6vw,32px);
	letter-spacing:-.03em; font-style:normal;
}
.mg-sechead h2 em { font-style: normal; color: inherit; }

.mg-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.mg-steps .mg-step {
	background:#fff; border:1px solid var(--mg-bordo); border-radius:var(--mg-r); padding:26px;
	/* Icona e titolo affiancati sulla stessa riga (icona a larghezza
	   fissa, titolo che si adatta accanto), la descrizione va comunque a
	   capo su tutta la larghezza della card: si ottiene con un unico
	   contenitore flex "a capo" (flex-wrap), senza dover cambiare
	   l'HTML — il paragrafo sotto ha "flex-basis:100%", che lo forza
	   sempre a cominciare una riga nuova, qualunque sia la larghezza di
	   icona+titolo sulla prima. */
	display:flex; flex-wrap:wrap; align-items:center; column-gap:14px; row-gap:0;
}
.mg-step__ic {
	width:50px; height:50px; border-radius:14px; display:flex; align-items:center; justify-content:center;
	background:var(--mg-velo); color:var(--mg-foglia); flex-shrink:0;
}
.mg-step__ic .mg-ic { width:24px; height:24px; }
.mg-steps .mg-step h3 { font-size:18px; margin:0; flex:1 1 auto; min-width:0; }
.mg-steps .mg-step p { font-size:14.5px; flex-basis:100%; width:100%; margin:12px 0 0; }

.mg-feats { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.mg-feat {
	background:var(--mg-lino); border-radius:var(--mg-r); padding:24px;
	/* Stesso principio di ".mg-steps .mg-step" qui sopra: icona e
	   titolo affiancati, descrizione forzata a capo su tutta la
	   larghezza — nessuna modifica ai template HTML necessaria. */
	display:flex; flex-wrap:wrap; align-items:center; column-gap:12px; row-gap:0;
}
.mg-feat__ic { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:#fff; color:var(--mg-foglia); flex-shrink:0; box-shadow:var(--mg-shadow-sm); }
.mg-feat__ic .mg-ic { width:22px; height:22px; }
.mg-feat h3 { font-size:16.5px; margin:0; flex:1 1 auto; min-width:0; }
.mg-feat p { font-size:14px; flex-basis:100%; width:100%; margin:10px 0 0; }

/* =========================================================
   DASHBOARD
   ========================================================= */
.mg-dashhead { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:26px; flex-wrap:wrap; }
.mg-dashhead h1 {
	font-family: var(--p-font-sans, inherit); font-weight:800; font-size:clamp(28px,3.6vw,42px);
	letter-spacing:-.035em; line-height:1.12; font-style:normal;
}
.mg-dashhead__date { color:var(--mg-tenue); font-size:14.5px; margin-top:8px; }

.mg-vuoto { text-align:center; background:var(--mg-lino); border:1px dashed var(--mg-bordo); border-radius:24px; padding:60px 28px; }
.mg-vuoto__ic { width:64px; height:64px; margin:0 auto 18px; border-radius:18px; background:var(--mg-velo); color:var(--mg-foglia); display:flex; align-items:center; justify-content:center; }
.mg-vuoto__ic .mg-ic { width:32px; height:32px; }
.mg-vuoto h2 { font-size:22px; margin-bottom:8px; }
.mg-vuoto p { margin-bottom:20px; }

.mg-grid2 { display:grid; grid-template-columns:1fr 340px; gap:26px; align-items:start; }
.mg-main { display:flex; flex-direction:column; gap:22px; }
.mg-side { display:flex; flex-direction:column; gap:22px; position:sticky; top:20px; }

/* "Quale pianta", vista registrati: quando il quiz mostra il
   risultato, SOLO il box del risultato (#mgq-esito) sporge oltre la
   sua colonna, verso lo spazio della barra laterale — non l'intera
   colonna ".mg-main", che resterebbe altrimenti larga uguale anche
   per "Le tue individuazioni passate" subito sotto (due tentativi
   precedenti, uno con due griglie separate e uno con le aree di
   griglia riassegnate, avevano proprio questo effetto indesiderato,
   segnalato dal vivo con schermate). La barra laterale resta al suo
   posto nella griglia (non e' ne' spostata ne' rimossa dal DOM) ma
   diventa invisibile SOLO per la durata di questo stato, cosi' il box
   del risultato puo' coprire visivamente quello spazio senza che i
   due si sovrappongano contenutisticamente. */
.mg-quale-esito-attivo .mg-quale-quiz {
	width: calc(100% + 340px + 26px);
	margin-right: calc(-340px - 26px);
}
.mg-quale-esito-attivo .mg-side {
	visibility: hidden;
}

.mg-card { background:#fff; border:1px solid var(--mg-bordo); border-radius:var(--mg-r); padding:24px; }

/* Stesso contenuto di una .mg-card, ma senza il riquadro visivo —
   usata dove il testo deve fondersi nella pagina invece di apparire
   in un box a se' stante (vedi #mgr-breve-box in riconosci-strumento.php). */
.mg-card--nudo { background:none; border:none; border-radius:0; padding:0; }
.mg-card__head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:6px; }
.mg-card__head h2 { font-size:18px; }
.mg-ric-consigli__head { margin-bottom:14px; }
.mg-card__sub { font-size:13px; color:var(--mg-tenue); margin-bottom:14px; }

.mg-empty { display:flex; align-items:center; gap:.6em; color:var(--mg-tenue); font-size:14.5px; padding:14px 0; }
.mg-empty .mg-ic { color:var(--mg-foglia); }

/* Task */
.mg-task { display:flex; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--mg-bordo); }
.mg-task:first-child { border-top:0; }
.mg-task__check {
	width:26px; height:26px; flex:none; border-radius:50%; border:2px solid var(--mg-bordo);
	background:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
	color:#fff; transition:.16s;
}
.mg-task__check .mg-ic { width:16px; height:16px; opacity:0; transition:.16s; }
.mg-task:hover .mg-task__check { border-color:var(--mg-foglia); }
.mg-task.is-done .mg-task__check { background:var(--mg-foglia); border-color:var(--mg-foglia); }
.mg-task.is-done .mg-task__check .mg-ic { opacity:1; }
.mg-task.is-done .mg-task__title { text-decoration:line-through; color:var(--mg-tenue); }
.mg-task__body { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.mg-task__title { font-weight:600; color:var(--mg-inchiostro); font-size:15px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mg-task__meta { font-size:13px; color:var(--mg-tenue); }
.mg-task__snooze { background:none; border:0; color:var(--mg-tenue); font:inherit; font-size:13px; font-weight:600; cursor:pointer; padding:6px 8px; border-radius:8px; }
.mg-task__snooze:hover { background:var(--mg-lino); color:var(--mg-foglia); }

/* Pastiglia tipo cura */
.mg-tt { width:36px; height:36px; flex:none; border-radius:11px; display:flex; align-items:center; justify-content:center; }
.mg-tt .mg-ic { width:19px; height:19px; }
.mg-tt--acqua { background:#e7f1f6; color:var(--mg-acqua); }
.mg-tt--concime { background:#f6ecdc; color:var(--mg-concime); }
.mg-tt--sole { background:#f7f0d8; color:var(--mg-sole); }
.mg-tt--cura { background:var(--mg-velo); color:var(--mg-foglia); }

/* Settimana */
.mg-week { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin:8px 0 14px; }
.mg-day { text-align:center; border:1px solid var(--mg-bordo); border-radius:14px; padding:12px 4px 10px; background:#fff; }
.mg-day.is-today { border-color:var(--mg-foglia); background:var(--mg-velo); }
.mg-day small { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--mg-tenue); }
.mg-day b { display:block; font-size:18px; color:var(--mg-inchiostro); margin:2px 0 6px; font-family: var(--p-font-serif, "Fraunces", serif); }
.mg-day__dots { display:flex; gap:3px; justify-content:center; min-height:7px; }
.mg-dot { width:7px; height:7px; border-radius:50%; display:inline-block; }
.mg-dot--acqua { background:var(--mg-acqua); }
.mg-dot--concime { background:var(--mg-concime); }
.mg-dot--sole { background:var(--mg-sole); }
.mg-dot--cura { background:var(--mg-foglia); }
.mg-legend { display:flex; flex-wrap:wrap; gap:16px; font-size:12.5px; color:var(--mg-grigio); margin-top:14px; }
.mg-legend span { display:inline-flex; align-items:center; gap:.4em; }

/* I giorni della settimana sono ora bottoni cliccabili: stesso aspetto
   di prima, solo con le proprieta' di reset di un <button>. */
.mg-day--click { font-family:inherit; cursor:pointer; width:100%; transition:border-color .15s, transform .1s; }
.mg-day--click:hover { border-color:var(--mg-foglia); transform:translateY(-1px); }
.mg-day--click:focus-visible { outline:2px solid var(--mg-foglia); outline-offset:2px; }

.mg-week__full { width:100%; justify-content:center; margin-top:2px; }

/* Modale del calendario completo — piu' largo del solito per ospitare
   la griglia del mese. */
.mg-modal__box--lg {
	max-width:800px !important;
	/* !important necessario: la regola base ".mg-modal__box" (piu'
	   sotto in questo stesso file, stessa specificita' di una singola
	   classe) altrimenti vince a parita' di specificita' perche'
	   scritta dopo — la mia correzione precedente cambiava questo
	   valore ma non aveva mai effetto reale per questo motivo, causa
	   vera del modale di confronto ancora troppo stretto nonostante il
	   tentativo precedente. Prima era 640px: comunque troppo stretto
	   per la tabella di confronto (4 colonne: voce + 3 piante, con
	   valori anche lunghi come "Torboso, ritiene acqua").
	*/
}

.mg-cal__head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; padding-right:46px; }
.mg-cal__head h2 { font-size:20px; text-align:center; flex:1; }
.mg-cal__nav {
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border:1px solid var(--mg-bordo); border-radius:10px;
  background:#fff; color:var(--mg-bosco); cursor:pointer; flex-shrink:0;
}
.mg-cal__nav:hover { background:var(--mg-velo); border-color:var(--mg-foglia); }
.mg-cal__nav .mg-ic--flip { transform:rotate(180deg); }
.mg-cal__dow { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:6px; }
.mg-cal__dow span { text-align:center; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--mg-tenue); }
.mg-cal__grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.mg-cal__cell {
  aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; border:1px solid var(--mg-bordo); border-radius:10px; background:#fff;
  font-family:inherit; cursor:pointer; padding:4px 2px; transition:border-color .15s, transform .1s;
}
.mg-cal__cell:hover { border-color:var(--mg-foglia); transform:translateY(-1px); }
.mg-cal__cell b { font-size:14px; font-weight:600; color:var(--mg-inchiostro); }
.mg-cal__cell.is-today { border-color:var(--mg-foglia); background:var(--mg-velo); }
.mg-cal__cell--vuota { border:0; background:none; cursor:default; }
.mg-cal__cell--vuota:hover { transform:none; }

/* Dettaglio di un giorno (dentro la piccola modale) */
.mg-giorno__lista { display:flex; flex-direction:column; gap:10px; }
.mg-giorno__voce { display:flex; align-items:flex-start; gap:10px; font-size:14.5px; }
.mg-giorno__voce.is-done { opacity:.55; }
.mg-giorno__voce .mg-tt { flex-shrink:0; margin-top:2px; width:26px; height:26px; }
.mg-giorno__testo { color:var(--mg-inchiostro); line-height:1.4; }
.mg-giorno__amb { color:var(--mg-tenue); font-size:13px; }
.mg-giorno__fatto { margin-left:auto; font-size:12px; font-weight:700; color:var(--mg-foglia); flex-shrink:0; }

/* Ricerca comune/provincia per "Vivai vicino a te" — stessa forma
   tondeggiante del campo domanda dell'assistente AI qui sopra. */
.mg-zonapick { display:flex; gap:8px; margin-top:12px; }
.mg-zonapick input[type="text"] {
  flex:1; min-width:0; border:1.5px solid var(--mg-bordo); border-radius:999px;
  padding:10px 15px; font-size:13.5px; font-family:inherit; background:var(--mg-carta); color:var(--mg-inchiostro);
}
.mg-zonapick input[type="text"]:focus { outline:none; border-color:var(--mg-foglia); box-shadow:0 0 0 3px rgba(74,118,47,.15); }

/* Riga con il link della vetrina da copiare */
.mg-vetrina__link { display:flex; gap:8px; margin-top:10px; }
.mg-vetrina__link input[type="text"] {
  flex:1; min-width:0; border:1.5px solid var(--mg-bordo); border-radius:999px;
  padding:9px 15px; font-size:13px; font-family:inherit; background:var(--mg-carta); color:var(--mg-grigio);
}

/* ==========================================================================
   VETRINA PUBBLICA — pagina di sola lettura, mostrata a chiunque abbia
   il link (anche senza account).
   ========================================================================== */
.mg-vetrina { max-width:none; margin:0; }
.mg-vetrina__wrap { max-width:960px; margin:0 auto; padding:0 20px; }

.mg-vetrina__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:20px; margin-bottom:44px; }
.mg-vetrina__card { background:#fff; border:1px solid var(--mg-bordo); border-radius:18px; overflow:hidden; }
.mg-vetrina__img { position:relative; aspect-ratio:1; background:var(--mg-velo); }
.mg-vetrina__img img { width:100%; height:100%; object-fit:cover; display:block; }
.mg-vetrina__placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.mg-vetrina__placeholder .mg-ic { width:36px; height:36px; color:var(--mg-foglia); }
.mg-vetrina__testo { padding:16px 18px 18px; }
.mg-vetrina__testo h2 { font-size:17px; margin:0 0 2px; }
.mg-vetrina__sci { font-size:13px; font-style:italic; color:var(--mg-tenue); margin:0 0 8px; }
.mg-vetrina__chips { display:flex; flex-wrap:wrap; gap:6px; }

/* ---------- Fascia hero ---------- */
.mg-vet-hero {
  position:relative; overflow:hidden; text-align:center; color:#fff;
  background:linear-gradient(160deg, var(--mg-bosco2) 0%, var(--mg-bosco) 60%, #3A5C24 100%);
  padding:30px 20px 96px; border-radius:0 0 28px 28px;
}
.mg-vet-leaf { position:absolute; width:190px; height:190px; color:#fff; opacity:.07; pointer-events:none; }
.mg-vet-leaf::before {
  content:""; position:absolute; inset:0; background:currentColor;
  -webkit-mask:radial-gradient(circle at 50% 15%, transparent 38%, #000 40%);
  mask:radial-gradient(circle at 50% 15%, transparent 38%, #000 40%);
  border-radius:50% 50% 50% 4%;
}
.mg-vet-leaf--1 { top:-60px; left:-60px; transform:rotate(-24deg); }
.mg-vet-leaf--2 { width:150px; height:150px; right:-40px; top:90px; transform:rotate(30deg); }
.mg-vet-brand { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:600; color:#DCE8CC; margin-bottom:30px; }
.mg-vet-brand .mg-ic { width:16px; height:16px; }
.mg-vet-avatar {
  width:72px; height:72px; border-radius:50%; margin:0 auto 16px;
  background:var(--mg-velo); color:var(--mg-bosco); font-family:var(--p-font-serif,serif); font-weight:600; font-size:30px;
  display:flex; align-items:center; justify-content:center; border:3px solid rgba(255,255,255,.25);
}
.mg-vet-eyebrow { font-size:12.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:#B9CCA0; margin:0 0 4px; }
.mg-vac-badge {
	display:inline-flex; align-items:center; gap:8px;
	font-size:12px; font-weight:600; letter-spacing:.03em; color:#EAF3E4;
	background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.18);
	border-radius:999px; padding:8px 14px;
}
.mg-vac-badge .mg-ic { width:13px; height:13px; }
.mg-vet-hero h1 { color:#fff; font-size:clamp(38px,7vw,52px); margin:0 0 26px; }
.mg-vet-stats { display:flex; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }
.mg-vet-stats > div { padding:0 clamp(14px,4vw,30px); }
.mg-vet-stats > div + div { border-left:1px solid rgba(255,255,255,.2); }
.mg-vet-stats strong { display:block; font-family:var(--p-font-serif,serif); font-weight:600; font-size:clamp(24px,4vw,29px); line-height:1.1; }
.mg-vet-stats span { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#C9D8B4; }

/* ---------- Intestazione chiara del piano vacanza — niente sfondo
   colorato, solo il testo, su sfondo pagina normale. ---------- */
.mg-vac-hero { text-align:center; padding:6px 0 30px; border-bottom:1px solid var(--mg-bordo); margin-bottom:34px; }
.mg-vac-hero .mg-vet-brand { color:var(--mg-tenue); margin-bottom:22px; }
.mg-vac-hero .mg-vac-badge {
	color:var(--mg-bosco2); background:var(--mg-velo); border:1px solid var(--mg-bordo);
	margin-bottom:20px;
}
.mg-vac-hero h1 { color:var(--mg-inchiostro); font-size:clamp(30px,5vw,40px); margin:0 0 10px; }
.mg-vac-hero .mg-vet-eyebrow { color:var(--mg-tenue); margin-bottom:24px; }
.mg-vac-hero .mg-vac-stat { margin-top:0; }
.mg-vac-hero .mg-vac-stat li { color:var(--mg-grigio); background:var(--mg-velo); border-color:var(--mg-bordo); }
.mg-vac-hero .mg-vac-stat strong { color:var(--mg-bosco2); }

/* ---------- Profilo botanico ---------- */
.mg-vet-profilo {
  position:relative; background:#fff; border:1px solid var(--mg-bordo); border-radius:22px;
  box-shadow:0 22px 50px -30px rgba(27,46,16,.35); padding:24px 26px; margin:-56px 0 0;
}
.mg-vet-profilo__top { display:flex; align-items:flex-start; gap:16px; }
.mg-vet-medaglia {
  width:52px; height:52px; flex-shrink:0; border-radius:14px;
  background:var(--mg-velo); color:var(--mg-bosco); display:flex; align-items:center; justify-content:center;
}
.mg-vet-medaglia .mg-ic { width:24px; height:24px; }
.mg-vet-profilo__eyebrow { font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--mg-tenue); margin:0; }
.mg-vet-profilo h2 { font-size:clamp(20px,3vw,24px); margin:2px 0 5px; }
.mg-vet-profilo p { margin:0; font-size:14px; color:var(--mg-grigio); line-height:1.5; max-width:62ch; }
.mg-vet-share { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:18px; padding-top:16px; border-top:1px dashed var(--mg-bordo); }
.mg-vet-share__label { font-size:13px; font-weight:600; color:var(--mg-tenue); margin-right:auto; }

/* ---------- Tile traguardi ---------- */
.mg-vet-tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:22px 0 36px; }
.mg-vet-tile { background:#fff; border:1px solid var(--mg-bordo); border-radius:16px; padding:14px 16px; display:flex; align-items:center; gap:12px; }
.mg-vet-tile .mg-ic { width:22px; height:22px; flex-shrink:0; color:var(--mg-foglia); background:var(--mg-velo); border-radius:11px; padding:11px; box-sizing:content-box; }
.mg-vet-tile span { display:block; font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mg-tenue); margin-bottom:2px; }
.mg-vet-tile strong { font-size:14px; font-weight:600; line-height:1.3; }

/* ---------- Intestazione sezione piante ---------- */
.mg-vet-sechead { display:flex; align-items:center; gap:12px; margin:0 0 18px; }
.mg-vet-sechead h2 { font-size:13px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--mg-tenue); margin:0; }
.mg-vet-sechead::after { content:""; flex:1; height:1px; background:var(--mg-bordo); }
.mg-vet-count { background:var(--mg-velo); color:var(--mg-bosco2); font-size:12px; font-weight:700; padding:3px 11px; border-radius:999px; }

/* ---------- Badge sulle card (veterana/ultima) ---------- */
.mg-vet-badge {
  position:absolute; top:10px; left:10px; z-index:1;
  display:inline-flex; align-items:center; gap:5px;
  font-size:10.5px; font-weight:700; color:#fff; padding:5px 10px; border-radius:999px;
}
.mg-vet-badge .mg-ic { width:12px; height:12px; }
.mg-vet-badge--veterana { background:var(--mg-ruggine); }
.mg-vet-badge--nuova { background:var(--mg-foglia); }
.mg-vet-tempo { display:flex; align-items:center; gap:5px; font-size:12px; color:var(--mg-grigio); margin:0 0 8px; }
.mg-vet-tempo .mg-ic { width:13px; height:13px; color:var(--mg-foglia); }

/* ---------- CTA visitatori ---------- */
.mg-vet-cta {
  position:relative; overflow:hidden; margin:8px 0 26px; text-align:center;
  background:linear-gradient(150deg, var(--mg-bosco2), var(--mg-bosco));
  border-radius:22px; color:#fff; padding:40px 24px 42px;
}
.mg-vet-cta h2 { color:#fff; font-size:clamp(22px,4vw,28px); margin:0 0 10px; }
.mg-vet-cta p { color:#D5E2C2; font-size:14.5px; line-height:1.6; max-width:54ch; margin:0 auto 22px; }
.mg-vet-cta .mg-btn { background:#fff; color:var(--mg-bosco2); }
.mg-vet-cta .mg-btn:hover { background:var(--mg-velo); }

.mg-vet-footer { text-align:center; padding:8px 0 30px; color:var(--mg-tenue); font-size:13px; }
.mg-vet-footer .mg-ic { width:14px; height:14px; vertical-align:-2px; color:var(--mg-foglia); margin-right:4px; }
.mg-vet-footer strong { color:var(--mg-inchiostro); }

/* ---------- Piano vacanza: intestazione con statistiche ---------- */
.mg-vet-hero .mg-vac-stat { list-style:none; display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:28px; position:relative; z-index:1; }
.mg-vac-stat li { display:inline-flex; align-items:baseline; gap:7px; font-size:12.5px; color:#DCEBD3; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.13); border-radius:14px; padding:9px 17px; }
.mg-vac-stat strong { font-family:var(--p-font-serif,serif); font-weight:700; font-size:16.5px; color:#fff; }

/* ---------- Sezioni ---------- */
.mg-vet-sechead-solo { font-size:13px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--mg-tenue); margin:0 0 18px; border-bottom:2px solid var(--mg-inchiostro); padding-bottom:14px; }
.mg-vac-condivisa__sezione { margin-bottom:48px; }
.mg-vac-condivisa__intro { font-size:13.5px; color:var(--mg-tenue); margin:10px 0 34px !important; }

/* ---------- Card "a cosa prestare attenzione" (niente descrizione
   generica della pianta — solo l'avviso, per chi la cura per pochi giorni) ---------- */
.mg-vac-griglia { display:grid; gap:16px; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.mg-vac-card { background:#fff; border:1px solid var(--mg-bordo); border-radius:20px; padding:22px; box-shadow:0 1px 2px rgba(21,35,22,.05),0 16px 40px -24px rgba(21,35,22,.18); }
.mg-vac-card__testa { display:flex; align-items:center; gap:13px; }
.mg-vac-avatar { width:46px; height:46px; flex:none; border-radius:14px; background:var(--mg-velo); color:var(--mg-foglia); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.mg-vac-avatar .mg-ic { width:21px; height:21px; }
.mg-vac-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.mg-vac-avatar:has(img) { cursor:zoom-in; }
.mg-vac-avatar:has(img):hover img { filter:brightness(.92); }

/* Lightbox: ingrandimento foto pianta (Modalità vacanza) */
.mg-lightbox {
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  padding:32px;
  background:rgba(20,26,15,.82);
  animation:mg-lightbox-in .15s ease;
}
.mg-lightbox[hidden] { display:none; }
.mg-lightbox__img {
  max-width:min(90vw,720px); max-height:85vh;
  border-radius:16px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
  background:#fff;
  object-fit:contain;
}
.mg-lightbox__x {
  position:absolute; top:20px; right:20px;
  width:42px; height:42px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  background:rgba(255,255,255,.12); color:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
}
.mg-lightbox__x:hover { background:rgba(255,255,255,.22); }
@keyframes mg-lightbox-in { from { opacity:0; } to { opacity:1; } }
.mg-vac-nome { font-family:var(--p-font-serif,serif); font-size:16.5px; font-weight:700; color:var(--mg-inchiostro); }
.mg-vac-specie { font-size:12.5px; font-style:italic; color:var(--mg-tenue); margin-top:1px; }
.mg-vac-nick { font-size:12px; color:var(--mg-tenue); margin-top:10px; }
.mg-vac-callout { margin-top:14px; display:flex; gap:10px; background:var(--mg-velo); border-left:3px solid var(--mg-foglia); border-radius:4px 12px 12px 4px; padding:12px 14px; }
.mg-vac-callout .mg-ic { width:15px; height:15px; margin-top:2px; color:var(--mg-bosco); flex-shrink:0; }
.mg-vac-callout p { font-size:13px; line-height:1.55; color:var(--mg-inchiostro); }
.mg-vac-callout strong { color:var(--mg-bosco2); }
.mg-vac-senza-avviso { font-size:12.5px; color:var(--mg-tenue); font-style:italic; margin-top:14px; }

/* ---------- Calendario — stesso HTML sia sullo schermo (a colori)
   sia nel PDF (in bianco e nero, vedi @media print piu' sotto) ---------- */
.mg-vac-giorni { list-style:none; margin-top:0; }
.mg-vac-giorno { display:grid; grid-template-columns:170px 1fr; gap:24px; align-items:center; padding:15px 2px; border-bottom:1px solid var(--mg-bordo); }
.mg-vac-gdata { font-size:13.5px; font-weight:700; color:var(--mg-inchiostro); }
.mg-vac-giorno--vuoto .mg-vac-gdata { color:var(--mg-tenue); font-weight:600; }
.mg-vac-chip-oggi { display:inline-block; margin-left:8px; vertical-align:2px; font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--mg-bosco2); background:var(--mg-velo); border-radius:999px; padding:3px 8px; }
.mg-vac-griposo { font-size:13px; font-style:italic; color:var(--mg-tenue); }
.mg-vac-cure { list-style:none; display:grid; gap:9px; }
.mg-vac-cura { display:flex; align-items:center; gap:11px; font-size:13.5px; color:var(--mg-grigio); }
.mg-vac-cura-icona { width:30px; height:30px; flex:none; border-radius:10px; background:var(--mg-velo); border:1px solid var(--mg-bordo); color:var(--mg-foglia); display:flex; align-items:center; justify-content:center; }
.mg-vac-cura-icona .mg-ic { width:15px; height:15px; }
.mg-vac-cura strong { color:var(--mg-inchiostro); font-weight:700; }
.mg-vac-amb { color:var(--mg-tenue); font-style:italic; }
.mg-vac-qta { margin-left:4px; font-size:10.5px; font-weight:700; color:var(--mg-bosco2); background:var(--mg-velo); border-radius:999px; padding:3px 8px; }

@media (max-width:640px){
	.mg-vac-giorno { grid-template-columns:1fr; gap:8px; }
}

@media (max-width:720px){
  .mg-vet-tiles { grid-template-columns:1fr; }
}
@media (max-width:560px){
  .mg-vet-profilo { margin-top:-40px; padding:20px 18px; }
  .mg-vet-profilo__top { flex-direction:column; }
  .mg-vet-share__label { width:100%; margin:0 0 2px; }
}

.mg-vetrina--vuota { text-align:center; }
.mg-vetrina--vuota .mg-empty { margin-bottom:28px; justify-content:center; }

/* Modalità meteo: stesso campo a pillola, più lo spazio tra il campo e il pulsante "Salva" */
.mg-meteo__zona { display:flex; gap:8px; margin-top:10px; }
#mg-meteo-stato { margin-top:16px; }
.mg-meteo__zona input[type="text"] {
  flex:1; min-width:0; border:1.5px solid var(--mg-bordo); border-radius:999px;
  padding:9px 15px; font-size:13.5px; font-family:inherit; background:var(--mg-carta); color:var(--mg-inchiostro);
}
.mg-meteo__zona input[type="text"]:focus { outline:none; border-color:var(--mg-foglia); box-shadow:0 0 0 3px rgba(74,118,47,.15); }

/* Avviso "rimandato per pioggia", in cima alla dashboard quando la
   modalità meteo ha appena agito */
.mg-meteo-avviso {
  display:flex; align-items:flex-start; gap:12px; background:var(--mg-velo);
  border:1px solid var(--mg-foglia); border-radius:14px; padding:14px 18px; margin:0 0 20px;
}
.mg-meteo-avviso .mg-ic { width:20px; height:20px; flex-shrink:0; color:var(--mg-foglia); margin-top:1px; }
.mg-meteo-avviso p { margin:0; font-size:14px; line-height:1.5; color:var(--mg-inchiostro); }

/* Pulsante guida — pillola discreta nell'intestazione della sola
   pagina principale (non fluttuante: niente conflitto col pulsante dei
   cookie, ne' col fumetto della chat AI del sito, entrambi in basso). */
.mg-help-pill {
  display:inline-flex; align-items:center; gap:7px; flex-shrink:0;
  border:1px solid var(--mg-bordo); border-radius:999px; background:#fff;
  padding:8px 16px 8px 13px; font-family:inherit; font-size:13px; font-weight:600;
  color:var(--mg-bosco); cursor:pointer; transition:border-color .15s, background .15s;
}
.mg-help-pill:hover { border-color:var(--mg-foglia); background:var(--mg-velo); }
.mg-help-pill .mg-ic { width:16px; height:16px; }
.mg-dashhead__azioni { display:flex; gap:10px; flex-wrap:wrap; flex-shrink:0; }

/* Contenuto della guida */
.mg-guida__voce { border-bottom:1px solid var(--mg-bordo); }
.mg-guida__voce:last-child { border-bottom:0; }
.mg-guida__voce h3 { display:flex; align-items:center; gap:9px; font-size:15.5px; font-weight:700; color:var(--mg-bosco); margin:14px 0 5px; }
.mg-guida__voce h3 .mg-ic { width:19px; height:19px; flex-shrink:0; color:var(--mg-foglia); }
.mg-guida__voce summary {
	display:flex; align-items:center; gap:9px; font-size:15.5px; font-weight:700; color:var(--mg-bosco);
	padding:14px 26px 14px 0; cursor:pointer; list-style:none; position:relative;
}
.mg-guida__voce summary::-webkit-details-marker { display:none; }
.mg-guida__voce summary::after {
	content:""; position:absolute; right:2px; top:50%; width:9px; height:9px;
	border-right:2px solid var(--mg-tenue); border-bottom:2px solid var(--mg-tenue);
	transform:translateY(-70%) rotate(45deg); transition:transform .18s ease;
}
.mg-guida__voce[open] summary::after { transform:translateY(-30%) rotate(-135deg); }
.mg-guida__voce summary .mg-ic { width:19px; height:19px; flex-shrink:0; color:var(--mg-foglia); }
.mg-guida__voce p { font-size:14px; line-height:1.55; color:var(--mg-grigio); margin:0; padding:0 26px 16px 28px; }

/* Griglia piante */
.mg-plantshead { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:4px; }
.mg-plantshead h2 {
	font-family: var(--p-font-sans, inherit); font-weight:800; font-size:clamp(22px,2.4vw,28px);
	letter-spacing:-.03em; font-style:normal;
}
.mg-plantshead span { font-size:13px; color:var(--mg-tenue); }
.mg-plants { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:16px; }

.mg-pcard { display:block; background:#fff; border:1px solid var(--mg-bordo); border-radius:var(--mg-r); overflow:hidden; transition:transform .14s ease, box-shadow .2s ease; color:inherit; }
.mg-pcard:hover { transform:translateY(-3px); box-shadow:var(--mg-shadow); }
.mg-pcard__img { position:relative; height:150px; background:var(--mg-velo); }
.mg-pcard__img img { width:100%; height:100%; object-fit:cover; display:block; }
.mg-pcard__ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#dfe9cf,#c3d6a6); color:var(--mg-foglia); }
.mg-pcard__ph .mg-ic { width:38px; height:38px; }
.mg-pcard__body { padding:14px 16px 16px; }
.mg-pcard__body h3 { font-size:16.5px; display:flex; align-items:center; gap:8px; }
.mg-sdot { width:9px; height:9px; border-radius:50%; background:var(--mg-foglia); flex:none; }
.mg-sdot--warn { background:var(--mg-ruggine); }
.mg-pcard__room { font-size:13px; color:var(--mg-tenue); margin:3px 0 12px; }
.mg-pcard__next { display:inline-flex; align-items:center; gap:.5em; font-size:13px; font-weight:600; padding:7px 11px; border-radius:10px; background:var(--mg-lino); color:var(--mg-grigio); margin-top:8px; }
.mg-pcard__next .mg-ic { width:16px; height:16px; }
.mg-next--acqua { background:#e7f1f6; color:var(--mg-acqua); }
.mg-next--concime { background:#f6ecdc; color:var(--mg-concime); }
.mg-next--sole { background:#f7f0d8; color:var(--mg-sole); }
.mg-next--cura { background:var(--mg-velo); color:var(--mg-foglia); }
.mg-next--ritardo { background:#F7E2DC; color:var(--mg-ruggine); }
.mg-next--ok { background:var(--mg-velo); color:var(--mg-foglia); }

.mg-pcard--add { border-style:dashed; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-height:210px; cursor:pointer; font-family:inherit; font-size:15px; font-weight:600; color:var(--mg-foglia); background:var(--mg-lino); }
.mg-pcard--add:hover { background:var(--mg-velo); }
.mg-plus { width:44px; height:44px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow:var(--mg-shadow-sm); }
.mg-plus .mg-ic { width:22px; height:22px; }

/* Anelli */
.mg-ringcard { text-align:center; }
.mg-ring { position:relative; width:130px; height:130px; margin:10px auto 4px; }
.mg-ring svg { transform:rotate(-90deg); }
.mg-ring-bg { stroke:var(--mg-lino); }
.mg-ring-fg { stroke:var(--mg-foglia); transition:stroke-dashoffset .6s ease; }
.mg-ring__val { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.mg-ring__val b { font-family: var(--p-font-serif, "Fraunces", serif); font-size:26px; color:var(--mg-inchiostro); }
.mg-ring__val span { font-size:11.5px; color:var(--mg-tenue); max-width:80px; }

/* Switch email */
.mg-switchrow { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.mg-app .mg-switchrow__title { font-size:18px; font-weight:700; color:var(--mg-inchiostro); margin:0 0 6px; }
.mg-mailwhen__sub { font-size:13px; color:var(--mg-tenue); margin:0; }
.mg-switch { width:48px; height:28px; border-radius:999px; border:0; background:var(--mg-bordo); position:relative; cursor:pointer; flex:none; transition:background .18s; }
.mg-switch::after { content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:var(--mg-shadow-sm); transition:left .18s; }
.mg-switch[aria-checked="true"] { background:var(--mg-foglia); }
.mg-switch[aria-checked="true"]::after { left:23px; }
.mg-mailwhen { font-size:13px; color:var(--mg-tenue); margin-top:20px; }

.mg-side__p { font-size:13px; margin-bottom:18px; }

/* Spazio sopra i pulsanti della barra laterale, rinforzato — dopo
   piu' tentativi con margini "normali" senza risultato visibile,
   qui e' esplicito e a prova di qualunque altra interferenza.
   Il selettore ">" esclude il pulsante dentro .mg-askform (deve
   restare allineato in riga con la casella di testo, non spostato). */
.mg-card > .mg-btn {
	margin-top: 14px !important;
}
.mg-aichips { display:flex; flex-wrap:wrap; gap:8px; }
.mg-aichip { font-size:12.5px; font-weight:600; background:var(--mg-lino); color:var(--mg-grigio); padding:8px 12px; border-radius:999px; }

/* =========================================================
   SCHEDA PIANTA
   ========================================================= */
.mg-crumb { display:inline-flex; align-items:center; gap:.5em; font-size:14px; font-weight:600; color:var(--mg-tenue); margin-top:8px; margin-bottom:18px; }
.mg-crumb:hover { color:var(--mg-foglia); }

.mg-scheda__head { display:grid; grid-template-columns:280px 1fr; gap:30px; align-items:center; background:var(--mg-carta); border:1px solid var(--mg-bordo); border-radius:26px; padding:26px; margin-bottom:26px; }
.mg-scheda__media { position:relative; border-radius:var(--mg-r); overflow:hidden; aspect-ratio:1/1; background:var(--mg-velo); }
.mg-scheda__media img { width:100%; height:100%; object-fit:cover; display:block; }
.mg-scheda__ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#dfe9cf,#c3d6a6); color:var(--mg-foglia); }
.mg-scheda__ph .mg-ic { width:56px; height:56px; }
.mg-scheda__intro h1 { font-size:clamp(26px,3.4vw,38px); margin-bottom:12px; }
.mg-scheda__chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.mg-scheda__desc { font-size:14.5px; max-width:52ch; margin-top:28px !important; }

.mg-scheda__grid { display:grid; grid-template-columns:1fr 320px; gap:26px; align-items:start; }

.mg-params { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:12px; }
.mg-param { display:flex; align-items:center; gap:12px; background:var(--mg-lino); border-radius:14px; padding:14px; }
.mg-param small { display:block; font-size:12px; color:var(--mg-tenue); text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
.mg-param b { color:var(--mg-inchiostro); font-size:15px; }

.mg-diary { display:flex; gap:14px; flex-wrap:wrap; margin-top:12px; }
.mg-diary__item { position:relative; width:120px; }
.mg-diary__item img { width:120px; height:120px; object-fit:cover; border-radius:14px; display:block; }
.mg-diary__item span { position:absolute; left:8px; bottom:8px; background:rgba(0,0,0,.55); color:#fff; font-size:11px; font-weight:600; padding:3px 8px; border-radius:999px; }
.mg-diary__add { width:120px; height:120px; border-radius:14px; border:1px dashed var(--mg-bordo); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; font-size:12.5px; font-weight:600; color:var(--mg-foglia); background:var(--mg-lino); cursor:pointer; }
.mg-diary__add .mg-ic { width:22px; height:22px; }

.mg-plinks { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.mg-plink { display:flex; align-items:center; gap:12px; padding:13px 14px; border-radius:14px; background:var(--mg-lino); color:var(--mg-grigio); }
.mg-plink:hover { background:var(--mg-velo); }
.mg-plink .mg-ic { width:22px; height:22px; color:var(--mg-foglia); flex:none; }
.mg-plink span { display:flex; flex-direction:column; }
.mg-plink b, .mg-plink span b { color:var(--mg-inchiostro); font-size:14.5px; font-weight:600; }
.mg-plink small { font-size:12.5px; color:var(--mg-tenue); }

/* =========================================================
   MODAL AGGIUNGI
   ========================================================= */
.mg-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:20px; }
.mg-modal__overlay { position:absolute; inset:0; background:rgba(21,32,15,.55); backdrop-filter:blur(3px); animation:mg-fade .2s ease; }
@keyframes mg-fade { from{ opacity:0; } to{ opacity:1; } }
.mg-modal__box { position:relative; z-index:2; width:100%; max-width:540px; max-height:90vh; overflow:auto; background:var(--mg-carta); border-radius:24px; padding:32px; box-shadow:0 30px 80px -30px rgba(0,0,0,.6); animation:mg-pop .22s ease; }
@keyframes mg-pop { from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; } }
.mg-modal__x { position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; border:1px solid var(--mg-bordo); background:#fff; cursor:pointer; color:var(--mg-grigio); display:flex; align-items:center; justify-content:center; }
.mg-modal__x:hover { background:var(--mg-lino); }
.mg-modal .mg-step h2 { font-size:24px; }
.mg-modal__sub { font-size:14.5px; color:var(--mg-tenue); margin:14px 0 26px; }
/* Solo per il messaggio di errore dello strumento di riconoscimento
   (via id, non sulla classe generica ".mg-modal__sub" condivisa con
   altre pagine): rispetta gli "a capo" scritti nel testo (es. tra
   "permesso non concesso" e "controlla le autorizzazioni"), che
   altrimenti verrebbero ignorati da textContent + CSS normale. */
#mgr-errore-msg { white-space: pre-line; margin-bottom: 34px; }
#mg-giorno-titolo { margin:0 0 18px; }

.mg-opts { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.mg-opt { display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left; padding:22px; border:1px solid var(--mg-bordo); border-radius:var(--mg-r); background:#fff; cursor:pointer; font-family:inherit; transition:.15s; }
.mg-opt:hover { border-color:var(--mg-foglia); background:var(--mg-lino); transform:translateY(-2px); }
.mg-opt__ic { width:46px; height:46px; border-radius:13px; background:var(--mg-velo); color:var(--mg-foglia); display:flex; align-items:center; justify-content:center; margin-bottom:6px; }
.mg-opt__ic .mg-ic { width:24px; height:24px; }
.mg-opt b { font-size:16px; color:var(--mg-inchiostro); }
.mg-opt small { font-size:12.5px; color:var(--mg-tenue); }
.mg-opt-alt { display:block; width:100%; margin-top:10px; padding:8px; border:0; background:none; text-align:center; font-family:inherit; font-size:13px; color:var(--mg-tenue); text-decoration:underline; cursor:pointer; }
.mg-opt-alt:hover { color:var(--mg-foglia2); }

.mg-searchbox { margin-top:18px; padding:18px; background:var(--mg-lino); border-radius:var(--mg-r); }
.mg-searchbox label { display:block; font-size:13px; font-weight:700; color:var(--mg-inchiostro); margin-bottom:8px; }

.mg-scanbox { position:relative; border-radius:var(--mg-r); overflow:hidden; background:#000; aspect-ratio:4/3; }
.mg-scanbox img { width:100%; height:100%; object-fit:cover; opacity:.85; display:block; }
.mg-scanline { position:absolute; left:0; right:0; height:3px; background:linear-gradient(90deg,transparent,var(--mg-foglia2),transparent); box-shadow:0 0 16px 3px rgba(86,125,54,.7); animation:mg-scan 1.6s ease-in-out infinite; }
@keyframes mg-scan { 0%{ top:6%; } 50%{ top:92%; } 100%{ top:6%; } }
.mg-scanmsg { display:flex; align-items:center; justify-content:center; gap:.6em; margin-top:18px; font-weight:600; color:var(--mg-foglia); }
.mg-spin { width:18px; height:18px; border:2.5px solid var(--mg-velo); border-top-color:var(--mg-foglia); border-radius:50%; animation:mg-spin .8s linear infinite; }
@keyframes mg-spin { to{ transform:rotate(360deg); } }

.mg-result-head { display:flex; gap:16px; align-items:center; margin-bottom:20px; }
.mg-result-thumb { width:70px; height:70px; flex:none; border-radius:16px; overflow:hidden; background:var(--mg-velo); color:var(--mg-foglia); display:flex; align-items:center; justify-content:center; }
.mg-result-thumb img { width:100%; height:100%; object-fit:cover; }
.mg-result-thumb .mg-ic { width:30px; height:30px; }

.mg-form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.mg-field { display:flex; flex-direction:column; gap:6px; }
.mg-checkfield { display:flex !important; flex-direction:row !important; align-items:center; gap:9px; cursor:pointer; }
.mg-checkfield input[type="checkbox"] { width:18px; height:18px; flex-shrink:0; accent-color:var(--mg-foglia); cursor:pointer; }
.mg-checkfield span { font-size:14px; font-weight:600; color:var(--mg-inchiostro); }
.mg-field--full { grid-column:1 / -1; }
.mg-field label { font-size:13px; font-weight:700; color:var(--mg-inchiostro); }
.mg-field input, .mg-field select, .mg-searchbox select {
	font-family:inherit; font-size:15px; padding:12px 13px; border:1px solid var(--mg-bordo);
	border-radius:12px; background:#fff; color:var(--mg-inchiostro); width:100%;
}
.mg-field input:focus, .mg-field select:focus, .mg-searchbox select:focus { outline:none; border-color:var(--mg-foglia); box-shadow:0 0 0 3px rgba(74,118,47,.15); }

.mg-plan { margin-top:16px; padding:14px 16px; background:var(--mg-velo); border-radius:14px; font-size:13.5px; color:var(--mg-foglia2); line-height:1.5; }
.mg-plan b { color:var(--mg-bosco); }

.mg-modal__actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }

/* =========================================================
   TOAST
   ========================================================= */
.mg-toast { position:fixed; left:50%; bottom:26px; transform:translate(-50%,20px); z-index:100000; display:flex; align-items:center; gap:.6em; background:var(--mg-bosco); color:#fff; font-weight:600; font-size:14.5px; padding:14px 22px; border-radius:999px; box-shadow:var(--mg-shadow); opacity:0; pointer-events:none; transition:.28s; }
.mg-toast.is-on { opacity:1; transform:translate(-50%,0); }
.mg-toast .mg-ic { color:#bfe0a0; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:900px) {
	.mg-hero { grid-template-columns:1fr; padding:34px; }
	.mg-hero__visual { min-height:300px; }
	.mg-strip, .mg-steps, .mg-feats { grid-template-columns:1fr; }
	.mg-grid2, .mg-scheda__grid { grid-template-columns:1fr; }
	.mg-side { position:static; }
	/* Sotto i 900px la griglia e' gia' a colonna singola (.mg-side va
	   naturalmente sotto): la sporgenza calcolata per una colonna
	   laterale di 340px non ha piu' senso qui, andrebbe disattivata
	   per non allargare la card oltre lo schermo. */
	.mg-quale-esito-attivo .mg-quale-quiz {
		width: 100%;
		margin-right: 0;
	}
	.mg-quale-esito-attivo .mg-side {
		visibility: visible;
	}
	.mg-scheda__head { grid-template-columns:1fr; }
	.mg-scheda__media { max-width:280px; }
}
@media (max-width:560px) {
	.mg-plants { grid-template-columns:1fr; }
	.mg-opts, .mg-form { grid-template-columns:1fr; }
	.mg-week { gap:5px; }
	.mg-modal__box { padding:24px 20px; }
	.mg-btn { font-size:15px; padding:13px 22px; }
	.mg-modal__actions { flex-direction:column-reverse; }
	.mg-modal__actions .mg-btn { width:100%; justify-content:center; }
}

@media (prefers-reduced-motion:reduce) {
	.mg-app *, .mg-app *::before, .mg-app *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* =========================================================
   Aggiunte: categorie multiple, promemoria a caselle, casella
   domande AI, popup scheda botanica, descrizione automatica.
   ========================================================= */

/* Campo di ricerca libero (era un <select>, ora testo + datalist) */
.mg-searchbox input[type="text"] {
	width:100%; padding:11px 14px; border:1.5px solid var(--mg-bordo); border-radius:12px;
	font-family:inherit; font-size:15px; background:var(--mg-carta); margin-bottom:10px;
}
.mg-searchbox input[type="text"]:focus { outline:none; border-color:var(--mg-foglia); box-shadow:0 0 0 3px rgba(74,118,47,.15); }

/* Categorie: tendina a scelta multipla */
#mg-f-cat {
	width:100%; padding:8px; border:1.5px solid var(--mg-bordo); border-radius:12px;
	font-family:inherit; font-size:14px; background:var(--mg-carta);
}
#mg-f-cat option { padding:6px 8px; border-radius:6px; }
#mg-f-cat:focus { outline:none; border-color:var(--mg-foglia); box-shadow:0 0 0 3px rgba(74,118,47,.15); }

/* Promemoria (scelta multipla, con frequenza suggerita) */
.mg-memogrid { display:flex; flex-direction:column; gap:8px; }
.mg-memochip {
	display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 14px;
	padding:12px 14px; border-radius:14px;
	background:var(--mg-lino); border:1.5px solid var(--mg-bordo); transition:.15s;
}
.mg-memochip:has(input:checked) { background:var(--mg-velo); border-color:var(--mg-foglia); }
.mg-memochip__check { display:flex; align-items:center; gap:10px; cursor:pointer; }
.mg-memochip__check input { flex:none; width:18px; height:18px; accent-color:var(--mg-foglia); }
.mg-memochip__check b { font-size:14px; font-weight:600; color:var(--mg-inchiostro); }
.mg-memochip .mg-tt { width:30px; height:30px; flex:none; }
.mg-memochip__freq { display:flex; align-items:center; gap:6px; font-size:13px; color:var(--mg-grigio); white-space:nowrap; }
.mg-memochip__freq input {
	width:60px; padding:5px 4px; border:1.5px solid var(--mg-bordo); border-radius:8px;
	font-family:inherit; font-size:13px; text-align:center; background:var(--mg-carta); box-sizing:border-box;
}
.mg-memochip__freq input:focus { outline:none; border-color:var(--mg-foglia); }

.mg-hint { font-size:13px; color:var(--mg-tenue); margin-top:10px; }
#mgds-followup-contatore { margin-top:16px; }

/* Casella "Chiedi al giardiniere AI" */
.mg-aichips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.mg-aichip {
	font-family:inherit; cursor:pointer; border:1.5px solid var(--mg-bordo); background:var(--mg-lino);
	color:var(--mg-grigio); border-radius:999px; padding:7px 13px; font-size:12.5px; font-weight:600; transition:.15s;
}
.mg-aichip:hover { background:var(--mg-velo); border-color:var(--mg-foglia); color:var(--mg-bosco); }

.mg-askform { display:flex; gap:8px; margin-top:12px; }
.mg-askform input {
	flex:1; min-width:0; padding:10px 13px; border:1.5px solid var(--mg-bordo); border-radius:999px;
	font-family:inherit; font-size:13.5px; background:var(--mg-carta);
}
.mg-askform input:focus { outline:none; border-color:var(--mg-foglia); box-shadow:0 0 0 3px rgba(74,118,47,.15); }

/* "Scheda botanica" come bottone dentro l'elenco mg-plinks (era un link) */
button.mg-plink { width:100%; text-align:left; border:0; font-family:inherit; cursor:pointer; }

/* Descrizione AI sotto il nome pianta */
.mg-scheda__ai {
	display:flex; align-items:center; gap:.6em; font-size:14.5px; color:var(--mg-grigio);
	margin-top:10px; max-width:60ch;
}
.mg-spin--sm { width:14px; height:14px; border-width:2px; flex:none; }
.mg-spin--bianco { border-color:rgba(255,255,255,.35); border-top-color:#fff; }

/* Popup scheda botanica */
.mg-modal__box--sm { max-width:460px !important; }
.mg-botanica-breve { font-size:15px; font-weight:400; color:var(--mg-tenue); line-height:1.6; margin-bottom:16px; }

/* Badge di gravita' e avviso di isolamento, usati dal risultato di
   "Cos'ha la mia pianta?" (diagnosi-strumento.php) — tre livelli,
   riusando toni gia' presenti nella tavolozza del plugin (--mg-cura,
   --mg-sole, --mg-ruggine) invece di introdurne di nuovi, solo con
   uno sfondo chiaro abbinato per ciascuno. Affidabilita' e gravita'
   affiancate sulla stessa riga (".mg-diag-badges"), affidabilita'
   prima: sono due giudizi diversi (quanto la foto sostiene QUESTA
   diagnosi, quanto e' urgente il problema), messi apposta insieme in
   testa al risultato invece che uno in cima e l'altro in fondo. */
.mg-diag-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:6px; }
.mg-diag-gravita {
	display:inline-block; font-size:11px; font-weight:800; text-transform:uppercase;
	letter-spacing:.06em; padding:4px 10px; border-radius:999px;
}
.mg-diag-gravita--bassa { background:var(--mg-velo); color:var(--mg-cura); }
.mg-diag-gravita--media { background:#FBF1DE; color:var(--mg-sole); }

/* Nota di sofferenza nel riconoscimento (vedi riconosci.js) — stessi
   colori dell'avviso "gravita' media" della diagnosi, per coerenza:
   e' lo stesso tipo di segnale ("qualcosa da tenere d'occhio"), solo
   in un contesto diverso. */
.mg-nota-sofferenza {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	background: #FBF1DE;
	color: var(--mg-sole);
	border-radius: 12px;
	padding: 14px 16px;
	margin: 16px 0;
	font-size: 13.5px;
	line-height: 1.5;
}

.mg-nota-sofferenza .mg-ic {
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 1px;
}

.mg-nota-sofferenza p {
	margin: 0;
	min-width: 0;
	flex: 1;
	overflow-wrap: break-word;
}

.mg-nota-sofferenza a {
	display: inline-block;
	margin-top: 4px;
	color: var(--mg-foglia);
	font-weight: 700;
}
.mg-diag-gravita--alta { background:#F9E6E2; color:var(--mg-ruggine); }

.mg-diag-isolamento {
	display:flex; align-items:flex-start; gap:10px; font-size:14px; font-weight:600; line-height:1.5;
	color:var(--mg-ruggine); background:#F9E6E2; border-radius:12px; padding:14px 16px;
	margin-bottom:18px;
}
.mg-diag-isolamento .mg-ic { flex-shrink:0; margin-top:2px; }

/* Campo facoltativo "Dove si trova la pianta?" — step 1 dello
   strumento, prima dei pulsanti di caricamento foto. */
.mg-diag-contesto { margin-top:20px; margin-bottom:18px; text-align:left; }
.mg-diag-contesto__titolo { font-size:13.5px; font-weight:700; color:var(--mg-grigio); margin-bottom:8px; }
.mg-diag-contesto__titolo span { font-weight:400; color:var(--mg-tenue); }
.mg-diag-contesto__riga { display:flex; flex-wrap:wrap; gap:6px 20px; margin-bottom:8px; }
.mg-diag-radio { display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--mg-grigio); cursor:pointer; }
/* Stesso stile arrotondato del campo "Vivai vicino a te" (.mg-zonapick
   input), per coerenza — prima aveva bordi squadrati, fuori stile col
   resto del sito. */
#mgd-nome-dichiarato {
	width:100%; max-width:280px; border:1.5px solid var(--mg-bordo); border-radius:999px;
	padding:10px 15px; font-size:13.5px; font-family:inherit; background:var(--mg-carta); color:var(--mg-inchiostro);
}
#mgd-nome-dichiarato:focus { outline:none; border-color:var(--mg-foglia); box-shadow:0 0 0 3px rgba(74,118,47,.15); }
#mgd-luogo {
	width:100%; max-width:280px; padding:9px 12px; border:1px solid var(--mg-bordo); border-radius:10px;
	font-family:inherit; font-size:14px; background:#fff;
}
.mg-diag-contesto__avviso {
	display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600;
	color:var(--mg-ruggine); background:#F9E6E2; border-radius:8px; padding:8px 12px; margin:8px 0 0;
}

/* Badge di affidabilita' — stessi tre toni del badge di gravita' qui
   sopra, ma e' un giudizio diverso (quanto la FOTO sostiene QUESTA
   diagnosi, non quanto e' urgente il problema): due badge distinti
   nello stesso risultato, non uno solo. */
.mg-diag-affidabilita {
	display:inline-block; font-size:11px; font-weight:800; text-transform:uppercase;
	letter-spacing:.06em; padding:4px 10px; border-radius:999px;
}
.mg-diag-affidabilita--bassa { background:#F9E6E2; color:var(--mg-ruggine); }
.mg-diag-affidabilita--media { background:#FBF1DE; color:var(--mg-sole); }
.mg-diag-affidabilita--alta { background:var(--mg-velo); color:var(--mg-cura); }

/* Disclaimer — sempre visibile (non solo in una FAQ), testo diverso a
   seconda del livello di affidabilita' (vedi diagnosi.js), stile
   discreto ma leggibile: non e' un avviso di errore, e' una nota di
   responsabilita' che deve stare li' comunque. */
#mgd-disclaimer.mg-diag-disclaimer {
	font-size:12.5px; line-height:1.5; color:var(--mg-tenue); background:var(--mg-lino);
	border-radius:10px; padding:10px 14px; margin:16px 0;
}

/* Scheda di una singola diagnosi con il seguito nel tempo
   (templates/diagnosi-scheda.php) — un filo di messaggi, non una
   diagnosi statica: chi ha scritto il messaggio (l'AI o la persona)
   e' distinto solo da un allineamento/colore diverso, stesso principio
   di una normale chat. */
/* Scheda di una singola diagnosi con il seguito nel tempo
   (templates/diagnosi-scheda.php) — presentazione ispirata alla pagina
   Chat del sito (assistente AI): contenitore chiuso a sfondo tenue,
   bolle con angolo smussato dal lato "attaccato", una piccola icona
   accanto ai messaggi dell'AI (i messaggi della persona no, si
   riconoscono gia' dall'allineamento a destra — stesso principio
   comune a quasi ogni interfaccia di chat). */
.mg-diag-indietro {
	display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700;
	color:var(--mg-foglia); margin-bottom:10px; text-decoration:none;
}
/* Contenitore unico (finestra bianca con bordo, come le altre card
   della pagina) che racchiude testata + filo + area di invio — prima
   erano pezzi separati, non "una finestra" riconoscibile come tale. */
.mg-diag-chat { background:#fff; border:1px solid var(--mg-bordo); border-radius:var(--mg-r); padding:18px; margin-top:20px; }
.mg-diag-chat__testata { font-size:13px; font-weight:700; color:var(--mg-tenue); text-transform:uppercase; letter-spacing:.04em; margin-bottom:12px; }
.mg-diag-thread {
	display:flex; flex-direction:column; gap:12px;
	background:var(--mg-lino); border-radius:12px; padding:14px;
	max-height:420px; overflow-y:auto;
}
.mg-diag-msg { display:flex; align-items:flex-end; gap:8px; max-width:85%; }
.mg-diag-msg--ai { align-self:flex-start; }
.mg-diag-msg--utente { align-self:flex-end; flex-direction:row-reverse; }
.mg-diag-msg__ic {
	flex:none; width:28px; height:28px; border-radius:50%; background:var(--mg-velo);
	color:var(--mg-foglia); display:flex; align-items:center; justify-content:center;
}
.mg-diag-msg__ic .mg-ic { width:16px; height:16px; }
.mg-diag-msg__bolla { padding:12px 15px; border-radius:14px; font-size:14px; line-height:1.55; }
.mg-diag-msg__bolla p { margin:0; }
.mg-diag-msg--ai .mg-diag-msg__bolla { background:#fff; border:1px solid var(--mg-bordo); border-bottom-left-radius:4px; color:var(--mg-grigio); }
.mg-diag-msg--utente .mg-diag-msg__bolla { background:var(--p-green-ink, #1E3312); color:#fff; border-bottom-right-radius:4px; }
.mg-diag-msg__foto { display:block; max-width:200px; width:100%; border-radius:10px; margin-bottom:8px; }
.mg-diag-msg__quando { display:block; font-size:11px; margin-top:6px; opacity:.65; }

/* Avviso "foto scartata per tetto raggiunto" — non una bolla di
   conversazione (non l'ha scritto ne' l'utente ne' l'AI), un
   messaggio di sistema centrato e discreto, per non confonderlo con
   il resto del filo. */
.mg-diag-msg-avviso {
	text-align:center; font-size:12.5px; color:var(--mg-tenue); background:var(--mg-lino);
	border-radius:10px; padding:8px 14px; margin:4px auto; max-width:85%;
}

/* Barra di invio come nella pagina Chat vera (/chat/, "pc-composer" /
   "pc-input" / "pc-send" nel file chat-page-v2.css del tema — diverso
   dal widget "mac-chat" del plugin, controllato in un giro precedente
   per errore): un'unica pillola con un solo bordo continuo, non tre
   elementi separati. Verificato sull'HTML vero della pagina, non solo
   a occhio da uno screenshot: il pulsante invia nasce disabilitato
   (attributo "disabled" gia' nel markup) e la sua icona e' una
   freccia verso l'ALTO, non di lato. */
.mg-diag-invio {
	display:flex; align-items:center; gap:8px; margin-top:14px;
	background:#fff; border:1px solid var(--mg-bordo); border-radius:18px;
	padding:8px 8px 8px 20px;
}
.mg-diag-invio:focus-within { border-color:var(--mg-foglia); }
.mg-diag-invio__input {
	flex:1 1 auto; resize:none; border:none; outline:none; background:transparent;
	padding:8px 0; font-family:inherit; font-size:14px; line-height:1.4;
	max-height:100px; color:var(--mg-inchiostro);
}
.mg-diag-invio__allega {
	flex:none; width:38px; height:38px; border:none; border-radius:50%; cursor:pointer;
	display:flex; align-items:center; justify-content:center;
	background:transparent; color:var(--mg-tenue);
}
.mg-diag-invio__allega .mg-ic { width:1.35em; height:1.35em; }
.mg-diag-invio__allega:hover { background:var(--mg-lino); color:var(--mg-foglia); }
/* Grigio quando il campo e' vuoto (disabilitato: non ha senso inviare
   il nulla), verde scuro appena si scrive qualcosa — stesso principio
   della pagina Chat vera. Quadrato con angoli smussati, non tondo. */
.mg-diag-invio__invia {
	flex:none; width:38px; height:38px; border:none; border-radius:10px; cursor:pointer;
	display:flex; align-items:center; justify-content:center;
	background:var(--mg-tenue); color:#fff; transition:background .15s ease;
}
.mg-diag-invio__invia:not(:disabled) { background:var(--p-green-ink, #1E3312); }
.mg-diag-invio__invia:disabled { cursor:not-allowed; }
.mg-diag-invio__invia:not(:disabled):hover { opacity:.9; }
.mg-diag-invio__anteprima { display:block; font-size:12.5px; color:var(--mg-tenue); margin-top:6px; }

#mg-botanica-corpo h3, #mgr-botanica-corpo h3, #mgq-situazione-botanica-corpo h3, #mgds-botanica-corpo h3 { font-size:14px; margin:16px 0 6px; }
#mg-botanica-corpo p, #mgr-botanica-corpo p, #mgq-situazione-botanica-corpo p, #mgds-botanica-corpo p { font-size:14.5px; color:var(--mg-grigio); }

/* Pulsante "cambia foto" sopra l'immagine/segnaposto della pianta */
.mg-scheda__media { position: relative; }
.mg-scheda__caricamento {
	position:absolute; inset:0; z-index:2;
	background:rgba(36,49,29,.5);
	display:flex; align-items:center; justify-content:center;
}
.mg-scheda__photobtn {
	position:absolute; bottom:10px; right:10px; z-index:4; width:38px; height:38px; border-radius:50%;
	display:flex; align-items:center; justify-content:center; background:var(--mg-carta); color:var(--mg-foglia);
	border:1.5px solid var(--mg-bordo); box-shadow:var(--mg-shadow-sm); cursor:pointer; transition:.15s;
}
.mg-scheda__photobtn:hover { background:var(--mg-velo); border-color:var(--mg-foglia); }
.mg-scheda__photobtn .mg-ic { width:18px; height:18px; }

/* Piccola icona di modifica accanto a un titolo di card */
.mg-iconbtn {
	width:30px; height:30px; border-radius:50%; border:1.5px solid var(--mg-bordo); background:var(--mg-carta);
	color:var(--mg-grigio); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.15s; flex:none;
}
.mg-iconbtn:hover { background:var(--mg-velo); border-color:var(--mg-foglia); color:var(--mg-bosco); }
.mg-iconbtn .mg-ic { width:15px; height:15px; }

/* Pulsante di modifica accanto al nome della pianta (scheda singola) */
.mg-scheda__intro h1.mg-display { display:flex; align-items:center; gap:10px; }

/* Calendario settimanale riusato nella scheda della singola pianta,
   sopra l'elenco "Prossime cure": stesso aspetto della dashboard, solo
   un po' di spazio in meno sotto perche' seguito subito dalla lista. */
.mg-week--scheda { margin-bottom:10px; padding-bottom:14px; border-bottom:1px solid var(--mg-bordo); }

/* Modalita' vacanza: contenuto pensato solo per la stampa, invisibile
   durante la normale navigazione. */
.mg-print { display:none; }

@media print {
	body * { visibility:hidden; }
	.mg-print, .mg-print * { visibility:visible; }
	/* .mg-dash (tutta la dashboard) e ogni modale occupavano comunque
	   il loro spazio normale anche da nascosti (".visibility:hidden"
	   non toglie nulla dal flusso, solo lo rende invisibile) — la
	   stampa continuava percio' a paginare in base all'altezza intera
	   della pagina normale, con pagine vuote in coda dopo la fine del
	   contenuto vero. "display:none" invece toglie davvero lo spazio. */
	.mg-dash, .mg-modal { display:none !important; }
	.mg-print {
		display:block; width:100%;
	}

	/* Senza questa istruzione, molti browser tolgono da soli sfondi e
	   colori in stampa per risparmiare inchiostro — la vogliamo qui
	   per le piccole macchie di colore (badge, riquadri delle cure),
	   lasciando poi alla persona la scelta se stampare a colori o in
	   bianco e nero dalla propria finestra di stampa. */
	.mg-vac-avatar, .mg-vac-callout, .mg-vac-cura-icona, .mg-vac-badge, .mg-vac-chip-oggi, .mg-vac-qta {
		-webkit-print-color-adjust:exact; print-color-adjust:exact;
	}

	/* Solo impaginazione: evita che una card o una riga del calendario
	   si spezzino a metà tra due pagine. */
	.mg-vac-griglia { column-count:2; column-gap:24px; }
	.mg-vac-card { break-inside:avoid; display:inline-block; width:100%; margin-bottom:14px; }
	.mg-vac-giorno { break-inside:avoid; }
}

/* =========================================================
   "Trova la pianta giusta per te" — quiz e risultati.
   ========================================================= */
.mg-trova-wrap { padding-bottom:64px; }

.mg-quiz-domanda { margin-bottom:26px; }
.mg-quiz-domanda h3 { font-size:16px; margin-bottom:12px; }
.mg-quiz-opzioni { display:flex; flex-wrap:wrap; gap:10px; }
.mg-quiz-opt {
	font-family:inherit; font-size:14.5px; font-weight:600; padding:11px 18px;
	border-radius:999px; border:1.5px solid var(--mg-bordo); background:#fff;
	color:var(--mg-grigio); cursor:pointer; transition:.15s;
}
.mg-quiz-opt:hover { border-color:var(--mg-foglia); }
.mg-quiz-opt.is-attiva { background:var(--mg-bosco); border-color:var(--mg-bosco); color:#fff; }

#mgt-scopri { width:100%; justify-content:center; margin-top:6px; }
#mgt-scopri:disabled { opacity:.5; cursor:not-allowed; transform:none; }
#mgt-scopri:disabled:hover { transform:none; }

.mg-trova-card .mg-pcard__body { padding:20px; }
.mg-trova-params { margin-top:12px; }

/* =========================================================
   "Quale pianta fa per te" — quiz e risultato.
   ========================================================= */
.mg-quale-wrap { padding-bottom:64px; }
.mg-quale-quiz { max-width:none; position:relative; overflow:hidden; }

/* Due foglie che sbucano ai lati, tagliate dal bordo del box
   (overflow:hidden sopra) — sul contenitore di tutto il quiz, non solo
   sull'avvio: restano un accento visivo coerente durante le domande e
   il risultato, non solo nel primo istante. */
.mg-quale-avvio-leaf {
	position:absolute; top:50%; width:160px; height:auto; opacity:.5;
	pointer-events:none; z-index:0;
}
.mg-quale-avvio-leaf--sx { left:-70px; transform:translateY(-50%) rotate(-18deg); }
.mg-quale-avvio-leaf--dx { right:-70px; transform:translateY(-50%) scaleX(-1) rotate(-18deg); }
.mg-quale-quiz > *:not(.mg-quale-avvio-leaf) { position:relative; z-index:1; }

/* Spaziatura esplicita nel passo di avvio: senza, l'eyebrow/h2/hint/
   pulsante si affidavano ai margini di default del browser, incoerenti
   e troppo stretti — segnalato dal vivo ("il pulsante e' appiccicato
   al testo sopra"). Tutto centrato (richiesto esplicitamente), non piu'
   allineato a sinistra.*/
#mgq-avvio { text-align:center; }
#mgq-avvio .mg-eyebrow { margin-bottom:10px; }
#mgq-avvio h2.mg-display { margin:0 0 14px; }
#mgq-avvio .mg-hint { margin:8px auto 26px; font-size:14.5px; max-width:46ch; }
#mgq-avvio #mgq-avvia { margin-top:4px; }
#mgq-testo-contatore-riga { justify-content:center; }

.mg-quale-avvio-titolo {
	font-family: var(--p-font-serif, "Fraunces", Georgia, "Times New Roman", serif);
	font-weight:600; letter-spacing:-.01em; font-size:clamp(24px,2.6vw,32px);
	margin:0 0 14px; color:var(--mg-inchiostro);
}

/* Striscia dei temi principali delle domande, nell'avvio — danno
   un'anticipazione visiva di cosa aspettarsi, invece del solo testo. */
.mg-quale-avvio-temi {
	display:flex; flex-wrap:wrap; justify-content:center; gap:10px;
	margin:0 0 24px;
}
.mg-quale-avvio-temi span {
	display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600;
	color:var(--mg-grigio); background:var(--mg-lino); border-radius:999px; padding:7px 14px;
}
.mg-quale-avvio-temi .mg-ic { color:var(--mg-foglia); width:15px; height:15px; }

/* Barra "Domanda X di Y" + pallini di avanzamento, mostrata solo
   durante le domande — prima stava sempre in cima, anche prima di
   iniziare il quiz, dove non aveva senso (segnalato dal vivo). */
.mg-quale-domanda-barra { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
#mgq-domanda h2.mg-display { margin:0 0 10px; }
#mgq-domanda .mg-hint { margin:0 0 22px; }

#mgq-attesa { text-align:center; padding:40px 0; }
#mgq-attesa .mg-spin { margin:0 auto; display:block; width:30px; height:30px; }
#mgq-attesa .mg-hint { margin-top:16px; }

#mgq-indietro { margin-top:18px; }
#mgq-esito #mgq-rifai { margin-top:20px; }

/* Opzioni del quiz: card cliccabile con etichetta + descrizione, non
   la pillola semplice di "Trova la pianta giusta" (qui ogni opzione ha
   anche una riga di spiegazione). Griglia con minmax(0,1fr): le
   colonne si restringono davvero sotto la dimensione del testo (senza
   questo, un testo lungo forzerebbe la riga a sbordare — bug reale gia'
   trovato una volta in un'altra griglia di questa pagina). */
.mg-quale-opzioni { display:grid; grid-template-columns:repeat(auto-fit,minmax(0,190px)); gap:12px; margin-top:20px; min-height:220px; align-content:start; }
/* Stessa correzione di ".mg-quale-combo" qui sopra: sotto i 480px anche
   190px puo' restare una colonna singola bloccata, con spazio vuoto ai
   lati sui telefoni piu' stretti. */
@media(max-width:480px) { .mg-quale-opzioni { grid-template-columns:1fr; } }
.mg-quale-opt { display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left; border-radius:14px; padding:16px; white-space:normal; }
.mg-quale-opt b { font-size:15px; }
.mg-quale-opt small { font-weight:400; color:var(--mg-tenue); font-size:12.5px; line-height:1.4; }
.mg-quale-opt.is-attiva small { color:rgba(255,255,255,.75); }

.mg-quale-esito-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:20px; align-items:start; }
@media(max-width:760px) { .mg-quale-esito-grid { grid-template-columns:1fr; } }

.mg-quale-vincitrice { padding:0; overflow:hidden; }
.mg-quale-vincitrice__testa { background:var(--mg-bosco2); padding:20px 22px; display:flex; justify-content:space-between; align-items:flex-start; gap:14px; flex-wrap:wrap; }
.mg-quale-vincitrice__foto-wrap { flex:none; text-align:center; }
.mg-quale-vincitrice__foto { width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.35); display:block; }
.mg-quale-vincitrice__credito { display:block; font-size:10px; color:rgba(255,255,255,.55); margin-top:3px; }
.mg-quale-vincitrice__testa h2 { color:#fff; }
.mg-quale-vincitrice__testa .mg-modal__sub { color:rgba(255,255,255,.65); margin-top:2px; }
.mg-quale-compat { text-align:right; }
.mg-quale-compat b { display:block; font-size:28px; font-weight:800; color:#B9DB9C; line-height:1; }
.mg-quale-compat span { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.6); }

.mg-quale-sottotitolo { font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--mg-foglia); margin:0 0 10px; font-family:var(--p-font-sans,inherit); }
.mg-quale-sottotitolo:not(:first-child) { margin-top:22px; }
.mg-quale-motivi { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.mg-quale-motivi li { display:flex; align-items:flex-start; gap:8px; font-size:14px; color:var(--mg-grigio); }
.mg-quale-motivi li .mg-ic { color:var(--mg-foglia2); flex:none; margin-top:2px; width:16px; height:16px; }

.mg-quale-alternativa { position:relative; padding:16px; margin-bottom:12px; }
.mg-quale-alternativa .mg-chip { position:absolute; top:16px; right:16px; }
.mg-quale-alternativa--bloccata { background:var(--mg-lino); }
.mg-quale-sfocata { filter:blur(5px); user-select:none; }
.mg-quale-invito { background:var(--mg-bosco2); color:#D6E3C8; }
.mg-quale-invito h3 { color:#fff; font-size:18px; margin-bottom:8px; }
/* Il colore grigio di ".mg-hint" (pensato per sfondi chiari) altrimenti
   vince su quello del contenitore qui sopra, rendendo il testo quasi
   illeggibile sullo sfondo scuro. */
.mg-quale-invito .mg-hint { color:#fff; }
/* Il pulsante primario diventa invisibile al passaggio del mouse: il
   suo colore di hover (--p-green-ink) e' lo STESSO identico usato per
   lo sfondo di questo riquadro (--mg-bosco2) — un colore diverso e più
   chiaro qui, non lo stesso scuro su scuro. */
.mg-quale-invito .mg-btn--primary:hover { background:var(--mg-foglia); color:#fff !important; }

/* Ambienti salvati (avvio del quiz) */
.mg-quale-ambiente-riga { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:11px 12px; margin-bottom:8px; background:var(--mg-lino); border-radius:12px; font-size:13.5px; color:var(--mg-inchiostro); transition:.15s; }
.mg-quale-ambiente-riga:last-child { margin-bottom:0; }
.mg-quale-ambiente-riga:has(.mg-quale-ambiente-usa:hover) { background:var(--mg-velo); }
.mg-quale-ambiente-usa { display:flex; align-items:center; gap:9px; border:0; background:none; padding:0; font-family:inherit; font-size:13.5px; font-weight:600; color:var(--mg-inchiostro); cursor:pointer; text-align:left; flex:1; min-width:0; }
.mg-quale-ambiente-usa:hover { color:var(--mg-foglia2); }
.mg-quale-ambiente-usa .mg-ic--tondo { flex:none; width:28px; height:28px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; color:var(--mg-foglia2); }
.mg-quale-ambiente-usa .mg-ic--tondo .mg-ic { width:14px; height:14px; }
.mg-quale-ambiente-usa > .mg-ic:last-child { color:var(--mg-tenue); width:13px; height:13px; }

/* Nota di stagionalita' nel risultato */
.mg-quale-stagione { display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--mg-foglia); background:var(--mg-velo); padding:10px 14px; border-radius:10px; margin-bottom:18px; }
.mg-quale-stagione .mg-ic { flex:none; }

/* Salva questo ambiente, dentro il risultato */
.mg-quale-salva-ambiente { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; padding-top:18px; border-top:1px solid var(--mg-bordo); }
.mg-quale-salva-ambiente input { flex:1 1 220px; min-width:0; padding:10px 14px; border:1.5px solid var(--mg-bordo); border-radius:10px; font-family:inherit; font-size:13.5px; }
.mg-quale-salva-ambiente input:focus { outline:none; border-color:var(--mg-foglia); }

/* "Le situazioni piu' cercate" (pagina ospiti) */
.mg-quale-combo { display:grid; grid-template-columns:repeat(auto-fit,minmax(0,270px)); gap:14px; }
/* Sotto i 560px, minmax(0,270px) lascia una colonna singola bloccata a
   un massimo di 270px, con spazio vuoto ai lati invece di occupare
   tutta la larghezza disponibile — stesso punto di rottura gia' usato
   per ".mg-quale-situazione-plants" qui sotto, stessa correzione. */
@media(max-width:560px) { .mg-quale-combo { grid-template-columns:1fr; } }
.mg-quale-combo a {
	display:flex; align-items:center; gap:14px;
	background:#fff; border:1px solid var(--mg-bordo); border-radius:16px; padding:18px 20px;
	text-decoration:none; transition:.15s;
}
.mg-quale-combo a:hover { border-color:var(--mg-foglia); transform:translateY(-3px); box-shadow:var(--mg-shadow-sm); }
.mg-quale-combo__ic {
	flex:none; width:42px; height:42px; border-radius:50%; background:var(--mg-velo);
	display:flex; align-items:center; justify-content:center; color:var(--mg-foglia2);
}
.mg-quale-combo__testo { flex:1; min-width:0; }
.mg-quale-combo a b { display:block; font-size:14.5px; color:var(--mg-inchiostro); }
.mg-quale-combo a small { display:block; margin-top:3px; font-size:12px; color:var(--mg-tenue); }
.mg-quale-combo a > .mg-ic:last-child { flex:none; color:var(--mg-foglia); }

/* Pagina di una situazione (?situazione=poca-luce ecc.): il breadcrumb
   del tema mostra gia' il percorso, l'H1 del plugin deve stare in alto
   senza margini eccessivi sopra. I testi (introduzione e chiusura) non
   devono restare stretti nella colonna di lettura predefinita di
   ".mg-lead" (max-width:40ch) — qui vogliono la larghezza piena,
   segnalato dal vivo ("non deve essere spezzato"). */
.mg-quale-situazione-testa { text-align:left; max-width:none; margin:8px 0 0; }
.mg-quale-situazione-titolo {
	font-family: inherit; font-size:clamp(28px,3.6vw,42px); font-weight:800;
	letter-spacing:-0.03em; line-height:1.12; margin:0;
}
.mg-quale-situazione-testa .mg-lead { max-width:none; margin-top:14px; font-size:16px; }
.mg-quale-situazione-breve { font-size:13.5px; color:var(--mg-tenue); margin:6px 0 10px; }
.mg-quale-situazione-finale { padding:56px 0 0; }
.mg-quale-situazione-finale .mg-lead { max-width:none; margin-top:12px; }
.mg-quale-situazione-finale .mg-hero__ctas { margin-top:20px; }

/* Card delle situazioni: non sono cliccabili nel loro insieme (solo i
   pulsanti dentro lo sono) — il sollevamento al passaggio del mouse,
   pensato per card interamente cliccabili altrove nel plugin, qui
   confondeva ("perche' si muove se non ci clicco sopra?"). */
.mg-quale-situazione-plants .mg-pcard:hover { transform:none; box-shadow:none; }
/* Le card sono gia' alte uguali per riga (comportamento di default di
   CSS grid), ma il contenuto interno no: una descrizione piu' lunga
   spingeva i pulsanti piu' in basso, creando un dislivello visibile
   tra una card e l'altra nella stessa riga — qui si forza il pulsante
   sempre in fondo, indipendentemente da quante righe ha il testo sopra. */
.mg-quale-situazione-plants .mg-pcard { display:flex; flex-direction:column; height:100%; }
.mg-quale-situazione-plants .mg-pcard__body { display:flex; flex-direction:column; flex:1; }
.mg-quale-approfondisci { display:inline-flex; align-items:center; gap:.4em; font-size:13px; font-weight:600; color:var(--mg-foglia2); text-decoration:none; white-space:nowrap; }
.mg-quale-approfondisci:hover { text-decoration:underline; }
.mg-quale-approfondisci .mg-ic { width:14px; height:14px; }
/* Pagina a piena larghezza (non nella colonna stretta di "Il mio
   giardino"): 2 sole colonne renderebbero ogni card larghissima. */
.mg-quale-situazione-plants { grid-template-columns:repeat(3,1fr); }
@media(max-width:900px) { .mg-quale-situazione-plants { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px) { .mg-quale-situazione-plants { grid-template-columns:1fr; } }
.mg-quale-situazione-azioni { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:10px; flex-wrap:wrap; }

/* Blocco SEO di chiusura (titolo + testo), sotto l'elenco piante — non
   un box con sfondo come prima, testo normale a piena larghezza, con
   spazio sopra per staccarlo dall'area precedente. */
.mg-quale-situazione-seo-blocco { margin-top:32px; }
.mg-quale-situazione-seo-blocco h2 { font-size:22px; font-weight:800; margin:0 0 12px; color:var(--mg-inchiostro); }
.mg-quale-situazione-seo { font-size:15.5px; line-height:1.7; color:var(--mg-tenue); max-width:none; margin:0; }

/* Punteggio sulla foto, storico individuazioni */
.mg-quale-storico-punti { position:absolute; top:12px; right:12px; z-index:3; }

/* Storico individuazioni: criteri usati e alternative, non solo la
   pianta vincitrice. */
.mg-quale-storico-criteri { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.mg-quale-storico-alternative { font-size:12.5px; color:var(--mg-tenue); margin-top:8px; }
.mg-quale-storico-alternative strong { color:var(--mg-grigio); font-weight:600; }

/* Situazioni piu' comuni, colonna laterale registrati */
.mg-quale-side-situazioni { display:flex; flex-direction:column; gap:2px; }
.mg-quale-side-situazioni a { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 4px; font-size:13.5px; font-weight:600; color:var(--mg-inchiostro); text-decoration:none; border-bottom:1px solid var(--mg-bordo); }
.mg-quale-side-situazioni a:last-child { border-bottom:0; }
.mg-quale-side-situazioni a:hover { color:var(--mg-foglia2); }
.mg-quale-side-situazioni a .mg-ic { flex:none; width:13px; height:13px; color:var(--mg-tenue); }

/* ==========================================================
   "Cosa coltivare oggi" — calendario lunare (class-mg-lunario*.php)
   ========================================================== */

.mg-lunario-oggi { position:relative; overflow:hidden; }
.mg-lunario-oggi > *:not(.mg-quale-avvio-leaf) { position:relative; z-index:1; }


.mg-lunario-oggi__fase { display:flex; align-items:center; gap:18px; margin-bottom:22px; }
.mg-lunario-oggi__icona { font-size:52px; line-height:1; flex:none; }
.mg-lunario-oggi__data { font-size:13px; color:var(--mg-tenue); margin:0 0 2px; text-transform:capitalize; }
.mg-lunario-oggi__nome { font-size:24px; margin:0; }

/* Anteprima decorativa nell'hero (vedi templates/lunario-ospiti.php) —
   sostituisce la dashboard completa in quella colonna, troppo stretta
   per contenerla bene: solo icona, nome fase e un riassunto breve,
   con un link che scorre alla dashboard vera, spostata sotto in una
   sezione a piena larghezza. */
.mg-lunario-anteprima { position:relative; z-index:1; text-align:center; max-width:320px; margin:0 auto; padding:40px 24px; }
.mg-lunario-anteprima__icona { display:inline-flex; align-items:center; justify-content:center; width:150px; height:150px; border-radius:50%; background:var(--mg-velo); color:var(--mg-bosco); margin-bottom:32px; }
.mg-lunario-anteprima__icona svg { display:block; }
.mg-lunario-anteprima__data { font-size:13px; color:var(--mg-tenue); margin:0 0 14px; text-transform:capitalize; }
.mg-lunario-anteprima__nome { font-size:26px; margin:0 0 22px; }
.mg-lunario-anteprima__riassunto { font-size:14.5px; line-height:1.5; color:var(--mg-inchiostro); margin:0 0 30px; }
.mg-lunario-anteprima .mg-link-more { display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:700; color:var(--mg-bosco); text-decoration:none; }
.mg-lunario-anteprima .mg-link-more:hover { color:var(--mg-foglia); }

.mg-lunario-filtri { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.mg-lunario-filtro { padding:8px 16px; border-radius:999px; border:1px solid var(--mg-bordo); background:#fff; font-family:inherit; font-size:13px; font-weight:600; color:var(--mg-grigio); cursor:pointer; transition:.15s; }
.mg-lunario-filtro:hover { background:var(--mg-lino); }
.mg-lunario-filtro--attivo, .mg-lunario-filtro--attivo:hover { background:var(--mg-bosco); border-color:var(--mg-bosco); color:#fff; }

/* Griglia a 4 colonne (2 su tablet, 1 su mobile): la dashboard ora
   vive in una sezione a piena larghezza (vedi templates/lunario-ospiti.php),
   non piu' compressa nella colonna dell'hero — ha spazio per mostrare
   le quattro categorie fianco a fianco invece che impilate. */
#mg-lunario-attivita-oggi { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
.mg-lunario-categoria { padding:18px; border:1px solid var(--mg-bordo); border-radius:var(--mg-r-sm); background:#fff; }
.mg-lunario-categoria h3 { font-size:15px; margin-bottom:10px; }

/* Con un filtro specifico attivo (non "Tutte"), un solo blocco resta
   visibile: invece di lasciarlo stretto in una colonna con tanto
   spazio vuoto a destra, affianca la sintesi breve al dettaglio
   esteso, riempiendo la larghezza disponibile. */
#mg-lunario-attivita-oggi.mg-lunario-attivita-oggi--filtrata { grid-template-columns:1fr; }
#mg-lunario-attivita-oggi.mg-lunario-attivita-oggi--filtrata .mg-lunario-categoria {
	display:grid; grid-template-columns:1fr 1.3fr; gap:32px; align-items:start;
}
@media (max-width: 720px) {
	#mg-lunario-attivita-oggi.mg-lunario-attivita-oggi--filtrata .mg-lunario-categoria { grid-template-columns:1fr; }
}

@media (max-width: 900px) {
	#mg-lunario-attivita-oggi { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 560px) {
	#mg-lunario-attivita-oggi { grid-template-columns:1fr; }
}

.mg-lunario-etichetta { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; margin:0 0 6px; }
.mg-lunario-etichetta--si { color:var(--mg-cura); }
.mg-lunario-etichetta--no { color:var(--mg-ruggine); }
.mg-lunario-lista { list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:6px; }
.mg-lunario-lista:last-child { margin-bottom:0; }
.mg-lunario-lista li { font-size:13.5px; line-height:1.5; padding-left:20px; position:relative; color:var(--mg-inchiostro); }
.mg-lunario-lista--si li::before { content:"✓"; position:absolute; left:0; color:var(--mg-cura); font-weight:700; }
.mg-lunario-lista--no li::before { content:"✕"; position:absolute; left:0; color:var(--mg-ruggine); font-weight:700; }
.mg-lunario-dettaglio { margin:0; padding-left:28px; border-left:1px dashed var(--mg-bordo); }
.mg-lunario-dettaglio p { font-size:13.5px; line-height:1.6; color:var(--mg-grigio); margin:0; }
@media (max-width: 720px) {
	.mg-lunario-dettaglio { margin:14px 0 0; padding:14px 0 0; border-left:0; border-top:1px dashed var(--mg-bordo); }
}

/* Nella modale (dettaglio giorno), la data ha già 26px di margine
   sotto dalla regola condivisa .mg-modal__sub — ma qui il primo
   blocco categoria ha un bordo visibile subito dopo, rendendo lo
   stesso spazio visivamente meno netto: un margine specifico e più
   ampio solo per questa pagina, senza toccare la regola condivisa. */
#mg-lunario-modale .mg-modal__sub { margin-bottom:34px; }
.mg-lunario-modale-tab { margin-bottom:20px; }

.mg-lunario-meteo { margin-top:26px; padding-top:22px; border-top:1px solid var(--mg-bordo); }
.mg-lunario-meteo__etichetta { display:block; font-size:13px; color:var(--mg-tenue); margin-bottom:10px; }
.mg-lunario-meteo__campo { display:flex; gap:8px; align-items:stretch; max-width:460px; }
.mg-lunario-meteo__campo input { flex:1; min-width:0; }

/* Campi di inserimento dello strumento: stessa altezza e stesso
   trattamento dei pulsanti accanto (che usano .mg-btn--sm), con uno
   stato di focus visibile — senza, il campo attivo non si distingue
   da quello inattivo. */
.mg-lunario-meteo__campo input,
.mg-lunario-iscrizione__campi input,
.mg-lunario-iscrizione__campi select {
	padding:11px 14px;
	border:1px solid var(--mg-bordo);
	border-radius:var(--mg-r-sm);
	font-family:inherit;
	font-size:14px;
	color:var(--mg-inchiostro);
	background:#fff;
	transition:border-color .15s, box-shadow .15s;
}
.mg-lunario-meteo__campo input:focus,
.mg-lunario-iscrizione__campi input:focus,
.mg-lunario-iscrizione__campi select:focus {
	outline:none;
	border-color:var(--mg-foglia);
	box-shadow:0 0 0 3px rgba(74,118,47,.12);
}
#mg-lunario-meteo-esito { margin-top:14px; }
.mg-lunario-avviso { display:flex; gap:10px; padding:12px 14px; border-radius:var(--mg-r-sm); background:#FBF1DE; color:var(--mg-sole); font-size:13px; line-height:1.5; margin-bottom:8px; }
.mg-lunario-avviso:last-child { margin-bottom:0; }
.mg-lunario-meteo-ok { font-size:13px; color:var(--mg-cura); }

.mg-lunario-calendario__nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.mg-lunario-calendario__nav h3 { font-size:17px; text-transform:capitalize; margin:0; }

/* Intestazioni Lun-Dom sopra la griglia: senza, le celle dei giorni
   non hanno riferimento visivo e la griglia risulta difficile da
   leggere. Stesse 7 colonne della griglia sotto, per allinearsi. */
.mg-lunario-intestazioni { display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; margin-bottom:8px; }
.mg-lunario-intestazioni span { text-align:center; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--mg-tenue); }

.mg-lunario-legenda { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-top:18px; padding-top:16px; border-top:1px solid var(--mg-bordo); }
.mg-lunario-legenda span { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; color:var(--mg-tenue); }
.mg-lunario-griglia { display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; }
.mg-lunario-giorno { height:52px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; border-radius:var(--mg-r-sm); border:1px solid var(--mg-bordo); background:#fff; cursor:pointer; transition:.15s; font-family:inherit; }
.mg-lunario-giorno:hover { border-color:var(--mg-foglia); background:var(--mg-lino); }
.mg-lunario-giorno--oggi { border-color:var(--mg-bosco); border-width:2px; background:var(--mg-velo); }
.mg-lunario-giorno__numero { font-size:12px; font-weight:700; color:var(--mg-inchiostro); }
.mg-lunario-giorno__icona { display:flex; align-items:center; justify-content:center; color:var(--mg-bosco); line-height:0; }
.mg-lunario-giorno--vuoto { visibility:hidden; cursor:default; }

@media (max-width: 640px) {
	.mg-lunario-griglia, .mg-lunario-intestazioni { gap:4px; }
	.mg-lunario-anteprima__icona { width:110px; height:110px; }
	.mg-lunario-anteprima { padding:24px 16px; }
}

.mg-lunario-iscrizione { margin-top:20px; }
.mg-lunario-iscrizione__campi { display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; }
.mg-lunario-iscrizione__campi input[type="email"] { flex:2 1 220px; min-width:0; }
.mg-lunario-iscrizione__campi input[type="text"] { flex:1 1 180px; min-width:0; }
.mg-lunario-iscrizione__campi select { flex:1 1 160px; min-width:0; }
#mg-lunario-iscr-esito { margin-top:12px; }
