@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Outfit:wght@300;400;500;600;700&display=swap');
:root{
  --bg:#F6F7F4; --surface:#FFFFFF; --surface-2:#FBFBF9; --border:#E8E9E4; --border-2:#F0F1EC;
  --ink:#1A2421; --ink-soft:#4A5550; --ink-mute:#8B948F;
  --accent:#0E9B6E; --accent-deep:#0A7D58; --accent-soft:#E6F5EF; --accent-glow:rgba(14,155,110,0.18);
  --ok:#16A34A; --warn:#D97706; --danger:#DC2626; --ok-soft:#E7F6EC; --warn-soft:#FCF3E6; --danger-soft:#FCEAEA;
  --sh-sm:0 1px 2px rgba(26,36,33,0.04),0 1px 3px rgba(26,36,33,0.06);
  --sh-md:0 2px 8px rgba(26,36,33,0.05),0 8px 24px rgba(26,36,33,0.06);
  --sh-lg:0 8px 32px rgba(26,36,33,0.10),0 2px 8px rgba(26,36,33,0.05);
  --radius:16px; --radius-sm:10px; --sidebar-w:256px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5;}
h1,h2,h3,h4{font-family:'Sora',sans-serif;font-weight:700;letter-spacing:-0.02em;color:var(--ink);}
a{color:inherit;text-decoration:none;}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(circle at 12% 8%,rgba(14,155,110,0.05),transparent 38%),radial-gradient(circle at 88% 92%,rgba(14,155,110,0.04),transparent 42%);pointer-events:none;z-index:0;}
.app{display:flex;min-height:100vh;position:relative;z-index:1;}
.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);padding:18px 14px;position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:50;overflow-y:auto;overflow-x:hidden;transition:transform 0.32s cubic-bezier(0.4,0,0.2,1);scrollbar-width:thin;scrollbar-color:var(--border-2) transparent;}
.sidebar::-webkit-scrollbar{width:6px;}
.sidebar::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px;}
.sidebar::-webkit-scrollbar-track{background:transparent;}
.brand{display:flex;align-items:center;gap:11px;padding:4px 10px 26px;}
.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--accent),var(--accent-deep));display:grid;place-items:center;box-shadow:0 4px 14px var(--accent-glow);flex-shrink:0;}
.brand-mark svg{width:21px;height:21px;}
.brand-name{font-family:'Sora';font-weight:800;font-size:18px;letter-spacing:-0.03em;}
.brand-name span{color:var(--accent);}
.nav-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink-mute);padding:0 12px;margin:12px 0 5px;}
.nav-item{display:flex;align-items:center;gap:11px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--ink-soft);font-weight:500;font-size:14px;margin-bottom:2px;transition:all 0.18s;position:relative;}
.nav-item svg{width:19px;height:19px;flex-shrink:0;opacity:0.8;}
.nav-item:hover{background:var(--surface-2);color:var(--ink);}
.nav-item.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600;}
.nav-item.active svg{opacity:1;}
.nav-item.active::before{content:'';position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:4px;height:22px;border-radius:0 4px 4px 0;background:var(--accent);}
.sidebar-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--border-2);}
.main{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-width:0;}
.topbar{height:68px;background:rgba(255,255,255,0.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 28px;position:sticky;top:0;z-index:40;}
.topbar h1{font-size:20px;}
.topbar-spacer{flex:1;}
.hamburger{display:none;width:40px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;align-items:center;justify-content:center;}
.hamburger svg{width:20px;height:20px;}
.content{padding:28px;max-width:1320px;width:100%;}
.credit-pills{display:flex;gap:8px;flex-wrap:wrap;}
.credit-pill{display:flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;font-weight:500;}
.credit-pill .dot{width:7px;height:7px;border-radius:50%;}
.credit-pill .dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);}
.credit-pill .dot.low{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft);}
.credit-pill b{color:var(--ink);font-weight:700;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--sh-sm);}
.card-pad{padding:22px;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px;}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--sh-sm);transition:transform 0.2s,box-shadow 0.2s;position:relative;overflow:hidden;}
.stat:hover{transform:translateY(-3px);box-shadow:var(--sh-md);}
.stat-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;}
.stat-ico svg{width:21px;height:21px;}
.stat-ico.green{background:var(--accent-soft);color:var(--accent-deep);}
.stat-ico.blue{background:#E8EFFB;color:#2563EB;}
.stat-ico.amber{background:var(--warn-soft);color:var(--warn);}
.stat-ico.violet{background:#F0EBFB;color:#7C3AED;}
.stat-val{font-family:'Sora';font-size:30px;font-weight:800;letter-spacing:-0.03em;line-height:1;}
.stat-label{font-size:13.5px;color:var(--ink-mute);margin-top:7px;font-weight:500;}
.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.sec-head h2{font-size:17px;}
.sec-head .sub{font-size:13px;color:var(--ink-mute);}
.tbl-wrap{overflow-x:auto;border-radius:var(--radius);}
table{width:100%;border-collapse:collapse;}
thead th{text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-mute);padding:13px 18px;border-bottom:1px solid var(--border);background:var(--surface-2);}
tbody td{padding:15px 18px;font-size:14px;border-bottom:1px solid var(--border-2);color:var(--ink-soft);}
tbody tr:last-child td{border-bottom:none;}
tbody tr{transition:background 0.15s;}
tbody tr:hover{background:var(--surface-2);}
td b,td strong{color:var(--ink);font-weight:600;}
.mono{font-family:'SF Mono',ui-monospace,monospace;font-size:13px;}
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;}
.badge.ok{background:var(--ok-soft);color:var(--ok);}
.badge.warn{background:var(--warn-soft);color:var(--warn);}
.badge.danger{background:var(--danger-soft);color:var(--danger);}
.badge.mute{background:var(--surface-2);color:var(--ink-mute);border:1px solid var(--border);}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;font-family:'Outfit';font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all 0.18s;white-space:nowrap;}
.btn svg{width:16px;height:16px;}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 10px var(--accent-glow);}
.btn-primary:hover{background:var(--accent-deep);transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-glow);}
.btn-ghost{background:var(--surface);color:var(--ink-soft);border:1px solid var(--border);}
.btn-ghost:hover{background:var(--surface-2);color:var(--ink);border-color:var(--ink-mute);}
.btn-sm{padding:6px 12px;font-size:13px;}
.panel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--sh-sm);overflow:hidden;}
.panel-card-head{padding:20px 22px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--border-2);}
.panel-card-title{font-family:'Sora';font-weight:700;font-size:16px;}
.panel-card-url{font-size:12.5px;color:var(--ink-mute);margin-top:3px;word-break:break-all;}
.panel-card-body{padding:18px 22px;}
.panel-meta{display:flex;gap:18px;margin-bottom:16px;flex-wrap:wrap;}
.panel-meta-item .k{font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-mute);font-weight:600;}
.panel-meta-item .v{font-family:'Sora';font-weight:700;font-size:22px;margin-top:2px;}
.panel-meta-item .v.low{color:var(--danger);}
.field-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.field-row label{font-size:12.5px;color:var(--ink-mute);font-weight:600;width:84px;flex-shrink:0;}
.field-row input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:9px;font-family:'Outfit';font-size:13.5px;color:var(--ink);background:var(--surface-2);transition:all 0.15s;min-width:0;}
.field-row input:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-glow);}
.modal-bg{position:fixed;inset:0;background:rgba(26,36,33,0.4);backdrop-filter:blur(3px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px;}
.modal-bg.show{display:flex;}
.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--sh-lg);width:100%;max-width:480px;padding:26px;}
.modal h3{font-size:18px;margin-bottom:6px;}
.modal .modal-sub{font-size:13.5px;color:var(--ink-mute);margin-bottom:18px;}
.modal textarea{width:100%;min-height:130px;padding:12px;border:1px solid var(--border);border-radius:10px;font-family:'SF Mono',monospace;font-size:12.5px;resize:vertical;background:var(--surface-2);}
.modal textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;}
.toast{position:fixed;bottom:24px;right:24px;z-index:200;background:var(--ink);color:#fff;padding:13px 20px;border-radius:12px;font-size:14px;font-weight:500;box-shadow:var(--sh-lg);transform:translateY(80px);opacity:0;transition:all 0.32s cubic-bezier(0.4,0,0.2,1);}
.toast.show{transform:translateY(0);opacity:1;}
.toast.ok{background:var(--accent-deep);}
.toast.err{background:var(--danger);}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;z-index:1;}
.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--sh-lg);padding:38px 34px;}
.login-card .brand{justify-content:center;padding-bottom:8px;}
.login-card h2{text-align:center;font-size:21px;margin-bottom:4px;}
.login-card .login-sub{text-align:center;font-size:14px;color:var(--ink-mute);margin-bottom:26px;}
.login-field{margin-bottom:14px;}
.login-field label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;}
.login-field input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:11px;font-family:'Outfit';font-size:15px;background:var(--surface-2);transition:all 0.15s;}
.login-field input:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-glow);}
.login-btn{width:100%;justify-content:center;margin-top:8px;padding:13px;font-size:15px;}
.login-err{background:var(--danger-soft);color:var(--danger);padding:11px 14px;border-radius:10px;font-size:13.5px;font-weight:500;margin-bottom:16px;text-align:center;}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
.animate{opacity:0;animation:fadeUp 0.5s cubic-bezier(0.16,1,0.3,1) forwards;}
.animate:nth-child(1){animation-delay:.04s}.animate:nth-child(2){animation-delay:.09s}
.animate:nth-child(3){animation-delay:.14s}.animate:nth-child(4){animation-delay:.19s}
.animate:nth-child(5){animation-delay:.24s}.animate:nth-child(6){animation-delay:.29s}
.overlay{display:none;position:fixed;inset:0;background:rgba(26,36,33,0.35);z-index:45;}
.overlay.show{display:block;}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr);}.panel-grid{grid-template-columns:1fr;}}
@media(max-width:768px){.sidebar{transform:translateX(-100%);box-shadow:var(--sh-lg);}.sidebar.open{transform:translateX(0);}.main{margin-left:0;}.hamburger{display:flex;}.content{padding:18px;}.topbar{padding:0 16px;}.credit-pills{display:none;}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;}.stat{padding:16px;}.stat-val{font-size:24px;}.topbar h1{font-size:17px;}}
@media(max-width:440px){.stat-grid{grid-template-columns:1fr;}}

/* ── Dashboard cards (matches theme) ── */
.dash-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px;}
.dcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--sh-sm);padding:18px;display:flex;flex-direction:column;gap:4px;}
.dcard-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:18px;margin-bottom:6px;}
.dcard-label{font-size:13px;color:var(--ink-mute);font-weight:500;}
.dcard-val{font-size:24px;font-weight:700;font-family:'Sora',sans-serif;color:var(--ink);letter-spacing:-0.02em;}
.dcard-sub{font-size:12.5px;color:var(--ink-mute);}
.ic-blue{background:#EAF1FB;color:#2563EB;}
.ic-purple{background:#F0EBFB;color:#6D28D9;}
.ic-teal{background:var(--accent-soft);color:var(--accent-deep);}
.ic-amber{background:#FBF1E0;color:#B45309;}
.ic-green{background:var(--accent-soft);color:var(--accent-deep);}
.ic-pink{background:#FBE9F1;color:#BE185D;}
.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px;}
.qa-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);font-weight:600;font-size:14px;text-decoration:none;color:var(--ink-soft);transition:all .18s;}
.qa-btn:hover{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent-soft);}
.dash-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;}
.dbox{padding:20px;}
.dbox h3{margin:0 0 14px;font-size:15px;}
.dbox-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border-2);gap:10px;}
.dbox-row:last-child{border-bottom:none;}
.dbox-amt{font-weight:700;color:var(--accent-deep);white-space:nowrap;font-size:14px;}
.dbox-qty{font-weight:600;color:#B45309;white-space:nowrap;font-size:13px;}
.dbox-qty.zero{color:#DC2626;}
.dbox-sold{font-weight:600;color:#6D28D9;white-space:nowrap;font-size:13px;}
.sm{font-size:12px;}.muted{color:var(--ink-mute);}

/* ── Orders action menu + badges ── */
.row-menu{display:inline-block;position:relative;}
.menu-pop{display:none;position:absolute;right:0;top:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 20px rgba(0,0,0,.12);z-index:50;min-width:150px;overflow:hidden;}
.menu-pop.show{display:block;}
.menu-pop a{display:block;padding:10px 14px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;}
.menu-pop a:hover{background:var(--surface-2);}
.menu-pop a.danger{color:#DC2626;}
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:600;}
.badge.ok{background:var(--accent-soft);color:var(--accent-deep);}
.badge.err{background:#FBE9E9;color:#DC2626;}
.badge.mute{background:var(--surface-2);color:var(--ink-mute);}

/* ── Generate Bills cards ── */
.bill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;}
.bill-card{padding:20px;}
.bill-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.bill-avatar{width:46px;height:46px;border-radius:12px;background:var(--accent-soft);color:var(--accent-deep);display:grid;place-items:center;font-weight:700;font-size:18px;font-family:'Sora',sans-serif;flex-shrink:0;}
.bill-name{font-weight:700;font-size:16px;font-family:'Sora',sans-serif;color:var(--ink);}
.bill-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.bill-stat{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:12px;}
.bill-stat-ic{font-size:16px;margin-bottom:4px;}
.bill-stat-val{font-size:18px;font-weight:700;font-family:'Sora',sans-serif;color:var(--ink);letter-spacing:-0.02em;}
.bill-actions{display:flex;flex-wrap:wrap;gap:8px;}
.bill-actions .btn{flex:1;min-width:calc(50% - 4px);justify-content:center;}

/* ── Categories ── */
.cat-list{display:flex;flex-direction:column;gap:10px;}
.cat-row{display:flex;align-items:center;gap:14px;padding:14px 16px;}
.cat-row.cat-hidden{opacity:.55;}
.cat-icon{width:44px;height:44px;border-radius:11px;background:var(--surface-2);display:grid;place-items:center;font-size:22px;flex-shrink:0;}
.cat-main{flex:1;min-width:0;}
.cat-name{font-weight:700;font-family:'Sora',sans-serif;font-size:15px;color:var(--ink);}
.cat-actions{display:flex;gap:6px;flex-wrap:wrap;}
.badge-muted{background:var(--surface-2);color:var(--muted);font-size:11px;padding:2px 8px;border-radius:6px;font-weight:600;}

/* ── Top-up badges ── */
.badge{font-size:11px;padding:3px 9px;border-radius:6px;font-weight:600;text-transform:capitalize;}
.badge-green{background:#E1F5EE;color:#0F6E56;}

/* ═══════════════════════════════════════════════════════════
   PREMIUM MULTI-COLOR UPGRADE
   ═══════════════════════════════════════════════════════════ */
:root{
  --bg:#F7F8FC;
  --c-indigo:#6366F1; --c-indigo-soft:#EEF0FE;
  --c-emerald:#10B981; --c-emerald-soft:#E7F8F1;
  --c-amber:#F59E0B; --c-amber-soft:#FEF4E2;
  --c-rose:#F43F5E; --c-rose-soft:#FEEAEE;
  --c-sky:#0EA5E9; --c-sky-soft:#E5F4FD;
  --c-violet:#8B5CF6; --c-violet-soft:#F1EBFE;
  --c-pink:#EC4899; --c-pink-soft:#FCE9F3;
}
/* Vibrant ambient background */
body::before{
  background:
    radial-gradient(circle at 8% 6%, rgba(99,102,241,0.07), transparent 36%),
    radial-gradient(circle at 92% 10%, rgba(236,72,153,0.05), transparent 40%),
    radial-gradient(circle at 50% 100%, rgba(16,185,129,0.05), transparent 45%) !important;
}
/* Brand mark: vibrant gradient */
.brand-mark{ background:linear-gradient(135deg,#6366F1,#8B5CF6 55%,#EC4899) !important; box-shadow:0 6px 18px rgba(99,102,241,0.35) !important; }
.brand-name span{ background:linear-gradient(135deg,#6366F1,#EC4899); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* Active nav: indigo accent */
.nav-item.active{ background:var(--c-indigo-soft) !important; color:#4F46E5 !important; }
.nav-item.active::before{ background:linear-gradient(180deg,#6366F1,#8B5CF6) !important; }
.nav-label{ color:#9aa0c0; }

/* Cards: lift + soft premium shadow */
.card{ box-shadow:0 1px 2px rgba(16,24,64,0.04), 0 6px 20px rgba(16,24,64,0.05) !important; border-color:#EDEFF7 !important; transition:transform 0.2s, box-shadow 0.2s; }

/* Stat tiles: colored top accent bar + vibrant icons */
.stat::after{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#6366F1,#8B5CF6); }
.stat:nth-child(2)::after{ background:linear-gradient(90deg,#10B981,#0EA5E9); }
.stat:nth-child(3)::after{ background:linear-gradient(90deg,#F59E0B,#EC4899); }
.stat:nth-child(4)::after{ background:linear-gradient(90deg,#8B5CF6,#EC4899); }
.stat-ico.green{ background:var(--c-emerald-soft) !important; color:var(--c-emerald) !important; }
.stat-ico.blue{ background:var(--c-sky-soft) !important; color:var(--c-sky) !important; }
.stat-ico.amber{ background:var(--c-amber-soft) !important; color:var(--c-amber) !important; }
.stat-ico.violet{ background:var(--c-violet-soft) !important; color:var(--c-violet) !important; }
.stat-val{ background:linear-gradient(135deg,#1A2421,#4F46E5); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* Buttons: vibrant primary gradient */
.btn-primary, .btn:not(.btn-ghost):not(.btn-sm){ background:linear-gradient(135deg,#6366F1,#8B5CF6) !important; color:#fff !important; border:none !important; box-shadow:0 4px 12px rgba(99,102,241,0.28); transition:transform 0.15s, box-shadow 0.15s; }
.btn-primary:hover, .btn:not(.btn-ghost):not(.btn-sm):hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(99,102,241,0.4); }
.btn-sm:not(.btn-ghost){ background:linear-gradient(135deg,#6366F1,#8B5CF6); color:#fff; border:none; }
.btn-ghost{ transition:background 0.15s,border-color 0.15s; }
.btn-ghost:hover{ border-color:#c7cbf0; background:var(--c-indigo-soft); }

/* Badges: vibrant */
.badge.ok{ background:var(--c-emerald-soft) !important; color:#059669 !important; }
.badge.mute{ background:#EEF0F6 !important; color:#6B7280 !important; }
.badge .dot{ background:currentColor; }

/* Table header tint */
thead th{ background:linear-gradient(180deg,#FAFBFF,#F4F6FC) !important; color:#7c83a8 !important; }
tbody tr:hover{ background:#FAFAFF !important; }

/* Topbar: subtle gradient underline */
.topbar{ background:rgba(255,255,255,0.9) !important; border-bottom:1px solid #ECEEF7 !important; }
.topbar h1{ background:linear-gradient(135deg,#1A2421,#4F46E5); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* ═══════════════════════════════════════════════════════════
   PREMIUM LAYOUT & DEPTH OVERHAUL
   ═══════════════════════════════════════════════════════════ */

/* Page header — used on every page, was undefined */
.page-head{ margin-bottom:26px; padding-bottom:0; }
.page-head h1{ font-size:27px; font-weight:800; letter-spacing:-0.03em; line-height:1.1; }
.page-head h1 + p, .page-head .sub{ color:var(--ink-mute); font-size:14px; margin-top:6px; }

/* Content breathing room + entrance */
.content{ animation:pageIn 0.4s cubic-bezier(0.16,1,0.3,1); }
@keyframes pageIn{ from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:translateY(0);} }

/* ── Premium cards: depth + hover lift + crisp border ── */
.card, .dcard, .stat, .panel-card{
  border:1px solid #ECEEF6 !important;
  border-radius:18px !important;
  box-shadow:0 1px 2px rgba(20,28,60,0.04), 0 8px 24px -6px rgba(20,28,60,0.08) !important;
  transition:transform 0.22s cubic-bezier(0.16,1,0.3,1), box-shadow 0.22s !important;
}
.dcard:hover, .stat:hover, .bill-card:hover, .panel-card:hover{
  transform:translateY(-4px);
  box-shadow:0 4px 8px rgba(20,28,60,0.05), 0 18px 40px -10px rgba(20,28,60,0.16) !important;
}

/* ── Premium stat/dash tiles ── */
.dash-cards{ gap:18px !important; margin-bottom:28px !important; }
.dcard{ padding:22px !important; position:relative; overflow:hidden; }
.dcard::after{ content:''; position:absolute; top:0; left:0; right:0; height:3px; opacity:0.9; }
.dash-cards .dcard:nth-child(1)::after{ background:linear-gradient(90deg,#6366F1,#8B5CF6); }
.dash-cards .dcard:nth-child(2)::after{ background:linear-gradient(90deg,#10B981,#0EA5E9); }
.dash-cards .dcard:nth-child(3)::after{ background:linear-gradient(90deg,#F59E0B,#EC4899); }
.dash-cards .dcard:nth-child(4)::after{ background:linear-gradient(90deg,#8B5CF6,#EC4899); }
.dcard-ic{ width:44px !important; height:44px !important; border-radius:13px !important; font-size:20px !important; box-shadow:0 4px 12px -2px rgba(20,28,60,0.12); }
.dcard-val{ font-size:28px !important; font-weight:800 !important; margin-top:2px; }
.dcard-label{ font-size:12px !important; text-transform:uppercase; letter-spacing:0.05em; font-weight:600 !important; color:#9aa0c0 !important; }

/* Vibrant icon chips */
.ic-blue{ background:linear-gradient(135deg,#E5F4FD,#D7EBFB) !important; color:#0284C7 !important; }
.ic-purple{ background:linear-gradient(135deg,#F1EBFE,#EBE3FD) !important; color:#7C3AED !important; }
.ic-teal{ background:linear-gradient(135deg,#E7F8F1,#D9F4E8) !important; color:#059669 !important; }
.ic-amber{ background:linear-gradient(135deg,#FEF4E2,#FDECCB) !important; color:#D97706 !important; }
.ic-green{ background:linear-gradient(135deg,#E7F8F1,#D9F4E8) !important; color:#059669 !important; }
.ic-pink{ background:linear-gradient(135deg,#FCE9F3,#FBDCEC) !important; color:#DB2777 !important; }

/* ── Premium card padding default ── */
.card-pad, .dbox{ padding:24px !important; }

/* ── Section / card headings ── */
.dbox h3, .card h3{ font-size:16px; font-weight:700; letter-spacing:-0.01em; }

/* ── Quick action buttons ── */
.qa-btn{ border-radius:12px !important; padding:12px 18px !important; box-shadow:0 1px 2px rgba(20,28,60,0.04); transition:all 0.18s; }
.qa-btn:hover{ background:linear-gradient(135deg,#EEF0FE,#F1EBFE) !important; color:#4F46E5 !important; border-color:#DDE0F8 !important; transform:translateY(-2px); box-shadow:0 6px 16px -4px rgba(99,102,241,0.25); }

/* ── Bill cards: premium ── */
.bill-grid{ grid-template-columns:repeat(auto-fill,minmax(330px,1fr)) !important; gap:18px !important; }
.bill-card{ padding:22px !important; }
.bill-avatar{ background:linear-gradient(135deg,#6366F1,#8B5CF6) !important; color:#fff !important; box-shadow:0 4px 12px -2px rgba(99,102,241,0.4); }
.bill-stat{ background:linear-gradient(135deg,#FAFBFF,#F4F6FC) !important; border-color:#ECEEF6 !important; border-radius:12px !important; }
.bill-actions .btn{ border-radius:10px !important; }

/* ── Search bars / inputs premium ── */
input[type=text], input[type=number], input[type=datetime-local], textarea, select{ transition:border-color 0.15s, box-shadow 0.15s; }
input[type=text]:focus, input[type=number]:focus, input[type=datetime-local]:focus, textarea:focus, select:focus{ outline:none; border-color:#8B5CF6 !important; box-shadow:0 0 0 3.5px rgba(139,92,246,0.14) !important; }

/* ── Tables in premium wrapper ── */
.card table thead th{ font-size:11px; letter-spacing:0.06em; padding:13px 14px; }
.card table tbody td{ padding:13px 14px; }

/* ── Buttons: refined ── */
.btn{ border-radius:11px; font-weight:600; letter-spacing:-0.01em; }
.btn-sm{ border-radius:9px; }

/* ── Badges: pill polish ── */
.badge{ padding:4px 11px; border-radius:999px; font-weight:600; letter-spacing:0.01em; }

/* ── Cat rows premium ── */
.cat-row{ border-radius:14px !important; transition:transform 0.18s, box-shadow 0.18s; }
.cat-row:hover{ transform:translateX(3px); box-shadow:0 6px 18px -6px rgba(20,28,60,0.12) !important; }
.cat-icon{ background:linear-gradient(135deg,#EEF0FE,#F1EBFE) !important; }

/* ── Scrollbar polish ── */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:#D8DCEA; border-radius:6px; border:2px solid transparent; background-clip:content-box; }
::-webkit-scrollbar-thumb:hover{ background:#C2C7DC; background-clip:content-box; }

/* ═══════════════════════════════════════════════════════════
   PREMIUM SECTION BOXES (Recent Activity / Low Stock / Top Selling)
   ═══════════════════════════════════════════════════════════ */
/* Make dbox a flush container so the header band reaches edges */
.dbox{ padding:0 !important; overflow:hidden; }
.dbox h3{
  margin:0 !important;
  padding:16px 22px !important;
  font-size:15px !important;
  display:flex; align-items:center; gap:9px;
  border-bottom:1px solid #EEF0F6;
  background:linear-gradient(135deg,#EEF0FE,#F1EBFE);
  color:#4F46E5;
}
/* Per-box header colors (1=indigo, 2=amber/rose, 3=emerald) */
.dash-boxes .dbox:nth-child(1) h3{ background:linear-gradient(135deg,#EEF0FE,#E8E3FD); color:#4F46E5; }
.dash-boxes .dbox:nth-child(2) h3{ background:linear-gradient(135deg,#FEF4E2,#FDE7E9); color:#D97706; }
.dash-boxes .dbox:nth-child(3) h3{ background:linear-gradient(135deg,#E7F8F1,#E5F4FD); color:#059669; }
/* Rows get inner padding back */
.dbox .dbox-row{ padding:13px 22px !important; margin:0; border-bottom:1px solid #F2F4FA !important; transition:background 0.15s; }
.dbox .dbox-row:hover{ background:#FAFAFF; }
.dbox-row b{ font-weight:600; font-size:14px; }
/* Value pills — colored chips instead of plain text */
.dbox-amt{ background:#E7F8F1; color:#059669 !important; padding:4px 11px; border-radius:999px; font-size:13px !important; }
.dbox-qty{ background:#FEF4E2; color:#D97706 !important; padding:4px 11px; border-radius:999px; font-size:12.5px !important; }
.dbox-qty.zero{ background:#FEEAEE; color:#E11D48 !important; }
.dbox-sold{ background:#F1EBFE; color:#7C3AED !important; padding:4px 11px; border-radius:999px; font-size:12.5px !important; }
/* The grid: clean 3-per-row on desktop, responsive down */
.dash-boxes{ gap:18px !important; }
@media(min-width:1000px){ .dash-boxes{ grid-template-columns:repeat(3,1fr) !important; } }
@media(min-width:600px) and (max-width:999px){ .dash-boxes{ grid-template-columns:repeat(2,1fr) !important; } }
@media(max-width:599px){ .dash-boxes{ grid-template-columns:1fr !important; } }


/* ═══════════════════════════════════════════════════════════
   UNIVERSAL PREMIUM CARD HEADERS + GRIDS (all pages)
   ═══════════════════════════════════════════════════════════ */
/* Cards with a leading h3: give the heading a shaded pill-accent (safe, keeps padding) */
.card h3{
  position:relative;
  padding-left:13px;
  margin-bottom:16px;
}
.card h3::before{
  content:'';
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:4px; height:18px; border-radius:3px;
  background:linear-gradient(180deg,#6366F1,#8B5CF6);
}
/* Vary the accent bar color across cards on a page for vibrancy */
.content .card:nth-of-type(3n+1) h3::before{ background:linear-gradient(180deg,#6366F1,#8B5CF6); }
.content .card:nth-of-type(3n+2) h3::before{ background:linear-gradient(180deg,#10B981,#0EA5E9); }
.content .card:nth-of-type(3n+3) h3::before{ background:linear-gradient(180deg,#F59E0B,#EC4899); }
/* dbox h3 already has full band — remove the bar there to avoid double */
.dbox h3{ padding-left:22px !important; }
.dbox h3::before{ display:none !important; }

/* Universal responsive 3-col grid helper */
.grid-3{ display:grid; gap:18px; grid-template-columns:repeat(3,1fr); }
@media(max-width:999px){ .grid-3{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:599px){ .grid-3{ grid-template-columns:1fr; } }

/* Make any inline-styled repeat(auto-fit...) grids breathe consistently */
[style*="repeat(auto-fit"], [style*="repeat(auto-fill"]{ gap:18px !important; }

/* Premium stat tiles used on OTP/Reports/WhatsApp (flex cards) */
.card[style*="text-align:center"]{ position:relative; overflow:hidden; }
.card[style*="text-align:center"]::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,#6366F1,#8B5CF6);
}

/* Responsive: tables scroll on small screens */
@media(max-width:768px){
  .card table{ font-size:12.5px; }
  .page-head h1{ font-size:22px; }
}

/* ── Reports premium stat cards (3 per row) ── */
.rpt-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:22px; }
.rpt-card{ background:var(--surface); border:1px solid #ECEEF6; border-radius:18px; padding:22px; display:flex; align-items:center; gap:16px; box-shadow:0 1px 2px rgba(20,28,60,0.04), 0 8px 24px -6px rgba(20,28,60,0.08); transition:transform 0.22s, box-shadow 0.22s; position:relative; overflow:hidden; }
.rpt-card::after{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#6366F1,#8B5CF6,#EC4899); }
.rpt-card:hover{ transform:translateY(-4px); box-shadow:0 4px 8px rgba(20,28,60,0.05), 0 18px 40px -10px rgba(20,28,60,0.16); }
.rpt-ic{ width:52px; height:52px; border-radius:15px; display:grid; place-items:center; font-size:24px; flex-shrink:0; box-shadow:0 4px 12px -2px rgba(20,28,60,0.12); }
.rpt-meta{ min-width:0; }
.rpt-label{ font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em; font-weight:600; color:#9aa0c0; }
.rpt-val{ font-size:25px; font-weight:800; font-family:'Sora',sans-serif; letter-spacing:-0.03em; line-height:1.15; margin:2px 0; background:linear-gradient(135deg,#1A2421,#4F46E5); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.rpt-sub{ font-size:12.5px; color:var(--ink-mute); }
@media(max-width:999px){ .rpt-cards{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:599px){ .rpt-cards{ grid-template-columns:1fr; } }

/* ── Report trend badges ── */
.trend{ display:inline-block; font-size:11px; font-weight:700; padding:1px 7px; border-radius:999px; margin-left:4px; }
.trend.up{ background:#E7F8F1; color:#059669; }
.trend.down{ background:#FEEAEE; color:#E11D48; }
.trend.flat{ background:#EEF0F6; color:#9aa0c0; }

/* ═══════════════════════════════════════════════════════════
   UNIFY .dcard → premium .rpt-card style (all pages consistent)
   ═══════════════════════════════════════════════════════════ */
.dash-cards{ grid-template-columns:repeat(3,1fr) !important; gap:18px !important; }
@media(max-width:999px){ .dash-cards{ grid-template-columns:repeat(2,1fr) !important; } }
@media(max-width:599px){ .dash-cards{ grid-template-columns:1fr !important; } }

.dcard{
  flex-direction:row !important;
  align-items:center !important;
  gap:16px !important;
  padding:22px !important;
}
.dcard::after{ background:linear-gradient(90deg,#6366F1,#8B5CF6,#EC4899) !important; height:3px !important; }
/* Re-color the top accent per position with full palette */
.dash-cards .dcard:nth-child(1)::after{ background:linear-gradient(90deg,#0284C7,#0EA5E9) !important; }
.dash-cards .dcard:nth-child(2)::after{ background:linear-gradient(90deg,#7C3AED,#8B5CF6) !important; }
.dash-cards .dcard:nth-child(3)::after{ background:linear-gradient(90deg,#059669,#10B981) !important; }
.dash-cards .dcard:nth-child(4)::after{ background:linear-gradient(90deg,#D97706,#F59E0B) !important; }
.dash-cards .dcard:nth-child(5)::after{ background:linear-gradient(90deg,#059669,#0EA5E9) !important; }
.dash-cards .dcard:nth-child(6)::after{ background:linear-gradient(90deg,#DB2777,#EC4899) !important; }

.dcard-ic{
  width:52px !important; height:52px !important;
  border-radius:15px !important; font-size:24px !important;
  margin-bottom:0 !important; flex-shrink:0 !important;
  box-shadow:0 4px 12px -2px rgba(20,28,60,0.12);
}
/* Wrap the text content (label+val+sub) — they're siblings, so use a flex trick */
.dcard{ position:relative; overflow:hidden; }
.dcard-label{ font-size:11.5px !important; text-transform:uppercase; letter-spacing:0.05em; font-weight:600 !important; color:#9aa0c0 !important; order:2; }
.dcard-val{ font-size:25px !important; font-weight:800 !important; order:3; background:linear-gradient(135deg,#1A2421,#4F46E5); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; line-height:1.15; }
.dcard-sub{ font-size:12.5px !important; color:var(--ink-mute) !important; order:4; }
/* icon is order:1, stays left; text stacks to its right via a wrapper */
.dcard-ic{ order:1; }
/* Make the non-icon children group vertically beside the icon */
.dcard{ display:flex; }
.dcard > :not(.dcard-ic){ margin:0; }
.dcard > .dcard-label, .dcard > .dcard-val, .dcard > .dcard-sub{ width:100%; }
/* Use a flex column for text by wrapping icon + a column — since markup is flat, use grid */
.dcard{ display:grid !important; grid-template-columns:52px 1fr !important; grid-template-rows:auto auto auto !important; align-items:center !important; column-gap:16px !important; row-gap:1px !important; }
.dcard-ic{ grid-row:1 / 4; grid-column:1; }
.dcard-label{ grid-column:2; grid-row:1; }
.dcard-val{ grid-column:2; grid-row:2; }
.dcard-sub{ grid-column:2; grid-row:3; }

/* ── Customers: Total card with type breakdown ── */
.dcard.cust-total{ grid-template-rows:auto auto auto auto !important; }
.dcard.cust-total .dcard-ic{ grid-row:1 / 3 !important; }
.cust-breakdown{ grid-column:1 / 3; grid-row:4; display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; padding-top:12px; border-top:1px solid #F0F1F8; }
.cust-pill{ font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:999px; color:#4b5563; background:#F4F6FC; display:inline-flex; align-items:center; gap:4px; }
.cust-pill b{ font-weight:800; }
.cb-explore{ background:#FEF4E2; color:#B45309; }
.cb-instant{ background:#E5F4FD; color:#0284C7; }
.cb-wallet{ background:#E7F8F1; color:#059669; }
.cb-vip{ background:#F1EBFE; color:#7C3AED; }

/* ── Orders: split cards (two sub-rows) ── */
.dcard.ord-split{ grid-template-rows:auto auto !important; align-items:start !important; }
.dcard.ord-split .dcard-ic{ grid-row:1 / 3 !important; }
.dcard.ord-split .dcard-label{ grid-row:1; }
.ord-rows{ grid-column:2; grid-row:2; display:flex; flex-direction:column; gap:7px; margin-top:6px; width:100%; }
.ord-srow{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:13px; padding:6px 10px; border-radius:9px; background:#F4F6FC; }
.ord-srow span{ color:#4b5563; font-weight:600; }
.ord-srow span.ok-t{ color:#059669; }
.ord-srow span.warn-t{ color:#D97706; }
.ord-srow b{ font-family:'Sora',sans-serif; font-weight:800; color:var(--ink); white-space:nowrap; }
.ord-srow b small{ font-weight:600; color:var(--ink-mute); font-size:11px; }

/* ── Topup verdict badges ── */
.vbadge{ display:inline-block; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.vbadge.vd-ok{ background:#E7F8F1; color:#059669; }
.vbadge.vd-warn{ background:#FEF4E2; color:#D97706; }
.vbadge.vd-bad{ background:#FEEAEE; color:#E11D48; }

/* ── Events page ── */
.ev-mini{ display:flex; flex-direction:column; gap:1px; padding:7px 10px; border-radius:9px; background:#F4F6FC; margin-bottom:5px; }
.ev-mini b{ font-size:13px; }
.ev-card{ display:flex; flex-direction:column; gap:14px; }
.ev-card .cat-main{ flex:1; }
.ev-card .cat-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.ev-card .cat-actions .btn{ flex:1; min-width:calc(50% - 4px); justify-content:center; }

/* ── Categories premium cards ── */
.cat-card{ display:flex; flex-direction:column; gap:14px; padding:20px !important; }
.cat-card-head{ display:flex; align-items:center; gap:14px; }
.cat-card .cat-main{ flex:1; min-width:0; }
.cat-card .cat-actions{ display:flex; gap:6px; flex-wrap:wrap; }
.cat-card .cat-actions .btn{ flex:1; min-width:calc(33.33% - 6px); justify-content:center; }
.cat-card.cat-hidden{ opacity:.6; }

/* ── IPTV panel premium additions (additive — doesn't touch existing panel logic) ── */
.panel-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
@media (max-width:1100px){ .panel-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:720px){ .panel-grid{ grid-template-columns:1fr; } }
.top-badge{ display:inline-block; font-size:10.5px; font-weight:800; padding:2px 8px; border-radius:999px; background:linear-gradient(135deg,#F59E0B,#EC4899); color:#fff; vertical-align:middle; margin-left:6px; letter-spacing:.02em; }
.panel-rev{ display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.panel-rev span{ font-size:12px; font-weight:700; padding:4px 10px; border-radius:8px; }
.panel-rev .pr-orders{ background:#EEF2FF; color:#4F46E5; }
.panel-rev .pr-amt{ background:#E7F8F1; color:#059669; }

/* ── Vendors premium grid ── */
.vendor-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
@media (max-width:1100px){ .vendor-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:720px){ .vendor-grid{ grid-template-columns:1fr; } }
.vcard{ background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:18px; box-shadow:0 2px 10px rgba(30,30,60,.05); transition:transform .15s, box-shadow .15s; position:relative; overflow:hidden; }
.vcard::before{ content:''; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,#6366F1,#8B5CF6); }
.vcard:nth-child(3n+2)::before{ background:linear-gradient(90deg,#0EA5E9,#10B981); }
.vcard:nth-child(3n)::before{ background:linear-gradient(90deg,#F59E0B,#EC4899); }
.vcard:hover{ transform:translateY(-3px); box-shadow:0 8px 24px rgba(30,30,60,.12); }
.vcard-top{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:8px; }
.vname{ font-weight:700; font-size:15px; }
.vscore{ font-size:13px; font-weight:800; padding:3px 11px; border-radius:999px; }
.vscore.sc-good{ background:#E7F8F1; color:#059669; }
.vscore.sc-mid{ background:#FEF4E2; color:#D97706; }
.vscore.sc-low{ background:#FEEAEE; color:#E11D48; }
.vmeta{ font-size:12.5px; color:var(--ink-mute); margin-bottom:10px; }
.vstats{ display:flex; gap:10px; flex-wrap:wrap; padding:10px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-bottom:10px; }
.vstats span{ font-size:12.5px; font-weight:600; }
.vproducts{ font-size:12px; color:var(--ink-soft); margin-bottom:12px; min-height:18px; }
.vactions{ display:flex; gap:5px; flex-wrap:wrap; }
.vactions .btn{ flex:1; min-width:calc(33% - 4px); justify-content:center; font-size:12px; }
.vbtn-del{ color:#E11D48 !important; }
.badge-blue{ background:#EEF2FF; color:#4F46E5; }

/* ── Premium section headers (reusable) ── */
.prem-section{ padding:22px !important; }
.sec-title{ display:flex; align-items:center; gap:12px; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--border); }
.sec-ic{ width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:19px; flex-shrink:0; }
.sec-title h3{ font-size:17px; font-weight:700; }
.prem-section .card h3::before{ display:none; }

/* ── Safety banner ── */
.safety-banner{ display:flex; align-items:flex-start; gap:13px; background:linear-gradient(135deg,#FFFBEB,#FEF3C7); border:1px solid #FCD34D; border-radius:14px; padding:15px 18px; margin-bottom:20px; font-size:13px; color:#92400E; line-height:1.5; }
.safety-ic{ font-size:22px; flex-shrink:0; }

/* ── Marketing history table polish ── */
.prem-section table thead tr{ background:var(--surface-2); }
.prem-section table th{ font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-mute); font-weight:700; }
.prem-section table tbody tr{ transition:background .12s; }
.prem-section table tbody tr:hover{ background:var(--surface-2); }

/* ── Payment method premium cards ── */
.pay-card{ display:flex; flex-direction:column; gap:14px; padding:20px !important; }
.pay-head{ display:flex; align-items:flex-start; gap:13px; }
.pay-card .cat-main{ flex:1; min-width:0; }
.pay-acct{ font-family:'SF Mono',monospace; font-size:14px; font-weight:700; color:var(--c-indigo); background:#EEF2FF; padding:6px 11px; border-radius:9px; margin-top:7px; display:inline-block; letter-spacing:.02em; }
.pay-card .cat-actions{ display:flex; gap:8px; }
.pay-card .cat-actions .btn{ flex:1; justify-content:center; }

/* ── Alignment page ── */
.align-tabs{ display:flex; gap:8px; margin:20px 0 16px; }
.align-tab{ padding:10px 20px; border:1px solid var(--border); background:var(--surface); border-radius:11px; font-weight:600; font-size:13.5px; cursor:pointer; transition:all .15s; color:var(--ink-soft); }
.align-tab.active{ background:linear-gradient(135deg,#6366F1,#8B5CF6); color:#fff; border-color:transparent; box-shadow:0 4px 14px rgba(99,102,241,.3); }
.align-list{ display:flex; flex-direction:column; gap:8px; }
.align-row{ display:flex; align-items:center; gap:14px; padding:12px 14px; background:var(--surface-2); border:1px solid var(--border); border-radius:12px; transition:all .15s; }
.align-row:hover{ border-color:var(--c-indigo); box-shadow:0 2px 10px rgba(99,102,241,.1); }
.align-pos{ width:30px; height:30px; border-radius:8px; background:linear-gradient(135deg,#6366F1,#8B5CF6); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; flex-shrink:0; }
.align-icon{ font-size:22px; flex-shrink:0; }
.align-info{ flex:1; min-width:0; }
.align-name{ font-weight:600; font-size:14px; }
.align-meta{ font-size:12px; color:var(--ink-mute); margin-top:2px; }
.align-arrows{ display:flex; flex-direction:column; gap:3px; }
.align-arrow{ width:32px; height:24px; border:1px solid var(--border); background:var(--surface); border-radius:7px; cursor:pointer; font-size:11px; color:var(--c-indigo); transition:all .12s; display:flex; align-items:center; justify-content:center; }
.align-arrow:hover:not(:disabled){ background:var(--c-indigo); color:#fff; }
.align-arrow:disabled{ opacity:.3; cursor:not-allowed; }

/* ── Alignment v2: layout + bot preview + drag ── */
.align-layout{ display:grid; grid-template-columns:360px 1fr; gap:22px; align-items:start; }
@media (max-width:960px){ .align-layout{ grid-template-columns:1fr; } }
.bot-preview{ background:#0B141A; border-radius:16px; overflow:hidden; position:sticky; top:20px; box-shadow:0 8px 30px rgba(0,0,0,.2); }
.bot-pv-head{ background:#1F2C34; color:#E9EDEF; padding:13px 16px; font-size:13px; font-weight:600; display:flex; align-items:center; gap:8px; }
.bot-pv-dot{ width:9px; height:9px; border-radius:50%; background:#25D366; }
.bot-pv-body{ padding:16px; max-height:600px; overflow:auto; }
.bot-msg{ background:#005C4B; color:#E9EDEF; border-radius:12px; padding:14px; font-size:13px; line-height:1.6; }
.bot-msg-title{ font-weight:700; margin-bottom:10px; font-size:13.5px; }
.bot-pv-cat{ margin-bottom:10px; }
.bot-pv-catname{ font-weight:600; }
.bot-pv-prods{ padding:3px 0 0 16px; opacity:.85; font-size:12.5px; }
.bot-pv-prod{ padding:1px 0; }
.bot-pv-empty{ font-style:italic; opacity:.5; font-size:12px; }
.align-controls{ min-width:0; }
.align-group{ margin-bottom:18px; }
.align-group-head{ font-weight:700; font-size:14px; margin-bottom:8px; padding:8px 12px; background:linear-gradient(135deg,#EEF2FF,#F5F3FF); border-radius:10px; color:#4F46E5; }
.dragzone{ display:flex; flex-direction:column; gap:7px; min-height:20px; padding:4px; border-radius:10px; }
.align-row.draggable{ cursor:grab; }
.align-row.dragging{ opacity:.4; border:2px dashed var(--c-indigo); }
.drag-handle{ font-size:18px; color:var(--ink-mute); cursor:grab; flex-shrink:0; }

/* ── WhatsApp QR card states ── */
#qrCard #qrTarget{ display:flex; align-items:center; justify-content:center; min-height:240px; }
#qrCard #qrTarget img{ border-radius:12px; padding:12px; background:#fff; box-shadow:0 4px 16px rgba(0,0,0,.08); }
.qr-connected{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:30px 20px; }
.qr-check{ font-size:64px; line-height:1; animation:qrpop .4s ease; }
@keyframes qrpop{ 0%{ transform:scale(0); } 70%{ transform:scale(1.15); } 100%{ transform:scale(1); } }
.qr-conn-title{ font-size:20px; font-weight:800; color:#059669; }
.qr-conn-num{ font-size:15px; font-weight:600; color:var(--ink); font-family:'SF Mono',monospace; }
.qr-conn-badge{ margin-top:6px; font-size:12.5px; font-weight:700; color:#059669; background:#E7F8F1; padding:6px 14px; border-radius:999px; }

/* ════════ MOBILE RESPONSIVE FIXES (5 sections) ════════ */
@media(max-width:768px){
  /* Tables inside cards: allow horizontal scroll instead of clipping */
  .card{ overflow-x:auto !important; }
  .card > table{ min-width:540px; }
  /* but keep card padding-less tables flush */
  .card[style*="padding:0"]{ overflow-x:auto !important; }

  /* WhatsApp: status + QR cards stack */
  .content > div[style*="grid-template-columns:1fr 1fr"]{ grid-template-columns:1fr !important; }

  /* Alignment layout: sidebar + canvas stack */
  .align-layout{ grid-template-columns:1fr !important; }

  /* Stock auto-fit grid: smaller min so it fits phone */
  .content div[style*="minmax(180px"]{ grid-template-columns:repeat(auto-fit,minmax(130px,1fr)) !important; }

  /* Generic: any 2-col inline grid → 1 col */
  .content > div[style*="grid-template-columns:repeat(2"]{ grid-template-columns:1fr !important; }

  /* dash-cards always stack on small phones handled below */
}
@media(max-width:599px){
  .dash-cards{ grid-template-columns:1fr !important; }
}

/* ── Payments page ── */
.pay-flowtag{ display:inline-block; font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.pay-flowtag.f-order{ background:#EEF0FF; color:#4F46E5; }
.pay-flowtag.f-topup{ background:#E7F8F1; color:#059669; }
.pay-flowtag.f-bill{ background:#FEF4E2; color:#D97706; }
.pay-cust{ display:flex; align-items:center; gap:10px; }
.pay-av{ width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,#6D28D9,#9333EA); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; flex-shrink:0; }
.pay-cust-name{ font-weight:600; font-size:13.5px; line-height:1.2; }
.pay-cust-phone{ font-size:11.5px; color:var(--ink-mute); }
.pay-view{ display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; padding:5px 12px; border-radius:8px; background:var(--surface-2); color:var(--ink); border:1px solid var(--border); transition:all .12s; }
.pay-view:hover{ background:#EEF0FF; color:#4F46E5; border-color:#C7D0FF; }
.pay-reason{ font-size:11px; color:var(--ink-mute); display:block; margin-top:3px; max-width:220px; }
.pay-amt{ font-weight:600; }
.pay-amt-ocr{ color:var(--ink-mute); }
.pagination{ display:flex; align-items:center; justify-content:center; gap:6px; margin-top:20px; flex-wrap:wrap; }
.pagination a, .pagination span{ min-width:36px; height:36px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; border-radius:9px; font-size:13px; font-weight:600; border:1px solid var(--border); color:var(--ink); transition:all .12s; }
.pagination a:hover{ background:#EEF0FF; color:#4F46E5; border-color:#C7D0FF; }
.pagination .pg-active{ background:linear-gradient(135deg,#6D28D9,#9333EA); color:#fff; border-color:transparent; }
.pagination .pg-dis{ opacity:.4; pointer-events:none; }
.pay-tabs{ display:flex; gap:8px; margin-bottom:18px; flex-wrap:wrap; }
.pay-tab{ font-size:13px; font-weight:600; padding:8px 16px; border-radius:10px; border:1px solid var(--border); color:var(--ink-mute); background:var(--surface); transition:all .12s; }
.pay-tab:hover{ color:var(--ink); }
.pay-tab.active{ background:linear-gradient(135deg,#6D28D9,#9333EA); color:#fff; border-color:transparent; }

/* ── Product edit collapsible groups ── */
.ed-group{ border:1px solid var(--border); border-radius:10px; margin:10px 0; padding:0; background:var(--surface-2); overflow:hidden; }
.ed-group summary{ cursor:pointer; padding:12px 14px; font-weight:600; font-size:13.5px; list-style:none; user-select:none; display:flex; align-items:center; gap:8px; }
.ed-group summary::-webkit-details-marker{ display:none; }
.ed-group summary::after{ content:'▼'; margin-left:auto; font-size:10px; color:var(--ink-mute); transition:transform .15s; }
.ed-group[open] summary{ border-bottom:1px solid var(--border); }
.ed-group[open] summary::after{ transform:rotate(180deg); }
.ed-group > .login-field, .ed-group > .ed-subhead, .ed-group > p, .ed-group > button, .ed-group > #ed_fields_wrap{ margin-left:14px; margin-right:14px; }
.ed-group > .login-field:first-of-type{ margin-top:12px; }
.ed-group > .login-field:last-child{ margin-bottom:14px; }
.ed-subhead{ font-size:11px; font-weight:700; color:#B45309; letter-spacing:.04em; margin:14px 14px 6px; }

/* ── Customer tabs + bulk-action bar ── */
.cust-tabs{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.cust-tab{ padding:7px 16px; border:1px solid var(--border); border-radius:999px; font-size:13px; font-weight:600; color:var(--ink-mute); text-decoration:none; background:var(--surface-2); transition:all .12s; }
.cust-tab:hover{ border-color:var(--accent); color:var(--ink); }
.cust-tab.active{ background:var(--accent); color:#fff; border-color:var(--accent); }
.bulk-bar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 14px; margin-bottom:12px; background:var(--surface-2); border:1px solid var(--accent); border-radius:10px; font-size:13.5px; }
.bulk-sel{ padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:var(--surface); font-family:'Outfit'; font-size:13px; }

/* ── Login success message ── */
.login-ok{ background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0; border-radius:9px; padding:10px 12px; font-size:13px; margin-bottom:12px; }

/* ╔══════════════════════════════════════════════════════════════╗
   ║   MOBILE_RESPONSIVE_v1 — Comprehensive Multi-Device Polish   ║
   ║   Breakpoints: 1024 / 768 / 599 / 380                         ║
   ╚══════════════════════════════════════════════════════════════╝ */

/* ──── TABLET (≤1024px) ──── */
@media(max-width:1024px){
  .content{ padding:22px; }
  .stat-grid{ grid-template-columns:repeat(2,1fr); }
  .dash-cards{ grid-template-columns:repeat(2,1fr) !important; }
  .vp-hero-grid{ grid-template-columns:repeat(2,1fr); }
}

/* ──── PHONE (≤768px) — major collapse ──── */
@media(max-width:768px){
  /* Layout */
  .content{ padding:14px !important; max-width:100%; }
  .topbar{ padding:0 12px !important; height:60px; gap:10px; }
  .topbar h1{ font-size:16px !important; }
  .credit-pills{ display:none !important; }
  
  /* Sidebar adjustments */
  .sidebar{ width:84vw !important; max-width:300px; padding:14px 12px; }
  
  /* Page header */
  .page-head h1{ font-size:22px !important; }
  .page-head{ margin-bottom:18px; }
  
  /* Stats — compact 2-column */
  .stat-grid{ grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
  .stat{ padding:14px 12px !important; }
  .stat-val{ font-size:22px !important; }
  .stat-label{ font-size:11.5px !important; }
  .stat-ico{ width:36px; height:36px; margin-bottom:10px; }
  .stat-ico svg{ width:18px; height:18px; }
  
  /* Dashboard cards */
  .dash-cards{ grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
  .dcard{ padding:14px 12px !important; }
  .dcard-val{ font-size:21px !important; }
  .dcard-label{ font-size:10.5px !important; letter-spacing:.04em; }
  .dcard-ic{ width:36px !important; height:36px !important; font-size:16px !important; border-radius:10px !important; }
  
  /* Buttons — touch friendly */
  .btn{ min-height:42px; padding:10px 14px; font-size:13.5px; }
  .btn-sm{ min-height:36px; padding:7px 12px; font-size:12.5px; }
  
  /* Form inputs — prevent iOS zoom + larger tap */
  input[type=text], input[type=number], input[type=email], input[type=tel],
  input[type=password], input[type=search], select, textarea{
    font-size:16px !important; min-height:42px; padding:10px 12px;
    border-radius:10px; -webkit-appearance:none;
  }
  textarea{ min-height:80px; }
  
  /* Quick actions row */
  .quick-actions{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:8px !important; }
  .qa-btn{ font-size:12.5px !important; padding:11px 8px !important; text-align:center; }
  
  /* Tables — horizontal scroll + min-width safety */
  .tbl-wrap, .card{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table{ min-width:560px; }
  thead th{ padding:11px 12px !important; font-size:10.5px !important; }
  tbody td{ padding:11px 12px !important; font-size:13px !important; }
  
  /* Mobile-friendly table density */
  .compact-on-mobile table{ min-width:auto; }
  .compact-on-mobile thead{ display:none; }
  .compact-on-mobile tbody tr{ display:block; margin-bottom:10px; padding:12px;
    background:var(--surface); border:1px solid var(--border); border-radius:12px;
    box-shadow:var(--sh-sm); }
  .compact-on-mobile tbody td{ display:flex; justify-content:space-between;
    padding:6px 0 !important; border:none !important; font-size:13px !important; }
  .compact-on-mobile tbody td::before{ content:attr(data-label);
    font-weight:600; color:var(--ink-mute); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
  
  /* Hero/summary tiles (vendors page) */
  .vp-hero{ padding:18px 14px !important; border-radius:14px; }
  .vp-hero-grid{ grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
  .vp-stat-tile{ padding:11px 12px !important; }
  .vp-stat-value{ font-size:20px !important; }
  .vp-stat-label{ font-size:10px !important; }
  .vp-stat-icon{ font-size:18px !important; }
  
  /* Modals — full-screen on mobile */
  .modal-content, .vp-modal-content, .pay-modal-content{
    width:100% !important; max-width:100% !important; max-height:100vh !important;
    margin:0 !important; border-radius:14px 14px 0 0 !important;
    position:fixed; bottom:0; left:0; right:0; top:auto !important;
    animation:slideUp 0.25s ease;
  }
  @keyframes slideUp{ from{transform:translateY(100%);} to{transform:translateY(0);} }
  .modal{ align-items:flex-end !important; }
  
  /* Section headings */
  .sec-head h2, .sec-head h3{ font-size:15px !important; }
  .sec-head{ flex-wrap:wrap; gap:8px; }
  
  /* Pagination — compact */
  .pagination a, .pagination span{ min-width:32px !important; height:32px !important; font-size:12px !important; padding:0 6px !important; }
  
  /* Generic inline grids — collapse to 1 col */
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns:repeat(4"]{
    grid-template-columns:1fr !important;
  }
  [style*="grid-template-columns:1fr 1fr"]{ grid-template-columns:1fr !important; }
  
  /* Tabs — wrap and shrink */
  .pay-tabs, .cust-tabs{ gap:6px !important; }
  .pay-tab, .cust-tab{ padding:7px 12px !important; font-size:12px !important; }
  
  /* Customer rows / bulk bar */
  .bulk-bar{ flex-direction:column; align-items:stretch !important; gap:8px !important; }
  .bulk-bar > *{ width:100%; }
  
  /* Generate bills + topup-requests etc — make cards stack cleanly */
  .card-pad{ padding:16px !important; }
  .card{ border-radius:14px !important; }
}

/* ──── SMALL PHONE (≤599px) ──── */
@media(max-width:599px){
  /* 1-column for stats on tiniest screens */
  .stat-grid, .dash-cards{ grid-template-columns:1fr !important; }
  .vp-hero-grid{ grid-template-columns:1fr !important; }
  
  /* Even tighter padding */
  .content{ padding:12px !important; }
  .card-pad{ padding:14px !important; }
  
  /* Quick actions single column */
  .quick-actions{ grid-template-columns:1fr !important; }
  
  /* Hide non-essential subtitles to save space */
  .stat-label-sub, .dcard-sub{ display:none; }
  
  /* Page title smaller */
  .page-head h1{ font-size:19px !important; }
  
  /* Inline content with very long values — break safely */
  .mono{ word-break:break-all; }
}

/* ──── TINY PHONE (≤380px — iPhone SE 1st gen, etc) ──── */
@media(max-width:380px){
  .topbar h1{ font-size:14px !important; }
  .content{ padding:10px !important; }
  .btn{ font-size:13px; padding:9px 12px; }
  .stat-val{ font-size:20px !important; }
  .dcard-val{ font-size:19px !important; }
}

/* ──── TOUCH-DEVICE HOVER FIX (remove hover lift on touch) ──── */
@media(hover:none){
  .stat:hover, .dcard:hover, .card:hover, .bill-card:hover, .panel-card:hover{
    transform:none !important; box-shadow:var(--sh-sm) !important;
  }
  .btn:hover, .btn-primary:hover{ transform:none !important; }
}

/* ──── SAFE AREA INSETS (iPhone X+ notch) ──── */
@supports(padding:max(0px)){
  .content{ padding-left:max(14px, env(safe-area-inset-left)); padding-right:max(14px, env(safe-area-inset-right)); }
  .topbar{ padding-left:max(12px, env(safe-area-inset-left)); padding-right:max(12px, env(safe-area-inset-right)); }
  .sidebar{ padding-bottom:max(14px, env(safe-area-inset-bottom)); }
}

/* ──── BODY SCROLL LOCK WHEN SIDEBAR OPEN ──── */
body.nav-open{ overflow:hidden; }

/* ──── ACCESSIBILITY: focus rings visible ──── */
@media(max-width:768px){
  button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible{
    outline:2px solid var(--c-indigo); outline-offset:2px;
  }
}

/* ──── PRINT (bonus) ──── */
@media print{
  .sidebar, .topbar, .hamburger, .overlay{ display:none !important; }
  .main{ margin-left:0 !important; }
  .content{ padding:0 !important; }
}
/* MOBILE_RESPONSIVE_v1 END */

/* ╔══════════════════════════════════════════════════════════════╗
   ║   MOBILE_PAGE_FIXES_v1 — Per-page mobile polish              ║
   ╚══════════════════════════════════════════════════════════════╝ */

/* ── FIX A: HAMBURGER must always show on mobile, on EVERY page ── */
@media(max-width:768px){
  .hamburger{ display:flex !important; }
  .topbar{ z-index:50 !important; position:sticky !important; top:0 !important; }
  .sidebar{ z-index:60 !important; }
  .overlay{ z-index:55 !important; }
  
  /* Force any page custom <style> with overflow:hidden on .topbar/.content to not break things */
  .main{ overflow-x:hidden; }
}

/* ── FIX B: LEGACY ORDERS mobile polish ── */
@media(max-width:768px){
  .lo-hero{ padding:18px 16px !important; border-radius:14px !important; margin-bottom:14px !important; }
  .lo-hero h1{ font-size:20px !important; }
  .lo-hero p{ font-size:12px !important; }
  .lo-hero-actions{ gap:6px !important; margin-top:12px !important; }
  .lo-hero-btn{ padding:7px 12px !important; font-size:12px !important; flex:1; text-align:center; min-width:fit-content; }
  
  /* Stats grid: 2 columns on tablet, 1 on phone */
  .lo-stats{ grid-template-columns:repeat(2,1fr) !important; gap:8px !important; }
  .lo-stat{ padding:12px 14px !important; }
  .lo-stat-val{ font-size:20px !important; }
  .lo-stat-label{ font-size:9px !important; }
  
  /* Action bar — wrap and full-width buttons */
  .lo-actbar{ flex-direction:column; align-items:stretch !important; }
  .lo-actbar > *{ width:100%; text-align:center; }
  
  /* Filters: 1 column on mobile */
  .lo-filters{ grid-template-columns:1fr !important; gap:8px !important; padding:10px !important; }
  .lo-filters input, .lo-filters select{ padding:10px 12px !important; font-size:14px !important; }
  
  /* Table: horizontal scroll */
  .lo-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:12px; }
  .lo-table{ min-width:760px; font-size:12px !important; }
  .lo-table th, .lo-table td{ padding:10px 8px !important; white-space:nowrap; }
}

@media(max-width:599px){
  .lo-stats{ grid-template-columns:1fr !important; }
  .lo-hero h1{ font-size:18px !important; }
  .lo-hero{ padding:14px 14px !important; }
}

/* ── FIX C: PAYMENTS mobile polish ── */
@media(max-width:768px){
  .pay-hero{ padding:18px 16px !important; border-radius:14px !important; margin-bottom:14px !important; }
  .pay-hero-grid{ grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
  .pay-stat-tile{ padding:11px 12px !important; }
  .pay-stat-value{ font-size:19px !important; }
  .pay-stat-label{ font-size:10px !important; }
  .pay-stat-icon{ font-size:18px !important; }
  
  /* Filter tabs — scroll horizontally instead of wrapping */
  .pay-tabs{ flex-wrap:nowrap !important; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
  .pay-tab{ flex-shrink:0; padding:8px 14px !important; font-size:12.5px !important; }
  
  /* Payments table: horizontal scroll */
  .card .tbl-wrap{ overflow-x:auto !important; }
  
  /* Filter row */
  .pay-filters{ padding:12px !important; }
  
  /* Customer cell — name+phone+badge condensed */
  .pay-cust-name{ font-size:12.5px !important; }
  .pay-cust-phone{ font-size:10.5px !important; }
  .pay-av{ width:30px !important; height:30px !important; font-size:11px !important; }
  
  /* View button compact */
  .pay-view{ padding:5px 8px !important; font-size:11px !important; }
  .pay-flowtag{ font-size:10px !important; padding:2px 8px !important; }
}

@media(max-width:599px){
  .pay-hero-grid{ grid-template-columns:1fr !important; }
}

/* ── FIX D: PAYMENT TEST LAB — hamburger area + content scroll ── */
@media(max-width:768px){
  /* The .tlx-tabs has overflow-x:auto which is fine, but ensure topbar above */
  .tlx-tabs{ position:relative; z-index:1 !important; padding:4px !important; }
  .tlx-tab{ padding:8px 12px !important; font-size:12px !important; }
  .tlx-grid{ grid-template-columns:1fr !important; }
  .tlx-card{ padding:14px !important; }
  .tlx-out{ font-size:10px !important; max-height:240px !important; }
  .tlx-shots{ grid-template-columns:repeat(auto-fill,minmax(90px,1fr)) !important; }
}

/* ── FIX E: VENDORS page mobile polish ── */
@media(max-width:768px){
  .vp-hero{ padding:18px 16px !important; }
  .vp-hero-grid{ grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
  .vp-stat-tile{ padding:11px 12px !important; }
  .vp-stat-value{ font-size:19px !important; }
  .vp-stat-label{ font-size:10px !important; }
}

@media(max-width:599px){
  .vp-hero-grid{ grid-template-columns:1fr !important; }
}

/* ── FIX F: MARKETING page mobile polish ── */
@media(max-width:768px){
  .mkt-grid{ grid-template-columns:1fr !important; gap:14px !important; }
  .mkt-preview-col{ position:static !important; }
}

/* ── FIX G: GENERATE-BILLS, PRODUCTS, ORDERS catch-all polish ── */
@media(max-width:768px){
  /* Any generic .filters / .toolbar with grids */
  .filters, .toolbar, .filter-bar{ display:flex !important; flex-direction:column !important; gap:8px !important; }
  .filters > *, .toolbar > *{ width:100% !important; }
  
  /* Any card with internal padding shrink */
  .card-pad-lg{ padding:16px !important; }
  
  /* Tab rows scroll horizontally */
  .tabs, .nav-tabs, [class*="-tabs"]{ overflow-x:auto !important; -webkit-overflow-scrolling:touch; flex-wrap:nowrap !important; }
}
/* MOBILE_PAGE_FIXES_v1 END */

/* ╔══════════════════════════════════════════════════════════════╗
   ║   MOBILE_TABLE_SCROLL_FIX_v1                                  ║
   ╚══════════════════════════════════════════════════════════════╝ */

/* ── CRITICAL: Tables MUST scroll horizontally on mobile ── */
@media(max-width:768px){
  /* Override the overflow:hidden that's blocking scroll on legacy-orders */
  .lo-table-wrap{ 
    overflow:auto !important; 
    -webkit-overflow-scrolling:touch !important;
    border-radius:12px !important;
    max-width:100% !important;
  }
  .lo-table{ 
    min-width:760px !important; 
    width:max-content !important;
  }
  
  /* Payments tables in cards */
  .card{ overflow-x:auto !important; -webkit-overflow-scrolling:touch !important; }
  .card > table, .card table{ min-width:600px !important; width:max-content !important; }
  
  /* Any table inside .tbl-wrap */
  .tbl-wrap{ overflow:auto !important; -webkit-overflow-scrolling:touch !important; max-width:100% !important; }
  .tbl-wrap table{ min-width:600px !important; }
  
  /* Generic catch: ANY table directly in .content scrolls within a wrapping pattern */
  .content table{ display:block; max-width:100%; overflow-x:auto !important; -webkit-overflow-scrolling:touch !important; }
  
  /* Wait — the above breaks layout for tables already in wraps.
     Instead, wrap-aware: ONLY make raw tables scroll if NOT inside a wrap */
  .content > table, .content > .card > table{ display:block; }
  
  /* Force horizontal scroll affordance: visible scrollbar */
  .lo-table-wrap::-webkit-scrollbar, .tbl-wrap::-webkit-scrollbar, .card::-webkit-scrollbar{
    height:6px; background:transparent;
  }
  .lo-table-wrap::-webkit-scrollbar-thumb, .tbl-wrap::-webkit-scrollbar-thumb{
    background:rgba(99,102,241,0.4); border-radius:3px;
  }
}

/* ── PAYMENT TEST LAB — Sidebar must be tappable ── */
@media(max-width:768px){
  /* The .tlx-card and .tlx-tabs have NO z-index — sidebar should beat them */
  /* But to be safe, raise sidebar z-index even higher */
  .sidebar{ z-index:9999 !important; }
  .overlay{ z-index:9998 !important; }
  
  /* Ensure sidebar uses fixed positioning so transform actually moves it */
  .sidebar{ position:fixed !important; }
  
  /* And the overlay covers everything */
  .overlay.show{ display:block !important; position:fixed !important; inset:0 !important; }
  
  /* Hamburger must be tappable (above content) */
  .hamburger{ position:relative; z-index:51; }
}

/* ── FORCE: Remove .main overflow-x:hidden that might break sticky scroll ── */
@media(max-width:768px){
  .main{ overflow-x:visible !important; }
  body{ overflow-x:hidden; } /* move overflow control to body instead */
}
/* MOBILE_TABLE_SCROLL_FIX_v1 END */

/* ───── RETAIL_THEME_v2 — EMERALD identity for retail (reseller is indigo, retail is green) ───── */
body.retail-mode .nav-item.active{ background:#E6F5EF !important; color:#0A7D58 !important; }
body.retail-mode .nav-item.active::before{ background:linear-gradient(180deg,#10B981,#0EA5A4) !important; }
body.retail-mode .brand-mark{ background:linear-gradient(135deg,#10B981,#0A7D58) !important; box-shadow:0 4px 14px rgba(16,185,129,0.25) !important; }
body.retail-mode .brand-name span{ color:#10B981 !important; }
body.retail-mode .stat::after{ background:linear-gradient(90deg,#10B981,#0EA5A4) !important; }
body.retail-mode .stat-val{ background:linear-gradient(135deg,#1A2421,#0A7D58) !important; -webkit-background-clip:text !important; background-clip:text !important; -webkit-text-fill-color:transparent !important; }
body.retail-mode .btn-primary, body.retail-mode .btn:not(.btn-ghost):not(.btn-sm){ background:linear-gradient(135deg,#10B981,#0EA5A4) !important; box-shadow:0 4px 12px rgba(16,185,129,0.28) !important; }
body.retail-mode .btn-primary:hover, body.retail-mode .btn:not(.btn-ghost):not(.btn-sm):hover{ box-shadow:0 6px 18px rgba(16,185,129,0.4) !important; }
/* retail topbar tint + ribbon */
body.retail-mode .topbar{ background:linear-gradient(to right,rgba(230,245,239,0.9),rgba(255,255,255,0.82)) !important; }
body.retail-mode .topbar::after{ content:'RETAIL'; position:absolute; top:8px; right:24px; font-size:9px; font-weight:800; letter-spacing:0.12em; color:#0A7D58; background:#E6F5EF; padding:2px 8px; border-radius:6px; border:1px solid #A7F3D0; }

/* RETAIL_GRID_v1 — forced 2-column row (chart + pending) full width on desktop */
.dash-boxes-2{display:grid;grid-template-columns:1fr;gap:18px;}
@media(min-width:1000px){ .dash-boxes-2{ grid-template-columns:1fr 1fr; } }
