:root{
  --bg:#f4f6f8; --card:#fff; --ink:#16202b; --muted:#6b7a8d; --line:#e6ebf0;
  --brand:#0e7a5f; --brand-d:#0a5e49; --brand-l:#e7f4ef;
  --accent:#d98324; --danger:#d64545; --warn:#e0a500; --ok:#2c9e6b;
  --bkash:#e2136e; --nagad:#ed1c24; --shadow:0 1px 3px rgba(16,32,43,.08),0 6px 20px rgba(16,32,43,.06);
  --r:14px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Inter','Hind Siliguri',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body.bn{font-family:'Hind Siliguri','Inter',sans-serif}
#app{max-width:1240px;margin:0 auto;padding:0 16px 60px}
button{font-family:inherit;cursor:pointer;border:none}
select{font-family:inherit}

/* Topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px}
.logo{font-size:30px;background:var(--brand-l);width:48px;height:48px;border-radius:12px;display:grid;place-items:center}
.brand-name{font-weight:800;font-size:19px;letter-spacing:-.3px}
.brand-sub{font-weight:600;color:var(--brand);font-size:12px;background:var(--brand-l);padding:2px 7px;border-radius:6px;vertical-align:middle}
.brand-tag{font-size:12px;color:var(--muted)}
.topctrl{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.ctrl{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.ctrl select{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13.5px;font-weight:600;color:var(--ink);min-width:150px}
.lang,.reset{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 12px;font-weight:700;font-size:13px;color:var(--brand);height:37px;align-self:flex-end}
.reset{color:var(--muted);font-size:16px;width:37px;padding:0}
.lang:hover,.reset:hover{background:var(--brand-l)}

/* Tabs */
.tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px;margin:6px 0 18px;box-shadow:var(--shadow);overflow-x:auto}
.tab{flex:1;min-width:120px;padding:11px 14px;border-radius:8px;background:transparent;color:var(--muted);font-weight:700;font-size:14px;white-space:nowrap;transition:.15s}
.tab.active{background:var(--brand);color:#fff;box-shadow:0 2px 8px rgba(14,122,95,.3)}
.tab:not(.active):hover{background:var(--brand-l);color:var(--brand)}

/* Cards / layout */
.grid{display:grid;gap:16px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(165px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.pad{padding:18px}
.kpi{padding:16px 18px}
.kpi .k-label{font-size:12px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
.kpi .k-val{font-size:26px;font-weight:800;letter-spacing:-.5px;margin-top:6px}
.kpi .k-val small{font-size:14px;font-weight:700;color:var(--muted)}
.kpi .k-sub{font-size:12px;color:var(--muted);margin-top:2px}
.k-accent{color:var(--brand)}.k-danger{color:var(--danger)}.k-warn{color:var(--warn)}
.sec-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:24px 4px 10px}
.two{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}
@media(max-width:780px){.two{grid-template-columns:1fr}}

/* Table */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:2px solid var(--line)}
td{padding:10px 12px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:none}
.num{text-align:right;font-variant-numeric:tabular-nums}
.sku{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--brand);font-weight:600}
.pill{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700}
.p-ok{background:#e8f6ef;color:var(--ok)}.p-low{background:#fdf3df;color:var(--warn)}
.p-out{background:#fbe9e9;color:var(--danger)}.p-over{background:#eef0fb;color:#5a63c4}
.seg{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700;color:#fff}
.seg-VIP{background:#7a4fd6}.seg-Loyal{background:var(--brand)}.seg-Repeat{background:#3a7bd5}
.seg-Big-ticket{background:var(--accent)}.seg-New{background:#2c9e6b}.seg-Cooling{background:#8aa0b5}.seg-Dormant{background:#c0504d}

/* POS */
.pos{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;align-items:start}
@media(max-width:880px){.pos{grid-template-columns:1fr}}
.search{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:11px;font-size:15px;margin-bottom:14px;box-shadow:var(--shadow)}
.prodgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:11px;max-height:62vh;overflow:auto;padding:2px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px;cursor:pointer;transition:.12s;display:flex;flex-direction:column;gap:5px;position:relative}
.pcard:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(14,122,95,.14);transform:translateY(-1px)}
.pcard.oos{cursor:default;opacity:.96}
.pcard .pname{font-weight:700;font-size:13.5px;line-height:1.25}
.pcard .pcat{font-size:11px;color:var(--muted)}
.pcard .pprice{font-weight:800;color:var(--brand);font-size:15px}
.pcard .pstock{font-size:11px;color:var(--muted)}
.pcard .xshop{margin-top:4px;border-top:1px dashed var(--line);padding-top:6px;font-size:11px}
.xbtn{display:block;width:100%;margin-top:4px;background:var(--accent);color:#fff;border-radius:7px;padding:6px;font-weight:700;font-size:11.5px}
.xbtn:hover{filter:brightness(1.07)}
.badge-out{position:absolute;top:8px;right:8px;background:var(--danger);color:#fff;font-size:9.5px;font-weight:800;padding:2px 6px;border-radius:5px;text-transform:uppercase}

/* Cart */
.cart{position:sticky;top:10px}
.cart h3{margin:0 0 4px;font-size:16px}
.cart-list{margin:10px 0;max-height:38vh;overflow:auto}
.citem{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.citem .cn{flex:1;font-size:13px;font-weight:600;line-height:1.25}
.citem .cx{font-size:10.5px;color:var(--accent);font-weight:700}
.qbtn{width:26px;height:26px;border-radius:7px;background:var(--brand-l);color:var(--brand);font-weight:800;font-size:15px;line-height:1}
.citem .cp{width:70px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.del{color:var(--danger);background:none;font-size:16px;width:24px}
.cart-empty{color:var(--muted);text-align:center;padding:24px 0;font-size:13px}
.totrow{display:flex;justify-content:space-between;font-weight:800;font-size:20px;margin:10px 0}
.pays{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.pay{padding:11px;border-radius:10px;border:2px solid var(--line);background:#fff;font-weight:700;font-size:13.5px;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:6px}
.pay.sel{border-color:var(--brand);background:var(--brand-l);color:var(--brand-d)}
.pay .dot{width:9px;height:9px;border-radius:50%}
.checkout{width:100%;padding:14px;border-radius:11px;background:var(--brand);color:#fff;font-weight:800;font-size:16px;margin-top:6px}
.checkout:disabled{background:#b8c4ce;cursor:not-allowed}
.checkout:not(:disabled):hover{background:var(--brand-d)}

/* filters */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.toolbar input,.toolbar select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px}
.toolbar input{flex:1;min-width:200px}
.chip{padding:6px 12px;border-radius:20px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:12.5px;color:var(--muted)}
.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}

/* bars */
.bar{height:8px;border-radius:6px;background:var(--brand);min-width:3px}
.barbg{background:var(--line);border-radius:6px;flex:1;height:8px}
.brow{display:flex;align-items:center;gap:10px;margin:9px 0;font-size:13px}
.brow .bl{width:120px;font-weight:600}.brow .bv{width:74px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700}

/* toast + modal */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(40px);background:var(--ink);color:#fff;padding:13px 20px;border-radius:11px;font-weight:600;font-size:14px;opacity:0;transition:.25s;z-index:50;box-shadow:0 8px 30px rgba(0,0,0,.25);max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal-wrap{position:fixed;inset:0;background:rgba(16,32,43,.5);display:grid;place-items:center;z-index:40;padding:16px}
.modal{background:#fff;border-radius:16px;max-width:440px;width:100%;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal h2{margin:0 0 4px;font-size:20px}
.receipt-line{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14px}
.xnote{background:#fdf6ec;border:1px solid #f0d9b5;color:#9a6516;border-radius:10px;padding:10px 12px;font-size:12.5px;margin:12px 0;line-height:1.45}
.mbtn{width:100%;padding:13px;border-radius:11px;background:var(--brand);color:#fff;font-weight:800;font-size:15px;margin-top:14px}
.foot{text-align:center;color:var(--muted);font-size:12px;margin-top:30px}
.empty{text-align:center;color:var(--muted);padding:30px;font-size:14px}
