:root{
  --bg:#fbf8f6;
  --surface:#fffdfb;
  --surface-2:#f8eff2;
  --surface-3:#f2f0f8;
  --text:#453f42;
  --muted:#82797d;
  --line:#eee3e6;
  --rose:#f3dde4;
  --rose-strong:#c98fa0;
  --lav:#e5def3;
  --lav-strong:#8d7fb0;
  --sage:#dfead9;
  --sage-strong:#78906f;
  --blue:#dcebf1;
  --blue-strong:#6d91a1;
  --peach:#f7e5d7;
  --shadow:0 14px 36px rgba(91,71,79,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;min-height:100dvh;padding-top:env(safe-area-inset-top);background:var(--bg);color:var(--text);font-family:Inter,ui-rounded,"SF Pro Rounded","Segoe UI",system-ui,sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
code{background:#f6eeee;border-radius:6px;padding:2px 5px}
.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100dvh}
.sidebar{position:sticky;top:0;height:100vh;padding:24px 17px;background:rgba(255,253,251,.94);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:10;backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:11px;padding:6px 8px 22px}
.brand-mark{width:43px;height:43px;border-radius:16px;background:linear-gradient(145deg,var(--rose),var(--lav));display:grid;place-items:center;font-size:22px}
.brand strong,.brand small{display:block}.brand strong{font-size:14px}.brand small{font-size:10px;color:var(--muted);margin-top:3px}
.sidebar nav{display:grid;gap:5px}
.nav-btn{border:0;background:transparent;color:var(--text);border-radius:13px;padding:11px 12px;display:flex;align-items:center;gap:10px;text-align:left;font-weight:700;font-size:13px}
.nav-btn:hover{background:#faf1f3}.nav-btn.active{background:linear-gradient(145deg,var(--rose),#f7ebee)}
.nav-btn span{font-size:17px}.sidebar-foot{margin-top:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;padding:10px}
.sync-dot{width:8px;height:8px;border-radius:50%;background:#c7bfc1}.sync-dot.online{background:#85a77c;box-shadow:0 0 0 4px #e8f0e4}
.main{min-width:0;padding:28px 31px 70px}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:18px}
.topbar h1{font-size:30px;line-height:1.1;margin:3px 0 0}.eyebrow{margin:0;color:var(--rose-strong);font-size:10px;text-transform:uppercase;letter-spacing:.14em;font-weight:900}
.top-actions,.button-row{display:flex;gap:9px;align-items:center}.compact-row{gap:6px;flex-wrap:wrap}
.primary-btn,.soft-btn,.icon-btn,.file-button{border:0;border-radius:12px;min-height:44px;padding:10px 14px;font-weight:800;font-size:12px;transition:.15s ease}
.primary-btn{background:var(--rose-strong);color:white}.primary-btn:hover{transform:translateY(-1px);filter:brightness(.98)}
.soft-btn,.file-button{background:var(--surface-2);color:var(--text)}.soft-btn:hover,.file-button:hover{background:#f3e6ea}
.icon-btn{width:44px;height:44px;padding:0;background:#faf2f4;font-size:18px;color:var(--text)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:21px;padding:20px;box-shadow:var(--shadow)}
.compact{padding:13px 16px}.view{display:none}.view.active{display:block}
.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:15px}.planner-toolbar{justify-content:space-between;gap:18px}.week-picker{display:flex;align-items:center;gap:11px;min-width:310px}.week-picker strong,.week-picker small{display:block}.week-picker small{font-size:11px;color:var(--muted);margin-top:3px}
.generator-controls{display:flex;align-items:end;justify-content:flex-end;gap:9px;flex-wrap:wrap}.generator-controls label,.budget-toolbar label,.toolbar label{display:grid;gap:5px;font-size:10px;color:var(--muted);font-weight:800}.check-label{display:flex!important;align-items:center!important;gap:7px!important;background:#faf4f5;padding:9px 11px;border-radius:11px;color:var(--text)!important}
input,select,textarea{border:1px solid var(--line);font-size:16px;background:#fff;border-radius:12px;padding:10px 11px;color:var(--text);outline:none;min-width:0}
input:focus,select:focus,textarea:focus{border-color:var(--rose-strong);box-shadow:0 0 0 3px rgba(201,143,160,.12)}
input[type=checkbox]{accent-color:var(--rose-strong)}
.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:14px;color:var(--muted);font-size:11px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.dot.notte{background:#e7b4c6}.dot.pomeriggio{background:#c6b8e0}.dot.mattina{background:#afd0dc}.dot.riposo{background:#b9d0b1}.legend-note{margin-left:auto}
.planner-note{font-size:12px;color:var(--muted);margin:0 2px 12px}.planner-note strong{color:var(--text)}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:17px}
.day-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);min-width:0}
.day-head{display:flex;align-items:center;justify-content:space-between;padding:13px 12px;background:linear-gradient(145deg,#fffaf9,#f7f1f7);border-bottom:1px solid var(--line)}
.day-head.today{background:linear-gradient(145deg,var(--rose),var(--lav))}.day-title{display:flex;align-items:baseline;gap:6px}.day-title strong{font-size:12px}.day-title span{font-size:20px;font-weight:900}
.shift-chip{font-size:8px;text-transform:uppercase;letter-spacing:.05em;padding:5px 7px;border-radius:99px;font-weight:900}.shift-chip.notte{background:#f3ccd9;color:#88465c}.shift-chip.pomeriggio{background:#ded5ef;color:#665494}.shift-chip.mattina{background:#d4e8f0;color:#4f7889}.shift-chip.riposo{background:#dae8d5;color:#597451}
.meal{position:relative;padding:11px 10px 10px;border-bottom:1px dashed #eee5e6;min-height:92px}.meal:last-child{border-bottom:0}.meal.compact-meal{min-height:73px;background:#fffcfa}.meal.cooked{background:#f1f7ee}.meal-label{font-size:8px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.08em;padding-right:54px}.meal-name{font-size:11px;font-weight:800;line-height:1.33;margin:5px 0 7px;padding-right:4px}.meal-meta{display:flex;flex-wrap:wrap;gap:4px}.mini-pill{font-size:7px;border-radius:99px;padding:3px 5px;background:#f6edef;color:#746a6e;white-space:nowrap}.change-meal,.cook-meal{position:absolute;top:7px;border:0;border-radius:8px;width:25px;height:25px;display:grid;place-items:center;background:#faf0f3;color:#8d6975;font-size:12px}.change-meal{right:7px}.cook-meal{right:36px;background:#eff5ec;color:#65805e}.cook-meal.done{background:#9eb594;color:white}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:17px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head h2{font-size:17px;margin:4px 0 0}.timeline{display:grid;gap:13px}.timeline-item{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start}.timeline-icon{width:38px;height:38px;border-radius:13px;background:var(--surface-2);display:grid;place-items:center}.timeline-item strong{font-size:13px}.timeline-item p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.balance-grid div{padding:15px;border-radius:16px;background:linear-gradient(145deg,#faf1f3,#f7f7fc)}.balance-grid strong{font-size:25px;display:block}.balance-grid span{font-size:11px;color:var(--muted)}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:17px}.stat{padding:17px}.stat span{font-size:11px;color:var(--muted);display:block}.stat strong{font-size:23px;margin-top:5px;display:block}
.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid label,.cloud-auth label{display:grid;gap:6px;font-size:11px;color:var(--muted);font-weight:800}.form-grid .full{grid-column:1/-1}.inline-search{max-width:220px}.grow{flex:1;max-width:none}
.segmented{display:flex;background:#f7f1f2;border-radius:12px;padding:4px;margin-bottom:12px}.segmented button{border:0;background:transparent;padding:8px 10px;border-radius:9px;flex:1;font-size:11px}.segmented button.active{background:white;box-shadow:0 3px 10px rgba(0,0,0,.05)}
.data-list{display:grid;gap:9px;max-height:560px;overflow:auto}.data-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border-radius:14px;background:#faf6f6;border:1px solid #f3eaea}.data-row strong{font-size:12px}.data-row small{color:var(--muted);display:block;margin-top:4px;font-size:10px}.row-actions{display:flex;align-items:center;gap:6px}.delete-btn,.tiny-btn{border:0;background:#fff0f0;color:#b96262;border-radius:9px;padding:7px 9px}.tiny-btn{background:#f4eff5;color:#77698b}.stock-warn{color:#b27345!important;font-weight:800}
.shifts-layout{grid-template-columns:.95fr 1.05fr}.pill{display:inline-flex;border-radius:99px;padding:6px 10px;background:var(--lav);font-size:10px;font-weight:900;color:#675b86}.muted{color:var(--muted);line-height:1.55}.small-note{color:var(--muted);font-size:10px;line-height:1.5}.photo-preview-wrap{border-radius:18px;overflow:hidden;background:#f4eeee;margin:14px 0;max-height:280px}.photo-preview-wrap img{display:block;width:100%;height:100%;object-fit:cover}.progress-box{padding:12px;border-radius:12px;background:#eef5f7;color:#567483;margin-top:12px;font-size:11px}.hidden{display:none!important}.ocr-details{margin-top:12px;color:var(--muted);font-size:11px}.ocr-details pre{white-space:pre-wrap;background:#faf6f6;padding:12px;border-radius:12px;max-height:180px;overflow:auto}
.shift-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekday{text-align:center;font-size:9px;text-transform:uppercase;color:var(--muted);font-weight:900;padding:5px}.calendar-day{min-height:78px;border:1px solid var(--line);border-radius:13px;padding:7px;background:#fff}.calendar-day.empty{background:transparent;border-style:dashed}.calendar-day .date{font-weight:900;font-size:12px}.shift-select{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-top:7px}.shift-select button{border:0;border-radius:7px;padding:4px 3px;font-size:8px;background:#f6f1f2}.shift-select button.active.notte{background:#f3ccd9;color:#8b415a}.shift-select button.active.pomeriggio{background:#ded5ef;color:#655298}.shift-select button.active.mattina{background:#d4e8f0;color:#4d778a}.shift-select button.active.riposo{background:#dae8d5;color:#5a7552}
.inline-form{display:flex;gap:8px;margin-bottom:13px}.inline-form input{flex:1}.shopping-summary{font-size:11px;color:var(--muted);padding:9px 11px;border-radius:12px;background:#f8f2f4;margin-bottom:12px}.shopping-list{display:grid;gap:12px}.shopping-category h3{font-size:12px;margin:8px 0}.shopping-item{display:flex;align-items:center;gap:9px;padding:10px 11px;border-radius:12px;background:#faf6f6}.shopping-item.checked{opacity:.55;text-decoration:line-through}.shopping-item label{flex:1;font-size:12px}.shopping-item small{color:var(--muted)}.receipt-review{margin-top:14px}.receipt-items{display:grid;gap:8px;margin:9px 0 13px}.receipt-line,.receipt-head-row{display:grid;grid-template-columns:1fr 95px 55px;gap:7px;align-items:center}.receipt-head-row{font-size:9px;color:var(--muted);font-weight:900;text-transform:uppercase;margin-top:11px}.receipt-line input[type=checkbox]{justify-self:center}
.recipe-toolbar{flex-wrap:wrap}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.recipe-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.recipe-cover{height:92px;display:grid;place-items:center;font-size:39px;background:linear-gradient(145deg,var(--sage),var(--peach))}.recipe-body{padding:15px;display:flex;flex-direction:column;flex:1}.recipe-body h3{margin:0 0 7px;font-size:15px}.recipe-body p{font-size:11px;color:var(--muted);line-height:1.45;min-height:47px}.tags{display:flex;gap:5px;flex-wrap:wrap}.tag{font-size:8px;padding:4px 7px;border-radius:99px;background:#f4ecee}.recipe-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;font-size:10px;color:var(--muted);gap:7px}.recipe-actions{display:flex;gap:5px}.recipe-footer button{border:0;background:var(--surface-2);border-radius:9px;padding:7px 8px;font-size:10px}.recipe-card.excluded{opacity:.62}.source-link{color:#806e93;text-decoration:none}.source-link:hover{text-decoration:underline}
.budget-toolbar{align-items:end}.budget-meter{height:17px;background:#f1e8ea;border-radius:99px;overflow:hidden}.budget-meter div{height:100%;width:0;background:linear-gradient(90deg,var(--sage-strong),var(--rose-strong));transition:.3s}.family-users{display:grid;gap:10px;margin:16px 0}.user-card{display:flex;align-items:center;gap:12px;padding:12px;background:#faf6f6;border-radius:14px}.avatar{width:39px;height:39px;border-radius:13px;background:var(--rose);display:grid;place-items:center;font-weight:900}.avatar.child{background:var(--lav)}.user-card strong,.user-card span{display:block}.user-card span{font-size:10px;color:var(--muted);margin-top:3px}.cloud-auth{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.share-panel{display:flex;align-items:center;justify-content:space-between;background:#f8f1f4;border-radius:14px;padding:12px;margin:13px 0}.share-panel strong,.share-panel span{display:block}.share-panel strong{font-size:20px;letter-spacing:.12em}.stack-actions{display:grid;gap:10px}.file-button{display:block;text-align:center}.file-button input{display:none}
dialog{border:0;border-radius:24px;padding:0;box-shadow:0 30px 90px rgba(64,44,50,.25);max-width:720px;width:calc(100% - 30px);background:var(--surface)}dialog::backdrop{background:rgba(71,58,62,.25);backdrop-filter:blur(4px)}.dialog-card{padding:25px;position:relative}.dialog-card.wide{max-width:760px}.dialog-close{position:absolute;right:15px;top:12px;border:0;background:#f8f1f2;border-radius:50%;width:34px;height:34px;font-size:20px}.meal-alternatives{display:grid;gap:9px;margin-top:15px;max-height:60vh;overflow:auto}.alternative-btn{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;text-align:left}.alternative-btn strong{display:block}.alternative-btn small{color:var(--muted);font-size:10px}.recipe-detail-ingredients{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:13px 0}.recipe-detail-ingredients div{background:#faf5f5;border-radius:11px;padding:9px;font-size:11px}.method-box{background:#f7f4f9;border-radius:14px;padding:13px;font-size:12px;line-height:1.55}.toast{position:fixed;right:24px;bottom:24px;background:#493f42;color:white;padding:13px 17px;border-radius:13px;box-shadow:var(--shadow);z-index:99;animation:toastin .2s ease;font-size:12px}@keyframes toastin{from{transform:translateY(15px);opacity:0}}
canvas{width:100%;height:auto;margin-top:16px}
@media(max-width:1240px){.week-grid{grid-template-columns:repeat(4,1fr)}.recipe-grid{grid-template-columns:repeat(2,1fr)}.planner-toolbar{align-items:flex-start;flex-direction:column}.generator-controls{justify-content:flex-start}}
@media(max-width:900px){.app-shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;padding:8px 6px;border-right:0;border-top:1px solid var(--line)}.brand,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto;gap:2px}.nav-btn{min-width:72px;display:grid;place-items:center;gap:2px;padding:7px 5px;font-size:8px}.nav-btn span{font-size:18px}.nav-btn.active{box-shadow:inset 0 3px 0 var(--rose-strong)}.main{padding:20px 13px 100px}.topbar{align-items:flex-start}.topbar h1{font-size:24px}.top-actions{display:none}.week-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.day-card{min-width:84vw;scroll-snap-align:start}.two-col,.stats-row,.form-grid.two{grid-template-columns:1fr}.recipe-grid{grid-template-columns:1fr}.legend-note{margin-left:0}.toolbar{flex-wrap:wrap}.shifts-layout{grid-template-columns:1fr}.cloud-auth{grid-template-columns:1fr}.recipe-detail-ingredients{grid-template-columns:1fr}.week-picker{min-width:0}.generator-controls{width:100%;justify-content:flex-start}.planner-toolbar{padding:14px}.stats-row{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.stats-row{grid-template-columns:1fr}.shift-calendar{gap:4px}.calendar-day{min-height:72px;padding:5px}.shift-select{grid-template-columns:1fr}.shift-select button{font-size:8px}.receipt-line,.receipt-head-row{grid-template-columns:1fr 78px 43px}.inline-form{flex-direction:column}.button-row{flex-wrap:wrap}}


.install-banner{position:fixed;left:258px;right:20px;top:calc(12px + env(safe-area-inset-top));z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #e7d9de;border-radius:17px;background:rgba(255,253,251,.97);box-shadow:var(--shadow);backdrop-filter:blur(18px)}
.install-banner strong,.install-banner span{display:block}.install-banner span{font-size:11px;color:var(--muted);margin-top:3px}.full-width{width:100%}.pill.installed{background:var(--sage);color:#587451}
.device-features{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.device-features>div{display:grid;gap:4px;padding:12px;border-radius:15px;background:#faf6f6;text-align:center}.device-features span{font-size:24px}.device-features strong{font-size:11px}.device-features small{font-size:9px;color:var(--muted);line-height:1.35}
.install-steps{display:grid;gap:10px;margin:17px 0}.install-step{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:start;padding:12px;border-radius:15px;background:#faf5f6}.install-step>span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:var(--rose);font-weight:900}.install-step strong{font-size:13px}.install-step p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.install-note{padding:13px;border-radius:15px;background:#f1f5ee;margin:13px 0}.install-note strong{font-size:12px}.install-note p{margin:5px 0 0;font-size:11px;color:var(--muted);line-height:1.45}
@supports (-webkit-touch-callout:none){input,select,textarea{font-size:16px}.sidebar{padding-bottom:max(8px,env(safe-area-inset-bottom))}.main{padding-bottom:calc(105px + env(safe-area-inset-bottom))}}


@media (min-width:901px) and (max-width:1180px){
  .app-shell{grid-template-columns:205px minmax(0,1fr)}
  .sidebar{padding-left:12px;padding-right:12px}
  .main{padding:24px 20px 70px}
  .week-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .two-col{grid-template-columns:1fr 1fr}
  .install-banner{left:225px}
}
@media (min-width:700px) and (max-width:900px){
  .week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .day-card{min-width:0}
  .two-col{grid-template-columns:1fr 1fr}
  .shifts-layout,.form-grid.two{grid-template-columns:1fr 1fr}
  .recipe-grid{grid-template-columns:repeat(2,1fr)}
  .main{padding-left:20px;padding-right:20px}
}
@media(max-width:900px){
  .install-banner{left:10px;right:10px;top:calc(8px + env(safe-area-inset-top));padding:10px 11px}
  .install-banner .button-row{flex-wrap:nowrap}
  .sidebar{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .sidebar nav{scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}
  .nav-btn{min-height:50px}
  .toast{left:14px;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));text-align:center}
  dialog{max-height:calc(100dvh - 24px);overflow:auto;margin:auto}
  .dialog-card{padding:22px 17px calc(22px + env(safe-area-inset-bottom))}
}
@media(max-width:699px){
  .device-features{grid-template-columns:1fr}
  .week-grid{display:flex}
  .day-card{min-width:min(88vw,390px)}
  .topbar{padding-top:6px}
  .generator-controls>*{flex:1 1 135px}
  .generator-controls button{min-width:135px}
}

.cloud-setup{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fbf7f8}.cloud-setup summary{cursor:pointer;font-weight:900;color:var(--text);margin-bottom:12px}.cloud-setup textarea{resize:vertical;min-height:74px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.cloud-setup[open] summary{margin-bottom:14px}#authStatus,#cloudConfigStatus{margin:8px 0 0}.cloud-auth{grid-template-columns:minmax(0,1fr) auto auto}@media(max-width:900px){.cloud-auth{grid-template-columns:1fr}.cloud-setup{padding:12px}}


/* Versione 4.1 — quantità modificabili nella lista della spesa */
.shopping-entry-form{display:grid;grid-template-columns:minmax(180px,1fr) 110px 145px auto;gap:9px;align-items:end;margin-bottom:6px}
.shopping-entry-form label{display:grid;gap:5px;font-size:10px;color:var(--muted);font-weight:800}
.shopping-entry-form input,.shopping-entry-form select{width:100%}
.shopping-help{margin:0 0 13px}
.shopping-item label{display:grid;gap:2px}
.shopping-item label>span{font-weight:800;color:var(--text)}
.shopping-item-actions{display:flex;align-items:center;gap:6px}
.dialog-actions{justify-content:flex-end;margin-top:16px}
@media(max-width:760px){
  .shopping-entry-form{grid-template-columns:1fr 100px 130px}
  .shopping-entry-form .shopping-product-field{grid-column:1/-1}
  .shopping-entry-form .primary-btn{grid-column:1/-1}
}
@media(max-width:430px){
  .shopping-entry-form{grid-template-columns:1fr 1fr}
  .shopping-entry-form .shopping-product-field,.shopping-entry-form .primary-btn{grid-column:1/-1}
  .shopping-item{align-items:flex-start}
  .shopping-item-actions{flex-direction:column-reverse;align-items:stretch}
  .shopping-item-actions .tiny-btn{padding:7px 9px}
}

/* Aggiornamento v5: gestione e importazione intelligente ricette */
.recipe-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.recipe-actions .danger-action,.danger-action{color:#9b4858!important;background:#faecef!important}
.recipe-detail-actions{margin-top:16px;justify-content:flex-end}
.method-steps{margin:0;padding-left:20px;display:grid;gap:8px}
.method-steps li{padding-left:2px}
.recipe-link-analyzer{padding:13px;border:1px solid var(--line);border-radius:16px;background:#fbf7f8;margin:12px 0}
.url-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end;margin-top:6px}
.url-action-row input{min-width:0}
.recipe-paste-fallback{margin:12px 0;padding:12px;border:1px dashed var(--line);border-radius:15px;background:#fffdfc}
.recipe-paste-fallback summary{cursor:pointer;font-weight:800;font-size:11px;margin-bottom:10px}
.recipe-paste-fallback textarea{margin-top:6px}
.recipe-review-panel{display:flex;flex-direction:column;gap:4px;margin:13px 0;padding:12px 13px;border-radius:14px;background:#eef5eb;border:1px solid #dce9d7}
.recipe-review-panel strong{font-size:12px;color:#55704e}
.recipe-review-panel span{font-size:10px;color:var(--muted);line-height:1.45}
.analysis-error{color:#a24a5b!important}
.dialog-actions{justify-content:flex-end;margin-top:14px}
@media(max-width:699px){
  .url-action-row{grid-template-columns:1fr}
  .url-action-row button{width:100%}
  .recipe-footer{align-items:flex-start;flex-direction:column}
  .recipe-actions{justify-content:flex-start}
}


/* Versione 6 — oggi, avanzi, movimenti, budget, cestino */
.today-hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;background:linear-gradient(145deg,#fffaf8,#f4f0f8)}
.today-hero h2{margin:5px 0;font-size:25px}.today-budget{text-align:right}.today-budget span,.shopping-v6-summary span{display:block;font-size:10px;color:var(--muted)}.today-budget strong{font-size:22px}
.today-layout{grid-template-columns:1fr 1fr}.today-meals{display:grid;gap:9px}.today-meal{padding:12px;border:1px solid var(--line);border-radius:15px;background:#faf7f7}.today-meal-head{display:flex;justify-content:space-between;gap:8px}.today-meal strong{font-size:12px}.today-meal p{font-size:11px;margin:6px 0;color:var(--muted)}
.reminder-form{margin-top:15px}.date-input-wrap{display:flex;width:100%;min-width:0;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 11px}.date-input-wrap input{display:block;width:100%;min-width:0;border:0;background:transparent;padding:0;font-size:16px;box-shadow:none}
.real-week-panel{margin-bottom:14px}.real-week-form{display:grid;grid-template-columns:140px 170px 150px 110px minmax(160px,1fr) auto;gap:9px;align-items:end}.real-week-form label{display:grid;gap:5px;font-size:10px;color:var(--muted);font-weight:800}.real-week-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.real-week-chip{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;background:var(--peach);font-size:10px}.real-week-chip button{border:0;background:transparent;color:#985b54}
.v6-details{margin-top:14px;padding:12px;border:1px dashed var(--line);border-radius:15px;background:#fffdfc}.v6-details summary{font-size:11px;font-weight:900;cursor:pointer}.v6-details[open] summary{margin-bottom:12px}
.barcode-draft{margin-top:12px;padding:12px;border-radius:14px;background:#eef5eb}.barcode-draft-grid{display:grid;grid-template-columns:1fr 100px 110px;gap:8px}.barcode-draft-actions{margin-top:9px;display:flex;gap:8px}
.movement-row{font-size:10px}.movement-qty.plus{color:#557b50}.movement-qty.minus{color:#a45762}.compact-list{max-height:280px}
.inventory-movement-actions{display:flex;gap:4px;flex-wrap:wrap}.inventory-movement-actions button{font-size:9px;padding:6px 7px}
.shopping-v6-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.shopping-v6-summary>div{padding:10px;border-radius:13px;background:#faf5f6}.shopping-v6-summary strong{display:block;font-size:13px;margin-top:3px}.shopping-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.priority-high{border-left:4px solid #cf7d8f}.priority-low{opacity:.78}
.budget-v6-row{margin-top:17px}.price-row{display:grid;grid-template-columns:1fr auto;gap:8px}.price-trend-up{color:#a75561}.price-trend-down{color:#557b50}
.portion-table{width:100%;border-collapse:collapse;margin:12px 0}.portion-table td,.portion-table th{padding:7px;border-bottom:1px solid var(--line);text-align:left;font-size:10px}.portion-table th{color:var(--muted)}
.lock-meal{position:absolute;top:7px;right:65px;border:0;border-radius:8px;width:25px;height:25px;background:#f5f0e8;color:#8b744c}.lock-meal.locked{background:#d9caaa;color:#5d4b2c}.meal-label{padding-right:83px}
.leftover-badge{background:#e8f2df;color:#56704f}.overdue{border-color:#e1a6ab!important;background:#fff4f4!important}
.trash-card{grid-column:1/-1}.backup-row,.trash-row{display:flex;align-items:center;justify-content:space-between;gap:9px}
.notification-off{opacity:.7}.today-action-done{text-decoration:line-through;opacity:.65}
@media(max-width:1100px){.real-week-form{grid-template-columns:repeat(3,1fr)}.real-week-form .grow{grid-column:1/3}.real-week-form button{grid-column:3}.today-layout{grid-template-columns:1fr}.shopping-v6-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:699px){.today-hero{align-items:flex-start}.today-budget{font-size:10px}.real-week-form{grid-template-columns:1fr 1fr}.real-week-form .grow,.real-week-form button{grid-column:1/-1}.shopping-v6-summary{grid-template-columns:1fr}.barcode-draft-grid{grid-template-columns:1fr}.today-stats{grid-template-columns:1fr 1fr}.lock-meal{right:65px}.meal-label{padding-right:83px}}

#budget .stats-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.today-action-done strong,.today-action-done p{text-decoration:line-through}

/* V7 — scelta intelligente e menù Celeste */
.celeste-menu-line{margin-top:8px;padding:7px 8px;border-radius:10px;background:#f7f0fb;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;line-height:1.3}
.celeste-menu-line button{border:0;border-radius:9px;background:#e8dcf2;color:#665274;padding:6px 8px;font-size:8px;font-weight:900;white-space:nowrap}
.celeste-custom-box{margin-top:16px;padding:14px;border-radius:15px;background:#fbf5f9}.selected-alt{border-color:#c899aa;background:#fff7fa}.celeste-settings-card{border-color:#e4d7ed}
@media(max-width:699px){.celeste-menu-line{align-items:flex-start;flex-direction:column}.celeste-menu-line button{width:100%}}


/* V7.2 — colazioni e merende personali + persistenza accesso */
.personal-meal{padding-top:12px}.personal-meal .meal-label{padding-right:0;margin-bottom:7px}.personal-meal-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px dashed #eee5e6}.personal-meal-row:first-of-type{border-top:0}.personal-meal-row>div{min-width:0;display:grid;gap:1px}.personal-meal-row .personal-name{font-size:8px;font-weight:900;color:var(--rose-strong);text-transform:uppercase;letter-spacing:.07em}.personal-meal-row strong{font-size:10px;line-height:1.25}.personal-meal-row small{font-size:8px;color:var(--muted)}.personal-meal-row button{border:0;border-radius:9px;background:#f3e8ec;color:#795b66;padding:6px 8px;font-size:8px;font-weight:900;white-space:nowrap}.personal-meal-panel{margin-top:14px}.personal-meal-panel.hidden{display:none}.alternative-btn.selected-alt{border-color:var(--rose-strong);background:#faf0f4}.form-grid.three{grid-template-columns:2fr 1fr 1fr}
@media(max-width:699px){.form-grid.three{grid-template-columns:1fr 1fr}.form-grid.three label:first-child{grid-column:1/-1}.personal-meal-row{align-items:flex-start}.personal-meal-row button{flex:0 0 auto}}


/* V7.3 — accesso con email e password */
.password-auth{display:block}.auth-panel{display:grid;gap:12px}.auth-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.auth-grid label,.password-setup label{display:grid;gap:5px;font-size:10px;color:var(--muted);font-weight:800}.auth-actions{margin-top:2px}.account-connected{display:flex;align-items:center;gap:11px;padding:12px;border-radius:15px;background:#eef5eb;border:1px solid #d9e7d4}.account-connected .account-check{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#d8ead1;color:#496847;font-size:20px;font-weight:900}.account-connected div{display:grid;gap:2px}.account-connected span{font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.account-connected strong{font-size:12px;overflow-wrap:anywhere}.password-setup{padding:12px;border:1px dashed var(--line);border-radius:15px;background:#fffdfc}.password-setup summary{cursor:pointer;font-weight:900;font-size:11px}.password-setup[open] summary{margin-bottom:12px}.password-setup .form-grid{grid-template-columns:1fr 1fr auto;align-items:end}.password-setup .primary-btn{min-height:43px}.password-auth .hidden{display:none!important}
@media(max-width:699px){.auth-grid,.password-setup .form-grid{grid-template-columns:1fr}.auth-actions>*{flex:1 1 100%}.password-setup .primary-btn{width:100%}}

/* V7.4 - PDF lista spesa e condivisione WhatsApp */
.shopping-pdf-preview{display:grid;gap:12px;max-height:48vh;overflow:auto;margin:14px 0;padding-right:4px}.pdf-preview-category{padding:12px;border:1px solid var(--line);border-radius:15px;background:#fffdfc}.pdf-preview-category h3{margin:0 0 8px;font-size:12px}.pdf-preview-item{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-top:1px dashed #eee5e6}.pdf-preview-item:first-of-type{border-top:0}.pdf-preview-item input{margin-top:3px}.pdf-preview-item span{display:grid;gap:2px}.pdf-preview-item strong{font-size:11px}.pdf-preview-item small{font-size:9px;color:var(--muted)}.pdf-select-actions{margin-top:10px}.pdf-detail-toggle{margin-top:8px}.shopping-pdf-preview:empty::before{content:'Nessun prodotto disponibile';color:var(--muted);font-size:11px}
@media(max-width:699px){#shoppingPdfDialog .dialog-actions>*{flex:1 1 100%}.shopping-pdf-preview{max-height:43vh}}


/* V7.5 - ricette manuali e scelta immagini dal rullino */
.recipe-toolbar{flex-wrap:wrap}.manual-recipe-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border-radius:16px;background:#eef5eb;border:1px solid #d9e7d4;margin:12px 0}.manual-recipe-intro div{display:grid;gap:3px}.manual-recipe-intro strong{font-size:12px}.manual-recipe-intro p{margin:0;font-size:10px;color:var(--muted);line-height:1.45}.ingredient-builder-block{display:grid;gap:6px}.field-title{font-size:10px;color:var(--muted);font-weight:800}.ingredient-builder{display:grid;grid-template-columns:minmax(150px,1fr) 90px 125px auto;gap:8px;align-items:end;padding:11px;border:1px dashed var(--line);border-radius:14px;background:#fffdfc}.field-help{display:block;margin-top:5px;color:var(--muted);font-size:9px;line-height:1.4}.photo-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}.photo-source-grid .file-button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px}.selected-photo{display:flex;align-items:center;gap:10px;margin:10px 0;padding:9px;border-radius:13px;background:#f7f1f4}.selected-photo img{width:62px;height:62px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.selected-photo span{font-size:10px;overflow-wrap:anywhere}.selected-photo.hidden{display:none}
@media(max-width:699px){.manual-recipe-intro{align-items:stretch;flex-direction:column}.manual-recipe-intro button{width:100%}.ingredient-builder{grid-template-columns:1fr 1fr}.ingredient-builder input:first-child{grid-column:1/-1}.ingredient-builder button{grid-column:1/-1}.photo-source-grid{grid-template-columns:1fr}.recipe-toolbar .primary-btn,.recipe-toolbar .soft-btn{flex:1 1 100%}}

/* V7.6 — scelta completa dal ricettario per pranzo e cena */
.meal-picker-tools{display:grid;grid-template-columns:minmax(0,2fr) minmax(160px,1fr);gap:10px;align-items:end;margin-top:14px}.meal-picker-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}.recipe-choice-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.personal-recipe-badge,.app-recipe-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:8px;font-weight:900;white-space:nowrap}.personal-recipe-badge{background:#f3e4ec;color:#7d5264}.app-recipe-badge{background:#eef1eb;color:#63705b}.current-meal-note{display:inline-block;margin-top:7px;font-size:8px;font-weight:900;color:var(--rose-strong);text-transform:uppercase;letter-spacing:.05em}.empty-recipe-search{padding:16px;text-align:center;background:#faf7f7;border-radius:14px}.meal-alternatives .alternative-btn{width:100%;cursor:pointer}.meal-alternatives .alternative-btn:hover{border-color:var(--rose-strong)}
@media(max-width:620px){.meal-picker-tools{grid-template-columns:1fr}.meal-picker-actions{align-items:stretch}.meal-picker-actions .soft-btn{width:100%}}

/* V7.8 — ricette PDF realmente visibili e selezionabili */
.pdf-recipe-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:8px;font-weight:900;white-space:nowrap;background:#e9eef8;color:#52698d}
.recipe-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.recipe-card-heading h3{flex:1}.recipe-count-status{flex:1 1 100%;text-align:right;padding-right:4px}.manual-choice-warning{display:block;margin-top:7px;font-size:8px;font-weight:800;color:#93623f}.empty-recipe-library{grid-column:1/-1;padding:22px;text-align:center}
@media(max-width:699px){.recipe-count-status{text-align:left}.recipe-toolbar select{flex:1 1 calc(50% - 6px);min-width:0}}

/* V7.9 — filtri completi e recupero ricette senza perdita dati */
.recipe-toolbar{align-items:center;gap:10px;flex-wrap:wrap}
.recipe-toolbar select{min-width:155px}
.recipe-toolbar .recipe-count-status{flex-basis:100%;padding-top:2px}
.recipe-safety-note{margin:10px 0 16px;padding:12px 14px;font-size:.92rem;line-height:1.45}
.recovery-btn{border-style:dashed}
.recovered-recipe-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700;background:#eef6e8;color:#557049;white-space:nowrap}
@media (max-width:720px){.recipe-toolbar>*{width:100%}.recipe-toolbar .grow{min-width:0}.recipe-toolbar button{min-height:44px}.recipe-safety-note{font-size:.88rem}}

/* V7.11 · immagine dinamica del menù settimanale */
.menu-image-btn{white-space:nowrap}
.menu-image-dialog-card{width:min(94vw,920px);max-width:920px}
.menu-image-preview-wrap{position:relative;display:grid;place-items:center;margin-top:1rem;padding:14px;border:1px solid var(--border,#ddd);border-radius:20px;background:#f8f4ed;min-height:280px}
.menu-image-preview-wrap img{display:block;width:100%;height:auto;max-height:68vh;object-fit:contain;border-radius:14px;background:#fff}
.menu-image-loading{position:absolute;inset:0;display:grid;place-items:center;background:rgba(250,247,241,.88);font-weight:700;border-radius:20px}
@media(max-width:640px){.menu-image-dialog-card{width:96vw;padding:18px}.menu-image-preview-wrap{padding:6px}.menu-image-dialog-card .dialog-actions{display:grid;grid-template-columns:1fr}.menu-image-dialog-card .dialog-actions button{width:100%}}


/* V7.12 — giorni più leggibili, schiscetta Sara e popup rapido */
.day-card{border-radius:24px;background:linear-gradient(180deg,#fffdfc 0%,#fbf8f5 100%);border-color:#e7dcda}
.day-head{padding:15px 14px 13px;background:#f7efed;border-bottom:1px solid #eadfdd;display:flex;align-items:center;justify-content:space-between;gap:10px}
.day-head.today{background:#eaf2e5}
.day-title{display:flex;align-items:center;gap:10px;min-width:0}.day-title .day-number{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:13px;background:#fff;color:#76555f;font-size:18px;font-weight:900;box-shadow:0 4px 14px rgba(86,63,70,.08)}
.day-title>div{display:grid;gap:1px;min-width:0}.day-title strong{font-size:13px;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-title small{font-size:9px;color:var(--muted);text-transform:capitalize}
.day-meals{padding:8px;display:grid;gap:8px}.meal{border:1px solid #ece2e0!important;border-radius:16px;padding:11px!important;margin:0;background:#fff;min-height:0!important}.meal:last-child{border-bottom:1px solid #ece2e0}.meal-lunch{border-left:4px solid #d6b59e!important}.meal-dinner{border-left:4px solid #9eb594!important}.meal-breakfast{border-left:4px solid #dfcda6!important}.personal-meal{border-left:4px solid #cbb8d8!important}
.meal-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.meal-label{padding:0!important;font-size:9px;color:#806d72}.meal-actions{display:flex;align-items:center;gap:5px}.change-meal,.cook-meal,.lock-meal{position:static!important;width:28px;height:28px;border-radius:9px}
.meal-open-detail{width:100%;border:0;background:#fbf7f5;border-radius:13px;padding:9px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;color:inherit;cursor:pointer}.meal-open-detail:hover{background:#f6eeeb}.meal-open-detail.disabled{cursor:default}.meal-emoji{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#fff;font-size:18px}.meal-title-wrap{display:grid;gap:2px;min-width:0}.meal-title-wrap strong{font-size:11px;line-height:1.3}.meal-title-wrap small{font-size:8px;color:var(--muted)}.meal-chevron{font-size:22px;color:#aa949a}.meal-meta{margin-top:8px}.meal-people{margin-top:7px;font-size:8px;color:#71656a;font-weight:800}.meal-portions{margin-top:3px;font-size:8px}
.sara-lunch-card{margin:0;border:1px solid #d9e6d2;border-radius:17px;background:#f3f8ef;padding:11px;display:grid;gap:9px}.sara-lunch-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.sara-lunch-head>div{display:grid;gap:2px}.sara-kicker{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#6c8462;font-weight:900}.sara-lunch-head strong{font-size:12px}.sara-lunch-head button{border:0;border-radius:9px;background:#dcebd5;color:#536d4d;padding:7px 9px;font-size:8px;font-weight:900}.sara-lunch-name{border:0;width:100%;background:#fff;border-radius:13px;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;text-align:left;color:inherit}.sara-lunch-name>span{font-size:20px}.sara-lunch-name strong{font-size:11px;line-height:1.3}.sara-lunch-name small{grid-column:2;font-size:8px;color:var(--muted)}.sara-lunch-foot{display:flex;justify-content:space-between;gap:8px;font-size:8px;color:#62745d;font-weight:800}
.quick-recipe-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.quick-recipe-grid section{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fffdfc}.quick-recipe-grid h3{font-size:12px;margin:0 0 8px}.adaptation-list{display:grid;gap:7px;margin:0;padding-left:18px;font-size:11px;line-height:1.45}.quick-ingredients{padding:12px 14px;border-radius:14px;background:#f3f7ef}.quick-ingredients strong{font-size:10px;text-transform:uppercase;letter-spacing:.07em}.quick-ingredients p{margin:5px 0 0;font-size:11px;line-height:1.45}
@media(max-width:699px){.day-meals{padding:9px}.quick-recipe-grid{grid-template-columns:1fr}.sara-lunch-card{padding:12px}.meal-open-detail{padding:10px}.day-title .day-number{width:42px;height:42px;flex-basis:42px}}


/* V7.13 — recupero sicuro della dispensa */
.inventory-recovery-btn{border-color:rgba(46,125,91,.35);background:rgba(228,245,236,.72)}
.recovery-list{display:grid;gap:10px;margin-top:14px}
.recovery-row{align-items:flex-start;gap:12px}
.recovery-row>div:first-child{min-width:0;display:grid;gap:4px}
.recovery-row small{display:block;line-height:1.35}
.recovery-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.inventory-recovery-note{margin-top:14px}
.inventory-recovery-note p{margin:.35rem 0 0}
@media(max-width:600px){.recovery-row{display:grid}.recovery-actions{justify-content:flex-start}.recovery-actions .tiny-btn{flex:1}}

/* V7.13.1: ripiego compatibile per iOS quando showModal non è disponibile o viene bloccato. */
dialog.dialog-fallback-open[open]{display:block;position:fixed;inset:5vh auto auto 50%;transform:translateX(-50%);z-index:1000;max-height:90vh;overflow:auto}


/* V7.14 · budget e scontrini */
.stat-action{appearance:none;width:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.stat-action:hover,.stat-action:focus-visible{transform:translateY(-2px);border-color:var(--rose-strong);background:#fffafa;outline:3px solid rgba(201,143,160,.13)}
.stat-action small{display:block;margin-top:7px;color:var(--rose-strong);font-size:9px;font-weight:800}
.budget-entry-row,.budget-archive-row{margin-bottom:17px}.budget-suggestions-card{margin-top:17px}.expense-entry-card .pill{white-space:nowrap}
.expense-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.expense-detail-grid>div{padding:12px;border-radius:14px;background:#faf5f5}.expense-detail-grid span,.expense-detail-grid strong{display:block}.expense-detail-grid span{font-size:10px;color:var(--muted);margin-bottom:5px}.expense-detail-grid strong{font-size:14px}
.expense-receipt-preview{display:block;width:100%;max-height:52vh;object-fit:contain;background:#f7f2f3;border:1px solid var(--line);border-radius:16px;margin:14px 0}
.expense-list-row .row-actions{flex-wrap:wrap;justify-content:flex-end}.expense-form-status{margin-top:12px}
#expenseForm .button-row{align-items:stretch}#expenseForm .button-row button{flex:1}
@media(max-width:520px){.budget-stats{grid-template-columns:1fr 1fr}.stat strong{font-size:21px}.expense-detail-grid{grid-template-columns:1fr}.expense-list-row{grid-template-columns:1fr}.expense-list-row .row-actions{justify-content:space-between}.expense-entry-card .section-head{align-items:flex-start}.expense-entry-card .pill{font-size:8px}}


/* V7.15 · lista della spesa intelligente e PDF grafico */
.shopping-smart-banner{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 14px;margin-bottom:14px;border:1px solid #e3eadf;border-radius:17px;background:linear-gradient(135deg,#f5f8f1,#fff8f5)}
.shopping-smart-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--sage);font-size:20px}.shopping-smart-banner strong,.shopping-smart-banner span{display:block}.shopping-smart-banner strong{font-size:13px}.shopping-smart-banner span{font-size:9px;color:var(--muted);margin-top:3px;line-height:1.4}
.smart-category-preview,.smart-category-hint{padding:8px 10px;border-radius:999px;background:#f4eff1;color:var(--muted);font-size:9px;font-weight:900;white-space:nowrap}.smart-category-hint{border-radius:12px;white-space:normal;text-align:center}
.shopping-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px}.shopping-summary strong{font-size:12px}.shopping-summary span{font-size:9px;color:var(--muted);text-align:right}
.shopping-category-filters{display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}.shopping-category-filters::-webkit-scrollbar{display:none}.shopping-filter-chip{flex:0 0 auto;display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 9px;color:var(--text);font-size:9px;font-weight:800}.shopping-filter-chip b{display:grid;place-items:center;min-width:19px;height:19px;border-radius:999px;background:rgba(255,255,255,.75);font-size:8px}.shopping-filter-chip.active{border-color:var(--rose-strong);box-shadow:0 0 0 3px rgba(201,143,160,.11)}
.shopping-list{gap:14px}.shopping-category{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}.shopping-category-head{display:flex;align-items:center;gap:10px;padding:11px 13px;background:#faf7f6}.shopping-category-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.72);font-size:17px}.shopping-category-head h3{font-size:12px;margin:0}.shopping-category-head span{display:block;font-size:8px;color:var(--muted);margin-top:2px}.shopping-category-items{display:grid;padding:4px 10px 8px}.shopping-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 4px;border-radius:0;background:transparent;border-bottom:1px dashed #eee6e7}.shopping-item:last-child{border-bottom:0}.shopping-check{width:21px;height:21px;margin:0}.shopping-item label{min-width:0}.shopping-item-title{display:flex;align-items:baseline;justify-content:space-between;gap:9px}.shopping-item-title>span{font-size:12px;font-weight:850}.shopping-item-title>strong{flex:0 0 auto;padding:4px 7px;border-radius:8px;background:#f7f1f2;font-size:9px}.shopping-item small{font-size:8px;line-height:1.4}.shopping-item-actions{flex-direction:row}.shopping-item-actions .tiny-btn,.shopping-item-actions .delete-btn{padding:7px 8px}.shopping-empty{display:grid;place-items:center;text-align:center;padding:36px 12px;border:1px dashed var(--line);border-radius:18px}.shopping-empty>span{font-size:28px}.shopping-empty strong{font-size:13px;margin-top:8px}.shopping-empty p{font-size:10px;color:var(--muted);margin:5px 0 0}
.inventory-title-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.category-dot{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:7px;font-weight:900}
.category-fruit{background:#f7ded4!important}.category-veg{background:#e0edd9!important}.category-meat{background:#f3d9d9!important}.category-fish{background:#dcecf2!important}.category-deli{background:#f0dfd8!important}.category-dairy{background:#f6edc9!important}.category-legume{background:#e9e0d2!important}.category-grain{background:#f2e5ca!important}.category-condiments{background:#e4ead8!important}.category-drinks{background:#deedf3!important}.category-frozen{background:#e0eafa!important}.category-home{background:#e9e1ef!important}.category-pantry{background:#eee5df!important}.category-other,.category-all{background:#eceaea!important}
.pdf-preview-category h3{display:flex;align-items:center;gap:7px}.pdf-preview-category h3 span{font-size:16px}.pdf-preview-category{border-left:5px solid rgba(201,143,160,.35)}
@media(max-width:699px){.shopping-smart-banner{grid-template-columns:38px 1fr}.smart-category-preview{grid-column:1/-1;text-align:center}.shopping-summary{align-items:flex-start;flex-direction:column}.shopping-summary span{text-align:left}.shopping-item{grid-template-columns:auto minmax(0,1fr)}.shopping-item-actions{grid-column:2;justify-content:flex-end}.shopping-category-head{position:static;top:auto;z-index:auto}.inventory-smart-row{grid-template-columns:1fr}.inventory-smart-row .row-actions{justify-content:space-between}}

/* V7.16 · Cambi di programma per persona e nuovo Ricettario */
.real-week-form{grid-template-columns:132px 156px 150px 140px 112px minmax(190px,1fr) auto}
.real-week-chip{max-width:100%;background:linear-gradient(145deg,#f8eadf,#f6eef5);border:1px solid #efe0e2;box-shadow:0 5px 16px rgba(91,71,79,.05)}
.real-week-chip>span{line-height:1.35}.real-week-chip button{margin-left:auto;font-size:16px;min-width:24px}

.recipe-safety-note{display:flex;align-items:center;gap:14px;margin-bottom:15px;background:linear-gradient(145deg,#fffaf8,#f4f6ef)}
.recipe-safety-note p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.recipe-library-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,var(--rose),var(--sage));font-size:24px}
.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}
.recipe-card{position:relative;border-radius:24px;box-shadow:0 12px 32px rgba(91,71,79,.07);transition:transform .18s ease,box-shadow .18s ease;border-color:#eadfe2}
.recipe-card:hover{transform:translateY(-2px);box-shadow:0 17px 38px rgba(91,71,79,.11)}
.recipe-card-open{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}
.recipe-card .recipe-cover{position:relative;height:130px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#e9f0e5,#f8e5d9)}
.recipe-card .recipe-cover::before,.recipe-detail-hero::before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-45px;top:-75px;background:rgba(255,255,255,.42)}
.recipe-card .recipe-cover::after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;left:-32px;bottom:-58px;background:rgba(255,255,255,.33)}
.recipe-cover-emoji{position:relative;z-index:1;font-size:57px;filter:drop-shadow(0 8px 11px rgba(73,60,64,.12))}
.recipe-origin-badge,.recipe-excluded-badge{position:absolute;z-index:2;top:12px;left:12px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.86);backdrop-filter:blur(7px);font-size:9px;font-weight:900;color:#675e62;border:1px solid rgba(255,255,255,.7)}
.recipe-excluded-badge{left:auto;right:12px;background:#fff0f0;color:#a05b5b}
.recipe-card .recipe-body{padding:17px 17px 15px;min-height:255px}
.recipe-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--rose-strong);margin-bottom:6px}
.recipe-card .recipe-body h3{font-size:17px;line-height:1.27;margin:0 0 10px;color:var(--text)}
.recipe-metrics{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.recipe-metrics span{font-size:9px;color:#6e6569;background:#f8f3f3;padding:5px 7px;border-radius:999px;font-weight:750}
.recipe-card .recipe-description{min-height:0;margin:0 0 12px;font-size:11px;line-height:1.5;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.recipe-ingredient-preview{display:grid;gap:4px;padding:10px 11px;border-radius:14px;background:#faf6f1;margin-bottom:12px}
.recipe-ingredient-preview strong{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#8c7770}.recipe-ingredient-preview span{font-size:10px;line-height:1.45;color:#62595d}
.recipe-card .tags{margin-top:auto}.recipe-card .tag{font-size:8px;background:#f4ecef;color:#75696d}
.recipe-card-footer{display:flex;align-items:center;gap:6px;padding:10px 12px 12px;border-top:1px solid #f2e9eb;background:#fffaf9;flex-wrap:wrap}
.recipe-card-footer button{border:0;border-radius:10px;padding:8px 9px;font-size:9px;font-weight:850;background:#f4edf0;color:#675d61}
.recipe-card-footer .recipe-primary-action{background:var(--rose-strong);color:#fff;flex:1}
.recipe-card-footer .recipe-delete-action{padding-inline:9px;background:#fff0f0;color:#a35b5b}
.recipe-card.excluded{opacity:.76}.recipe-card.excluded:hover{opacity:.9}
.recipe-tone-fish .recipe-cover,.recipe-detail-hero.recipe-tone-fish{background:linear-gradient(145deg,#dcecf2,#eaf4ef)}
.recipe-tone-turkey .recipe-cover,.recipe-detail-hero.recipe-tone-turkey{background:linear-gradient(145deg,#f6e5d8,#f7eff0)}
.recipe-tone-chicken .recipe-cover,.recipe-detail-hero.recipe-tone-chicken{background:linear-gradient(145deg,#f4e5d0,#f8efdf)}
.recipe-tone-beef .recipe-cover,.recipe-detail-hero.recipe-tone-beef{background:linear-gradient(145deg,#f1dddd,#f7e9e5)}
.recipe-tone-egg .recipe-cover,.recipe-detail-hero.recipe-tone-egg{background:linear-gradient(145deg,#f7edce,#fbf4e5)}
.recipe-tone-legume .recipe-cover,.recipe-detail-hero.recipe-tone-legume{background:linear-gradient(145deg,#dfead8,#edf0df)}
.recipe-tone-other .recipe-cover,.recipe-detail-hero.recipe-tone-other{background:linear-gradient(145deg,#e4eadc,#f4e7dc)}

.recipe-detail-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:112px 1fr;gap:18px;align-items:center;padding:22px;border-radius:20px;margin:-4px 0 14px;background:linear-gradient(145deg,#e9f0e5,#f8e5d9)}
.recipe-detail-emoji{position:relative;z-index:1;width:96px;height:96px;border-radius:29px;display:grid;place-items:center;font-size:52px;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.7);filter:drop-shadow(0 8px 14px rgba(73,60,64,.1))}
.recipe-detail-title{position:relative;z-index:1}.recipe-detail-title .recipe-origin-badge{position:static;display:inline-flex;margin-bottom:9px}.recipe-detail-title h2{margin:3px 0 7px;font-size:24px;line-height:1.2}.recipe-detail-title>p:last-child{margin:0;color:#6f666a;font-size:12px;line-height:1.5}
.recipe-detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}.recipe-detail-metrics>div{padding:12px 13px;border-radius:15px;background:#faf5f5;border:1px solid #f1e7e9}.recipe-detail-metrics span,.recipe-detail-metrics strong{display:block}.recipe-detail-metrics span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:800}.recipe-detail-metrics strong{font-size:14px;margin-top:4px}
.recipe-detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px}.recipe-detail-tags .tag{font-size:9px;padding:6px 9px}
.recipe-detail-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:13px}.recipe-detail-panel,.recipe-adaptation-panel{border:1px solid var(--line);border-radius:18px;padding:15px;background:#fffdfb}.recipe-detail-section-head{display:flex;gap:10px;align-items:center;margin-bottom:11px}.recipe-detail-section-head>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#f5edf0;font-size:19px}.recipe-detail-section-head h3{font-size:14px;margin:2px 0 0}
.recipe-detail-ingredients{display:grid;grid-template-columns:1fr;gap:7px;margin:0}.recipe-detail-ingredients .recipe-ingredient-row{display:grid;grid-template-columns:25px 1fr;gap:7px;align-items:center;background:#faf6f3;border-radius:12px;padding:9px}.recipe-ingredient-row>span{font-size:16px;text-align:center}.recipe-ingredient-row strong,.recipe-ingredient-row small{display:block}.recipe-ingredient-row strong{font-size:11px}.recipe-ingredient-row small{font-size:9px;color:var(--muted);margin-top:2px}
.method-panel .method-box{background:#f7f5f9;padding:14px}.method-panel .method-steps{margin:0;padding-left:22px}.method-panel .method-steps li{padding:0 0 10px 4px;font-size:11px;line-height:1.55}.method-panel .method-steps li:last-child{padding-bottom:0}
.recipe-adaptation-panel{margin-top:13px;background:linear-gradient(145deg,#f3f7ef,#fffaf7)}.recipe-adaptation-panel .adaptation-list{grid-template-columns:1fr 1fr;display:grid;gap:9px 18px;padding-left:21px}.recipe-adaptation-panel li{font-size:10px;line-height:1.5}
.recipe-portions-box{margin-top:13px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:#faf7f8}.recipe-portions-box summary{font-size:11px;font-weight:850;cursor:pointer}.recipe-portions-box .portion-table{margin-top:10px}.recipe-source-note{margin:12px 2px}.recipe-detail-actions{justify-content:flex-end;margin-top:13px}

@media(max-width:1100px){.real-week-form{grid-template-columns:repeat(3,1fr)}.real-week-form .grow{grid-column:1/3}.real-week-form button{grid-column:3}}
@media(max-width:699px){
  .real-week-form{grid-template-columns:1fr 1fr}.real-week-form .grow,.real-week-form button{grid-column:1/-1}
  .recipe-grid{grid-template-columns:1fr;gap:14px}.recipe-card .recipe-cover{height:112px}.recipe-cover-emoji{font-size:49px}.recipe-card .recipe-body{min-height:0}
  .recipe-card-footer{display:grid;grid-template-columns:1fr 1fr}.recipe-card-footer .recipe-primary-action{grid-column:1/-1}.recipe-card-footer .recipe-delete-action{position:absolute;right:12px;top:12px;z-index:4;background:rgba(255,255,255,.88)}
  .recipe-detail-hero{grid-template-columns:78px 1fr;padding:16px;gap:12px}.recipe-detail-emoji{width:72px;height:72px;border-radius:22px;font-size:39px}.recipe-detail-title h2{font-size:19px}.recipe-detail-metrics{grid-template-columns:1fr 1fr 1fr}.recipe-detail-metrics>div{padding:10px 8px}.recipe-detail-metrics strong{font-size:12px}
  .recipe-detail-layout{grid-template-columns:1fr}.recipe-adaptation-panel .adaptation-list{grid-template-columns:1fr}.recipe-safety-note{align-items:flex-start}.recipe-library-icon{width:42px;height:42px;flex-basis:42px}
}
.real-week-form #realWeekPersonField select:invalid{color:#9a8e94}
.real-week-form #realWeekPersonField select option{color:var(--text)}
.real-week-chip strong{flex:0 0 auto}
@media(max-width:699px){.real-week-chip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;width:100%}}

/* V7.17 · Pianificazione protetta per singolo pasto */
.meal-meta .mini-pill:first-child{font-weight:900;border-style:solid}
.meal-meta .mini-pill:first-child:not(.leftover-badge){background:#f5edf1;color:#805e6d;border-color:#ead8df}
#resetMealAutomaticBtn{border-color:#d9d0e7;background:#f5f1fb;color:#675783}
@media(max-width:620px){#resetMealAutomaticBtn{width:100%}.generator-controls #autoPlanBtn{flex:1 1 100%;width:100%}}

/* V7.19 · istruzioni visive per le insalate in barattolo */
.recipe-assembly-panel{
  margin-top:18px;
  padding:18px;
  border:1px solid rgba(160,132,151,.22);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(240,247,235,.96),rgba(255,252,246,.98));
}
.recipe-assembly-panel .method-steps,
.quick-assembly .method-steps{margin:12px 0 0;padding-left:1.35rem;display:grid;gap:10px}
.recipe-assembly-panel .method-steps li,
.quick-assembly .method-steps li{padding-left:4px;line-height:1.45}
.quick-assembly{margin-top:14px;padding:14px;border-radius:18px;background:#f4f7ef;border:1px solid rgba(132,157,116,.2)}
.quick-assembly>strong{display:block;margin-bottom:8px}


/* V7.26 — planner intelligente */
.week-control-center{display:grid;gap:12px}.week-lock-line .lock-state{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:16px;background:#f7f3ef}.week-lock-line .lock-state.locked{background:#edf3e9;border:1px solid #afc2a5}.week-lock-line .lock-state span{font-size:13px;color:var(--muted)}
.lock-week-btn{border:0;border-radius:14px;padding:11px 14px;background:#4f6b52;color:#fff;font-weight:800;cursor:pointer}.lock-week-btn.locked{background:#8a6c58}.week-balance-bar{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));gap:8px}.balance-chip{padding:10px;border-radius:14px;background:#f7f4ef;display:flex;flex-direction:column;gap:3px}.balance-chip span{font-size:12px;color:var(--muted)}.balance-chip.ok strong{color:#47684b}.balance-chip.warn{background:#fff0e8}.balance-chip.warn strong{color:#a35d42}
.week-is-locked .change-meal,.week-is-locked [data-personal-meal],.week-is-locked .celeste-meal,.week-is-locked .double-meal{opacity:.45}.double-meal.active{background:#e3efe0!important;border-color:#86a87e!important}.shopping-freeze-status,.shopping-delta-panel{margin:12px 0;padding:14px;border-radius:16px;border:1px solid #d8cfca;background:#faf7f4;display:grid;gap:6px}.shopping-freeze-status{background:#edf3e9;border-color:#afc2a5}.shopping-freeze-status span,.shopping-delta-panel span{font-size:13px;color:var(--muted)}.shopping-delta-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.shopping-delta-columns section{padding:10px;border-radius:12px;background:#fff}.shopping-delta-columns h4{margin:0 0 6px}.shopping-delta-columns p{margin:3px 0;font-size:13px}
.v726-planner-tools{margin-top:16px}.meal-prep-list{display:grid;gap:10px}.prep-task{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid #eee4df}.prep-task>span{font-weight:800;color:#55704f}.prep-task p{margin:4px 0 0;color:var(--muted);font-size:13px}.prep-total{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:14px;background:#f5f0e8}.week-end-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.week-end-summary>div{padding:14px;border-radius:14px;background:#f8f5f1;text-align:center}.week-end-summary strong{display:block;font-size:24px}.week-end-summary span{font-size:12px;color:var(--muted)}
.recipe-liked-badge,.recipe-adults-badge{position:absolute;right:10px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.recipe-liked-badge{top:42px;background:#e7f1e1;color:#47684b}.recipe-adults-badge{top:68px;background:#efe7dc;color:#795c49}.recipe-feedback-panel{margin-top:18px;padding:16px;border-radius:18px;background:#faf7f3}.recipe-feedback-actions{display:flex;gap:8px;flex-wrap:wrap}.recipe-feedback-actions button,.person-feedback button{border:1px solid #d8cbc7;background:#fff;border-radius:11px;padding:8px 10px;cursor:pointer}.active-like{background:#e4f0df!important;border-color:#8db082!important}.active-dislike{background:#fae5e2!important;border-color:#d7988f!important}.active-adults{background:#eee5dc!important;border-color:#b99a82!important}.person-feedback-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.person-feedback{padding:12px;background:#fff;border-radius:14px}.person-feedback>div{display:flex;gap:6px;margin:7px 0}.person-feedback small{display:block;color:var(--muted)}
@media(max-width:900px){.week-balance-bar{grid-template-columns:repeat(2,1fr)}.shopping-delta-columns,.person-feedback-grid{grid-template-columns:1fr}.week-end-summary{grid-template-columns:repeat(2,1fr)}.week-lock-line .lock-state{align-items:flex-start;flex-direction:column}}


/* V7.29 — solo grafica lista spesa iPhone; nessuna modifica alla struttura dati */
.shopping-week-banner{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center;margin:0 0 14px;padding:14px;border:1px solid #dfe6dc;border-radius:18px;background:linear-gradient(135deg,#f4f8f1,#fffaf7)}
.shopping-week-banner.ok{background:linear-gradient(135deg,#edf5e9,#fffaf7);border-color:#bfd2b6}.shopping-week-banner.locked{background:linear-gradient(135deg,#e7f1e2,#f8f5ef);border-color:#a8c09d}.shopping-week-banner.warning{background:linear-gradient(135deg,#fff4df,#fff9f1);border-color:#edc977}
.shopping-week-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.78);font-size:23px}.shopping-week-copy{min-width:0}.shopping-week-copy strong{display:block;font-size:14px;line-height:1.3}.shopping-week-copy span{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}
.shopping-layout{align-items:start}.shopping-main-card{min-width:0}
@media(max-width:699px){
  #installBanner{display:none!important}
  #shopping .shopping-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px}
  #shopping .shopping-main-card,#shopping .shopping-receipt-card{width:100%;min-width:0}
  #shopping .shopping-main-card{padding:16px 12px;border-radius:18px}
  #shopping .shopping-section-head{align-items:flex-start;display:grid;grid-template-columns:1fr;gap:10px}
  #shopping .shopping-section-head h2{font-size:24px}
  #shopping .shopping-section-head .button-row{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  #shopping .shopping-section-head .button-row button{min-height:48px;font-size:14px;padding:10px 8px}
  #shopping .shopping-week-banner{position:static;top:auto;z-index:auto;grid-template-columns:46px minmax(0,1fr);padding:16px 14px;box-shadow:none}
  #shopping .shopping-week-copy strong{font-size:18px;line-height:1.25}
  #shopping .shopping-week-copy span{font-size:13px;line-height:1.5}
  #shopping .shopping-smart-banner{grid-template-columns:44px minmax(0,1fr);padding:14px 12px}
  #shopping .shopping-smart-icon{width:44px;height:44px;font-size:22px}
  #shopping .shopping-smart-banner strong{font-size:16px}
  #shopping .shopping-smart-banner span{font-size:12.5px;line-height:1.5}
  #shopping .shopping-entry-form input,#shopping .shopping-entry-form select,#shopping .shopping-entry-form textarea{font-size:17px;min-height:48px}
  #shopping .shopping-entry-form label{font-size:13px}
  #shopping .shopping-help{font-size:12.5px;line-height:1.55}
  #shopping .shopping-v6-summary{gap:10px;grid-template-columns:1fr}
  #shopping .shopping-v6-summary>div{padding:14px 12px;border-radius:14px}
  #shopping .shopping-v6-summary span{font-size:13px}
  #shopping .shopping-v6-summary strong{font-size:20px;margin-top:5px}
  #shopping .shopping-summary{padding:14px 12px;align-items:flex-start;flex-direction:column}
  #shopping .shopping-summary strong{font-size:17px}
  #shopping .shopping-summary span{font-size:13px;line-height:1.4;text-align:left}
  #shopping .shopping-category-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;padding-bottom:14px}
  #shopping .shopping-filter-chip{justify-content:space-between;font-size:13px;padding:12px 13px;min-height:46px}
  #shopping .shopping-filter-chip b{font-size:11px;min-width:24px;height:24px}
  #shopping .shopping-category{border-radius:18px}
  #shopping .shopping-category-head{padding:14px 12px;position:sticky;top:0;z-index:1}
  #shopping .shopping-category-icon{width:42px;height:42px;font-size:22px;border-radius:14px}
  #shopping .shopping-category-head h3{font-size:17px}
  #shopping .shopping-category-head span{font-size:12px;margin-top:3px}
  #shopping .shopping-category-items{padding:4px 10px 8px}
  #shopping .shopping-item{grid-template-columns:34px minmax(0,1fr);gap:12px;padding:15px 2px}
  #shopping .shopping-check{width:29px;height:29px}
  #shopping .shopping-item-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px}
  #shopping .shopping-item-title>span{font-size:18px;line-height:1.25}
  #shopping .shopping-item-title>strong{font-size:13px;padding:6px 9px;border-radius:10px}
  #shopping .shopping-item small{font-size:12.5px;line-height:1.45}
  #shopping .shopping-meta{gap:6px;margin-top:8px}
  #shopping .mini-pill{font-size:11px;padding:5px 8px}
  #shopping .shopping-item-actions{grid-column:2;justify-content:flex-start;gap:8px;margin-top:6px}
  #shopping .shopping-item-actions .tiny-btn,#shopping .shopping-item-actions .delete-btn{min-width:46px;min-height:46px;font-size:18px;padding:9px 11px;border-radius:12px}
  #shopping .shopping-freeze-status,#shopping .shopping-delta-panel{font-size:14px;line-height:1.55;padding:14px 12px}
  #shopping .shopping-freeze-status span,#shopping .shopping-delta-panel span{font-size:12.5px}
  #shopping .shopping-receipt-card{margin-top:14px}
}


/* V7.30 — Windows PWA / desktop. Nessuna modifica alla logica dati. */
.desktop-install-btn{white-space:nowrap}
@media(min-width:1100px){
  body{font-size:15px}
  .app-shell{grid-template-columns:260px minmax(0,1fr)}
  .sidebar{padding:26px 19px}
  .brand strong{font-size:16px}.brand small{font-size:11px}
  .nav-btn{font-size:14px;padding:12px 13px}.nav-btn span{font-size:19px}
  .main{padding:30px 34px 76px;max-width:1680px;width:100%;margin:0 auto}
  .topbar{position:sticky;top:0;z-index:18;background:rgba(251,248,246,.92);backdrop-filter:blur(14px);padding:12px 0 14px;margin-top:-12px}
  .topbar h1{font-size:31px}
  .card{padding:22px}
  .two-col{gap:20px}
  .week-grid{gap:14px}
  .day-card{min-height:250px}
  .recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .device-install-card .device-features{grid-template-columns:repeat(3,minmax(0,1fr))}
  .device-install-card .device-features>div{padding:16px 12px}
  .device-install-card .device-features strong{font-size:13px}
  .device-install-card .device-features small{font-size:10px}
  .install-banner{left:280px}
}
@media(min-width:1450px){
  .week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
  .recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(display-mode:standalone){
  .desktop-install-btn{display:none!important}
}


/* V7.31 — controllo completezza lista spesa */
.shopping-audit-panel{margin:0 0 14px;padding:14px;border:1px solid #e4ddd8;border-radius:18px;background:#fffdf9}
.shopping-audit-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.shopping-audit-head>div:first-child{display:grid;gap:3px}.shopping-audit-head strong{font-size:15px}.audit-kicker{font-size:9px;letter-spacing:.11em;color:var(--rose-strong);font-weight:900}.shopping-audit-content{display:grid;gap:10px;margin-top:12px}.audit-summary{padding:12px;border-radius:14px;background:#eef6ea;border:1px solid #d2e3cc}.audit-summary.warning{background:#fff3e6;border-color:#e9c49b}.audit-summary strong,.audit-summary span{display:block}.audit-summary strong{font-size:13px}.audit-summary span{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.5}.audit-details{border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px}.audit-details summary{cursor:pointer;font-size:12px;font-weight:900}.audit-missing{border-color:#e6b5b5;background:#fff8f7}.audit-issues{border-color:#e8cf9e;background:#fffaf0}.audit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px dashed var(--line)}.audit-row:first-of-type{margin-top:8px}.audit-row strong,.audit-row span{display:block}.audit-row strong{font-size:12px}.audit-row span{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.45}.audit-row button{min-height:40px}.audit-note,.audit-warning-line{font-size:10px;line-height:1.5;color:var(--muted)}.audit-warning-line{padding:7px 0;margin:0;border-top:1px dashed var(--line);color:#856331}
@media(max-width:699px){.shopping-audit-panel{padding:14px 12px}.shopping-audit-head{display:grid;grid-template-columns:1fr}.shopping-audit-head strong{font-size:17px}.audit-kicker{font-size:10px}.shopping-audit-head .button-row{display:grid;grid-template-columns:1fr;width:100%}.shopping-audit-head button{width:100%;min-height:48px;font-size:13px}.audit-summary strong{font-size:15px}.audit-summary span{font-size:12px}.audit-details summary{font-size:14px}.audit-row{grid-template-columns:1fr;padding:12px 0}.audit-row strong{font-size:15px}.audit-row span{font-size:12px}.audit-row button{width:100%;min-height:46px}.audit-note,.audit-warning-line{font-size:12px}}

/* V7.32 — affidabilità, tracciabilità, foto menu/ricette e immagini */
.global-sync-banner{display:flex;align-items:center;gap:10px;margin:-8px 0 16px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:#f6f3f2;color:var(--text);box-shadow:0 6px 20px rgba(91,71,79,.04)}
.global-sync-banner>span{font-size:20px}.global-sync-banner>div{display:grid;gap:2px}.global-sync-banner strong{font-size:12px}.global-sync-banner small{font-size:9px;color:var(--muted)}
.global-sync-banner.ok{background:#edf6ea;border-color:#cfe2c8}.global-sync-banner.warning{background:#fff8e8;border-color:#ead39f}.global-sync-banner.error{background:#fff0f0;border-color:#e8baba}.global-sync-banner.local{background:#f3f2f5}
.weekly-checklist-card{margin-bottom:17px}.weekly-checklist{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.checklist-item{display:flex;align-items:flex-start;gap:9px;padding:12px;border-radius:15px;border:1px solid var(--line);background:#faf7f6}.checklist-item>span{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border-radius:50%;font-weight:900;background:#eee8e9}.checklist-item.done{background:#eef6ea;border-color:#d5e5cf}.checklist-item.done>span{background:#cfe2c8;color:#4f6b49}.checklist-item strong,.checklist-item small{display:block}.checklist-item strong{font-size:11px}.checklist-item small{font-size:8px;color:var(--muted);margin-top:3px;line-height:1.35}
.inventory-verification-card{margin-bottom:17px}.inventory-verification-summary{display:grid;gap:9px}.inventory-verify-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inventory-verify-stats>div{padding:12px;border-radius:14px;background:#f3f7f0}.inventory-verify-stats>div.warn{background:#fff3e7}.inventory-verify-stats strong,.inventory-verify-stats span{display:block}.inventory-verify-stats strong{font-size:20px}.inventory-verify-stats span{font-size:9px;color:var(--muted);margin-top:2px}.inventory-verify-warning,.inventory-verify-ok{margin:0;padding:10px 12px;border-radius:12px;font-size:10px;line-height:1.45}.inventory-verify-warning{background:#fff5e8;color:#7f653f}.inventory-verify-ok{background:#eef6ea;color:#526d4e}.inventory-verified-line{display:block;margin-top:4px;font-size:8px;font-weight:800;color:#6c8065}.inventory-verified-line.stale{color:#a86a4c}.use-first-suggestions{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.use-first-suggestions>strong{font-size:11px}.use-first-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.use-first-chips span{padding:6px 8px;border-radius:999px;background:#f5efe6;font-size:9px;font-weight:800}
.shopping-100-status{display:flex;align-items:center;gap:11px;padding:12px;margin:12px 0;border:1px solid var(--line);border-radius:14px;background:#fff7e9}.shopping-100-status.ok{background:#eef7ea;border-color:#cfe1c7}.shopping-100-ring{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:#fff;font-weight:950;font-size:12px;box-shadow:inset 0 0 0 4px rgba(201,143,160,.14)}.shopping-100-status.ok .shopping-100-ring{box-shadow:inset 0 0 0 4px rgba(120,144,111,.22)}.shopping-100-status strong,.shopping-100-status span{display:block}.shopping-100-status strong{font-size:12px}.shopping-100-status span{font-size:9px;color:var(--muted);margin-top:3px;line-height:1.45}
.post-shopping-panel{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fbf7f6}.post-shopping-missing{display:grid;gap:8px;margin-top:10px}.after-shopping-warning,.after-shopping-ok{padding:12px;border-radius:14px}.after-shopping-warning{background:#fff0ee}.after-shopping-ok{background:#eef6ea}.after-shopping-warning strong,.after-shopping-warning span,.after-shopping-ok strong,.after-shopping-ok span{display:block}.after-shopping-warning strong,.after-shopping-ok strong{font-size:12px}.after-shopping-warning span,.after-shopping-ok span{font-size:9px;color:var(--muted);margin-top:4px}
.shopping-why-content{display:grid;gap:9px}.shopping-why-summary{padding:12px;border-radius:14px;background:#f7f1f2}.shopping-why-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 2px;border-bottom:1px dashed var(--line)}.shopping-why-row:last-child{border-bottom:0}.shopping-why-row strong{font-size:12px}.shopping-why-row span{font-size:9px;color:var(--muted);display:block;margin-top:3px}.shopping-why-row>strong{font-size:11px;white-space:nowrap}
.equivalent-replacement-box{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:15px;background:#faf7f6}.equivalent-replacement-box>span{font-size:10px;font-weight:900}.replacement-filter-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.replacement-filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 9px;font-size:9px;font-weight:850;color:var(--text)}.replacement-filter.active{background:var(--rose);border-color:#d9aebc}
.recipe-incomplete-badge{background:#fff0df;color:#8a6339}.recipe-incomplete-warning{margin:12px 0;padding:12px;border-radius:14px;background:#fff2df;border:1px solid #e8cda6;color:#7e5c32;font-size:10px;line-height:1.45}.recipe-card-photo{position:relative;z-index:1;width:78px;height:78px;border-radius:22px;object-fit:cover;border:1px solid rgba(255,255,255,.75);box-shadow:0 7px 18px rgba(73,60,64,.11)}.recipe-detail-photo{position:relative;z-index:1;width:120px;height:120px;border-radius:28px;object-fit:cover;border:1px solid rgba(255,255,255,.75);box-shadow:0 8px 22px rgba(73,60,64,.12)}
.menu-photo-restore-rows{display:grid;gap:9px;margin:14px 0;max-height:48vh;overflow:auto;padding-right:3px}.menu-photo-row{display:grid;grid-template-columns:90px 1fr 1fr;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fffdfb}.menu-photo-row>strong{font-size:11px;align-self:center}.menu-photo-row label{display:grid;gap:4px;font-size:9px;color:var(--muted);font-weight:800}.menu-photo-row input{font-size:14px}.recipe-image-preview{width:100%;max-height:320px;object-fit:cover;border-radius:18px}.recipe-image-actions{display:flex;gap:8px;flex-wrap:wrap}.recipe-image-dialog-card textarea,#recipeImageDialog textarea{width:100%;font-size:12px;line-height:1.5}.recipe-photo-source-note{font-size:9px;color:var(--muted)}

@media(max-width:900px){.weekly-checklist{grid-template-columns:1fr 1fr}}
@media(max-width:699px){
  .global-sync-banner{margin:-3px 0 14px;padding:12px}.global-sync-banner>span{font-size:22px}.global-sync-banner strong{font-size:14px}.global-sync-banner small{font-size:11px;line-height:1.4}
  .weekly-checklist{grid-template-columns:1fr}.checklist-item{padding:13px}.checklist-item strong{font-size:14px}.checklist-item small{font-size:11px}.checklist-item>span{width:31px;height:31px;flex-basis:31px}
  .inventory-verification-card .section-head{align-items:stretch;flex-direction:column}.inventory-verification-card .section-head button{width:100%;min-height:48px}.inventory-verify-stats{grid-template-columns:1fr 1fr}.inventory-verify-stats strong{font-size:22px}.inventory-verify-stats span{font-size:11px}.inventory-verify-warning,.inventory-verify-ok{font-size:12px}.use-first-suggestions>strong{font-size:14px}.use-first-chips span{font-size:11px;padding:8px 10px}.inventory-verified-line{font-size:10.5px}
  .shopping-100-status{padding:13px}.shopping-100-ring{width:54px;height:54px;flex-basis:54px;font-size:14px}.shopping-100-status strong{font-size:14px}.shopping-100-status span{font-size:11.5px}.post-shopping-panel{padding:14px 12px}.after-shopping-warning strong,.after-shopping-ok strong{font-size:14px}.after-shopping-warning span,.after-shopping-ok span{font-size:11.5px}
  .shopping-why-row{grid-template-columns:1fr}.shopping-why-row strong{font-size:15px}.shopping-why-row span{font-size:12px}.shopping-why-row>strong{font-size:13px}
  .replacement-filter-row{display:grid;grid-template-columns:1fr 1fr}.replacement-filter{min-height:43px;font-size:11px}.equivalent-replacement-box>span{font-size:12px}
  .recipe-incomplete-warning{font-size:12px}.recipe-card-photo{width:70px;height:70px}.recipe-detail-photo{width:88px;height:88px;border-radius:22px}
  .menu-photo-restore-rows{max-height:48vh}.menu-photo-row{grid-template-columns:1fr;padding:12px}.menu-photo-row>strong{font-size:14px}.menu-photo-row label{font-size:11px}.menu-photo-row input{font-size:16px;min-height:46px}
  #menuPhotoRestoreDialog .dialog-actions,#recipeImageDialog .dialog-actions{display:grid;grid-template-columns:1fr}#menuPhotoRestoreDialog .dialog-actions button,#recipeImageDialog .dialog-actions button{width:100%;min-height:48px}
  #recipeImageDialog textarea{font-size:13px}
}
.why-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px;border-radius:14px;background:#f7f1f2}.why-total strong{font-size:22px}.why-total span{font-size:9px;color:var(--muted)}.why-source-list{display:grid}.why-source-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 2px;border-bottom:1px dashed var(--line)}.why-source-list span{font-size:10px}.why-source-list strong{font-size:11px}.why-math{display:grid;grid-template-columns:1fr 1fr;gap:8px}.why-math>span{padding:10px;border-radius:12px;background:#f8f7f3;font-size:9px}
@media(max-width:699px){.why-total{align-items:flex-start;flex-direction:column}.why-total strong{font-size:25px}.why-total span{font-size:12px}.why-source-list>div{grid-template-columns:1fr}.why-source-list span{font-size:13px}.why-source-list strong{font-size:13px}.why-math{grid-template-columns:1fr}.why-math>span{font-size:12px}}


/* V7.33 — quantità reali + articolo già in casa */
.portion-editor-card{width:min(920px,calc(100vw - 24px))}.portion-editor-rows{display:grid;gap:12px;max-height:58vh;overflow:auto;padding-right:4px}.portion-editor-row{border:1px solid var(--line);border-radius:16px;padding:13px;background:#fffdfb}.portion-editor-row>div:first-child{display:grid;gap:3px;margin-bottom:10px}.portion-editor-row small{color:var(--muted);font-size:10px}.portion-person-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.portion-person-grid label{display:grid;grid-template-columns:1fr;gap:5px;font-size:10px;font-weight:800;color:var(--muted)}.portion-person-grid label span{font-size:9px}.home-shopping-btn{background:#edf5e9!important;color:#55724f!important}.home-pill{background:#e4f0df!important;color:#4f7048!important}.legacy-portion-settings{opacity:.78}
@media(max-width:699px){.portion-person-grid{grid-template-columns:1fr}.portion-editor-card{padding:18px}.portion-editor-rows{max-height:55vh}.home-shopping-btn{font-size:12px!important;min-width:96px!important}.shopping-item-actions{flex-wrap:wrap}}


/* V7.34 — foto ricetta anche nelle card del Ricettario */
.recipe-card .recipe-cover{isolation:isolate}
.recipe-card .recipe-cover-photo{
  position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block;
  object-fit:cover;object-position:center;border:0;border-radius:0;box-shadow:none
}
.recipe-card .recipe-cover-fallback{z-index:1}
.recipe-card .recipe-cover.has-photo .recipe-cover-fallback{opacity:0}
.recipe-card .recipe-cover.has-photo::before,.recipe-card .recipe-cover.has-photo::after{display:none}
.recipe-card .recipe-cover .recipe-origin-badge,
.recipe-card .recipe-cover .recipe-excluded-badge,
.recipe-card .recipe-cover .recipe-incomplete-badge,
.recipe-card .recipe-cover .recipe-liked-badge,
.recipe-card .recipe-cover .recipe-adults-badge{z-index:3}
.recipe-card .recipe-cover.has-photo::after{
  content:"";display:block;position:absolute;inset:auto 0 0;height:42%;z-index:2;
  background:linear-gradient(to top,rgba(39,33,35,.28),rgba(39,33,35,0));pointer-events:none
}
@media(max-width:699px){
  .recipe-card .recipe-cover{height:170px}
  .recipe-card .recipe-cover-photo{object-fit:cover}
}

/* V7.38 — miniature ricette nella pianificazione */
.meal-emoji.meal-photo{overflow:hidden;padding:0;background:#fff;border:1px solid #eee2df}
.meal-emoji.meal-photo img{width:100%;height:100%;display:block;object-fit:cover}
.sara-lunch-name .meal-photo{width:38px;height:38px;border-radius:11px;overflow:hidden}

.vacation-week-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.vacation-day-card{margin:12px;padding:24px 16px;border-radius:20px;background:#f7efe2;text-align:center;display:grid;gap:7px;place-items:center}.vacation-day-card>span{font-size:34px}.vacation-day-card strong{font-size:18px}.vacation-day-card small{color:var(--muted);font-weight:700}


/* V7.46 · Modalità Dieta Sara */
.sara-diet-control{margin-top:16px;padding:16px;border:1px solid #cbd9c4;border-radius:22px;background:linear-gradient(135deg,#f3f7ef,#fffaf6)}
.sara-diet-control.active{border-color:#78936e;background:linear-gradient(135deg,#eaf3e5,#fffaf6)}
.sara-diet-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.sara-diet-head>div{display:flex;align-items:center;gap:11px;min-width:0}
.sara-diet-head strong{display:block;font-size:18px}
.sara-diet-head small{display:block;color:var(--muted);margin-top:2px}
.sara-diet-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#fff;font-size:22px}
.sara-diet-toggle{border:0;border-radius:15px;padding:12px 14px;min-height:44px;background:#efe8eb;font-weight:800;color:var(--text);cursor:pointer}
.sara-diet-toggle.active{background:#587252;color:#fff}
.sara-diet-body{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:12px;align-items:end;margin-top:14px}
.sara-diet-status{padding:12px 14px;border-radius:15px;background:rgba(255,255,255,.72);min-width:0}
.sara-diet-status strong,.sara-diet-status span{display:block}
.sara-diet-status span{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}
.sara-diet-body label{font-size:12px;font-weight:800;color:var(--muted)}
.sara-diet-body select{width:100%;margin-top:5px}
.sara-diet-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.sara-diet-actions button:disabled{opacity:.45;cursor:not-allowed}
.sara-diet-dialog{max-width:760px;width:min(94vw,760px)}
.sara-diet-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:15px 0}
.sara-diet-calendar>div{padding:10px 7px;border:1px solid var(--border);border-radius:13px;text-align:center;background:#faf8f5}
.sara-diet-calendar strong,.sara-diet-calendar span{display:block}
.sara-diet-calendar strong{font-size:12px}.sara-diet-calendar span{font-size:11px;margin-top:5px}.sara-diet-calendar b{font-size:16px;color:#587252}
.sara-diet-routine,.sara-diet-rules{padding:14px 16px;border-radius:17px;background:#f6f3ef;margin:14px 0}
.sara-diet-routine h3,.sara-diet-rules h3{margin:0 0 8px}.sara-diet-routine ul,.sara-diet-rules ul{margin:0;padding-left:19px}.sara-diet-routine li,.sara-diet-rules li{margin:6px 0;line-height:1.45}
.sara-diet-combos{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.sara-diet-combos article{padding:12px;border-radius:15px;border:1px solid var(--border);background:#fff}
.sara-diet-combos b{display:block;color:#587252;font-size:16px}.sara-diet-combos span{display:block;margin-top:4px;font-size:12px;line-height:1.45;color:var(--muted)}
@media(max-width:699px){
  .sara-diet-head{align-items:stretch;flex-direction:column}
  .sara-diet-toggle{width:100%;font-size:15px}
  .sara-diet-body{grid-template-columns:1fr}
  .sara-diet-actions{grid-template-columns:1fr}
  .sara-diet-status strong{font-size:15px}.sara-diet-status span{font-size:12px}
  .sara-diet-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sara-diet-calendar>div:last-child{grid-column:1/-1}
  .sara-diet-combos{grid-template-columns:1fr}
}

/* V7.48 · Espansione ricette Dieta Sara */
.sara-diet-web-note{margin:14px 0;padding:13px 15px;border:1px solid #d8dfd2;border-radius:15px;background:#f5f8f2}
.sara-diet-web-note strong,.sara-diet-web-note span{display:block}
.sara-diet-web-note span{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}
.prep-week-context{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;background:#faf6f4;border:1px solid #eee4df}.prep-week-context strong{font-size:14px}.prep-week-context span{font-size:12px;color:var(--muted);text-align:right}.prep-empty{padding:14px;border-radius:14px;background:#f8f5f1}.prep-empty p{margin:4px 0 0;color:var(--muted);font-size:13px}@media(max-width:699px){.prep-week-context{display:block}.prep-week-context span{display:block;text-align:left;margin-top:3px}.prep-task{grid-template-columns:62px 1fr}.prep-task p{font-size:14px;line-height:1.45}}

/* V7.58 · Piano alimentare Sara · Fase 2 */
.sara-plan-view{max-width:980px;margin:0 auto}.sara-plan-tabs{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:8px;background:rgba(255,253,251,.94);backdrop-filter:blur(10px);border-radius:18px;margin-bottom:14px}.sara-plan-tabs button{border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px 8px;font-weight:800;color:var(--text)}.sara-plan-tabs button.active{background:#e8f1e4;border-color:#b9ccb2;color:#4e6b49}.sara-hero{background:linear-gradient(145deg,#f1f6ed,#fffaf7)}.sara-start,.sara-date-nav{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.sara-meals{display:grid;gap:12px;margin:14px 0}.sara-meal-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow-soft)}.sara-meal-card h3{margin:5px 0}.sara-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f2eee9;font-size:11px;font-weight:800}.sara-combo-title{font-size:18px;font-weight:900;color:#587252}.sara-my-meal{margin-top:12px;padding:12px;border-radius:15px;background:#f4f7f1}.sara-choice-list{display:grid;gap:8px;margin:9px 0}.sara-choice-list label{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid #eee5df;border-radius:12px;background:#fff}.sara-warning{padding:10px 12px;background:#fff3df;border-radius:12px;color:#71562b;font-weight:700}.sara-swap-btn{width:100%;margin-bottom:14px}.sara-extra{margin-top:14px}.sara-comp-banner{background:#edf5e9;border-color:#bfd1b8}.sara-combo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.sara-combo-card{border:1px solid #dbe5d7;border-radius:18px;background:#f6faf3;padding:18px;text-align:left}.sara-combo-card strong,.sara-combo-card span{display:block}.sara-combo-card span{margin-top:4px;color:var(--muted)}.sara-combo-detail{display:grid;gap:12px}.sara-option{position:relative;border:1px solid var(--line);border-radius:20px;background:#fff;padding:16px}.sara-option.selected{border-color:#9bb593}.sara-or{text-align:center;margin:0 0 12px;font-weight:900;color:#8e7380;text-transform:uppercase;letter-spacing:.12em}.sara-choice-group{margin:14px 0}.sara-choice-group h4{margin:0 0 6px}.sara-info-block{margin-top:14px;padding:12px;border-radius:14px;background:#f7f4ef}.sara-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.sara-chip-list label{background:#fff;padding:7px 9px;border-radius:10px}.sara-note{font-size:13px;color:var(--muted)}.sara-two-weeks{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sara-week-table{display:grid;grid-template-columns:1.6fr .7fr .7fr;border:1px solid var(--line);border-radius:16px;overflow:hidden}.sara-week-table>div{padding:9px;border-bottom:1px solid var(--line)}.sara-week-table .head{font-weight:900;background:#f7f2ee}.sara-week-table .current{background:#eef5ea;font-weight:900}.sara-summary-list{display:grid;gap:8px}.sara-summary-list>div{display:grid;grid-template-columns:110px 1fr 1fr;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.sara-summary-list span{font-size:12px}.sara-rules article{padding:14px 0;border-bottom:1px solid var(--line)}.sara-rules p{line-height:1.55}.sara-comp-section{margin-top:18px;padding:16px;border-radius:18px;background:#f3f7ef}.sara-comp-section li{margin:7px 0;line-height:1.45}
@media(max-width:699px){.sara-plan-tabs{grid-template-columns:repeat(4,minmax(0,1fr));top:-1px}.sara-plan-tabs button{font-size:11px;padding:10px 4px}.sara-two-weeks{grid-template-columns:1fr}.sara-combo-grid{grid-template-columns:1fr}.sara-summary-list>div{grid-template-columns:1fr}.sara-summary-list span{font-size:13px}.sara-start input,.sara-start button{width:100%}.sara-date-nav input{flex:1;min-width:0}.sara-meal-card .button-row{flex-wrap:wrap}.sara-option{padding:14px}.sara-plan-view{overflow-x:hidden}.sara-week-table{font-size:13px}}
.sara-start-edit{margin-top:12px}.sara-start-edit summary{cursor:pointer;font-weight:800;color:#587252}.sara-start-edit .sara-start{margin-top:9px}.sara-start-edit small{display:block;margin-top:7px;color:var(--muted)}
.sara-relation{display:inline-block;margin:3px 0 8px;padding:5px 9px;border-radius:999px;background:#f3ecf0;color:#7d6170;font-size:12px;font-weight:800}.sara-together{display:block;margin:4px 0 8px;color:var(--muted)}.sara-subveg{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.sara-veg-picker small{display:block;margin-top:7px;color:var(--muted)}


/* V7.59 · Fase 3 Piano Sara */
.shopping-source-pill{background:#eef3ea;color:#52664f;border:1px solid #d8e3d2}
.sara-family-link{margin:.35rem 0 .7rem;padding:.55rem .7rem;border-radius:12px;background:#f7f3ef;color:#625b58;font-size:.92rem;line-height:1.35}
.sara-family-link strong{color:#4f6250}
@media(max-width:699px){.shopping-item-title strong{max-width:48%;text-align:right;line-height:1.15}.shopping-source-pill{white-space:nowrap}.sara-family-link{font-size:.9rem}}


/* V7.63 · Fase 4 — Cucina insieme */
.sara-share-badge{display:inline-flex;align-items:center;gap:6px;margin:8px 0;padding:7px 10px;border:1px solid var(--line,#e5ddd7);border-radius:999px;background:#f4f7f1;color:#405541;font:inherit;font-weight:700;max-width:100%;white-space:normal;text-align:left}
.sara-share-badge.base{background:#f4f7f1}.sara-share-badge.same{background:#eef6ee}.sara-share-badge.separate,.sara-share-badge.uncertain{background:#f7f4f0;color:#655f5c}
.sara-share-detail{margin-top:10px;padding:12px;border-radius:16px;background:#faf8f5;border:1px solid #ece5df}.sara-share-detail p{margin:.45rem 0}.sara-share-detail small{display:block;margin-top:8px;font-weight:700}
.sara-share-chips{display:flex;flex-wrap:wrap;gap:7px;margin:7px 0}.sara-share-chips span{display:inline-flex;padding:6px 9px;border-radius:999px;background:#edf4eb;font-size:.9rem}.sara-share-chips.muted span{background:#f1efed}.sara-share-chips.sara span{background:#eef3e9}
.sara-share-note{padding:9px 10px;border-radius:12px;background:#fff;border:1px dashed #d9d0c8}.sara-cook-once{margin-top:14px}
@media(max-width:699px){.sara-share-detail{padding:11px}.sara-share-badge{font-size:.92rem}.sara-share-chips span{font-size:.86rem}.sara-cook-once{margin-left:0;margin-right:0}}


/* V7.63 — Pianificazione settimanale guidata */
.guided-week-btn{white-space:nowrap}.week-planning-wizard{width:min(760px,calc(100vw - 24px));max-height:92dvh;border:0;border-radius:28px;padding:0;overflow:hidden;background:var(--surface,#fffdfb)}.week-planning-wizard::backdrop{background:rgba(44,38,39,.38);backdrop-filter:blur(3px)}.week-wizard-shell{display:flex;flex-direction:column;max-height:92dvh}.week-wizard-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 10px}.week-wizard-head h2{margin:.1rem 0}.week-wizard-stepper{display:flex;gap:6px;overflow-x:auto;padding:8px 16px 12px;scrollbar-width:none}.week-wizard-stepper::-webkit-scrollbar{display:none}.week-wizard-stepper button{border:0;background:#f5f0ee;border-radius:16px;min-width:72px;padding:8px 6px;color:#756e70}.week-wizard-stepper button span{display:grid;place-items:center;margin:auto;width:25px;height:25px;border-radius:50%;background:#fff;font-weight:800}.week-wizard-stepper button small{display:block;margin-top:4px;font-size:10px;line-height:1.1}.week-wizard-stepper button.active{background:#e8efe5;color:#405d43}.week-wizard-stepper button.done span{background:#dce8d8}.week-wizard-body{overflow:auto;padding:4px 18px 22px;min-height:340px}.week-wizard-actions{display:flex;gap:10px;justify-content:space-between;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #eee4e1;background:#fffdfa;position:sticky;bottom:0}.week-wizard-actions button{min-height:48px;flex:1}.wizard-week-select input[type=date]{width:100%;min-height:48px;margin:8px 0 14px}.wizard-summary-card,.wizard-ready,.wizard-two-blocks section{background:#faf7f2;border:1px solid #eee4dd;border-radius:20px;padding:16px;margin:10px 0}.wizard-summary-card>span,.wizard-summary-card>small{display:block;margin-top:7px}.wizard-days{display:grid;gap:10px}.wizard-days article,.wizard-share-list article{border:1px solid #eee4dd;border-radius:18px;padding:12px;background:#fff}.wizard-day-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px}.wizard-day-head span{font-size:12px;color:#746d6f}.wizard-meal-line{width:100%;border:0;border-top:1px solid #f0e9e5;background:transparent;text-align:left;padding:10px 2px;display:flex;flex-direction:column;gap:3px;color:inherit}.wizard-meal-line small{color:#777072}.wizard-days details{margin-top:4px}.wizard-days summary{font-size:13px;color:#66765f;padding:7px 0}.wizard-share-list{display:grid;gap:9px}.wizard-share-list article{display:flex;flex-direction:column;gap:5px}.wizard-level{font-weight:800;color:#536b50}.wizard-two-blocks{display:grid;gap:12px}.wizard-status-row,.wizard-prep-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eee7e1}.wizard-status-row small,.wizard-prep-row span{color:#777072;text-align:right}.wizard-status-row.have>span{color:#4d684b}.wizard-status-row.check>span{color:#8a6b37}.wizard-shop-group{display:flex;flex-direction:column;gap:5px;border-bottom:1px solid #eee4dd;padding:12px 0}.wizard-shop-group strong{color:#5b7056}.wizard-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.wizard-kpis div{background:#fff;border-radius:15px;padding:12px;text-align:center}.wizard-kpis strong{display:block;font-size:22px}.wizard-kpis span{font-size:11px;color:#777}.wizard-checks p{margin:7px 0}.wizard-checks details{margin:12px 0}.wizard-empty{text-align:center;padding:28px 10px}.wizard-shop-preview .section-head{align-items:flex-start}
@media(max-width:600px){.week-planning-wizard{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.week-wizard-shell{max-height:100dvh;height:100dvh}.week-wizard-head{padding-top:calc(16px + env(safe-area-inset-top))}.week-wizard-body{padding-left:14px;padding-right:14px}.wizard-kpis{grid-template-columns:repeat(2,1fr)}.wizard-status-row,.wizard-prep-row{align-items:flex-start}.wizard-status-row small,.wizard-prep-row span{text-align:left}.wizard-day-head{align-items:flex-start;flex-direction:column}.guided-week-btn{width:100%}}


/* V7.63 — Dashboard operativa Oggi */
.today-dashboard-v762{max-width:1180px;margin:0 auto}.today-ops-hero{display:flex;justify-content:space-between;align-items:center;gap:16px}.today-day-nav{display:flex;align-items:center;gap:8px}.today-operational-root{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px;margin-top:16px}.today-primary-card{grid-column:1/-1}.today-family-sara-meals{display:grid;grid-template-columns:1fr 1fr;gap:14px}.today-meal-pair{border:1px solid #eadfda;border-radius:22px;padding:15px;background:#fff}.today-meal-pair.is-complete{opacity:.74}.today-meal-pair-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}.today-meal-pair-head h3{margin:0}.today-meal-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.today-meal-columns>div{background:#faf6f2;border-radius:15px;padding:11px;display:flex;flex-direction:column;gap:5px;min-width:0}.today-meal-columns small{color:#7b7474}.today-meal-columns strong,.today-meal-columns span{overflow-wrap:anywhere}.today-share-note{margin-top:10px;padding:10px 12px;border-radius:14px;background:#edf3e9;display:flex;flex-direction:column;gap:3px}.today-snacks{margin-top:14px;border-top:1px solid #eee5e0;padding-top:12px}.today-snack-line{width:100%;border:0;background:transparent;padding:9px 0;display:flex;justify-content:space-between;gap:12px;text-align:left;border-bottom:1px solid #f2ebe7;color:inherit}.today-snack-line>span:first-child{display:flex;flex-direction:column}.today-routine-details{margin-top:12px}.today-routine-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.today-routine-grid>div{background:#faf7f3;border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:4px}.today-routine-grid span{font-size:12px;color:#766f70}.today-subcard{border-radius:18px;background:#faf7f2;padding:13px;margin:10px 0}.today-subcard h3{margin:0 0 9px}.today-shared-row{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-bottom:1px solid #eee5dd}.today-prep-task{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #eee7e2}.today-prep-task input{width:22px;height:22px;flex:0 0 auto}.today-prep-task span{display:flex;flex-direction:column;gap:3px}.today-prep-task.done{opacity:.65;text-decoration:none}.today-prep-task.done strong{text-decoration:line-through}.today-ready-prep .ready{background:#eef4eb}.today-thaw-list .thaw{background:#f1f4f7}.today-shopping-kpi{display:flex;justify-content:space-between;gap:12px;align-items:end}.today-shopping-kpi strong{font-size:22px}.today-missing{margin-top:12px;padding:10px 12px;border-radius:14px;background:#f8f2e8;display:flex;flex-direction:column;gap:4px}.today-all-ready{padding:15px;border-radius:16px;background:#edf3e9;color:#486247}.today-notification-settings{margin-top:12px}.today-notification-types{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.today-notification-types label{background:#faf7f3;border-radius:12px;padding:9px}.today-empty-state{text-align:center;padding:28px;margin-top:16px}.today-empty-state .button-row{justify-content:center}.today-legacy-support{display:none!important}.today-reminder-section .timeline-item{}.today-dashboard-v762 .timeline-item .button-row{margin-top:6px}.today-dashboard-v762 .data-row small{display:block}.today-dashboard-v762 #todayUseFirstSection h3{margin:12px 0 6px}.today-dashboard-v762 .card{min-width:0}
@media(max-width:760px){.today-ops-hero{align-items:flex-start;flex-direction:column}.today-day-nav{width:100%;justify-content:space-between}.today-operational-root{display:flex;flex-direction:column}.today-family-sara-meals{grid-template-columns:1fr}.today-meal-columns{grid-template-columns:1fr}.today-routine-grid{grid-template-columns:1fr 1fr}.today-notification-types{grid-template-columns:1fr}.today-shopping-kpi{align-items:flex-start;flex-direction:column}.today-dashboard-v762 .section-head{gap:10px;align-items:flex-start}.today-dashboard-v762 .section-head button{max-width:48%}}
@media(max-width:390px){.today-dashboard-v762{width:100%;max-width:100%;overflow-x:hidden}.today-dashboard-v762 .card{border-radius:20px}.today-routine-grid{grid-template-columns:1fr}.today-meal-pair{padding:12px}.today-dashboard-v762 .section-head button{max-width:none}.today-snack-line{flex-direction:column;gap:4px}.today-day-nav .soft-btn{flex:1}}

.today-notification-times{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.today-notification-times label{display:flex;flex-direction:column;gap:4px}.today-notification-times small{grid-column:1/-1;color:#777}.today-notification-times input{min-height:42px}@media(max-width:600px){.today-notification-times{grid-template-columns:1fr}}

/* V7.67 · Piano Sara più chiaro quando il menu famiglia è già compatibile */
.sara-diet-compatible-help{margin:10px 0 12px;padding:12px 14px;border-radius:16px;background:#f3f6ef;color:#52684e;font-weight:700;line-height:1.35}.sara-share-badge.same{white-space:normal;text-align:left;line-height:1.25}
