/* ===== NIRVA Distribution - MJPOS style theme ===== */
:root{
  --navy:#0F1733; --navy-2:#16204A; --navy-line:rgba(255,255,255,.07);
  --blue:#2563EB; --blue-dk:#1D4ED8; --hero:#13298A;
  --bg:#F3F5F9; --card:#fff; --line:#E5E8EF; --ink:#111827; --muted:#6B7280;
  --green:#16A34A; --red:#DC2626; --amber:#F59E0B; --purple:#7C3AED; --teal:#0D9488; --orange:#EA580C;
  --bs-body-font-family:'Plus Jakarta Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  --bs-body-color:var(--ink); --bs-body-bg:var(--bg); --bs-border-color:var(--line);
  --bs-primary:#2563EB; --bs-primary-rgb:37,99,235;
  --bs-link-color:#2563EB; --bs-link-color-rgb:37,99,235; --bs-link-hover-color-rgb:29,78,216;
  --side-w:256px;
}
body{font-size:14.5px;font-feature-settings:"tnum" 1;}
.btn{font-weight:600;border-radius:8px;}
.btn-primary{--bs-btn-bg:var(--blue);--bs-btn-border-color:var(--blue);--bs-btn-hover-bg:var(--blue-dk);--bs-btn-hover-border-color:var(--blue-dk);--bs-btn-active-bg:var(--blue-dk);}
.btn-outline-primary{--bs-btn-color:var(--blue);--bs-btn-border-color:var(--blue);--bs-btn-hover-bg:var(--blue);--bs-btn-hover-border-color:var(--blue);}
.form-control,.form-select{background-color:#fff;border-radius:8px;}
.form-control:focus,.form-select:focus{border-color:#93B4F7;box-shadow:0 0 0 .2rem rgba(37,99,235,.15);}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}

/* ---------- Sidebar ---------- */
.side{position:fixed;inset:0 auto 0 0;width:var(--side-w);background:var(--navy);color:#C9D1E8;z-index:1040;display:flex;flex-direction:column;transition:transform .2s;}
.side .brand{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--navy-line);}
.side .logo{width:38px;height:38px;border-radius:10px;background:#fff;color:var(--navy);display:grid;place-items:center;font-size:20px;flex:0 0 38px;}
.side .brand b{display:block;color:#fff;font-size:14.5px;font-weight:800;letter-spacing:.2px;line-height:1.2;}
.side .brand small{color:#8C96B8;font-size:11.5px;}
.side .menu{flex:1;overflow-y:auto;padding:8px 10px 24px;scrollbar-width:thin;scrollbar-color:#2A355F transparent;}
.side .grp{font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#6A7499;padding:18px 10px 6px;}
.side .item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;margin:2px 0;border-radius:10px;color:#D5DBEE;text-decoration:none;background:none;border:0;font-weight:600;font-size:14.5px;text-align:left;}
.side .item:hover{background:var(--navy-2);color:#fff;}
.side .item.on{background:var(--blue);color:#fff;}
.side .item .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:15px;flex:0 0 30px;}
.side .item.on .ic{background:rgba(255,255,255,.18)!important;color:#fff!important;}
.side .item .lbl{flex:1;}
.side .item .chev{font-size:12px;color:#6A7499;transition:transform .2s;}
.side .item[aria-expanded="true"] .chev{transform:rotate(180deg);}
.side .cnt{background:var(--red);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px;}
.side .sub{padding:2px 0 6px 52px;}
.side .sub a{display:block;padding:6px 10px;color:#9AA4C6;text-decoration:none;font-size:13.5px;border-radius:8px;position:relative;}
.side .sub a::before{content:"";position:absolute;left:-12px;top:50%;width:5px;height:5px;border-radius:50%;background:#3A4673;transform:translateY(-50%);}
.side .sub a:hover{color:#fff;}
.side .sub a.on{color:#fff;font-weight:600;} .side .sub a.on::before{background:#60A5FA;}
.ic-blue{background:rgba(59,130,246,.16);color:#60A5FA}.ic-violet{background:rgba(139,92,246,.18);color:#A78BFA}
.ic-pink{background:rgba(236,72,153,.16);color:#F472B6}.ic-orange{background:rgba(249,115,22,.16);color:#FB923C}
.ic-teal{background:rgba(20,184,166,.16);color:#2DD4BF}.ic-green{background:rgba(34,197,94,.16);color:#4ADE80}
.ic-amber{background:rgba(245,158,11,.16);color:#FBBF24}.ic-red{background:rgba(239,68,68,.16);color:#F87171}
.ic-cyan{background:rgba(6,182,212,.16);color:#22D3EE}.ic-slate{background:rgba(148,163,184,.14);color:#CBD5E1}

/* ---------- Main + topbar ---------- */
.main{margin-left:var(--side-w);min-height:100vh;transition:margin .2s;}
body.side-off .side{transform:translateX(-100%);} body.side-off .main{margin-left:0;}
.topbar{position:sticky;top:0;z-index:1030;display:flex;align-items:center;gap:10px;height:62px;padding:0 20px;background:#fff;border-bottom:1px solid var(--line);}
.tb-btn{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:10px;display:grid;place-items:center;color:#374151;position:relative;font-size:17px;}
.tb-btn:hover{background:#F8FAFC;}
.tb-btn.warn{border-color:#FCD34D;color:#D97706;background:#FFFBEB;}
.tb-btn.blue{border-color:#93C5FD;color:var(--blue);}
.tb-btn .dot{position:absolute;top:-7px;right:-7px;background:var(--red);color:#fff;font-size:10.5px;font-weight:700;min-width:19px;height:19px;border-radius:10px;display:grid;place-items:center;padding:0 5px;border:2px solid #fff;}
.crumb{flex:1;font-size:15px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.crumb a{color:var(--blue);} .crumb span{color:#9CA3AF;margin:0 6px;}
.install{border:1px solid #93C5FD;color:var(--blue);background:#fff;border-radius:8px;padding:7px 12px;font-weight:600;font-size:14px;}
.me{display:flex;align-items:center;gap:10px;padding-left:6px;cursor:pointer;background:none;border:0;}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;display:grid;place-items:center;font-size:14px;}
.me b{display:block;font-size:14px;line-height:1.1;color:var(--ink);text-align:left;} .me small{color:var(--muted);font-size:12px;}
.content{padding:18px 20px 60px;}
.flashes .alert{border-radius:10px;}

@media (max-width:991px){
  .side{transform:translateX(-100%);} body.side-open .side{transform:none;box-shadow:0 0 50px rgba(0,0,0,.4);}
  .main{margin-left:0;} .topbar{padding:0 12px;} .content{padding:14px 12px 80px;}
  .me .who,.install .txt{display:none;}
}
@media (prefers-reduced-motion:reduce){.side,.main,.chev{transition:none!important;}}

/* ---------- Hero ---------- */
.hero{background:linear-gradient(110deg,#102374 0%,#16309A 60%,#1A3AB0 100%);color:#fff;border-radius:14px;padding:22px 26px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px;}
.hero h2{font-size:22px;font-weight:800;margin:0;}
.hero .meta{color:#C7D2FE;font-size:13.5px;margin-top:6px;display:flex;gap:18px;flex-wrap:wrap;}
.hero .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;}
.hero .acts .btn{border:1px solid rgba(255,255,255,.75);color:#fff;background:transparent;}
.hero .acts .btn:hover{background:rgba(255,255,255,.1);}
.hero .acts .btn.solid{background:#3B82F6;border-color:#3B82F6;}

/* ---------- Gradient KPI cards ---------- */
.kpi{position:relative;overflow:hidden;border-radius:14px;color:#fff;padding:18px 20px;min-height:150px;height:100%;}
.kpi::after{content:"";position:absolute;right:-30px;bottom:-50px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12);}
.kpi .kic{width:44px;height:44px;border-radius:10px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:21px;margin-bottom:12px;}
.kpi .kl{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;opacity:.92;}
.kpi .kv{font-size:27px;font-weight:800;line-height:1.2;}
.kpi .ks{font-size:13px;opacity:.9;position:relative;z-index:1;}
.kpi.k-blue{background:linear-gradient(135deg,#1D4ED8,#3B82F6);} .kpi.k-green{background:linear-gradient(135deg,#15803D,#22C55E);}
.kpi.k-purple{background:linear-gradient(135deg,#6D28D9,#8B5CF6);} .kpi.k-teal{background:linear-gradient(135deg,#0F766E,#14B8A6);}

/* ---------- Action tiles ---------- */
.sec-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;margin:18px 0 10px;}
.sec-h .badge{background:var(--red);}
.act{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;border:1px solid;text-decoration:none;height:100%;}
.act .ai{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:16px;flex:0 0 36px;}
.act b{display:block;font-size:17px;font-weight:800;line-height:1.2;} .act small{font-size:12.5px;}
.act.a-amber{background:#FFFBEB;border-color:#FDE68A;} .act.a-amber .ai{background:var(--amber);} .act.a-amber b,.act.a-amber small{color:#B45309;}
.act.a-green{background:#F0FDF4;border-color:#BBF7D0;} .act.a-green .ai{background:var(--green);} .act.a-green b,.act.a-green small{color:#15803D;}
.act.a-orange{background:#FFF7ED;border-color:#FED7AA;} .act.a-orange .ai{background:var(--orange);} .act.a-orange b,.act.a-orange small{color:#C2410C;}
.act.a-red{background:#FEF2F2;border-color:#FECACA;} .act.a-red .ai{background:var(--red);} .act.a-red b,.act.a-red small{color:#B91C1C;}
.act.a-purple{background:#F5F3FF;border-color:#DDD6FE;} .act.a-purple .ai{background:var(--purple);} .act.a-purple b,.act.a-purple small{color:#6D28D9;}
.act.a-blue{background:#EFF6FF;border-color:#BFDBFE;} .act.a-blue .ai{background:var(--blue);} .act.a-blue b,.act.a-blue small{color:#1D4ED8;}
.act:hover{filter:brightness(.98);}

/* ---------- Panels ---------- */
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px;}
.panel>h2,.panel .ph h2{font-size:15px;font-weight:700;margin:0 0 14px;display:flex;align-items:center;gap:8px;}
.panel .ph{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-16px -18px 14px;padding:12px 18px;border-bottom:1px solid var(--line);}
.panel .ph h2{margin:0;}
.panel .ph .btn{font-size:12.5px;padding:3px 10px;}
.panel.t-orange{border-top:3px solid var(--orange);} .panel.t-teal{border-top:3px solid var(--teal);}
.panel.t-purple{border-top:3px solid var(--purple);} .panel.t-blue{border-top:3px solid var(--blue);}
.snap{border-radius:10px;border:1px solid;padding:14px 16px;height:100%;}
.snap .sl{font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;}
.snap .sv{font-size:22px;font-weight:800;margin:4px 0;}
.snap small{display:block;color:#4B5563;font-size:12.5px;}
.snap.s-green{background:#F0FDF4;border-color:#BBF7D0;} .snap.s-green .sl,.snap.s-green .sv{color:#15803D;}
.snap.s-blue{background:#EFF6FF;border-color:#BFDBFE;} .snap.s-blue .sl,.snap.s-blue .sv{color:#1D4ED8;}
.snap.s-amber{background:#FFFBEB;border-color:#FDE68A;} .snap.s-amber .sl,.snap.s-amber .sv{color:#B45309;}
.snap.s-red{background:#FEF2F2;border-color:#FECACA;} .snap.s-red .sl,.snap.s-red .sv{color:#B91C1C;}
.mini-l{font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);}
.mini-v{font-size:24px;font-weight:800;}
.loc{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px;padding:8px 0;}
.loc .bar{height:8px;background:#EEF1F6;border-radius:4px;overflow:hidden;} .loc .bar i{display:block;height:100%;border-radius:4px;}
.loc .lv{text-align:right;font-weight:700;} .loc .lv small{display:block;font-weight:400;color:var(--muted);font-size:12px;}

/* old .stat cards on other pages */
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;height:100%;}
.stat .lbl{font-size:12.5px;color:var(--muted);font-weight:600;}
.stat .num{font-size:22px;font-weight:800;margin-top:2px;}
.stat.warn{border-left:4px solid var(--amber);}

.table{--bs-table-bg:transparent;}
.table thead th{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;border-bottom-width:1px;white-space:nowrap;}
.table td{vertical-align:middle;}
.num-r{text-align:right;white-space:nowrap;}
.dr,.table .dr{color:#B91C1C;} .cr,.table .cr{color:#15803D;}
.muted{color:var(--muted);}
.nav-pills .nav-link.active{background:var(--blue)!important;}

/* ---------- Billing ---------- */
.bill-line{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;background:#FAFBFD;}
.bill-line .form-control{padding-left:.5rem;padding-right:.5rem;}
.bill-line .lbl-s{font-size:11px;color:var(--muted);margin-bottom:2px;}
.bill-total{position:sticky;bottom:0;background:#fff;border-top:3px solid var(--blue);padding:12px 18px;margin:0 -18px -16px;border-radius:0 0 12px 12px;}
.bill-total .big{font-size:26px;font-weight:800;}
.quick a{display:block;text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 8px;text-decoration:none;color:var(--ink);font-weight:700;}
.quick a i{display:block;font-size:26px;color:var(--blue);margin-bottom:6px;}
@media (max-width:575px){.bill-total .btn{width:100%;}}

@media print{
  .side,.topbar,.no-print,.btn{display:none!important;}
  .main{margin:0!important;} body{background:#fff;} .content{padding:0;} .panel{border:none;padding:0;}
}
.mini-v{font-size:clamp(16px,1.35vw,22px);white-space:nowrap;}
.side .brand b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ===== List page components (Sales list style) ===== */
.page-head{background:#0F1733;color:#fff;border-radius:14px;padding:20px 26px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.page-head h2{font-size:22px;font-weight:800;margin:0;display:flex;align-items:center;gap:10px;}
.page-head .meta{color:#B9C2DD;font-size:13.5px;margin-top:6px;display:flex;gap:16px;flex-wrap:wrap;}
.page-head .meta b{color:#fff;}
.page-head .acts{margin-left:auto;display:flex;gap:8px;}
.page-head .btn-ghost{border:1px solid rgba(255,255,255,.8);color:#fff;background:transparent;}
.page-head .btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff;}
.kbox{border:2px solid;border-radius:12px;text-align:center;padding:12px 8px;background:#fff;height:100%;}
.kbox .v{font-size:22px;font-weight:800;line-height:1.2;}
.kbox .l{font-size:11.5px;letter-spacing:.8px;text-transform:uppercase;margin-top:2px;}
.kbox.b-blue{border-color:#93B4F7;background:#F5F8FF;color:#1D4ED8;} .kbox.b-green{border-color:#86D9A4;background:#F3FCF6;color:#15803D;}
.kbox.b-teal{border-color:#7CD3C8;background:#F1FBF9;color:#0F766E;} .kbox.b-red{border-color:#F3A3A3;background:#FFF6F6;color:#B91C1C;}
.kbox.b-amber{border-color:#F6C453;background:#FFFBEF;color:#B45309;}
.filters{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin:14px 0;}
.filters .form-control,.filters .form-select{height:38px;}
.qr{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.qr a{border:1px solid #CBD2DE;border-radius:6px;padding:5px 10px;color:#4B5563;text-decoration:none;font-size:14px;background:#fff;}
.qr a.on{background:var(--blue);border-color:var(--blue);color:#fff;}
.dcard{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.dcard .dh{background:#1C2233;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:700;}
.dcard .dh .pill{background:#3A4157;border-radius:6px;padding:3px 9px;font-size:12px;}
.dtable{margin:0;}
.dtable thead th{background:#1C2233;color:#C6CCDA;border:0;padding:10px 12px;font-size:11.5px;}
.dtable thead th.paid{color:#4ADE80;}
.dtable td{padding:10px 12px;border-color:#EEF0F5;}
.dtable tbody tr:hover td{background:#F8FAFD;}
.dtable tfoot th{background:#F8FAFC;font-size:13.5px;padding:10px 12px;}
.mtag{display:inline-block;font-size:11.5px;font-weight:700;border-radius:5px;padding:2px 7px;}
.mtag.cash{background:#DCFCE7;color:#15803D;} .mtag.cheque{background:#EDE9FE;color:#6D28D9;} .mtag.credit{background:#FEE2E2;color:#B91C1C;} .mtag.mixed{background:#FEF3C7;color:#B45309;}
.ttag{font-size:11.5px;font-weight:700;border-radius:5px;padding:2px 7px;background:#E0F2FE;color:#0369A1;} .ttag.store{background:#F1F5F9;color:#475569;}
.empty{text-align:center;color:var(--muted);padding:40px 10px;}
.act-btn{width:30px;height:30px;border-radius:7px;border:1px solid var(--line);display:inline-grid;place-items:center;color:#374151;background:#fff;text-decoration:none;}
.act-btn:hover{background:#EFF6FF;color:var(--blue);border-color:#BFDBFE;}
@media print{.page-head,.filters,.qr{display:none!important;} .kbox{border-width:1px;} .dtable thead th,.dcard .dh{background:#fff!important;color:#000!important;} .act-col{display:none;}}
.kbox.b-purple{border-color:#C4B5FD;background:#F8F5FF;color:#6D28D9;}
a.kbox:hover{filter:brightness(.97);}
.fcard{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:16px;overflow:hidden;}
.fcard .fh{padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700;display:flex;align-items:center;gap:8px;background:#FAFBFD;}
.fcard .fb{padding:16px;}
.fcard .form-label{font-size:13px;font-weight:600;color:#374151;margin-bottom:4px;}
.seg{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.seg a{border:1px solid #CBD2DE;border-radius:8px;padding:6px 12px;color:#4B5563;text-decoration:none;font-weight:600;font-size:13.5px;background:#fff;}
.seg a.on{background:var(--blue);border-color:var(--blue);color:#fff;}
.seg a .n{display:inline-block;margin-left:6px;font-size:11px;background:rgba(0,0,0,.08);border-radius:10px;padding:0 7px;}
.seg a.on .n{background:rgba(255,255,255,.25);}
.aging-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:#EEF1F6;min-width:120px;}
.aging-bar i{display:block;height:100%;}
.ag0{background:#22C55E}.ag1{background:#F59E0B}.ag2{background:#F97316}.ag3{background:#DC2626}
.sum-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--line);}
.chart-box{position:relative;height:280px;}
/* stock location cards */
.loc-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;height:100%;display:flex;flex-direction:column;gap:8px;border-top:4px solid var(--c,#2563EB);}
.loc-card .lc-h{display:flex;align-items:flex-start;gap:10px;}
.loc-card .lc-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:19px;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);flex:0 0 40px;}
.loc-card .lc-n{font-weight:800;font-size:15px;line-height:1.2;} .loc-card .lc-s{font-size:12.5px;color:var(--muted);}
.loc-card .lc-v{display:flex;justify-content:space-between;font-size:13px;} .loc-card .lc-v b{font-size:17px;}
.loc-card .lc-a{display:flex;gap:6px;margin-top:auto;flex-wrap:wrap;}
.loc-card .lc-a .btn{font-size:12.5px;padding:4px 9px;}
.loc-card.off{opacity:.6;}
.t-sales{--c:#2563EB}.t-distributor{--c:#7C3AED}.t-van{--c:#0D9488}.t-depot{--c:#EA580C}.t-main{--c:#0F1733}
.dtable.tight th,.dtable.tight td{padding:8px 6px;}

.side .logo.has-img{background:#fff;padding:3px;overflow:hidden;} .side .logo img{width:100%;height:100%;object-fit:contain;}
.bill-logo{max-height:56px;max-width:180px;object-fit:contain;display:block;margin:0 auto 6px;}
