/* ==========================================================================
   Kashmir Foods POS - Core stylesheet
   ========================================================================== */
:root{
  --kf-primary:#8a1c1c;
  --kf-primary-dark:#6b1414;
  --kf-primary-light:#b3352f;
  --kf-gold:#d9a441;
  --kf-bg:#eef0f2;
  --kf-card:#ffffff;
  --kf-text:#22262b;
  --kf-muted:#6b7280;
  --kf-border:#d7dbe0;
  --kf-success:#1a8a4a;
  --kf-warning:#d98c00;
  --kf-danger:#c0392b;
  --kf-info:#2563eb;
  --header-h1:44px;
  --header-h2:42px;
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  background:var(--kf-bg);
  color:var(--kf-text);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  margin:0;
  font-size:14px;
}

/* ==========================================================================
   Desktop POS application shell: fixed top header + module nav, no sidebar.
   ========================================================================== */
.app-shell{display:flex;flex-direction:column;min-height:100vh;width:100%;}

.pos-header{
  position:sticky;top:0;z-index:100;
  background:linear-gradient(180deg,var(--kf-primary-dark),var(--kf-primary));
  box-shadow:0 2px 10px rgba(0,0,0,.18);
  width:100%;
}

.pos-header-row1{
  height:var(--header-h1);
  display:flex;align-items:center;gap:1rem;
  padding:0 .9rem;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.pos-brand{display:flex;align-items:center;gap:.5rem;flex-shrink:0;}
.brand-mark{
  background:var(--kf-gold);color:var(--kf-primary-dark);
  width:28px;height:28px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:.8rem;flex-shrink:0;
}
.brand-text{color:#fff;font-weight:600;font-size:.92rem;letter-spacing:.02em;white-space:nowrap;}
.brand-text b{font-weight:800;color:var(--kf-gold);}

.pos-header-status{display:flex;align-items:center;gap:.5rem;flex:1;overflow:hidden;}
.day-chip,.cash-chip{
  font-size:.76rem;font-weight:700;padding:.2rem .55rem;border-radius:5px;
  white-space:nowrap;
}
.day-chip{background:rgba(255,255,255,.14);color:#fff;}
.day-chip.day-active{background:#1a8a4a;color:#fff;}
.day-chip.day-inactive{background:#c0392b;color:#fff;}
.cash-chip{background:rgba(217,164,65,.22);color:var(--kf-gold);}

.pos-header-user{display:flex;align-items:center;gap:.55rem;flex-shrink:0;}
.pos-header-user .user-chip{color:#fff;font-size:.8rem;white-space:nowrap;}
.pos-header-user .user-chip small{color:rgba(255,255,255,.65);}
.icon-link{color:rgba(255,255,255,.85);font-size:1rem;text-decoration:none;padding:.15rem .3rem;}
.icon-link:hover{color:#fff;}

.module-nav{
  display:flex;align-items:stretch;gap:2px;
  padding:0 .5rem;overflow-x:auto;
  background:rgba(0,0,0,.12);
  height:var(--header-h2);
  scrollbar-width:thin;
}
.module-tab{
  display:flex;align-items:center;gap:.4rem;
  color:rgba(255,255,255,.78);text-decoration:none;
  padding:0 .8rem;font-size:.82rem;font-weight:600;
  white-space:nowrap;flex-shrink:0;
  border-bottom:3px solid transparent;
  transition:background .1s ease,color .1s ease;
}
.module-tab i{font-size:.95rem;}
.module-tab:hover{background:rgba(255,255,255,.08);color:#fff;}
.module-tab.active{color:#fff;border-bottom-color:var(--kf-gold);background:rgba(255,255,255,.06);}

.content-area{padding:1rem;flex:1;width:100%;max-width:100%;}

.conn-online{background:#d9f2e3;color:var(--kf-success);}
.conn-offline{background:#fde2e1;color:var(--kf-danger);}

/* ---------- Cards / stat tiles ---------- */
.stat-card{
  background:var(--kf-card);border:1px solid var(--kf-border);border-radius:12px;
  padding:1rem 1.1rem;height:100%;
}
.stat-card .stat-label{font-size:.8rem;color:var(--kf-muted);text-transform:uppercase;letter-spacing:.04em;}
.stat-card .stat-value{font-size:1.6rem;font-weight:800;margin-top:.15rem;}
.stat-card .stat-icon{
  width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;color:#fff;
}

.card-panel{background:var(--kf-card);border:1px solid var(--kf-border);border-radius:12px;padding:1rem;}

/* ---------- Order type tabs: large desktop-application-style tabs ---------- */
.order-type-tabs{display:flex;gap:.4rem;margin-bottom:1rem;border-bottom:3px solid var(--kf-primary);}
.order-type-tab{
  flex:1;max-width:260px;border:2px solid var(--kf-border);border-bottom:none;background:#e9ebee;
  border-radius:10px 10px 0 0;
  padding:.85rem .5rem;text-align:center;font-size:1.05rem;font-weight:800;
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.5rem;
  cursor:pointer;text-decoration:none;color:var(--kf-muted);
  letter-spacing:.03em;
  transition:background .1s ease,color .1s ease;
}
.order-type-tab i{font-size:1.3rem;}
.order-type-tab:hover{background:#f5f0e6;color:var(--kf-text);}
.order-type-tab.active{
  background:var(--kf-primary);border-color:var(--kf-primary);color:#fff;
  position:relative;
}

/* ---------- POS layout ---------- */
.pos-layout{display:grid;grid-template-columns:1fr 380px;gap:1rem;align-items:start;}
@media (max-width:991px){.pos-layout{grid-template-columns:1fr;}}

.category-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;}
.category-btn{
  border:2px solid var(--kf-border);background:#fff;border-radius:10px;
  padding:.6rem 1rem;font-weight:600;font-size:.95rem;cursor:pointer;
}
.category-btn.active{background:var(--kf-primary);color:#fff;border-color:var(--kf-primary);}

.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.65rem;}
.product-btn{
  border:1px solid var(--kf-border);background:#fff;border-radius:12px;
  padding:.85rem .6rem;text-align:center;cursor:pointer;min-height:92px;
  display:flex;flex-direction:column;justify-content:center;gap:.3rem;
  transition:transform .08s ease, box-shadow .08s ease;
}
.product-btn:active{transform:scale(.97);}
.product-btn:hover{box-shadow:0 3px 10px rgba(0,0,0,.08);border-color:var(--kf-primary-light);}
.product-btn .p-name{font-weight:700;font-size:.9rem;line-height:1.2;}
.product-btn .p-price{color:var(--kf-primary);font-weight:700;font-size:.9rem;}
.product-btn.unavailable{opacity:.5;cursor:not-allowed;}
.product-btn.unavailable:hover{box-shadow:none;border-color:var(--kf-border);}

/* ---------- Category-first menu (assets/js/menu-browser.js) ---------- */
.menu-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:.6rem;}
.menu-title{font-weight:800;font-size:1.15rem;text-transform:uppercase;letter-spacing:.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;}
.category-tile{
  --ct:var(--kf-primary);
  position:relative;overflow:hidden;
  border:1px solid var(--kf-border);border-top:5px solid var(--ct);
  background:#fff;border-radius:14px;color:var(--kf-text);
  padding:1rem .6rem .85rem;min-height:128px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
  transition:transform .08s ease, box-shadow .12s ease, background .12s ease;
}
.category-tile:hover{
  box-shadow:0 6px 16px rgba(0,0,0,.10);
  background:color-mix(in srgb, var(--ct) 6%, #fff);
}
.category-tile:active{transform:scale(.97);}
.category-tile .ct-icon{
  width:50px;height:50px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;color:var(--ct);
  background:color-mix(in srgb, var(--ct) 13%, #fff);
}
.category-tile:hover .ct-icon{background:var(--ct);color:#fff;}
.category-tile .ct-name{font-weight:800;font-size:1rem;line-height:1.15;text-transform:uppercase;text-align:center;letter-spacing:.02em;}
.category-tile .ct-count{
  font-size:.72rem;font-weight:700;color:var(--ct);
  background:color-mix(in srgb, var(--ct) 10%, #fff);
  padding:.1rem .55rem;border-radius:999px;
}

/* Desktop: the order area fills the window; grid and cart scroll inside it. */
.pos-layout.pos-fit{align-items:stretch;}
.pos-fit > .menu-pane{display:flex;flex-direction:column;min-height:0;}
.pos-fit .menu-scroll{flex:1;min-height:0;overflow-y:auto;align-content:start;padding:2px 4px 2px 2px;}
.pos-fit .order-panel{position:static;height:100%;max-height:none;min-height:0;overflow-y:auto;}
.pos-fit .order-items{max-height:none;min-height:60px;}

/* ---------- Order panel ---------- */
.order-panel{
  background:var(--kf-card);border:1px solid var(--kf-border);border-radius:14px;
  padding:1rem;position:sticky;top:calc(var(--header-h1) + var(--header-h2) + 12px);
  display:flex;flex-direction:column;max-height:calc(100vh - var(--header-h1) - var(--header-h2) - 24px);
}
.order-panel-header{border-bottom:2px solid var(--kf-border);padding-bottom:.6rem;margin-bottom:.6rem;}
.order-items{flex:1;overflow-y:auto;min-height:120px;max-height:38vh;}
.order-item-row{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px dashed var(--kf-border);}
.order-item-row .oi-name{flex:1;font-weight:600;font-size:.9rem;}
.oi-deal-contents{font-weight:400;font-size:.78rem;color:#6b7280;margin-top:2px;}
.order-item-row .oi-qty-ctrl{display:flex;align-items:center;gap:.35rem;}
.oi-qty-btn{width:26px;height:26px;border-radius:6px;border:1px solid var(--kf-border);background:#fff;line-height:1;}
.order-totals{border-top:2px solid var(--kf-border);padding-top:.6rem;margin-top:.4rem;font-size:.95rem;}
.order-totals .row-line{display:flex;justify-content:space-between;padding:.15rem 0;}
.order-totals .grand{font-size:1.3rem;font-weight:800;color:var(--kf-primary);}

.payment-method-group{display:flex;gap:.4rem;flex-wrap:wrap;}
.payment-method-option{
  display:flex;align-items:center;gap:.3rem;
  border:2px solid var(--kf-border);border-radius:8px;
  padding:.35rem .6rem;font-size:.8rem;font-weight:700;
  cursor:pointer;flex:1;justify-content:center;white-space:nowrap;
  color:var(--kf-muted);
}
.payment-method-option input{margin:0;accent-color:var(--kf-primary);}
.payment-method-option:has(input:checked){
  border-color:var(--kf-primary);background:#fdf1f1;color:var(--kf-primary);
}

.action-btns{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.75rem;}
.action-btns .btn{padding:.65rem;font-weight:700;}

/* ---------- Kitchen display ---------- */
.kds-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;}
.kds-card{border-radius:14px;padding:1rem;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.12);}
.kds-card.status-pending{background:#c0392b;}
.kds-card.status-accepted{background:#d98c00;}
.kds-card.status-preparing{background:#2563eb;}
.kds-card.status-ready{background:#1a8a4a;}
.kds-card .kds-order-no{font-size:1.3rem;font-weight:800;}
.kds-card .kds-meta{font-size:.8rem;opacity:.9;margin-bottom:.5rem;}
.kds-card ul{list-style:none;padding:0;margin:0 0 .75rem;}
.kds-card li{padding:.15rem 0;font-size:.95rem;}
.kds-card .kds-actions{display:flex;gap:.4rem;}
.kds-card .kds-actions .btn{flex:1;font-weight:700;}

/* ---------- Table layout (dine-in) ---------- */
.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;}
.table-tile{
  border-radius:14px;padding:1.25rem 1rem;text-align:center;cursor:pointer;
  font-weight:700;font-size:1.05rem;color:#fff;min-height:110px;
  display:flex;flex-direction:column;justify-content:center;gap:.4rem;
  text-decoration:none;
}
.table-tile.available{background:#1a8a4a;}
.table-tile.occupied{background:#c0392b;}
.table-tile.order_ready{background:#2563eb;}
.table-tile.bill_requested{background:#d98c00;}
.table-tile small{font-weight:500;opacity:.9;font-size:.75rem;}

/* ---------- Status badges ---------- */
.status-pill{padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;display:inline-block;}
.status-new{background:#e5e7eb;color:#374151;}
.status-sent_kitchen,.status-accepted{background:#fde7c1;color:#8a5a00;}
.status-preparing{background:#dbeafe;color:#1d4ed8;}
.status-ready{background:#d9f2e3;color:#1a8a4a;}
.status-billing{background:#e0e7ff;color:#4338ca;}
.status-assigned,.status-out_for_delivery{background:#fef3c7;color:#92400e;}
.status-delivered,.status-completed{background:#d1fae5;color:#065f46;}
.status-paid{background:#1a8a4a;color:#fff;}
.status-cancelled{background:#fde2e1;color:#c0392b;}
.status-held{background:#f3f4f6;color:#6b7280;}

/* ---------- Recent Orders table ---------- */
.recent-orders-table tbody tr{background:#fff;transition:background .08s ease;}
.recent-orders-table tbody tr:hover{background:#f4f5f6;}
.recent-orders-table tbody tr.bill-printed-row,
.recent-orders-table tbody tr.bill-printed-row > *{background:#fff1f1;}
.recent-orders-table tbody tr.bill-printed-row:hover,
.recent-orders-table tbody tr.bill-printed-row:hover > *{background:#ffe3e3;}

/* ---------- Login ---------- */
.login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--kf-primary-dark),var(--kf-primary) 60%, var(--kf-gold));
  padding:1rem;
}
.login-card{background:#fff;border-radius:16px;padding:2.25rem;width:100%;max-width:400px;box-shadow:0 20px 50px rgba(0,0,0,.25);}
.login-logo{
  width:60px;height:60px;border-radius:14px;background:var(--kf-primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem;margin:0 auto 1rem;
}

/* ---------- Utility ---------- */
.text-primary-kf{color:var(--kf-primary);}
.bg-primary-kf{background:var(--kf-primary);color:#fff;}
.btn-kf{background:var(--kf-primary);border-color:var(--kf-primary);color:#fff;}
.btn-kf:hover{background:var(--kf-primary-dark);border-color:var(--kf-primary-dark);color:#fff;}
.fw-800{font-weight:800;}

/* ==========================================================================
   Compact POS screens (Delivery / Takeaway / Dine-in / order edit):
   lighter, smaller type and tighter boxes so the form sits in short
   horizontal rows and the menu gets most of the screen.
   ========================================================================== */
.order-type-tabs{margin-bottom:.6rem;border-bottom-width:2px;gap:.3rem;}
.order-type-tab{
  max-width:190px;padding:.42rem .6rem;font-size:.85rem;font-weight:700;
  border-width:1px;border-radius:8px 8px 0 0;letter-spacing:.02em;
}
.order-type-tab i{font-size:1rem;}

#customerPanel{padding:.55rem .75rem;border-radius:10px;flex-shrink:0;}
.menu-pane > #productSearch,.menu-pane > .menu-bar{flex-shrink:0;}
#customerPanel .form-label{font-size:.72rem;font-weight:600;color:var(--kf-muted);margin-bottom:1px;}
#customerPanel .form-control,
#customerPanel .form-select{font-size:.84rem;padding:.28rem .55rem;min-height:32px;border-radius:6px;}
#customerPanel .form-select{padding-right:1.8rem;background-position:right .45rem center;}
#customerPanel .form-text{font-size:.72rem;margin-top:1px;}
#customerPanel #f_delcharge{font-weight:700;}
#dineinInfoBar{font-size:.9rem;}
#orderInProgressNote{margin-top:.35rem !important;font-size:.78rem;}

#productSearch{font-size:.88rem;padding:.38rem .7rem;border-radius:8px;}
.menu-bar{margin-bottom:.45rem;gap:.6rem;}
.menu-bar .btn{font-size:.8rem;font-weight:700;padding:.3rem .7rem;}
.menu-title{font-size:.95rem;font-weight:700;}

.category-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.55rem;}
.category-tile{min-height:98px;padding:.65rem .45rem .6rem;gap:.3rem;border-top-width:4px;border-radius:10px;}
.category-tile .ct-icon{width:38px;height:38px;font-size:1.15rem;}
.category-tile .ct-name{font-size:.82rem;font-weight:700;letter-spacing:.01em;}
.category-tile .ct-count{font-size:.66rem;font-weight:600;padding:.05rem .45rem;}

.product-grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:.5rem;}
.product-btn{min-height:70px;padding:.55rem .45rem;border-radius:10px;gap:.2rem;}
.product-btn .p-name{font-size:.8rem;font-weight:600;}
.product-btn .p-price{font-size:.78rem;font-weight:700;}

.pos-layout{grid-template-columns:1fr 340px;gap:.75rem;}
.order-panel{padding:.7rem .8rem;border-radius:10px;font-size:.85rem;}
.order-panel .fw-800{font-weight:700;}
.order-panel-header{padding-bottom:.4rem;margin-bottom:.4rem;font-size:.85rem;}
.order-item-row{padding:.35rem 0;gap:.4rem;}
.order-item-row .oi-name{font-size:.8rem;font-weight:600;}
.oi-qty-btn{width:24px;height:24px;font-size:.8rem;}
.order-totals{font-size:.84rem;padding-top:.4rem;}
.order-totals .row-line{padding:.1rem 0;}
.order-totals .grand{font-size:1.05rem;font-weight:700;}
.order-panel .form-label{font-size:.72rem;font-weight:600;color:var(--kf-muted);}
.order-panel .form-check-label{font-size:.8rem;font-weight:600;}
.order-panel .form-check{margin-top:.5rem !important;}
.payment-method-option{padding:.25rem .4rem;font-size:.72rem;border-width:1px;border-radius:6px;}
.order-panel .payment-method-group{flex-wrap:nowrap;}
.order-panel .input-group-sm .form-select{max-width:70px;}
#btnOrderDone{font-size:.95rem;padding:.5rem;font-weight:700;}
#btnHold,#btnCancel{font-size:.8rem;padding:.3rem .5rem;}

.table-grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:.6rem;}
.table-tile{min-height:80px;padding:.7rem .6rem;font-size:.92rem;border-radius:10px;gap:.2rem;}
.table-tile small{font-size:.7rem;}

.recent-orders-table{font-size:.82rem;}
.recent-orders-table td,.recent-orders-table th{padding:.35rem .45rem;}
.recent-orders-table .btn-sm{font-size:.72rem;padding:.15rem .45rem;}

/* ---------- Vendors & Inventory (admin/vendors.php, admin/vendor.php) ---------- */
.vi-top{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.8rem;}
.vi-search{flex:1;min-width:240px;max-width:520px;position:relative;}
.vi-search i{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--kf-muted);}
.vi-search input{width:100%;border:1px solid var(--kf-border);border-radius:999px;padding:.4rem .9rem .4rem 2rem;font-size:.85rem;background:#fff;}
.vi-tabs .nav-link{font-size:.83rem;font-weight:700;color:var(--kf-muted);padding:.35rem .8rem;}
.vi-tabs .nav-link.active{background:var(--kf-primary);color:#fff;}
.vi-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.6rem;}
.vi-card{background:#fff;border:1px solid var(--kf-border);border-radius:12px;padding:.65rem .8rem;border-top:4px solid #cbd5e1;}
.vi-card-l{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--kf-muted);font-weight:800;}
.vi-card-v{font-size:1.25rem;font-weight:800;line-height:1.35;color:var(--kf-text);}
.vi-card-s{font-size:.72rem;color:var(--kf-muted);}
.vi-c-paid{border-top-color:#16a34a;} .vi-c-paid .vi-card-v{color:#15803d;}
.vi-c-payable{border-top-color:#f59e0b;} .vi-c-payable .vi-card-v{color:#b45309;}
.vi-c-receivable{border-top-color:#3b82f6;} .vi-c-receivable .vi-card-v{color:#1d4ed8;}
.vi-c-balance{border-top-width:4px;} .vi-c-balance .vi-card-v{font-size:1.4rem;}
.vi-c-settled{border-top-color:#16a34a;}
.vi-sec-title{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--kf-muted);margin-bottom:.5rem;}
.vi-sub{font-size:.72rem;font-weight:800;color:var(--kf-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;}
.vi-table{font-size:.82rem;}
.vi-table th{font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;color:var(--kf-muted);white-space:nowrap;}
.vi-table td{vertical-align:middle;}
.vi-click{cursor:pointer;}
.vi-table tr.vi-click:hover td{background:#fdf6f6;}
.vi-void td,.vi-void{opacity:.55;}
.vi-rev td{background:#fef2f2;}
.vi-open td{background:#f9fafb;}
.vi-items{max-width:280px;}
.vi-badge{display:inline-block;font-size:.68rem;font-weight:800;padding:.18rem .55rem;border-radius:999px;letter-spacing:.02em;white-space:nowrap;}
.vi-b-payable{background:#fef3c7;color:#92400e;}
.vi-b-receivable{background:#dbeafe;color:#1e40af;}
.vi-b-settled{background:#dcfce7;color:#166534;}
.vi-s-in{background:#dcfce7;color:#166534;}
.vi-s-low{background:#fef3c7;color:#92400e;}
.vi-s-out{background:#fee2e2;color:#991b1b;}
.vi-p-paid{background:#16a34a;color:#fff;} .vi-p-partial{background:#fef3c7;color:#92400e;} .vi-p-unpaid{background:#fee2e2;color:#991b1b;}
.vi-p-returned{background:#e0e7ff;color:#3730a3;} .vi-p-void{background:#6b7280;color:#fff;}
.vi-t-payable{color:#b45309;} .vi-t-receivable{color:#1d4ed8;} .vi-t-settled{color:#15803d;} .vi-t-paid{color:#15803d;}
.vi-alert{background:#fff7ed;border:1px solid #fdba74;border-left:5px solid #ea580c;border-radius:10px;padding:.6rem .8rem;}
.vi-alert-t{font-weight:800;color:#9a3412;margin-bottom:.35rem;}
.vi-alert-list{display:flex;flex-wrap:wrap;gap:.35rem;}
.vi-alert-item{font-size:.78rem;padding:.2rem .55rem;border-radius:6px;cursor:pointer;}
.vi-recent{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;padding:.35rem 0;border-bottom:1px dashed #e5e7eb;}
.vi-mini{font-size:.8rem;padding:.3rem 0;border-bottom:1px dashed #e5e7eb;}
.vi-chip{font-size:.72rem;background:#f3f4f6;border:1px solid var(--kf-border);border-radius:999px;padding:.12rem .55rem;}
.vi-form-sec{font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--kf-primary);letter-spacing:.05em;margin-top:.4rem;border-bottom:1px solid var(--kf-border);padding-bottom:.15rem;}
.vi-sumbox{border:1px solid var(--kf-border);border-radius:10px;padding:.5rem .7rem;background:#fafafa;}
.vi-sumrow{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font-size:.84rem;padding:.2rem 0;}
.vi-sumrow .vi-in{max-width:150px;}
.vi-sumrow.big{font-size:1rem;border-top:1px solid var(--kf-border);margin-top:.2rem;padding-top:.35rem;}
.vi-sumrow.big b{font-size:1.1rem;}
.vi-sumrow.remain b{color:#b45309;}
.vi-pf-table td{padding:.2rem .25rem;vertical-align:middle;}
.vi-balance-preview{font-size:.85rem;background:#f9fafb;border:1px dashed var(--kf-border);border-radius:8px;padding:.45rem .6rem;}
.vi-audit{border-bottom:1px dashed #e5e7eb;padding:.45rem 0;font-size:.82rem;}
.vi-audit-list{max-height:520px;overflow-y:auto;}
.vi-tt{font-size:.7rem;font-weight:800;padding:.15rem .45rem;border-radius:5px;background:#f3f4f6;white-space:nowrap;}
.vi-tt-purchase{background:#fef3c7;color:#92400e;} .vi-tt-payment{background:#dcfce7;color:#166534;} .vi-tt-return{background:#e0e7ff;color:#3730a3;}
.vi-tt-refund{background:#fce7f3;color:#9d174d;} .vi-tt-purchase_void,.vi-tt-payment_void{background:#fee2e2;color:#991b1b;}
.vi-ledger tfoot td{border-top:2px solid var(--kf-text);background:#fafafa;}
.vp-head{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap;}
.vp-avatar{width:56px;height:56px;border-radius:14px;background:var(--kf-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;flex-shrink:0;}
.vp-name{font-size:1.3rem;font-weight:800;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;}
.vp-contact{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.82rem;margin-top:.3rem;}
.vp-contact a{color:inherit;text-decoration:none;}
.vp-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:flex-start;}
.vi-pcard{border:1px solid var(--kf-border);border-left:4px solid #f59e0b;border-radius:10px;padding:.5rem .7rem;margin-bottom:.5rem;background:#fff;}
.vi-pcard:hover{box-shadow:0 4px 12px rgba(0,0,0,.07);}
.vi-pcard-money{display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-size:.78rem;border-top:1px dashed #e5e7eb;padding-top:.3rem;}
.vi-print-head{display:none;}
@media print{
  .vi-top,.vi-tabs,.pos-header,.no-print{display:none !important;}
  .vi-print-head{display:block;font-weight:800;font-size:1.1rem;margin-bottom:.6rem;}
  .card-panel{border:none;padding:0;}
}

/* ---------- Customer CRM / ledger (admin/customers.php) ---------- */
.crm-panel.offcanvas-end{width:min(640px,100vw);}
.crm-head{display:flex;gap:.8rem;align-items:flex-start;padding:1rem 1rem .8rem;background:linear-gradient(180deg,#fdf4f4,#fff);}
.crm-avatar{width:52px;height:52px;border-radius:50%;background:var(--kf-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;flex-shrink:0;}
.crm-name{font-weight:800;font-size:1.15rem;line-height:1.2;margin-bottom:.2rem;}
.crm-name .cst{vertical-align:middle;margin-left:.3rem;}
.crm-contact{font-size:.82rem;margin-top:1px;}
.crm-contact a{color:inherit;text-decoration:none;}
.crm-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;padding:0 1rem .8rem;}
.crm-card{border:1px solid var(--kf-border);border-radius:10px;padding:.5rem .6rem;background:#fff;}
.crm-card-l{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--kf-muted);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.crm-card-v{font-size:1.05rem;font-weight:800;color:var(--kf-text);line-height:1.3;}
.crm-card-s{font-size:.68rem;color:var(--kf-muted);}
.crm-ledger{margin:0 1rem .8rem;border:1px solid var(--kf-border);border-radius:10px;padding:.6rem .75rem;background:#fafafa;}
.crm-sec-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--kf-muted);margin-bottom:.35rem;}
.crm-ledger-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:1.2rem;}
.crm-lrow{display:flex;justify-content:space-between;font-size:.84rem;padding:.18rem 0;border-bottom:1px dashed #e5e7eb;}
.crm-lrow span:last-child{font-weight:700;}
.crm-lrow.neg span:last-child{color:#b91c1c;}
.crm-lrow.strong{font-size:.92rem;}
.crm-lrow.strong span{font-weight:800;color:var(--kf-primary);}
.crm-lrow.paid span:last-child{color:#15803d;}
.crm-lrow.unpaid span:last-child{color:#b45309;}
.crm-filters{position:sticky;top:0;z-index:2;background:#fff;padding:.6rem 1rem;border-top:1px solid var(--kf-border);border-bottom:1px solid var(--kf-border);}
.crm-sel{width:auto;max-width:150px;}
.crm-filtered{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem;font-size:.78rem;padding:.5rem 1rem;background:#f9fafb;border-bottom:1px solid var(--kf-border);}
.crm-order-list{padding:.6rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;}
.crm-order{border:1px solid var(--kf-border);border-left:4px solid var(--kf-primary);border-radius:10px;padding:.55rem .7rem;cursor:pointer;background:#fff;transition:box-shadow .1s ease;}
.crm-order:hover{box-shadow:0 4px 12px rgba(0,0,0,.08);}
.crm-order.is-cancelled{border-left-color:#9ca3af;opacity:.7;}
.crm-order-top{display:flex;align-items:center;gap:.5rem;}
.crm-ono{font-weight:800;font-size:.92rem;}
.crm-otype{font-size:.65rem;font-weight:700;color:var(--kf-muted);border:1px solid var(--kf-border);border-radius:4px;padding:0 .3rem;}
.crm-when{font-size:.75rem;color:var(--kf-muted);margin:.15rem 0 .3rem;}
.crm-items{list-style:none;padding:0;margin:0 0 .35rem;display:grid;grid-template-columns:1fr 1fr;column-gap:.8rem;font-size:.8rem;}
.crm-items .q{font-weight:800;color:var(--kf-primary);}
.crm-money{display:flex;flex-wrap:wrap;gap:.2rem .8rem;font-size:.75rem;color:#4b5563;border-top:1px dashed #e5e7eb;padding-top:.3rem;}
.crm-money .neg{color:#b91c1c;}
.crm-money .tot{margin-left:auto;font-weight:800;color:var(--kf-text);font-size:.85rem;}
.crm-pay{font-size:.65rem;font-weight:800;padding:.2rem .5rem;border-radius:999px;display:inline-block;}
.crm-pay-paid{background:#1a8a4a;color:#fff;}
.crm-pay-unpaid{background:#fef3c7;color:#92400e;}
.crm-pay-none{background:#f3f4f6;color:#6b7280;}
.crm-items-table{font-size:.82rem;}
.crm-items-table th{font-size:.68rem;text-transform:uppercase;color:var(--kf-muted);}
.crm-totals{font-size:.85rem;}
.crm-totals > div{display:flex;justify-content:space-between;padding:.12rem 0;}
.crm-totals .neg{color:#b91c1c;}
.crm-totals .grand{font-weight:800;font-size:1rem;color:var(--kf-primary);border-top:1px solid var(--kf-border);margin-top:.2rem;padding-top:.3rem;}
.crm-box{border:1px solid var(--kf-border);border-radius:8px;padding:.4rem .6rem;background:#fafafa;}
.crm-kv{display:flex;justify-content:space-between;gap:.6rem;font-size:.8rem;padding:.12rem 0;}
.crm-kv > span:first-child{color:var(--kf-muted);white-space:nowrap;}
.crm-kv > :last-child{text-align:right;}
.crm-ticket{border:1px solid var(--kf-border);border-radius:8px;padding:.35rem .55rem;margin-bottom:.3rem;}
.crm-ev{display:flex;gap:.6rem;font-size:.8rem;padding:.35rem 0;border-bottom:1px dashed #e5e7eb;}
.crm-ev.denied{background:#fef2f2;}
.crm-ev-t{width:74px;flex-shrink:0;font-weight:700;font-size:.75rem;}
.crm-ev-t span{font-weight:400;color:var(--kf-muted);font-size:.68rem;}
@media (max-width:576px){
  .crm-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
  .crm-ledger-grid,.crm-items{grid-template-columns:1fr;}
}

/* ---------- Cart: kitchen status per line (post-dispatch add-ons) ---------- */
.oi-kitchen{display:flex;gap:.3rem;margin-top:2px;flex-wrap:wrap;}
.oi-k{font-size:.66rem;font-weight:700;padding:0 .35rem;border-radius:4px;line-height:1.5;}
.oi-k.sent{background:#e5e7eb;color:#374151;}
.oi-k.add{background:#dcfce7;color:#166534;}
.oi-k.less{background:#fee2e2;color:#991b1b;}

/* ---------- Order audit trail (Admin) ---------- */
.oa-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.6rem;}
.oa-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;}
.oa-chip{font-size:.78rem;padding:.25rem .6rem;border-radius:999px;background:#f3f4f6;border:1px solid var(--kf-border);color:#374151;}
.oa-chip.ok{background:#d1fae5;border-color:#6ee7b7;color:#065f46;font-weight:700;}
.oa-chip.warn{background:#fef3c7;border-color:#fcd34d;color:#92400e;}
.oa-chip.bad{background:#fee2e2;border-color:#fca5a5;color:#991b1b;font-weight:700;}
.oa-table{font-size:.8rem;}
.oa-table th{font-size:.72rem;text-transform:uppercase;color:var(--kf-muted);white-space:nowrap;background:#f9fafb;position:sticky;top:0;}
.oa-table td{vertical-align:top;}
.oa-val{line-height:1.35;margin-bottom:2px;}
.oa-lbl{color:var(--kf-muted);font-size:.72rem;}
.oa-old{color:#991b1b;text-decoration:line-through;text-decoration-color:rgba(153,27,27,.35);}
.oa-new{color:#065f46;font-weight:600;}
.oa-total{margin-top:3px;font-weight:600;}
.oa-total.down{color:#b91c1c;}
.oa-total.up{color:#92400e;}
.oa-meta{margin-top:3px;font-size:.68rem;color:#9ca3af;}
.oa-table tr.oa-aftersubmit > td{background:#fffbeb;}
.oa-table tr.oa-afterbill > td{background:#fff1f2;}
.oa-table tr.oa-denied > td{background:#fee2e2;}
.oa-table tr.oa-aftersubmit > td:first-child{box-shadow:inset 3px 0 0 #f59e0b;}
.oa-table tr.oa-afterbill > td:first-child,.oa-table tr.oa-denied > td:first-child{box-shadow:inset 3px 0 0 #dc2626;}

/* ---------- Pizza deal flavor picker (one flavor per pizza) ---------- */
.flavor-steps{display:flex;flex-direction:column;gap:.3rem;}
.flavor-step{display:flex;align-items:center;gap:.5rem;padding:.35rem .55rem;border:1px solid var(--kf-border);border-radius:8px;font-size:.85rem;color:var(--kf-muted);}
.flavor-step .fs-num{width:22px;height:22px;border-radius:50%;background:#e5e7eb;color:#374151;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;flex-shrink:0;}
.flavor-step .fs-label{font-weight:600;}
.flavor-step .fs-flavor{margin-left:auto;font-weight:700;}
.flavor-step.current{border-color:var(--kf-primary);background:#fdf1f1;color:var(--kf-primary);}
.flavor-step.current .fs-num{background:var(--kf-primary);color:#fff;}
.flavor-step.done{color:var(--kf-text);}
.flavor-step.done .fs-num{background:var(--kf-success);color:#fff;}
.flavor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.45rem;}
.flavor-grid .btn{font-size:.85rem;padding:.5rem .4rem;}

/* ---------- Order screen (pos/index.php): contact form on the left,
   menu -> current order/total -> recent orders on the right ---------- */
.pos-shell{display:grid;grid-template-columns:250px minmax(0,1fr);gap:.75rem;align-items:start;margin-bottom:.75rem;}
.pos-aside #customerPanel{
  position:sticky;top:calc(var(--header-h1) + var(--header-h2) + 10px);
  max-height:calc(100vh - var(--header-h1) - var(--header-h2) - 20px);overflow-y:auto;
}
.aside-title{font-weight:700;font-size:.85rem;color:var(--kf-primary);border-bottom:1px solid var(--kf-border);padding-bottom:.35rem;margin-bottom:.1rem;}
#customerPanel textarea.form-control{resize:vertical;min-height:52px;}
.pos-main{display:flex;flex-direction:column;gap:.75rem;min-width:0;}
.menu-card{padding:.6rem .7rem;}
.menu-card .menu-scroll{max-height:46vh;overflow-y:auto;align-content:start;padding:2px 4px 2px 2px;}
.order-panel.order-panel-wide{
  position:static;max-height:none;overflow:visible;
  display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start;
}
.order-panel-wide .order-items{max-height:260px;min-height:110px;}
.order-panel-wide .op-summary{border-left:1px solid var(--kf-border);padding-left:1rem;}
.order-panel-wide .op-summary .order-totals{border-top:none;margin-top:0;padding-top:0;}
#posCartWrap:not(.d-none) + .recent-orders-card{margin-left:calc(250px + .75rem);}
@media (max-width:991px){
  .pos-shell{grid-template-columns:1fr;}
  .pos-aside #customerPanel{position:static;max-height:none;}
  #posCartWrap:not(.d-none) + .recent-orders-card{margin-left:0;}
  .order-panel.order-panel-wide{grid-template-columns:1fr;}
  .order-panel-wide .op-summary{border-left:none;padding-left:0;}
}

@media (max-width:991px){.pos-layout{grid-template-columns:1fr;}}

@media (max-width:768px){
  .pos-layout{grid-template-columns:1fr;}
  .order-panel{position:static;max-height:none;}
  .brand-text{display:none;}
  .pos-header-status{gap:.3rem;}
  .day-chip,.cash-chip{font-size:.68rem;padding:.15rem .4rem;}
  .pos-header-user .user-chip small{display:none;}
  .order-type-tab{font-size:.85rem;padding:.6rem .3rem;}
  .order-type-tab i{font-size:1.05rem;}
}
@media (max-width:560px){
  .pos-header-status{display:none;}
}
