@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Cormorant+Garamond:wght@600;700&display=swap');
:root{--canvas:#FFFFFF;--s1:#FFFFFF;--s2:#F7F5F6;--s3:#EFEBED;--line:#E6E1E4;--line-strong:#D2CBCF;--ink:#25171F;--ink-muted:#4A3A43;--ink-subtle:#71636B;--ink-tertiary:#9A8C93;--accent:#C90972;--accent-hover:#A8075F;--accent-soft:#FBE7F1;--plum:#5A0F38;--plum-deep:#3C0825;--success:#1F9D55;--ivory:#FAF7F4;--blush:#FFF1F6;--taupe:#F1ECE9;--card:#FFFFFF;--border:#E6DDE1;--font-ui:'Montserrat',system-ui,sans-serif;--font-display:'Cormorant Garamond',Georgia,serif;color-scheme:light;}
/* Rimappa i token Tailwind usati dall'app sulle variabili del tenant (vedi DESIGN.md).
   Le variabili :root le stampa theme.css.php a partire da tenants/<TENANT>.php:
   così app.js e admin.php restano invariati e tutta la UI cambia pelle in un punto solo.
   Questo blocco è la mappa del tema scuro originale; theme-light.css la inverte. */

body { font-family:var(--font-ui) !important; background:var(--canvas) !important; color:var(--ink); -webkit-font-smoothing:antialiased; }
* { box-shadow:none !important; }

/* Controlli dei form: senza colori espliciti alcuni browser li disegnano con la
   tavolozza di sistema (testo nero su fondo scuro, tendine che sembrano vuote). */
select, input, textarea, button { color:var(--ink); }
select option { background:var(--s2); color:var(--ink); }
select, input, textarea { max-width:100%; min-width:0; }
img, video { max-width:100%; }
/* iOS ingrandisce la pagina quando un campo ha font sotto i 16px */
@media (max-width: 640px) {
  select, input[type=text], input[type=email], input[type=password], input[type=number], textarea { font-size:16px; }
}

/* Superfici */
[class*="bg-gray-950"] { background-color:var(--canvas) !important; }
[class*="bg-gray-900"] { background-color:var(--s1) !important; }
[class*="bg-gray-800"] { background-color:var(--s2) !important; }
.hover\:bg-gray-700:hover, [class*="hover:bg-gray-700"]:hover { background-color:var(--s3) !important; }
header[class*="bg-gray-900"] { background-color:rgba(1,1,2,.8) !important; backdrop-filter:blur(12px); }

/* Bordi */
[class*="border-gray-800"] { border-color:var(--line) !important; }
[class*="border-gray-700"] { border-color:var(--line-strong) !important; }
[class*="divide-gray-800"] > * + * { border-color:var(--line) !important; }

/* Testi */
[class*="text-gray-300"] { color:var(--ink-muted) !important; }
[class*="text-gray-400"] { color:var(--ink-subtle) !important; }
[class*="text-gray-500"] { color:var(--ink-subtle) !important; }
[class*="text-gray-600"] { color:var(--ink-tertiary) !important; }

/* Accento: dal grigio-indigo Tailwind al colore del tenant */
[class*="bg-indigo-600"] { background-color:var(--accent) !important; }
.hover\:bg-indigo-500:hover, [class*="hover:bg-indigo-500"]:hover { background-color:var(--accent-hover) !important; }
[class*="text-indigo-300"], [class*="text-indigo-400"] { color:var(--accent-hover) !important; }
[class*="border-indigo-500"], [class*="border-indigo-400"] { border-color:var(--accent) !important; }
[class*="accent-indigo"] { accent-color:var(--accent) !important; }
.hover\:border-indigo-500:hover, [class*="hover:border-indigo-500"]:hover { border-color:var(--accent) !important; }
[class*="bg-indigo-500"]:not([class*="bg-indigo-500/"]) { background-color:var(--accent) !important; }

/* Verde di conferma */
[class*="bg-emerald-600"] { background-color:var(--success) !important; }
.hover\:bg-emerald-500:hover, [class*="hover:bg-emerald-500"]:hover { background-color:#2fbf50 !important; }
[class*="border-emerald-600"], [class*="border-emerald-500"] { border-color:var(--success) !important; }

/* Titoli con il tracking stretto del sistema */
h1 { font-weight:600 !important; letter-spacing:-0.8px; }
h2 { font-weight:600 !important; letter-spacing:-0.5px; }

/* Spinner e area di trascinamento */
.spinner { border:3px solid var(--line-strong); border-top-color:var(--accent) !important; border-radius:9999px; width:22px; height:22px; animation:spin 0.8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.dropzone { border:1.5px dashed var(--line-strong); border-radius:0.75rem; background:var(--s2);
            padding:1.25rem 1rem; text-align:center; cursor:pointer; transition:border-color .15s, background .15s; }
.dropzone:hover { border-color:var(--accent-hover); }
.dropzone.dragover { border-color:var(--accent); background:var(--accent-soft); }
.dropzone input[type=file] { display:none; }

/* Tema chiaro: inverte la mappa di theme.css. app.js è scritto per un fondo
   scuro (testi chiari, bordi scuri, overlay neri): qui ogni classe di quel
   vocabolario viene portata su fondo bianco con inchiostro scuro. Le ombre
   morbide sostituiscono i bordi come separatore delle superfici. */

* { box-shadow:none; }

/* Superfici: il fondo è bianco, le card si staccano con ombra e linea sottile */
[class*="bg-gray-950"] { background-color:var(--canvas) !important; }
[class*="bg-gray-900"] { background-color:var(--s1) !important; box-shadow:0 1px 2px rgba(17,17,17,.04), 0 4px 16px rgba(17,17,17,.05) !important; }
[class*="bg-gray-800"] { background-color:var(--s2) !important; }
[class*="bg-gray-600"] { background-color:var(--line-strong) !important; }
.hover\:bg-gray-700:hover, [class*="hover:bg-gray-700"]:hover { background-color:var(--s3) !important; }
header[class*="bg-gray-900"] { background-color:rgba(255,255,255,.85) !important; box-shadow:none !important; }
#toast { box-shadow:0 8px 24px rgba(17,17,17,.12) !important; }

/* Bordi */
[class*="border-gray-800"] { border-color:var(--line) !important; }
[class*="border-gray-700"] { border-color:var(--line-strong) !important; }
.hover\:border-gray-600:hover, [class*="hover:border-gray-600"]:hover,
.hover\:border-gray-500:hover, [class*="hover:border-gray-500"]:hover { border-color:var(--ink-subtle) !important; }
[class*="divide-gray-800"] > * + * { border-color:var(--line) !important; }

/* Testi: in chiaro il "bianco" dell'app è l'inchiostro */
body, [class*="text-gray-100"], [class*="text-white"]:not([class*="hover:text-white"]) { color:var(--ink); }
[class*="text-gray-100"] { color:var(--ink) !important; }
[class*="text-gray-300"] { color:var(--ink-muted) !important; }
[class*="text-gray-400"] { color:var(--ink-subtle) !important; }
[class*="text-gray-500"] { color:var(--ink-subtle) !important; }
[class*="text-gray-600"] { color:var(--ink-tertiary) !important; }
[class*="text-gray-700"] { color:var(--ink-tertiary) !important; }
.hover\:text-white:hover, [class*="hover:text-white"]:hover { color:var(--ink) !important; }
[class*="text-gray-950"] { color:var(--ink) !important; }

/* Accento */
[class*="text-indigo-300"], [class*="text-indigo-400"] { color:var(--accent) !important; }
.hover\:text-indigo-300:hover, [class*="hover:text-indigo-300"]:hover { color:var(--accent-hover) !important; }
[class*="bg-indigo-500/10"], [class*="bg-indigo-500/15"] { background-color:var(--accent-soft) !important; }
[class*="bg-indigo-400"] { background-color:var(--accent-hover) !important; }
[class*="border-indigo-500/40"] { border-color:var(--accent) !important; }
[class*="bg-indigo-600"], [class*="bg-emerald-600"], [class*="bg-red-600"], [class*="bg-red-500"]:not([class*="/"]) { color:#fff !important; }

/* Semafori: le tinte chiare di Tailwind sparirebbero sul bianco */
[class*="text-red-300"], [class*="text-red-400"] { color:#B42318 !important; }
.hover\:text-red-400:hover, [class*="hover:text-red-400"]:hover { color:#B42318 !important; }
[class*="bg-red-500/10"], [class*="bg-red-950/40"], [class*="bg-red-900/40"] { background-color:#FEF3F2 !important; }
[class*="border-red-500/40"], [class*="border-red-900/50"], [class*="border-red-500"] { border-color:#F4B4AE !important; }
[class*="text-emerald-300"], [class*="text-emerald-400"] { color:var(--success) !important; }
[class*="bg-emerald-500/10"], [class*="bg-emerald-700/40"] { background-color:#ECFDF3 !important; }
[class*="border-emerald-500/40"], [class*="border-emerald-500/60"] { border-color:#A6E3BD !important; }
[class*="text-amber-300"], [class*="text-amber-400"] { color:#B54708 !important; }
[class*="bg-amber-500/10"], [class*="bg-amber-500/15"] { background-color:#FFFAEB !important; }
[class*="border-amber-500/40"] { border-color:#F5D08A !important; }

/* Gli overlay a schermo intero (confronto prima/dopo, lightbox) restano scuri:
   sono sopra a una foto, non sopra alla pagina. Il fondo quindi non si tocca,
   ma il testo si': in chiaro l'inchiostro e' scuro e le pastiglie appoggiate
   alla foto (ORIGINALE, PARTENZA, PRIMA/DOPO, su bg-black) restavano nere su
   nero. Solo le pastiglie, non i figli degli overlay: dentro a bg-black/80 c'e'
   anche la card bianca delle modali. */
[class*="bg-black/"]:is(span, figcaption) { color:#fff !important; }
[class*="bg-black/"]:is(span, figcaption)[class*="border-gray-700"] { border-color:rgba(255,255,255,.35) !important; }

/* Font: i titoli pesano 600 ma la Montserrat è larga, tracking un filo più stretto */
h1 { letter-spacing:-1px; }
h2 { letter-spacing:-0.6px; }
