/* Pulse: signed-in app skin. Loaded after
   the engine (/public/Pulse/pulse-engine.css). Pulse re-points its tokens and refines
   a few components; ids, classes and scripts are untouched. */

/* ---------------------------------------------------------------- tokens */
:root,html.nv-html{
  --ln-canvas:#f5f6fa;
  --nv-bg:#f5f6fa; --nv-surface:#ffffff; --nv-surface-2:#f0f2f7; --nv-card:#ffffff;
  --ln-sunk:#f7f8fb;
  --nv-text:#0c1222; --nv-text-soft:#2b3447; --nv-muted:#535e76; --ln-faint:#7a849a;
  --nv-border:#e4e7ef; --nv-border-2:#d5dae5; --ln-line-3:#eef0f5;
  --nv-ok:#0b8f63; --nv-okbg:#e3f5ed;
  --nv-warn:#b45309; --nv-warnbg:#fdf1e2;
  --nv-bad:#c2410c; --nv-badbg:#fdeee6;
  --nv-info:#2563eb; --nv-infobg:#e7efff;
  --nv-r:14px; --nv-r-sm:11px; --nv-r-lg:16px;
  --nv-sh:0 1px 2px rgba(12,18,34,.05),0 10px 26px -16px rgba(12,18,34,.16);
  --nv-sh-lg:0 0 0 1px rgba(12,18,34,.05),0 12px 28px -10px rgba(12,18,34,.16),0 36px 70px -30px rgba(12,18,34,.28);
  --nv-sb:252px; --nv-tb:64px;
  --ln-display:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ln-a-soft:color-mix(in srgb,var(--nv-accent,#4f46e5) 10%,transparent);
  --ln-a-ring:color-mix(in srgb,var(--nv-accent,#4f46e5) 22%,transparent);
  --pl-a-line:color-mix(in srgb,var(--nv-accent,#4f46e5) 32%,transparent);
}
html.nv-dark{
  --ln-canvas:#0a0c12;
  --nv-bg:#0a0c12; --nv-surface:#11141d; --nv-surface-2:#171b27; --nv-card:#11141d;
  --ln-sunk:#0e1119;
  --nv-text:#eef0f6; --nv-text-soft:#c9cfdc; --nv-muted:#a3abbf; --ln-faint:#7f889e;
  --nv-border:#232838; --nv-border-2:#2e3448; --ln-line-3:#1b1f2c;
  --nv-ok:#34d399; --nv-okbg:rgba(52,211,153,.12);
  --nv-warn:#fbbf24; --nv-warnbg:rgba(251,191,36,.12);
  --nv-bad:#fb923c; --nv-badbg:rgba(251,146,60,.12);
  --nv-info:#7aa7ff; --nv-infobg:rgba(122,167,255,.13);
  --nv-sh:0 1px 0 rgba(255,255,255,.03) inset,0 12px 30px -16px rgba(0,0,0,.7);
  --nv-sh-lg:0 0 0 1px rgba(255,255,255,.06),0 16px 34px -12px rgba(0,0,0,.7),0 40px 80px -32px rgba(0,0,0,.8);
  --ln-a-soft:color-mix(in srgb,var(--nv-accent,#4f46e5) 18%,transparent);
  --ln-a-ring:color-mix(in srgb,var(--nv-accent,#4f46e5) 34%,transparent);
}
body.nv{background:var(--nv-bg);letter-spacing:0}

/* ------------------------------------------------------------ components */
/* Sidebar: the current page is tinted in the panel's own colour. */
.nv-nav a.active{background:var(--ln-a-soft);color:var(--nv-text);box-shadow:none;font-weight:650}
.nv-nav a.active i{color:var(--ln-a)}
html.nv-dark .nv-nav a.active{background:var(--ln-a-soft);box-shadow:none}
.ln-side-new{height:42px;border-radius:11px;justify-content:center;box-shadow:0 10px 22px -10px var(--ln-a)}
/* Order steps: the active step carries the panel colour. */
.ln-steps .lm-step.on::before{background:var(--ln-a);box-shadow:none}
.lm-step.on .n{background:var(--ln-a);color:#fff}
/* Order summary: the total sits in a tinted block; a bigger place-order button. */
.ln-rcpt .nv-os .row.total{margin:12px 0 4px;padding:14px 16px;border-radius:13px;background:var(--ln-a-soft);border:1px solid var(--pl-a-line)}
.nv .ln-submit{height:50px;border-radius:12px;font-size:15.5px}

/* =====================================================================
   PULSE v3 (2026-10-09): deeper redesign of the signed-in app.
   Visual only: sizes, surfaces, spacing. No layout engine rules change,
   so every page and script keeps working.
   ===================================================================== */
/* Type: one notch larger and calmer. */
body.nv{font-size:14.5px}
.nv .nv-content{padding:28px 32px 56px}
@media (max-width:860px){.nv .nv-content{padding:18px 16px 96px}}

/* Sidebar: a real panel (surface + border) with clearer items. */
.nv-sidebar{background:var(--nv-surface);border-inline-end:1px solid var(--nv-border)}
.nv-nav a{min-height:40px;font-size:14px;font-weight:550;border-radius:10px}
.nv-nav a i{width:18px;text-align:center}
.nv-nav-group{font-family:var(--ln-mono);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ln-faint)}
.ln-side-new{height:44px;font-size:14.5px}

/* Balance card: the number first, one clear Add funds action. */
.lm-side-balance{padding:14px;border-radius:14px;background:var(--nv-surface-2);box-shadow:inset 0 0 0 1px var(--nv-border)}
html.nv-dark .lm-side-balance{background:var(--nv-surface-2)}
.lm-side-balance .v{font-size:24px;font-weight:800;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.lm-side-balance .ln-bal-add{color:var(--ln-a);font-weight:650}
/* XP: one compact line instead of a bar, counters and a button. The full
   levels window still opens when it is clicked (same #lmXp trigger). */
.lm-xp .lm-xp-bar,.lm-xp .lm-xp-meta,.lm-xp .lm-xp-more{display:none!important}
.lm-xp{margin-top:10px;padding:8px 10px;border-radius:10px;background:var(--nv-surface);box-shadow:inset 0 0 0 1px var(--nv-border);cursor:pointer}
.lm-xp:hover{box-shadow:inset 0 0 0 1px var(--nv-border-2)}
.lm-xp-top{display:flex;align-items:center;gap:8px;font-size:12.5px}
.lm-xp-top .lm-xp-badge{margin-inline-start:auto}

/* Top bar: just the page title (the panel name is already in the sidebar). */
.nv-topbar{border-bottom:1px solid var(--nv-border)}
.nv-page-title .ln-crumb,.nv-page-title .ln-sl{display:none}
.nv-page-title .ln-pt{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--nv-text)}
.ln-cmd{height:40px;border-radius:11px}

/* Page headers: bigger titles, a small coloured label above. */
.nv .ln-ph h1{font-size:30px;font-weight:800;letter-spacing:-.03em}
.ln-ph .sub{font-size:15px}
.ln-greet{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ln-a)}
@media (max-width:860px){.nv .ln-ph h1{font-size:24px}}

/* Account summary strip. */
.ln-kpis{border-radius:14px}
.ln-kpi{padding:12px 20px}
.ln-kpi .k{font-size:12px;font-weight:600;color:var(--nv-muted)}
.ln-kpi .v{font-size:20px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}

/* Cards. */
.nv-card,.lm-sum-card,.dr-card{border-radius:16px}
.ord-card{border-radius:14px}

/* Inputs: taller, rounder, a clear focus ring in the panel colour. */
.nv #neworder_fields input:not([type=checkbox]):not([type=radio]),.nv #neworder_fields select,
.nv #addfunds_fields input:not([type=checkbox]):not([type=radio]),.nv #addfunds_fields select,
.nv .nv-input,.nv .nv-select,.nv .form-control{height:46px;min-height:46px;border-radius:11px;font-size:14.5px}
.nv .nv-textarea,.nv #neworder_fields textarea,.nv #addfunds_fields textarea{border-radius:11px;font-size:14.5px}
.nv #neworder_fields input:focus,.nv #neworder_fields select:focus,.nv #addfunds_fields input:focus,.nv #addfunds_fields select:focus,
.nv .nv-input:focus,.nv .nv-select:focus,.nv .nv-textarea:focus,.nv .form-control:focus{border-color:var(--ln-a);box-shadow:0 0 0 4px var(--ln-a-ring);outline:none}

/* Buttons, tabs, platform chips. */
.nv .nv-btn{border-radius:11px;font-weight:650}
.nv .nv-btn:not(.sm){min-height:44px}
.nv-tab{min-height:38px;border-radius:9px;font-weight:650}
.lm-plat{min-height:40px;border-radius:11px;font-weight:600}
.ln-order .lm-plat.active,.lm-plat.active{background:var(--ln-a-soft);color:var(--nv-text);box-shadow:inset 0 0 0 1px var(--ln-a)}

/* Tables: quiet uppercase headers, roomier rows, hover. */
.ln-tbl th,.svc-table th{font-family:var(--ln-mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ln-faint)}
.ln-tbl td,.svc-table td{padding-top:13px;padding-bottom:13px}
.ln-tbl tbody tr:hover td,.svc-table tbody tr:hover td{background:var(--ln-sunk)}

/* Status badges. */
.nv-badge,.ln-tag{border-radius:999px;font-weight:650}

/* New Order: quick quantity buttons (added by the page script). */
.pl-qq{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.pl-qq button{height:30px;padding:0 11px;border-radius:8px;border:1px solid var(--nv-border);background:var(--nv-surface);color:var(--nv-muted);font:600 12.5px/1 var(--nv-font);cursor:pointer}
.pl-qq button:hover{color:var(--nv-text);border-color:var(--nv-border-2)}
.pl-qq button[disabled]{opacity:.4;cursor:not-allowed}

/* =====================================================================
   PULSE v4 (2026-10-09): New Order layout. Numbered sections, service
   info tiles, Link + Quantity side by side on desktop.
   ===================================================================== */
.ln-order .ln-steps{display:none!important}   /* the engine sets display:grid!important */
.pl-n{display:inline-grid;place-items:center;width:22px;height:22px;margin-inline-end:9px;border-radius:7px;background:var(--ln-a-soft);color:var(--ln-a);font-size:12px;font-weight:800;vertical-align:1px}
.pl-sec{display:flex;align-items:center;margin:18px 0 8px}
.pl-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:12px 0 4px}
.pl-fact{padding:10px 12px;border-radius:11px;background:var(--nv-surface-2);box-shadow:inset 0 0 0 1px var(--ln-line-3)}
.pl-fact .k{display:block;font-size:11.5px;font-weight:600;color:var(--nv-muted)}
.pl-fact .v{display:block;margin-top:2px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--nv-text)}
.pl-fact .v.ok{color:var(--nv-ok)}
.nv #service_description{background:var(--nv-surface-2);border:0;border-radius:11px;color:var(--nv-muted);font-size:13.5px}
@media (min-width:861px){
  #neworder_fields{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);column-gap:14px}
  #neworder_fields>*{grid-column:1/-1}
  #neworder_fields>#order_link{grid-column:1}
  #neworder_fields>#order_quantity{grid-column:2}
}
