/* LunchFlow stylesheet. All spacing/sizing comes from the shared variables below.
   Defaults (":root") are the original sizes and are what PRINT uses; the compact on-screen values are applied only inside @media screen. */
:root{--bg:#f6f7f9;--fg:#1c2430;--mut:#667085;--card:#fff;--line:#d9dee7;--pri:#1f5fbf;--lunch:#b45309;--lunchbg:#fff7e6;--dinner:#3730a3;--dinnerbg:#eef0ff;--ok:#0a7a3d;--err:#b42318;
 --fs:17px;--lh:1.45;--main-pad:16px;--main-max:1100px;--gap:12px;--card-pad:14px 16px;--card-mar:12px 0;--card-r:12px;--narrow-mar:24px auto;
 --ctl-h:48px;--ctl-pad:10px;--btn-h:48px;--btn-pad:10px 18px;--btn-sm-h:40px;--btn-sm-pad:6px 12px;--cell-pad:8px 10px;--lbl-m:10px;--lbl-fs:.95rem;
 --h1:1.5rem;--h2:1.2rem;--h3:1rem;--big:1.25rem;--small:.88rem;--tiny:.75rem;--th-fs:.85rem;--badge-fs:.85rem;--badge-pad:2px 10px;
 --nav-h:44px;--nav-pad:10px 12px;--nav-gap:4px;--top-pad:10px 16px;--top-gap:8px 16px;--brand:1.2rem;--who-fs:.85rem;
 --step:52px;--step-in:90px;--choice-pad:14px;--choice-fs:1.1rem;--day-pad:8px 10px;--day-min:92px;--tab-pad:12px;--tab-fs:1.05rem;--msg-pad:12px 14px;--msg-mar:10px 0;
 --btn-sm-fs:.9rem;--qday:84px;--day-fs:.9rem;--cellctl:40px;--chart-gap:16px;--foot-pad:16px;--foot-mar:24px;--row-pad:8px 0;--row-fs:1.1rem;--chip-pad:6px 12px;--fs-pad:8px 12px;--sum-pad:8px 0}
@media screen{:root{--fs:.875rem;--lh:1.4;--main-pad:.7rem 1rem;--main-max:1240px;--gap:.6rem;--card-pad:.55rem .8rem;--card-mar:.5rem 0;--card-r:10px;--narrow-mar:1.2rem auto;
 --ctl-h:2.15rem;--ctl-pad:.3rem .55rem;--btn-h:2.15rem;--btn-pad:.3rem .9rem;--btn-sm-h:1.8rem;--btn-sm-pad:.15rem .65rem;--cell-pad:.28rem .5rem;--lbl-m:.4rem;--lbl-fs:.8125rem;
 --h1:1.3rem;--h2:1.06rem;--h3:.92rem;--big:1.1rem;--small:.78rem;--tiny:.7rem;--th-fs:.74rem;--badge-fs:.74rem;--badge-pad:1px 8px;
 --nav-h:2.1rem;--nav-pad:.25rem .7rem;--nav-gap:2px;--top-pad:.3rem .9rem;--top-gap:.3rem .9rem;--brand:1.05rem;--who-fs:.78rem;
 --step:2.3rem;--step-in:4.4rem;--choice-pad:.5rem .7rem;--choice-fs:.95rem;--day-pad:.3rem .55rem;--day-min:4.5rem;--tab-pad:.45rem;--tab-fs:.95rem;--msg-pad:.45rem .7rem;--msg-mar:.45rem 0;
 --btn-sm-fs:.78rem;--qday:4.5rem;--day-fs:.8rem;--cellctl:1.95rem;--chart-gap:.7rem;--foot-pad:.6rem;--foot-mar:.9rem;--row-pad:.3rem 0;--row-fs:.95rem;--chip-pad:.2rem .55rem;--fs-pad:.4rem .7rem;--sum-pad:.4rem 0}}
/* touch devices and small screens keep generous targets (and rem units follow the user's text-size setting) */
@media screen and (max-width:700px),screen and (pointer:coarse){:root{--fs:.9375rem;--main-pad:.6rem;--gap:.6rem;--card-pad:.65rem .75rem;--ctl-h:2.75rem;--ctl-pad:.5rem .6rem;--btn-h:2.75rem;--btn-pad:.5rem 1rem;--btn-sm-h:2.5rem;--btn-sm-pad:.3rem .8rem;
 --cell-pad:.4rem .5rem;--lbl-m:.55rem;--lbl-fs:.875rem;--nav-h:2.75rem;--nav-pad:.4rem .8rem;--step:3rem;--step-in:4.6rem;--choice-pad:.8rem;--choice-fs:1rem;--day-pad:.45rem .6rem;--tab-pad:.65rem;--tab-fs:1rem;--small:.82rem;--th-fs:.78rem;--row-fs:1rem}}
*{box-sizing:border-box}
body{margin:0;font:var(--fs)/var(--lh) system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}
main{max-width:var(--main-max);margin:0 auto;padding:var(--main-pad)}
h1{font-size:var(--h1);margin:.4em 0}h2{font-size:var(--h2);margin:.3em 0}h3{font-size:var(--h3);margin:1em 0 .3em}
.top{display:flex;flex-wrap:wrap;gap:var(--top-gap);align-items:center;background:#14213d;color:#fff;padding:var(--top-pad)}.top a{color:#fff;text-decoration:none}.brand{font-weight:700;font-size:var(--brand)}
.who{display:flex;gap:8px;align-items:center;font-size:var(--who-fs);margin:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-r);padding:var(--card-pad);margin:var(--card-mar)}.narrow{max-width:460px;margin:var(--narrow-mar)}
.scope{display:flex;flex-wrap:wrap;gap:12px 32px}.big{font-size:var(--big)}.muted{color:var(--mut)}.small{font-size:var(--small)}.num{text-align:right}
label{display:block;margin:var(--lbl-m) 0;font-weight:600;font-size:var(--lbl-fs)}label.inline{display:flex;gap:8px;align-items:center}
input,select,textarea{display:block;width:100%;min-height:var(--ctl-h);margin-top:4px;padding:var(--ctl-pad);font:inherit;border:1px solid #98a2b3;border-radius:8px;background:#fff;color:inherit}
input[type=checkbox],input[type=radio]{display:inline-block;width:24px;min-height:24px;margin:0}
.btn{display:inline-block;min-height:var(--btn-h);padding:var(--btn-pad);font:inherit;font-weight:600;color:#fff;background:var(--pri);border:0;border-radius:8px;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.6}
.btn.small{min-height:var(--btn-sm-h);padding:var(--btn-sm-pad);font-size:var(--btn-sm-fs)}.btn.ghost{background:#fff;color:var(--pri);border:1px solid var(--pri)}.btn.danger{background:var(--err)}
.msg{padding:var(--msg-pad);border-radius:8px;margin:var(--msg-mar);font-weight:600}.msg.ok{background:#e6f6ec;color:var(--ok)}.msg.err{background:#fdecea;color:var(--err)}
.filters{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:flex-end}.filters label{flex:1 1 170px}.filters .btn{margin-bottom:var(--lbl-m)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--gap)}
.badge{display:inline-block;padding:var(--badge-pad);border-radius:99px;font-weight:700;font-size:var(--badge-fs)}.b-lunch{background:var(--lunchbg);color:var(--lunch);border:1px solid var(--lunch)}.b-dinner{background:var(--dinnerbg);color:var(--dinner);border:1px solid var(--dinner)}
.p-lunch{border-top:5px solid var(--lunch)}.p-dinner{border-top:5px solid var(--dinner)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#eef2f7;border-radius:8px;padding:var(--chip-pad)}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:var(--cell-pad);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}thead th{background:#eef2f7;font-size:var(--th-fs)}td input,td select{margin:0;min-height:var(--cellctl)}
tr.cancelled td{color:var(--mut);text-decoration:line-through}.tick{text-align:center;width:60px}
.days{display:flex;gap:8px;overflow-x:auto;padding:4px 0}.day,.tab{display:flex;flex-direction:column;align-items:center;min-width:var(--day-min);padding:var(--day-pad);border:2px solid var(--line);border-radius:10px;background:#fff;color:var(--fg);text-decoration:none;font-size:var(--day-fs)}
.day span,.tab span{font-size:var(--tiny);color:var(--mut)}.day.sel,.tab.sel{border-color:var(--pri);background:#eaf1fd}.day.st-open{border-bottom:4px solid var(--ok)}.day.st-closed,.day.st-holiday{border-bottom:4px solid var(--err)}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.tab{padding:var(--tab-pad);font-size:var(--tab-fs)}.tab.t-lunch.sel{border-color:var(--lunch);background:var(--lunchbg)}.tab.t-dinner.sel{border-color:var(--dinner);background:var(--dinnerbg)}
.status{padding:var(--fs-pad);border-radius:8px;background:#eef2f7}.status.st-open{background:#e6f6ec}.status.st-closed,.status.st-holiday{background:#fdecea}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:var(--row-pad);border-bottom:1px solid var(--line)}.row label{margin:0;font-size:var(--row-fs)}
.step{display:flex;gap:6px;align-items:center}.step button{width:var(--step);height:var(--step);font-size:1.6rem;border:1px solid var(--pri);background:#fff;color:var(--pri);border-radius:10px;cursor:pointer}.step input{width:var(--step-in);text-align:center;font-size:1.3rem;margin:0}
.choices{display:grid;gap:8px}.choice{display:flex;gap:12px;align-items:center;padding:var(--choice-pad);border:2px solid var(--line);border-radius:10px;font-size:var(--choice-fs);margin:0}
.cancel{margin-top:18px;padding-top:12px;border-top:1px dashed var(--line)}ul.plain{list-style:none;padding:0;margin:.4em 0}
.printonly{display:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.foot{display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:center;padding:var(--foot-pad);margin-top:var(--foot-mar);border-top:1px solid var(--line);color:var(--mut);font-size:var(--small)}.foot a{color:var(--pri)}
.day.today{border-style:dashed}.day.sel{border-style:solid;border-color:var(--pri);background:#eaf1fd;box-shadow:0 0 0 2px var(--pri)}
.quick .day{min-width:var(--qday)}
.loclist{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:8px 0}.choice.off{opacity:.55}
fieldset{border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:8px 12px}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px}
.chartrow{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--chart-gap);align-items:start}
@media(max-width:820px){.chartrow{grid-template-columns:minmax(0,1fr)}}
.chartscroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.chartscroll svg{display:block;min-width:720px;width:100%;height:auto}
.piewrap{max-width:260px;margin:0 auto}.piewrap svg{width:100%;height:auto}
.legend{margin-top:8px}.sw{width:12px;height:12px;vertical-align:-1px}
.pager{display:flex;gap:10px;align-items:center}
details summary{cursor:pointer;padding:var(--sum-pad);font-weight:600}
/* compact on-screen literals (not applied to print) */
@media screen{
 h3{margin:.9em 0 .3em}input,select,textarea{margin-top:3px}input[type=checkbox],input[type=radio]{width:1.4rem;min-height:1.4rem}
 .scope{gap:var(--gap) 2rem}.filters{gap:4px .8rem}.filters label{flex:1 1 9.5rem}.grid2{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
 .p-lunch{border-top-width:4px}.p-dinner{border-top-width:4px}.chips{gap:6px}.days{gap:6px;padding:3px 0}.tabs{gap:6px;margin:8px 0}
 .step button{font-size:1.4rem}.step input{font-size:1.15rem}.choices{gap:6px}.choice{gap:10px}.cancel{margin-top:14px;padding-top:10px}
 .loclist{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:6px;margin:6px 0}fieldset{margin:10px 0;padding:6px 12px}.checks{grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:3px 12px}
 .piewrap{max-width:240px}.legend{margin-top:6px}
}
/* ---- navigation ---- */
.top nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--nav-gap);flex:1 1 100%;order:3}
@media(min-width:900px){.top nav{flex:1 1 auto;order:0}}
.top nav>a,.menubtn{display:inline-flex;align-items:center;gap:.4em;min-height:var(--nav-h);padding:var(--nav-pad);border-radius:8px;color:#dbe4f5;font:inherit;background:transparent;border:0;cursor:pointer;text-decoration:none}
.top nav>a:hover,.menubtn:hover{background:rgba(255,255,255,.14);color:#fff}
.top nav>a.active,.menubtn.active{background:#fff;color:#14213d;font-weight:700;box-shadow:inset 0 -3px 0 #ffbf47}
.menubtn[aria-expanded=true]:not(.active){background:rgba(255,255,255,.2);color:#fff}
.caret::before{content:"";display:inline-block;border:.3em solid transparent;border-top-color:currentColor;border-bottom:0;vertical-align:middle}
.menubtn[aria-expanded=true] .caret{transform:rotate(180deg)}
.menu{position:relative}
.submenu{list-style:none;margin:0;padding:.25rem;background:#fff;color:var(--fg);border:1px solid var(--line);border-radius:10px;min-width:12rem}
.top nav .submenu a{display:block;padding:var(--nav-pad);min-height:var(--nav-h);line-height:calc(var(--nav-h) - .5rem);border-radius:6px;color:var(--fg);text-decoration:none;white-space:nowrap}
.top nav .submenu a:hover{background:#eaf1fd}
.top nav .submenu a.active{background:#eaf1fd;font-weight:700;box-shadow:inset 3px 0 var(--pri)}
html.js .submenu{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:60;box-shadow:0 8px 24px rgba(0,0,0,.2);max-height:calc(100vh - 4.5rem);overflow-y:auto}
html.js .submenu.right{left:auto;right:0}
html.js .menu.open>.submenu{display:block}
html:not(.js) .menubtn{pointer-events:none}
html:not(.js) .submenu{display:flex;flex-wrap:wrap;border:0;background:transparent;padding:0}html:not(.js) .top nav .submenu a{color:#dbe4f5}
@media(max-width:899px){
 html.js .submenu{position:static;box-shadow:none;max-height:min(60vh,20rem);margin:2px 0 4px;width:100%}
 html.js .menu.open{flex:1 1 100%}
}
a:focus-visible,button:focus-visible,.btn:focus-visible,.day:focus-visible,.tab:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.submenu a:focus-visible{outline-color:var(--pri)}
/* ---- print: unchanged from before; these rules use the :root defaults above (not the compact screen values) ---- */
@media print{body{background:#fff;font-size:12pt}.top,.noprint,.btn,.step button{display:none!important}.printonly{display:block}main{max-width:none;padding:0}.card,.sheet{border:0;box-shadow:none}.newpage{page-break-before:always}table{font-size:10.5pt}tr{page-break-inside:avoid}
 .foot{border:0}.chartscroll{overflow:visible}.chartscroll svg{min-width:0}.chartrow{grid-template-columns:3fr 2fr}.chartsec{page-break-inside:avoid}}

/* Breakfast is configured independently from other dayparts. */
.b-breakfast{background:#dcfce7;color:#166534}.p-breakfast{border-top-color:#16a34a}.tab.t-breakfast.sel{border-color:#16a34a;background:#f0fdf4}.st-disabled{color:#6b7280;background:#f3f4f6}
/* Destination cards fit narrow screens; quantities remain touch friendly. */
.bulk-delivery{min-width:0;margin:0 0 1rem}.bulk-delivery legend{font-weight:700;padding:0 .3rem}.bulk-actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:space-between}.bulk-grand{padding:.8rem;border:1px solid var(--border,#d1d5db);border-radius:.5rem}
