/* Fonte: https://fondazionedonmerici.it/; stili calcolati il 07/10/2026.
   Colori e font ripresi e adattati alla consultazione mobile; nessun logo.
   Token condivisi, font locali, testo da 14px e comandi da almeno 44px. */
@font-face{font-family:Poppins;src:url("assets/poppins-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url("assets/poppins-bold.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Oswald;src:url("assets/oswald-latin.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}
:root{
 --brand-blue:#0071bc;--brand-lime:#d0d970;--brand-coral:#f4524d;
 --brand-purple:#93278f;--brand-green:#009245;
 --ink:#072a6c;--text:#263653;--muted:#49596c;--surface:#fff;
 --surface-soft:#f5f7eb;--line:#dce3e0;--blue-soft:#e8f3fb;
 --green-ink:#006b32;--coral-ink:#331010;--focus:#5c1b65;--control-line:#87929b;
 --font-body:Poppins,Arial,sans-serif;--font-heading:Oswald,Arial,sans-serif;
 --radius-control:999px;--radius-panel:22px;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;
 --space-5:20px;--space-6:24px;--space-8:32px;
 font-family:var(--font-body);font-size:16px;color:var(--text);
 background:var(--brand-lime);color-scheme:light;
}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}
::selection{background:var(--brand-lime);color:var(--ink)}
.shell{width:calc(100% - 32px);max-width:780px;margin:24px auto;padding:var(--space-6) var(--space-6) 108px;background:var(--surface);border-radius:var(--space-8)}
header{margin-bottom:var(--space-5)}
.brand{font-family:var(--font-heading);font-size:2.125rem;font-weight:500;color:var(--brand-blue);line-height:1.2}
.brand-dot{color:var(--brand-coral)}
header p{font-size:.875rem;margin:6px 0 0;color:var(--muted);line-height:1.5}
header .private-note{font-size:.875rem;color:var(--green-ink);margin-top:var(--space-2)}
.tabs{display:flex;gap:var(--space-2);padding:0;background:var(--surface)}
button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.tabs button{flex:1;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:var(--radius-control);padding:12px 6px;background:var(--surface);font-family:var(--font-heading);font-weight:500;font-size:1.125rem;color:var(--brand-blue)}
.tabs button[data-view=domani]{color:var(--brand-purple)}
.tabs button[data-view=settimana]{color:var(--green-ink)}
.tabs button[aria-pressed=true]{color:var(--surface);background:var(--brand-blue);border-color:var(--brand-blue)}
.tabs button[data-view=domani][aria-pressed=true]{background:var(--brand-purple);border-color:var(--brand-purple)}
.tabs button[data-view=settimana][aria-pressed=true]{background:var(--green-ink);border-color:var(--green-ink)}
.date-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:var(--space-5) 0}
.date-controls label{font-size:.875rem}
.date-controls input{min-width:0;width:170px;min-height:44px;border:1px solid var(--control-line);border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--text);font-size:1rem;caret-color:var(--brand-blue)}
.text-button{min-height:44px;border:0;background:none;color:var(--brand-blue);text-decoration:underline;text-underline-offset:4px;padding:10px 0;font-size:.875rem}
.date-controls .text-button{margin-left:auto}
.meal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);overflow:hidden;margin:0 0 var(--space-5)}
.card-top{padding:var(--space-5) var(--space-6);background:var(--brand-blue);color:var(--surface)}
.meal-card h1,.meal-card h2{font-family:var(--font-heading);font-size:1.75rem;line-height:1.3;font-weight:500;margin:0;text-wrap:balance}
.meta{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-top:var(--space-3)}
.badge{font-size:.875rem;line-height:1.5;background:var(--brand-lime);border-radius:var(--radius-control);padding:4px 10px;color:var(--ink)}
.badge.accent{background:transparent;color:var(--surface);padding:4px 0}
.dishes{list-style:none;margin:0;padding:var(--space-3) var(--space-6) var(--space-6)}
.dishes li{padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
.dishes li:last-child{border:0;padding-bottom:0}
.hero .dishes li:first-child{font-size:1.375rem;font-weight:700;color:var(--ink);line-height:1.5;padding-top:var(--space-2)}
.empty{padding:var(--space-6);line-height:1.6}.empty p{margin:10px 0 0}
.week-title{font-family:var(--font-heading);font-size:1.75rem;font-weight:500;color:var(--brand-blue);margin:var(--space-2) 0 var(--space-2)}
.week-range{margin:0 0 var(--space-5);font-size:.875rem;color:var(--muted);line-height:1.6}
.week-grid{display:grid;gap:var(--space-4)}.week-grid .meal-card{margin:0}
.week-grid .card-top{background:var(--surface-soft);color:var(--ink);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}
.week-grid .meal-card h2{font-size:1.375rem}.week-grid .meta{gap:var(--space-2)}
.week-grid .badge{font-size:.875rem}.week-grid .badge.accent{color:var(--muted)}
.week-grid .dishes{padding:var(--space-2) var(--space-5) var(--space-5)}
.week-grid .dishes li{padding:8px 0;line-height:1.6}
.week-grid .today-card{border:2px solid var(--brand-blue)}
.week-grid .today-card .card-top{background:var(--blue-soft)}
details{border-top:1px solid var(--line);padding:var(--space-2) 0}
summary{min-height:44px;display:list-item;font-size:.9375rem;font-weight:700;cursor:pointer;padding:12px 0;color:var(--ink)}
summary::marker{color:var(--brand-blue)}
details p{font-size:.9375rem;line-height:1.7;color:var(--muted);margin:var(--space-3) 0}
details img{display:block;width:100%;height:auto;border-radius:12px;margin-top:var(--space-4)}
form{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end;margin:18px 0 var(--space-2)}
form label{display:flex;flex-direction:column;gap:7px;font-size:.875rem;flex:1;min-width:140px}
form input,form select{width:100%;border:1px solid var(--control-line);border-radius:10px;min-height:44px;background:var(--surface);color:var(--text);padding:9px;font-size:1rem;caret-color:var(--brand-blue)}
.primary{min-height:48px;background:var(--brand-blue);border:0;border-radius:var(--radius-control);padding:12px 20px;color:var(--surface);font-weight:700;font-size:.9375rem}
.fine{font-size:.875rem!important;line-height:1.7}
.notice{font-size:.9375rem;line-height:1.7;padding:var(--space-4);background:var(--surface-soft);color:var(--text);border:1px solid var(--line);border-radius:12px}
.settings{margin-top:var(--space-6)}
footer{font-size:.875rem;line-height:1.8;color:var(--muted);margin-top:var(--space-5)}
footer>p{margin:var(--space-4) 0}
.signature{font-style:normal;background:var(--brand-blue);color:var(--surface);border-radius:18px;padding:var(--space-5);margin:var(--space-5) 0;line-height:1.9;overflow-wrap:anywhere}
.signature strong{font-weight:700}.signature a{color:var(--surface);text-underline-offset:4px}
.disclaimer{padding-top:var(--space-2);margin-top:var(--space-6);color:var(--muted)}.disclaimer h2{font-family:var(--font-heading);font-size:1.25rem;color:var(--ink);font-weight:500;margin:0 0 var(--space-2)}
.disclaimer p{margin:0 0 var(--space-3);font-size:.875rem;line-height:1.8}
.install-floating{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));right:max(20px,env(safe-area-inset-right));display:flex;align-items:center;gap:10px;z-index:20;background:var(--brand-coral);color:var(--coral-ink);border:1px solid var(--surface);border-radius:var(--radius-control);min-height:52px;padding:14px 20px;box-shadow:0 6px 20px #072a6c26;font-size:.9375rem;font-weight:700;max-width:calc(100vw - 32px)}
.install-floating:disabled{opacity:.65;cursor:wait}
dialog{border:1px solid var(--line);border-radius:var(--radius-panel);padding:var(--space-6);max-width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;color:var(--text);background:var(--surface)}
dialog::backdrop{background:#072a6c80}.dialog-heading{display:flex;gap:var(--space-4);align-items:center;justify-content:space-between}
.dialog-heading h2{font-family:var(--font-heading);font-size:1.625rem;font-weight:500;margin:0;color:var(--brand-blue)}
.dialog-close{border:0;background:var(--blue-soft);border-radius:50%;min-width:44px;min-height:44px;font-size:1.6rem;color:var(--ink)}
dialog p,dialog li{line-height:1.7}dialog ol{padding-left:var(--space-6)}dialog li{margin:var(--space-3) 0}dialog a{color:var(--brand-blue)}dialog .primary{width:100%}dialog .fine{color:var(--muted)}
@media(min-width:720px){.shell{margin:32px auto;padding:32px 32px 108px}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid .meal-card:last-child{grid-column:1/-1}}
@media(max-width:420px){.shell{width:calc(100% - 20px);margin:10px auto;padding:20px 16px 108px;border-radius:24px}.card-top{padding:18px 20px}.dishes{padding:12px 20px 20px}.tabs{gap:6px}.tabs button{font-size:1.0625rem}.date-controls .text-button{margin-left:0}.signature a{display:inline-flex;align-items:center;min-height:44px}.signature{padding:16px}}
@media(hover:hover){.tabs button:not([aria-pressed=true]):hover{background:var(--surface-soft)}.primary:hover{background:var(--ink)}.install-floating:hover{filter:brightness(.96)}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s ease,color .15s ease}}
@media print{body{background:var(--surface)}.shell{width:100%;margin:0;padding:0}.install-floating,dialog{display:none!important}}
