:root{--brand:#0f766e;--sidebar-w:258px}
body{background:#f4f6f9;font-size:.9rem;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Bengali","Hind Siliguri",SolaimanLipi,Kalpurush,"Helvetica Neue",Arial,sans-serif}
[data-bs-theme=dark] body{background:#0f1419}
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:#0b2723;color:#cfe5e1;position:fixed;inset:0 auto 0 0;overflow-y:auto;z-index:1040;transition:transform .2s}
.sidebar .brand{height:58px;background:var(--brand);color:#fff}
.sidebar .menu{padding-bottom:1rem}
.menu-head{display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem;color:#cfe5e1;text-decoration:none;font-size:.82rem;font-weight:600}
.menu-head:hover{background:rgba(255,255,255,.06);color:#fff}
.menu-head .bi-chevron-down{transition:transform .2s}
.menu-head.collapsed .bi-chevron-down{transform:rotate(-90deg)}
.menu-item{display:block;padding:.35rem 1rem .35rem 2.6rem;color:#a8c7c1;text-decoration:none;font-size:.82rem}
.menu-item:hover{color:#fff;background:rgba(255,255,255,.05)}
.menu-item.active{color:#fff;background:rgba(255,255,255,.12);border-left:3px solid #5eead4}
.menu-search{background:rgba(255,255,255,.08);border:0;color:#fff}
.menu-search::placeholder{color:#8fb3ad}
.main{margin-left:var(--sidebar-w);flex:1;min-width:0}
.topbar{height:58px;background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);position:sticky;top:0;z-index:1030}
@media(max-width:991px){.sidebar{transform:translateX(-100%)}.sidebar.show{transform:none}.main{margin-left:0}}
.stat-card .stat-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.min-w-0{min-width:0}
.btn-brand{background:var(--brand);color:#fff}.btn-brand:hover{filter:brightness(1.1);color:#fff}
.login-bg{background:linear-gradient(135deg,#0b2723,var(--brand))}
.login-logo{width:64px;height:64px;border-radius:16px;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:2rem}
.card{border:0}
.card-header{background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color-translucent)}
.table-sm td,.table-sm th{padding:.4rem .5rem}
.table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.02em;color:var(--bs-secondary-color);white-space:nowrap}
.ac-list{position:absolute;z-index:1060;left:0;right:0;top:100%;max-height:320px;overflow:auto;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:.4rem;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.ac-list .ac-item{padding:.4rem .6rem;cursor:pointer;font-size:.85rem;border-bottom:1px solid var(--bs-border-color-translucent)}
.ac-list .ac-item:hover,.ac-list .ac-item.active{background:var(--bs-primary-bg-subtle)}
.itemgrid input{min-width:70px}
.heat td{text-align:center;font-size:.75rem}
.kpi-up{color:#16a34a}.kpi-down{color:#dc2626}
/* POS */
.pos-body{height:100vh;overflow:hidden;background:#eef2f5}
.pos-wrap{display:grid;grid-template-columns:1fr 420px;height:calc(100vh - 52px)}
.pos-left{display:flex;flex-direction:column;min-height:0;padding:10px}
.pos-right{background:var(--bs-body-bg);border-left:1px solid var(--bs-border-color);display:flex;flex-direction:column;min-height:0}
.pos-cart{flex:1;overflow:auto}
.pos-cart table td{vertical-align:middle}
.pos-grid{flex:1;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;align-content:start;padding-top:8px}
.pos-tile{background:var(--bs-body-bg);border-radius:10px;padding:10px;cursor:pointer;border:1px solid transparent;box-shadow:0 1px 2px rgba(0,0,0,.06);user-select:none}
.pos-tile:hover{border-color:var(--brand)}
.pos-tile .n{font-size:.8rem;font-weight:600;line-height:1.2;height:2.4em;overflow:hidden}
.pos-tile .p{color:var(--brand);font-weight:700}
.pos-tile.out{opacity:.45}
.pos-total{font-size:2rem;font-weight:800;color:var(--brand)}
.pos-top{height:52px;background:#0b2723;color:#fff}
.pay-btn{font-size:1.1rem;padding:.8rem}
.kbd{font-size:.7rem;background:#e2e8f0;color:#334155;border-radius:3px;padding:0 4px;margin-left:4px}
.offline-banner{background:#b91c1c;color:#fff;text-align:center;font-size:.8rem}
@media(max-width:991px){.pos-wrap{grid-template-columns:1fr;grid-template-rows:45% 55%}}
/* receipt */
.receipt{font-family:'Courier New',monospace;font-size:12px;color:#000;background:#fff;margin:0 auto;padding:6px}
.receipt table{width:100%;border-collapse:collapse}.receipt td{padding:1px 0;vertical-align:top}
.receipt .c{text-align:center}.receipt .r{text-align:right}.receipt hr{border:0;border-top:1px dashed #000;margin:4px 0}
/* labels */
.label-sheet{display:grid;gap:2mm}
.label{border:1px dashed #ccc;overflow:hidden;text-align:center;padding:1mm;font-family:Arial,sans-serif;background:#fff;color:#000}
.label svg{max-width:100%;height:auto}
@media print{
  .no-print,.sidebar,.topbar,.filter-bar,.pagination{display:none!important}
  .main{margin:0!important}.content{padding:0!important}
  body{background:#fff!important}.card{box-shadow:none!important}
  .label{border:0}
}
