/* Famiglia Condivisa — Material 3 Light (Material You) */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap');

:root {
  --md-primary: #6750A4;
  --md-on-primary: #FFFFFF;
  --md-primary-container: #EADDFF;
  --md-on-primary-container: #21005D;
  --md-secondary: #625B71;
  --md-on-secondary: #FFFFFF;
  --md-secondary-container: #E8DEF8;
  --md-on-secondary-container: #1D192B;
  --md-tertiary: #7D5260;
  --md-tertiary-container: #FFD8E4;
  --md-error: #B3261E;
  --md-on-error: #FFFFFF;
  --md-surface: #FEF7FF;
  --md-on-surface: #1D1B20;
  --md-surface-variant: #E7E0EC;
  --md-on-surface-variant: #49454F;
  --md-surface-low: #F7F2FA;
  --md-surface-container: #F3EDF7;
  --md-surface-high: #ECE6F0;
  --md-outline: #79747E;
  --md-outline-variant: #CAC4D0;
  --md-shadow: #000000;
  --md-shape-s: 12px;
  --md-shape-m: 16px;
  --md-shape-l: 28px;
  --md-elev-1: 0 1px 2px rgba(0,0,0,.3), 0 1px 3px 1px rgba(0,0,0,.15);
  --md-elev-2: 0 1px 2px rgba(0,0,0,.3), 0 2px 6px 2px rgba(0,0,0,.15);
  --md-elev-3: 0 4px 8px 3px rgba(0,0,0,.15), 0 1px 3px rgba(0,0,0,.3);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body.scuro {
  --md-primary: #D0BCFF;
  --md-on-primary: #381E72;
  --md-primary-container: #4F378B;
  --md-on-primary-container: #EADDFF;
  --md-secondary: #CCC2DC;
  --md-on-secondary: #332D41;
  --md-secondary-container: #4A4458;
  --md-on-secondary-container: #E8DEF8;
  --md-surface: #141218;
  --md-on-surface: #E6E0E9;
  --md-surface-variant: #49454F;
  --md-on-surface-variant: #CAC4D0;
  --md-surface-low: #141218;
  --md-surface-container: #1D1B20;
  --md-surface-high: #2B2930;
  --md-outline: #938F99;
  --md-outline-variant: #49454F;
  color-scheme: dark;
}
body.scuro header { background: #1D1B20; }
body.scuro input, body.scuro select { background: #1D1B20; border-color: #938F99; color: #E6E0E9; }
body.scuro .dp-popup { background: #2B2930; }
body.scuro .dp-cell { color: #E6E0E9; }
body.scuro .dp-cell:hover { background: var(--md-primary-container); color: var(--md-on-primary-container); }
body.scuro .cal-grid .day.today { background: var(--md-primary-container); }
body.scuro .cal-grid .day.today .num { color: var(--md-on-primary-container); }
body.scuro li.msg-nuovo { color: #1D1B20; }
body.scuro li.msg-nuovo small { color: #5D4037; }

body {
  font-family: 'Roboto', system-ui, sans-serif;
  background: var(--md-surface-low);
  color: var(--md-on-surface);
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Tema scuro REALE (selezionabile da Impostazioni; backup in styles.css.bak-2.15) */

/* ===== TOP APP BAR (Material 3) ===== */
header {
  background: var(--md-surface);
  color: var(--md-on-surface);
  padding: 12px 16px 0;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: var(--md-elev-1);
}
header::after { display: none; }
header h1 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--md-on-surface);
  background: none;
  -webkit-text-fill-color: currentcolor;
  display: flex;
  align-items: center;
  gap: 10px;
}
.app-logo { font-size: 2.4rem; line-height: 1; filter: saturate(1.3); }
.dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; vertical-align: -1px; }
.dot.off { background: #B3261E; box-shadow: 0 0 0 3px rgba(179,38,30,.18); }
.dot.on { background: #0F9D58; box-shadow: 0 0 0 3px rgba(15,157,88,.18); }
.dot.busy { background: #F9AB00; box-shadow: 0 0 0 3px rgba(249,171,0,.22); animation: blink 1s infinite; }
@keyframes blink { 50% { opacity: .45; } }
.subtitle {
  margin: 2px 0 8px;
  font-size: .82rem;
  color: var(--md-on-surface-variant);
}

/* ===== NAVIGATION BAR ===== */
nav {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  padding: 4px 0 8px;
  scrollbar-width: none;
}
nav::-webkit-scrollbar { display: none; }
nav button {
  border: 0;
  border-radius: 16px;
  padding: .5rem .7rem;
  background: transparent;
  color: var(--md-on-surface-variant);
  white-space: nowrap;
  cursor: pointer;
  font-family: inherit;
  font-size: .74rem;
  font-weight: 500;
  transition: background .2s;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 64px;
  flex: 1 0 auto;
}
.tab-ico { font-size: 2.4rem; line-height: 1.2; }
nav button { min-width: 68px; min-height: 68px; font-size: .8rem; color: #3f3f46; padding: .6rem .7rem; }
nav button.active { outline: 2px solid var(--md-primary); outline-offset: -2px; }
/* modali generiche (niente prompt nativi: non funzionano nella WebView) */
.modal-back { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 10000; display: flex; align-items: flex-end; justify-content: center; }
.modal { background: #fff; border-radius: 20px 20px 0 0; width: 100%; max-width: 640px; max-height: 92vh; overflow: auto; padding: 18px 16px calc(18px + env(safe-area-inset-bottom)); font-family: Inter,sans-serif; }
.modal h3 { margin: 0 0 12px; }
.modal textarea { width: 100%; min-height: 160px; font-family: monospace; font-size: .8rem; border: 1px solid #cbd5e1; border-radius: 12px; padding: 10px; }
.modal .mrow { display: flex; gap: 8px; margin-top: 12px; }
.modal .mrow button { flex: 1; }
nav button:hover { background: var(--md-surface-container); box-shadow: none; transform: none; }
nav button::after { display: none; }
nav button.active {
  background: var(--md-secondary-container);
  color: var(--md-on-secondary-container);
  font-weight: 700;
  box-shadow: none;
}

/* ===== LAYOUT ===== */
main { max-width: 900px; margin: 0 auto; padding: 12px 16px 32px; }
.tab { display: none; }
.tab.active { display: block; animation: fadeUp .25s ease; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ===== CARDS (Material elevated) ===== */
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.card {
  background: var(--md-surface-container);
  border-radius: var(--md-shape-m);
  padding: 16px;
  box-shadow: var(--md-elev-1);
  border: 0;
  position: relative;
  overflow: hidden;
}
.card::before { display: none; }
.card:hover { transform: none; box-shadow: var(--md-elev-2); }
.card[data-goto] { cursor: pointer; }
.card h3 { font-size: 1rem; font-weight: 500; margin-bottom: 6px; color: var(--md-on-surface); }
.card p { font-size: .9rem; color: var(--md-on-surface-variant); }
.card small { color: var(--md-on-surface-variant); }

/* ===== FORMS ===== */
form {
  background: var(--md-surface);
  border-radius: var(--md-shape-m);
  padding: 16px;
  margin: 12px 0;
  display: grid;
  gap: 12px;
  box-shadow: var(--md-elev-1);
  border: 1px solid var(--md-outline-variant);
}
label { display: grid; gap: 6px; font-size: .82rem; font-weight: 500; color: var(--md-on-surface-variant); }
input, select, textarea {
  min-width: 0;
  width: 100%;
  padding: .7rem .9rem;
  border: 1px solid var(--md-outline);
  border-radius: 8px;
  font-size: .95rem;
  font-family: inherit;
  background: var(--md-surface);
  color: var(--md-on-surface);
  transition: border-color .2s, box-shadow .2s;
}
input:focus, select:focus {
  outline: none;
  border-color: var(--md-primary);
  box-shadow: 0 0 0 3px rgba(103,80,164,.15);
}
input[type=checkbox], input[type=radio] { width: auto; min-width: 0; padding: 0; }
input::placeholder { color: var(--md-outline); }

/* ===== BUTTONS (Material 3 filled + tonal) ===== */
button {
  padding: .65rem 1.2rem;
  border-radius: 20px;
  border: 0;
  background: var(--md-primary);
  color: var(--md-on-primary);
  cursor: pointer;
  font-family: inherit;
  font-size: .88rem;
  font-weight: 500;
  transition: box-shadow .2s, background .2s;
  position: relative;
  overflow: hidden;
}
button::after { display: none; }
button:hover { box-shadow: var(--md-elev-1); transform: none; background: #5d4796; }
button:active { box-shadow: none; }
button.danger { background: var(--md-error); color: var(--md-on-error); }
button.danger:hover { box-shadow: var(--md-elev-1); }
.ghost-btn {
  background: transparent !important;
  color: var(--md-primary) !important;
  border: 1px solid var(--md-outline) !important;
  border-radius: 20px;
}
.ghost-btn:hover { background: var(--md-surface-container) !important; box-shadow: none !important; }

/* ===== LISTS ===== */
ul { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 8px; }
li {
  background: var(--md-surface);
  padding: 12px 16px;
  border-radius: var(--md-shape-s);
  box-shadow: none;
  border: 1px solid var(--md-outline-variant);
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}
li:hover { box-shadow: var(--md-elev-1); }
li small { color: var(--md-on-surface-variant); font-size: .8rem; }
li button { padding: .3rem .55rem; font-size: .78rem; border-radius: 12px; }
li button:hover { box-shadow: none; }
li.msg-nuovo { background: #FFF9C2; border-color: #F9A825; }
.thread-replies { margin: 0 0 4px 18px !important; border-left: 3px solid var(--md-primary); padding-left: 8px !important; }
.thread-replies li { background: var(--md-surface-container); font-size: .85rem; }
.pct-bar { display: flex; height: 26px; border-radius: 13px; overflow: hidden; background: var(--md-surface-high); margin-top: 10px; }
.pct-seg { height: 100%; min-width: 0; transition: width .3s; }
.pct-leg { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px; font-size: .78rem; color: var(--md-on-surface-variant); }
.pct-leg .dot { width: 10px; height: 10px; }
.sq { display: inline-block; width: 13px; height: 13px; border-radius: 3px; vertical-align: -1px; margin-right: 2px; }
.sq-Mamma { background: #EC407A; }
.sq-Papà { background: #1E88E5; }
.week-strip { display: grid; gap: 6px; margin: 8px 0; }
.week-day { background: var(--md-surface); border: 1px solid var(--md-outline-variant); border-radius: 12px; padding: 10px 12px; display: flex; gap: 10px; align-items: center; }
.week-day .wdate { min-width: 76px; font-weight: 700; font-size: .9rem; color: var(--md-on-surface); }
.week-day .wdate small { display: block; font-weight: 500; font-size: .72rem; color: var(--md-on-surface-variant); }
.week-day.today { border-color: var(--md-primary); background: var(--md-primary-container); }
.week-day .wevents { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; }
.week-day .we { display: inline-block; border-radius: 10px; padding: 6px 12px; font-size: .88rem; font-weight: 500; }
.week-day .wnone { color: var(--md-outline); font-size: .8rem; }
.dv-allday { border-radius: 16px; padding: 14px 16px; margin: .5rem 0; }
.dv-allday .num { font-size: 1.15rem; }
.dv-row { display: flex; gap: 12px; align-items: flex-start; padding: 8px 4px; border-top: 1px solid var(--md-outline-variant); }
.dv-time { min-width: 52px; font-weight: 700; font-size: .95rem; color: var(--md-primary); padding-top: 6px; }
.dv-row .we { font-size: .95rem; padding: 8px 14px; }
.dv-row .wevents { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.dv-exact { font-size: 1.1rem; font-weight: 700; }
/* Riepiloghi in evidenza: grigio chiaro, testo scuro */
.recap { background: linear-gradient(135deg, #DCDCDC, #CFCFCF) !important; border: 0; color: #1D1B20; }
.recap h3, .recap p, .recap small, .recap strong, .recap .num, .recap li, .recap span { color: #1D1B20; }
.recap li { background: transparent; border-color: rgba(0,0,0,.14); }
.recap .dv-row { border-color: rgba(0,0,0,.14); }
.recap .dv-time { color: #4F378B; }
.recap .pct-leg { color: #49454F; }
.week-day { background: linear-gradient(135deg, #DCDCDC, #CFCFCF); border: 0; color: #1D1B20; }
.week-day .wdate, .week-day .wdate small { color: #1D1B20; }
.week-day .wnone { color: #6b7280; }
#lista-partite li, #lista-lezioni li { background: linear-gradient(135deg, #DCDCDC, #CFCFCF); border: 0; color: #1D1B20; }
#lista-partite li small, #lista-lezioni li small { color: #49454F; }
#day-body h3 { margin: .8rem 0 .3rem; }
#day-titolo { text-transform: capitalize; }
.we-all { background: var(--md-secondary-container); color: var(--md-on-secondary-container); }
.we-match { background: #E8F5E9; color: #1B5E20; }

/* ===== ASSIST CHIP / HINT ===== */
.hint {
  background: var(--md-secondary-container);
  border: 0;
  padding: 12px 16px;
  border-radius: var(--md-shape-s);
  font-size: .85rem;
  color: var(--md-on-secondary-container);
  margin: 12px 0;
}

/* ===== ROW ===== */
.row { display: flex; gap: 8px; align-items: center; margin: 8px 0; flex-wrap: wrap; }

/* ===== CALENDAR (Material date look, light) ===== */
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 4px; margin: 8px 0; }
.cal-grid .dow { font-weight: 500; text-align: center; font-size: .78rem; color: var(--md-on-surface-variant); padding: 6px 0; }
.cal-grid .day {
  background: var(--md-surface);
  min-height: 72px;
  border-radius: var(--md-shape-s);
  padding: 6px;
  font-size: .85rem;
  border: 1px solid transparent;
  transition: background .2s;
}
.cal-grid .day .num { font-size: .9rem; font-weight: 500; color: var(--md-on-surface); }
.cal-grid .day .badge {
  display: block;
  border-radius: 8px;
  padding: 3px 8px;
  margin-top: 4px;
  color: #fff;
  font-size: .78rem;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-grid .day.today { border-color: var(--md-primary); background: var(--md-primary-container); box-shadow: none; }
.cal-grid .day.today .num { color: var(--md-on-primary-container); font-weight: 700; }
.cal-grid .day[data-g] { cursor: pointer; }
.cal-grid .day[data-g]:hover { border-color: var(--md-primary); box-shadow: none; transform: none; }
.cal-grid .day.sel-range { background: var(--md-primary-container); outline: 2px solid var(--md-primary); }
.cal-grid .day.other { opacity: .4; }

/* Giorno con evento: tutto il box prende il colore, numero incluso */
.day.has-ev { border-color: transparent; }
.day.has-ev .num { font-weight: 700; }
.day.has-ev .badge { background: rgba(255,255,255,.92); color: #1D1B20; }
.day.ev-Mamma { background: #EC407A; }
.day.ev-Mamma .num { color: #fff; }
.day.ev-Papà { background: #1E88E5; }
.day.ev-Papà .num { color: #fff; }
.day.ev-Altro { background: #8E24AA; }
.day.ev-Altro .num { color: #fff; }
.day.ev-Nonni { background: #43A047; }
.day.ev-Nonni .num { color: #fff; }
.day.ev-Zii { background: #FB8C00; }
.day.ev-Zii .num { color: #fff; }
.day.ev-Amici { background: #00ACC1; }
.day.ev-Amici .num { color: #fff; }
.day.ev-rosa-chi { background: #F8BBD0; }
.day.ev-rosa-chi .num { color: #4A0E2B; }
.day.ev-azzurro-chi { background: #BBDEFB; }
.day.ev-azzurro-chi .num { color: #0D2C54; }
.day.ev-lilla-chi { background: #E1BEE7; }
.day.ev-lilla-chi .num { color: #3B0A45; }
.day.ev-verde-chi { background: #C8E6C9; }
.day.ev-verde-chi .num { color: #0E3B1E; }
.day.ev-arancio-chi { background: #FFE0B2; }
.day.ev-arancio-chi .num { color: #4A2700; }
.day.ev-multi { background: linear-gradient(135deg, #F8BBD0 50%, #BBDEFB 50%); }
.day.ev-multi .num { color: #1D1B20; }
.day.has-ev.today { outline: 2px solid var(--md-primary); outline-offset: -2px; }

/* Badge colori figli (pastello light) */
.b-Mamma { background: #D81B60; }
.b-Papà { background: #1E88E5; }
.b-Altro { background: #8E24AA; }
.b-Nonni { background: #43A047; }
.b-Zii { background: #FB8C00; }
.b-Amici { background: #00ACC1; }
.b-rosa-chi { background: #F8BBD0; color: #4A0E2B; }
.b-azzurro-chi { background: #BBDEFB; color: #0D2C54; }
.b-lilla-chi { background: #E1BEE7; color: #3B0A45; }
.b-verde-chi { background: #C8E6C9; color: #0E3B1E; }
.b-arancio-chi { background: #FFE0B2; color: #4A2700; }
.chip {
  display: inline-block;
  border-radius: 8px;
  padding: 4px 12px;
  font-size: .78rem;
  font-weight: 500;
  color: var(--md-on-secondary-container);
}
.chip.b-rosa-chi, .chip.b-azzurro-chi, .chip.b-lilla-chi, .chip.b-verde-chi, .chip.b-arancio-chi { color: #1D1B20; }
.badge.ass { background: #E5E7EB; color: #374151; border: 1px solid #D1D5DB; font-size: .68rem; }
.badge.ev-ics { opacity: .55; font-weight: 500; }
.badge.sc { background: #FFD54F; color: #4E342E; font-size: .72rem; }

/* ===== BIG CALENDAR ===== */
.big-cal-card { padding: 16px; }
.big-cal-card .row button { min-width: 48px; min-height: 44px; font-size: 1rem; }
.cal-grid.big .day { min-height: 100px; }

/* ===== DATE PICKER ===== */
.dp-popup {
  display: none;
  position: fixed;
  z-index: 2000;
  background: var(--md-surface-container);
  border: 0;
  border-radius: var(--md-shape-m);
  box-shadow: var(--md-elev-3);
  padding: 12px;
  width: 300px;
  font-family: inherit;
}
.dp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.dp-btn { background: transparent; color: var(--md-primary); border-radius: 20px; padding: 6px 12px; font-weight: 500; }
.dp-btn:hover { background: var(--md-primary-container); box-shadow: none; }
.dp-title { font-weight: 500; }
.dp-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.dp-grid.month { grid-template-columns: repeat(4, 1fr); }
.dp-cell { border: 0; background: transparent; border-radius: 20px; padding: 8px 2px; font-size: .85rem; cursor: pointer; color: var(--md-on-surface); font-family: inherit; }
.dp-cell:hover { background: var(--md-primary-container); color: var(--md-on-primary-container); transform: none; }
.dp-cell.dow { color: var(--md-on-surface-variant); font-weight: 500; }
.dp-cell.other { color: var(--md-outline); }
.dp-cell.sel { background: var(--md-primary); color: var(--md-on-primary); border-radius: 20px; }
.dp-cell.dp-today { outline: 1px solid var(--md-primary); }

/* ===== EXPANSION PANELS ===== */
.ric-wrap { background: var(--md-surface); border-radius: var(--md-shape-m); margin: 12px 0; border: 1px solid var(--md-outline-variant); overflow: hidden; }
.ric-wrap summary { padding: 14px 16px; cursor: pointer; font-weight: 500; color: var(--md-primary); list-style: none; display: flex; gap: 8px; font-size: .92rem; }
.ric-wrap summary:hover { background: var(--md-surface-container); }
.ric-wrap summary::-webkit-details-marker { display: none; }
.ric-wrap summary::after { content: '▾'; margin-left: auto; color: var(--md-outline); }
.ric-wrap[open] summary::after { content: '▴'; }
.ric-wrap form { margin: 0; border-radius: 0; box-shadow: none; border: 0; border-top: 1px solid var(--md-outline-variant); }

/* ===== STATUS ===== */
.cambio-stato { font-style: normal; font-weight: 500; font-size: .76rem; border-radius: 8px; padding: 2px 10px; display: inline-block; }
.cambio-stato.proposta, .cambio-stato.nuovo { background: #FFF8E1; color: #5D4037; border: 1px solid #FFE0B2; }
.cambio-stato.accettata, .cambio-stato.eseguito { background: #E8F5E9; color: #1B5E20; border: 1px solid #C8E6C9; }
.cambio-stato.rifiutata, .cambio-stato.respinto { background: #FFEBEE; color: #B3261E; border: 1px solid #FFCDD2; }
.cambio-stato.letto { background: #E3F2FD; color: #0D47A1; border: 1px solid #BBDEFB; }
.st-mini { border: 1px solid var(--md-outline-variant); background: var(--md-surface); color: var(--md-primary); border-radius: 8px; padding: 2px 8px; font-size: .78rem; }
.st-mini.on { background: var(--md-primary); color: var(--md-on-primary); border-color: var(--md-primary); }

/* ===== FOOTER / MISC ===== */
footer { text-align: center; padding: 24px 16px; color: var(--md-on-surface-variant); font-size: .8rem; }
.thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; border: 1px solid var(--md-outline-variant); }
#lista-cambi li, #lista-msg li, #lista-msg-privati li { flex-wrap: wrap; }
.no-select { user-select: none; }
::selection { background: var(--md-primary-container); }
html { scroll-behavior: smooth; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--md-primary); outline-offset: 2px; }
.tab.active { animation: fadeUp .25s ease; }

@media print {
  header nav, form, .row button, #btn-reset, #file-import { display: none !important; }
  body { background: #fff; }
  li { box-shadow: none; border: 1px solid #ddd; }
  .dp-popup { display: none !important; }
}
@media (max-width: 600px) {
  header h1 { font-size: 1.1rem; }
  main { padding: 8px 12px 24px; }
  .cards { grid-template-columns: 1fr; }
  .cal-grid .day { min-height: 56px; }
  .cal-grid.big .day { min-height: 74px; }
}
body.scuro nav button { color: var(--md-on-surface-variant); }
body.scuro .modal { background: #1D1B20; color: #E6E0E9; }
body.scuro .modal textarea { background: #141218; border-color: #938F99; color: #E6E0E9; }
body.scuro button:hover { background: #4A4458; }
body.scuro .ghost-btn:hover { background: #2B2930 !important; }
body.scuro .day.has-ev .badge { background: rgba(0,0,0,.55); color: #fff; }
body.scuro input:focus, body.scuro select:focus { box-shadow: 0 0 0 3px rgba(208,188,255,.25); }
body.scuro .dp-cell.other { color: #938F99; }
body.scuro .ric-wrap summary { color: var(--md-primary); }

/* ===== TEMA CALDO FAMIGLIA (selezionabile; Chiaro resta il default) ===== */
body.tema-caldo {
  --md-primary: #0F766E;
  --md-on-primary: #FFFFFF;
  --md-primary-container: #B8E6DF;
  --md-on-primary-container: #00201C;
  --md-secondary: #7A5C3E;
  --md-on-secondary: #FFFFFF;
  --md-secondary-container: #F5E6D3;
  --md-on-secondary-container: #4A2E12;
  --md-tertiary: #9C4221;
  --md-tertiary-container: #FFDBCA;
  --md-surface: #FFFBF3;
  --md-on-surface: #2A1F14;
  --md-surface-variant: #F0E4D4;
  --md-on-surface-variant: #5F4B3B;
  --md-surface-low: #FFF6EA;
  --md-surface-container: #F9F0E2;
  --md-surface-high: #F1E6D3;
  --md-outline: #8A7A68;
  --md-outline-variant: #D8C9B4;
  font-family: 'Nunito', system-ui, sans-serif;
}
body.tema-caldo .modal, body.tema-caldo .dp-popup { font-family: 'Nunito', system-ui, sans-serif; }
body.tema-caldo button:hover { background: #0C5F59; }
body.tema-caldo input:focus, body.tema-caldo select:focus { box-shadow: 0 0 0 3px rgba(15,118,110,.18); }
body.tema-caldo nav button { color: #5F4B3B; }

/* ===== TEMA CALDO SCURO (espresso + ambra) ===== */
body.tema-caldoscuro {
  --md-primary: #E9A44C;
  --md-on-primary: #3A2200;
  --md-primary-container: #6B4210;
  --md-on-primary-container: #FFDCB8;
  --md-secondary: #D8BE96;
  --md-on-secondary: #3A2B12;
  --md-secondary-container: #4A3A28;
  --md-on-secondary-container: #F5E6D3;
  --md-tertiary: #E08A5C;
  --md-tertiary-container: #5C2E12;
  --md-surface: #1B1512;
  --md-on-surface: #F5EDE3;
  --md-surface-variant: #4A3D30;
  --md-on-surface-variant: #D8C6B2;
  --md-surface-low: #151110;
  --md-surface-container: #2A221C;
  --md-surface-high: #372C23;
  --md-outline: #A08D78;
  --md-outline-variant: #4A3D30;
  font-family: 'Nunito', system-ui, sans-serif;
  color-scheme: dark;
}
body.tema-caldoscuro .modal, body.tema-caldoscuro .dp-popup { font-family: 'Nunito', system-ui, sans-serif; }
body.tema-caldoscuro header { background: #1B1512; }
body.tema-caldoscuro nav button { color: var(--md-on-surface-variant); }
body.tema-caldoscuro .modal { background: #2A221C; color: #F5EDE3; }
body.tema-caldoscuro .modal textarea { background: #151110; border-color: #A08D78; color: #F5EDE3; }
body.tema-caldoscuro input, body.tema-caldoscuro select { background: #2A221C; border-color: #A08D78; color: #F5EDE3; }
body.tema-caldoscuro button:hover { background: #5C4A33; }
body.tema-caldoscuro .ghost-btn:hover { background: #372C23 !important; }
body.tema-caldoscuro .day.has-ev .badge { background: rgba(0,0,0,.55); color: #fff; }
body.tema-caldoscuro input:focus, body.tema-caldoscuro select:focus { box-shadow: 0 0 0 3px rgba(233,164,76,.25); }
body.tema-caldoscuro .dp-cell { color: #F5EDE3; }
body.tema-caldoscuro .dp-cell.other { color: #A08D78; }
body.tema-caldoscuro .dp-cell.dow { color: var(--md-on-surface-variant); }
body.tema-caldoscuro li.msg-nuovo { color: #3A2200; }
body.tema-caldoscuro li.msg-nuovo small { color: #6B4210; }
body.tema-caldoscuro .ric-wrap summary { color: var(--md-primary); }

@media (min-width: 1000px) {
  main { max-width: 1180px; padding: 16px 24px 40px; }
  .cards { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
  .cal-grid .day { min-height: 110px; }
  form { grid-template-columns: 1fr 1fr; align-items: end; }
  form > .row, form > button, form > h3, form > details { grid-column: 1 / -1; }
}
#ptr-pill { position: fixed; top: -60px; left: 50%; transform: translateX(-50%); background: var(--md-primary); color: var(--md-on-primary); padding: 10px 22px; border-radius: 20px; font-size: .85rem; font-weight: 500; z-index: 3000; transition: top .25s; box-shadow: var(--md-elev-2); }
#ptr-pill.show { top: 12px; }
