/* Tablé — shared styles across index.html / kitchen.html / owner.html */
  :root {
    --ink: #2B211B;
    --rust: #8B4A2B;
    --orange: #C9622E;
    --sage: #6B7A5E;
    --paper: #F7F3ED;
    --light: #EAE3D5;
    --ink-08: rgba(43,33,27,0.08);
    --ink-10: rgba(43,33,27,0.10);
    --ink-15: rgba(43,33,27,0.15);
    --ink-30: rgba(43,33,27,0.30);
    --ink-35: rgba(43,33,27,0.35);
    --ink-40: rgba(43,33,27,0.40);
    --ink-50: rgba(43,33,27,0.50);
    --ink-55: rgba(43,33,27,0.55);
    --ink-60: rgba(43,33,27,0.60);
    --ink-70: rgba(43,33,27,0.70);
    --paper-35: rgba(247,243,237,0.35);
    --paper-40: rgba(247,243,237,0.40);
    --paper-80: rgba(247,243,237,0.80);
  }
  * { box-sizing: border-box; }
  body { margin:0; background:#e9e3d8; font-family:'Inter',sans-serif; display:flex; flex-direction:column; align-items:center; padding:16px; min-height:100vh; }
  .font-display { font-family:'Fraunces',serif; }
  .font-mono { font-family:'JetBrains Mono',monospace; }

  .explainer {
    width:100%; max-width:420px; margin-bottom:12px; background:var(--ink); color:var(--paper);
    border-radius:16px; padding:12px 16px; display:flex; align-items:center; gap:8px;
  }
  .explainer p { font-size:12px; line-height:1.4; color:var(--paper-80); margin:0; }
  .explainer svg { flex-shrink:0; color: var(--orange); }

  @keyframes glow { 0%,100% { box-shadow:0 0 0 0 rgba(107,122,94,0);} 50% { box-shadow:0 0 0 5px rgba(107,122,94,0.35);} }
  .glow { animation: glow 1.3s ease-in-out; }

  .frame {
    position:relative; width:100%; max-width:380px; height:700px; background:var(--paper);
    border-radius:32px; box-shadow:0 25px 50px -12px rgba(0,0,0,0.35); overflow:hidden; border:6px solid var(--ink);
    display:flex; flex-direction:column;
  }
  .kitchen-body.cols-3 { display:grid; grid-template-columns:1fr; gap:20px; }
  @media (min-width: 720px) {
    body { padding:0; align-items:stretch; }
    .frame.wide {
      max-width:none; width:100%; height:100vh; min-height:100dvh;
      border-radius:0; border-width:0; box-shadow:none;
    }
    .frame.wide .kitchen-body.cols-3 { grid-template-columns:repeat(3, 1fr); align-items:start; }
    .frame.wide .kitchen-body.cols-1 { max-width:480px; margin:0 auto; width:100%; }
    /* Customer: menu becomes a browsable grid instead of a single narrow column */
    .frame.wide .menu-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:4px 24px; align-content:start; }
    .frame.wide .menu-item { border-bottom:1px solid var(--ink-10); }
    .frame.wide .header { padding-left:24px; padding-right:24px; }
    .frame.wide .menu-list { padding-left:24px; padding-right:24px; }
    .frame.wide .cat-row { padding-left:24px; padding-right:24px; }
    .frame.wide .cart-bar { max-width:420px; left:auto; right:24px; }
    /* Owner: orders list and menu categories use available width */
    .frame.wide .owner-body { padding-left:24px; padding-right:24px; }
    .frame.wide #owner-orders-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:0 24px; align-content:start; }
    .frame.wide .cat-group { break-inside:avoid; }
    .frame.wide #owner-menu-groups { column-count:2; column-gap:40px; }
    .frame.wide .stat-grid { max-width:640px; }
  }
  @media (min-width: 1300px) {
    .frame.wide .kitchen-body.cols-3 { grid-template-columns:repeat(4, 1fr); }
    .frame.wide #owner-menu-groups { column-count:3; }
    .frame.wide .header, .frame.wide .menu-list, .frame.wide .cat-row, .frame.wide .owner-body { padding-left:40px; padding-right:40px; }
  }
  .screen { display:flex; flex-direction:column; height:100%; position:relative; }
  .header {
    padding:24px 24px 16px; background:var(--ink); color:var(--paper);
    border-bottom-left-radius:24px; border-bottom-right-radius:24px;
  }
  .header-tag { display:flex; align-items:center; gap:8px; color:var(--orange); font-size:12px; letter-spacing:1px; margin-bottom:4px; }
  .header h1 { font-size:24px; font-weight:600; margin:0 0 12px; }
  .header h1.small { font-size:20px; }

  .pill-row { display:flex; gap:6px; flex-wrap:wrap; }
  .pill {
    padding:6px 14px; border-radius:999px; font-size:13px; font-weight:600; cursor:pointer;
    border:1px solid var(--paper-35); background:transparent; color:var(--paper);
  }
  .pill.active { background:var(--paper); color:var(--ink); border-color:var(--paper); }

  .cat-row { display:flex; gap:8px; padding:16px 20px 8px; }
  .cat-btn { padding:6px 16px; border-radius:999px; font-size:14px; font-weight:500; border:none; cursor:pointer; background:var(--light); color:var(--ink-70); }
  .cat-btn.active { background:var(--rust); color:white; }

  .menu-list { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding:8px 20px 96px; }
  .menu-item {
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 0;
    border-bottom:1px solid var(--ink-10); background:none; border-left:none; border-right:none; border-top:none;
    text-align:left; cursor:pointer;
  }
  .menu-item:disabled { cursor:default; opacity:0.6; }
  .menu-item-name { font-size:18px; font-weight:500; color:var(--ink); }
  .menu-item-name.inactive { color:var(--ink-35); }
  .menu-item-price { font-size:14px; color:var(--rust); margin-top:4px; }
  .out-of-stock { font-size:11px; color:var(--orange); font-weight:500; }
  .add-circle { width:36px; height:36px; border-radius:999px; background:var(--rust); display:flex; align-items:center; justify-content:center; flex-shrink:0; }

  .cart-bar {
    position:absolute; bottom:20px; left:20px; right:20px; background:var(--ink); color:var(--paper);
    border:none; border-radius:16px; padding:16px 20px; display:flex; align-items:center; justify-content:space-between;
    box-shadow:0 10px 25px rgba(0,0,0,0.25); cursor:pointer;
  }
  .cart-bar-left { display:flex; align-items:center; gap:8px; font-weight:500; font-size:14px; }
  .cart-count { background:var(--orange); width:24px; height:24px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:12px; }

  .back-header { padding:24px 20px 16px; display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--ink-10); }
  .back-btn { width:36px; height:36px; border-radius:999px; background:var(--light); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .back-header h2 { font-size:20px; font-weight:600; color:var(--ink); margin:0; }

  .cart-list { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding:12px 20px; }
  .cart-row { display:flex; align-items:center; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--ink-10); }
  .qty-controls { display:flex; align-items:center; gap:12px; }
  .qty-btn { width:28px; height:28px; border-radius:999px; background:var(--light); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; }

  .cart-footer { padding:12px 20px 24px; border-top:1px solid var(--ink-10); }
  .cart-total { display:flex; justify-content:space-between; font-weight:500; color:var(--ink); margin-bottom:16px; }
  .submit-btn { width:100%; background:var(--ink); color:var(--paper); border:none; border-radius:16px; padding:16px 0; font-weight:500; font-size:15px; cursor:pointer; }

  .status-body { display:flex; flex-direction:column; height:100%; padding:32px 24px 0; }
  .order-id { font-size:12px; letter-spacing:1px; color:var(--rust); margin-bottom:8px; }
  .status-body h2 { font-size:24px; font-weight:600; color:var(--ink); margin:0; line-height:1.2; }
  .status-body .subtitle { color:var(--ink-50); font-size:14px; margin:4px 0 24px; }
  .ticket { background:white; border-radius:16px; box-shadow:0 4px 12px rgba(0,0,0,0.08); padding:16px; display:flex; flex-direction:column; gap:16px; }
  .ticket-line { font-size:14px; color:var(--ink-70); display:flex; justify-content:space-between; }
  .steps { border-top:1px dashed var(--ink-15); padding-top:12px; display:flex; flex-direction:column; gap:12px; }
  .step-row { display:flex; align-items:center; gap:12px; }
  .step-dot { width:24px; height:24px; border-radius:999px; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:10px; font-weight:700; background:var(--light); color:var(--ink-30); }
  .step-dot.done { background:var(--sage); color:white; }
  .step-label { font-size:14px; font-weight:500; color:var(--ink-35); }
  .step-label.done { color:var(--ink); }
  .hint { font-size:11px; color:var(--ink-40); text-align:center; margin-top:16px; }
  .new-order-link { margin-top:24px; font-size:14px; font-weight:500; color:var(--rust); text-decoration:underline; background:none; border:none; cursor:pointer; margin-left:auto; margin-right:auto; display:block; }

  .kitchen-body { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding:16px; display:flex; flex-direction:column; gap:20px; }
  .col-label { display:flex; align-items:center; gap:8px; margin-bottom:8px; padding-left:4px; }
  .col-dot { width:8px; height:8px; border-radius:999px; }
  .col-label span.txt { font-size:12px; letter-spacing:1px; color:var(--ink-50); }
  .order-card { background:white; border-radius:16px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,0.06); margin-bottom:8px; }
  .order-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
  .order-card-id { font-size:12px; color:var(--rust); font-weight:600; }
  .order-card-table { display:flex; align-items:center; gap:6px; font-size:26px; font-weight:700; font-family:'Fraunces',serif; color:var(--ink); }
  .order-card-item { font-size:13px; color:var(--ink-70); }
  .order-card-action { display:flex; justify-content:flex-end; margin-top:12px; }
  .action-btn { font-size:12px; font-weight:500; padding:6px 12px; border-radius:999px; color:white; border:none; display:flex; align-items:center; gap:4px; cursor:pointer; }
  .empty-col { font-size:13px; color:var(--ink-30); font-style:italic; padding-left:4px; }

  .owner-subtabs { display:flex; gap:8px; }
  .subtab-btn { padding:8px 16px; border-radius:999px; font-size:14px; font-weight:600; cursor:pointer; border:1px solid var(--paper-40); background:transparent; color:var(--paper); }
  .subtab-btn.active { background:var(--paper); color:var(--ink); border-color:var(--paper); }

  .owner-body { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding:16px 20px 96px; }
  .order-row { display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--ink-08); }
  .order-row-name { font-size:14px; font-weight:500; color:var(--ink); }
  .order-row-sub { font-size:12px; color:var(--ink-50); }
  .order-row-total { font-size:14px; color:var(--ink-70); text-align:right; }
  .order-row-stage { font-size:11px; font-weight:500; display:block; text-align:right; }

  .cat-group { margin-bottom:16px; }
  .cat-title { font-size:12px; letter-spacing:1px; color:var(--rust); margin-bottom:8px; }
  .item-row { display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--ink-08); }
  .item-row-left { display:flex; align-items:center; gap:12px; }
  .toggle { width:36px; height:20px; border-radius:999px; position:relative; flex-shrink:0; border:none; cursor:pointer; background:var(--ink-15); }
  .toggle.on { background:var(--sage); }
  .toggle-dot { position:absolute; top:2px; width:16px; height:16px; border-radius:999px; background:white; left:2px; transition:left .15s; }
  .toggle.on .toggle-dot { left:18px; }
  .item-name { font-size:14px; font-weight:500; display:block; color:var(--ink); }
  .item-name.inactive { color:var(--ink-35); text-decoration:line-through; }
  .item-right { display:flex; align-items:center; gap:12px; }
  .del-btn { background:none; border:none; cursor:pointer; color:var(--ink-30); display:flex; }

  .fab {
    position:absolute; bottom:20px; left:20px; right:20px; display:flex; align-items:center; justify-content:center; gap:8px;
    background:var(--orange); color:white; font-size:15px; font-weight:600; padding:16px 0; border-radius:16px;
    box-shadow:0 10px 25px rgba(0,0,0,0.25); border:none; cursor:pointer; z-index:10;
  }

  .modal-overlay { position:absolute; inset:0; background:rgba(43,33,27,0.55); display:flex; align-items:center; justify-content:center; z-index:30; padding:0 32px; }
  .modal-box { background:var(--paper); border-radius:16px; width:100%; padding:24px; box-shadow:0 20px 40px rgba(0,0,0,0.3); }
  .modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
  .modal-header h3 { font-size:18px; font-weight:600; color:var(--ink); margin:0; }
  .modal-close { background:none; border:none; cursor:pointer; color:var(--ink-40); display:flex; }
  .img-placeholder { width:100%; height:64px; border-radius:12px; background:var(--light); display:flex; align-items:center; justify-content:center; margin-bottom:12px; color:var(--ink-30); }
  .modal-input { width:100%; box-sizing:border-box; background:white; border:1px solid var(--ink-15); border-radius:12px; padding:10px 14px; font-size:14px; margin-bottom:12px; outline:none; }
  .chip-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
  .chip { padding:6px 12px; border-radius:999px; font-size:12px; font-weight:500; border:none; cursor:pointer; background:var(--light); color:var(--ink-70); }
  .chip.active { background:var(--ink); color:white; }
  .chip.new-cat { display:flex; align-items:center; gap:4px; }
  .chip.new-cat.active { background:var(--orange); color:white; }
  .modal-submit { width:100%; background:var(--orange); color:white; border:none; border-radius:12px; padding:12px 0; font-weight:600; font-size:14px; cursor:pointer; margin-top:8px; }
  .modal-submit:disabled { opacity:0.4; cursor:default; }

  .confirm-box { background:var(--paper); border-radius:16px; width:100%; padding:24px; box-shadow:0 20px 40px rgba(0,0,0,0.3); text-align:center; }
  .confirm-box h3 { font-size:18px; font-weight:600; color:var(--ink); margin:0 0 4px; }
  .confirm-box p { color:var(--ink-50); font-size:14px; margin:0 0 20px; }
  .confirm-actions { display:flex; gap:8px; }
  .confirm-btn { flex:1; padding:10px 0; border-radius:12px; font-size:14px; font-weight:500; border:none; cursor:pointer; }
  .confirm-cancel { background:var(--light); color:var(--ink); }
  .confirm-remove { background:var(--orange); color:white; }

  /* ---- menu item image / thumb ---- */
  .menu-item-main { display:flex; align-items:center; gap:12px; }
  .item-thumb { width:48px; height:48px; border-radius:12px; flex-shrink:0; object-fit:cover; background:var(--light); }
  .item-thumb-fallback { width:48px; height:48px; border-radius:12px; flex-shrink:0; background:var(--light); display:flex; align-items:center; justify-content:center; font-size:20px; }
  .item-prep-tag { font-size:11px; color:var(--ink-40); margin-top:2px; }

  /* ---- customization modal ---- */
  .cust-box { background:var(--paper); border-radius:20px 20px 0 0; width:100%; max-width:380px; padding:24px; box-shadow:0 -10px 40px rgba(0,0,0,0.3); max-height:82%; overflow-y:auto; }
  .modal-overlay.bottom { align-items:flex-end; padding:0; }
  .cust-item-name { font-size:20px; font-weight:600; color:var(--ink); margin:0 0 2px; }
  .cust-item-price { font-size:14px; color:var(--rust); margin-bottom:16px; }
  .cust-group { margin-bottom:16px; }
  .cust-group-title { font-size:11px; letter-spacing:1px; color:var(--ink-50); margin-bottom:8px; text-transform:uppercase; }
  .cust-opt-row { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--ink-08); cursor:pointer; }
  .cust-opt-label { font-size:14px; color:var(--ink); display:flex; align-items:center; gap:8px; }
  .cust-check { width:20px; height:20px; border-radius:6px; border:1.5px solid var(--ink-30); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .cust-check.checked { background:var(--sage); border-color:var(--sage); color:white; }
  .cust-note-input { width:100%; box-sizing:border-box; background:white; border:1px solid var(--ink-15); border-radius:12px; padding:10px 14px; font-size:14px; outline:none; resize:none; font-family:inherit; }
  .cust-submit { width:100%; background:var(--ink); color:var(--paper); border:none; border-radius:16px; padding:16px 0; font-weight:500; font-size:15px; cursor:pointer; margin-top:8px; }
  .cust-tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
  .cust-tag { font-size:11px; background:var(--light); color:var(--ink-60); padding:2px 8px; border-radius:999px; }

  /* ---- status: eta + timeline + call waiter ---- */
  .eta-banner { display:flex; align-items:center; gap:10px; background:var(--light); border-radius:14px; padding:12px 16px; margin-bottom:16px; }
  .eta-banner .eta-num { font-size:22px; font-weight:700; color:var(--rust); font-family:'JetBrains Mono',monospace; }
  .eta-banner .eta-text { font-size:12px; color:var(--ink-60); line-height:1.3; }
  .timeline { display:flex; flex-direction:column; gap:0; margin-top:4px; }
  .tl-row { display:flex; gap:12px; }
  .tl-rail { display:flex; flex-direction:column; align-items:center; width:24px; flex-shrink:0; }
  .tl-dot { width:20px; height:20px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; background:var(--light); color:var(--ink-30); flex-shrink:0; }
  .tl-dot.done { background:var(--sage); color:white; }
  .tl-dot.current { background:var(--orange); color:white; }
  .tl-line { width:2px; flex:1; background:var(--ink-10); min-height:20px; }
  .tl-line.done { background:var(--sage); }
  .tl-content { padding-bottom:20px; flex:1; }
  .tl-label { font-size:14px; font-weight:500; color:var(--ink-35); }
  .tl-label.done { color:var(--ink); }
  .tl-time { font-size:11px; color:var(--ink-40); font-family:'JetBrains Mono',monospace; margin-top:2px; }
  .call-waiter-btn { width:100%; background:white; color:var(--rust); border:1.5px solid var(--rust); border-radius:16px; padding:14px 0; font-weight:600; font-size:14px; cursor:pointer; margin-top:16px; display:flex; align-items:center; justify-content:center; gap:8px; }
  .call-waiter-btn:disabled { opacity:0.5; cursor:default; border-color:var(--ink-20); color:var(--ink-40); }
  .call-waiter-btn.sent { background:var(--sage); border-color:var(--sage); color:white; }

  /* ---- customer cart customization tags ---- */
  .cart-row-custom { font-size:12px; color:var(--ink-50); margin-top:2px; }

  /* ---- kitchen dashboard v2 ---- */
  .kitchen-toolbar { display:flex; gap:6px; padding:16px 16px 12px; flex-wrap:wrap; }
  .kfilter-btn { padding:6px 14px; border-radius:999px; font-size:12px; font-weight:600; border:none; cursor:pointer; background:var(--light); color:var(--ink-60); white-space:nowrap; }
  .kfilter-btn.active { background:var(--ink); color:var(--paper); }
  .kfilter-count { opacity:0.7; margin-left:3px; }
  .order-card.overdue { box-shadow:0 0 0 2px var(--orange), 0 2px 8px rgba(0,0,0,0.06); background:#FFF3EA; }
  .order-card-timing { display:flex; align-items:center; gap:6px; margin-top:2px; }
  .order-elapsed { font-size:11px; font-family:'JetBrains Mono',monospace; color:var(--ink-50); }
  .order-elapsed.overdue { color:var(--orange); font-weight:700; }
  .overdue-flag { font-size:10px; font-weight:700; color:white; background:var(--orange); padding:2px 6px; border-radius:6px; letter-spacing:0.5px; }
  .order-card-custom { font-size:12px; color:var(--rust); margin:2px 0 0 14px; }
  .order-placed-time { font-size:10px; color:var(--ink-40); font-family:'JetBrains Mono',monospace; }
  .kitchen-settings { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--ink-50); padding:0 20px 10px; }
  .kitchen-settings input { width:36px; border:1px solid var(--ink-15); border-radius:6px; padding:2px 4px; font-size:11px; text-align:center; font-family:'JetBrains Mono',monospace; }
  @keyframes cardPop { 0%{ transform:scale(0.96); opacity:0.5; } 100%{ transform:scale(1); opacity:1; } }
  .order-card.new-pop { animation: cardPop 0.4s ease-out; }
  @keyframes flashBg { 0%,100% { background:var(--paper);} 50% { background:#FDE8D6; } }
  .header.flash { animation: flashBg 0.6s ease-in-out 2; }
  .toast { position:absolute; top:16px; left:16px; right:16px; background:var(--ink); color:var(--paper); border-radius:14px; padding:12px 16px; display:flex; align-items:center; gap:10px; box-shadow:0 10px 25px rgba(0,0,0,0.3); z-index:40; font-size:13px; font-weight:500; }
  .toast .toast-dot { width:8px; height:8px; border-radius:999px; background:var(--orange); flex-shrink:0; }

  /* ---- owner v2: filters, payment, sales, edit, reorder ---- */
  .owner-filters { display:flex; gap:6px; padding:2px 0 12px; overflow-x:auto; }
  .filter-chip { padding:6px 13px; border-radius:999px; font-size:12px; font-weight:600; border:1px solid var(--ink-15); background:white; color:var(--ink-60); cursor:pointer; white-space:nowrap; flex-shrink:0; }
  .filter-chip.active { background:var(--ink); color:white; border-color:var(--ink); }
  .order-row-bottom { display:flex; align-items:center; justify-content:space-between; margin-top:6px; }
  .pay-badge { font-size:10px; font-weight:700; letter-spacing:0.3px; padding:4px 10px; border-radius:999px; border:none; cursor:pointer; }
  .pay-badge.paid { background:var(--sage); color:white; }
  .pay-badge.unpaid { background:var(--light); color:var(--rust); }
  .stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:18px; }
  .stat-card { background:white; border-radius:14px; padding:12px 10px; box-shadow:0 2px 8px rgba(0,0,0,0.05); text-align:center; }
  .stat-num { font-size:18px; font-weight:700; color:var(--ink); font-family:'JetBrains Mono',monospace; }
  .stat-lbl { font-size:10px; color:var(--ink-50); margin-top:2px; letter-spacing:0.3px; }
  .top-item-row { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--ink-08); }
  .top-item-rank { width:20px; height:20px; border-radius:999px; background:var(--light); color:var(--rust); font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-right:8px; }
  .top-item-name { font-size:14px; color:var(--ink); flex:1; }
  .top-item-qty { font-size:12px; color:var(--ink-50); font-family:'JetBrains Mono',monospace; }
  .cat-group-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
  .cat-move { display:flex; gap:4px; }
  .cat-move-btn { width:22px; height:22px; border-radius:7px; background:var(--light); border:none; color:var(--ink-60); font-size:11px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .cat-move-btn:disabled { opacity:0.3; cursor:default; }
  .edit-btn { background:none; border:none; cursor:pointer; color:var(--ink-30); display:flex; }
  .modal-box.scrollable { max-height:82vh; overflow-y:auto; }
  textarea.modal-input { resize:none; font-family:'Inter',sans-serif; }

  /* ---- owner: tables & QR codes ---- */
  .tables-intro { font-size:13px; color:var(--ink-50); line-height:1.5; margin:0 0 16px; }
  .add-table-row { display:flex; gap:8px; margin-bottom:20px; }
  .add-table-row .modal-input { flex:1; margin-bottom:0; }
  .add-table-btn { background:var(--ink); color:var(--paper); border:none; border-radius:12px; padding:0 18px; font-weight:600; font-size:14px; cursor:pointer; flex-shrink:0; }
  .table-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(148px,1fr)); gap:14px; }
  .table-card { background:white; border-radius:16px; padding:14px; box-shadow:0 2px 8px rgba(0,0,0,0.06); display:flex; flex-direction:column; align-items:center; text-align:center; }
  .table-card-label { font-size:14px; font-weight:600; color:var(--ink); margin-bottom:8px; }
  .qr-canvas { width:118px !important; height:118px !important; border-radius:8px; background:var(--light); margin-bottom:8px; }
  .table-card-link { font-size:9px; color:var(--ink-40); word-break:break-all; margin-bottom:10px; line-height:1.4; }
  .table-card-actions { display:flex; flex-direction:column; gap:6px; width:100%; }
  .table-action-btn { background:var(--light); color:var(--ink-70); border:none; border-radius:10px; padding:7px 0; font-size:11px; font-weight:600; cursor:pointer; }
  .table-action-btn.danger { background:transparent; color:var(--orange); }
  .tables-warning { background:#FFF3EA; border:1px solid var(--orange); color:var(--rust); font-size:12px; line-height:1.5; border-radius:12px; padding:12px 14px; margin-bottom:16px; }
@media (max-width: 480px) {
  body { padding:0; background:var(--paper); }
  .frame, .frame.wide {
    width:100%; max-width:100%; height:100vh; min-height:100dvh;
    border-radius:0; border-width:0; box-shadow:none;
  }
}

/* ---- staff nav: switch link between Kitchen/Owner + badge ---- */
.staff-link { background:none; border:none; color:var(--orange); font-size:11px; font-weight:600; cursor:pointer; letter-spacing:0.5px; text-decoration:none; display:inline-flex; align-items:center; gap:4px; }
.staff-link-badge { background:var(--orange); color:white; font-size:9px; font-weight:700; padding:1px 5px; border-radius:999px; }
.header-actions { display:flex; align-items:center; gap:14px; }

/* ---- owner: cafe name edit + print sheet ---- */
.cafe-name-row { display:flex; align-items:center; gap:8px; margin-bottom:16px; }
.cafe-name-display { font-size:20px; font-weight:600; color:var(--ink); flex:1; }
.print-sheet-btn { width:100%; margin-bottom:16px; background:var(--ink); color:var(--paper); }
.print-sheet-btn:disabled { opacity:0.4; cursor:default; }

/* ---- printable QR sheet (used only inside the print popup window) ---- */
.print-sheet-page { font-family:'Inter',sans-serif; padding:32px; }
.print-sheet-header { text-align:center; margin-bottom:24px; }
.print-sheet-header h1 { font-family:'Fraunces',serif; font-size:26px; margin:0 0 4px; color:#2B211B; }
.print-sheet-header p { font-size:12px; color:#2B211B99; margin:0; }
.print-sheet-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.print-sheet-card { border:1.5px dashed #2B211B55; border-radius:12px; padding:16px; text-align:center; page-break-inside:avoid; }
.print-sheet-card img { width:160px; height:160px; }
.print-sheet-card .table-lbl { font-family:'Fraunces',serif; font-size:18px; font-weight:600; margin-top:8px; color:#2B211B; }
.print-sheet-card .scan-hint { font-size:11px; color:#2B211B99; margin-top:2px; }
@media print {
  .print-sheet-page { padding:0; }
  .print-sheet-card { border-color:#2B211B33; }
}
