/* PosWave look: deep green-black ink, mint highlights, soft grey-green ground, big rounded touch targets.
   Fonts are bundled with the app (Open Font License, see FONTS-LICENSE.txt) so it looks the same offline. */
@font-face{font-family:Figtree;src:url(f-figtree-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Figtree;src:url(f-figtree-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Figtree;src:url(f-figtree-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Figtree;src:url(f-figtree-700.woff2) format('woff2');font-weight:700 900;font-display:swap}
@font-face{font-family:Bricolage;src:url(f-bricolage-700.woff2) format('woff2');font-weight:600 700;font-display:swap}
@font-face{font-family:Bricolage;src:url(f-bricolage-800.woff2) format('woff2');font-weight:800 900;font-display:swap}
@font-face{font-family:PlexAr;src:url(f-plexar-400.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:PlexAr;src:url(f-plexar-500.woff2) format('woff2');font-weight:500;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:PlexAr;src:url(f-plexar-600.woff2) format('woff2');font-weight:600;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:PlexAr;src:url(f-plexar-700.woff2) format('woff2');font-weight:700 900;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}

:root{
  --bg:#ECF1EF;--card:#fff;--ink:#0D1F1C;--mute:#5B6F6B;--line:#E3EAE8;--soft:#ECF1EF;
  --acc:#0B6B58;--acc2:#0D1F1C;--mint:#2FD4B4;--mintbg:#D9F5EE;--rail:#0D1F1C;--rail2:#1B3A35;--railtx:#8FA8A3;
  --bad:#B42318;--badbg:#FDE8E6;--warn:#A14B00;--warnbg:#FFF1DC;--ok:#0B6B58;--okbg:#D9F5EE;--blue:#1D4ED8;--bluebg:#E3ECFD;
  --r:20px;--rs:14px;
  --font:Figtree,PlexAr,system-ui,-apple-system,'Segoe UI',Tahoma,sans-serif;
  --disp:Bricolage,Figtree,PlexAr,system-ui,sans-serif;
  --mute2:#5B6F6B;--mut:#5B6F6B;--muted:#5B6F6B
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{font:15px/1.45 var(--font);background:var(--bg);color:var(--ink);display:flex;flex-direction:column;height:100dvh;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.num{font-family:var(--disp);font-weight:700;letter-spacing:-.2px;font-variant-numeric:tabular-nums}

/* ---------- frame: dark rail (desktop) or bottom bar (phone), slim header, content ---------- */
.shell{flex:1;display:flex;min-height:0;flex-direction:column-reverse}
.col{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px 4px;background:var(--bg);color:var(--ink);padding-top:calc(12px + env(safe-area-inset-top))}
.brand{display:flex;gap:10px;align-items:center;min-width:0}
.brand b{font-family:var(--disp);font-weight:800;font-size:18px}
.brand span{font-weight:600;font-size:15px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill{font-size:13px;font-weight:600;padding:6px 12px;border-radius:99px;background:#fff;color:var(--ink);display:inline-flex;align-items:center;gap:6px;border:0}
.pill::before{content:'';width:8px;height:8px;border-radius:4px;background:#0B9E7F}
.pill.off{background:var(--warnbg);color:var(--warn)}.pill.off::before{background:var(--warn)}
#who .pill::before{display:none}
nav{display:flex;background:var(--card);border-top:1px solid var(--line);overflow-x:auto;padding-bottom:env(safe-area-inset-bottom);scrollbar-width:none}
nav::-webkit-scrollbar{display:none}
nav .navlogo{display:none}
nav button{flex:1;min-width:66px;border:0;background:none;padding:8px 4px 7px;font-size:11px;font-weight:600;color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:3px;border-radius:14px}
nav button span{font-size:19px;line-height:1;display:flex;height:22px;align-items:center}
nav button svg{width:22px;height:22px}
nav button.on{color:var(--acc)}
main{flex:1;overflow:auto;padding:12px}
h2{margin:6px 0 14px;font-family:var(--disp);font-weight:800;font-size:24px;letter-spacing:-.2px}h3{margin:0 0 10px;font-size:17px}

/* ---------- surfaces ---------- */
.card{background:var(--card);border-radius:var(--r);padding:16px;border:1px solid transparent}
.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.sp{flex:1}
.muted{color:var(--mute)}.empty{text-align:center;color:var(--mute);padding:28px 16px}
.list>div{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.list>div:last-child{border:0}
.list .m{flex:1;min-width:0}.list .m b{display:block}.list .m small{color:var(--mute)}
.badge{font-size:12px;padding:3px 10px;border-radius:99px;background:var(--soft);font-weight:700;white-space:nowrap;color:var(--ink)}
.badge.ok{background:var(--okbg);color:var(--ok)}.badge.warn{background:var(--warnbg);color:var(--warn)}.badge.bad{background:var(--badbg);color:var(--bad)}.badge.blue{background:var(--bluebg);color:var(--blue)}

/* ---------- controls ---------- */
input,select,textarea{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:var(--rs);background:#fff;min-height:44px}
textarea{min-height:80px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc);border-color:transparent}
label{display:block;font-size:13px;font-weight:600;color:var(--mute);margin-bottom:10px}
label>input,label>select,label>textarea{margin-top:4px;color:var(--ink);font-size:15px;font-weight:400}
.btn{border:1px solid var(--line);background:#fff;padding:10px 16px;border-radius:var(--rs);font-weight:600;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--ink);text-decoration:none}
.card .btn,.sheet .btn{background:var(--soft);border-color:transparent}
.btn.primary,.card .btn.primary,.sheet .btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.primary:disabled{opacity:.45}
.btn.danger,.card .btn.danger,.sheet .btn.danger{color:var(--bad)}
.card .btn.danger,.sheet .btn.danger{background:var(--badbg)}
.btn.sm{padding:6px 12px;font-size:14px;min-height:36px;border-radius:12px}
.btn.block{width:100%;padding:14px;font-size:16px;min-height:52px}
.btn.mint,.card .btn.mint{background:var(--mint);color:var(--ink);border-color:var(--mint)}
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tabs button{flex:1;padding:9px 16px;min-height:44px;border:0;background:#fff;border-radius:99px;font-weight:600;color:var(--ink)}
.card .tabs button,.sheet .tabs button{background:var(--soft)}
.tabs button.on,.card .tabs button.on,.sheet .tabs button.on{background:var(--ink);color:#fff}
input[type=checkbox]{width:auto;min-height:0;transform:scale(1.25);accent-color:var(--acc)}
input[type=radio]{width:auto;min-height:0;accent-color:var(--acc)}
input[type=color]{padding:4px;min-height:44px}

/* ---------- sell screen ---------- */
.sell{display:grid;gap:16px;grid-template-columns:1fr}
.sbar{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.scan{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:54px;margin:0;padding:0 8px 0 18px;border-radius:27px;background:#fff;color:var(--mute);font-size:15px;box-shadow:0 0 0 2px transparent;transition:box-shadow .15s}
.scan:focus-within{box-shadow:0 0 0 2px var(--mint)}
.scan svg{flex:none;color:var(--ink)}
.scan input{border:0;padding:0;min-height:0;height:100%;background:transparent;font-size:16px;color:var(--ink);margin:0}
.scan input:focus{outline:0}
.ready{flex:none;display:flex;align-items:center;gap:7px;height:36px;padding:0 13px;border-radius:18px;background:var(--soft);color:var(--mute);font-size:13px;font-weight:700;white-space:nowrap}
.ready::before{content:'';width:8px;height:8px;border-radius:4px;background:#9FB0AC}
.ready .on{display:none}
.scan:focus-within .ready{background:var(--mintbg);color:var(--acc)}
.scan:focus-within .ready::before{background:#0B9E7F}
.scan:focus-within .ready .on{display:inline}.scan:focus-within .ready .off{display:none}
.tool{width:48px;height:48px;flex:none;border:0;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;position:relative;color:var(--ink);font-weight:700}
.tool svg{width:22px;height:22px}
.tool i{position:absolute;top:-4px;inset-inline-end:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--mint);color:var(--ink);font-style:normal;font-size:12px;display:flex;align-items:center;justify-content:center}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.item{background:var(--card);border:0;border-radius:var(--r);padding:0;text-align:start;display:flex;flex-direction:column;min-height:118px;overflow:hidden;box-shadow:0 1px 0 rgba(13,31,28,.06);transition:transform .08s}
.item::before{content:'';display:block;height:8px;flex:none;background:var(--tone,var(--mint))}
.item:has(.th)::before{display:none}
.item:active{transform:scale(.97)}
.item b{font-size:16px;font-weight:600;line-height:1.25;padding:12px 14px 0}
.item small{color:var(--mute);font-size:13px;padding:0 14px}
.item small.low{color:var(--warn);font-weight:700}
.item .ft{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:8px 14px 12px}
.item .pr{font-family:var(--disp);font-weight:700;font-size:19px;color:var(--ink);margin-top:auto;padding:8px 14px 12px}
.item .ft .pr{padding:0;margin:0}
.item .ft small{padding:0;text-align:end}
.item .pr small{padding:0;font-size:12px;color:var(--mute);font-family:var(--font);font-weight:600;letter-spacing:0}
.item.out{opacity:.45}
.th{width:44px;height:44px;object-fit:cover;border-radius:12px;flex:none}
.item .th{width:100%;height:84px;border-radius:0}
.tabs.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs.scroll::-webkit-scrollbar{display:none}
.tabs.scroll button{flex:0 0 auto;white-space:nowrap;padding:9px 20px}
.seg{display:inline-flex;background:#fff;border-radius:22px;padding:4px;gap:2px;margin-bottom:12px}
.seg button{border:0;background:transparent;height:38px;padding:0 18px;border-radius:19px;font-weight:600;color:var(--ink)}
.seg button.on{background:var(--ink);color:#fff}

/* ticket */
.cart{position:sticky;top:0;align-self:start;border-radius:26px;padding:18px}
.ccust{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.ccust .av{width:44px;height:44px;border-radius:22px;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--mintbg);color:var(--acc)}
.ccust .av.walk{background:var(--soft);color:var(--mute)}
.ccust .who{flex:1;min-width:0;line-height:1.3;text-align:start;border:0;background:none;padding:4px 0}
.ccust .who b{display:block;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccust .who small{display:block;color:var(--mute);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cline{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:12px 10px;margin:0 -10px;border-bottom:1px solid var(--line);border-radius:14px;align-items:center}
.cline>div:first-child b{font-size:15px;font-weight:600}
.cline .muted{font-size:13px}
.cline.fresh{background:#E6FAF5;border-color:transparent}
.cline .fr{display:none;font-size:12px;font-weight:700;color:var(--acc);margin-top:2px}
.cline.fresh .fr{display:block}
.cline select{padding:5px 10px;font-size:13px;min-height:34px;margin-top:6px}
.cline .lt{font-weight:700;text-align:end;font-size:15px;white-space:nowrap}
.qty{display:flex;align-items:center;gap:6px;background:var(--soft);border-radius:20px;padding:3px;justify-self:end}
.qty button{width:34px;height:34px;border-radius:17px;border:0;background:#fff;font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center}
.qty b{min-width:18px;text-align:center}
.tot{display:flex;justify-content:space-between;padding:3px 0;color:var(--mute)}
.tot span:last-child{color:var(--ink);font-weight:600}
.tot.disc span:last-child{color:var(--acc)}
.tot.g{font-size:20px;font-weight:800;border-top:1px solid var(--line);margin-top:6px;padding-top:8px;color:var(--ink)}
.pay{display:flex!important;justify-content:space-between!important;align-items:center;gap:10px;padding:16px 20px!important;border-radius:22px!important;min-height:72px!important;margin-top:12px}
.pay>span{font-size:18px;font-weight:700;color:var(--mint)}
.pay>b{font-family:var(--disp);font-weight:800;font-size:30px;letter-spacing:-.4px;white-space:nowrap}
.pay>b small{font-size:15px;font-weight:600;color:#9FB5B0;letter-spacing:0}
.cacts{display:flex;gap:8px;margin-top:10px}.cacts .btn{flex:1}
.pmeth{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.pmeth .btn{text-transform:uppercase;font-size:13px}

/* ---------- dashboard & reports ---------- */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}
.stat{background:var(--card);border:0;border-radius:var(--r);padding:16px 18px}
.stat small{color:var(--mute);display:block;font-weight:600;font-size:13px}.stat b{font-family:var(--disp);font-size:24px;font-weight:800;letter-spacing:-.3px}
.stat div{margin-top:4px}
.bars{display:flex;align-items:flex-end;gap:5px;height:140px;padding-top:8px}
.bars div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:11px;color:var(--mute);min-width:0}
.bars i{display:block;width:100%;background:var(--acc);border-radius:4px 4px 0 0;min-height:2px}
.hb{margin:10px 0}.hbl{display:flex;justify-content:space-between;gap:8px;font-size:14px}.hbl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbl b{white-space:nowrap}
.hbt{height:10px;background:var(--soft);border-radius:99px;margin-top:5px}.hbt i{display:block;height:100%;background:var(--acc);border-radius:99px}
.att{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.att:last-child{border-bottom:0}
.two{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px}@media(min-width:760px){.two{grid-template-columns:1fr 1fr}}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 6px;border-bottom:1px solid var(--line)}th{font-size:12px;color:var(--mute);font-weight:700}td.r,th.r{text-align:right}
tr.foot td{border-top:2px solid var(--ink)}
.tw{overflow-x:auto}

/* ---------- dialogs, toast, lock screen ---------- */
#modal:empty{display:none}
.backdrop{position:fixed;inset:0;background:rgba(13,31,28,.55);display:flex;align-items:flex-end;justify-content:center;z-index:50}
.sheet{background:#fff;width:100%;max-width:500px;max-height:92dvh;overflow:auto;border-radius:26px 26px 0 0;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}
.big{font-family:var(--disp);font-size:40px;font-weight:800;text-align:center;margin:4px 0 14px;letter-spacing:-.5px}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 18px;border-radius:99px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:.2s;z-index:99;max-width:90vw}
#toast.show{opacity:1}
#lock{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}
#lock:empty{display:none}
.lockbox{background:#fff;border:0;border-radius:28px;padding:26px;width:100%;max-width:380px;text-align:center}
.lockbox h2{margin-top:0}
.lockbox label{display:block;text-align:start}
.users{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}
.uchip{border:0;background:var(--soft);border-radius:16px;padding:10px 16px;display:flex;flex-direction:column;align-items:center;min-height:44px}
.uchip small{color:var(--mute);text-transform:capitalize}
.uchip.on{background:var(--ink);color:#fff}.uchip.on small{color:#9FB5B0}
#lock input{text-align:center;font-size:22px;letter-spacing:6px;margin-bottom:10px}
#lock label input{letter-spacing:normal;font-size:16px;text-align:start}
.warnbar{background:var(--warnbg);border-color:transparent;margin-bottom:12px}
.shiftbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px 10px 16px}
.shiftbar.off{background:var(--warnbg)}
.shiftbar .m{flex:1;min-width:160px}.shiftbar .m b,.shiftbar .m small{display:block}.shiftbar small{color:var(--mute)}
.top-r{display:flex;gap:8px;align-items:center}
#who{font-size:13px;display:flex;gap:8px;align-items:center;font-weight:600}
#who .pill{cursor:pointer;background:#fff;color:var(--ink);min-height:40px;padding:0 14px}
#who .pill[data-act=lock]{background:var(--ink);color:#fff}
#who .pill svg{display:block}
.sep{border-top:1px solid var(--line);margin:16px 0;text-align:center;color:var(--mute);font-size:13px;padding-top:10px}
.hint{display:block;font-size:12px;line-height:1.4;color:var(--mute);margin-top:4px;font-weight:400}
.stabs{flex-wrap:wrap}.stabs button{flex:1 1 auto;min-width:110px}.stabs button.on{background:var(--ink);color:#fff}
.cth{width:22px;height:22px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-inline-end:6px}
.tabs button .cth{margin-top:-2px}

/* web order stages */
.stps{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.stps .stp{font-size:12px;padding:3px 10px;border-radius:99px;background:var(--soft);color:var(--mute);border:1px solid transparent}
.stps .stp.past{background:var(--okbg);color:var(--ok)}
.stps .stp.now{background:var(--ink);color:#fff;font-weight:700}

/* ---------- receipt (always plain black on white) ---------- */
.receipt{font:13px/1.4 ui-monospace,Menlo,monospace;color:#000;padding:4px}
.receipt h4{text-align:center;margin:0 0 2px;font-size:16px}.receipt .c{text-align:center}
.receipt hr{border:0;border-top:1px dashed #000;margin:6px 0}
.receipt .l{display:flex;justify-content:space-between;gap:8px}
.tmp-receipt{display:none}
@media print{
  @page{margin:6mm}
  body:not(.pr-report) *{visibility:hidden}
  body:not(.pr-report) #receipt,body:not(.pr-report) #receipt *{visibility:visible}
  #receipt{position:absolute;left:0;top:0;width:80mm}
  .tmp-receipt{display:block}
  body.pr-report{display:block;height:auto;background:#fff}
  body.pr-report .top,body.pr-report nav,body.pr-report .noprint,body.pr-report #toast{display:none!important}
  body.pr-report .shell,body.pr-report .col{display:block}body.pr-report main{overflow:visible}
  body.pr-report .card{border:1px solid #ccc}
}
#labelsheet{display:none}
@media print{
  body.pr-labels > *:not(#labelsheet){display:none!important}
  body.pr-labels #labelsheet{display:block!important}
}

/* right-to-left */
html[dir=rtl] body{text-align:right}
html[dir=rtl] .r,html[dir=rtl] th.r,html[dir=rtl] td.r{text-align:left}
html[dir=rtl] th,html[dir=rtl] td{text-align:right}
html[dir=rtl] .l{direction:rtl}
html[dir=rtl] .scan svg.ic-scan{transform:scaleX(-1)}

/* installed / native app */
html.app body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}
html.native body{-webkit-user-select:none;user-select:none;padding-top:env(safe-area-inset-top)}
html.native .top{padding-top:12px}
html.native input,html.native textarea{-webkit-user-select:text;user-select:text}
html.native nav{padding-bottom:env(safe-area-inset-bottom)}

/* ---------- wide screens: dark rail, ticket panel on the right ---------- */
@media(min-width:820px){
  .shell{flex-direction:row}
  nav{flex-direction:column;align-items:center;border-top:0;width:88px;flex:none;background:var(--rail);overflow-y:auto;overflow-x:hidden;padding:16px 0;gap:6px}
  nav .navlogo{display:flex;width:44px;height:44px;flex:none;border-radius:14px;background:var(--mint);color:var(--ink);font-family:var(--disp);font-weight:800;font-size:22px;align-items:center;justify-content:center;margin-bottom:12px}
  nav button{flex:none;width:68px;min-width:0;padding:9px 2px 8px;color:var(--railtx);text-align:center;line-height:1.15}
  nav button:hover{color:#fff}
  nav button.on{background:var(--rail2);color:var(--mint)}
  .top{padding:16px 24px 4px}
  .brand>b{display:none}
  .brand span{font-family:var(--disp);font-weight:700;font-size:20px;color:var(--ink)}
  .sell{grid-template-columns:minmax(0,1fr) 380px;align-items:start}
  .sell>#cartbox{position:sticky;top:0}
  .cart{max-height:calc(100dvh - 110px);overflow:auto}
  .stats{grid-template-columns:repeat(4,1fr)}
  .backdrop{align-items:center}.sheet{border-radius:26px}
  main{padding:14px 24px 24px}
}
@media(min-width:1180px){.grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}}

/* ---------- phone: compact header, total and Pay always in reach ---------- */
.cbar{display:none}
@media(max-width:819px){
  .top{padding:10px 12px 4px;padding-top:calc(10px + env(safe-area-inset-top))}
  .brand>b{display:none}.brand span{font-family:var(--disp);font-weight:700;font-size:17px;color:var(--ink);max-width:none}
  #who .pill{min-height:36px;padding:0 11px}
  .sbar .tool[data-act=openDisplay]{display:none}
  #who>span:first-child{display:none}
  .top-r{gap:6px}
  .cart{position:static}
  main{padding:8px 12px 0}
  .sell>div:first-child{min-width:0}
  .shiftbar{padding:8px 10px}.shiftbar .m{min-width:0}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .item{min-height:108px}
  .item .th,.item img.th{height:96px;object-fit:cover}
  .scan{height:50px;padding-inline-start:14px}
  .ready{display:none}
  .tool{width:46px;height:46px}
  .cbar{display:flex;gap:8px;align-items:center;position:sticky;bottom:0;margin:12px -12px 0;padding:10px 12px;background:var(--bg);z-index:5}
  .cbar .cb-l{flex:1;display:flex;justify-content:space-between;align-items:center;border:0;background:var(--ink);color:#fff;font-size:15px;font-weight:600;padding:0 18px;min-height:56px;border-radius:20px;text-align:start}
  .cbar .cb-l b{font-family:var(--disp);font-size:20px;font-weight:800;color:#fff}
  .cbar .btn{min-height:56px;padding:0 24px;font-size:17px;border-radius:20px}
  .cbar .btn.primary{background:var(--mint);border-color:var(--mint);color:var(--ink)}
  .qty button{width:36px;height:36px}
}

/* ---------- restaurant: tables and kitchen ---------- */
.tbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}
.tbl{border:0;background:#fff;border-radius:18px;padding:12px 4px;display:flex;flex-direction:column;align-items:center;min-height:70px}
.tbl.busy{background:var(--warnbg)}.tbl.on{outline:2px solid var(--ink)}.tbl b{font-family:var(--disp);font-size:20px}.tbl small{font-size:12px;color:var(--mute)}
.kgrid{display:grid;grid-template-columns:1fr;gap:14px}@media(min-width:900px){.kgrid{grid-template-columns:repeat(3,1fr)}}
.kcol h3{display:flex;gap:8px;align-items:center}
.kcard{background:#fff;border:0;border-top:6px solid #8FB8F5;border-radius:18px;padding:12px;margin-bottom:12px}
.kcard.prep{border-top-color:#F4B740}.kcard.ready{border-top-color:var(--mint)}.kcard.late{background:var(--badbg)}
.kcard ul{list-style:none;margin:8px 0;padding:0}.kcard li{padding:5px 0;border-bottom:1px dashed var(--line);font-size:16px}
.knote{color:var(--bad);font-weight:600}
#cbarbox{display:contents}
.sbar>.btn{height:48px;min-width:48px;border:0;border-radius:16px;padding:0 12px}

/* ---------- owner dashboard ---------- */
.dhead{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin:2px 0 18px}
.dhead h2{margin:0;font-size:30px}
.dhead .seg{margin:0}
.dsel{width:auto;min-width:160px;border:0;border-radius:22px;font-weight:600}
.drow{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}
.drow>.w2{flex:2 1 480px;min-width:0}.drow>.w1{flex:1 1 280px;min-width:0}
.drow>.card{margin:0}
.hero{background:var(--mint);color:var(--ink);border-radius:28px;padding:22px 24px 18px;display:flex;flex-direction:column;gap:16px}
.hero-t{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px}
.hero-l{font-weight:700;font-size:17px}
.hero-n{font-family:var(--disp);font-weight:800;font-size:56px;line-height:1;letter-spacing:-1.5px;margin-top:6px;white-space:nowrap}
.hero-n small{font-size:22px;letter-spacing:0;font-weight:700}
.cmp{background:var(--ink);color:#fff;border-radius:16px;padding:10px 14px;line-height:1.3;max-width:240px}
.cmp b{display:block;color:var(--mint);font-size:17px}.cmp small{color:#C9D6D3;font-size:13px}
.hbars{display:flex;align-items:flex-end;gap:5px;height:128px;padding-top:20px}
.hbars div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;position:relative;min-width:0}
.hbars i{display:block;background:#1E5C50;border-radius:4px 4px 0 0;min-height:2px}
.hbars i.pk{background:var(--ink)}
.hbars em{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-style:normal;font-size:12px;font-weight:700;white-space:nowrap;margin-bottom:-14px}
.hbars div:has(em){justify-content:flex-end}
.hbars div:has(em) i{margin-top:16px}
.hlabels{display:flex;gap:5px;border-top:2px solid rgba(13,31,28,.25);padding-top:6px;margin-top:-10px}
.hlabels span{flex:1;text-align:center;font-size:12px;font-weight:600;min-width:0;overflow:hidden}
.hero-f{font-size:14px;font-weight:600}.hero-f span{font-weight:400;opacity:.85}
.tiles{display:flex;flex-direction:column;gap:16px}
.tile{flex:1;background:#fff;border-radius:24px;padding:18px 20px;display:flex;flex-direction:column;justify-content:center;gap:2px}
.tile small{color:var(--mute);font-weight:600;font-size:14px}
.tile b{font-family:var(--disp);font-weight:800;font-size:30px;line-height:1.1;letter-spacing:-.4px}
.tile b small{font-size:15px;color:var(--mute);font-weight:600;letter-spacing:0}
.tn{font-size:14px;font-weight:600;color:var(--mute)}.tn .up{color:var(--ok)}.tn .down{color:var(--bad)}
.lgd{display:flex;gap:16px;font-size:13px;color:var(--mute)}.lgd span{display:flex;align-items:center;gap:6px}
.lgd i{display:inline-block;width:18px;height:0;border-top:2px solid var(--acc)}.lgd i.pv{border-top:2px dashed #7D8F8B}
.lc{display:flex;gap:8px;margin-top:14px;direction:ltr}
.lc-y{display:flex;flex-direction:column;justify-content:space-between;height:220px;font-size:12px;color:var(--mute);text-align:end;min-width:34px;margin-top:-7px;margin-bottom:-7px}
.lc-p{flex:1;min-width:0;position:relative;height:220px;margin-bottom:28px}
.lc-p svg{display:block;width:100%;height:220px;overflow:visible}
.lc-p path{fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.lc-p .g{stroke:var(--line);stroke-width:1}.lc-p .b{stroke:#B9C7C4;stroke-width:1}
.lc-p .pv{stroke:#7D8F8B;stroke-width:2;stroke-dasharray:5 5}.lc-p .cu{stroke:var(--acc);stroke-width:2.5}
.lc-p .hit{fill:transparent;stroke:none;cursor:default}.lc-p .hit:hover{fill:var(--acc);fill-opacity:.25}
.lc-dot{position:absolute;inset-inline-end:-6px;width:12px;height:12px;margin-top:-6px;border-radius:6px;background:var(--acc);box-shadow:0 0 0 2px #fff}
.lc-end{position:absolute;inset-inline-end:10px;font-size:13px;margin-top:-8px}
.lc-x{position:absolute;left:0;right:0;top:100%;height:24px}
.lc-x span{position:absolute;top:8px;transform:translateX(-50%);font-size:12px;color:var(--mute);white-space:nowrap}
.lc-x span.f{transform:none}.lc-x span.l{transform:translateX(-100%)}
.pstack{display:flex;gap:2px;height:14px;border-radius:7px;overflow:hidden;margin:8px 0 10px}
.pstack i{display:block;height:100%}
.plist div{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:14px}
.plist i{width:10px;height:10px;border-radius:3px;flex:none}.plist span{text-transform:capitalize}
.plist small{width:42px;text-align:end;color:var(--mute)}
.rank{margin-top:10px}
.rank>div{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);min-height:56px}
.rank>div:last-child{border-bottom:0}
.rank i{width:28px;height:28px;border-radius:9px;background:var(--soft);font-style:normal;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.rank small{color:var(--mute);font-size:13px;white-space:nowrap}
.rank .lowt{color:var(--warn);font-weight:700}
.rank .av{width:40px;height:40px;border-radius:20px;background:var(--mintbg);color:var(--acc);font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.rank .sp{min-width:0}
.lnk{border:0;background:none;color:var(--acc);font-weight:700;font-size:14px;padding:6px 4px;min-height:36px}
.stat.soft{background:var(--soft)}
.dstrip{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
#sysstat{margin:0}
.dchip{display:flex;align-items:center;gap:10px;background:#fff;border-radius:18px;padding:12px 16px;font-weight:600;font-size:14px}
.dchip.ok svg{color:var(--ok)}.dchip.warn svg{color:var(--warn)}
.dchip.dark{background:var(--ink);color:#fff;padding:8px 8px 8px 16px}
html[dir=rtl] .dchip.dark{padding:8px 16px 8px 8px}
@media(max-width:819px){
  .dhead h2{font-size:24px}
  .hero{padding:18px}.hero-n{font-size:42px}
  .hbars em{display:none}
  .tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{padding:14px 16px}.tile b{font-size:22px}
}
.hero .hbars{flex:1;min-height:128px}
.htabs button{display:inline-flex;align-items:center;gap:8px}
.htabs button svg{flex:none}
.lc-end{background:rgba(255,255,255,.9);padding:0 5px;border-radius:6px}
.hero-f b{font-weight:700}
.cacts .btn.on{background:var(--ink);color:#fff}
@media(min-width:820px){
  .cart{display:flex;flex-direction:column;max-height:calc(100dvh - 96px);overflow:hidden}
  .clines{flex:1 1 auto;overflow:auto;min-height:90px;margin:0 -10px;padding:0 10px}
  .cfoot{flex:none}
}
@media(min-width:820px){.cart{max-height:calc(100dvh - 92px)}.sell .shiftbar{padding:8px 10px 8px 16px}}
.seg button{white-space:nowrap}
@media(max-width:819px){.dhead .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.dhead .seg::-webkit-scrollbar{display:none}.seg button{padding:0 14px}}
/* racks (laundry, repairs) */
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.rack{border:0;border-radius:18px;background:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:2px;text-align:start;min-height:84px;color:var(--mute)}
.rack b{font-family:var(--disp);font-size:22px;color:var(--ink)}
.rack.used{background:var(--ink);color:#C9D6D3;cursor:pointer}.rack.used b{color:var(--mint)}
.tool.on{background:var(--ink);color:#fff}
.btn{white-space:nowrap}.btn.sp,.btn.block,.ccust .btn,.lockbox .btn{white-space:normal}
/* phone: list rows put their buttons on a second line instead of squeezing the text */
@media(max-width:819px){
  .list>div{flex-wrap:wrap;row-gap:8px}
  .list>div>.m{flex:1 1 calc(100% - 64px)}
  .list>div>.btn,.list>div>.badge,.list>div>a.btn{flex:none}
}
