/* ==============================================================
   LUMEN — premium SaaS experience layer for the customer panel.
   Loads AFTER nova.css (re-tokens + upgrades every nv-* component)
   and BEFORE the admin accent style (so the brand accent still
   applies). All colour derivations use var(--nv-accent) so any
   admin-chosen accent works. Light + dark via .nv-dark on <html>.
   ============================================================== */

:root{
  --nv-bg:#f2f4f9;
  --nv-surface:#ffffff; --nv-surface-2:#f5f7fb;
  --nv-text:#0b1220; --nv-text-soft:#46516a; --nv-muted:#8691a9;
  --nv-border:#e6eaf3; --nv-border-2:#dbe0ec;
  --nv-r:16px; --nv-r-sm:12px; --nv-r-lg:22px;
  --nv-sh:0 1px 2px rgba(13,18,35,.03),0 10px 30px -18px rgba(13,18,35,.16);
  --nv-sh-lg:0 30px 80px -28px rgba(13,18,35,.30);
  --nv-sb:268px; --nv-tb:66px;
  --lm-grad:linear-gradient(135deg,var(--nv-accent),color-mix(in srgb,var(--nv-accent) 66%,#ffcf9e 34%));
  --lm-glow:0 10px 26px -10px var(--nv-accent-ring,rgba(199,82,31,.35));
  --lm-glass:color-mix(in srgb,var(--nv-surface) 82%,transparent);
  --lm-ease:cubic-bezier(.4,0,.2,1);
}
html.nv-dark{
  --nv-bg:#090c12; --nv-surface:#10141d; --nv-surface-2:#161b26;
  --nv-text:#edf1f9; --nv-text-soft:#aab4c9; --nv-muted:#7d89a1;
  --nv-border:#202735; --nv-border-2:#2a3244;
  --nv-sh:0 1px 2px rgba(0,0,0,.45),0 14px 34px -20px rgba(0,0,0,.65);
  --nv-sh-lg:0 34px 90px -30px rgba(0,0,0,.8);
  --lm-glass:color-mix(in srgb,var(--nv-surface) 78%,transparent);
}

/* ---------- base polish ---------- */
body.nv{
  font-size:14.5px;
  background:
    radial-gradient(1100px 420px at 78% -220px,color-mix(in srgb,var(--nv-accent) 9%,transparent),transparent 62%),
    radial-gradient(900px 380px at -140px -180px,color-mix(in srgb,var(--nv-accent) 5%,transparent),transparent 58%),
    var(--nv-bg);
  background-attachment:fixed;
}
.nv h1,.nv h2,.nv h3,.nv h4{letter-spacing:-.02em}
.nv ::selection{background:color-mix(in srgb,var(--nv-accent) 24%,transparent)}
@media (prefers-reduced-motion:reduce){ .nv *{animation:none!important;transition:none!important} }

/* page entry */
@keyframes lmIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.nv-content{animation:lmIn .3s var(--lm-ease);padding:26px;max-width:1240px}

/* ---------- sidebar ---------- */
.nv-sidebar{background:var(--lm-glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-right:1px solid var(--nv-border)}
.nv-brand{padding:20px;font-size:19px;letter-spacing:-.02em}
.nv-brand img{max-height:32px}
.nv-nav{padding:6px 12px 12px}
.nv-nav a{position:relative;padding:11px 13px;border-radius:13px;font-size:14px;transition:background .16s var(--lm-ease),color .16s var(--lm-ease),transform .16s var(--lm-ease)}
.nv-nav a:hover{transform:translateX(2px)}
.nv-nav a.active{background:linear-gradient(90deg,color-mix(in srgb,var(--nv-accent) 15%,transparent),color-mix(in srgb,var(--nv-accent) 7%,transparent));color:var(--nv-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--nv-accent) 22%,transparent)}
.nv-nav a.active::before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:4px;height:22px;border-radius:0 4px 4px 0;background:var(--lm-grad)}
.lm-side-balance{margin:10px 14px 12px;padding:15px 16px;border-radius:var(--nv-r);background:var(--lm-grad);color:#fff;box-shadow:var(--lm-glow);position:relative;overflow:hidden}
.lm-side-balance::after{content:"";position:absolute;top:-46px;right:-40px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.16)}
.lm-side-balance .l{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:.85}
.lm-side-balance .v{font-size:21px;font-weight:800;letter-spacing:-.02em;margin:3px 0 10px;word-break:break-all}
.lm-side-balance a{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);color:#fff;font-weight:700;font-size:12.5px;padding:7px 13px;border-radius:99px;position:relative;z-index:1;transition:background .15s}
.lm-side-balance a:hover{background:rgba(255,255,255,.3)}

/* ---------- topbar ---------- */
.nv-topbar{height:var(--nv-tb);background:var(--lm-glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.nv-page-title{font-size:16.5px;font-weight:800}
.nv-pill{height:40px;border-radius:13px;font-size:13.5px;transition:transform .15s var(--lm-ease),box-shadow .15s var(--lm-ease)}
.nv-pill:hover{transform:translateY(-1px)}
.nv-pill.accent{background:var(--lm-grad);box-shadow:var(--lm-glow)}
.nv-icon-btn{width:40px;height:40px;border-radius:13px;transition:transform .15s var(--lm-ease),color .15s}
.nv-icon-btn:hover{transform:translateY(-1px);color:var(--nv-accent)}
.nv-dd-menu{border-radius:var(--nv-r);padding:8px;animation:lmPop .18s var(--lm-ease);min-width:210px}
@keyframes lmPop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.nv-dd-menu a{border-radius:11px;font-size:13.5px}

/* ---------- cards ---------- */
.nv-card{border-radius:var(--nv-r);padding:22px;transition:box-shadow .2s var(--lm-ease)}
.nv-card-h h3{font-size:15.5px;font-weight:800}
.nv-card-h{margin-bottom:18px}
.nv-stat{border-radius:var(--nv-r);transition:transform .18s var(--lm-ease),box-shadow .18s var(--lm-ease)}
.nv-stat:hover{transform:translateY(-2px);box-shadow:var(--nv-sh-lg)}
.nv-stat .ic{border-radius:13px}
.nv-stat .val{font-size:24px}

/* ---------- buttons ---------- */
.nv-btn{height:46px;border-radius:13px;background:var(--lm-grad);box-shadow:var(--lm-glow);font-size:14px;letter-spacing:.01em;transition:transform .16s var(--lm-ease),box-shadow .16s var(--lm-ease),filter .16s;position:relative;overflow:hidden}
.nv-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.nv-btn:active{transform:translateY(0) scale(.985)}
.nv-btn.ghost,.nv-btn.soft{background:var(--nv-surface);box-shadow:none;background-image:none}
.nv-btn.ghost{border-color:var(--nv-border-2);color:var(--nv-text)}
.nv-btn.ghost:hover{background:var(--nv-surface-2);border-color:var(--nv-accent);color:var(--nv-accent)}
.nv-btn.soft{background:var(--nv-accent-soft);color:var(--nv-accent)}
.nv-btn.danger{background:#ef4444;background-image:linear-gradient(135deg,#ef4444,#f97362);box-shadow:0 10px 24px -10px rgba(239,68,68,.4)}
.nv-btn.sm{height:36px;border-radius:11px}

/* ---------- forms ---------- */
.nv-input,.nv-select,.nv-textarea{height:48px;border-radius:13px;border-width:1.5px;background:var(--nv-surface);font-size:14.5px;transition:border-color .15s,box-shadow .15s,background .15s}
.nv-input:focus,.nv-select:focus,.nv-textarea:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--nv-accent) 16%,transparent)}
.nv-label{font-size:13px;margin-bottom:8px}
.nv-chip{border-radius:13px;height:40px;transition:all .16s var(--lm-ease)}
.nv-chip:hover{transform:translateY(-1px);box-shadow:var(--nv-sh)}
.nv-chip.active{background:var(--lm-grad);box-shadow:var(--lm-glow)}
.nv-tabs{border-radius:14px;padding:5px}
.nv-tab{border-radius:10px}

/* injected (AJAX) fields inherit the upgrade */
.nv #neworder_fields input,.nv #neworder_fields select,.nv #neworder_fields textarea,
.nv #addfunds_fields input,.nv #addfunds_fields select,.nv #addfunds_fields textarea,.nv .form-control{min-height:48px;border-radius:13px;transition:border-color .15s,box-shadow .15s}
.nv #neworder_fields input:focus,.nv #neworder_fields select:focus,.nv #addfunds_fields input:focus,.nv #addfunds_fields select:focus,.nv .form-control:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--nv-accent) 16%,transparent)}
.nv #addfunds_fields button,.nv #addfunds_fields input[type=submit],.nv #addfunds_fields .btn{border-radius:13px;background:var(--lm-grad);box-shadow:var(--lm-glow)}

/* ---------- badges ---------- */
.nv-badge{padding:5px 12px;font-size:11.5px}
.nv-badge.b-run::before,.nv-badge.b-info::before{animation:lmPulse 1.6s infinite}
@keyframes lmPulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- tables ---------- */
.nv-table-wrap{border-radius:var(--nv-r)}
.nv-table th{font-size:11px;padding:13px 16px}
.nv-table td{padding:13px 16px;font-size:13.5px}

/* ---------- skeletons / empty states ---------- */
.lm-skel{position:relative;overflow:hidden;background:var(--nv-surface-2);border-radius:12px;min-height:14px}
.lm-skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--nv-text) 5%,transparent),transparent);animation:lmShimmer 1.4s infinite}
@keyframes lmShimmer{to{transform:translateX(100%)}}
.lm-empty{text-align:center;padding:44px 18px;color:var(--nv-muted)}
.lm-empty .ic{width:64px;height:64px;border-radius:20px;display:inline-grid;place-items:center;font-size:24px;background:var(--nv-surface-2);color:var(--nv-muted);margin-bottom:14px}
.lm-empty .t{font-weight:800;color:var(--nv-text);font-size:15.5px;margin-bottom:4px}

/* ==============================================================
   LUMEN components (new shell + rebuilt pages)
   ============================================================== */

/* --- greeting / hero strip --- */
.lm-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.lm-hero h1{font-size:22px;font-weight:800}
.lm-hero .sub{color:var(--nv-muted);font-size:13.5px;margin-top:3px}

/* --- quick stats row --- */
.lm-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.lm-quick .q{background:var(--nv-surface);border:1px solid var(--nv-border);border-radius:var(--nv-r);box-shadow:var(--nv-sh);padding:16px 18px;display:flex;align-items:center;gap:14px;min-width:0;transition:transform .18s var(--lm-ease),box-shadow .18s var(--lm-ease)}
.lm-quick .q:hover{transform:translateY(-2px);box-shadow:var(--nv-sh-lg)}
.lm-quick .ic{width:44px;height:44px;flex:none;border-radius:14px;display:grid;place-items:center;font-size:17px;background:var(--nv-accent-soft);color:var(--nv-accent)}
.lm-quick .q.g .ic{background:rgba(16,185,129,.13);color:#10b981}
.lm-quick .q.b .ic{background:rgba(59,130,246,.13);color:#3b82f6}
.lm-quick .q.v .ic{background:rgba(147,51,234,.13);color:#9333ea}
.lm-quick .k{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--nv-muted)}
.lm-quick .v{font-size:19px;font-weight:800;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* --- quick actions --- */
.lm-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:10px;margin-bottom:22px}
.lm-actions a{display:flex;flex-direction:column;align-items:center;gap:9px;padding:15px 8px;background:var(--nv-surface);border:1px solid var(--nv-border);border-radius:var(--nv-r);box-shadow:var(--nv-sh);color:var(--nv-text-soft);font-weight:700;font-size:12px;transition:all .16s var(--lm-ease);text-align:center}
.lm-actions a i{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:16px;background:var(--nv-accent-soft);color:var(--nv-accent);transition:transform .16s var(--lm-ease)}
.lm-actions a:hover{transform:translateY(-2px);box-shadow:var(--nv-sh-lg);color:var(--nv-accent);border-color:color-mix(in srgb,var(--nv-accent) 30%,var(--nv-border))}
.lm-actions a:hover i{transform:scale(1.08)}

/* --- platform grid (new order step 1) --- */
.lm-platforms{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.lm-plat{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;background:var(--nv-surface);border:1.5px solid var(--nv-border);border-radius:var(--nv-r);cursor:pointer;font-family:inherit;font-weight:700;font-size:12px;color:var(--nv-text-soft);transition:all .16s var(--lm-ease)}
.lm-plat i{font-size:23px;transition:transform .16s var(--lm-ease)}
.lm-plat:hover{transform:translateY(-2px);box-shadow:var(--nv-sh);border-color:var(--nv-border-2)}
.lm-plat:hover i{transform:scale(1.12)}
.lm-plat.active{border-color:var(--nv-accent);background:var(--nv-accent-soft);color:var(--nv-accent);box-shadow:inset 0 0 0 1px var(--nv-accent)}
.lm-steps{display:flex;align-items:center;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.lm-step{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--nv-muted)}
.lm-step .n{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:var(--nv-surface-2);border:1px solid var(--nv-border);font-size:11px}
.lm-step.on{color:var(--nv-accent)}
.lm-step.on .n{background:var(--lm-grad);border-color:transparent;color:#fff}
.lm-step .sep{width:22px;height:1.5px;background:var(--nv-border-2)}

/* --- order summary (sticky premium) --- */
.lm-summary{position:sticky;top:calc(var(--nv-tb) + 18px)}
.lm-sum-card{background:var(--nv-surface);border:1px solid var(--nv-border);border-radius:var(--nv-r-lg);box-shadow:var(--nv-sh);overflow:hidden}
.lm-sum-head{background:var(--lm-grad);color:#fff;padding:16px 20px;font-weight:800;font-size:14px;display:flex;align-items:center;gap:9px}
.lm-sum-body{padding:16px 20px}

/* --- orders page cards --- */
.lm-ostats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.lm-prog{height:7px;border-radius:99px;background:var(--nv-surface-2);overflow:hidden;flex:1;min-width:80px}
.lm-prog>span{display:block;height:100%;border-radius:99px;background:var(--lm-grad);transition:width .5s var(--lm-ease)}
.lm-prog.done>span{background:linear-gradient(90deg,#10b981,#34d399)}

/* --- payment method cards --- */
.lm-paygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.lm-pay{display:flex;align-items:center;gap:11px;padding:14px;background:var(--nv-surface);border:1.5px solid var(--nv-border);border-radius:var(--nv-r);cursor:pointer;font-family:inherit;font-weight:700;font-size:13px;color:var(--nv-text);transition:all .16s var(--lm-ease);text-align:left}
.lm-pay img{width:26px;height:26px;object-fit:contain;flex:none}
.lm-pay .fi{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:8px;background:var(--nv-accent-soft);color:var(--nv-accent);font-size:13px}
.lm-pay:hover{transform:translateY(-1px);box-shadow:var(--nv-sh);border-color:var(--nv-border-2)}
.lm-pay.active{border-color:var(--nv-accent);background:var(--nv-accent-soft);box-shadow:inset 0 0 0 1px var(--nv-accent)}
.lm-pay .ck{margin-left:auto;width:19px;height:19px;flex:none;border-radius:50%;border:1.5px solid var(--nv-border-2);display:grid;place-items:center;font-size:9px;color:#fff;transition:all .15s}
.lm-pay.active .ck{background:var(--nv-accent);border-color:var(--nv-accent)}

/* --- chat (tickets) --- */
.lm-chat{display:flex;flex-direction:column;gap:12px;max-height:56vh;overflow-y:auto;padding:4px 2px}
.lm-msg{display:flex;gap:10px;max-width:82%;animation:lmIn .25s var(--lm-ease)}
.lm-msg .av{width:34px;height:34px;flex:none;border-radius:12px;display:grid;place-items:center;font-size:13px;font-weight:800}
.lm-msg.them{align-self:flex-start}
.lm-msg.them .av{background:var(--nv-accent-soft);color:var(--nv-accent)}
.lm-msg.me{align-self:flex-end;flex-direction:row-reverse}
.lm-msg.me .av{background:var(--nv-surface-2);color:var(--nv-text-soft)}
.lm-msg .bub{padding:11px 14px;border-radius:16px;font-size:13.5px;line-height:1.55;overflow-wrap:anywhere}
.lm-msg.them .bub{background:var(--nv-surface-2);border:1px solid var(--nv-border);color:var(--nv-text);border-top-left-radius:6px}
.lm-msg.me .bub{background:var(--lm-grad);color:#fff;border-top-right-radius:6px;box-shadow:var(--lm-glow)}
.lm-msg .meta{font-size:10.5px;opacity:.65;font-weight:700;margin-bottom:4px}

/* --- transactions timeline --- */
.lm-tl{position:relative;padding-left:22px}
.lm-tl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--nv-border-2)}
.lm-tl-item{position:relative;padding:0 0 16px}
.lm-tl-item::before{content:"";position:absolute;left:-21px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--nv-surface);border:3px solid var(--nv-accent)}
.lm-tl-item.in::before{border-color:#10b981}
.lm-tl-item.out::before{border-color:#ef4444}

/* --- API docs --- */
.lm-code{position:relative;background:#0d1220;color:#dbe4f5;border-radius:var(--nv-r);padding:16px 18px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto;border:1px solid #1e2740}
.lm-code .cp{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#cfd9ec;border-radius:9px;padding:5px 10px;font-size:11.5px;font-weight:700;cursor:pointer;font-family:var(--nv-font)}
.lm-code .cp:hover{background:rgba(255,255,255,.16)}
.lm-code .k{color:#7dd3fc}.lm-code .s{color:#86efac}

/* --- account profile header --- */
.lm-profile{display:flex;align-items:center;gap:16px;padding:22px;border-radius:var(--nv-r-lg);background:var(--lm-grad);color:#fff;box-shadow:var(--lm-glow);margin-bottom:20px;position:relative;overflow:hidden}
.lm-profile::after{content:"";position:absolute;top:-70px;right:-50px;width:210px;height:210px;border-radius:50%;background:rgba(255,255,255,.13)}
.lm-profile .av{width:60px;height:60px;flex:none;border-radius:20px;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.4);display:grid;place-items:center;font-size:24px;font-weight:800}
.lm-profile .nm{font-size:19px;font-weight:800;letter-spacing:-.01em}
.lm-profile .em{font-size:13px;opacity:.85}

/* --- theme segmented control --- */
.lm-theme-seg{display:flex;gap:5px;background:var(--nv-surface-2);border:1px solid var(--nv-border);border-radius:13px;padding:5px}
.lm-theme-seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;border:0;border-radius:9px;background:none;color:var(--nv-text-soft);font-family:inherit;font-weight:700;font-size:13px;cursor:pointer;transition:all .15s}
.lm-theme-seg button.on{background:var(--nv-surface);color:var(--nv-accent);box-shadow:var(--nv-sh)}

/* ==============================================================
   Mobile: floating bottom nav + FAB
   ============================================================== */
.lm-fab{display:none}
@media(max-width:860px){
  .nv-content{padding:16px;padding-bottom:108px;animation:none}
  .lm-quick{grid-template-columns:1fr 1fr;gap:10px}
  .lm-quick .v{font-size:16.5px}
  .lm-summary{position:static}
  /* floating pill bottom nav */
  .nv-bottomnav{left:10px;right:10px;bottom:10px;border-radius:22px;border:1px solid var(--nv-border);background:var(--lm-glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--nv-sh-lg);padding:8px 6px calc(8px + env(safe-area-inset-bottom)/2)}
  .nv-bottomnav a{border-radius:14px;padding:7px 2px;font-size:10px;position:relative;transition:color .15s}
  .nv-bottomnav a i{font-size:19px}
  .nv-bottomnav a.active{color:var(--nv-accent)}
  .nv-bottomnav a.active::after{content:"";position:absolute;top:-8px;left:50%;transform:translateX(-50%);width:18px;height:3px;border-radius:0 0 4px 4px;background:var(--lm-grad)}
  .nv-bottomnav .lm-fab-slot{flex:0 0 66px}
  .lm-fab{display:grid;place-items:center;position:fixed;bottom:calc(30px + env(safe-area-inset-bottom)/2);left:50%;transform:translateX(-50%);width:56px;height:56px;border-radius:50%;background:var(--lm-grad);color:#fff;font-size:21px;box-shadow:0 14px 34px -8px var(--nv-accent-ring,rgba(199,82,31,.5));z-index:59;border:3px solid var(--nv-surface);transition:transform .18s var(--lm-ease)}
  .lm-fab:active{transform:translateX(-50%) scale(.92)}
  .lm-platforms{grid-template-columns:repeat(4,1fr);gap:8px}
  .lm-plat{padding:11px 4px 9px}.lm-plat i{font-size:20px}
  .lm-actions{grid-template-columns:repeat(4,1fr);gap:8px}
  .lm-actions a{padding:12px 4px;font-size:11px}
  .lm-hero h1{font-size:19px}
  .lm-chat{max-height:none}
  .lm-msg{max-width:92%}
}
@media(max-width:400px){
  .lm-actions{grid-template-columns:repeat(4,1fr)}
  .lm-quick{grid-template-columns:1fr 1fr}
}

/* desktop: collapsible sidebar */
@media(min-width:861px){
  body.lm-collapsed .nv-sidebar{width:78px}
  body.lm-collapsed .nv-sidebar .nv-brand{justify-content:center;padding:20px 8px}
  body.lm-collapsed .nv-sidebar .nv-brand img{max-width:40px}
  body.lm-collapsed .nv-sidebar .nv-brand span{display:none}
  body.lm-collapsed .nv-nav a span{display:none}
  body.lm-collapsed .nv-nav a{justify-content:center;padding:12px}
  body.lm-collapsed .nv-nav a i{width:auto;font-size:17px}
  body.lm-collapsed .lm-side-balance,body.lm-collapsed .nv-side-foot,body.lm-collapsed .nv-nav-group{display:none}
  body.lm-collapsed .nv-shell{margin-left:78px}
  .lm-collapse-btn{position:absolute;right:-13px;top:74px;width:26px;height:26px;border-radius:50%;border:1px solid var(--nv-border);background:var(--nv-surface);color:var(--nv-muted);cursor:pointer;display:grid;place-items:center;font-size:10px;box-shadow:var(--nv-sh);z-index:5;transition:color .15s,transform .2s var(--lm-ease)}
  .lm-collapse-btn:hover{color:var(--nv-accent)}
  body.lm-collapsed .lm-collapse-btn i{transform:rotate(180deg)}
}

/* ============================================================
   v2 — /services catalog: proper mobile cards instead of the
   generic stacked label/value rows.
   ============================================================ */
@media(max-width:860px){
  .nv .svc-cat .nv-table-wrap{border:0!important;background:none!important;box-shadow:none!important;overflow:visible!important}
  .nv tr.svc-row{display:block;position:relative;background:var(--nv-surface);border:1px solid var(--nv-border)!important;border-radius:14px;margin-bottom:10px;padding:13px 13px 11px;box-shadow:var(--nv-sh)}
  .nv tr.svc-row>td{display:block;border:none!important;padding:0!important;text-align:left!important}
  .nv tr.svc-row>td::before{display:none!important}
  .nv tr.svc-row td[data-label="ID"]{position:absolute;top:11px;right:12px}
  .nv tr.svc-row td[data-label="ID"] b{font-size:11px;color:var(--nv-muted)!important;background:var(--nv-surface-2);border:1px solid var(--nv-border);border-radius:7px;padding:2px 8px;font-weight:700}
  .nv tr.svc-row td[data-label="Service"]{font-weight:600;font-size:14px;color:var(--nv-text);line-height:1.45;padding-right:56px!important;margin-bottom:9px;justify-content:flex-start!important}
  .nv tr.svc-row td[data-label="Rate / 1000"]{display:inline-block;margin:0 12px 9px 0}
  .nv tr.svc-row td[data-label="Rate / 1000"] b{font-size:17px}
  .nv tr.svc-row td[data-label="Rate / 1000"]::after{content:" / 1000";font-size:11.5px;color:var(--nv-muted);font-weight:600}
  .nv tr.svc-row td[data-label="Min"],.nv tr.svc-row td[data-label="Max"],.nv tr.svc-row td[data-label="Speed"]{
    display:inline-block;background:var(--nv-surface-2);border:1px solid var(--nv-border);border-radius:9px;padding:4px 10px!important;font-size:12px;font-weight:600;color:var(--nv-text-soft);margin:0 6px 9px 0}
  .nv tr.svc-row td[data-label="Min"]::before,.nv tr.svc-row td[data-label="Max"]::before{
    content:attr(data-label) " ";display:inline!important;color:var(--nv-muted);font-weight:700;font-size:10.5px;text-transform:uppercase;position:static!important;max-width:none!important}
  .nv tr.svc-row td[data-label="Speed"] .svc-spd{font-size:12px}
  .nv tr.svc-row td[data-label=""]{display:flex!important;gap:8px;margin-top:2px;justify-content:flex-start!important}
  .nv tr.svc-row td[data-label=""] .nv-btn{flex:1;justify-content:center}
  .nv tr.svc-desc{display:block;border:none!important;background:none;padding:0 0 10px!important;margin-top:-4px;box-shadow:none}
  .nv tr.svc-desc>td{display:block;border:none!important;padding:0!important}
}
/* v3 — anchor buttons must keep button text colours (generic `.nv a` link colour was winning) */
.nv a.nv-btn{color:#fff}
.nv a.nv-btn:hover{color:#fff}
.nv a.nv-btn.ghost{color:var(--nv-text)}
.nv a.nv-btn.ghost:hover{color:var(--nv-accent)}
.nv a.nv-btn.soft{color:var(--nv-accent)}
.nv a.nv-btn.danger,.nv a.nv-btn.danger:hover{color:#fff}
/* v5 - mobile: hide the duplicate topbar balance pill (the number shows on the
   New Order page + the drawer card; the bell takes the topbar slot) */
@media(max-width:860px){
  .nv-topbar .nv-pill.accent{display:none!important}
}