@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter-var.woff2') format('woff2')}
:root{--yel:#F9C21A;--yel2:#FFD75A;--ink:#111;--paper:#fff;--grey:#f3f3f1;--line:#d9d9d6;--muted:#777;--ok:#2e9d5b;--warn:#d9822b;--bad:#c23b3b}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.h1{font-size:24px;font-weight:900;margin:0 0 6px;line-height:1.15}
.h1.sm{font-size:19px}
.h2{font-size:16px;font-weight:800;margin:18px 0 8px}
.sub{color:var(--muted);font-size:14px;margin:0 0 12px}
.note{font-size:12px;color:var(--muted);font-style:italic;margin:8px 0 0}
.muted{color:var(--muted)}.small{font-size:12px}.num{font-weight:800;font-variant-numeric:tabular-nums}.name{font-weight:800}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.row-gap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-gap.wrap{flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.grid2.top{align-items:start}
@media (max-width:720px){.grid2,.grid3,.grid4{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}
label{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:8px 0 4px}
label.check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);font-weight:700}
.label{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:8px 0 4px}
.input{display:block;width:100%;border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;font:inherit;color:var(--ink);background:#fff;margin:0}
textarea.input{resize:vertical}
select.input{appearance:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:10px;font-weight:800;font-size:14px;border:2px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;font-family:inherit;line-height:1.2}
.btn.primary{background:var(--yel);border-color:var(--yel)}.btn.dark{background:var(--ink);color:var(--yel)}.btn.ghost{border-color:var(--line);font-weight:700}.btn.block{display:flex;width:100%}.btn.big{padding:16px;font-size:18px}.btn.sm{padding:5px 10px;font-size:12px;border-width:1.5px}.btn.bad{color:var(--bad);border-color:var(--bad)}
.pill{display:inline-block;font-size:11px;font-weight:800;padding:2px 9px;border-radius:10px;background:var(--grey);color:#444;white-space:nowrap}
.pill.yel{background:var(--yel);color:var(--ink)}.pill.ok{background:#dff3e6;color:#1d6b3a}.pill.warn{background:#fbe9d5;color:#8a4a0e}.pill.bad{background:#f7dcdc;color:#8a1f1f}.pill.dark{background:var(--ink);color:var(--yel)}.pill.sm{font-size:9px;padding:1px 6px}
.card{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px;background:#fff}
.card.dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.flash{padding:10px 14px;border-radius:8px;margin:0 0 12px;font-weight:700;font-size:13px;background:#dff3e6;color:#1d6b3a}
.flash.error{background:#f7dcdc;color:#8a1f1f}.flash.info{background:#fff3c4;color:#5a4300}
/* public */
.brandbar{padding:12px 16px;background:var(--ink);color:#fff;position:sticky;top:0;z-index:10}
.brandbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1120px;margin:0 auto}
.topnav{display:none;align-items:center;justify-content:center;gap:4px}
.topsoc{display:none;align-items:center;gap:6px;justify-content:flex-end}
.topnav a{padding:8px 12px;border-radius:8px;font-weight:800;font-size:14px;color:#ddd}.topnav a.on{color:var(--yel)}.topnav a:hover{background:#222;color:#fff}
.topnav a.act{background:var(--yel);color:var(--ink);margin:0 6px}.topnav a.act:hover{background:var(--yel2)}
.topsoc .soc{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;color:#fff;margin-left:4px}.topsoc .soc.ig{background:linear-gradient(45deg,#f58529,#dd2a7b 50%,#8134af)}.topsoc .soc.fb{background:#1877f2}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.02em;color:inherit}
.logo .mark{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #fff;background:#000}
.logo .mark.sm{width:24px;height:24px}
.logo span{display:flex;flex-direction:column;line-height:1.1}.logo small{font-size:10px;color:var(--yel);letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.burger{background:none;border:0;color:var(--yel);font-size:24px;font-weight:900;padding:2px 4px;cursor:pointer}
.drawer{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:20;display:flex;justify-content:flex-end}
.drawer[hidden]{display:none}
.drawer .pane{width:min(78%,320px);background:var(--ink);color:#fff;padding:18px;display:flex;flex-direction:column}
.drawer .x{align-self:flex-end;background:none;border:0;color:var(--yel);font-size:20px;font-weight:900;cursor:pointer;margin-bottom:10px}
.drawer .it{padding:14px 4px;border-bottom:1px solid #333;font-size:18px;font-weight:800;color:#fff}.drawer .it.on{color:var(--yel)}
.drawer .foot{margin-top:auto;border-top:1px solid #333;padding-top:14px;display:flex;gap:12px;align-items:center}
.drawer .soc{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff}
.drawer .soc.ig{background:linear-gradient(45deg,#f58529,#dd2a7b 50%,#8134af)}.drawer .soc.fb{background:#1877f2}
.drawer .tcs{margin-left:auto;font-size:11px;color:#888;font-weight:700}
.page{max-width:1120px;margin:0 auto;padding:16px 16px 60px}
.page.narrow{max-width:640px}
.ban{position:relative;display:block;height:150px;border-radius:12px;overflow:hidden;margin-bottom:10px;background:#222 center/cover no-repeat;color:#fff}
.ban::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.9) 100%)}
.ban.big,.ban.hero{height:200px}.ban.hero{height:230px}
.ban.hero::after,.ban.big::after{background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.55) 35%,rgba(0,0,0,.92) 100%)}
.ban .t{position:absolute;left:12px;right:12px;bottom:12px;z-index:1}
.ban .d{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--yel)}
.ban .n{font-size:20px;font-weight:900;line-height:1.1}.ban .h{font-size:12px;color:#ddd;font-weight:700}
.ban .pill{position:absolute;top:10px;left:10px;z-index:1}
.ban .btn{margin-top:10px}
.ban .dot{position:absolute;width:16px;height:16px;border-radius:50%;border:3px solid var(--yel);background:rgba(0,0,0,.4);transform:translate(-50%,-50%);z-index:2;pointer-events:none}
.dish{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--grey)}
.dish .img{width:58px;height:58px;border-radius:8px;background:var(--grey) center/cover;flex:none}
.dish .t{flex:1;min-width:0}.dish .n{font-weight:800}.dish .dsc{font-size:12px;color:var(--muted)}.dish .p{font-weight:900}
.dish.soldout{opacity:.45}
.cats{display:flex;gap:6px;margin:0 0 8px;overflow-x:auto;padding-bottom:4px}
.cats a{padding:6px 12px;border-radius:14px;border:1.5px solid var(--line);font-size:12px;font-weight:800;white-space:nowrap}
.cats a.on{background:var(--ink);color:var(--yel);border-color:var(--ink)}.cats a.dis{opacity:.4}
/* admin */
body.admin{background:#e7e6e2}
.shell{display:flex;min-height:100vh}
.side{width:200px;flex:none;background:#fafaf8;border-right:1px solid var(--line);padding:14px 12px;display:flex;flex-direction:column;gap:2px}
.side .logo{margin:0 0 14px 4px;color:var(--ink)}
.side .item{display:block;padding:8px 10px;border-radius:8px;color:var(--muted);font-weight:700;font-size:13px}.side .item.on{background:var(--yel);color:var(--ink)}
.side .logout{margin-top:auto}
.main{flex:1;padding:18px 22px;min-width:0}
@media (max-width:720px){.shell{flex-direction:column}.side{width:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.side nav{display:flex;flex-wrap:wrap;gap:2px}.side .logout{margin-left:auto}.main{padding:14px}}
.table-card{padding:0;overflow:visible}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--muted);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:1px solid var(--line)}
td{padding:10px;border-bottom:1px solid var(--grey);vertical-align:middle}
tr.muted td{color:var(--muted)}tr.editing td{background:#fff8dc}
.thumb{display:block;width:64px;height:40px;border-radius:6px;background:var(--grey) center/cover}.thumb.sq{width:40px;height:40px}
.actions{text-align:right;white-space:nowrap}
.kebab-menu{position:relative;display:inline-block}
.kebab-menu summary{list-style:none}.kebab-menu summary::-webkit-details-marker{display:none}
.kebab{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border:1.5px solid var(--line);border-radius:7px;font-weight:900;font-size:16px;letter-spacing:1px;background:#fff;cursor:pointer}
.kebab-menu[open] .kebab{background:var(--ink);color:var(--yel);border-color:var(--ink)}
.menu-pop{position:absolute;right:0;top:34px;z-index:5;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);min-width:220px;padding:6px 0;text-align:left}
.menu-pop a,.menu-pop button{display:block;width:100%;padding:8px 14px;font-size:13px;font-weight:700;background:none;border:0;text-align:left;cursor:pointer;font-family:inherit;color:var(--ink)}
.menu-pop a:hover,.menu-pop button:hover{background:var(--grey)}.menu-pop .bad{color:var(--bad)}.menu-pop hr{border:0;border-top:1px solid var(--grey);margin:4px 0}
.ib{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);cursor:pointer;font-family:inherit}
.toggle{display:inline-block;width:34px;height:18px;border-radius:9px;background:#ccc;position:relative;border:0;cursor:pointer;padding:0}
.toggle::after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff}
.toggle.on{background:var(--ink)}.toggle.on::after{left:auto;right:2px;background:var(--yel)}
.stat{border:1px solid var(--line);border-radius:10px;padding:8px 14px;background:#fff}.stat .v{font-size:20px;font-weight:900}.stat .l{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.back{display:inline-block;font-size:12px;color:var(--muted);margin-bottom:4px}
.modal-wrap{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:30;display:flex;align-items:flex-start;justify-content:center;padding:24px 12px;overflow:auto}
.modal{width:100%;max-width:680px;background:#fff;border-radius:12px;padding:18px 22px;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.modal .x{font-size:18px;color:var(--muted)}
.banner-edit{display:flex;gap:12px;align-items:stretch}
.banner-edit .full{width:150px;height:150px;flex:none;border-radius:8px;background:#111 center/contain no-repeat;border:1.5px solid var(--line);color:#999;display:flex;align-items:center;justify-content:center;font-size:12px}
.banner-edit .prev{flex:1;display:flex;flex-direction:column;gap:6px}
.banner-edit [data-focus-preview]{cursor:crosshair}
@media (max-width:600px){.banner-edit{flex-direction:column}.banner-edit .full{width:100%}}
.cat-row .input{max-width:260px}
.login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.login-box{width:100%;max-width:380px;text-align:center;background:#fff;padding:28px 24px;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.15)}
.login-box label{text-align:left}.login-box .btn{margin-top:14px}
/* options editor */
.og{border:1.5px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;background:#fff}
.og .head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.og .head .input{width:auto}
.og table{margin-top:8px}.og td,.og th{padding:5px 6px}.og .input{padding:6px 8px;font-size:13px}
.matrix td .input{width:80px}
/* ordering: picker sheet, basket, checkout, pay, status */
.sheet-wrap{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet-wrap[hidden]{display:none}
.sheet{width:100%;max-width:560px;max-height:92vh;overflow:auto;background:#fff;border-radius:18px 18px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.sheet .x{background:none;border:0;font-size:20px;color:var(--muted);cursor:pointer;padding:2px 6px}
.sheet .hint{font-weight:600;text-transform:none;letter-spacing:0}
.tiles{display:grid;gap:6px}.tiles.cols2{grid-template-columns:1fr 1fr}.tiles.cols3{grid-template-columns:repeat(3,1fr)}.tiles.cols4{grid-template-columns:repeat(4,1fr)}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 4px;border:2px solid var(--line);border-radius:10px;background:#fff;font:inherit;font-weight:800;font-size:13px;cursor:pointer;min-height:48px;color:var(--ink)}
.tile small{font-weight:700;color:var(--muted);font-size:11px}
.tile.on{background:var(--ink);color:var(--yel);border-color:var(--ink)}.tile.on small{color:#ddd}
.tile.dis,.tile:disabled{opacity:.4;cursor:default}
.kv{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--grey);font-size:14px}
.kv.dis{opacity:.5}.kv .r{display:inline-flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}
.kv.total{border-bottom:0;font-weight:900;font-size:18px;margin-top:8px;padding-top:8px}
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:8px;overflow:hidden;vertical-align:middle}
.qty button{width:32px;height:32px;border:0;background:#fff;font-size:18px;font-weight:900;cursor:pointer;font-family:inherit;color:var(--ink)}
.qty b{min-width:26px;text-align:center;font-size:14px}
.qty.big button{width:42px;height:42px}
.ol{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--grey);text-align:left}
.ol .q{flex:none;min-width:22px;height:22px;padding:0 5px;border-radius:6px;background:var(--ink);color:var(--yel);font-weight:900;font-size:12px;display:inline-flex;align-items:center;justify-content:center}
.ol .t{flex:1;min-width:0}.ol .n{font-weight:800;line-height:1.25}.ol .o{font-size:12px;color:var(--muted)}.ol .o.x{color:var(--ink)}
.ol .p{font-weight:900;white-space:nowrap}.ol .rm{background:none;border:0;color:var(--muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}
.ol[data-edit]{cursor:pointer}
.basket{margin-top:16px;background:#fafaf8;border:1px solid var(--line);border-radius:10px;padding:6px 12px 10px}
.lines .ol:last-of-type{border-bottom:0}
.sticky-basket{position:fixed;left:0;right:0;bottom:0;z-index:15;background:var(--ink);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px rgba(0,0,0,.3)}
.sticky-basket[hidden]{display:none}
.sticky-basket .tot{color:var(--yel);font-weight:900}
body.has-bar .page{padding-bottom:96px}
body.noscroll{overflow:hidden}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.slots .tile{position:relative;padding:9px 4px}.slots .tile input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.slots .tile:has(input:checked){background:var(--ink);color:var(--yel);border-color:var(--ink)}.slots .tile.dis{opacity:.35}
.paybox{border:1.5px solid var(--line);border-radius:10px;padding:12px;background:#fff;margin-top:8px}
.paybox .ph{font-weight:800;font-size:13px;margin-bottom:4px}
.paybox .secured{font-size:11px;color:var(--muted);text-align:center;margin-top:10px}
.status{text-align:center}
.bignum{font-size:96px;font-weight:900;line-height:1;margin:4px 0 8px;font-variant-numeric:tabular-nums}
.bignum.ready{background:var(--yel);border-radius:18px;display:inline-block;padding:6px 28px}
.steps{display:flex;gap:4px;margin:14px 0}.step{flex:1;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:6px 2px;border-radius:6px;background:var(--grey);color:#999}
.step.done{background:#dff3e6;color:#1d6b3a}.step.now{background:var(--ink);color:var(--yel)}
.spinner{width:36px;height:36px;border:4px solid var(--grey);border-top-color:var(--yel);border-radius:50%;animation:spin 1s linear infinite;margin:20px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.btn small{font-weight:700;font-size:12px;opacity:.8}

/* responsive public layout: phone < 720 (single column + sticky bar), tablet 720–959 (two columns, burger), desktop ≥ 960 (inline nav, bigger type) */
.split{display:block}
.side-col .basket{margin-top:16px}
.basket.empty{display:none}
.wide-only{display:none!important}
.dish-grid{display:block}
.fav-grid{display:block}
.popup-grid{display:block}
@media (min-width:720px){
  .page{padding:24px 24px 60px}
  .split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
  .split .main-col{grid-column:1;grid-row:1;min-width:0}.split .side-col{grid-column:2;grid-row:1}
  .side-col [data-sticky]{position:sticky;top:76px}
  .side-col .basket{margin-top:0}
  .basket.empty{display:block}
  .wide-only{display:flex!important;margin-top:12px}
  .sticky-basket{display:none}
  body.has-bar .page{padding-bottom:60px}
  .sheet-wrap{align-items:center;padding:20px}
  .sheet{max-width:520px;border-radius:16px;max-height:90vh}
  .ban.hero{height:300px}.ban .n{font-size:26px}.ban .btn{max-width:420px}
  .popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.popup-grid .ban,.popup-grid .ban.big{height:220px;margin:0}
  .fav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
  .fav-grid .dish{flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:12px;padding:0;overflow:hidden}
  .fav-grid .dish .img{width:100%;height:140px;border-radius:0}.fav-grid .dish .t{padding:10px 12px 0}.fav-grid .dish .p{padding:6px 12px 12px}
  .paybox{max-width:520px}
  .cats{position:sticky;top:60px;background:#fff;z-index:5;padding-top:6px}
}
@media (min-width:960px){
  html{font-size:16px}
  .h1{font-size:30px}
  .brandbar .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
  .topnav{display:flex}.topsoc{display:flex}.burger{display:none}
  .split{grid-template-columns:minmax(0,1fr) 380px;gap:36px}
  .dish-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
  .ban.hero{height:360px}.ban .t{left:20px;right:20px;bottom:20px}
  .fav-grid .dish .img{height:170px}
}

/* dish cards as buttons */
.dish.tile-card{border:1.5px solid var(--line);border-radius:12px;padding:10px;margin:0 0 10px;background:#fff;cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .06s;-webkit-tap-highlight-color:transparent}
.dish.tile-card:hover,.dish.tile-card:focus-visible{border-color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.08);outline:none}
.dish.tile-card:active{transform:scale(.985)}
.dish.tile-card.soldout{cursor:default;box-shadow:none}.dish.tile-card.soldout:hover{border-color:var(--line)}
.dish .cta{flex:none;font-weight:800;font-size:13px;color:var(--ink);white-space:nowrap;padding:6px 10px;border-radius:8px;background:var(--yel)}
.dish-grid{display:block}
.fav-grid .dish.tile-card{padding:0}
@media (min-width:720px){.fav-grid .dish.tile-card:hover{border-color:var(--ink)}}

/* desktop hero: the poster/photo sits as its own panel on the left, text on black to the right */
.ban .pic{display:none}
@media (min-width:960px){
  .ban.hero{background-image:none!important;background:#111;height:380px}
  .ban.hero::after{content:none}
  .ban.hero .pic{display:block;position:absolute;left:0;top:0;bottom:0;width:52%;background:#222 center/cover no-repeat}
  .ban.hero .pic::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,17,17,0) 80%,#111 100%)}
  .ban.hero .pill{left:auto;right:20px}
  .ban.hero .t{left:calc(52% + 28px);right:28px;bottom:auto;top:50%;transform:translateY(-50%)}
  .ban.hero .n{font-size:34px}.ban.hero .h{font-size:14px}.ban.hero .btn{max-width:none}
}
.btn:disabled,.btn[disabled]{opacity:.35;cursor:default;pointer-events:none}
.sheet .tile{min-height:58px}
.site-foot{text-align:center;font-size:12px;color:var(--muted);padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--grey);margin-top:24px}
.site-foot.admin{border-top:0;margin-top:30px}
body.has-bar .site-foot{padding-bottom:90px}
.drawer .it.act{color:var(--yel)}
body.public{min-height:100vh;display:flex;flex-direction:column}body.public .page{flex:1;width:100%}
.fav-wrap{position:relative;overflow:hidden;margin-bottom:10px}
.fav-wrap .fade{position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 85%);pointer-events:none}
.fav-wrap.fits .fade{display:none}

/* header basket button (phones/narrow only; wider screens have the side basket) */
.cartbtn{position:relative;background:none;border:0;color:var(--yel);cursor:pointer;padding:4px 6px;margin-left:auto;display:inline-flex;align-items:center}
.cartbtn[hidden]{display:none}
.cartbtn .cnt{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--yel);color:var(--ink);font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
.cartbtn.bump{animation:bump .35s ease}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}
@media (max-width:719px){.side-col .basket{display:none}}
@media (min-width:720px){.cartbtn{display:none!important}}
.sticky-basket{display:none}
/* compact card box */
.paybox{padding:10px 12px}
.paybox label{margin:6px 0 3px;font-size:11px}
.paybox .input{padding:7px 10px;font-size:14px}
.paybox .cardrow{display:grid;grid-template-columns:1fr 92px 70px;gap:8px}
.paybox .secured{margin-top:8px}
.ban.market{height:210px;margin-bottom:14px}
@media (min-width:720px){.ban.market{height:260px}}
@media (min-width:960px){.ban.hero.market{height:300px}.ban.hero.market .n{font-size:28px}}
/* dish photo in the picker: hidden on phones, banner on tablets, side panel on desktop */
.sheet .pimg{display:none}
@media (min-width:720px){
  .sheet.has-img{padding:0;overflow:hidden;display:flex;flex-direction:column}
  .sheet.has-img .pimg{display:block;height:170px;background:#222 center/cover no-repeat;flex:none}
  .sheet.has-img .pbody{padding:14px 16px 18px;overflow:auto}
}
@media (min-width:960px){
  .sheet.has-img{flex-direction:row;max-width:820px}
  /* sharp square on top of a blurred fill of the same photo, so the column is never empty */
  .sheet.has-img .pimg{width:300px;height:auto;min-height:100%;position:relative;overflow:hidden;background-size:0 0;background-color:#111}
  .sheet.has-img .pimg::before,.sheet.has-img .pimg::after{content:"";position:absolute;inset:0;background-image:inherit;background-repeat:no-repeat}
  .sheet.has-img .pimg::before{background-size:cover;background-position:center;filter:blur(18px) brightness(.55);transform:scale(1.2)}
  .sheet.has-img .pimg::after{background-size:100% auto;background-position:center top}
  .sheet.has-img .pbody{flex:1;min-width:0;max-height:90vh}
}
body.public .page{padding-bottom:24px}
.site-foot{margin-top:12px}
/* short desktop windows: smaller hero so the menu preview, button and footer all fit without a scrollbar */
@media (min-width:960px) and (max-height:820px){.ban.hero{height:260px}.ban.hero .n{font-size:26px}}

/* ===== stall PWA ===== */
body.stall{background:#f3f3f1;color:var(--ink);-webkit-user-select:none;user-select:none;min-height:100vh;display:flex;flex-direction:column}
body.stall.link{background:#111;color:#fff;align-items:center;justify-content:center}
.linkpage{max-width:420px;padding:28px 20px;text-align:center}
.linkpage .mark{width:84px;height:84px;border-radius:50%;border:3px solid #fff;object-fit:cover;margin-bottom:14px}
.linkpage .h1{margin-top:10px}.linkpage .sub{color:#bbb}.linkpage .note{color:#888}.linkpage .btn{margin-top:14px}
.shead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:var(--ink);color:#fff;font-size:12px;font-weight:700}
.shead .leds{display:flex;align-items:center;gap:6px}.shead .leds .t{color:#aaa;margin-right:6px}
.led{width:9px;height:9px;border-radius:50%;background:#c23b3b;display:inline-block}.led.ok{background:#2e9d5b}
.shead .mid{display:flex;gap:8px;align-items:center;font-weight:800}.shead .num{color:var(--yel)}
.shead .gear{color:var(--yel);font-size:18px;text-decoration:none}
.stabs{display:flex;background:#1b1b1b;color:#bbb;position:sticky;top:0;z-index:10}
.stabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#bbb;position:relative}
.stabs a.on{color:var(--yel);box-shadow:inset 0 -3px 0 var(--yel)}
.stabs .badge{position:absolute;top:4px;right:calc(50% - 24px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--yel);color:var(--ink);font-size:11px;display:inline-flex;align-items:center;justify-content:center}
.stabs .badge[hidden]{display:none}
body.stall.fs-tab .stabs{display:none}body.stall.fs-tab:hover .stabs,body.stall.fs-tab .stabs:focus-within{display:flex}
.spane{flex:1;padding:12px 12px 90px;max-width:1120px;width:100%;margin:0 auto}
.spane[hidden]{display:none}
.spane.dark{background:#000;color:#fff;max-width:none;padding:0;position:relative}
.scard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
.tiles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media (min-width:720px){.tiles-grid{grid-template-columns:repeat(5,1fr)}}
@media (min-width:1100px){.tiles-grid{grid-template-columns:repeat(6,1fr)}}
.ttile{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:0 0 8px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:inherit;cursor:pointer;text-align:left;overflow:hidden;color:var(--ink)}
.ttile .im{display:block;height:74px;background:var(--grey) center/cover no-repeat}
.ttile .n{font-weight:800;font-size:13px;padding:4px 8px 0;line-height:1.2}.ttile .pr{font-size:12px;color:var(--muted);padding:0 8px;font-weight:700}
.ttile:active{transform:scale(.98)}.ttile.off{opacity:.45}
.spane .basket{margin-top:12px}
.tender{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.paysheet .center{text-align:center}.paysheet .bignum{font-size:110px}
.tapicon{width:84px;height:84px;border-radius:50%;background:var(--yel);color:var(--ink);font-weight:900;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin:14px auto}
.tapicon.bad{background:var(--bad);color:#fff;font-size:40px}
.toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;font-size:13px;z-index:60;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.toast.bad{background:var(--bad)}.toast[hidden]{display:none}
.soldout-list .kv{background:#fff;padding:8px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;font-weight:700}
.toggle-cb{width:22px;height:22px;accent-color:var(--bad)}
/* orders tab */
.ord{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.ord.slim{padding:8px 12px}.ord.attn{border-color:var(--bad)}
.ord .oh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ord .num{font-weight:900;font-size:20px}
.ord .oh .kebab.sm{margin-left:auto;width:28px;height:28px}
.unit{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--grey);font-weight:700;font-size:14px}
.unit input{width:24px;height:24px;accent-color:var(--ok)}.unit.done{color:var(--muted);text-decoration:line-through}
.unit .muted{margin-left:auto;font-weight:600;font-size:12px}
.ord .btn.block{margin-top:8px}.colh{font-weight:800;margin:14px 0 6px;display:flex;gap:8px;align-items:center}
/* kitchen */
.kit{display:flex;flex-direction:column;min-height:calc(100vh - 100px);padding:12px 16px;gap:10px}
.khead{display:flex;align-items:center;gap:16px}.khead .kt{font-weight:900;letter-spacing:.06em}.khead .kstats{display:flex;gap:16px;color:#aaa;font-size:14px}.khead .kstats b{color:#fff}
.fsbtn{margin-left:auto;background:none;border:1px solid #444;color:#aaa;border-radius:8px;padding:4px 10px;cursor:pointer;font-size:14px}
.kbody{display:grid;grid-template-columns:3fr 2fr;gap:16px;flex:1;min-height:0}
.kbody.multi{grid-template-columns:1fr;grid-template-rows:auto auto}
.kslots{display:grid;gap:12px}.kslots.cols1{grid-template-columns:1fr}.kslots.cols2{grid-template-columns:1fr 1fr}.kslots.cols3{grid-template-columns:repeat(3,1fr)}.kslots.cols4{grid-template-columns:1fr 1fr}
.know{background:#1a1a1a;border-radius:16px;padding:16px 20px;display:flex;flex-direction:column;min-height:300px}
.know.empty{align-items:center;justify-content:center;color:#555}.kwait{font-size:28px;font-weight:900;letter-spacing:.1em}
.klabel{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.klabel span{text-transform:none;letter-spacing:0;font-weight:600}
.kno{font-size:120px;font-weight:900;line-height:1;color:var(--yel);margin:6px 0}
.kslots.cols2 .kno,.kslots.cols3 .kno,.kslots.cols4 .kno{font-size:84px}
.klines{list-style:none;margin:0 0 auto;padding:0;font-size:24px;line-height:1.3}.klines li.dim{color:#777;font-size:16px}
.kready{margin-top:14px;width:100%;padding:18px;border:0;border-radius:14px;background:var(--yel);color:var(--ink);font-weight:900;font-size:26px;cursor:pointer;font-family:inherit}
.kready:disabled{opacity:.5}
.knext{display:flex;flex-direction:column;gap:8px;overflow:auto}
.kcard{display:flex;gap:12px;background:#1a1a1a;border-radius:12px;padding:10px 12px;align-items:flex-start}.kcard.dim{opacity:.5}
.kcard .kn{font-size:30px;font-weight:900;min-width:48px}.kcard .kl{font-size:15px;line-height:1.3}.kcard .km{display:block;color:#888;font-size:12px;margin-top:4px}
.kfoot{display:flex;gap:8px;justify-content:flex-end}.kfoot .slot{min-width:52px;height:44px;border-radius:10px;background:var(--yel);color:var(--ink);font-weight:900;font-size:22px;display:inline-flex;align-items:center;justify-content:center}.kfoot .slot.e{background:#222}
.kempty{padding:40px;text-align:center;color:#777;font-size:20px}
@media (max-width:719px){.kbody{grid-template-columns:1fr}.kno{font-size:84px}.klines{font-size:18px}}
/* board */
.board{display:flex;flex-direction:column;min-height:calc(100vh - 100px);padding:16px 22px;gap:14px}
.btop{display:flex;align-items:center;gap:16px}.blogo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:18px}.blogo img{width:44px;height:44px;border-radius:50%;border:2px solid #fff}.blogo small{display:block;color:var(--yel);font-size:10px;letter-spacing:.14em;font-weight:700}
.bwhere{margin-left:auto;text-align:right;font-weight:700;color:#ddd}.bwhere small{color:#888;font-weight:600}
.bpaused{background:var(--yel);color:var(--ink);font-weight:900;text-align:center;padding:8px;border-radius:10px}
.btwo{display:grid;grid-template-columns:1fr 1fr;gap:18px;flex:1}
.colt{display:flex;justify-content:space-between;align-items:baseline;font-weight:900;font-size:22px;letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid #333;padding-bottom:6px;margin-bottom:12px}.colt span:last-child{font-size:13px;color:#aaa;letter-spacing:0;text-transform:none}.colt.r{color:var(--yel);border-color:var(--yel)}
.nums{display:flex;flex-wrap:wrap;gap:12px;align-content:flex-start}
.bn{width:120px;height:110px;border-radius:14px;background:#1a1a1a;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:56px;font-weight:900;line-height:1}
.bn small{font-size:11px;font-weight:800;letter-spacing:.08em;color:#aaa;margin-top:4px}.bn.cook{background:#2a2300;border:2px solid var(--yel)}.bn.cook small{color:var(--yel)}
.bn.rd{background:var(--yel);color:var(--ink)}.bn.pulse{animation:pulse 1.2s ease 2}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.bfoot{display:flex;justify-content:space-between;color:#777;font-weight:700}
.bclosed{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.bclosed .sub{color:#aaa}
@media (max-width:719px){.btwo{grid-template-columns:1fr}.bn{width:92px;height:84px;font-size:40px}}
.qr svg{width:260px;height:260px}
/* stall: labels used as rows must not look like form labels; hidden buttons stay hidden */
.unit,.soldout-list label.kv{text-transform:none;letter-spacing:0;color:var(--ink);font-size:14px;margin:0}
.soldout-list label.kv{display:flex;padding:10px 12px}
.btn[hidden],.ttile[hidden],.tiles-grid[hidden],.basket[hidden]{display:none!important}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.filters .input{width:auto;flex:1;min-width:140px}.filters input.input{flex:3;min-width:220px}
.ib{display:inline-flex;align-items:center;height:30px;padding:0 10px;border:1.5px solid var(--line);border-radius:7px;background:#fff;font-weight:800;font-size:12px}
td.small{font-size:12px}.bad{color:var(--bad)}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.stats .stat{flex:1;min-width:140px}
.bars{display:flex;align-items:flex-end;gap:4px;height:90px;border-bottom:1px solid var(--line);padding-bottom:2px}
.bars .bar{flex:1;background:var(--yel);border-radius:3px 3px 0 0;position:relative;min-height:2px}.bars .bar span{position:absolute;top:100%;left:0;right:0;text-align:center;font-size:9px;color:var(--muted);margin-top:2px}
.stat .v.bad{color:var(--bad)}
a.tile{text-decoration:none}.tile small{display:block}

/* ===== admin on phones ===== */
@media (max-width:720px){
  .shell{flex-direction:column}
  .side{width:auto;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:4px;padding:6px 10px;overflow-x:auto;white-space:nowrap;position:sticky;top:0;z-index:20;scrollbar-width:none}
  .side::-webkit-scrollbar{display:none}
  .side .logo{margin:0 6px 0 0;flex:none}.side .logo span{display:none}
  .side nav{display:flex;gap:2px;flex-wrap:nowrap}
  .side .item{padding:6px 8px;font-size:12px;flex:none}
  .side .logout{margin-left:6px;flex:none}.side .logout .btn{padding:4px 8px;font-size:11px}
  .main{padding:12px 12px 24px}
  .h1{font-size:22px}
  .row-between .btn.primary{padding:7px 10px;font-size:13px}
  .table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table-card table{min-width:560px}
  .hide-m{display:none!important}
  .grid2[style],.grid3[style],.grid4[style]{grid-template-columns:1fr!important}
  .og{overflow-x:auto}.og table{min-width:560px}.og .head .input{min-width:120px}
  .filters .input{min-width:0;flex:1 1 40%}.filters input.input{flex:1 1 100%}
  .modal-wrap{padding:6px}.modal{padding:14px 14px 16px}
  .stats .stat{min-width:calc(50% - 5px)}
  .cats{padding-right:16px}
  .kv{font-size:13px}
}
@media (max-width:720px){
  .table-card td.actions,.table-card th:last-child{position:sticky;right:0;background:#fff;box-shadow:-6px 0 8px -6px rgba(0,0,0,.15)}
  .table-card tr.muted td.actions{background:#fff}
  .table-card td.actions .kebab-menu .menu-pop{right:0}
}
/* lightbox + row menus */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;cursor:zoom-out}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.6)}
.lightbox .x{position:absolute;top:12px;right:14px;background:none;border:0;color:#fff;font-size:26px;cursor:pointer}
.thumb[data-zoom]{cursor:zoom-in}
.table-card tbody tr:has(details.kebab-menu){cursor:pointer}
.table-card tbody tr:has(details.kebab-menu):hover td{background:#fffbe6}
/* a row tap opens the menu at the tap point (fixed, clamped by JS); the ⋯ button keeps its drop-down */
.menu-pop.at-point{position:fixed;right:auto;z-index:70;box-shadow:0 10px 40px rgba(0,0,0,.35)}
@media (max-width:720px){
  .kebab-menu[open] .menu-pop a,.kebab-menu[open] .menu-pop button{padding:12px 16px;font-size:15px}
  .kebab-menu[open]::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:60}
  .kebab-menu[open] .menu-pop{z-index:70}
}
.qrcard{display:flex;gap:16px;align-items:center;margin:16px 0}.qrcard .qr svg{width:150px;height:150px;display:block}
@media (max-width:480px){.qrcard{flex-direction:column;text-align:center}}
/* admin phone nav: burger + dropdown instead of a scrolling strip */
.side .cur,.admin-burger{display:none}
@media (max-width:720px){
  .side{flex-wrap:wrap;overflow:visible;white-space:normal;padding:8px 12px}
  .side .logo span{display:inline}
  .side .cur{display:inline;margin-left:8px;font-weight:800;color:var(--muted);font-size:14px}
  .admin-burger{display:inline-block;margin-left:auto;color:var(--ink);font-size:24px;padding:0 4px}
  .side nav,.side .logout{display:none;width:100%}
  body.adminnav-open .side nav{display:flex;flex-direction:column;gap:2px;padding-top:8px;border-top:1px solid var(--line);margin-top:8px}
  body.adminnav-open .side .item{padding:11px 10px;font-size:15px}
  body.adminnav-open .side .logout{display:block;margin:6px 0 0}
}
/* admin sub-navigation (settings, reports): underlined tab bar, not chips on a white strip */
body.admin .cats{background:none;position:static;border-bottom:1px solid var(--line);gap:0;padding:0 0 0;margin:10px 0 16px;overflow-x:auto;scrollbar-width:none}
body.admin .cats::-webkit-scrollbar{display:none}
body.admin .cats a{border:0;border-radius:0;padding:10px 14px;margin-bottom:-1px;border-bottom:3px solid transparent;color:var(--muted);font-size:13px;flex:none}
body.admin .cats a.on{background:none;color:var(--ink);border-bottom-color:var(--ink)}
body.admin .cats a.dis{opacity:.4}
/* ===== today dashboard ===== */
.dash svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.dstat{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.dstat .di{width:42px;height:42px;border-radius:12px;background:var(--yel);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;flex:none}
.dstat .di.hot{background:var(--ink);color:var(--yel)}
.dstat b{display:block;font-size:22px;line-height:1.1}.dstat small{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tline{display:grid;grid-template-columns:minmax(70px,auto) 1fr auto;gap:10px;align-items:center;padding:6px 0;font-size:14px;border-bottom:1px solid var(--grey)}
.tline.total{border-bottom:0;font-weight:900;font-size:16px}.tline .tb{height:8px;background:var(--grey);border-radius:4px;overflow:hidden}.tline .tb i{display:block;height:100%;background:var(--yel);border-radius:4px}
.rline{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--grey);color:inherit}.rline .num{font-size:16px;min-width:40px}.rline .t{flex:1;min-width:0;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rline .t small{display:block;color:var(--muted);font-weight:600}
.qa{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.qt{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:14px;color:inherit;transition:border-color .12s,box-shadow .12s}
.qt:hover{border-color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.08)}
.qt .qi{width:40px;height:40px;border-radius:10px;background:var(--grey);display:inline-flex;align-items:center;justify-content:center;margin-bottom:4px}
.qt b{font-size:14px}.qt small{color:var(--muted);font-size:12px;font-weight:600}
.nextcard{display:flex;gap:12px;align-items:center;color:inherit}.nextcard .thumb{width:96px;height:60px;flex:none}.nextcard b{display:block;font-size:15px}.nextcard small{display:block;color:var(--muted);font-size:12px;font-weight:600}
@media (max-width:960px){.dash-grid{grid-template-columns:1fr 1fr}.qa{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.dash-stats{grid-template-columns:1fr 1fr}.dash-grid{grid-template-columns:1fr}.qa{grid-template-columns:1fr 1fr}.dstat b{font-size:19px}.dstat .di{width:36px;height:36px}}

/* ===== typography scale (applied last): one family, calmer weights =====
   400 body · 500 nav/menus · 600 labels, buttons, names · 700 headings, totals · 800 only the big numbers */
.h1{font-weight:700;letter-spacing:-.01em}.h1.sm{font-weight:700}.h2{font-weight:600}
label,.label,th{font-weight:600;letter-spacing:.03em}label.check{font-weight:500}
.btn{font-weight:600}.btn.primary,.btn.dark{font-weight:600}.btn.ghost{font-weight:500;color:#333}
.pill{font-weight:600;letter-spacing:.01em}
.menu-pop a,.menu-pop button{font-weight:500;color:#222;font-size:14px}.menu-pop .bad{color:var(--bad)}
.side .item{font-weight:500;color:#555}.side .item.on{font-weight:600;color:var(--ink)}
.topnav a{font-weight:500;color:#ddd}.topnav a.on{font-weight:600}.topnav a.act{font-weight:600}
.drawer .it{font-weight:500}.drawer .it.on,.drawer .it.act{font-weight:600}
.name,td.name{font-weight:600}
.dish .n{font-weight:600}.dish .p{font-weight:700}.dish .cta{font-weight:600}
.ol .n{font-weight:600}.ol .p{font-weight:600}.ol .q{font-weight:700}
.kv{font-weight:400}.kv .r{font-weight:500}.kv.total{font-weight:700}.kv.total span:last-child{font-weight:700}
.tline{font-weight:400}.tline b{font-weight:600}.tline.total{font-weight:700}
.sub{font-weight:400}.note{font-weight:400}.muted{font-weight:inherit}
.ttile .n{font-weight:600}.ttile .pr{font-weight:500}
.stabs a{font-weight:600}
.stat .v{font-weight:700}.stat .l{font-weight:500}.dstat b{font-weight:700}.dstat small{font-weight:500}
.qt b{font-weight:600}.qt small{font-weight:400}
.cats a{font-weight:500}.cats a.on{font-weight:600}body.admin .cats a.on{font-weight:600}
.unit{font-weight:500}.ord .num{font-weight:700}.ord .oh .muted{font-weight:400}
.tile{font-weight:500}.tile.on{font-weight:600}.tile small{font-weight:400}
.kcard .kn{font-weight:700}.kcard .kl{font-weight:400}.klines{font-weight:500}.klines li b{font-weight:600}.kready{font-weight:700}.kno{font-weight:800}
.bn{font-weight:800}.colt{font-weight:700}.bwhere{font-weight:500}.bfoot{font-weight:500}
.bignum{font-weight:800}.shead{font-weight:500}.shead .mid{font-weight:600}
.ban .n{font-weight:700}.ban .d{font-weight:600}.ban .h{font-weight:400;color:#e4e4e4}
.logo{font-weight:700}.logo small{font-weight:600}
.step{font-weight:600}.flash{font-weight:500}
.linkpage .h1{font-weight:700}.toast{font-weight:500}
.site-foot{font-weight:400}.rline .t{font-weight:500}.rline .num{font-weight:700}
.soldout-list .kv{font-weight:500}.cartbtn .cnt{font-weight:700}
.kebab{font-weight:600}.ib{font-weight:600}.back{font-weight:500}
b,strong{font-weight:600}
/* quick actions: horizontal tiles (icon · label · hint · chevron) */
.qt{flex-direction:row;align-items:center;gap:12px;padding:12px 14px}
.qt .qi{margin:0;flex:none}
.qt .qtxt{flex:1;min-width:0}.qt .qtxt b{display:block;font-size:14px;line-height:1.2}.qt .qtxt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qt::after{content:"›";color:var(--muted);font-size:20px;line-height:1;flex:none}
@media (max-width:720px){.qa{grid-template-columns:1fr}.qt{padding:10px 12px}}
/* admin sidebar icons */
.side .item{display:flex;align-items:center;gap:10px}
.side .item svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;opacity:.85}
.side .item.on svg{opacity:1}
/* form grids: equal columns, labels that never wrap, inputs on one baseline */
.fgrid{display:grid;gap:12px 14px;margin:0 0 12px}.fgrid.cols2{grid-template-columns:1fr 1fr}.fgrid.cols3{grid-template-columns:repeat(3,1fr)}
.fgrid label{margin:0;display:flex;flex-direction:column;justify-content:flex-end;min-width:0}
.fgrid label .input{margin-top:5px}
label small{font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);font-size:11px;margin-left:4px}
.modal .label{margin:14px 0 6px}.modal > label{margin-top:12px}
.modal .banner-edit{margin-bottom:14px}.modal .banner-edit .prev{gap:8px}
.modal .row-between .note{margin:0}
.filein{font-size:13px}
.check.switch{margin:2px 0 14px;font-weight:500}.check.switch .muted{font-weight:400}
.modal .h1.sm{margin-bottom:12px}
.modal label.check input{width:16px;height:16px;accent-color:var(--ink)}
@media (max-width:720px){.fgrid.cols3{grid-template-columns:1fr 1fr}.fgrid.cols2{grid-template-columns:1fr}}
@media (max-width:480px){.fgrid.cols3{grid-template-columns:1fr}}
.fgrid label{display:block}.fgrid label small{display:inline}
.banner-edit .full{background-color:#f3f3f1;color:#999}
@media (max-width:720px){.banner-edit .full{height:120px}}

/* ===== kitchen: match wireframe 15 — up next left, cooking right, bordered columns ===== */
.kit{padding:0;gap:0}
.khead{padding:12px 20px;border-bottom:1px solid #333;gap:20px}
.khead .kt{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;letter-spacing:.04em}.khead .kt img{width:28px;height:28px;border-radius:50%;border:2px solid #fff}
.khead .kstats{margin:0 auto;gap:22px;font-size:16px;color:#aaa}.khead .kstats b{color:var(--yel);font-weight:700}
.kbody{grid-template-columns:2fr 3fr;gap:0;flex:1}
.kbody.multi{grid-template-columns:1fr;grid-template-rows:auto auto}
.knext{padding:18px 20px;border-right:1px solid #333;gap:10px}
.kbody.multi .knext{border-right:0;border-top:1px solid #333;flex-direction:row;flex-wrap:wrap}
.kslots{padding:18px 24px}
.know{background:none;border-radius:0;padding:0;min-height:0}
.know.empty{border:1px dashed #333;border-radius:16px;padding:40px}
.klabel{font-size:13px;letter-spacing:.1em;color:#aaa}.klabel span{color:#888}
.know .klabel{color:var(--yel)}.know .klabel span{color:#888}
.kno{font-size:150px;color:#fff;margin:0 0 6px;letter-spacing:-.03em}
.kslots.cols2 .kno,.kslots.cols3 .kno,.kslots.cols4 .kno{font-size:96px}
.klines{font-size:30px;line-height:1.35}.klines li{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.klines li b{color:var(--yel);font-weight:700;min-width:54px}.klines .dn{font-weight:700}.klines .do{color:#bbb;font-weight:400;font-size:24px}
.klines li.dim{color:#777;font-size:24px}.klines li.dim b{color:#777}.klines li.dim .dn{font-weight:600;color:#888}.klines li.dim .do{color:#666}
.kready{margin-top:auto;font-size:30px;letter-spacing:.06em;padding:22px;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:16px}
.kcard{background:none;border:1px solid #444;border-radius:12px;padding:12px 14px;gap:16px}
.kcard .kn{font-size:38px;font-weight:800;min-width:54px;line-height:1}
.kcard .kl{font-size:17px;line-height:1.35;font-weight:500}.kcard .kl b{font-weight:700}.kcard .kl .dim{color:#888;font-weight:400}.kcard .kl .dim b{color:#888;font-weight:600}
.kcard .km{font-size:12px;color:#888;margin-top:6px}
.kcard.dim{opacity:.55}
.kfoot{padding:14px 20px;border-top:1px solid #333;gap:10px}
.kfoot .slot{min-width:72px;height:52px;font-size:26px;border-radius:12px}.kfoot .slot.e{background:none;border:2px dashed #444}
@media (max-width:719px){.kbody{grid-template-columns:1fr}.knext{border-right:0;border-bottom:1px solid #333}.kno{font-size:96px}.klines{font-size:22px}.klines .do{font-size:18px}.kready{font-size:24px}}
/* collapsible sections on the More tab */
.fold{margin:14px 0}.fold summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;padding:6px 0}.fold summary::-webkit-details-marker{display:none}
.fold summary .h2{margin:0}.fold summary .chev{margin-left:auto;color:var(--muted);transition:transform .15s}.fold[open] summary .chev{transform:rotate(180deg)}
.fold .soldout-list{margin-top:8px}

/* kitchen type scale for a tablet read from a metre away: 18 / 22 / 28 / 36 / 160 */
.khead{padding:14px 22px}.khead .kt{font-size:20px}.khead .kstats{font-size:20px;gap:26px}.fsbtn{font-size:20px;padding:6px 14px}
.klabel{font-size:16px}.klabel span{font-size:15px;letter-spacing:0;text-transform:none}
.kcard{padding:14px 16px;gap:18px;width:100%;text-align:left;font-family:inherit;color:#fff;cursor:pointer;background:none}
.kcard:active{background:#1a1a1a}.kcard:disabled{opacity:.5}
.kcard .kn{font-size:48px;min-width:64px}.kcard .kl{font-size:22px;line-height:1.3}.kcard .kl .dim{font-size:20px}.kcard .km{font-size:15px;margin-top:8px}
.kno{font-size:160px}.klines{font-size:36px;line-height:1.3}.klines li b{min-width:66px}.klines .do{font-size:28px}.klines li.dim{font-size:28px}.klines li.dim .do{font-size:24px}
.kready{font-size:34px;padding:24px}
.kfoot .slot{min-width:84px;height:60px;font-size:30px}
.kslots.cols2 .klines,.kslots.cols3 .klines,.kslots.cols4 .klines{font-size:28px}.kslots.cols2 .klines .do,.kslots.cols3 .klines .do,.kslots.cols4 .klines .do{font-size:22px}
@media (max-width:1023px){.kno{font-size:120px}.klines{font-size:28px}.klines .do{font-size:22px}.kcard .kn{font-size:40px}.kcard .kl{font-size:19px}}
@media (max-width:719px){.kno{font-size:96px}.klines{font-size:22px}.klines .do{font-size:18px}.kready{font-size:24px}.kcard .kn{font-size:34px}.kcard .kl{font-size:17px}}
/* full screen on kitchen/board: nothing but the tab content */
body.stall.is-fs .shead,body.stall.is-fs .stabs{display:none!important}
body.stall.is-fs .spane.dark{min-height:100vh}
.fsbtn{cursor:pointer}
/* kitchen: one type scale, big — base 24 / lines 32 / cooking lines 44 / numbers 56 / big number 200 */
.kit{--k1:22px;--k2:30px;--k3:44px;--k4:60px;--k5:210px}
.khead .kt,.khead .kstats,.fsbtn,.klabel,.klabel span,.kcard .km,.know .klabel,.know .klabel span{font-size:var(--k1)}
.khead .kt img{width:36px;height:36px}
.klabel{letter-spacing:.06em}.klabel span{letter-spacing:0}
.kcard .kl,.kcard .kl .dim{font-size:var(--k2)}.kcard .kn{font-size:var(--k4);min-width:80px}.kcard .km{margin-top:10px;color:#9a9a9a}
.kcard{padding:16px 18px;gap:20px}
.klines,.klines .dn,.klines li.dim{font-size:var(--k3)}.klines .do,.klines li.dim .do{font-size:calc(var(--k3) - 10px)}.klines li b{min-width:84px}
.klines li{margin:4px 0}
.kno{font-size:var(--k5);margin:4px 0 10px}
.kready{font-size:var(--k3);padding:26px}.kready svg{width:40px;height:40px}
.kfoot .slot{min-width:100px;height:70px;font-size:36px}
.kslots.cols2 .kno,.kslots.cols3 .kno,.kslots.cols4 .kno{font-size:120px}
.kslots.cols2 .klines,.kslots.cols3 .klines,.kslots.cols4 .klines,.kslots.cols2 .klines .dn,.kslots.cols3 .klines .dn,.kslots.cols4 .klines .dn{font-size:32px}
.kslots.cols2 .klines .do,.kslots.cols3 .klines .do,.kslots.cols4 .klines .do{font-size:26px}
@media (max-width:1023px){.kit{--k1:18px;--k2:24px;--k3:34px;--k4:48px;--k5:150px}}
@media (max-width:719px){.kit{--k1:16px;--k2:20px;--k3:26px;--k4:40px;--k5:110px}.kready{padding:18px}}
/* kitchen: options flow inline after the dish name; the panel fills the screen and scrolls inside, so the ready strip stays visible */
.klines li{display:block;margin:6px 0}.klines li b{display:inline-block}.klines .dn{display:inline}.klines .do{display:inline;margin-left:8px}
.kit{height:calc(100vh - 92px);min-height:0}body.stall.is-fs .kit{height:100vh}
.kbody{min-height:0}.knext{overflow:auto;min-height:0}.kslots{overflow:auto;min-height:0}.know{min-height:100%}
.kcard .kl{display:block}
/* kitchen: the cooking panel keeps number + ready button fixed; only the dish list scrolls */
.kslots{height:100%;overflow:hidden}
.know{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
.know .kno{flex:none}.know .klines{flex:1 1 auto;min-height:0;overflow:auto;margin:0}.know .kready{flex:none;margin-top:12px}
.kit{--k5:180px}
/* kitchen: fit five dish lines on a 1280×800 tablet without scrolling */
.kit{--k5:140px;--k3:40px}
.kno{margin:0 0 4px;line-height:.95}
.klines li{margin:4px 0;line-height:1.25}
.know .kready{margin-top:10px;padding:18px;font-size:36px}
.kfoot{padding:10px 20px}.kfoot .slot{height:58px;min-width:88px;font-size:30px}
.kit{height:calc(100vh - 92px)}
.spane.dark[data-pane=kitchen]{padding:0}
/* back to the stall app from admin (only when a device cookie is present) */
.side .stall-back{margin-top:auto;background:var(--ink);color:var(--yel)}.side .stall-back:hover{background:#222}
.side .stall-back + .logout{margin-top:6px}
.stall-back-m{display:none}
@media (max-width:720px){
  .stall-back-m{display:inline-block;font-weight:600;color:var(--ink);background:var(--yel);padding:4px 10px;border-radius:8px;font-size:13px;margin-left:6px}
  body.adminnav-open .side .stall-back{margin-top:4px}
}
@media (max-width:720px){.side .stall-back{display:none}body.adminnav-open .side .stall-back{display:flex;width:100%;margin-top:4px}}
/* board: everything ~30% bigger for reading across a market */
.board{padding:20px 28px;gap:18px}
.blogo{font-size:24px;gap:14px}.blogo img{width:58px;height:58px}.blogo small{font-size:13px}
.bwhere{font-size:20px}.bwhere small{font-size:16px}
.bpaused{font-size:22px;padding:12px}
.btwo{gap:26px}
.colt{font-size:30px;padding-bottom:8px;margin-bottom:16px}.colt span:last-child{font-size:17px}
.nums{gap:16px}
.bn{width:156px;height:143px;font-size:74px;border-radius:18px}.bn small{font-size:14px;margin-top:6px}
.bfoot{font-size:18px}
.bclosed .h1{font-size:40px}.bclosed .sub{font-size:20px}
@media (max-width:719px){.bn{width:120px;height:110px;font-size:52px}.colt{font-size:24px}}
/* board: another 30% up */
.board{padding:24px 34px;gap:22px}
.blogo{font-size:31px;gap:16px}.blogo img{width:74px;height:74px}.blogo small{font-size:16px}
.bwhere{font-size:26px}
.bpaused{font-size:28px;padding:14px}
.btwo{gap:32px}
.colt{font-size:39px;padding-bottom:10px;margin-bottom:20px}.colt span:last-child{font-size:22px}
.nums{gap:20px}
.bn{width:200px;height:184px;font-size:96px;border-radius:22px}.bn small{font-size:18px;margin-top:8px}
.bfoot{font-size:23px}
.bclosed .h1{font-size:52px}.bclosed .sub{font-size:26px}
.fsbtn{font-size:24px;padding:8px 16px}
@media (max-width:1023px){.bn{width:150px;height:138px;font-size:70px}.colt{font-size:30px}.blogo{font-size:24px}.blogo img{width:56px;height:56px}.bwhere{font-size:20px}}
@media (max-width:719px){.bn{width:120px;height:110px;font-size:52px}.colt{font-size:24px}.bwhere{font-size:16px}}
.colt span:only-child,.colt.r span:first-child{font-size:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}
/* board: both column titles identical in size/weight; underlines on one baseline */
.colt{align-items:flex-end;height:64px;margin-bottom:24px}
.colt span:first-child,.colt.r span:first-child{font-size:39px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1}
.colt span:last-child:not(:first-child){font-size:22px;line-height:1.4}
.colt.r{color:#fff;border-color:#333}
.btop .fsbtn{margin-left:auto}.bfoot .bwhere{margin:0;color:#aaa;font-weight:500}
/* board: the ETA sits right after PREPARING, not at the far edge */
.colt{justify-content:flex-start;gap:18px}
.colt span:last-child:not(:first-child){color:#aaa;font-size:26px;line-height:1.1;padding-bottom:4px}
/* board tile captions: larger so COOKING / ~N MIN fill the tile width */
.bn small{font-size:26px;letter-spacing:.06em;margin-top:4px}
.bn{height:200px}
@media (max-width:1023px){.bn small{font-size:19px}.bn{height:150px}}
@media (max-width:719px){.bn small{font-size:15px}.bn{height:120px}}
/* board digits fill their tiles */
.bn{font-size:124px;line-height:.9;padding-top:6px}
.bn.rd{font-size:140px;padding-top:0}
.bn small{margin-top:10px}
@media (max-width:1023px){.bn{font-size:92px}.bn.rd{font-size:104px}}
@media (max-width:719px){.bn{font-size:68px}.bn.rd{font-size:78px}}
/* board: no header, three tiles per row, overflow tile */
.board{padding:18px 28px 12px;gap:12px}
.bn{width:176px;height:176px;font-size:108px}.bn.rd{font-size:122px}.bn small{font-size:22px}
.bn.more{background:#1a1a1a;color:#aaa;font-size:72px;border:2px dashed #444}.bn.more small{color:#777}
.nums{gap:18px}
.bfoot{align-items:center;margin-top:auto}.bfoot .fsbtn{margin:0;opacity:.6}
@media (max-width:1023px){.bn{width:132px;height:132px;font-size:80px}.bn.rd{font-size:90px}.bn small{font-size:16px}.bn.more{font-size:52px}}
@media (max-width:719px){.bn{width:100px;height:100px;font-size:58px}.bn.rd{font-size:66px}.bn small{font-size:12px}}
/* board tiles scale with --t (set per column by the script); type scales with the tile */
.nums{gap:14px}
.bn,.bn.rd{width:var(--t,176px);height:var(--t,176px);font-size:calc(var(--t,176px) * .62);border-radius:calc(var(--t,176px) * .11);line-height:.9;padding:0}
.bn.rd{font-size:calc(var(--t,176px) * .7)}
.bn small{font-size:calc(var(--t,176px) * .125);margin-top:calc(var(--t,176px) * .04);letter-spacing:.05em}
.bn:not(.rd){padding-top:calc(var(--t,176px) * .04)}
/* board titles never wrap: shrink on narrower tablets */
.colt span:first-child,.colt.r span:first-child{white-space:nowrap}
@media (max-width:1100px){.colt span:first-child,.colt.r span:first-child{font-size:30px}.colt span:last-child:not(:first-child){font-size:20px}}
@media (max-width:860px){.colt span:first-child,.colt.r span:first-child{font-size:24px}}
/* board: preparing tiles slightly off-white so the yellow ready tiles lead */
.bn:not(.rd){color:#d6d6d6}.bn.cook{color:#e8e8e8}
.colt span:first-child{color:#e4e4e4}

/* ===== kitchen with 2+ stations (wireframe 15b): stations side by side on top, Up next as a strip below ===== */
.knext{display:flex;flex-direction:column;min-height:0}.knext .kcards{display:flex;flex-direction:column;gap:10px;overflow:auto;min-height:0;flex:1}
.kbody.multi{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,62fr) minmax(0,38fr);--k5:112px;--k3:30px;--k2:22px;--k4:40px}
.kbody.multi .kslots{grid-row:1;height:auto;min-height:0;padding:14px 20px 10px;gap:14px}
.kbody.multi .kslots.cols3{grid-template-columns:repeat(3,1fr)}.kbody.multi .kslots.cols2{grid-template-columns:1fr 1fr}.kbody.multi .kslots.cols4{grid-template-columns:repeat(4,1fr)}
.kbody.multi .know{padding:0 12px 0 0}.kbody.multi .know:not(:last-child){border-right:1px solid #333}.kbody.multi .know+.know{padding-left:12px}
.kbody.multi .know .kno{font-size:var(--k5);margin:0}
.kbody.multi .know .klines,.kbody.multi .know .klines .dn,.kbody.multi .know .klines li.dim{font-size:var(--k3)}.kbody.multi .know .klines .do{font-size:calc(var(--k3) - 6px)}.kbody.multi .know .klines li b{min-width:60px}
.kbody.multi .know .kready{font-size:26px;padding:14px}.kbody.multi .know .kready svg{width:28px;height:28px}
.kbody.multi .know.empty{padding:0;min-height:0}.kbody.multi .kwait{font-size:22px}
.kbody.multi .knext{grid-row:2;border-right:0;border-top:1px solid #333;padding:10px 20px 12px}
.kbody.multi .knext .kcards{flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:12px;padding-bottom:4px}
.kbody.multi .kcard{flex:0 0 300px;padding:10px 12px;gap:12px;align-self:stretch}
.kbody.multi .kcard .kn{font-size:var(--k4);min-width:52px}.kbody.multi .kcard .kl,.kbody.multi .kcard .kl .dim{font-size:var(--k2);line-height:1.25}.kbody.multi .kcard .km{font-size:15px;margin-top:6px}
.kbody.multi .kcard.dim{opacity:.7}
/* multi-station: label above the strip, strip height bounded so the ready row stays on screen */
.kbody.multi .knext{display:flex;flex-direction:column}
.kbody.multi .knext .klabel{margin-bottom:8px}
.kbody.multi .kcard{height:auto;align-self:flex-start}
.kbody.multi{grid-template-rows:minmax(0,1fr) auto}
.kbody.multi .knext .kcards{max-height:150px}
/* ===== kitchen 2+ stations, final: wireframe 15b ===== */
.kbody.multi{grid-template-rows:minmax(0,1fr) auto;--k5:96px;--k3:26px}
.kbody.multi .kslots{padding:16px 20px 12px;gap:16px}
.kbody.multi .know,.kbody.multi .know+.know{border:2px solid #333;border-radius:16px;padding:14px 16px;overflow:hidden}
.kbody.multi .know .klabel{font-size:15px;letter-spacing:.1em}.kbody.multi .know .klabel span{font-size:14px}
.kbody.multi .know .kno{font-size:var(--k5);margin:2px 0 6px;line-height:1}
.kbody.multi .know .klines li{margin:3px 0}.kbody.multi .know .klines li b{min-width:52px}
.kbody.multi .know .kready{font-size:24px;padding:14px;margin-top:12px;letter-spacing:.08em}
.kbody.multi .know.empty{border:2px dashed #333;align-items:center;justify-content:center}
.kbody.multi .know.empty .klabel{display:none}.kbody.multi .kwait{font-size:22px;color:#555;letter-spacing:.14em}
.kbody.multi .knext{flex-direction:row;align-items:center;gap:16px;padding:12px 20px;border-top:2px solid #222}
.kbody.multi .knext .klabel{margin:0;white-space:nowrap;flex:none;font-size:16px}
.kbody.multi .knext .kcards{flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:12px;padding:2px 0;max-height:none;align-items:stretch;flex:1}
.kbody.multi .kcard{flex:0 0 auto;min-width:240px;max-width:360px;padding:10px 14px;gap:12px;align-items:center;height:auto;align-self:auto}
.kbody.multi .kcard .kn{font-size:36px;min-width:46px}.kbody.multi .kcard .kl,.kbody.multi .kcard .kl .dim{font-size:18px;line-height:1.25}.kbody.multi .kcard .km{font-size:13px;margin-top:4px}
.kbody.multi .kcard.dim{opacity:.55}
.kbody.multi .kcard .kl div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
.kbody.multi .knext{height:118px;box-sizing:border-box}
.kbody.multi .knext .kcards{align-items:center;height:100%}
.kbody.multi .kcard{height:84px;align-self:center;min-width:220px}
.kbody.multi .kcard .km{margin-top:2px}
.kbody.multi .know{min-height:0;height:auto}.kbody.multi .kslots{height:auto;min-height:0;overflow:hidden}
.kbody.multi .know .klines{flex:1 1 auto;min-height:0;overflow:auto}
/* kitchen: extra cooking orders (stations > 1) sit at the top of Up next */
.kcard.cooking{border-color:var(--yel);position:relative;padding-right:76px}
.kcard .kmini{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:12px;border:0;background:var(--yel);font-size:24px;cursor:pointer}
.kcard.cooking .km .pill{vertical-align:middle}
.kcard .kl div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kcard .kl{min-width:0}
/* kitchen cards: number as a compact badge column, dish text gets the width */
.kcard{gap:14px;padding:12px 14px}
.kcard .kn{font-size:40px;min-width:56px;line-height:1;align-self:flex-start;padding-top:2px}
.kcard .kl{flex:1;min-width:0;font-size:26px;line-height:1.3}.kcard .kl .dim{font-size:22px}
.kcard .kl div{white-space:normal;overflow:visible;text-overflow:clip}
.kcard .kl b{font-weight:700}
.knext{padding:16px 16px}
@media (max-width:1023px){.kcard .kn{font-size:34px;min-width:48px}.kcard .kl{font-size:22px}.kcard .kl .dim{font-size:19px}}
.kcard{border-color:#2a2a2a;background:#0d0d0d}.kcard:active{background:#161616}
/* kitchen: bigger everywhere; yellow quantity in the pending cards too */
.kit{--k3:48px;--k5:170px}
.know .klines{font-size:var(--k3)}.know .klines .dn{font-size:var(--k3)}.know .klines .do{font-size:calc(var(--k3) - 12px)}.know .klines li.dim{font-size:calc(var(--k3) - 10px)}
.know .klines li{margin:8px 0;line-height:1.2}.know .klines li b{min-width:96px}
.kcard .kn{font-size:46px;min-width:64px}
.kcard .kl{font-size:32px;line-height:1.25}.kcard .kl .dim{font-size:26px}
.kcard .kl .q{font-style:normal;color:var(--yel);font-weight:700}.kcard .kl .dim .q{color:#777}
.kcard .kl .o{color:#bbb;font-weight:400}.kcard .kl .dim .o{color:#666}
.kcard .kl div{margin:2px 0}
.kcard{padding:12px 16px}
@media (max-width:1023px){.kit{--k3:36px;--k5:130px}.kcard .kn{font-size:38px;min-width:54px}.kcard .kl{font-size:26px}.kcard .kl .dim{font-size:22px}}
@media (max-width:719px){.kit{--k3:28px;--k5:100px}.kcard .kn{font-size:32px}.kcard .kl{font-size:22px}.kcard .kl .dim{font-size:19px}}
/* square ready button on each pending card */
.kcard{cursor:pointer}.kcard.busy{opacity:.5;pointer-events:none}
.kready-sq{flex:none;width:72px;height:72px;border:0;border-radius:12px;background:var(--yel);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;align-self:center}
.kready-sq svg{width:40px;height:40px}.kready-sq:active{background:var(--yel2)}
.kcard .kn{align-self:center;padding-top:0}
@media (max-width:1023px){.kready-sq{width:60px;height:60px}.kready-sq svg{width:32px;height:32px}}
.kbody{grid-template-columns:5fr 6fr}
.kcard{gap:12px;padding:10px 12px}.kready-sq{width:64px;height:64px}.kready-sq svg{width:34px;height:34px}
.kcard .kn{font-size:42px;min-width:58px}.kcard .kl{font-size:28px}.kcard .kl .dim{font-size:23px}
.kit{--k3:46px}
/* pending cards: button, number and text all vertically centred on one axis; single lines sit level with the number */
.kcard{align-items:center;min-height:88px}
.kcard .kn{align-self:center;line-height:1;padding:0;display:flex;align-items:center}
.kcard .kl{align-self:center;display:flex;flex-direction:column;justify-content:center}
.kcard .kl div{margin:0;line-height:1.25}.kcard .kl div+div{margin-top:4px}
.kcard .kl .q{display:inline-block;min-width:1.55em}
.kcard{min-height:0;height:auto;overflow:visible}
.kcard .kl{overflow:visible}
.knext .kcards > .kcard{flex:0 0 auto}
.kcard{cursor:default}.kcard:active{background:#0d0d0d}
/* kitchen ready strip: a read-only ticker, not buttons */
.kfoot{justify-content:flex-start;align-items:center;gap:14px;padding:12px 20px}
.kfoot::before{content:"READY";font-size:15px;font-weight:600;letter-spacing:.14em;color:#777;margin-right:6px}
.kfoot .slot{min-width:0;height:auto;padding:0 4px;border-radius:0;background:none;color:#8a8a8a;font-size:34px;font-weight:600;border:0}
.kfoot .slot.e{display:none}
.kfoot .slot+.slot:not(.e)::before{content:"·";color:#444;margin-right:14px;font-weight:400}
/* kitchen ready strip: yellow outlined chips with yellow numbers (outline, not filled, so they don't read as buttons) */
.kfoot .slot{padding:4px 18px;border:2px solid var(--yel);border-radius:10px;color:var(--yel);font-size:30px;font-weight:600;background:none;min-width:72px;height:52px;display:inline-flex;align-items:center;justify-content:center}
.kfoot .slot+.slot:not(.e)::before{content:none;margin:0}
.kfoot{gap:12px}
.kfoot{justify-content:flex-end}
.khead .kstats{font-size:26px;gap:28px;line-height:1}
.board{position:relative}.bfs{position:absolute;top:14px;right:22px;margin:0;opacity:.6;z-index:2}
.bfoot{justify-content:flex-end}
.colt.r{padding-right:72px}

/* ===== kitchen responsive ===== */
.khead{flex-wrap:nowrap;min-width:0}.khead .kt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.khead .kstats{white-space:nowrap;flex:none}.khead .kstats span{white-space:nowrap}
@media (max-width:1180px){.khead .kt .mk{display:none}.khead .kstats{font-size:22px;gap:20px}}
@media (max-width:900px){
  .kbody{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .kslots{grid-row:1;height:auto;border-bottom:1px solid #333;padding:14px 16px 12px;overflow:visible}
  .knext{grid-row:2;border-right:0;padding:12px 16px}
  .know{height:auto;min-height:0;overflow:visible}
  .know .kno{font-size:96px;margin:0 0 2px}
  .know .klines{font-size:30px;max-height:132px;overflow:auto}.know .klines .dn{font-size:30px}.know .klines .do{font-size:24px}.know .klines li.dim{font-size:24px}.know .klines li b{min-width:62px}
  .know .kready{font-size:26px;padding:14px;margin-top:10px}
  .kcard .kn{font-size:36px;min-width:50px}.kcard .kl{font-size:24px}.kcard .kl .dim{font-size:20px}.kready-sq{width:56px;height:56px}.kready-sq svg{width:30px;height:30px}
  .kfoot{padding:10px 16px}.kfoot .slot{font-size:24px;height:46px;min-width:60px;padding:0 14px}.kfoot::before{font-size:13px}
}
@media (max-width:600px){
  .khead{padding:10px 12px;gap:10px}.khead .kt{font-size:16px}.khead .kt img{width:28px;height:28px}.khead .kstats{font-size:15px;gap:10px}.fsbtn{font-size:16px;padding:4px 10px}
  .know .kno{font-size:76px}.know .klines{font-size:24px}.know .klines .dn{font-size:24px}.know .klines .do{font-size:19px}.know .klines li.dim{font-size:19px}.know .klines li b{min-width:48px}
  .know .kready{font-size:22px;padding:12px}.know .kready svg{width:22px;height:22px}
  .kcard{padding:8px 10px;gap:10px}.kcard .kn{font-size:30px;min-width:42px}.kcard .kl{font-size:20px}.kcard .kl .dim{font-size:17px}.kready-sq{width:48px;height:48px}.kready-sq svg{width:26px;height:26px}
  .kfoot .slot{font-size:20px;height:40px;min-width:52px;padding:0 10px}
}
@media (max-width:600px){.khead .kt{display:none}.khead .kstats{overflow-x:auto;scrollbar-width:none;flex:1;margin:0}.khead .kstats::-webkit-scrollbar{display:none}.khead .fsbtn{flex:none}}

/* ===== board responsive ===== */
.btwo>div{display:flex;flex-direction:column;min-height:0}.btwo>div .nums{flex:1;min-height:0;overflow:auto;align-content:flex-start}
@media (max-width:1100px){.colt{height:54px;margin-bottom:16px}.colt span:first-child,.colt.r span:first-child{font-size:30px}.colt span:last-child:not(:first-child){font-size:20px}.colt.r{padding-right:60px}}
@media (max-width:899px){
  .board{padding:14px 16px 10px;gap:10px}
  .btwo{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:16px}
  .colt{height:46px;margin-bottom:12px}.colt span:first-child,.colt.r span:first-child{font-size:26px}.colt span:last-child:not(:first-child){font-size:18px}
  .colt.r{padding-right:0}
  .bfs{top:8px;right:12px;font-size:18px;padding:4px 10px}
  .bfoot{font-size:16px}.bfoot .bwhere{font-size:18px}
  .bpaused{font-size:18px;padding:8px}
}
@media (max-width:480px){.colt span:first-child,.colt.r span:first-child{font-size:22px;letter-spacing:.04em}.colt span:last-child:not(:first-child){font-size:15px}.board{padding:10px 12px 8px}}

/* kitchen cooking-now panel: options on their own line under the dish, same size */
.know .klines li{display:grid;grid-template-columns:max-content 1fr;column-gap:10px;align-items:baseline}
.know .klines li b{min-width:0}
.know .klines .do,.know .klines li.dim .do{display:block;grid-column:2;margin-left:0;font-size:inherit;color:#d6d6d6;font-weight:600}
@media (max-width:899px){.know .klines .do{font-size:inherit}.know .klines{max-height:220px}}
@media (max-width:600px){.know .klines .do{font-size:inherit}}
/* kitchen list text 20% larger */
.kcard .kl{font-size:34px}.kcard .kl .dim{font-size:28px}
@media (max-width:899px){.kcard .kl{font-size:29px}.kcard .kl .dim{font-size:24px}}
@media (max-width:600px){.kcard .kl{font-size:24px}.kcard .kl .dim{font-size:20px}}
/* kitchen list ready button 20% smaller */
.kready-sq{width:52px;height:52px}.kready-sq svg{width:28px;height:28px}
@media (max-width:899px){.kready-sq{width:45px;height:45px}.kready-sq svg{width:24px;height:24px}}
@media (max-width:600px){.kready-sq{width:38px;height:38px}.kready-sq svg{width:21px;height:21px}}

/* confirm sheet */
#confirm{z-index:60}#confirm .sheet .sub{margin:8px 0 16px}.confirm-row{display:flex;gap:10px}.confirm-row .btn{flex:1}
#confirm .big-in{width:100%;font-size:18px;padding:12px 14px;margin:4px 0 14px}
.btn .bi{vertical-align:-4px;margin-right:4px}

/* cooking-now lines match the list cards */
.know .klines.kl{display:block;font-size:34px;line-height:1.25;font-weight:400;margin:0;padding:0;list-style:none}
.know .klines.kl div{margin:0;line-height:1.25}.know .klines.kl div+div{margin-top:6px}
.know .klines.kl .q{display:inline-block;min-width:1.55em;color:var(--yel);font-style:normal;font-weight:700}.know .klines.kl .dim .q{color:#777}
.know .klines.kl b{font-weight:700;color:#fff}.know .klines.kl .o{color:#bbb;font-weight:400}
.know .klines.kl .dim{font-size:28px;color:#999}.know .klines.kl .dim b{color:#999}.know .klines.kl .dim .o{color:#666}
@media (max-width:899px){.know .klines.kl{font-size:29px}.know .klines.kl .dim{font-size:24px}}
@media (max-width:600px){.know .klines.kl{font-size:24px}.know .klines.kl .dim{font-size:20px}}
/* kitchen list: button and number 10% larger */
.kready-sq{width:57px;height:57px}.kready-sq svg{width:31px;height:31px}.kcard .kn{font-size:46px;min-width:64px}
@media (max-width:899px){.kready-sq{width:50px;height:50px}.kready-sq svg{width:26px;height:26px}.kcard .kn{font-size:40px;min-width:55px}}
@media (max-width:600px){.kready-sq{width:42px;height:42px}.kready-sq svg{width:23px;height:23px}.kcard .kn{font-size:33px;min-width:46px}}
/* non-cookable lines keep the yellow quantity */
.kcard .kl .dim .q,.know .klines.kl .dim .q{color:var(--yel)}

/* kitchen: ready tap flashes and slides the order out; newcomers fade in; a new ready chip bumps */
@keyframes kout{0%{transform:none;opacity:1}20%{box-shadow:0 0 0 3px var(--yel) inset;background:#2a2410;transform:scale(1.02)}100%{transform:translate(70%,40%) scale(.15);opacity:0}}
@keyframes kin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.kcard.out,.know.out{animation:kout .5s cubic-bezier(.4,0,.2,1) forwards;transform-origin:100% 100%;pointer-events:none;position:relative;z-index:2}
@keyframes kacross{from{opacity:0;transform:translateX(-120px) scale(.92)}60%{opacity:1}to{opacity:1;transform:none}}
.kcard.in{animation:kin .4s ease-out}
.know.in{animation:kacross .45s cubic-bezier(.2,.7,.2,1)}
@media (max-width:899px){.know.in{animation:kin .4s ease-out}}
.kfoot .slot.pop{animation:bump .4s ease-out}
@media (prefers-reduced-motion:reduce){.kcard.out,.know.out,.kcard.in,.know.in,.kfoot .slot.pop{animation:none}.kcard.out,.know.out{opacity:.3}}

/* orders tab: Collect all fades the card away before the list re-renders */
@keyframes ordout{to{opacity:0;transform:scale(.97)}}
.ord.gone{animation:ordout .3s ease forwards;pointer-events:none}
@media (prefers-reduced-motion:reduce){.ord.gone{animation:none;opacity:.3}}

/* on/off switch (More tab: online ordering) */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;cursor:pointer}
.switch-row .pill{margin-left:8px;vertical-align:middle}
.switch{appearance:none;-webkit-appearance:none;width:54px;height:32px;border-radius:16px;background:#c9c9c9;position:relative;flex:none;cursor:pointer;transition:background .2s;margin:0}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:left .2s}
.switch:checked{background:var(--ok)}.switch:checked::after{left:25px}
.switch:disabled{opacity:.4;cursor:default}

/* next-market banner countdown */
.ban .cd{display:inline-flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;border-radius:12px;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(4px)}
.cd .cdl{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#ddd;font-weight:600}
.cd .cdv{font-size:26px;font-weight:800;color:var(--yel);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.cd small{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#ddd;font-weight:600;width:100%}
@media (max-width:600px){.cd .cdv{font-size:22px}}

/* terms modal (public) */
.terms-modal{z-index:60;align-items:center}
.terms-modal .modal{max-width:640px;max-height:88vh;overflow:auto;color:#111}
.terms-modal .terms{font-size:15px;line-height:1.55;color:#333;margin-top:6px}
.terms-modal .terms b{color:#111}
.terms-modal .x{background:none;border:0;font-size:20px;cursor:pointer;padding:4px 8px}
body.no-scroll{overflow:hidden}
.site-foot a{color:inherit;text-decoration:underline}
.modal-wrap[hidden]{display:none}

/* market profile page */
.market-page .back{display:inline-block;margin-bottom:10px}
.market-hero{height:220px;margin-bottom:14px}
.market-head .d{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#b58900}
.market-head .h1{margin:2px 0 4px}
.market-head .sub{margin:0 0 14px}
.cd.page-cd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 16px;border-radius:12px;background:#111;border:1px solid #333;margin:0 0 14px}
.market-desc{font-size:16px;line-height:1.55;color:#333;margin:0 0 14px}
.market-facts{margin-bottom:12px}.market-facts .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.market-facts .kv:first-child{border-top:0}.market-facts .kv b{text-align:right}
@media (min-width:700px){.market-hero{height:300px}}

/* home: coming-up strip + show-all button */
.coming{margin:14px 0 12px}
.coming-h{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#888;margin:0 0 8px 2px}
.coming-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:8px;background:#fff;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none;transition:transform .12s,box-shadow .12s}
.coming-row:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.coming-row .dt{flex:none;width:52px;height:52px;border-radius:12px;background:#111;color:var(--yel);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.coming-row .dt b{font-size:22px;font-weight:800}.coming-row .dt small{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#ddd;margin-top:2px}
.coming-row .nm{flex:1;min-width:0;font-weight:700;font-size:16px}.coming-row .nm small{display:block;font-weight:400;font-size:13px;color:#666;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coming-row .chev{color:#999;font-size:22px;font-weight:700}
.btn-all{display:flex;align-items:center;gap:12px;width:100%;padding:16px 18px;margin:14px 0 18px;border-radius:14px;background:#111;color:var(--yel);font-weight:800;font-size:17px;text-decoration:none;border:2px solid #111;transition:transform .12s,box-shadow .12s}
.btn-all span{flex:1}.btn-all i{font-style:normal;font-size:22px}
.btn-all:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.18);background:#000}

/* Caveat (OFL) — handwritten accent for the home blurb */
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/caveat-600-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/caveat-600-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/caveat-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/caveat-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
.blurb{font-family:'Caveat',cursive;font-weight:600;font-size:32px;line-height:1.2;text-align:center;color:#1a1a1a;max-width:600px;margin:26px auto 8px;padding:0 8px}
.blurb::after{content:"";display:block;width:56px;height:4px;background:var(--yel);border-radius:2px;margin:14px auto 0}
.blurb-h{text-align:center;margin-top:22px}
@media (max-width:600px){.blurb{font-size:28px}}
/* fancier show-all button */
.btn-all{background:linear-gradient(135deg,#ffd84d 0%,#f9c21a 55%,#eab308 100%);color:#111;border:0;padding:16px 18px;border-radius:16px;font-size:18px;box-shadow:0 8px 22px rgba(249,194,26,.38),inset 0 1px 0 rgba(255,255,255,.55)}
.btn-all .ic{flex:none;width:42px;height:42px;border-radius:12px;background:#111;color:var(--yel);display:grid;place-items:center}
.btn-all i{transition:transform .15s;font-size:24px}.btn-all:hover{background:linear-gradient(135deg,#ffde66 0%,#f9c21a 55%,#eab308 100%);box-shadow:0 10px 26px rgba(249,194,26,.5),inset 0 1px 0 rgba(255,255,255,.55)}.btn-all:hover i{transform:translateX(5px)}
.market-page .dirs{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 14px}

/* FAQ accordion */
.faq{margin:0 0 22px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:14px 46px 14px 16px;font-weight:700;font-size:16px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:#111;color:var(--yel);display:grid;place-items:center;font-weight:800;font-size:18px;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq p{margin:0;padding:12px 16px 14px;color:#333;line-height:1.55;font-size:15px}

/* FAQ: the three ways */
.ways{display:grid;gap:10px;margin:0 0 22px}
.way{display:flex;gap:14px;align-items:flex-start;background:#111;color:#fff;border-radius:14px;padding:14px 16px}
.way .wn{flex:none;width:34px;height:34px;border-radius:50%;background:var(--yel);color:#111;font-weight:800;font-size:17px;display:grid;place-items:center}
.way b{display:block;font-size:17px;margin:4px 0 4px}
.way p{margin:0;color:#ccc;font-size:15px;line-height:1.5}
@media (min-width:700px){.ways{grid-template-columns:repeat(3,1fr)}.way{flex-direction:column;gap:8px}}
.ban .cd,.cd.page-cd{border:1px solid rgba(249,194,26,.75)}

/* call-to-action (Place order / Pre-order): same footprint as the OPENS IN box, yellow, with an icon */
.cta{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,#ffd84d 0%,#f9c21a 55%,#eab308 100%);color:#111;text-decoration:none;border:1px solid rgba(0,0,0,.25);box-shadow:0 8px 22px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.55);min-height:64px;box-sizing:border-box}
.cta .ic{flex:none;width:40px;height:40px;border-radius:11px;background:#111;color:var(--yel);display:grid;place-items:center}
.cta .tx{flex:1;font-weight:800;font-size:24px;line-height:1.05;letter-spacing:.01em}
.cta .tx small{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4a3a00;margin-top:3px}
.cta i{font-style:normal;font-size:24px;font-weight:800;transition:transform .15s}
.cta:hover{filter:brightness(1.04)}.cta:hover i{transform:translateX(4px)}
.cta.solo{margin:0 0 14px;box-shadow:0 8px 22px rgba(249,194,26,.38),inset 0 1px 0 rgba(255,255,255,.55)}
@media (max-width:600px){.cta .tx{font-size:21px}}

/* OPEN NOW badge: bigger, with a pulsing LED */
.pill.open-now{display:inline-flex;align-items:center;gap:8px;background:#111;color:var(--yel);font-weight:800;font-size:14px;letter-spacing:.08em;padding:8px 14px 8px 12px;border-radius:999px;border:1px solid rgba(249,194,26,.6);box-shadow:0 4px 14px rgba(0,0,0,.4)}
.pill.open-now .led{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.7);animation:led 1.6s ease-out infinite}
@keyframes led{0%{box-shadow:0 0 0 0 rgba(34,197,94,.75)}70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@media (prefers-reduced-motion:reduce){.pill.open-now .led{animation:none;box-shadow:0 0 6px 2px rgba(34,197,94,.6)}}
/* banner CTAs match the OPENS IN box: dark glass, thin yellow border, yellow text */
.cta{background:rgba(0,0,0,.55);backdrop-filter:blur(4px);border:1px solid rgba(249,194,26,.75);color:#fff;box-shadow:none}
.cta .ic{background:var(--yel);color:#111}
.cta .tx{color:var(--yel);font-size:26px}
.cta .tx small{color:#ddd}
.cta i{color:var(--yel)}
.cta:hover{filter:none;background:rgba(0,0,0,.7)}
.cta.solo{background:#111;box-shadow:none}
@media (max-width:600px){.cta .tx{font-size:22px}}

/* home: the two page buttons side by side */
.home-btns{display:flex;gap:10px;margin:14px 0 18px}
.home-btns .btn-all{flex:1;margin:0;min-width:0;padding:14px 14px;font-size:16px;gap:10px}
.home-btns .btn-all .ic{width:38px;height:38px}
.home-btns .btn-all span:not(.ic){line-height:1.15}
@media (max-width:420px){.home-btns .btn-all{font-size:15px;padding:12px 12px}.home-btns .btn-all i{display:none}}
/* public pages: footer follows the content, no stretch to the viewport (it forced a scroll on phones) */
body.public{min-height:0;display:block}body.public .page{flex:none}
.pill.open-now small{font-size:12px;font-weight:700;letter-spacing:.04em;color:#ddd;margin-left:2px}
.pill.open-now.sm{font-size:12px;padding:5px 10px 5px 9px;gap:6px;box-shadow:none}.pill.open-now.sm .led{width:8px;height:8px}.pill.open-now.sm small{font-size:11px}
.menu-head{align-items:center;margin-bottom:12px}.menu-head .h1{margin:0}
.pill.open-now.sm{font-size:11px;letter-spacing:.07em;padding:4px 9px 4px 8px;gap:5px;align-self:center}.pill.open-now.sm .led{width:7px;height:7px}
