/* MJPOS Touch theme — Citymobile edition */
:root{
  --ink:#0E1A33; --ink-2:#18294D; --ink-3:#2A3D66;
  --surface:#F1F4F9; --card:#FFFFFF; --line:#DCE2EC; --text:#16213A; --muted:#66728A;
  --signal:#1F5EFF; --signal-soft:#E6EDFF;
  --charge:#12A150; --charge-soft:#E3F6EA;
  --amber:#C98A0B; --amber-soft:#FDF3DC;
  --red:#D93A3A; --red-soft:#FCE7E7;
  --purple:#7A4DD8; --purple-soft:#EFE8FC;
  --mode:var(--signal); --mode-soft:var(--signal-soft);
  --r-sm:6px; --r:10px; --r-lg:16px;
  --tap:48px;
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--surface);color:var(--text);font-size:15px;line-height:1.45;-webkit-tap-highlight-color:transparent}
a{color:var(--signal);text-decoration:none}
h1,h2,h3{margin:0 0 .5em;line-height:1.2;letter-spacing:-.01em}
h1{font-size:1.5rem} h2{font-size:1.2rem} h3{font-size:1.02rem}
.num,td.num,.money{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px}

/* ---------- Shell ---------- */
.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.side{background:var(--ink);color:#C9D3E8;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;color:#fff}
.brand-mark{width:36px;height:36px;border-radius:9px;background:var(--signal);display:grid;place-items:center;font-weight:800;font-size:15px}
.brand b{display:block;font-size:15px}.brand small{color:#8C9BBA;font-size:12px}
.nav{padding:6px 10px;display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:12px;color:#C9D3E8;padding:11px 12px;border-radius:var(--r);font-weight:500;min-height:44px}
.nav a i{font-size:18px;width:20px;text-align:center}
.nav a:hover{background:var(--ink-2);color:#fff}
.nav a.active{background:var(--signal);color:#fff}
.nav .sep{height:1px;background:var(--ink-3);margin:8px 6px}
.side-foot{margin-top:auto;padding:14px 18px;border-top:1px solid var(--ink-3);font-size:13px}
.side-foot a{color:#FF9C9C}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;padding:12px 22px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.topbar h1{margin:0;font-size:1.15rem;flex:1}
.menu-btn{display:none}
.content{padding:22px;width:100%}
.clock{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}

/* ---------- Building blocks ---------- */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-bottom:18px}
.panel-head{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}
.panel-head h2{margin:0}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px}
.stat span{color:var(--muted);font-size:13px}
.stat b{display:block;font-size:1.55rem;font-variant-numeric:tabular-nums;margin-top:4px}
.stat.hl{border-left:5px solid var(--signal)}
.stat.ok{border-left:5px solid var(--charge)}.stat.warn{border-left:5px solid var(--amber)}.stat.pu{border-left:5px solid var(--purple)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:var(--r);border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;touch-action:manipulation}
.btn:hover{border-color:#b9c3d6}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--signal);border-color:var(--signal);color:#fff}
.btn-ok{background:var(--charge);border-color:var(--charge);color:#fff}
.btn-danger{background:var(--red);border-color:var(--red);color:#fff}
.btn-ghost{background:transparent;border-color:transparent}
.btn-sm{min-height:36px;padding:0 12px;font-size:13.5px}
.btn[disabled]{opacity:.5;pointer-events:none}

.form{display:grid;gap:14px}
.field label{display:block;font-weight:600;font-size:13.5px;margin-bottom:6px}
.field small{color:var(--muted);font-size:12.5px}
input,select,textarea{width:100%;min-height:var(--tap);padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);font:inherit;background:#fff;color:var(--text)}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}
.check{display:flex;align-items:center;gap:10px;min-height:var(--tap)}
.check input{width:22px;min-height:22px;height:22px}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.filters input,.filters select{width:auto;min-width:160px;flex:1 1 160px}

.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:12.5px;color:var(--muted);font-weight:600;background:#F8FAFD}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#FAFBFE}
.muted{color:var(--muted)} .small{font-size:12.5px}
.mono{font-family:ui-monospace,Consolas,monospace;letter-spacing:.02em}

.tag{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.tag-ok{background:var(--charge-soft);color:#0B6E37}.tag-warn{background:var(--amber-soft);color:#8A5E05}
.tag-danger{background:var(--red-soft);color:#A12424}.tag-info{background:#E3F1FB;color:#155E8C}
.tag-primary{background:var(--signal-soft);color:#1742B8}.tag-purple{background:var(--purple-soft);color:#5A2FB5}
.tag-muted{background:#EDF0F5;color:#556179}

.alert{padding:12px 14px;border-radius:var(--r);margin-bottom:14px;font-weight:500}
.alert-ok{background:var(--charge-soft);color:#0B6E37}.alert-warn{background:var(--amber-soft);color:#7A5304}
.alert-danger{background:var(--red-soft);color:#9B1C1C}.alert-info{background:var(--signal-soft);color:#1742B8}
.empty{text-align:center;padding:50px 20px;color:var(--muted)}
.pager{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}

/* ---------- Modal (own implementation, no Bootstrap stacking issues) ---------- */
.modal{position:fixed;inset:0;background:rgba(14,26,51,.55);display:none;align-items:center;justify-content:center;z-index:1000;padding:16px}
.modal.open{display:flex}
.modal-box{background:#fff;border-radius:var(--r-lg);width:min(560px,100%);max-height:92vh;overflow:auto;padding:20px;animation:pop .14s ease-out}
.modal-box.wide{width:min(860px,100%)}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.modal-head h2{margin:0}
@keyframes pop{from{transform:scale(.97);opacity:.6}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.modal-box{animation:none}}

/* ---------- Login ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.login-art{background:var(--ink);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}
.login-art h1{font-size:2.6rem;line-height:1.05;max-width:12ch;letter-spacing:-.03em}
.login-art p{color:#9FB0D3;max-width:40ch}
.login-form{display:grid;place-items:center;padding:24px}
.login-form form{width:min(380px,100%)}

/* ---------- POS ---------- */
body.pos-mode .content{max-width:none;padding:14px}
.pos{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:14px;height:calc(100vh - 90px)}
.pos-left{display:flex;flex-direction:column;min-height:0;min-width:0}
.pos-search{display:flex;gap:10px;margin-bottom:10px}
.pos-search input{font-size:17px;min-height:54px}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:6px}
.chip{flex:none;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:#fff;font:inherit;font-weight:600;cursor:pointer}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
/* POS product tiles: fixed image area on top, same height for every card */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));grid-auto-rows:max-content;gap:12px;overflow-y:auto;min-height:0;flex:1;padding:2px 6px 12px 2px;align-content:start}
.tile{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0;text-align:left;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .08s}
.tile:hover{border-color:var(--mode);box-shadow:0 6px 18px rgba(14,26,51,.10)}
.tile:active{transform:scale(.98)}
.tile .t-img{position:relative;flex:none;display:flex;align-items:center;justify-content:center;aspect-ratio:16/11;background:linear-gradient(180deg,#f5f7fb,#eef1f6);border-bottom:1px solid var(--line);overflow:hidden}
.tile .t-img>i{font-size:38px;color:#b7c0cf}
.tile .t-img.has{background:#fff}.tile .t-img.has>i{display:none}
.tile .t-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:4px}
.tile .t-imei{position:absolute;top:8px;left:8px;font-size:10.5px;font-weight:800;letter-spacing:.04em;color:#fff;background:var(--purple,#7c3aed);padding:3px 7px;border-radius:999px;z-index:1}
.tile .t-body{display:flex;flex-direction:column;gap:3px;padding:10px 12px 12px;flex:1;min-height:0}
.tile .t-name{font-weight:700;font-size:13.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}
.tile .t-meta{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile .t-foot{margin-top:auto;padding-top:6px}
.tile .t-price{font-weight:800;font-size:15px;color:var(--mode);font-variant-numeric:tabular-nums;white-space:nowrap}
.tile .t-badge{position:absolute;top:8px;right:8px;z-index:1;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:999px;background:#e8f7ee;color:#15803d;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.tile .t-badge.low{background:#fff4e0;color:#b45309}
.tile .t-badge.out{background:#fdecec;color:#b91c1c}
.tile .t-badge.svc{background:#eef2ff;color:#4338ca}
.tile.out{opacity:.55}
.tile.out .t-img img{filter:grayscale(1)}

.pos-right{min-width:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);display:flex;flex-direction:column;min-height:0;border-top:6px solid var(--mode)}
.mode-switch{display:grid;grid-template-columns:1fr 1fr;margin:12px;background:var(--surface);border-radius:var(--r);padding:4px}
.mode-switch button{min-height:44px;border:0;background:transparent;border-radius:8px;font:inherit;font-weight:700;cursor:pointer;color:var(--muted)}
.mode-switch button.on{background:var(--mode);color:#fff}
body.wholesale{--mode:var(--purple);--mode-soft:var(--purple-soft)}
.cust-bar{display:flex;gap:8px;padding:0 12px 10px}
.cust-bar .btn{flex:1;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis}
.cart{flex:1;overflow-y:auto;border-top:1px solid var(--line)}
.cart-line{display:grid;grid-template-columns:1fr auto;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}
.cart-line .cl-name{font-weight:600;font-size:14px}
.cart-line .cl-sub{font-size:12px;color:var(--muted)}
.cart-line .cl-total{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.qty{display:flex;align-items:center;gap:4px}
.qty button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:18px;cursor:pointer}
.qty span{min-width:30px;text-align:center;font-weight:700}
.cart-empty{padding:40px 16px;text-align:center;color:var(--muted)}
.totals{padding:12px;border-top:1px solid var(--line);display:grid;gap:4px}
.totals div{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}
.totals .grand{font-size:1.6rem;font-weight:800;color:var(--ink);margin-top:4px}
.pay-row{display:grid;grid-template-columns:auto 1fr;gap:8px;padding:0 12px 12px}
.pay-btn{min-height:64px;font-size:1.15rem;background:var(--charge);border-color:var(--charge);color:#fff}

.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.keypad button{min-height:52px;font-size:1.3rem;font-weight:700;border-radius:var(--r);border:1px solid var(--line);background:#F8FAFD;cursor:pointer;font-family:inherit}
.keypad button:active{background:var(--signal-soft)}
.pay-display{font-size:2rem;font-weight:800;text-align:right;padding:10px 14px;border:2px solid var(--line);border-radius:var(--r);font-variant-numeric:tabular-nums;min-height:62px}
.pay-methods{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.pay-methods button{min-height:50px;border-radius:var(--r);border:1px solid var(--line);background:#fff;font:inherit;font-weight:700;cursor:pointer}
.pay-methods button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.quick-cash{display:flex;gap:8px;flex-wrap:wrap}
.pay-summary{display:flex;justify-content:space-between;padding:10px 0;font-size:1.05rem;font-variant-numeric:tabular-nums}

.serial-list{display:grid;gap:8px;max-height:55vh;overflow:auto}
.serial-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer;font:inherit;color:inherit}
.serial-list button>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.serial-list button>.tag{align-self:center;justify-self:end;line-height:1.4;padding:4px 10px;font-size:11.5px}
.serial-list button:hover{border-color:var(--mode)}

/* ---------- Repair tracker ---------- */
.steps{display:flex;gap:4px;overflow-x:auto;margin:6px 0 4px}
.steps span{flex:1;min-width:92px;padding:8px 6px;text-align:center;font-size:12px;font-weight:600;background:#EDF0F5;color:var(--muted);border-radius:6px}
.steps span.done{background:var(--charge-soft);color:#0B6E37}
.steps span.now{background:var(--signal);color:#fff}
.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;font-size:14px}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-weight:500}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{padding:8px 0 8px 16px;border-left:2px solid var(--line);position:relative;font-size:13.5px}
.timeline li::before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--signal)}

/* ---------- Responsive ---------- */
@media (max-width:1100px){.pos{grid-template-columns:1fr 360px}}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:900;transform:translateX(-100%);transition:transform .2s}
  body.nav-open .side{transform:none}
  .menu-btn{display:inline-flex}
  .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pos{grid-template-columns:minmax(0,1fr);height:auto}
  .tiles{max-height:62vh;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .tile .t-body{padding:8px 10px 10px}.tile .t-price{font-size:14px}
  .pos-right{min-height:70vh}
  .login{grid-template-columns:1fr}.login-art{display:none}
  .content{padding:14px}
}
@media (max-width:560px){.g2,.g3,.g4{grid-template-columns:1fr}.kv{grid-template-columns:1fr}.pay-methods{grid-template-columns:repeat(2,1fr)}}

/* ---------- 80mm receipt ---------- */
.receipt{width:76mm;margin:0 auto;font-family:"Courier New",monospace;font-size:12px;color:#000;background:#fff;padding:4mm 2mm}
.receipt h3{text-align:center;margin:0;font-size:15px}
.receipt .c{text-align:center}.receipt .r{text-align:right}
.receipt hr{border:0;border-top:1px dashed #000;margin:6px 0}
.receipt table{background:none}.receipt td,.receipt th{padding:2px 0;border:0;font-size:12px;background:none}
.receipt .big{font-size:15px;font-weight:bold}
.no-print{margin:16px auto;text-align:center}
@media print{
  .no-print,.side,.topbar{display:none!important}
  body{background:#fff}
  @page{size:80mm auto;margin:0}
}
a.chip{color:var(--text)} a.chip.on{color:#fff}
#custClear{flex:none;width:48px}
.chips{scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.bc{width:100%;height:100%;display:block}

/* =====================================================================
   MJPOS UI v2 — hero headers, KPI cards, dark table panels
   ===================================================================== */
body{background:#F3F5F9}
.content{padding:18px 16px}

/* Top bar: breadcrumb + bell + user chip */
.topbar{padding:10px 16px;gap:14px}
.crumbs{flex:1;font-size:14px;color:#6B7280;display:flex;gap:8px;align-items:center}
.crumbs a{color:var(--signal);text-decoration:underline}
.crumbs b{font-weight:500;color:#6B7280}
.tb-btn{position:relative;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--signal);color:var(--signal);border-radius:6px;background:#fff;font:inherit;font-size:13.5px;cursor:pointer}
.tb-bell{border-color:#F2A516;color:#C98A0B;width:34px;justify-content:center;padding:0}
.tb-bell .dot{position:absolute;top:-9px;right:-9px;background:#DC3545;color:#fff;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 6px}
.uchip{display:flex;align-items:center;gap:8px;font-weight:500;font-size:14px}
.uchip i{width:30px;height:30px;border-radius:50%;background:var(--signal);color:#fff;display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:700}

/* Hero header */
.hero{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:#fff;border-radius:14px;padding:22px 26px;margin-bottom:14px}
.hero h2{margin:0;font-size:1.3rem;font-weight:800;display:flex;align-items:center;gap:10px;color:#fff;letter-spacing:-.01em}
.hero-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:12.5px;color:rgba(255,255,255,.72)}
.hero-meta span{display:inline-flex;align-items:center;gap:6px}
.hero-meta span + span::before{content:"·";margin-right:8px;opacity:.6}
.hero-meta b{color:#fff}.hero-meta .hl{color:#FFD24A;font-weight:700}
.hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.hbtn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border:1px solid rgba(255,255,255,.85);border-radius:7px;color:#fff;background:transparent;font-weight:600;font-size:13.5px;cursor:pointer;font-family:inherit}
.hbtn:hover{background:rgba(255,255,255,.12)}
.hbtn-primary{background:#3B82F6;border-color:#3B82F6}.hbtn-primary:hover{background:#2F6FE0}
.hbtn-white{background:#fff;color:#1F2937;border-color:#fff}
.hero-navy{background:#0F172A}
.hero-blue{background:#0B2E8F}
.hero-orange{background:linear-gradient(90deg,#7A2E0E 0%,#B4530A 45%,#E27D12 100%)}
.hero-teal{background:linear-gradient(90deg,#0E4F57 0%,#127A74 55%,#16988B 100%)}
.hero-purple{background:linear-gradient(90deg,#2E1065 0%,#5B21B6 60%,#7C3AED 100%)}
.hero-green{background:linear-gradient(90deg,#064E3B 0%,#047857 60%,#10B981 100%)}
.hero-indigo{background:linear-gradient(90deg,#1E1B4B 0%,#3730A3 60%,#4F46E5 100%)}
.hero-slate{background:linear-gradient(90deg,#111827 0%,#374151 100%)}
.hero-red{background:linear-gradient(90deg,#7F1D1D 0%,#B91C1C 100%)}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:12px;margin-bottom:14px}
.kpi{border:2px solid;border-radius:10px;padding:12px 10px;text-align:center;display:block;color:inherit;text-decoration:none}
.kpi b{display:block;font-size:1.35rem;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}
.kpi span{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
a.kpi:hover{filter:brightness(.98)}
.kpi-blue{border-color:#3B82F6;background:#EFF5FF}.kpi-blue b{color:#2563EB}.kpi-blue span{color:#5B7FD6}
.kpi-green{border-color:#22A559;background:#EEFBF2}.kpi-green b{color:#15803D}.kpi-green span{color:#3E9A63}
.kpi-teal{border-color:#1BA7A0;background:#EDFBF9}.kpi-teal b{color:#0F766E}.kpi-teal span{color:#3A948D}
.kpi-red{border-color:#E5484D;background:#FFF1F1}.kpi-red b{color:#DC2626}.kpi-red span{color:#D55B5B}
.kpi-amber{border-color:#EAB308;background:#FFFBE6}.kpi-amber b{color:#C2780A}.kpi-amber span{color:#C08A1B}
.kpi-orange{border-color:#F97316;background:#FFF6EE}.kpi-orange b{color:#EA580C}.kpi-orange span{color:#E27A3E}
.kpi-purple{border-color:#8B5CF6;background:#F6F1FF}.kpi-purple b{color:#6D28D9}.kpi-purple span{color:#8663C9}
.kpi-slate{border-color:#D8DEE8;background:#FAFBFC}.kpi-slate b{color:#94A3B8}.kpi-slate span{color:#A3AEBF}

/* Alert chips (filter shortcuts) */
.achips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.achip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border-radius:5px;font-weight:600;font-size:14px;color:#fff}
.achip-red{background:#DC3545}.achip-amber{background:#FFC107;color:#1F2937}.achip-purple{background:#7C3AED}.achip-blue{background:#2563EB}.achip-green{background:#16A34A}

/* Filter bar */
.fbar{background:#fff;border:1px solid #E1E6EE;border-radius:8px;padding:10px 14px;margin-bottom:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fbar input,.fbar select{min-height:34px;height:34px;padding:4px 10px;border-radius:5px;border-color:#D0D7E2;font-size:14px;width:auto}
.fbar .grow{flex:1 1 180px;min-width:160px}
.fbar .isearch{display:flex;flex:1 1 200px;min-width:180px}
.fbar .isearch i{display:grid;place-items:center;width:34px;border:1px solid #D0D7E2;border-right:0;border-radius:5px 0 0 5px;color:#6B7280}
.fbar .isearch input{border-radius:0 5px 5px 0;flex:1;width:100%}
.fbtn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:5px;border:1px solid #6C757D;background:#6C757D;color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.fbtn-x{background:#fff;color:#6C757D;width:34px;justify-content:center;padding:0}
.fbtn-blue{background:var(--signal);border-color:var(--signal)}
.ranges{display:inline-flex;gap:4px;flex-wrap:wrap}
.rng{height:34px;display:inline-flex;align-items:center;padding:0 9px;border:1px solid #9CA3AF;border-radius:4px;color:#6B7280;font-size:14px}
.rng.on{background:var(--signal);border-color:var(--signal);color:#fff}
.fpills{display:inline-flex;gap:6px;flex-wrap:wrap}
.fp{height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border-radius:999px;border:1px solid;font-size:13px;font-weight:600;background:#fff}
.fp-all{border-color:#6B7280;color:#374151}.fp-all.on{background:#6B7280;color:#fff}
.fp-ok{border-color:#16A34A;color:#15803D}.fp-ok.on{background:#16A34A;color:#fff}
.fp-low{border-color:#EAB308;color:#B7791F}.fp-low.on{background:#EAB308;color:#fff}
.fp-out{border-color:#DC2626;color:#DC2626}.fp-out.on{background:#DC2626;color:#fff}
.fp-purple{border-color:#7C3AED;color:#6D28D9}.fp-purple.on{background:#7C3AED;color:#fff}

/* Dark table panel */
.tpanel{border-radius:10px;overflow:hidden;background:#fff;border:1px solid #E1E6EE;margin-bottom:16px}
.tpanel-head{background:#212529;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font-weight:700;font-size:13.5px}
.tpanel-head i{margin-right:6px}
.tbadge{background:#6C757D;color:#fff;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:5px}
.tpanel-body{overflow-x:auto}
.tpanel table{border:0}
.tpanel thead th{background:#212529;color:#9AA3AF;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:10px 14px;border-bottom:0;white-space:nowrap}
.tpanel tbody td{padding:13px 14px;border-bottom:1px solid #E9ECF1;font-size:13.5px}
.tpanel tbody tr:hover{background:#FAFBFD}
.tpanel .num{text-align:right}
.tpanel .ctr{text-align:center}
.tpanel-foot{padding:10px 16px;border-top:1px solid #E9ECF1}
.tpanel .empty{padding:40px}
.tlink{color:#0D6EFD;font-weight:700}
.t-sub{display:block;font-size:11px;color:#9AA3AF}
.t-code{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:#D63384}
.t-bc{font-size:11px;color:#9AA3AF}
.t-green{color:#198754}.t-red{color:#DC3545}.t-teal{color:#0AA2C0}.t-muted{color:#9AA3AF}
.picon{width:38px;height:38px;border-radius:9px;background:#FFF3C4;color:#D4A00D;display:grid;place-items:center;font-size:18px;flex:none}
.picon.ph{background:#EDE7FE;color:#7C3AED}.picon.pt{background:#E0F2FE;color:#0284C7}.picon.sv{background:#DCFCE7;color:#16A34A}
.prow{display:flex;gap:12px;align-items:center}
.prow b{font-weight:600;color:#111827}
.unit{display:inline-block;background:#EEF1F5;color:#6B7280;font-size:10.5px;padding:1px 6px;border-radius:4px;margin-top:3px}
.mpill{display:inline-block;font-size:11px;font-weight:700;padding:2px 7px;border-radius:5px;background:#FEF3C7;color:#92400E}
.mpill.lo{background:#FDE2E2;color:#B91C1C}.mpill.hi{background:#DCFCE7;color:#166534}
.sbar{width:60px;height:5px;border-radius:3px;background:#E5E7EB;margin:4px auto 2px;overflow:hidden}
.sbar i{display:block;height:100%;background:#22A559}
.sbar.low i{background:#EAB308}.sbar.out i{background:#DC2626}
.snum{font-weight:700;font-size:15px}
.snum.ok{color:#15803D}.snum.low{color:#C2780A}.snum.out{color:#DC2626}

.pill{display:inline-block;padding:3px 8px;border-radius:5px;font-size:11px;font-weight:700;color:#fff;white-space:nowrap}
.pill-green{background:#198754}.pill-red{background:#DC3545}.pill-amber{background:#FFC107;color:#1F2937}
.pill-blue{background:#0D6EFD}.pill-purple{background:#6F42C1}.pill-gray{background:#6C757D}.pill-teal{background:#0AA2C0}.pill-dark{background:#212529}
.opill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#FDECEC;color:#DC2626}
.opill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}

.act{display:inline-grid;place-items:center;width:32px;height:26px;border-radius:5px;border:1px solid;background:#fff;font-size:14px;margin:0 2px;cursor:pointer}
.act-blue{border-color:#0D6EFD;color:#0D6EFD}.act-blue:hover{background:#0D6EFD;color:#fff}
.act-red{border-color:#DC3545;color:#DC3545}.act-red:hover{background:#DC3545;color:#fff}
.act-dark{border-color:#343A40;color:#343A40}.act-dark:hover{background:#343A40;color:#fff}
.act-teal{border-color:#0DCAF0;color:#0AA2C0}.act-teal:hover{background:#0DCAF0;color:#fff}
.act-amber{border-color:#FFC107;color:#C98A0B}.act-amber:hover{background:#FFC107;color:#1F2937}
.act-green{border-color:#198754;color:#198754}.act-green:hover{background:#198754;color:#fff}
button.act{font:inherit;padding:0}

.pager{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap;margin:0}
.pg{min-width:34px;height:32px;display:inline-grid;place-items:center;padding:0 10px;border:1px solid #D0D7E2;border-radius:5px;color:#374151;font-size:13.5px;background:#fff}
.pg.on{background:var(--signal);border-color:var(--signal);color:#fff}

/* Cards for forms/details in the new style */
.card{background:#fff;border:1px solid #E1E6EE;border-radius:10px;margin-bottom:14px;overflow:hidden}
.card-head{padding:11px 16px;border-bottom:1px solid #E9ECF1;font-weight:700;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#F8FAFC}
.card-head i{margin-right:6px;color:var(--signal)}
.card-body{padding:16px}
.panel{border-radius:10px;border-color:#E1E6EE}

/* Dashboard greeting */
.greet h2{font-size:1.25rem}
.clock-live{font-variant-numeric:tabular-nums}

@media (max-width:1100px){.kpis{grid-template-columns:repeat(min(var(--cols),4),minmax(0,1fr))}}
@media (max-width:700px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:18px}.crumbs{display:none}}
@media print{.fbar,.hero-actions,.achips,.pager,.act,.alert,.menu-btn{display:none!important}.hero{background:#fff!important;color:#000;border:1px solid #000;padding:8px 12px}.hero h2,.hero-meta,.hero-meta b{color:#000!important}.main{display:block}.shell{display:block}.tpanel-head,.tpanel thead th{background:#fff!important;color:#000!important;border-bottom:1px solid #000}.kpi{break-inside:avoid}}

/* Sidebar section headings */
.nav .grp{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#6F7FA3;font-weight:700;padding:14px 12px 4px}
.nav a{min-height:40px;padding:9px 12px}

/* Dashboard v2 */
.bigcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.bigcard{position:relative;overflow:hidden;border-radius:12px;padding:20px 22px;color:#fff;min-height:160px;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none}
.bigcard::after{content:"";position:absolute;right:-30px;bottom:-40px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.12)}
.bigcard .bc-ic{position:absolute;top:18px;left:22px;width:44px;height:44px;border-radius:10px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:20px}
.bigcard small{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;opacity:.9;font-weight:600}
.bigcard b{font-size:1.75rem;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}
.bigcard span{font-size:12.5px;opacity:.9}
.bc-blue{background:linear-gradient(135deg,#1D4ED8,#3B82F6)}.bc-green{background:linear-gradient(135deg,#15803D,#22A559)}
.bc-purple{background:linear-gradient(135deg,#5B21B6,#7C3AED)}.bc-red{background:linear-gradient(135deg,#991B1B,#DC2626)}
.bc-teal{background:linear-gradient(135deg,#0F766E,#14B8A6)}
.sec-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;margin:0 0 10px}
.sec-title .cnt{background:#DC3545;color:#fff;font-size:11px;border-radius:999px;padding:1px 7px}
.actreq{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:12px;margin-bottom:18px}
.ar{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;border:1px solid;text-decoration:none}
.ar i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:15px;flex:none}
.ar b{display:block;font-size:1.05rem;font-weight:800;line-height:1.1}.ar span{font-size:11.5px}
.ar-amber{background:#FFF7EA;border-color:#F7D9A8;color:#C2650A}.ar-amber i{background:#F59E0B}
.ar-red{background:#FFF1F1;border-color:#F5C2C2;color:#C81E1E}.ar-red i{background:#DC2626}
.ar-orange{background:#FFF4EC;border-color:#F8CFB0;color:#D2560B}.ar-orange i{background:#F97316}
.ar-rose{background:#FFF0F3;border-color:#F4C0CB;color:#BE123C}.ar-rose i{background:#E11D48}
.ar-green{background:#EFFBF3;border-color:#B7E6C8;color:#15803D}.ar-green i{background:#16A34A}
.ar-purple{background:#F6F1FF;border-color:#D9C8FA;color:#6D28D9}.ar-purple i{background:#7C3AED}
.snap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:16px}
.sn{border:1px solid;border-radius:8px;padding:16px}
.sn small{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.sn b{display:block;font-size:1.45rem;font-weight:800;margin:6px 0 4px;font-variant-numeric:tabular-nums}
.sn span,.sn a{font-size:12px;display:block;line-height:1.5}
.sn-red{background:#FFF5F5;border-color:#F3C4C4;color:#C81E1E}.sn-blue{background:#F2F7FF;border-color:#BCD3FA;color:#1D4ED8}
.sn-amber{background:#FFFCEB;border-color:#F1DE8E;color:#B7791F}.sn-green{background:#F1FBF4;border-color:#B7E6C8;color:#15803D}
.sn span{color:#4B5563}
.dash3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;align-items:stretch;margin-bottom:16px}
.dash3 .card{margin:0}
.chart svg{width:100%;height:auto;display:block}
.slist{list-style:none;margin:0;padding:6px 16px}
.slist li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #F0F2F5;font-size:13.5px}
.slist li:last-child{border:0}.slist li i{width:22px;display:inline-block}
.slist b{font-variant-numeric:tabular-nums}
.tiles4{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px}
.t4{border:1px solid;border-radius:8px;text-align:center;padding:14px 6px;text-decoration:none}
.t4 b{display:block;font-size:1.4rem;font-weight:800}.t4 span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.btn-xs{display:inline-flex;align-items:center;gap:4px;border:1px solid #0DCAF0;color:#0AA2C0;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500}
@media (max-width:1200px){.bigcards,.snap{grid-template-columns:repeat(2,minmax(0,1fr))}.dash3{grid-template-columns:1fr 1fr}.dash3>.card:first-child{grid-column:1/-1}.actreq{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bigcards,.snap,.dash3,.actreq{grid-template-columns:1fr}}

/* ===== Sidebar v3: sticky brand, scrolling menu, thin scrollbar ===== */
.side{background:#0F1A30;display:flex;flex-direction:column;height:100vh;position:sticky;top:0;overflow:hidden;border-right:1px solid #16233F}
.side .brand{flex:none;display:flex;align-items:center;gap:12px;padding:16px 18px;background:#0B1426;border-bottom:1px solid #1B2A4A;color:#fff;text-decoration:none;position:relative;z-index:2}
.side .brand-mark{width:38px;height:38px;border-radius:8px;background:#fff;color:#0F1A30;display:grid;place-items:center;font-size:19px;flex:none}
.side .brand b{font-size:14.5px;font-weight:800;letter-spacing:.02em;line-height:1.2;display:block}
.side .brand small{color:#7486AB;font-size:11px}
.side .nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:6px 0 14px;gap:0;scrollbar-width:thin;scrollbar-color:#34466E transparent;overscroll-behavior:contain}
.side .nav::-webkit-scrollbar{width:6px}.side .nav::-webkit-scrollbar-track{background:transparent}
.side .nav::-webkit-scrollbar-thumb{background:#34466E;border-radius:3px}.side .nav::-webkit-scrollbar-thumb:hover{background:#4A5F8F}
.side .nav .grp{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#6B7A99;font-weight:700;padding:16px 20px 6px}
.side .nav a{display:flex;align-items:center;gap:12px;color:#C3CCDD;padding:10px 20px;border-radius:0;min-height:40px;font-size:14px;font-weight:500;position:relative;border-left:3px solid transparent}
.side .nav a i{font-size:17px;width:20px;text-align:center;color:#9AA7C0}
.side .nav a span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .nav a:hover{background:#16244A;color:#fff}
.side .nav a.active{background:linear-gradient(90deg,#1E3A8A 0%,#18306F 100%);color:#fff;border-left-color:#3B82F6}
.side .nav a.active i{color:#fff}
.side .nav a i.ic-green{color:#22C55E}.side .nav a i.ic-amber{color:#FBBF24}.side .nav a i.ic-cyan{color:#22D3EE}.side .nav a i.ic-gray{color:#CBD5E1}
.nbadge{font-style:normal;background:#DC3545;color:#fff;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 7px}
.side .side-foot{flex:none;border-top:1px solid #1B2A4A;background:#0B1426;padding:12px 18px}
@media (max-width:900px){.side{position:fixed;height:100vh}}

/* ===== Login v2 ===== */
.lg-body{background:#fff;margin:0}
.lg{display:grid;grid-template-columns:54fr 46fr;min-height:100vh;min-height:100dvh}
.lg-art{position:relative;overflow:hidden;color:#fff;display:flex;align-items:center;padding:60px 64px;
  background:
    radial-gradient(1100px 600px at 110% 110%, rgba(34,211,238,.35), transparent 60%),
    radial-gradient(800px 500px at -10% -10%, rgba(59,130,246,.35), transparent 60%),
    linear-gradient(160deg,#0B1F4A 0%,#0E3A6E 45%,#127A94 100%)}
.lg-art::before{content:"";position:absolute;inset:0;background-image:var(--lg-photo,none);background-size:cover;background-position:center;opacity:0}
.lg-art.has-photo::before{opacity:1}
.lg-art.has-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(11,31,74,.88) 0%,rgba(14,58,110,.78) 45%,rgba(18,122,148,.72) 100%)}
.lg-art:not(.has-photo)::after{content:"";position:absolute;inset:0;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Crect x='38' y='18' width='44' height='84' rx='8' fill='none' stroke='%23fff' stroke-width='3'/%3E%3Ccircle cx='60' cy='92' r='3' fill='%23fff'/%3E%3C/svg%3E");background-size:120px 120px}
.lg-art-inner{position:relative;z-index:1;max-width:520px}
.lg-logo{width:64px;height:64px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;font-size:30px;backdrop-filter:blur(4px);overflow:hidden}
.lg-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.lg-logo.sm{width:42px;height:42px;font-size:20px;border-radius:10px;background:#0E3A6E;color:#fff;border:0}
.lg-art h1{font-size:2.15rem;font-weight:800;letter-spacing:.01em;margin:30px 0 4px;color:#fff;line-height:1.1}
.lg-tag{margin:0 0 48px;color:rgba(255,255,255,.7);font-size:14px}
.lg-feats{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.lg-feats li{display:flex;gap:14px;align-items:flex-start}
.lg-feats span{width:38px;height:38px;border-radius:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;flex:none;font-size:17px}
.lg-feats b{display:block;font-size:14.5px;font-weight:700}
.lg-feats small{display:block;color:rgba(255,255,255,.72);font-size:12.5px;margin-top:3px}
.lg-watermark{position:absolute;left:-6px;bottom:18px;z-index:1;font-size:2rem;font-weight:800;letter-spacing:.04em;color:rgba(255,255,255,.08);line-height:1;pointer-events:none;white-space:nowrap}
.lg-watermark small{font-size:1.05rem;letter-spacing:.3em}
.lg-main{display:grid;place-items:center;padding:32px 24px}
.lg-form{width:min(380px,100%)}
.lg-form h2{font-size:1.9rem;font-weight:800;margin:0 0 6px;color:#0F172A;letter-spacing:-.01em}
.lg-sub{color:#8A94A6;margin:0 0 30px;font-size:14px}
.lg-form label{display:block;font-weight:600;font-size:13.5px;margin:0 0 8px;color:#1F2937}
.lg-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px}
.lg-row a{font-size:12.5px;font-weight:600;color:#0E7FA0}
.lg-in{position:relative;display:flex;align-items:center}
.lg-in > i{position:absolute;left:15px;color:#9AA3AF;font-size:16px;pointer-events:none}
.lg-in input{min-height:48px;height:48px;padding:0 44px 0 44px;border-radius:9px;border:1px solid #D6DEEA;background:#E9F0FB;font-size:15px}
.lg-in input:focus{background:#fff;border-color:#0E90B5;box-shadow:0 0 0 3px rgba(14,144,181,.15)}
.lg-eye{position:absolute;right:6px;width:36px;height:36px;border:0;background:transparent;color:#8A94A6;border-radius:8px;cursor:pointer;font-size:16px}
.lg-eye:hover{color:#0E7FA0;background:rgba(14,144,181,.08)}
.lg-forgot{margin-top:10px;font-size:12.5px;background:#EFF8FB;color:#0E5E77;border:1px solid #CBE9F2;border-radius:8px;padding:10px 12px}
.lg-btn{margin-top:26px;width:100%;height:50px;border:0;border-radius:9px;color:#fff;font:inherit;font-weight:700;font-size:15.5px;cursor:pointer;
  background:linear-gradient(90deg,#0E6E8C 0%,#0E90B5 100%);display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 18px rgba(14,144,181,.25);transition:filter .15s, transform .05s}
.lg-btn:hover{filter:brightness(1.07)}.lg-btn:active{transform:translateY(1px)}
.lg-sep{display:flex;align-items:center;gap:12px;margin:30px 0 22px;color:#B2BAC7;font-size:11.5px;letter-spacing:.08em}
.lg-sep::before,.lg-sep::after{content:"";flex:1;height:1px;background:#E5E9F0}
.lg-note{text-align:center;color:#8A94A6;font-size:12.5px;margin:0 0 14px}
.lg-copy{text-align:center;color:#8A94A6;font-size:12px;margin:0}
.lg-form .alert{font-size:13.5px;margin-bottom:18px}
.lg-mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:26px;font-weight:800;color:#0E3A6E}
@media (max-width:960px){.lg{grid-template-columns:1fr}.lg-art{display:none}.lg-mobile-brand{display:flex}}
@media (prefers-reduced-motion:reduce){.lg-btn{transition:none}}

/* ===== Settings tabs ===== */
.stabs{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;background:#EEF1F6;border-radius:10px;padding:5px;margin-bottom:16px;overflow-x:auto}
.stabs button{display:flex;align-items:center;justify-content:center;gap:7px;height:40px;border:0;border-radius:7px;background:transparent;color:#5B6478;font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap;padding:0 10px}
.stabs button i{color:#8A94A6}
.stabs button:hover{color:#1F2937}
.stabs button.on{background:#fff;color:var(--signal);font-weight:700;box-shadow:0 1px 3px rgba(15,23,42,.1)}
.stabs button.on i{color:var(--signal)}
.spanel .card-body.form{gap:14px}
.tgl-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #EEF1F5;cursor:pointer}
.tgl-row:last-child{border-bottom:0}
.tgl-row b{display:block;font-weight:600;font-size:14px}.tgl-row small{display:block;color:#8A94A6;font-size:12px;margin-top:2px}
.tgl{appearance:none;-webkit-appearance:none;width:44px!important;min-height:24px!important;height:24px;border-radius:999px;background:#D1D5DB;position:relative;cursor:pointer;flex:none;border:0!important;padding:0!important;transition:background .15s}
.tgl::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s}
.tgl:checked{background:var(--signal)}.tgl:checked::after{transform:translateX(20px)}
.tgl:focus-visible{outline:3px solid var(--signal-soft)}
.dropz{border:1.5px dashed #C9D2E0;border-radius:9px;padding:16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;background:#FAFBFD}
.dropz img{max-height:70px;max-width:160px;border-radius:6px;border:1px solid #E1E6EE;background:#fff}
.dropz img.wide{max-height:110px;max-width:220px;object-fit:cover}
.filein{min-height:40px;padding:6px 8px;font-size:13.5px}
.filein::file-selector-button{border:0;border-right:1px solid #D0D7E2;background:#F3F5F9;padding:6px 12px;margin-right:10px;border-radius:5px 0 0 5px;font:inherit;cursor:pointer}
.swatches{display:flex;gap:14px;flex-wrap:wrap}
.sw{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12.5px;cursor:pointer}
.sw input{position:absolute;opacity:0;pointer-events:none}
.sw span{width:46px;height:46px;border-radius:12px;display:block;border:3px solid transparent;box-shadow:0 0 0 1px #E1E6EE}
.sw input:checked + span{border-color:#fff;box-shadow:0 0 0 2px #111827}
.sw input:focus-visible + span{outline:3px solid #93C5FD}
.sw-blue span{background:#1F5EFF}.sw-teal span{background:#0E90B5}.sw-purple span{background:#7C3AED}.sw-green span{background:#16A34A}.sw-orange span{background:#EA580C}.sw-red span{background:#DC2626}
.save-bar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;background:rgba(255,255,255,.96);border:1px solid #E1E6EE;border-radius:10px;padding:10px 14px;margin-top:6px;box-shadow:0 -4px 16px rgba(15,23,42,.06)}
@media (max-width:1100px){.stabs{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:600px){.stabs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== Users v2 ===== */
.hero-navyblue{background:linear-gradient(90deg,#0F1B3D 0%,#1E3A8A 55%,#2563EB 100%)}
.ugrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.uav{position:relative;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.udot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:#16A34A;border:2px solid #fff}
.rpill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700}
.rp-green{background:#E8F7EE;color:#15803D}.rp-purple{background:#F3E8FF;color:#7C3AED}.rp-teal{background:#E0F7FA;color:#0E7490}.rp-blue{background:#E6EDFF;color:#1D4ED8}
.rsel{margin-top:6px}.rsel select{min-height:28px;height:28px;padding:2px 8px;font-size:12px;width:auto;border-radius:5px}
.rbk{position:relative;display:flex;justify-content:space-between;align-items:center;padding:10px 12px 14px;border-radius:7px;margin-bottom:8px;font-weight:600;font-size:13.5px;overflow:hidden;text-decoration:none}
.rbk span{display:flex;gap:7px;align-items:center}
.rbk em{font-style:normal;color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px}
.rbk .rbar{position:absolute;left:12px;bottom:6px;height:3px;border-radius:2px;max-width:calc(100% - 24px)}
.rbk::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:3px;border-radius:2px;opacity:.18;background:currentColor}
.rb-green{background:#EFFBF3;color:#15803D}.rb-green em,.rb-green .rbar{background:#16A34A}
.rb-purple{background:#F6F1FF;color:#6D28D9}.rb-purple em,.rb-purple .rbar{background:#7C3AED}
.rb-teal{background:#ECFBFD;color:#0E7490}.rb-teal em,.rb-teal .rbar{background:#0891B2}
.rb-blue{background:#EEF3FF;color:#1D4ED8}.rb-blue em,.rb-blue .rbar{background:#2563EB}
.rbk-total{display:flex;justify-content:space-between;padding:8px 4px 2px;border-top:1px solid #EEF1F5;font-size:13px}
.rbk-total a{font-weight:600}
.pmx td,.pmx th{text-align:center}.pmx td:first-child,.pmx th:first-child{text-align:left}
.pmx input[type=checkbox]{width:19px;min-height:19px;height:19px;accent-color:var(--signal)}
.pmx .grpr td{background:#F8FAFC;font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#64748B}
@media (max-width:1100px){.ugrid{grid-template-columns:1fr}}

/* ===== Backup & Restore ===== */
.bkgrid{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:16px;align-items:start}
.bkstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.bks{background:#fff;border:1px solid #E1E6EE;border-radius:10px;padding:20px 10px;text-align:center}
.bks i{font-size:24px;display:block;margin-bottom:8px}.bks b{display:block;font-size:1.05rem;font-weight:800}.bks span{font-size:13px;color:#64748B}
.bkrow{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid #EEF1F5}
.bkrow:hover{background:#FAFBFD}
.bkic{width:34px;height:34px;border-radius:8px;background:#E0EDFF;color:#2563EB;display:grid;place-items:center;font-size:17px;flex:none}
.bkic.pre{background:#FEF3C7;color:#B45309}.bkic.up{background:#E0F2FE;color:#0369A1}
.bkname{flex:1;min-width:0;font-size:13.5px}.bkname b{font-weight:600;word-break:break-all}
.bkact{display:flex;gap:4px;flex:none}
.bkdrop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 16px;border:2px dashed #93B4F0;border-radius:10px;background:#F4F8FF;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}
.bkdrop i{font-size:34px;color:#2563EB}.bkdrop b{font-size:15px}.bkdrop span{font-size:13px;color:#475569}.bkdrop small{color:#64748B}
.bkdrop.over,.bkdrop:hover{background:#E8F0FF;border-color:#2563EB}.bkdrop.has{border-style:solid;border-color:#16A34A;background:#F0FBF4}
@media (max-width:1200px){.bkgrid{grid-template-columns:1fr}}
@media (max-width:640px){.bkstats{grid-template-columns:repeat(2,1fr)}}
.brpick{display:flex;gap:8px}.brpick select{flex:1}.brpick .btn{white-space:nowrap}

/* ===== Activity log ===== */
.modp{display:inline-block;padding:2px 9px;border-radius:5px;font-size:11.5px;font-weight:700;text-decoration:none}
.mpill-blue{background:#E6EDFF;color:#1D4ED8}.mpill-purple{background:#F3E8FF;color:#7C3AED}.mpill-orange{background:#FFEFE3;color:#C2410C}.mpill-green{background:#E3F7EA;color:#15803D}
.mpill-teal{background:#E0F7F5;color:#0F766E}.mpill-slate{background:#EEF1F5;color:#475569}.mpill-amber{background:#FEF3C7;color:#B45309}.mpill-cyan{background:#E0F7FB;color:#0E7490}
.mpill-indigo{background:#EDE9FE;color:#5B21B6}.mpill-pink{background:#FCE7F3;color:#BE185D}.mpill-dark{background:#E5E7EB;color:#111827}
.actp{display:inline-block;padding:2px 9px;border-radius:5px;font-size:11px;font-weight:700;color:#fff;white-space:nowrap;background:#4B5563}
.act-greenp{background:#15803D}.act-redp{background:#B91C1C}.act-amberp{background:#B45309}.act-grayp{background:#4B5563}
.mbk{position:relative;display:flex;justify-content:space-between;align-items:center;padding:8px 6px 14px;font-weight:600;font-size:13.5px;text-decoration:none}
.mbk em{font-style:normal;color:#fff;font-size:11px;border-radius:5px;padding:1px 7px}
.mbk i{position:absolute;left:6px;bottom:4px;height:4px;border-radius:2px;max-width:calc(100% - 12px)}
.mbk::after{content:"";position:absolute;left:6px;right:6px;bottom:4px;height:4px;border-radius:2px;background:#EEF1F5;z-index:-1}
.mbk{z-index:0}
.mb-blue{color:#2563EB}.mb-blue em,.mb-blue i{background:#2563EB}
.mb-purple{color:#7C3AED}.mb-purple em,.mb-purple i{background:#7C3AED}
.mb-orange{color:#C2410C}.mb-orange em,.mb-orange i{background:#C2410C}
.mb-green{color:#15803D}.mb-green em,.mb-green i{background:#15803D}
.mb-teal{color:#0F766E}.mb-teal em,.mb-teal i{background:#0F766E}
.mb-slate{color:#475569}.mb-slate em,.mb-slate i{background:#475569}
.mb-amber{color:#B45309}.mb-amber em,.mb-amber i{background:#B45309}
.mb-cyan{color:#0E7490}.mb-cyan em,.mb-cyan i{background:#0E7490}
.mb-indigo{color:#5B21B6}.mb-indigo em,.mb-indigo i{background:#5B21B6}
.mb-pink{color:#BE185D}.mb-pink em,.mb-pink i{background:#BE185D}
.mb-dark{color:#111827}.mb-dark em,.mb-dark i{background:#111827}
.tub{position:relative;display:flex;align-items:center;gap:10px;padding:9px 0 13px;font-size:13px;text-decoration:none;color:#111827}
.tub b{flex:1;font-weight:500}.tub em{font-style:normal;color:#94A3B8;font-size:12px}
.tub i{position:absolute;left:34px;bottom:5px;height:3px;border-radius:2px;background:#2563EB;max-width:calc(100% - 34px)}
.tub::after{content:"";position:absolute;left:34px;right:0;bottom:5px;height:3px;border-radius:2px;background:#EEF1F5;z-index:-1}.tub{z-index:0}
.chg-old{color:#B91C1C;text-decoration:line-through;text-decoration-color:rgba(185,28,28,.4)}.chg-new{color:#15803D;font-weight:600}
.ugrid .tpanel td,.ugrid .tpanel th{padding-left:10px;padding-right:10px}
.btn-xs{white-space:nowrap}
.rp-amber{background:#FFF1E6;color:#C2410C}

/* ===== Stock locations ===== */
.locchips{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px}
.locchip{flex:none;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:#fff;border:1px solid #E1E6EE;color:#1F2937;text-decoration:none;min-width:190px}
.locchip i{font-size:20px;color:#64748B}.locchip b{display:block;font-size:13.5px;font-weight:700}.locchip small{color:#64748B;font-size:12px}
.locchip.on{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}
.lc-blue i{color:#2563EB}.lc-teal i{color:#0D9488}.lc-purple i{color:#7C3AED}.lc-orange i{color:#EA580C}
.lmx td,.lmx th{text-align:center}.lmx td:first-child,.lmx th:first-child{text-align:left}
.lq{display:inline-block;min-width:34px;padding:3px 8px;border-radius:6px;font-weight:700;background:#E3F7EA;color:#15803D;font-variant-numeric:tabular-nums}
.lq.lo{background:#FEF3C7;color:#B45309}.lq.z{background:#F1F5F9;color:#94A3B8}
.locmini{display:grid;gap:6px;margin:8px 0}.locmini a{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border:1px solid #EEF1F5;border-radius:7px;color:#1F2937;font-size:13.5px;text-decoration:none}
.locmini a:hover{background:#F8FAFC}
.flowbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:#fff;border:1px solid #E1E6EE;border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:13px}
.flowbar>i{color:#94A3B8}.fb{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-weight:600}
.fb-blue{background:#E6EDFF;color:#1D4ED8}.fb-teal{background:#E0F7F5;color:#0F766E}.fb-purple{background:#F3E8FF;color:#7C3AED}.fb-orange{background:#FFF1E6;color:#C2410C}.fb-green{background:#E3F7EA;color:#15803D}
.ltypes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ltype{display:flex;flex-direction:column;gap:3px;padding:12px;border:2px solid #E1E6EE;border-radius:10px;cursor:pointer}
.ltype input{display:none}.ltype i{font-size:20px}.ltype b{font-size:13.5px}.ltype small{font-size:11.5px;color:#64748B;line-height:1.3}
.ltype:has(input:checked){border-color:currentColor;background:#F8FAFC}
.lt-teal{color:#0F766E}.lt-purple{color:#7C3AED}.lt-orange{color:#C2410C}
.ltype.disabled{opacity:.45;pointer-events:none}
@media (max-width:640px){.ltypes{grid-template-columns:1fr}}
.locsel{display:flex;align-items:center;gap:8px;margin:12px 12px 0;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r);background:#F8FAFC}
.locsel i{color:var(--mode)}.locsel label{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}
.locsel select{min-height:34px;height:34px;border:0;background:transparent;font-weight:700;padding:0 4px;flex:1}
.locsel.single select{pointer-events:none;appearance:none}

/* ===== Sidebar v4: sections + dropdown groups ===== */
.side .nquick{flex:none;display:flex;gap:8px;padding:12px 14px 4px}
.nq-sale{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:38px;border-radius:8px;background:linear-gradient(90deg,#2563EB,#3B82F6);color:#fff;font-weight:700;font-size:13.5px;text-decoration:none;box-shadow:0 4px 12px rgba(37,99,235,.3)}
.nq-sale:hover{filter:brightness(1.08)}
.nq-btn{width:38px;height:38px;border-radius:8px;border:1px solid #243457;background:#132142;color:#9AA7C0;cursor:pointer;font-size:15px}
.nq-btn:hover{color:#fff;border-color:#34466E}
.side .nsearch{flex:none;position:relative;margin:8px 14px 6px}
.nsearch i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#6B7A99;font-size:13px}
.nsearch input{width:100%;min-height:36px;height:36px;padding:0 64px 0 32px;border-radius:8px;border:1px solid #243457;background:#132142;color:#E2E8F0;font-size:13px}
.nsearch input::placeholder{color:#6B7A99}
.nsearch input:focus{outline:none;border-color:#3B82F6;box-shadow:0 0 0 3px rgba(59,130,246,.2);background:#0F1B38}
.nsearch input::-webkit-search-cancel-button{filter:invert(.6)}
.nsearch kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:600 10px/1 inherit;color:#6B7A99;border:1px solid #2A3B63;border-radius:4px;padding:3px 5px;pointer-events:none}
.side .nav{padding:2px 10px 16px}
.nsec{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#56688F;font-weight:800;padding:16px 10px 6px}
.side .nav a.ntop,.side .nav a.nsub{border-left:0;border-radius:8px}
.side .nav a.ntop{display:flex;align-items:center;gap:12px;padding:9px 10px;min-height:40px;color:#C3CCDD;font-weight:600;font-size:14px}
.side .nav a.ntop i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#16244A;color:#93C5FD;font-size:15px}
.side .nav a.ntop.active{background:linear-gradient(90deg,#1E3A8A,#1B3278);color:#fff}
.side .nav a.ntop.active i{background:#2563EB;color:#fff}
.ngrp{margin:2px 0;border-radius:10px}
.ngrp.open{background:rgba(22,36,74,.55)}
.ngrp-h{width:100%;display:flex;align-items:center;gap:12px;padding:8px 10px;min-height:44px;background:transparent;border:0;border-radius:10px;color:#C3CCDD;font:inherit;font-weight:600;font-size:14px;cursor:pointer;text-align:left}
.ngrp-h:hover{background:#16244A;color:#fff}
.ngrp-h:focus-visible{outline:2px solid #3B82F6;outline-offset:-2px}
.ngi{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;font-size:15px;color:var(--gc);background:color-mix(in srgb,var(--gc) 16%,transparent)}
.ngl{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ngc{font-size:10.5px;color:#56688F;font-weight:700;min-width:16px;text-align:center}
.ngch{font-size:12px;color:#6B7A99;transition:transform .22s ease}
.ngrp.open .ngch{transform:rotate(180deg);color:#C3CCDD}
.ngrp.has-active>.ngrp-h{color:#fff}
.ngrp.has-active>.ngrp-h .ngi{background:var(--gc);color:#0F1A30}
.ngrp.open .ngb,.ngrp.open .ngc{display:none}
.ngrp-b{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}
.ngrp.open>.ngrp-b{grid-template-rows:1fr}
.ngrp-in{overflow:hidden;min-height:0;padding-left:25px;position:relative}
.ngrp-in::before{content:"";position:absolute;left:25px;top:2px;bottom:8px;width:1px;background:#26375E}
.ngrp.open .ngrp-in{padding-bottom:6px}
.side .nav a.nsub{display:flex;align-items:center;gap:10px;margin-left:10px;padding:7px 10px;min-height:34px;font-size:13.5px;font-weight:500;color:#AEB9CE;position:relative}
.side .nav a.nsub i{font-size:14px;width:18px;color:#7D8BA8}
.side .nav a.nsub::before{content:"";position:absolute;left:-10px;top:50%;width:7px;height:1px;background:#26375E}
.side .nav a.nsub:hover{background:#1A2A52;color:#fff}.side .nav a.nsub:hover i{color:#fff}
.side .nav a.nsub.active{background:rgba(59,130,246,.18);color:#fff;font-weight:600}
.side .nav a.nsub.active i{color:var(--gc,#60A5FA)}
.side .nav a.nsub.active::after{content:"";position:absolute;left:-13px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--gc,#3B82F6);box-shadow:0 0 0 3px rgba(15,26,48,1)}
.side .nav a.nsub.hit span{color:#fff}.side .nav a mark{background:rgba(250,204,21,.25);color:#FDE68A;border-radius:3px;padding:0 1px}
.nempty{color:#6B7A99;font-size:13px;text-align:center;padding:18px 6px;margin:0}
.nav-init .ngrp-b,.nav-init .ngch{transition:none!important}
@media (prefers-reduced-motion:reduce){.ngrp-b,.ngch{transition:none}}
.side .nav [hidden]{display:none!important}
.nsearch input:not(:placeholder-shown)~kbd{display:none}
.nsearch input:not(:placeholder-shown){padding-right:12px}
.shell{grid-template-columns:256px 1fr}
@media (max-width:900px){.shell{grid-template-columns:1fr}.side{width:272px}}

/* ===== Top bar: menu toggle + user dropdown ===== */
.menu-btn{display:inline-flex!important}
body.side-hidden .shell{grid-template-columns:0 1fr}
body.side-hidden .side{visibility:hidden;width:0;overflow:hidden;border:0}
@media (max-width:900px){body.side-hidden .shell{grid-template-columns:1fr}body.side-hidden .side{visibility:visible;width:272px}body.nav-open .main{filter:brightness(.6)}}
.side .nav{padding-top:10px}
.udrop{position:relative}
.uchip{display:flex;align-items:center;gap:10px;height:42px;padding:4px 10px 4px 4px;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer;font:inherit;color:inherit;text-align:left}
.uchip:hover,.uchip.on{background:#F1F5F9;border-color:#E2E8F0}
.uav2{width:34px;height:34px;border-radius:50%;background:var(--signal);color:#fff;display:grid;place-items:center;font-size:12.5px;font-weight:800;flex:none}
.uav2.uav2-lg{width:44px;height:44px;font-size:15px}
.uname{display:flex;flex-direction:column;line-height:1.15}
.uname b{font-size:13.5px;font-weight:700;color:#0F172A;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.uname small{font-size:11.5px;color:#64748B;white-space:nowrap}
.ucar{font-size:11px;color:#94A3B8;transition:transform .2s}.uchip.on .ucar{transform:rotate(180deg)}
.umenu{position:absolute;right:0;top:calc(100% + 8px);width:280px;background:#fff;border:1px solid #E2E8F0;border-radius:12px;box-shadow:0 16px 40px rgba(15,23,42,.16);padding:8px;z-index:950;animation:pop .14s ease-out}
.umenu-h{display:flex;gap:12px;align-items:flex-start;padding:10px 10px 12px;border-bottom:1px solid #EEF1F5}
.umenu-h b{display:block;font-size:14px}.umenu-h small{display:block;color:#64748B;font-size:12px}
.umenu-meta{display:flex;flex-direction:column;gap:4px;padding:10px;border-bottom:1px solid #EEF1F5;font-size:12.5px;color:#475569}
.umenu-meta i{margin-right:6px;color:#94A3B8}
.umenu a,.umenu-out button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:8px;color:#1F2937;font:inherit;font-size:13.5px;font-weight:500;text-decoration:none;background:none;border:0;cursor:pointer;text-align:left}
.umenu a i,.umenu-out i{color:#64748B;width:18px}
.umenu a:hover,.umenu a:focus{background:#F1F5F9;outline:none}
.umenu-out{margin-top:4px;padding-top:4px;border-top:1px solid #EEF1F5}
.umenu-out button{color:#DC2626;font-weight:600}.umenu-out button i{color:#DC2626}
.umenu-out button:hover,.umenu-out button:focus{background:#FEF2F2;outline:none}
@media (max-width:700px){.uname{display:none}.umenu{width:260px}}
@media print{.udrop{display:none}}
.uchip i.ucar{width:auto;height:auto;background:none;border-radius:0;display:inline-block;color:#94A3B8;font-size:11px;font-style:normal}
.uchip .uav2{font-style:normal}
.ngc{display:none!important}

/* ===== Mini sidebar (icons only) ===== */
.nfly-h{display:none}
@media (min-width:901px){
  body.side-mini .shell{grid-template-columns:72px 1fr}
  body.side-mini .side{overflow:visible}
  body.side-mini .side .brand{justify-content:center;padding:16px 0}
  body.side-mini .side .brand>div:not(.brand-mark){display:none}
  body.side-mini .side .nav{padding:8px 10px 16px;overflow-x:visible}
  body.side-mini .nsec{font-size:0;height:1px;padding:0;margin:10px 8px;background:#1F2E52}
  body.side-mini .side .nav a.ntop{justify-content:center;padding:6px 0}
  body.side-mini .side .nav a.ntop span,body.side-mini .ngl,body.side-mini .ngch,body.side-mini .ngc{display:none}
  body.side-mini .ngrp{background:none!important}
  body.side-mini .ngrp-h{justify-content:center;padding:6px 0;position:relative}
  body.side-mini .ngi,body.side-mini .side .nav a.ntop i{width:38px;height:38px;border-radius:10px;font-size:17px}
  body.side-mini .ngrp-h:hover,body.side-mini .ngrp.fly>.ngrp-h{background:#16244A}
  body.side-mini .ngrp-h .ngb{display:block!important;position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;font-size:9.5px;line-height:16px;text-align:center}
  body.side-mini .side .nav a.ntop .nbadge{position:absolute;top:2px;right:4px;font-size:9.5px}
  body.side-mini .side .nav a.ntop{position:relative}
  /* flyout */
  body.side-mini .ngrp-b{display:none;position:fixed;left:66px;width:240px;background:#0F1A30;border:1px solid #243457;border-radius:12px;box-shadow:0 18px 40px rgba(2,6,23,.45);padding:8px;z-index:960;grid-template-rows:1fr;transition:none}
  body.side-mini .ngrp.fly>.ngrp-b{display:block;animation:flyIn .14s ease-out}
  body.side-mini .ngrp-in{padding:0;overflow:visible}
  body.side-mini .ngrp-in::before{display:none}
  body.side-mini .nfly-h{display:flex;align-items:center;gap:8px;padding:8px 10px 10px;margin-bottom:4px;border-bottom:1px solid #1F2E52;color:#fff;font-weight:700;font-size:13.5px}
  body.side-mini .nfly-h i{color:var(--gc)}
  body.side-mini .side .nav a.nsub{margin-left:0}
  body.side-mini .side .nav a.nsub::before,body.side-mini .side .nav a.nsub.active::after{display:none}
}
@keyframes flyIn{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){body.side-mini .ngrp.fly>.ngrp-b{animation:none}}
/* sidebar (and its mini-rail flyouts) must sit above page content; modals (1000) stay on top */
@media (min-width:901px){.side{z-index:60}}

/* ===== Stock distribution (visual) ===== */
.vis-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 12px;font-size:13px;color:#334155}
.vis-legend span{display:inline-flex;align-items:center;gap:6px}.vis-legend i,.vis-dot{width:12px;height:12px;border-radius:3px;display:inline-block}
.vis-dot{margin-right:6px;vertical-align:-1px}
.flow{display:grid;grid-template-columns:minmax(220px,300px) minmax(60px,1fr) minmax(320px,1.4fr);align-items:stretch;padding:18px;gap:0}
.flow-main{align-self:center;border:2px solid var(--c);border-radius:14px;padding:18px;background:linear-gradient(160deg,#fff 0%,color-mix(in srgb,var(--c) 7%,#fff) 100%);box-shadow:0 8px 24px color-mix(in srgb,var(--c) 18%,transparent)}
.fm-ic{width:44px;height:44px;border-radius:12px;background:var(--c);color:#fff;display:grid;place-items:center;font-size:21px;margin-bottom:10px}
.flow-main b{display:block;font-size:16px}.flow-main small{color:#64748B}
.fm-u{font-size:34px;font-weight:800;color:var(--c);margin:10px 0 6px;font-variant-numeric:tabular-nums;line-height:1}.fm-u span{font-size:13px;color:#64748B;font-weight:600;margin-left:6px}
.fm-bar,.fd-bar{height:6px;border-radius:3px;background:#EEF1F5;overflow:hidden}.fm-bar i,.fd-bar i{display:block;height:100%;background:var(--c);border-radius:3px}
.fm-m{display:flex;justify-content:space-between;margin-top:8px;font-size:12.5px;color:#475569}
.flow-lines{position:relative;min-height:100%}.flow-lines svg{position:absolute;inset:0;width:100%;height:100%}
.flow-lines path.moving{stroke-dasharray:6 6;animation:flowdash 1s linear infinite}
@keyframes flowdash{to{stroke-dashoffset:-12}}
@media (prefers-reduced-motion:reduce){.flow-lines path.moving{animation:none}}
.flow-dest{display:flex;flex-direction:column;justify-content:space-around;gap:10px}
.fd{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #E2E8F0;border-left:5px solid var(--c);border-radius:12px;background:#fff;color:#0F172A;text-decoration:none;min-height:78px;transition:box-shadow .15s,transform .15s}
.fd:hover{box-shadow:0 8px 20px rgba(15,23,42,.08);transform:translateX(2px)}
.fd-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex:none;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff);font-size:19px}
.fd-t{flex:1;min-width:0}.fd-t b{display:block;font-size:14px}.fd-t small{display:block;color:#64748B;font-size:12px;margin-bottom:6px}
.fd-n{text-align:right;min-width:110px}.fd-n b{display:block;font-size:22px;font-weight:800;color:var(--c);font-variant-numeric:tabular-nums;line-height:1.1}.fd-n small{color:#64748B;font-size:11.5px}
.fd-tr{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-style:normal;font-size:11px;font-weight:700;color:#B45309;background:#FEF3C7;border-radius:999px;padding:1px 8px}
.donut-wrap{display:flex;align-items:center;gap:22px;padding:16px 20px;flex-wrap:wrap}
.donut{width:190px;height:190px;flex:none}.donut circle{transition:stroke-width .15s}.donut circle:hover{stroke-width:32}
.donut-leg{list-style:none;margin:0;padding:0;flex:1;min-width:200px}
.donut-leg li{display:grid;grid-template-columns:14px 1fr auto 52px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #F1F5F9;font-size:13.5px}
.donut-leg i{width:12px;height:12px;border-radius:3px}.donut-leg b{font-variant-numeric:tabular-nums}.donut-leg small{color:#64748B;text-align:right}
.hbar{display:grid;grid-template-columns:140px 1fr 110px;gap:10px;align-items:center;margin:9px 0;font-size:13px}
.hb-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#334155}.hbar b{text-align:right;font-variant-numeric:tabular-nums}
.hb-t{height:20px;border-radius:5px;background:#F1F5F9;overflow:hidden}.hb-t i{display:block;height:100%;border-radius:5px;min-width:2px}
.sbar-row{display:grid;grid-template-columns:minmax(160px,240px) 1fr 70px;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid #F4F6F9}
.sr-name b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-name small{color:#94A3B8;font-size:11px;font-family:ui-monospace,monospace}
.sr-track{height:24px;background:#F8FAFC;border-radius:6px}
.sr-bar{display:flex;height:100%;border-radius:6px;overflow:hidden;min-width:6px}
.sr-bar i{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;font-style:normal;min-width:3px;border-right:1px solid rgba(255,255,255,.55)}
.sr-bar i:last-child{border-right:0}.sr-bar i:hover{filter:brightness(1.12)}
.sr-tot{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.sr-tot a{color:var(--signal)}
@media (max-width:1100px){.flow{grid-template-columns:1fr}.flow-lines{display:none}.flow-main{margin-bottom:12px}}
@media (max-width:640px){.sbar-row{grid-template-columns:1fr 60px}.sr-track{grid-column:1/-1;order:3}.hbar{grid-template-columns:100px 1fr 90px}}
@media print{.flow-lines path.moving{animation:none}}


/* ===== Mobex admin ===== */
.hero-orange{background:linear-gradient(120deg,#9A3412,#EA580C 60%,#FB923C)}
.tgl{width:44px;height:24px;border-radius:12px;border:0;background:#CBD5E1;position:relative;cursor:pointer;transition:background .15s;padding:0}
.tgl i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.tgl.on{background:#16A34A}.tgl.on i{left:23px}
.star{border:0;background:none;font-size:18px;color:#CBD5E1;cursor:pointer}.star.on{color:#F59E0B}
.imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.imgt{position:relative;border:1px solid #E2E8F0;border-radius:10px;background:#fff;aspect-ratio:1/1;display:grid;place-items:center;padding:6px}
.imgt img{max-width:100%;max-height:100%;object-fit:contain}.imgmain{position:absolute;top:6px;left:6px;background:#16A34A;color:#fff;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:5px}
.imga{position:absolute;bottom:6px;right:6px;display:flex;gap:4px}
.bnr{position:relative;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:86px;border-radius:12px;padding:14px 16px;color:#fff;margin-bottom:10px;overflow:hidden}
.bnr b{display:block;font-size:15px}.bnr small{color:rgba(255,255,255,.8)}.bnr img{max-height:70px;max-width:120px;object-fit:contain}.bnr-a{position:absolute;top:8px;right:8px;display:flex;gap:4px}

/* ===== Dashboard v3 modules ===== */
.dmods{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:16px}
.dm{border-top:4px solid var(--dmc,#2563EB)}.dm-orange{--dmc:#F97316}.dm-teal{--dmc:#0D9488}.dm-purple{--dmc:#7C3AED}
.dm .card-head i{color:var(--dmc)}
.dm-top{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px 6px}
.dm-top small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748B;font-weight:700}
.dm-top b{display:block;font-size:1.45rem;font-weight:800;color:#0F172A;font-variant-numeric:tabular-nums;line-height:1.2;margin:2px 0}.dm-top span{font-size:12px;color:#64748B}
.mt4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 16px 12px}
.mt{border-radius:10px;padding:10px 6px;text-align:center;border:1px solid;text-decoration:none}.mt b{display:block;font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mt span{font-size:11px;font-weight:600}
.mt-blue{background:#F2F7FF;border-color:#BCD3FA;color:#1D4ED8}.mt-purple{background:#F6F1FF;border-color:#D9C8FA;color:#6D28D9}.mt-amber{background:#FFF7EA;border-color:#F7D9A8;color:#C2650A}
.mt-green{background:#EFFBF3;border-color:#B7E6C8;color:#15803D}.mt-red{background:#FFF1F1;border-color:#F5C2C2;color:#C81E1E}
.dm-list{list-style:none;margin:0;padding:0 16px 12px}.dm-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #F1F5F9;font-size:13px}
.dm-list li a{flex:1;min-width:0;color:inherit;text-decoration:none}.dm-list b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-list a>span,.dm-list div>span{display:block;font-size:12px;color:#64748B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-list .pill{flex:none}
.dm-list em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.lbars{padding:8px 16px 12px;display:grid;gap:10px}
.lbar{display:grid;grid-template-columns:minmax(110px,1fr) 1.4fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-decoration:none;color:#1F2937}
.lb-n{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-n i{color:var(--c);margin-right:6px}
.lb-t{height:8px;background:#EEF1F5;border-radius:4px;overflow:hidden}.lb-t i{display:block;height:100%;background:var(--c);border-radius:4px}
.lbar b{font-variant-numeric:tabular-nums;font-size:13.5px;text-align:right}.lbar small{grid-column:2/4;font-size:11.5px;color:#64748B;text-align:right}
.lbar:hover .lb-n{color:var(--c)}
.dm-foot{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 14px}
.toplist{list-style:none;margin:0;padding:6px 16px 12px;counter-reset:t}.toplist li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #F1F5F9}.toplist li:first-child{border-top:0}
.toplist .tn{width:24px;height:24px;border-radius:50%;background:#EEF2FF;color:#3730A3;font-weight:800;font-size:12px;display:grid;place-items:center;flex:none}
.toplist li:nth-child(1) .tn{background:#FEF3C7;color:#92400E}.toplist a{flex:1;min-width:0;color:inherit;text-decoration:none}.toplist b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toplist small{color:#64748B;font-size:11.5px}
.toplist em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
.ar-teal{background:#EFFAF9;border-color:#B5E4DF;color:#0F766E}.ar-teal i{background:#0D9488}.ar-blue{background:#F2F7FF;border-color:#BCD3FA;color:#1D4ED8}.ar-blue i{background:#2563EB}
@media (max-width:520px){.mt4{grid-template-columns:repeat(2,1fr)}}
/* store branding previews */
.brand-row{display:flex;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #EEF1F5}.brand-row:last-of-type{border-bottom:0}
.brand-prev{flex:none;width:190px;height:86px;border-radius:12px;display:grid;place-items:center;padding:10px;overflow:hidden}
.bp-dark{background:#0B1B3F}.bp-dark img{max-width:100%;max-height:52px;object-fit:contain}
.bp-text{color:#fff;font-size:24px;font-weight:800;letter-spacing:-.02em}.bp-text i{font-style:normal}
.bp-icon{background:#F1F5F9;display:flex;flex-direction:column;gap:8px}.bp-icon>img,.bp-letter{width:48px;height:48px;border-radius:12px;object-fit:cover}
.bp-letter{display:grid;place-items:center;color:#fff;font-weight:800;font-size:22px}
.bp-tab{display:flex;align-items:center;gap:6px;background:#fff;border-radius:8px 8px 0 0;padding:4px 10px;font-size:11px;color:#334155;max-width:170px;white-space:nowrap;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.bp-tab-ic{width:14px;height:14px;border-radius:3px;background:#CBD5E1;flex:none;overflow:hidden}.bp-tab-ic img{width:100%;height:100%;object-fit:cover}
.brand-f{flex:1;min-width:0}.brand-f>b{display:block}.brand-f small b{display:inline}.brand-f small{color:#64748B;font-size:12.5px;line-height:1.45}
@media (max-width:640px){.brand-row{flex-direction:column;align-items:flex-start}}
/* product images in the POS */
.pthumb{width:40px;height:40px;border-radius:8px;object-fit:contain;background:#fff;border:1px solid #EEF1F5;flex:none}
.pimg-box .imgs{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
.img-add{cursor:pointer;flex-direction:column;gap:4px;border:2px dashed #CBD5E1;color:#64748B;font-size:12.5px;font-weight:600;display:flex;align-items:center;justify-content:center;background:#F8FAFC}
.img-add i{font-size:22px}.img-add:hover{border-color:var(--signal);color:var(--signal)}
.imgt.new{outline:2px solid #16A34A;outline-offset:-2px}.imgt.new .imgmain{background:#16A34A}

.imgt.img-add{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;cursor:pointer;color:#64748B;font-size:12.5px;font-weight:600}
.imgt.img-add i{font-size:22px}.imgt.img-add:hover{border-color:var(--signal);color:var(--signal)}
.rp-dark{background:#E5E7EB;color:#111827}.rb-dark{background:#F3F4F6;color:#111827}.rb-dark em,.rb-dark .rbar{background:#111827}

/* ===== Developer Zone ===== */
.devwarn{display:flex;gap:14px;align-items:center;background:#FEF2F2;border:1px solid #FECACA;border-left:5px solid #DC2626;border-radius:10px;padding:14px 18px;margin-bottom:16px;color:#991B1B}
.devwarn>i{font-size:26px}.devwarn b{display:block;color:#B91C1C}.devwarn span{font-size:13px}
.devgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.devt{width:100%}.devt td{padding:10px 16px!important}.devt td i{margin-right:10px;color:#64748B}.devt .t-sub{display:inline;margin-left:8px;font-size:11px;color:#94A3B8}
.dv-n{color:#1D4ED8;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}.dv-z{color:#94A3B8;font-weight:500}
.devtot td{font-weight:800;background:#F8FAFC}
.devops{display:grid;gap:10px;padding:14px 16px}
.devop{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 16px;border-radius:10px;border:1px solid;cursor:pointer;font:inherit;transition:transform .08s,box-shadow .15s}
.devop:hover{box-shadow:0 6px 16px rgba(15,23,42,.08)}.devop:active{transform:translateY(1px)}
.devop>i:first-child{font-size:22px;flex:none}.devop span{flex:1}.devop b{display:block;font-size:14px}.devop small{display:block;font-size:12.5px;opacity:.85;line-height:1.4;margin-top:2px}
.dv-red{background:#FFF1F2;border-color:#FECDD3;color:#BE123C}.dv-amber{background:#FFFBEB;border-color:#FDE68A;color:#B45309}.dv-orange{background:#FFF7ED;border-color:#FED7AA;color:#C2410C}
.dv-dark{background:#111827;border-color:#111827;color:#F87171}.dv-dark small{color:#D1D5DB}.dv-green{background:#F0FDF4;border-color:#BBF7D0;color:#15803D}
.devone{display:flex;gap:10px;padding:14px 16px}.devone select{flex:1}
.devtables{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px}.devtables span{border:1px solid #E2E8F0;border-radius:7px;padding:4px 8px;font-size:12px}.devtables b{font-weight:600}.devtables em{font-style:normal;color:#94A3B8;margin-left:6px}
.devtables .nv{background:#F0FDF4;border-color:#BBF7D0}
@media (max-width:1100px){.devgrid{grid-template-columns:1fr}}

/* ===== Customers v2 ===== */
.cav{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12.5px;flex:none;overflow:hidden}
.cav.r{background:#E6EDFF;color:#1D4ED8}.cav.w{background:#F3E8FF;color:#7C3AED}.cav.img{background:#EEF0F4}.cav img{width:100%;height:100%;object-fit:cover}
.cav.cav-lg{width:72px;height:72px;font-size:24px}
.cust-head{display:grid;grid-template-columns:auto minmax(200px,280px) 1fr;gap:18px;align-items:center;padding:16px 18px;margin-bottom:16px}
.cust-head .kpis{margin:0}.ch-i>b{display:block;font-size:17px}.ch-i>span{display:block;color:#64748B;font-size:13px;margin:2px 0 6px}.ch-i .pill{margin-right:4px}
.mobex-b{display:inline-flex;align-items:center;gap:4px;background:#FFF1E6;color:#C2410C;font-weight:700;font-size:11px;padding:1px 7px;border-radius:999px}
.caddr{display:grid;gap:10px}.caddr>div{border:1px solid #EEF1F5;border-radius:9px;padding:10px 12px}.caddr>div>span{display:block;font-size:13px;color:#475569;margin-top:4px}
.cwish{display:flex;flex-wrap:wrap;gap:8px}.cwish a{display:inline-flex;gap:8px;align-items:center;border:1px solid #FECDD3;background:#FFF1F2;color:#9F1239;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;text-decoration:none}
.cwish em{font-style:normal;color:#64748B;font-weight:500}
@media (max-width:1100px){.cust-head{grid-template-columns:auto 1fr}.cust-head .kpis{grid-column:1/-1}}
.cav.o{background:#FFF1E6;color:#C2410C}
/* customer card: one detail per line */
.cust-head{grid-template-columns:auto minmax(240px,340px) 1fr}
.ch-l{list-style:none;margin:4px 0 8px;padding:0;display:grid;gap:3px}
.ch-l li{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569;min-width:0}
.ch-l li i{color:#94A3B8;width:16px;flex:none}
.ch-l li a{color:inherit;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ch-l li a:hover{color:var(--signal)}
.ch-l li small{color:#94A3B8;margin-left:4px}
.ch-p{display:flex;flex-wrap:wrap;gap:4px}
.caddr .pill{display:inline-block;width:auto}

/* ===== Website analytics ===== */
.live-dot{display:inline-flex;align-items:center;gap:6px}.live-dot i{width:9px;height:9px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 0 rgba(74,222,128,.7);animation:lpulse 1.6s infinite}
@keyframes lpulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.7)}70%{box-shadow:0 0 0 8px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.akpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.akpi{background:#fff;border:1px solid #E2E8F0;border-radius:12px;padding:14px 16px}.ak-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#64748B;text-transform:uppercase;letter-spacing:.05em}
.ak-h i{color:#EA580C;font-size:15px}.akpi b{display:block;font-size:1.6rem;font-weight:800;margin:6px 0 2px;font-variant-numeric:tabular-nums}.akpi small{color:#64748B;font-size:12px}
.dl{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:800;color:#94A3B8;text-transform:none;letter-spacing:0}.dl.up{color:#16A34A}.dl.down{color:#DC2626}.akpi small .dl{margin-left:4px}
.achart{width:100%;min-width:640px;height:auto}.achart .gl{stroke:#EEF1F5}.achart .ax{font-size:11px;fill:#94A3B8}
.achart .lpv{fill:none;stroke:#C4B5FD;stroke-width:2;stroke-dasharray:4 4}.achart .lv{fill:none;stroke:#EA580C;stroke-width:3;stroke-linejoin:round}.achart .cv{fill:#fff;stroke:#EA580C;stroke-width:2}.achart .ob{fill:#16A34A;opacity:.75}
.aleg{display:flex;gap:12px;align-items:center;font-size:12px;color:#64748B}.aleg i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:4px}.aleg .l1{background:#EA580C}.aleg .l2{background:#C4B5FD}.aleg .l3{background:#16A34A;height:8px}
.agrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:14px;align-items:start}.agrid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px;align-items:start}
.agrid>.card,.agrid3>.card,.agrid>.tpanel{margin-bottom:0}
.afun{display:grid;gap:10px}.afs{display:grid;grid-template-columns:170px 1fr 90px;gap:10px;align-items:center}.afs-l{font-size:13px;font-weight:600;display:flex;gap:8px;align-items:center}.afs-l i{color:#EA580C}
.afs-b{position:relative;height:30px;background:#FFF7ED;border-radius:7px;overflow:hidden}.afs-b i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#FB923C,#EA580C);border-radius:7px}
.afs-b b{position:relative;z-index:1;line-height:30px;padding-left:10px;color:#fff;font-size:13px;text-shadow:0 1px 2px rgba(0,0,0,.25)}.afs-p{text-align:right;font-weight:800;font-size:14px}.afs-p small{display:block;font-weight:500;font-size:11px;color:#94A3B8}
.aband{display:flex;gap:12px;align-items:flex-start;background:#FEF2F2;border:1px solid #FECACA;border-radius:10px;padding:10px 12px;font-size:13px;color:#7F1D1D;margin-top:6px}.aband i{font-size:22px;color:#DC2626}
.arow{display:grid;grid-template-columns:minmax(110px,1.1fr) 1.4fr auto;column-gap:10px;row-gap:0;align-items:center;padding:7px 0;border-bottom:1px solid #F1F5F9;font-size:13px}.arow:last-child{border-bottom:0}
.arow em{grid-column:2/4;font-style:normal;font-size:11.5px;color:#94A3B8;text-align:right}.arow b{font-variant-numeric:tabular-nums;text-align:right}.ar-n{display:flex;gap:8px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.abar{height:8px;background:#F1F5F9;border-radius:4px;overflow:hidden}.abar i{display:block;height:100%;border-radius:4px}
.ah4{margin:14px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748B}
.aheat{border-collapse:separate;border-spacing:3px;width:100%;min-width:560px}.aheat th{font-size:10.5px;color:#94A3B8;font-weight:600;text-align:center}.aheat tbody th{text-align:right;padding-right:6px}
.aheat td{height:20px;border-radius:4px;min-width:16px}
@media (max-width:1100px){.agrid,.agrid3{grid-template-columns:1fr}.afs{grid-template-columns:130px 1fr 70px}}
.bnr.bnr-full{padding:0;min-height:0;display:block;background:#0B1B3F}.bnr.bnr-full>img{display:block;width:100%;height:auto;max-height:none;max-width:none;object-fit:cover}
.bnr-cap{position:absolute;left:0;right:0;bottom:0;padding:8px 12px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff}.bnr-cap small{color:rgba(255,255,255,.85);margin-left:6px}
.bn-prev{border-radius:10px;overflow:hidden;margin-bottom:12px;background:#0B1B3F}.bn-prev img{display:block;width:100%;height:auto}
#mBanner [hidden]{display:none!important}
#bLayout .ltype{display:flex!important;flex-direction:column;align-items:flex-start;gap:3px;margin:0}
#bLayout .ltype b{display:block}#bLayout .ltype small{display:block;font-weight:500}
