/* Lao text always in the bundled Noto Sans Lao (works offline; some PCs fall back to old non-Unicode Lao fonts that look Thai) */
@font-face{font-family:"ZaabOS Lao";src:url(/static/fonts/NotoSansLao-Regular.ttf) format("truetype");font-weight:100 500;unicode-range:U+0E80-0EFF}
@font-face{font-family:"ZaabOS Lao";src:url(/static/fonts/NotoSansLao-Bold.ttf) format("truetype");font-weight:600 900;unicode-range:U+0E80-0EFF}
/* ===== ZaabOS design tokens =====
   Warm "spicy" brand identity (orange -> red), distinct from CASHFLOW24's
   indigo. Same structural approach (CSS custom properties, light/dark via
   both prefers-color-scheme and an explicit data-theme override) so the
   two products share nothing visually but share a proven pattern. */
:root{
  --bg:#faf7f2; --surface:#ffffff; --surface-2:#fbf3ea;
  --text:#231710; --text-muted:#7a6a5c; --text-faint:#a99884;
  --border:#f0e4d6;
  --primary:#ea580c; --primary-ink:#ffffff; --primary-soft:#fde9d7;
  --grad-1:#f97316; --grad-2:#dc2626;
  --pos:#0d9488; --pos-soft:#e6f5f3;
  --neg:#e11d48; --neg-soft:#fdeced;
  --blue:#2563eb; --blue-soft:#eaf1fd;
  --amber:#d97706; --amber-soft:#fdf0dc;
  --status-received:#2563eb; --status-preparing:#d97706; --status-ready:#0d9488;
  --status-served:#7c3aed; --status-completed:#16a34a; --status-cancelled:#9997a9;
  --shadow-sm:0 1px 3px rgba(234,88,12,.06), 0 1px 2px rgba(35,23,16,.03);
  --shadow-md:0 10px 28px -10px rgba(234,88,12,.18), 0 2px 8px -2px rgba(234,88,12,.08);
  --shadow-lg:0 24px 50px -16px rgba(220,38,38,.28);
  --radius-sm:12px; --radius-md:18px; --radius-lg:24px; --radius-xl:30px;
  --nav-h:64px; --tabbar-h:68px; --fab-size:56px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#150f0c; --surface:#1e1712; --surface-2:#241b15;
    --text:#f5efe8; --text-muted:#b8a794; --text-faint:#83725f;
    --border:#3a2c2080;
    --primary:#fb8a3c; --primary-ink:#1e1712; --primary-soft:#3a2410;
    --grad-1:#f97316; --grad-2:#dc2626;
    --pos:#2dd4bf; --pos-soft:#0f2c29;
    --neg:#fb7185; --neg-soft:#3a1520;
    --blue:#60a5fa; --blue-soft:#152238;
    --amber:#fbbf24; --amber-soft:#3a2c0e;
    --status-received:#60a5fa; --status-preparing:#fbbf24; --status-ready:#2dd4bf;
    --status-served:#a78bfa; --status-completed:#4ade80; --status-cancelled:#83725f;
    --shadow-sm:0 1px 3px rgba(0,0,0,.4);
    --shadow-md:0 10px 28px -10px rgba(249,115,22,.35), 0 2px 8px -2px rgba(0,0,0,.4);
    --shadow-lg:0 24px 50px -16px rgba(220,38,38,.45);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#150f0c; --surface:#1e1712; --surface-2:#241b15;
  --text:#f5efe8; --text-muted:#b8a794; --text-faint:#83725f;
  --border:#3a2c2080;
  --primary:#fb8a3c; --primary-ink:#1e1712; --primary-soft:#3a2410;
  --grad-1:#f97316; --grad-2:#dc2626;
  --pos:#2dd4bf; --pos-soft:#0f2c29;
  --neg:#fb7185; --neg-soft:#3a1520;
  --blue:#60a5fa; --blue-soft:#152238;
  --amber:#fbbf24; --amber-soft:#3a2c0e;
  --status-received:#60a5fa; --status-preparing:#fbbf24; --status-ready:#2dd4bf;
  --status-served:#a78bfa; --status-completed:#4ade80; --status-cancelled:#83725f;
  --shadow-sm:0 1px 3px rgba(0,0,0,.4);
  --shadow-md:0 10px 28px -10px rgba(249,115,22,.35), 0 2px 8px -2px rgba(0,0,0,.4);
  --shadow-lg:0 24px 50px -16px rgba(220,38,38,.45);
  color-scheme: dark;
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text)}
:root{font-family:"ZaabOS Lao","Inter","Prompt","Noto Sans Lao","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Noto Sans Thai",sans-serif;-webkit-font-smoothing:antialiased}
.tabular{font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
button{-webkit-tap-highlight-color:transparent;cursor:pointer}
small{color:var(--text-muted)}
a{color:var(--primary)}

/* ===== Header ===== */
header{
  height:calc(var(--nav-h) + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:env(safe-area-inset-top) max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left));
  position:sticky;top:0;z-index:20;backdrop-filter:saturate(180%) blur(10px);
}
.brand{font-weight:800;letter-spacing:.02em;font-size:16px;display:flex;align-items:center;gap:8px}
.brand::before{content:"🌶️";font-size:15px;line-height:1}
.brand b{font-weight:900;color:var(--primary)}
.head-right{display:flex;align-items:center;gap:10px}
.head-right select{border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:var(--surface-2);font-size:13px;max-width:150px;color:var(--text)}
.who-wrap{position:relative;flex:none}
.who{display:flex;align-items:center;gap:9px;background:transparent;border:1px solid transparent;border-radius:10px;padding:4px 6px 4px 4px;cursor:pointer;transition:background .15s}
.who:hover,.who:focus-visible{background:var(--surface-2)}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--grad-1),var(--grad-2));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:none}
.who-text{display:flex;flex-direction:column;line-height:1.25;text-align:left;min-width:0}
.who-text span,.who-text small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;display:block}
.who-text span{font-weight:700;font-size:13.5px}
.who-text small{font-size:11px}
.who-caret{font-size:10px;color:var(--text-faint);flex:none}
.who-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-md);min-width:190px;padding:6px;z-index:40;display:flex;flex-direction:column;gap:2px}
.who-menu button{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap}
.who-menu button:hover{background:var(--surface-2)}
.ghost-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 11px;cursor:pointer;font-size:12.5px;white-space:nowrap;transition:background .15s,border-color .15s}
.ghost-btn:hover{background:var(--surface-2);border-color:var(--text-faint)}
.ghost-btn.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}

/* ===== Scope bar ===== */
.biz-scope-bar{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:10px 14px;margin-bottom:14px;font-size:13px;flex-wrap:wrap}
.biz-scope-lbl{font-weight:700;color:var(--text-muted);white-space:nowrap}
.biz-scope-bar select{flex:1;min-width:120px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:var(--surface);font-size:13px;font-weight:600;color:var(--text)}

/* ===== Layout ===== */
main{max-width:960px;margin:auto;padding:18px 16px 34px}
main.narrow{max-width:560px}

/* ===== Hero ===== */
.hero{
  background:linear-gradient(135deg,var(--grad-1),var(--grad-2));color:#fff;
  border-radius:var(--radius-xl);padding:26px 24px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  box-shadow:var(--shadow-lg);position:relative;overflow:hidden;
}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120px 120px at 88% -10%,rgba(255,255,255,.25),transparent 70%)}
.hero>div{position:relative;z-index:1}
.hero small{opacity:.85;color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.02em}
.hero .headline{font-size:26px;font-weight:800;margin-top:6px;letter-spacing:-.01em}
.add,.save{border:0;border-radius:16px;background:#fff;color:var(--primary);font-weight:800;padding:13px 18px;cursor:pointer;position:relative;z-index:1;box-shadow:0 6px 16px -4px rgba(0,0,0,.25);white-space:nowrap;transition:transform .12s}
.save{background:var(--primary);color:var(--primary-ink);box-shadow:none;width:100%;margin-top:12px}
.save:hover{filter:brightness(1.06)}
.save:active{transform:scale(.99)}
.save:disabled{opacity:.5;cursor:not-allowed}
.save.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}
.save.danger{background:var(--neg);color:#fff}

/* ===== Tabs ===== */
.tabs{display:flex;gap:6px;margin:18px 0 4px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{
  border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:13px;
  padding:10px 14px;cursor:pointer;font-weight:700;white-space:nowrap;font-size:13.5px;
  display:flex;align-items:center;gap:6px;transition:background .15s,color .15s,border-color .15s;
}
.tabs .tab-ic{font-size:15px;line-height:1}
.tabs .active{background:var(--text);color:var(--surface);border-color:var(--text)}
:root[data-theme="dark"] .tabs .active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .tabs .active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
}

.filters{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
.filters button,.panel-head button,.filters-inline select,.panel-head select{
  border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:11px;padding:9px 13px;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s;
}
.filters button:hover,.panel-head button:hover{background:var(--surface-2)}
.filters .active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}

/* ===== Cards / panels ===== */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm);position:relative}
.card span{color:var(--text-muted);font-size:12.5px;font-weight:600}
.card strong{display:block;font-size:23px;margin-top:8px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:normal}
.panel{margin-top:14px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}
.panel h2{font-size:15.5px;margin:0 0 14px;font-weight:800}
.panel h3{font-size:13px;margin:22px 0 8px;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---- pill / status badge ---- */
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:99px;font-size:11px;font-weight:700;white-space:nowrap;line-height:1.5}
.pill .pill-dot{width:7px;height:7px;border-radius:50%;flex:none}
.pill.received{background:var(--blue-soft);color:var(--status-received)}
.pill.preparing{background:var(--amber-soft);color:var(--status-preparing)}
.pill.ready{background:var(--pos-soft);color:var(--status-ready)}
.pill.served{background:#f1eafd;color:var(--status-served)}
.pill.completed{background:#e7f9ec;color:var(--status-completed)}
.pill.cancelled{background:var(--surface-2);color:var(--status-cancelled)}
.pill.unpaid{background:var(--neg-soft);color:var(--neg)}
.pill.paid{background:var(--pos-soft);color:var(--pos)}
.pill .pill-dot.received{background:var(--status-received)}
.pill .pill-dot.preparing{background:var(--status-preparing)}
.pill .pill-dot.ready{background:var(--status-ready)}
.pill .pill-dot.served{background:var(--status-served)}
.pill .pill-dot.completed{background:var(--status-completed)}
.pill .pill-dot.cancelled{background:var(--status-cancelled)}

.avatar-badge{width:38px;height:38px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}

.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}
.row:first-child{border-top:0}
.row-right{display:flex;align-items:center;gap:7px;white-space:nowrap}
.icon-btn{border:0;background:var(--surface-2);color:var(--text);border-radius:9px;width:32px;height:32px;cursor:pointer;font-size:14px;transition:background .15s}
.icon-btn:hover{background:var(--border)}
.icon-btn.danger{color:var(--neg)}
.icon-btn:disabled{opacity:.3;cursor:not-allowed}

.filters-inline{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.manage-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.manage-row{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid var(--border);gap:10px}
.manage-row:first-child{border-top:0}
.manage-row small{color:var(--text-muted)}

/* ===== Modals ===== */
.modal{position:fixed;inset:0;background:rgba(20,12,8,.5);backdrop-filter:blur(2px);display:none;align-items:flex-end;justify-content:center;z-index:50}
.modal.show{display:flex;animation:fade-in .15s ease-out}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.sheet{
  background:var(--surface);width:min(620px,100%);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:10px 22px 24px;
  max-height:92vh;overflow:auto;box-shadow:var(--shadow-lg);animation:sheet-up .2s cubic-bezier(.2,.9,.3,1);
}
@keyframes sheet-up{from{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}
.sheet.small{width:min(500px,100%)}
.sheet.wide{width:min(760px,100%)}
.sheet::before{content:"";display:block;width:38px;height:4px;border-radius:99px;background:var(--border);margin:6px auto 12px}
.sheet-head{display:flex;justify-content:space-between;align-items:center}
.sheet-head h2{margin:0;font-size:18px;font-weight:800}
.sheet-head button{border:0;background:var(--surface-2);color:var(--text-muted);font-size:20px;cursor:pointer;width:32px;height:32px;border-radius:50%;line-height:1;display:flex;align-items:center;justify-content:center}
.type{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:16px 0}
.type button{padding:12px;border:1px solid var(--border);background:var(--surface-2);border-radius:13px;font-weight:700;cursor:pointer;color:var(--text-muted);font-size:13px;transition:.15s}
.type button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
label{display:block;font-size:12.5px;color:var(--text-muted);margin:12px 0;font-weight:600}
input,select,textarea{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid var(--border);border-radius:12px;font-size:15px;background:var(--surface-2);color:var(--text)}
textarea{resize:vertical;min-height:64px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);background:var(--surface)}
.checkbox-row{display:flex;align-items:center;gap:8px;margin:12px 0}
.checkbox-row input{width:auto;margin:0}
.hidden{display:none!important}

@media (min-width:640px){
  .modal{align-items:center}
  .sheet{border-radius:var(--radius-xl);max-height:88vh}
  .sheet::before{display:none}
}

/* ===== Language switcher (shared across all pages) — pill button, not a bare dropdown line ===== */
.lang-select{
  display:inline-block;width:auto;max-width:max-content;margin-top:0;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:9px 30px 9px 14px;background:var(--surface);color:var(--text);
  font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' stroke='%237a6a5c' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center;
  transition:box-shadow .15s,border-color .15s,transform .1s;
}
.lang-select:hover{box-shadow:var(--shadow-md);border-color:var(--primary)}
.lang-select:active{transform:scale(.98)}
.lang-select:focus{outline:none;box-shadow:var(--shadow-md);border-color:var(--primary)}
.lang-select-login{position:fixed;top:16px;right:16px;z-index:5;width:auto;box-shadow:var(--shadow-md)}
.lang-bar{display:flex;justify-content:flex-end;padding:12px 16px 0}

/* ===== Password show/hide toggle (auto-wired by i18n.js on every password field) ===== */
.pw-field{position:relative;margin-top:6px}
.pw-field .pw-input{margin-top:0;width:100%;padding-right:42px}
.pw-toggle{
  position:absolute;top:50%;right:4px;transform:translateY(-50%);
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;padding:0;border:0;border-radius:8px;
  background:transparent;color:var(--text-muted);cursor:pointer;
  transition:background .15s,color .15s;
}
.pw-toggle:hover{background:var(--surface-2);color:var(--text)}
.pw-toggle-active{color:var(--primary)}

/* ===== Login ===== */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:
  radial-gradient(600px 400px at 15% 10%,var(--primary-soft),transparent 60%),
  radial-gradient(600px 400px at 85% 90%,var(--primary-soft),transparent 60%),
  var(--bg);padding:20px}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:34px 28px;width:min(380px,100%);box-shadow:var(--shadow-md)}
.brand.center{text-align:center;font-size:22px;justify-content:center}
.login-sub{color:var(--text-muted);font-size:13px;text-align:center;margin:10px 0 4px}
.login-error{color:var(--neg);font-size:13px;min-height:18px;margin-top:6px;font-weight:600}
.link-btn{display:block;width:100%;text-align:center;background:transparent;border:0;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;padding:12px 0 0;text-decoration:underline}
.login-hint{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-top:10px;font-size:12.5px;line-height:1.6;color:var(--text-muted)}

/* ===== Misc ===== */
.all-mode-notice{background:var(--primary-soft);border:1px solid var(--border);color:var(--primary);border-radius:14px;padding:12px 16px;margin-bottom:14px;font-size:13px;font-weight:600}
.hint{color:var(--text-muted);font-size:12px;margin:14px 0 2px}
.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}
.empty-state .es-ic{font-size:40px;display:block;margin-bottom:10px}
.toast-wrap{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;width:min(420px,92vw)}
.toast{background:var(--text);color:var(--surface);padding:12px 18px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-md);animation:toast-in .2s ease-out}
.toast.err{background:var(--neg)}
.toast.ok{background:var(--pos)}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ===== Table grid (admin) ===== */
.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.table-chip{border:1px solid var(--border);border-radius:14px;padding:12px 10px;background:var(--surface-2);text-align:center;position:relative}
.table-chip .tc-name{font-weight:800;font-size:14px}
.table-chip .tc-actions{display:flex;justify-content:center;gap:6px;margin-top:8px}
.table-chip button{border:0;background:var(--surface);border-radius:8px;padding:5px 8px;font-size:11px;font-weight:700;color:var(--text-muted)}

/* ===== Menu item cards (admin + customer) ===== */
.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.menu-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:8px;position:relative}
.menu-card.sold-out{opacity:.55}
.menu-card .mc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.menu-card .mc-name{font-weight:800;font-size:15px}
.menu-card .mc-desc{color:var(--text-muted);font-size:12.5px;line-height:1.5}
.menu-card .mc-price{font-weight:800;color:var(--primary);font-size:16px;margin-top:auto}
.menu-card .mc-badge{position:absolute;top:12px;right:12px;background:var(--neg);color:#fff;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:99px}
.menu-card .mc-badge-stock{position:absolute;top:12px;left:12px;background:var(--amber);color:#1e1712;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:99px}
.menu-card .mc-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin:-2px 0 2px;background:var(--surface-2)}
.menu-card .mc-stock-info{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media (max-width:520px){.two-col{grid-template-columns:1fr}}

/* ===== Reports tab ===== */
.report-presets{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.report-presets button.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.report-date-range{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}
.report-date-range label{margin:0}
.report-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.report-card{background:var(--surface-2);border-radius:var(--radius-sm);padding:14px}
.report-card .rc-label{font-size:12px;color:var(--text-muted);font-weight:600}
.report-card .rc-value{font-size:20px;font-weight:800;margin-top:4px}
.report-card.rc-profit .rc-value{color:var(--pos)}
.report-card.rc-profit.rc-loss .rc-value{color:var(--neg)}
.top-item-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px solid var(--border);font-size:13.5px}
.top-item-row:first-child{border-top:0}
.top-item-rank{color:var(--text-muted);font-weight:700;margin-right:8px}

/* ===== Menu item image picker (admin form) ===== */
.image-picker{display:flex;flex-direction:column;align-items:center;gap:10px;border:1px dashed var(--border);border-radius:14px;padding:16px;background:var(--surface-2)}
.image-picker-preview{width:100%;max-width:220px}
.image-picker-preview img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid var(--border)}
.image-picker-empty{font-size:36px;color:var(--text-muted);padding:14px 0}
.image-picker-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* ===== Item photo in the item-option modal (customer + staff) ===== */
.item-modal-photo{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;margin-bottom:6px}
.menu-card .mc-actions{display:flex;gap:6px;flex-wrap:wrap}
.cat-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-weight:700;font-size:13px;white-space:nowrap;cursor:pointer}
.cat-chip.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.cat-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;margin-bottom:14px}
.cat-scroll::-webkit-scrollbar{display:none}

/* option group form builder */
.opt-group-box{border:1px dashed var(--border);border-radius:14px;padding:12px;margin-top:12px}
.opt-group-box .og-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.opt-row{display:flex;gap:8px;align-items:center;margin-top:8px}
.opt-row input{margin-top:0}
.opt-row input[type=number]{max-width:110px}
.add-opt-btn,.add-group-btn{border:1px dashed var(--border);background:transparent;color:var(--primary);font-weight:700;font-size:12.5px;padding:8px 12px;border-radius:10px;width:100%;margin-top:8px}

/* ===== Customer ordering page ===== */
.order-hero{background:linear-gradient(135deg,var(--grad-1),var(--grad-2));color:#fff;border-radius:0 0 var(--radius-xl) var(--radius-xl);padding:20px 20px 24px;text-align:center}
.order-hero .oh-icon{font-size:34px}
.order-hero .oh-name{font-weight:800;font-size:19px;margin-top:4px}
.order-hero .oh-table{margin-top:8px;display:inline-flex;background:rgba(255,255,255,.2);padding:6px 14px;border-radius:99px;font-weight:700;font-size:13px}
.qty-stepper{display:flex;align-items:center;gap:10px}
.qty-stepper button{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center}
.qty-stepper span{min-width:20px;text-align:center;font-weight:800}
.option-pick{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.option-pick label{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin:0;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;background:var(--surface-2)}
.option-pick input{width:auto;margin:0}
.option-pick label.checked{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.cart-fab{
  position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));max-width:560px;margin:auto;
  background:var(--text);color:var(--surface);border-radius:18px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;
  box-shadow:var(--shadow-lg);font-weight:800;z-index:30;border:0;
}
.cart-line{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-top:1px solid var(--border)}
.cart-line:first-child{border-top:0}
.cart-line .cl-name{font-weight:700;font-size:14px}
.cart-line .cl-opts{color:var(--text-muted);font-size:12px;margin-top:2px}
.cart-line .cl-price{font-weight:800;white-space:nowrap}
.cart-total-row{display:flex;justify-content:space-between;padding:14px 0;font-weight:800;font-size:17px;border-top:2px solid var(--border);margin-top:6px}
.table-select-error{background:var(--neg-soft);color:var(--neg);border-radius:12px;padding:12px 14px;font-weight:700;font-size:13.5px;margin-top:8px;display:flex;align-items:center;gap:8px}
.table-select-error::before{content:"⚠️"}
.table-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-top:10px}
.table-pick-grid button{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:14px 8px;font-weight:800;font-size:13px}
.table-pick-grid button.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}

/* ===== Order tracking / kitchen ticket card ===== */
.order-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm)}
.order-card .oc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.order-card .oc-no{font-weight:800;font-size:15px}
.order-card .oc-meta{color:var(--text-muted);font-size:12.5px;margin-top:2px}
.order-card .oc-items{margin-top:12px;list-style:none;padding:0}
.oc-item-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-top:1px dashed var(--border)}
.oc-item-row:first-child{border-top:0}
.oc-item-label{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer}
.oc-item-label input[type="checkbox"]{width:auto;margin:0;flex:none}
.oc-kitchen-sent-badge{font-size:11px;font-weight:700;color:var(--primary);background:var(--primary-soft);padding:2px 7px;border-radius:99px;white-space:nowrap;flex:none}
.oc-kitchen-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}
.oc-select-all{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-muted);cursor:pointer}
.oc-select-all input{width:auto;margin:0}
.btn-send-kitchen{border-color:var(--primary);color:var(--primary)}
.btn-send-kitchen:disabled{opacity:.45;cursor:not-allowed}
.status-track{display:flex;justify-content:space-between;margin-top:18px;position:relative}
.status-track::before{content:"";position:absolute;top:13px;left:0;right:0;height:2px;background:var(--border)}
.status-track .st-step{flex:1;text-align:center;position:relative;z-index:1}
.status-track .st-dot{width:26px;height:26px;border-radius:50%;background:var(--surface-2);border:2px solid var(--border);margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-size:12px}
.status-track .st-step.done .st-dot{background:var(--pos);border-color:var(--pos);color:#fff}
.status-track .st-step.current .st-dot{background:var(--primary);border-color:var(--primary);color:#fff}
.status-track .st-label{font-size:10.5px;font-weight:700;color:var(--text-muted)}
.status-track .st-step.done .st-label,.status-track .st-step.current .st-label{color:var(--text)}

/* ===== Kitchen board ===== */
.kitchen-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.kitchen-ticket{background:var(--surface);border:1px solid var(--border);border-left:5px solid var(--status-received);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-sm)}
.kitchen-ticket.preparing{border-left-color:var(--status-preparing)}
.kitchen-ticket.ready{border-left-color:var(--status-ready)}
.kitchen-ticket .kt-head{display:flex;justify-content:space-between;align-items:center}
.kitchen-ticket .kt-no{font-weight:800;font-size:16px}
.kitchen-ticket .kt-time{font-size:11px;color:var(--text-faint)}
.kitchen-ticket .kt-table{font-weight:700;color:var(--primary);margin-top:2px;font-size:13px}
.kitchen-ticket ul{list-style:none;padding:0;margin:10px 0}
.kitchen-ticket li{padding:6px 0;border-top:1px dashed var(--border);font-size:13.5px}
.kitchen-ticket li:first-child{border-top:0}
.kitchen-ticket li b{margin-right:4px}
.kitchen-ticket .kt-opts,.kitchen-ticket .kt-notes{color:var(--text-muted);font-size:11.5px;margin-left:18px}
.kitchen-ticket li.kt-item-highlight{background:var(--primary-soft);border-radius:8px;padding-left:8px;padding-right:8px;margin:2px -8px;border-top-color:transparent;animation:board-pulse 1.6s ease-in-out infinite}
.kt-sent-badge{font-size:10.5px;font-weight:800;color:var(--primary);white-space:nowrap}
.kitchen-ticket li.kt-item-sent .kt-sent-badge{color:var(--text-faint);font-weight:700}
.kitchen-ticket .kt-actions{display:flex;gap:8px;margin-top:10px}
.kitchen-ticket .kt-actions button{flex:1;border:0;border-radius:10px;padding:10px;font-weight:800;font-size:12.5px;color:#fff}
.kitchen-ticket .kt-actions .btn-preparing{background:var(--status-preparing)}
.kitchen-ticket .kt-actions .btn-ready{background:var(--status-ready)}
.kitchen-ticket .kt-actions .btn-served{background:var(--status-served)}
.kitchen-ticket .kt-actions .btn-cancel{background:var(--surface-2);color:var(--text-muted)}

/* ===== Live table board + persistent side panel (Orders tab) ===== */
.board-row{display:flex;gap:16px;align-items:flex-start;margin-top:14px}
.board-panel{flex:1 1 auto;min-width:0}
.table-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.board-tile{
  position:relative;border:1.5px solid var(--border);border-radius:var(--radius-md);
  background:var(--surface);padding:14px 12px;cursor:pointer;text-align:left;
  transition:transform .1s,box-shadow .15s,border-color .15s;box-shadow:var(--shadow-sm);
}
.board-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.board-tile .bt-name{font-weight:800;font-size:15px}
.board-tile .bt-meta{color:var(--text-muted);font-size:11.5px;margin-top:4px;line-height:1.5}
.board-tile .bt-empty-lbl{color:var(--text-faint);font-size:12px;margin-top:6px}
.board-tile.status-received{border-color:var(--status-received);background:var(--blue-soft)}
.board-tile.status-preparing{border-color:var(--status-preparing);background:var(--amber-soft)}
.board-tile.status-ready{border-color:var(--status-ready);background:var(--pos-soft)}
.board-tile.status-served{border-color:var(--status-served);background:#f1eafd}
:root[data-theme="dark"] .board-tile.status-served{background:#241a3a}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .board-tile.status-served{background:#241a3a}}
.board-tile .bt-badge{
  position:absolute;top:-7px;right:-7px;background:var(--neg);color:#fff;font-size:10px;font-weight:800;
  padding:3px 7px;border-radius:99px;box-shadow:0 2px 6px rgba(0,0,0,.25);animation:board-pulse 1.6s ease-in-out infinite;
}
@keyframes board-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.board-tile .bt-pay-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--neg);margin-right:5px;vertical-align:middle}

.side-panel{
  flex:0 0 280px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:16px;box-shadow:var(--shadow-sm);position:sticky;top:calc(var(--nav-h) + 14px);max-height:calc(100vh - var(--nav-h) - 28px);overflow:auto;
}
.side-panel h3{font-size:13px;margin:0 0 12px;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.side-row{
  display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--border);
  cursor:pointer;background:none;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left;
}
.side-row:first-of-type{border-top:0}
.side-row:hover{background:var(--surface-2)}
.side-row .sr-main{min-width:0}
.side-row .sr-no{font-weight:700;font-size:13px;display:flex;align-items:center;gap:6px}
.side-row .sr-meta{color:var(--text-muted);font-size:11.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-row .sr-right{text-align:right;flex:none}
.side-row .sr-amt{font-weight:800;font-size:12.5px}
.sr-new-dot{width:7px;height:7px;border-radius:50%;background:var(--status-received);flex:none;animation:board-pulse 1.6s ease-in-out infinite}

.other-orders-wrap{margin-top:18px}
.other-orders-wrap h3{font-size:13px;margin:0 0 10px;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}

/* ===== Order detail modal — reuses .order-card, stacks multiple ===== */
#orderDetailBody .order-card{margin-top:12px}
#orderDetailBody .order-card:first-child{margin-top:0}
.oc-pay-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.btn-confirm-pay{background:var(--pos)!important;color:#fff!important;border-color:var(--pos)!important}

/* ===== Printable 80mm receipt + kitchen ticket ===== */
.receipt-print,.kitchen-ticket-print{position:absolute;left:-9999px;top:0;font-family:Arial,"ZaabOS Lao","Noto Sans Lao","Noto Sans Thai",sans-serif;width:72mm;box-sizing:border-box;padding:2mm 1.5mm;color:#000;background:#fff;font-size:11.5px;line-height:1.28}
.receipt-print .rp-brand{text-align:center;font-size:21px;font-weight:900;letter-spacing:1.2px;margin-top:1mm}
.receipt-print .rp-brand-sub{text-align:center;font-size:8px;letter-spacing:3px;margin:1px 0 5px}
.receipt-print .rp-center{text-align:center;font-weight:700;font-size:11px;margin-bottom:3px}
.receipt-print .rp-sep,.kitchen-ticket-print .rp-line{border-top:1px dashed #000;margin:6px 0}
.receipt-print .rp-meta{display:grid;grid-template-columns:auto 1fr auto auto;gap:4px 8px;align-items:baseline}
.receipt-print .rp-meta b{text-align:left}
.receipt-print .rp-order{grid-template-columns:auto 1fr;margin-top:3px}
.receipt-print .rp-items{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11.5px}
.receipt-print .rp-items td{padding:3px 0;vertical-align:top}
.receipt-print .rp-qty{width:9mm;text-align:left;font-weight:700}
.receipt-print .rp-item{padding-right:2mm!important;word-break:break-word}
.receipt-print .rp-price{width:21mm;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.receipt-print .rp-item-sub{font-size:9.5px;line-height:1.2;margin-top:1px}
.receipt-print .rp-row,.receipt-print .rp-footrow{display:flex;justify-content:space-between;gap:8px;margin-top:2px;font-variant-numeric:tabular-nums}
.receipt-print .rp-row span:last-child,.receipt-print .rp-footrow span:last-child{text-align:right}
.receipt-print .rp-total{display:flex;justify-content:space-between;align-items:baseline;font-size:17px;font-weight:900;margin-top:5px;padding-top:5px;border-top:1px solid #000}
.receipt-print .rp-paid{text-align:center;font-size:12px;font-weight:900;margin:7px 0 5px}
.receipt-print .rp-footrow{font-size:9.5px}
.receipt-print .rp-thanks{text-align:center;font-size:12px;font-weight:700;margin-top:10px}
.receipt-print .rp-powered{text-align:center;font-size:8px;letter-spacing:1px;margin-top:2px}
.kitchen-ticket-print h3{text-align:center;margin:0 0 6px;font-size:19px}
.kitchen-ticket-print .rp-sub{text-align:center;font-size:12px;margin-bottom:3px}
.kitchen-ticket-print .kt-print-head{text-align:center;font-weight:900;font-size:19px;border:2px solid #000;padding:6px;margin-bottom:8px;letter-spacing:.5px}
.kitchen-ticket-print .kt-print-item{font-size:16px;font-weight:700;padding:6px 0;border-top:1px dashed #999}
.kitchen-ticket-print .kt-print-item:first-child{border-top:0}
.kitchen-ticket-print .kt-print-opts,.kitchen-ticket-print .kt-print-notes{font-size:13px;font-weight:400;margin-top:2px}
@page{size:80mm auto;margin:2mm}
@media print{body>*{display:none!important}body>.print-target{display:block!important;position:static!important;left:0!important;width:72mm!important;margin:0 auto!important}}

/* ===== Customer menu — category drill-down ===== */
.category-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:4px}
.category-tile{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 14px;
  text-align:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .1s,box-shadow .15s;
}
.category-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.category-tile .ct-icon{font-size:30px;display:block;margin-bottom:8px}
.category-tile .ct-name{font-weight:800;font-size:14px}
.category-tile .ct-count{color:var(--text-muted);font-size:11.5px;margin-top:3px}
.category-tile.ct-all{background:linear-gradient(135deg,var(--grad-1),var(--grad-2));color:#fff;border-color:transparent}
.category-tile.ct-all .ct-count{color:rgba(255,255,255,.85)}
.items-view-head{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.items-view-head .ivh-back{border:1px solid var(--border);background:var(--surface);border-radius:11px;padding:9px 13px;font-weight:700;font-size:13px;cursor:pointer;color:var(--text)}
.items-view-head .ivh-title{font-weight:800;font-size:17px;display:flex;align-items:center;gap:6px}

@media (max-width:900px){
  .board-row{flex-direction:column}
  /* column layout + align-items:flex-start shrank the table board to one 165px column on tablets */
  .board-row>.board-panel{width:100%;align-self:stretch}
  .side-panel{flex:none;width:100%;position:static;max-height:none}
}

/* ===== Mobile ===== */
@media (max-width:640px){
  main{padding:16px 14px 90px}
  .hero{padding:22px 20px;border-radius:24px}
  .cards,.manage-grid{grid-template-columns:1fr 1fr}
  .row{align-items:flex-start}
  .row-right{flex-direction:row;align-items:flex-end}
  .panel-head{align-items:flex-start;flex-wrap:wrap}
  .tabs{
    position:fixed;left:0;right:0;bottom:0;margin:0;z-index:30;
    background:var(--surface);border-top:1px solid var(--border);
    padding:6px 6px calc(6px + env(safe-area-inset-bottom));
    box-shadow:0 -8px 24px -12px rgba(20,21,26,.15);
    overflow-x:visible;
  }
  .tabs button{
    flex:1 1 0;flex-direction:column;gap:2px;border:0;background:transparent;border-radius:12px;
    padding:7px 2px;font-size:10.5px;font-weight:700;color:var(--text-faint);min-width:0;
  }
  .tabs .tab-ic{font-size:19px}
  .tabs .tab-lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .tabs .active{background:transparent;color:var(--primary)}
  header{padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));gap:6px}
  .head-right{gap:6px}
  .who-text{display:none}
  .head-right select{max-width:88px;font-size:12px;padding:7px 20px 7px 8px;background-position:right 7px center;background-size:8px}
  .brand{font-size:14px}
}

/* ZaabOS V2 Round 2 — fast POS/table controls */
.oc-edit-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}.mini-step,.cart-steps button{min-width:34px;min-height:34px;border:1px solid var(--border);background:var(--card);border-radius:9px;font-weight:800;font-size:17px}.mini-step:disabled{opacity:.35}.mini-cancel{border:0;background:#fff1f2;color:#be123c;border-radius:9px;padding:8px 10px;font-weight:700}.cancelled-note{color:#be123c}.cart-steps{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:7px}.board-tile{min-height:116px}.menu-card{touch-action:manipulation}.oc-pay-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.oc-item-row{align-items:flex-start;gap:8px}.oc-edit-controls{width:100%;margin:7px 0 0 28px}.sheet.wide{width:min(100%,100vw);max-height:94vh}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.board-row{display:block}.side-panel{margin-top:14px}}
/* ZaabOS V2 Round 3 — kitchen cancellation/update clarity */
.kitchen-ticket .kt-cancelled{margin:5px 0 0 18px;font-size:11.5px;font-weight:800;color:#b91c1c}
.kitchen-ticket li.kt-item-cancelled{opacity:.7;background:rgba(185,28,28,.06);text-decoration-color:#b91c1c}

.ghost-btn.danger{color:#b91c1c;border-color:#fecaca;background:#fff7f7}


/* ===== Round 14H — POS Workspace Redesign ===== */
main{max-width:1180px;padding-top:14px}
.header-branch{display:flex;align-items:center;gap:5px;min-width:0;border:1px solid var(--border);background:var(--surface-2);border-radius:11px;padding-left:8px}
.header-branch-icon{font-size:14px}.header-branch select{border:0!important;background:transparent!important;max-width:150px!important;font-weight:700;padding-left:2px!important}
.pos-nav{position:relative;overflow:visible;display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:8px;max-width:720px;margin:16px 0 12px}
.pos-nav>button,.pos-nav>.nav-more-wrap>.nav-primary{justify-content:center;min-height:46px}
.nav-more-wrap{position:relative}.nav-more-wrap>.nav-primary{width:100%}
.nav-more-menu{position:absolute;z-index:45;top:54px;right:0;width:260px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:1fr 1fr;gap:6px}
.nav-more-menu.hidden{display:none}.nav-more-menu button{width:100%;min-width:0;white-space:normal;justify-content:flex-start;padding:11px;border-radius:11px}
.eyebrow{display:block;color:var(--primary);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
#tab-orders>.panel{margin-top:0;padding:20px}.board-row{margin-top:8px}.table-board{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:12px}.board-tile{min-height:128px;border-radius:16px}
.history-panel{margin-top:0}.history-head{margin-bottom:14px}.history-head h2{margin-bottom:0;font-size:20px}
#tab-orders .side-panel{border-radius:16px}
@media (min-width:641px){.pos-nav .nav-primary{font-size:13px}.pos-nav .tab-ic{font-size:17px}}
@media (max-width:760px){
  main{padding:10px 12px 86px}
  .header-branch{order:2;max-width:132px}.header-branch-icon{display:none}.header-branch select{max-width:125px!important;font-size:11px!important}
  .pos-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;max-width:none;display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:5px 4px calc(5px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -8px 24px -16px rgba(0,0,0,.4)}
  .pos-nav>button,.pos-nav>.nav-more-wrap>.nav-primary{min-height:52px;padding:5px 2px!important;border:0!important;background:transparent!important;display:flex;flex-direction:column;gap:2px;font-size:10px!important;color:var(--text-faint)}
  .pos-nav>button.active{color:var(--primary)!important}.pos-nav .tab-ic{font-size:20px!important}
  .nav-more-menu{position:fixed;left:10px;right:10px;bottom:72px;top:auto;width:auto;grid-template-columns:repeat(2,1fr);padding:10px;border-radius:18px}
  .nav-more-menu button{display:flex!important;flex-direction:row!important;min-height:48px!important;font-size:12px!important;border:1px solid var(--border)!important;background:var(--surface-2)!important;color:var(--text)!important}
  #tab-orders>.panel{padding:14px}.table-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.board-tile{min-height:110px;padding:12px}
  .side-panel{display:none}.other-orders-wrap{margin-top:14px}
  .history-head .head-actions{width:100%}.history-head select{flex:1}
}

/* Round 14H.1 modal hierarchy + fast reason picker */
#confirmPaymentModal{z-index:70}
#reasonModal{z-index:75}
.reason-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.reason-choice{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:12px;padding:12px;text-align:left;cursor:pointer;font-weight:700}
.reason-choice.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.kitchen-home-link{min-width:112px;text-align:center}
@media(max-width:639px){.reason-choice-grid{grid-template-columns:1fr}}

/* Round 14H.2 — primary navigation hierarchy */
.pos-nav{max-width:760px}
.pos-nav>button,.pos-nav>.nav-more-wrap>.nav-primary{
  min-height:50px;
  border-radius:14px;
}
.pos-nav .tab-lb{font-weight:700;letter-spacing:.01em}
.pos-nav>button.active{
  box-shadow:0 5px 16px rgba(255,126,45,.16);
}
@media (min-width:641px){
  .pos-nav{grid-template-columns:1.08fr 1fr 1fr 1fr .92fr}
  .pos-nav .nav-primary{font-size:13.5px}
}
@media (max-width:640px){
  .pos-nav .tab-lb{font-size:10.5px;line-height:1.15}
  .pos-nav .tab-ic{line-height:1}
}


/* ===== Round 14I.2 — workspace information architecture + layout polish ===== */
/* Four primary workspaces: POS, Menu, History, More. Kitchen is contextual from History. */
@media (min-width:641px){
  .pos-nav{grid-template-columns:1.08fr 1fr 1fr .92fr;max-width:620px}
}
@media (max-width:760px){
  .pos-nav{grid-template-columns:repeat(4,1fr)}
}

/* Reading/management screens should not stretch edge-to-edge on large displays. */
#tab-history{max-width:940px;margin-inline:auto}
#tab-reports,#tab-operations,#tab-pricing,#tab-branches,#tab-users,#tab-tenants,#tab-tables{max-width:980px;margin-inline:auto}
#tab-menu{max-width:1080px;margin-inline:auto}
#tab-history .panel,#tab-reports .panel,#tab-operations .panel,#tab-pricing .panel,#tab-branches .panel,#tab-users .panel,#tab-tenants .panel,#tab-tables .panel,#tab-menu .panel{
  border-radius:18px;
}
.history-panel{padding:20px 22px}
#ordersList{display:grid;grid-template-columns:1fr;gap:12px}
#ordersList>.order-card{margin:0;padding:16px 18px;border-radius:15px;box-shadow:none}
.history-head{padding-bottom:14px;border-bottom:1px solid var(--border)}
.history-kitchen-btn{white-space:nowrap}

/* Reports: compact dashboard rhythm instead of one long full-width sheet. */
#tab-reports>.panel{padding:20px 22px}
#tab-reports .report-presets{margin:12px 0 10px}
#tab-reports .report-date-range{padding:12px;background:var(--surface-2);border-radius:13px;margin-bottom:14px}
#tab-reports .report-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#tab-reports .report-card{min-width:0;padding:13px;border:1px solid var(--border);box-shadow:none}
#tab-reports .report-card .rc-value{font-size:18px}
#tab-reports h3{margin-top:18px}

/* Kitchen boot screen prevents the login card from flashing during session detection. */
.kitchen-boot{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg);z-index:100}
.kitchen-boot.hidden{display:none}
.kitchen-boot-card{display:grid;justify-items:center;gap:16px}
.kitchen-boot-dot{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:kitchenBootSpin .7s linear infinite}
@keyframes kitchenBootSpin{to{transform:rotate(360deg)}}

@media(max-width:760px){
  #tab-history,#tab-reports,#tab-operations,#tab-pricing,#tab-branches,#tab-users,#tab-tenants,#tab-tables,#tab-menu{max-width:none}
  .history-panel,#tab-reports>.panel{padding:14px}
  .history-head{align-items:stretch}
  .history-head .head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .history-head #orderStatusFilter{grid-column:1/-1;width:100%}
  #tab-reports .report-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  #tab-reports .report-date-range{display:grid;grid-template-columns:1fr 1fr;align-items:end}
  #tab-reports .report-date-range button{grid-column:1/-1}
}


/* ===== Round 14I.3 — reporting / shift / pricing redesign ===== */
.report-dashboard{padding:22px}
.report-title-row{margin-bottom:8px}
.report-custom-range{margin:10px 0 16px;border:1px solid var(--border);border-radius:12px;padding:0 12px}
.report-custom-range summary,.cash-tools summary,.promo-create summary,.audit-details summary{cursor:pointer;padding:12px 0;font-weight:700}
.report-summary-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.report-two-col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:14px;margin-top:16px}
.report-section{border:1px solid var(--border);border-radius:16px;padding:16px;background:var(--surface-2)}
.report-section h3{margin:2px 0 14px}
.section-kicker{font-size:12px;color:var(--muted)}
.payment-cards{grid-template-columns:1fr 1fr}
.top-items-chart{display:grid;gap:13px}
.top-bar-row{display:grid;gap:7px}
.top-bar-head{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px}
.top-item-rank{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--surface);margin-right:8px;font-weight:800}
.top-bar-track{height:9px;background:var(--surface);border-radius:999px;overflow:hidden}
.top-bar-fill{height:100%;background:var(--primary);border-radius:999px}

.shift-workspace{padding:22px}
.shift-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.shift-state-card{min-height:82px;border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px;justify-content:center}
.shift-state-card small{color:var(--muted)}
.shift-state-card b{font-size:16px}
.shift-state-card.is-open{flex-direction:row;align-items:center;justify-content:flex-start}
.shift-dot{width:10px;height:10px;border-radius:50%;background:#41c67a;box-shadow:0 0 0 5px rgba(65,198,122,.12)}
.shift-action-area{margin-top:14px}
.shift-open-box,.shift-close-box{border:1px solid var(--border);border-radius:16px;padding:16px;display:grid;grid-template-columns:minmax(180px,.75fr) minmax(360px,1.25fr);gap:18px;align-items:end;background:var(--surface-2)}
.shift-open-controls,.shift-close-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:9px}
.shift-open-controls input,.shift-close-controls input{margin:0}
.cash-tools,.audit-details{margin-top:14px;border:1px solid var(--border);border-radius:14px;padding:0 14px}
.compact-form{margin-top:4px}
.section-divider{height:1px;background:var(--border);margin:18px 0}

.pricing-layout{max-width:980px;margin:auto;display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:14px;align-items:start}
.pricing-card{margin:0!important;padding:20px 22px}
.compact-save{width:auto;min-width:160px;padding-inline:20px}
.promo-list{display:grid;gap:8px;margin:10px 0}
.promo-create{margin-top:12px;border-top:1px solid var(--border)}
.promo-create .compact-form{grid-template-columns:1fr 1fr}

@media(max-width:900px){
  .report-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-two-col,.pricing-layout{grid-template-columns:1fr}
  .shift-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shift-open-box,.shift-close-box{grid-template-columns:1fr}
}
@media(max-width:640px){
  .report-dashboard,.shift-workspace,.pricing-card{padding:14px}
  .report-summary-cards,.payment-cards,.shift-summary-grid{grid-template-columns:1fr 1fr}
  .top-bar-head{align-items:flex-start}
  .shift-open-controls,.shift-close-controls{grid-template-columns:1fr}
  .promo-create .compact-form{grid-template-columns:1fr}
}

/* Round 15 Restaurant Core Complete */
.pos-shift-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:800;cursor:pointer;margin-bottom:10px}.pos-shift-badge.open{background:rgba(65,198,122,.09);border-color:rgba(65,198,122,.3)}.pos-shift-badge.closed{background:var(--surface-2)}
.bill-manager-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.bill-manager-tabs button{padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);font-weight:800}.bill-manager-tabs button.active{background:var(--primary);color:#111;border-color:var(--primary)}
.bm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bm-choice{min-height:76px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);padding:12px;text-align:left;font-weight:800}.bm-choice small{display:block;color:var(--muted);margin-top:6px}.bm-items{display:grid;gap:8px;margin-bottom:14px}.bm-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:13px;padding:12px}.bm-item small{display:block;color:var(--muted)}
.split-pay-head{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.payment-part-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:8px}
.inventory-workspace{max-width:980px;margin:auto}.inventory-summary{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:10px;margin-bottom:14px}.ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.ingredient-row small{display:block;color:var(--muted);margin-top:3px}.ingredient-row.low strong{color:#ff7b72}
.kitchen-station-bar{display:flex;justify-content:flex-end;padding:8px 0}.kitchen-station-bar select{max-width:220px}
@media(max-width:640px){.bm-grid{grid-template-columns:1fr 1fr}.ingredient-row{grid-template-columns:1fr auto}.ingredient-row button{grid-column:1/-1}}

/* Round 17 */
.inventory-toolbar{display:flex;gap:8px;justify-content:flex-end;margin:0 0 12px}.ingredient-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.recipe-row{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:8px;align-items:center;margin:8px 0}.inventory-history-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.inventory-history-row small{display:block;color:var(--muted);margin-top:3px}@media(max-width:640px){.ingredient-actions{grid-column:1/-1;justify-content:flex-start}.recipe-row{grid-template-columns:1fr 110px auto}.inventory-toolbar{justify-content:flex-start;flex-wrap:wrap}}

/* Round 17.1 receipt alignment carried forward */
.receipt-print{padding-right:4.5mm}.receipt-print .rp-price{padding-right:3mm!important}.receipt-print .rp-row span:last-child,.receipt-print .rp-footrow span:last-child,.receipt-print .rp-total span:last-child{padding-right:3mm;box-sizing:border-box}
/* Round 18 */
.saas-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.saas-summary>div{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px}.saas-summary b{display:block;font-size:22px}.saas-summary span{font-size:11px;color:var(--text-muted)}.saas-filters{display:flex;gap:8px;margin-bottom:12px}.saas-filters input{flex:1}.tenant-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.tenant-card-main{display:flex;align-items:center;gap:12px;min-width:0}.tenant-card-main small{display:block;color:var(--text-muted);margin-top:4px}.tenant-card-actions{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:700px){.saas-summary{grid-template-columns:1fr 1fr}.tenant-card{align-items:flex-start;flex-direction:column}.tenant-card-actions{width:100%}}

/* Round 19 */
.network-banner{position:fixed;z-index:100000;top:0;left:0;right:0;min-height:34px;padding:7px 14px;background:#2a2020;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:700}.network-banner.hidden{display:none}.network-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.18)}html.is-offline body{padding-top:34px}
.system-page{margin:0;min-height:100dvh;background:#121018;color:#f7f5fa;display:grid;place-items:center;padding:24px;font-family:"ZaabOS Lao",Inter,Prompt,"Noto Sans Lao",system-ui,sans-serif}.system-card{width:min(460px,100%);text-align:center;background:#1a1721;border:1px solid rgba(255,255,255,.09);border-radius:24px;padding:34px 28px;box-shadow:0 24px 80px rgba(0,0,0,.35)}.system-brand{font-size:25px;font-weight:800}.system-brand b{color:#ea580c}.system-code{font-size:72px;font-weight:900;line-height:1;margin:28px 0 12px;color:#ea580c}.system-card h1{font-size:24px;margin:0 0 10px}.system-card p{color:#aaa4b4;line-height:1.7;margin:0 auto 22px;max-width:360px}.system-card small{display:block;color:#777181;margin-top:18px;line-height:1.5}.system-action{width:100%;max-width:280px}.offline-orb{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;margin:28px auto 16px;background:#2b2332;font-size:42px;color:#ea580c}.offline-status{display:flex;justify-content:center;align-items:center;gap:8px;margin:0 0 20px;color:#aaa4b4;font-size:13px}.offline-status span:first-child{width:9px;height:9px;border-radius:50%;background:#ef4444}.offline-status span:first-child.online{background:#22c55e}

/* Round 20 — Offline POS + Safe Sync */
.offline-queue-panel{margin:0 0 14px;padding:12px 14px;border:1px solid rgba(234,88,12,.35);background:rgba(234,88,12,.08);border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center}.offline-queue-panel.hidden{display:none}.offline-queue-panel>div:first-child{display:flex;gap:10px;align-items:center}.offline-queue-panel>div:first-child span{font-size:12px;color:var(--muted)}.offline-queue-list{grid-column:1/-1;display:grid;gap:6px}.offline-queue-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:8px 10px;background:rgba(255,255,255,.04);border-radius:9px;font-size:12px}.offline-queue-row small{grid-column:1/-1;color:var(--neg)}html.is-offline #posShiftBadge{opacity:.55}

/* Round 21 — Offline reliability completion */
.offline-queue-row{align-items:center}.offline-queue-actions{grid-column:1/-1;display:flex;gap:6px;justify-content:flex-end}.offline-queue-actions .ghost-btn{font-size:11px;padding:5px 8px}
.board-tile.offline-pending{opacity:1;border-style:dashed;border-color:rgba(234,88,12,.55);background:rgba(234,88,12,.08);cursor:default}.offline-local-row{border:1px dashed rgba(234,88,12,.35);background:rgba(234,88,12,.06);cursor:default}

/* Round 22 — clean menu manager + payment/receipt polish */
.menu-manager{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}
.menu-category-sidebar{padding:14px;position:sticky;top:12px}.menu-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 4px 12px}.menu-sidebar-head h2{margin:2px 0 0}.menu-category-list{display:grid;gap:6px}
.menu-category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid transparent;border-radius:12px;transition:.15s}.menu-category-row:hover{background:var(--surface2)}.menu-category-row.active{background:rgba(234,88,12,.10);border-color:rgba(234,88,12,.28)}
.menu-category-main{appearance:none;border:0;background:transparent;color:inherit;text-align:left;padding:10px;display:flex;align-items:center;gap:10px;min-width:0;cursor:pointer}.menu-category-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--surface2);flex:none}.menu-category-copy{min-width:0;display:grid;gap:2px}.menu-category-copy b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-category-copy small{color:var(--muted);font-size:11px}.menu-category-tools{display:flex;gap:2px;padding-right:6px;opacity:.25}.menu-category-row:hover .menu-category-tools,.menu-category-row.active .menu-category-tools{opacity:1}
.menu-items-workspace{min-width:0}.menu-workspace-head{align-items:flex-end}.menu-manager-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.menu-manager-card{padding:0;overflow:hidden;display:block}.menu-card-media{height:150px;background:var(--surface2);position:relative;overflow:hidden}.menu-card-media .mc-photo{width:100%;height:100%;object-fit:cover;border-radius:0}.menu-photo-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:34px;opacity:.28}.menu-card-body{padding:13px}.menu-card-body .mc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.menu-card-body .mc-price{white-space:nowrap;color:var(--accent)}.menu-card-meta{display:flex;gap:10px;min-height:20px;margin:8px 0;color:var(--muted);font-size:11px}.menu-card-body .mc-actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:760px){.menu-manager{grid-template-columns:1fr}.menu-category-sidebar{position:static}.menu-category-list{display:flex;overflow-x:auto;padding-bottom:4px}.menu-category-row{min-width:180px}.menu-manager-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-card-media{height:120px}}
@media(max-width:480px){.menu-manager-grid{grid-template-columns:1fr}}


/* ===== Round 23.1 — Manual acceptance UX: table move + item transfer + More ===== */
@media (min-width:641px){
  .pos-nav{grid-template-columns:1.08fr 1fr 1fr 1fr .92fr !important;max-width:760px !important}
}
@media (max-width:760px){
  .pos-nav{grid-template-columns:repeat(5,1fr) !important}
}
.nav-more-wrap{min-width:0}
.nav-more-menu{
  top:calc(100% + 10px);right:0;left:auto;width:360px;padding:10px;border-radius:18px;
  grid-template-columns:repeat(2,minmax(0,1fr));box-shadow:0 18px 50px rgba(0,0,0,.28)
}
.nav-more-menu button{min-height:52px;padding:12px 13px;gap:9px;border:1px solid var(--border);background:var(--surface-2)}
.nav-more-menu button:hover{border-color:var(--primary);background:var(--primary-soft)}
@media(max-width:760px){
  .nav-more-menu{position:fixed;left:12px;right:12px;bottom:76px;top:auto;width:auto;max-height:min(62vh,520px);overflow:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
}

#billManagerModal .sheet{max-width:860px}
.bm-move-head,.bm-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:2px 0 16px}
.bm-move-head h3,.bm-section-head h3{margin:4px 0 3px;font-size:20px;line-height:1.35}
.bm-move-head h3 span{color:var(--primary);padding:0 5px}
.bm-move-head p,.bm-section-head p{margin:0;color:var(--muted);font-size:12px}
.bm-kicker{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}
.bm-bill-no{flex:0 0 auto;border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:7px 10px;color:var(--muted);font-size:12px;font-weight:800}
.bm-table-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bm-table-choice{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;min-height:86px;text-align:left;cursor:pointer;transition:.14s ease}
.bm-table-choice:not(.is-occupied):hover{transform:translateY(-2px);border-color:var(--primary);background:var(--primary-soft)}
.bm-table-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--primary-soft);color:var(--primary);font-size:18px}
.bm-table-choice b,.bm-target-choice b{display:block;font-size:15px}
.bm-table-choice small,.bm-target-choice small{display:block;margin-top:4px;font-size:11px}
.bm-table-choice.is-occupied{opacity:.52;cursor:not-allowed;background:var(--surface-2)}
.bm-table-choice.is-occupied .bm-table-icon{background:rgba(255,92,110,.10);color:var(--danger)}
.bm-arrow{font-size:16px;color:var(--primary);font-weight:900}
.bm-empty{grid-column:1/-1;padding:28px;text-align:center;border:1px dashed var(--border);border-radius:14px;color:var(--muted)}
.bm-destination{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.bm-destination-actions{margin-top:8px}
.bm-new-bill{width:100%;min-height:48px;border:1px solid var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:900;border-radius:13px;cursor:pointer}
.bm-target-label{margin:14px 0 8px;color:var(--muted);font-size:12px}
.bm-target-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.bm-target-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;min-height:70px;cursor:pointer}
.bm-target-choice:hover{border-color:var(--primary);background:var(--primary-soft)}
@media(max-width:720px){.bm-table-grid,.bm-target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.bm-table-grid,.bm-target-grid{grid-template-columns:1fr}}

/* Round 23.2 consolidated manual acceptance fixes */
.receipt-print .rp-meta{grid-template-columns:auto 1fr auto 9mm}.receipt-print .rp-guest-label{padding-left:1mm}.receipt-print .rp-guest-value{text-align:left!important;padding-right:2.5mm}
.payment-primary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-live-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.payment-live-summary>div{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}.payment-live-summary span{font-size:11px;color:var(--muted)}.payment-live-summary .payment-ok{color:var(--success)}.payment-tax-note{font-size:11px;color:var(--muted);background:var(--surface-2);border-radius:10px;padding:9px 11px;margin:4px 0 12px}
.history-workspace-switch{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;margin-bottom:14px}.history-workspace-switch button{border:0;background:transparent;color:var(--muted);padding:9px 14px;border-radius:10px;font-weight:800}.history-workspace-switch button.active{background:var(--surface);color:var(--text)}.mini-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:10px}.history-kitchen-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.history-kitchen-toolbar>div{display:flex;flex-direction:column}.history-kitchen-toolbar span{font-size:11px;color:var(--muted)}.history-kitchen-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hk-card{border:1px solid var(--border);background:var(--surface-2);border-radius:16px;padding:14px}.hk-card.ready{border-color:rgba(44,207,183,.5)}.hk-head{display:flex;justify-content:space-between}.hk-head>div{display:flex;flex-direction:column}.hk-head span,.hk-head time{font-size:11px;color:var(--muted)}.hk-items{margin:12px 0;display:grid;gap:6px}.hk-items>div{display:flex;gap:8px;padding:7px 9px;background:var(--surface);border-radius:9px}.hk-actions button{width:100%;border:0;border-radius:11px;padding:11px;font-weight:900}.hk-ready{background:var(--warning);color:#241500}.hk-served{background:var(--success);color:#05251e}
.cancellation-report{margin-top:18px}.cancel-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.cancel-summary-cards>div{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;flex-direction:column}.cancel-summary-cards b{font-size:20px}.cancel-summary-cards span,.cancel-reason-row small{font-size:11px;color:var(--muted)}.cancel-reason-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:9px;border-bottom:1px solid var(--border)}.cancel-reason-row div{display:flex;flex-direction:column}.cancel-audit-row{display:grid;grid-template-columns:60px 1fr auto;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);font-size:11px}.cancel-audit-row small{color:var(--muted)}
@media(max-width:760px){.history-kitchen-board{grid-template-columns:1fr}.history-kitchen-toolbar{flex-direction:column;align-items:stretch}.payment-primary-grid{grid-template-columns:1fr}.payment-live-summary{grid-template-columns:1fr 1fr}}

/* Round 24 — operational navigation: frequent management tools stay visible on larger screens. */
@media (min-width:641px){
  .pos-nav{max-width:1120px!important;grid-template-columns:repeat(8,minmax(105px,1fr))!important}
  .nav-more-menu .mobile-more-only{display:none!important}
}
@media (max-width:640px){
  .pos-nav>.nav-secondary{display:none!important}
}
/* Receipt safe area: keep guest count comfortably inside 80mm printable width. */
.receipt-print .rp-meta{grid-template-columns:auto 1fr auto 12mm!important}
.receipt-print .rp-guest-value{text-align:left!important;padding-right:5mm!important}

/* Round 24 — report payment cards must never collide on narrow report columns. */
#tab-reports .payment-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
#tab-reports .payment-cards .report-card .rc-value{font-size:clamp(15px,1.8vw,20px);overflow-wrap:anywhere;word-break:break-word;line-height:1.12}

/* Round 25 — operational UX polish: compact checkout + in-app financial dialogs */
.payment-advanced{margin:10px 0 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);overflow:hidden}
.payment-advanced>summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800}
.payment-advanced>summary::-webkit-details-marker{display:none}.payment-advanced>summary small{font-size:11px;color:var(--muted);font-weight:500}.payment-advanced[open]>summary{border-bottom:1px solid var(--border)}
.payment-advanced-body{padding:12px 14px 2px}.payment-advanced-body label{margin-top:0}
.action-dialog .sheet{border-radius:24px 24px 0 0}.dialog-eyebrow{font-size:10px;letter-spacing:.16em;color:var(--primary);font-weight:900;margin-bottom:3px}.action-dialog .sheet-head h2{margin:0}.dialog-summary{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;margin:2px 0 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.dialog-summary span{color:var(--muted);font-size:12px}.dialog-summary b{font-size:22px}.dialog-note{padding:11px 13px;border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:12px;line-height:1.5;margin:10px 0}.dialog-note.warning{border:1px solid rgba(255,143,56,.35);background:rgba(255,143,56,.08)}.dialog-hero-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin:4px auto 12px;background:var(--primary-soft);font-size:27px}.dialog-copy{text-align:center;line-height:1.65;color:var(--text);margin:0 4px 12px}.dialog-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;margin-top:14px}.dialog-actions button{min-height:48px}.danger-save{background:#ef5b70!important;color:#fff!important}
#takeOrderModal .sheet{max-height:min(92vh,900px);overflow:auto;overscroll-behavior:contain}#takeOrderModal .sheet-head{position:sticky;top:0;z-index:5;background:var(--surface);padding-bottom:10px}#takeOrderSubmit{position:sticky;bottom:0;z-index:5;box-shadow:0 -10px 24px var(--surface)}
@media(min-width:761px){.action-dialog .sheet{border-radius:24px}.payment-advanced>summary{padding:10px 12px}#confirmPaymentModal .sheet{max-height:88vh;overflow:auto}}
@media(max-width:760px){.payment-live-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-live-summary>div{padding:8px}.payment-live-summary b{font-size:13px}.payment-advanced>summary small{display:none}.dialog-actions{grid-template-columns:1fr 1fr}}

/* Round 26 — live shift dashboard + reopen cash-shift bridge */
.shift-sub{display:block;color:var(--muted);font-size:11px;line-height:1.35;margin-top:2px}
.shift-state-card.shift-kpi b{font-size:21px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shift-state-card.shift-kpi.accent{border-color:rgba(49,207,190,.34);background:rgba(49,207,190,.07)}
.shift-state-card.shift-kpi.accent b{color:#31cfbe}
.shift-state-card.cash-expected{grid-column:span 2;border-color:rgba(255,143,56,.28);background:rgba(255,143,56,.055)}
.reopen-quick-shift{margin:12px 0;padding:14px;border:1px solid rgba(255,143,56,.38);border-radius:14px;background:rgba(255,143,56,.07);display:grid;gap:12px}
.reopen-shift-row{display:grid;grid-template-columns:1fr auto;gap:9px}.reopen-shift-row input{min-width:0}
@media(max-width:760px){.shift-state-card.cash-expected{grid-column:1/-1}.shift-state-card.shift-kpi b{font-size:18px}.reopen-shift-row{grid-template-columns:1fr}.reopen-shift-row button{width:100%}}

/* Round 27 — configurable receipt + printable shift closing */
.settings-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;align-items:start}.settings-section{padding:16px 0;border-top:1px solid var(--border)}.settings-section:first-of-type{border-top:0}.settings-section h3{margin:0 0 12px}.settings-editor .form-grid .wide{grid-column:1/-1}.settings-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px;margin-top:12px}.settings-checks label{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.receipt-preview-panel{position:sticky;top:16px}.receipt-preview-wrap{display:grid;place-items:start center;background:#d8d8d8;border-radius:16px;padding:20px;overflow:auto}.receipt-settings-preview{box-sizing:border-box;width:72mm;min-height:120mm;background:#fff;color:#111;padding:5mm 4mm;font-family:Arial,"Noto Sans Lao","Noto Sans Thai",sans-serif;font-size:11.5px;line-height:1.28;box-shadow:0 10px 30px rgba(0,0,0,.18)}.receipt-settings-preview .rp-brand{font-size:21px;font-weight:900;letter-spacing:1px}.receipt-settings-preview .rp-brand-sub{font-size:8px;letter-spacing:2px;margin:2px 0 5px}.receipt-settings-preview .rp-center{text-align:center;font-weight:700;font-size:10px}.receipt-settings-preview .rp-sep{border-top:1px dashed #111;margin:7px 0}.receipt-settings-preview .rp-meta{display:grid;grid-template-columns:auto 1fr auto auto;gap:5px}.receipt-settings-preview .rp-items{width:100%;margin:7px 0}.receipt-settings-preview .rp-price{text-align:right}.receipt-settings-preview .rp-row,.receipt-settings-preview .rp-total{display:flex;justify-content:space-between;gap:8px}.receipt-settings-preview .rp-total{font-size:17px;font-weight:900;border-top:1px solid #111;padding-top:5px}.receipt-settings-preview .rp-thanks,.receipt-settings-preview .rp-powered{text-align:center;margin-top:12px}.receipt-settings-preview .rp-powered{font-size:8px}.receipt-settings-preview.paper-58{width:50mm}.receipt-settings-preview.font-small{font-size:10px}.receipt-settings-preview.font-large{font-size:13px}.receipt-settings-preview.head-center .rp-brand,.receipt-settings-preview.head-center .rp-brand-sub{text-align:center}.receipt-settings-preview.head-left .rp-brand,.receipt-settings-preview.head-left .rp-brand-sub,.receipt-settings-preview.head-left .rp-center{text-align:left}.shift-history-row button{flex:0 0 auto}
.receipt-print.paper-80{width:72mm}.receipt-print.paper-58{width:50mm;font-size:10px}.receipt-print.font-small{font-size:10px}.receipt-print.font-large{font-size:13px}.receipt-print.font-large .rp-items{font-size:13px}.receipt-print.head-left .rp-brand,.receipt-print.head-left .rp-brand-sub,.receipt-print.head-left .rp-center{text-align:left}.receipt-print .rp-shop-detail{font-size:9px;font-weight:400}.receipt-print .rp-note{font-size:9px;margin-top:6px;word-break:break-word}
@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.receipt-preview-panel{position:static}}@media(max-width:560px){.settings-checks{grid-template-columns:1fr}.receipt-preview-wrap{padding:12px}}

/* Round 27.1 — stable receipt settings workspace + two-step shift close */
#tab-receiptsettings{max-width:1380px;margin:0 auto}
#tab-receiptsettings .settings-layout{grid-template-columns:minmax(560px,1fr) minmax(340px,460px);gap:20px}
#tab-receiptsettings .settings-editor,#tab-receiptsettings .receipt-preview-panel{min-width:0}
#tab-receiptsettings .settings-section{padding:14px 0}
#tab-receiptsettings .settings-checks{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#tab-receiptsettings .settings-checks label{min-height:46px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
#tab-receiptsettings .receipt-preview-wrap{padding:18px;overflow:hidden;min-height:520px;align-items:start}
#tab-receiptsettings .receipt-settings-preview{max-width:100%;min-height:115mm}
.shift-confirm-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}
.shift-confirm-summary>div{padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);min-width:0}
.shift-confirm-summary span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.shift-confirm-summary b{display:block;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shift-confirm-diff{border-color:rgba(255,143,56,.35)!important}
@media(max-width:1180px){#tab-receiptsettings .settings-layout{grid-template-columns:minmax(0,1fr) 360px}#tab-receiptsettings .settings-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:920px){#tab-receiptsettings{max-width:760px}#tab-receiptsettings .settings-layout{grid-template-columns:1fr}#tab-receiptsettings .receipt-preview-panel{position:static}#tab-receiptsettings .receipt-preview-wrap{min-height:0;max-height:620px}#tab-receiptsettings .receipt-settings-preview{min-height:105mm}}
@media(max-width:600px){#tab-receiptsettings .panel{padding:14px}#tab-receiptsettings .settings-editor .form-grid{grid-template-columns:1fr}#tab-receiptsettings .settings-editor .form-grid .wide{grid-column:auto}#tab-receiptsettings .settings-checks{grid-template-columns:1fr 1fr;gap:8px}#tab-receiptsettings .settings-checks label{min-height:42px;padding:8px;font-size:12px}#tab-receiptsettings .receipt-preview-wrap{padding:10px}.shift-confirm-summary{grid-template-columns:1fr}.shift-confirm-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.shift-confirm-summary span{margin:0}.shift-confirm-summary b{font-size:16px}.shift-confirm-sheet .dialog-actions{grid-template-columns:1fr}.shift-confirm-sheet .dialog-actions button{width:100%}}

/* Round 27.2 — compact receipt toggles + explicit front/kitchen printer routing */
#tab-receiptsettings .settings-toggle-grid{grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px}
#tab-receiptsettings .settings-toggle-grid label{min-height:64px;padding:10px 12px;display:flex;align-items:center;gap:10px;overflow:hidden}
#tab-receiptsettings .settings-toggle-grid input{width:18px;height:18px;flex:0 0 auto;margin:0}
#tab-receiptsettings .settings-toggle-grid span{display:flex;flex-direction:column;min-width:0;line-height:1.15}
#tab-receiptsettings .settings-toggle-grid b{font-size:14px;color:var(--text);white-space:nowrap}
#tab-receiptsettings .settings-toggle-grid small{font-size:11px;color:var(--muted);margin-top:4px;white-space:normal;overflow-wrap:normal;word-break:normal}
#tab-receiptsettings .settings-save-compact{min-height:48px;padding:11px 18px;font-size:15px;border-radius:14px;margin-top:4px}
#tab-receiptsettings .printer-help{margin:-4px 0 10px}
#tab-receiptsettings .printer-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#tab-receiptsettings .printer-route-grid>label{display:flex;flex-direction:column;gap:7px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}
#tab-receiptsettings .printer-route-grid>label>span{font-weight:800;font-size:14px}
#tab-receiptsettings .printer-route-grid small,#tab-receiptsettings .printer-queue-toggle small{font-size:11px;color:var(--muted);line-height:1.35}
#tab-receiptsettings .printer-queue-toggle{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}
#tab-receiptsettings .printer-queue-toggle input{width:18px;height:18px;flex:0 0 auto}
#tab-receiptsettings .printer-queue-toggle span{display:flex;flex-direction:column;gap:2px}
#tab-receiptsettings .printer-agent-note{margin-top:9px;padding:9px 11px;border-radius:11px;background:rgba(255,139,61,.08);border:1px solid rgba(255,139,61,.22);font-size:11px;line-height:1.45;color:var(--muted)}
@media(max-width:1180px){#tab-receiptsettings .settings-toggle-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:600px){#tab-receiptsettings .settings-toggle-grid{grid-template-columns:1fr 1fr}#tab-receiptsettings .settings-toggle-grid label{min-height:58px;padding:9px}#tab-receiptsettings .settings-toggle-grid b{font-size:13px}#tab-receiptsettings .settings-toggle-grid small{font-size:10.5px}#tab-receiptsettings .printer-route-grid{grid-template-columns:1fr}#tab-receiptsettings .settings-save-compact{width:100%}}
\n\n/* Round 27.3 — receipt settings layout stabilization */
#tab-receiptsettings .settings-layout{grid-template-columns:minmax(0,1fr) minmax(340px,430px)!important;gap:16px!important}
#tab-receiptsettings .settings-toggle-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important;gap:8px!important}
#tab-receiptsettings .settings-toggle-grid label{min-width:0!important;min-height:58px!important;height:auto!important;padding:9px 11px!important;overflow:visible!important}
#tab-receiptsettings .settings-toggle-grid span{min-width:0!important;width:auto!important;display:flex!important;flex-direction:column!important}
#tab-receiptsettings .settings-toggle-grid b{font-size:14px!important;line-height:1.25!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:normal!important}
#tab-receiptsettings .settings-toggle-grid small{font-size:11.5px!important;line-height:1.35!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:normal!important}
#tab-receiptsettings .receipt-preview-panel{max-width:430px;width:100%}
#tab-receiptsettings .receipt-preview-wrap{min-height:460px!important;padding:16px!important}
#tab-receiptsettings .printer-route-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}
@media(max-width:1050px){#tab-receiptsettings .settings-layout{grid-template-columns:1fr!important;max-width:760px;margin:0 auto}#tab-receiptsettings .receipt-preview-panel{max-width:none;position:static!important}#tab-receiptsettings .receipt-preview-wrap{min-height:0!important}}
@media(max-width:560px){#tab-receiptsettings .settings-toggle-grid{grid-template-columns:1fr!important}#tab-receiptsettings .settings-toggle-grid label{min-height:54px!important}#tab-receiptsettings .receipt-preview-wrap{padding:10px!important}.receipt-settings-preview{transform-origin:top center}}

/* Round 28 — Production Gate: tablet navigation must stay inside the viewport. */
@media (min-width:641px) and (max-width:999px){
  .pos-nav{max-width:100%!important;width:100%!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:7px!important}
  .pos-nav>.nav-secondary{display:none!important}
  .nav-more-menu .mobile-more-only{display:flex!important}
  .pos-nav>button,.pos-nav>.nav-more-wrap>.nav-primary{min-width:0!important;padding-left:8px!important;padding-right:8px!important}
  .pos-nav .tab-lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:640px){
  .menu-manager,.menu-category-sidebar,.menu-items-workspace{min-width:0!important;max-width:100%!important;width:100%!important}
  .menu-category-list{max-width:100%!important}
}

/* Round 28.2 — compact dated history + dual receipt/kitchen preview */
.history-head .head-actions{flex-wrap:wrap}.history-custom-dates{display:flex;align-items:center;gap:6px}.history-custom-dates input{min-width:132px}.history-date-divider{display:flex;align-items:center;gap:10px;margin:16px 2px 8px;color:var(--muted);font-size:12px}.history-date-divider:after{content:"";height:1px;background:var(--border);flex:1}.history-date-divider span{font-weight:900;color:var(--text)}.history-date-divider b{font-weight:600}.history-order-wrap{margin:0 0 10px}.receipt-preview-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 16px 12px;padding:4px;border:1px solid var(--border);background:var(--surface-2);border-radius:12px}.receipt-preview-switch button{border:0;background:transparent;color:var(--muted);padding:9px;border-radius:9px;font-weight:900}.receipt-preview-switch button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.kp-order{display:flex;justify-content:space-between;gap:8px;font-size:15px}.kp-time{font-size:9px;margin-top:3px}.kp-item{display:grid;grid-template-columns:28px 1fr;gap:5px;padding:7px 0;border-bottom:1px dotted #555}.kp-item>b{font-size:15px}.kp-item span{font-weight:800}.kp-item small{display:block;font-weight:400;font-size:9px;margin-top:2px}.kp-note{font-size:10px;padding-top:4px}.preview-kitchen .rp-brand{font-size:17px}.preview-kitchen .rp-powered{margin-top:18px}
@media(max-width:760px){.history-head .head-actions{display:grid!important;grid-template-columns:1fr 1fr!important}.history-head #historyDateRange,.history-head #orderStatusFilter,.history-head .history-custom-dates{grid-column:1/-1}.history-custom-dates{display:grid;grid-template-columns:1fr auto 1fr}.history-custom-dates input{min-width:0;width:100%}}

.cp-shift-box{display:grid;gap:8px;padding:12px;margin:8px 0;border:1px solid var(--warn,#f59e0b);border-radius:12px;background:rgba(245,158,11,.08)}
.cp-shift-box[hidden]{display:none}

/* Step 3: network printers */
.print-fail-banner{position:fixed;z-index:99999;left:50%;bottom:18px;transform:translateX(-50%);padding:10px 18px;border-radius:999px;border:0;background:#b42318;color:#fff;font-weight:800;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);cursor:pointer}
.print-fail-banner.hidden{display:none}
.np-row{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line,#e5e5e5)}
.np-row small{display:block;opacity:.7}
.np-actions{display:flex;gap:6px;flex-shrink:0}
.np-assign{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}
.np-assign span{font-weight:700;white-space:nowrap}.np-assign select{max-width:62%}
.np-found{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;margin-bottom:8px;border:1px dashed var(--border,#ccc);border-radius:12px}
.np-found small{display:block;opacity:.7}.np-manual{margin-top:12px}.np-manual summary{cursor:pointer;opacity:.8}
.np-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#22c55e}

/* Step 5: take-order feedback */
.menu-card{position:relative}
.menu-card.in-cart{border-color:var(--primary)!important;box-shadow:0 0 0 1px var(--primary) inset}
.menu-card .mc-qty{position:absolute;top:8px;right:8px;min-width:26px;height:26px;padding:0 7px;border-radius:13px;background:var(--primary);color:#fff;font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center}
.send-kitchen-toggle{display:flex;align-items:center;gap:10px;margin:10px 0 4px;font-weight:700;font-size:14px;cursor:pointer}.send-kitchen-toggle input{width:20px;height:20px;accent-color:var(--primary)}
.cash-quick{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}.cash-quick button{min-height:44px;padding:8px 14px;font-weight:800;font-size:15px}
.cp-breakdown .row{display:flex;justify-content:space-between;font-size:14px;opacity:.85;padding:2px 0}
/* Step 5: kitchen screen readable from across the kitchen */
.kitchen-ticket .kt-head{align-items:center}
.kitchen-ticket .kt-where{font-size:26px;font-weight:900;line-height:1.1}
.kitchen-ticket .kt-wait{font-size:15px;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--surface-2,#2a2a2a)}
.kitchen-ticket.kt-wait-slow .kt-wait{background:#b45309;color:#fff}
.kitchen-ticket.kt-wait-late .kt-wait{background:#b91c1c;color:#fff}
.kitchen-ticket.kt-wait-late{box-shadow:0 0 0 2px #b91c1c inset}
.kitchen-ticket ul li{font-size:19px;line-height:1.35}
.kitchen-ticket ul li b{font-size:21px}
.kitchen-ticket .kt-notes{font-size:17px;font-weight:800;color:#fbbf24}
.kitchen-ticket .kt-opts{font-size:15px}
.kitchen-ticket .kt-actions button{min-height:52px;font-size:17px}
/* Step 5: cancelling an item is rare and needs a reason — keep it quiet next to the quantity */
.oc-edit-controls .mini-cancel{background:transparent!important;color:var(--text-muted,#999)!important;border:1px solid var(--border)!important;font-size:12px!important;font-weight:600!important;padding:6px 10px!important;min-height:34px;box-shadow:none!important}
.oc-edit-controls .mini-cancel:hover{color:var(--neg,#ef4444)!important;border-color:var(--neg,#ef4444)!important}
/* Step 5: taking payment is the main job on an open bill — make it the biggest target */
.oc-actions .btn-confirm-pay,.btn-confirm-pay{min-height:52px!important;padding:12px 22px!important;font-size:16px!important;font-weight:900!important;order:-1}


.np-beep{min-height:34px;font-size:12.5px;padding:0 8px;border-radius:8px;max-width:120px}
