:root{
  /* ---- Mintpay dark brand (matched to marketing landing) ---- */
  --bg:#07130f;            /* page background */
  --bg-deep:#050f0a;       /* deepest background (gradient floor / sidebar) */
  --panel:#0c1f17;         /* cards / panels */
  --panel-2:#08160f;       /* recessed surfaces */
  --elevated:#10271d;      /* hovered / elevated surfaces */
  --line:rgba(255,255,255,.08);
  --line-2:#1f3a2b;        /* stronger green border */

  /* brand green */
  --mint:#56d97e;          /* primary accent */
  --mint-hi:#6fe391;       /* hover */
  --mint-soft:#bdf38f;     /* gradient start */
  --mint-deep:#22c06a;     /* gradient end */
  --grad:linear-gradient(135deg,#bdf38f 0%,#56d97e 52%,#22c06a 100%);

  /* text */
  --ink:#f3f9f5;           /* primary text */
  --ink-2:#9db3a6;         /* secondary text */
  --muted:#5f7770;         /* muted text */

  /* status */
  --ok:#56d97e;
  --danger:#ff6b6b;
  --pend:#d7ad45;

  /* ---- semantic status palette (tuned for the dark brand) ----
     Each token = a clear coloured ink + a subtle tinted fill + a defined border.
     st-ok  → success   st-bad → negative   st-warn → in-progress
     st-info → informational   st-mut → inactive / neutral */
  --st-ok-ink:#7ee49a;   --st-ok-bg:rgba(86,217,126,.12);   --st-ok-bd:rgba(86,217,126,.34);
  --st-bad-ink:#ff8e8e;  --st-bad-bg:rgba(255,107,107,.12); --st-bad-bd:rgba(255,107,107,.34);
  --st-warn-ink:#e6c468; --st-warn-bg:rgba(215,173,69,.13); --st-warn-bd:rgba(215,173,69,.34);
  --st-info-ink:#86c4f5; --st-info-bg:rgba(86,160,217,.13); --st-info-bd:rgba(86,160,217,.34);
  --st-mut-ink:#9db3a6;  --st-mut-bg:rgba(255,255,255,.06); --st-mut-bd:rgba(255,255,255,.12);

  /* legacy aliases (kept so any older selectors resolve to the dark theme) */
  --paper:var(--bg);
  --pine:var(--mint);
  --pine-2:var(--mint-hi);
  --gold:var(--pend);

  --radius:16px;
  --radius-sm:11px;
  --shadow:0 1px 0 rgba(255,255,255,.03),0 22px 50px rgba(0,0,0,.45);
  --shadow-sm:0 10px 26px rgba(0,0,0,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{max-width:100%;overflow-x:hidden}
body{
  font-family:'Schibsted Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:
    radial-gradient(1200px 700px at 78% -8%,rgba(86,217,126,.10),transparent 60%),
    radial-gradient(900px 600px at -6% 12%,rgba(34,192,106,.07),transparent 55%),
    linear-gradient(180deg,var(--bg) 0,var(--bg-deep) 100%);
  background-attachment:fixed;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
h1,h2,h3,.brandfont{font-family:'Bricolage Grotesque','Schibsted Grotesk',sans-serif;letter-spacing:-.02em;font-weight:800;color:var(--ink)}
a{color:var(--mint);text-decoration:none}a:hover{color:var(--mint-hi)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
::selection{background:rgba(86,217,126,.28);color:#fff}
.hidden{display:none!important}.muted{color:var(--muted)}.tnum{font-variant-numeric:tabular-nums}
::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1d3329;border-radius:9px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#2a4a39;background-clip:padding-box}

/* =================== controls =================== */
.btn{border:none;border-radius:11px;padding:11px 17px;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;transition:transform .16s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,filter .18s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;white-space:normal;line-height:1.2}
.btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
/* primary — brand gradient */
.btn.pri{background:var(--grad);color:#06130d;box-shadow:0 8px 22px rgba(34,192,106,.28)}
.btn.pri:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 12px 30px rgba(34,192,106,.4)}
.btn.pri:active{transform:translateY(0)}
/* mint — solid accent */
.btn.mint{background:var(--mint);color:#06130d;box-shadow:0 8px 20px rgba(86,217,126,.24)}
.btn.mint:hover{background:var(--mint-hi);transform:translateY(-1px);box-shadow:0 12px 28px rgba(86,217,126,.36)}
.btn.mint:active{transform:translateY(0)}
/* ghost — outlined on dark */
.btn.ghost,.btn.gh{background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--ink)}
.btn.ghost:hover,.btn.gh:hover{border-color:var(--mint);background:rgba(86,217,126,.10);color:var(--ink)}
.btn.sm{padding:7px 12px;font-size:12.5px;min-height:33px;border-radius:9px}
.btn.lg{padding:14px 22px;font-size:15px;min-height:48px;border-radius:13px}
.btn.full{width:100%}
.btn:focus-visible,.linklike:focus-visible,.nav:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.btn:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none;filter:none}

input,select,textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 13px;font-size:14.5px;font-family:inherit;background:var(--panel-2);color:var(--ink);margin-bottom:12px;min-height:44px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
textarea{min-height:96px;resize:vertical;line-height:1.5}
input::placeholder,textarea::placeholder{color:var(--muted)}
input:hover,select:hover,textarea:hover{border-color:rgba(255,255,255,.16)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 3px rgba(86,217,126,.18);background:var(--panel)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239db3a6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:36px}
label{display:block;font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:6px;letter-spacing:.01em}
.row{display:flex;gap:10px}.row>*{flex:1}

/* =================== identity =================== */
.brand{display:flex;align-items:center;gap:10px}
.logo{width:36px;height:36px;border-radius:10px;overflow:hidden;flex:none;box-shadow:0 8px 22px rgba(0,0,0,.4)}
.logo svg{display:block;width:100%;height:100%}
.wordmark{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--ink)}
.wordmark span{color:var(--mint)}

/* =================== app shell =================== */
.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}
.side{background:linear-gradient(180deg,#08160f 0,#050f0a 100%);padding:18px 13px;display:flex;flex-direction:column;gap:3px;position:sticky;top:0;height:100vh;border-right:1px solid var(--line);overflow-y:auto}
.side .brand{padding:8px 8px 20px}
.side .brand .wordmark{color:#fff}.side .brand .wordmark span{color:var(--mint)}
.nav{border:none;background:transparent;color:var(--ink-2);text-align:left;padding:10px 12px;border-radius:11px;font-size:13.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:12px;font-family:inherit;min-height:40px;transition:background .15s ease,color .15s ease}
.nav:hover{background:rgba(255,255,255,.05);color:var(--ink)}
.nav.on{background:var(--grad);color:#06130d;font-weight:750;box-shadow:0 8px 20px rgba(34,192,106,.25)}
.nav svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;flex:none}
.side .spacer{flex:1;min-height:14px}
.side #logout{color:var(--ink-2)}.side #logout:hover{background:rgba(255,107,107,.10);color:#ffb3b3}

.main{padding:30px 40px 56px;max-width:1220px;width:100%}

/* top bar */
.top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px;gap:16px;flex-wrap:wrap}
.top h1{font-size:31px;line-height:1.08}
.top .sub{color:var(--ink-2);font-size:14px;margin-top:6px;max-width:680px;line-height:1.5}
.top>div:last-child{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* account dropdown (top-bar user menu) */
.acct{position:relative}
.acct-btn{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:6px 12px 6px 7px;font:inherit;font-size:13px;font-weight:650;cursor:pointer;min-height:42px;transition:border-color .15s ease,background .15s ease}
.acct-btn:hover{border-color:var(--mint);background:rgba(86,217,126,.08)}
.acct-av{width:30px;height:30px;border-radius:9px;background:var(--grad);color:#06130d;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none;font-family:'Bricolage Grotesque',sans-serif}
.acct-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-car{width:14px;height:14px;stroke:var(--ink-2);fill:none;stroke-width:2.2;transition:transform .18s ease}
.acct.open .acct-car{transform:rotate(180deg)}
.acct-menu{position:absolute;right:0;top:calc(100% + 9px);min-width:248px;background:var(--panel);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 26px 60px rgba(0,0,0,.55);padding:7px;z-index:40;display:none;animation:popin .14s ease}
.acct.open .acct-menu{display:block}
@keyframes popin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.acct-head{padding:11px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.acct-head b{display:block;font-size:14px;color:var(--ink);font-weight:750}
.acct-head small{display:block;color:var(--ink-2);font-size:12px;margin-top:2px;overflow-wrap:anywhere}
.acct-ref{display:inline-flex;align-items:center;gap:6px;margin-top:9px;background:rgba(86,217,126,.10);border:1px solid var(--line-2);color:var(--mint);font-size:11.5px;font-weight:750;padding:4px 9px;border-radius:999px;font-variant-numeric:tabular-nums}
.acct-item{display:flex;align-items:center;gap:11px;width:100%;border:none;background:transparent;color:var(--ink);text-align:left;font:inherit;font-size:13.5px;font-weight:600;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .14s ease,color .14s ease}
.acct-item:hover{background:rgba(255,255,255,.05)}
.acct-item svg{width:16px;height:16px;stroke:var(--ink-2);fill:none;stroke-width:2;flex:none}
.acct-item:hover svg{stroke:var(--mint)}
.acct-sep{height:1px;background:var(--line);margin:6px 4px}
.acct-item.danger{color:#ffb3b3}.acct-item.danger:hover{background:rgba(255,107,107,.1)}.acct-item.danger svg{stroke:#ff8e8e}

/* =================== surfaces =================== */
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}
.cards{display:grid;gap:14px}

.hero{background:linear-gradient(140deg,#0e2a1f 0,#0a1c14 60%,#0c2218 100%);color:var(--ink);border-radius:18px;padding:26px;border:1px solid var(--line-2);box-shadow:var(--shadow);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(420px 220px at 88% -30%,rgba(86,217,126,.22),transparent 70%);pointer-events:none}
.hero .lbl{color:var(--ink-2);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.hero .big{font-size:44px;font-weight:800;margin-top:7px;font-family:'Bricolage Grotesque';letter-spacing:-.025em;line-height:1.02}
.wallets{display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:11px;margin-top:18px;position:relative}
.wallet{background:rgba(255,255,255,.035);color:var(--ink);border:1px solid var(--line);border-radius:13px;padding:15px;transition:border-color .15s ease,transform .15s ease}
.wallet:hover{border-color:var(--line-2);transform:translateY(-2px)}
.wallet .c{color:var(--ink-2);font-size:12px;font-weight:750;letter-spacing:.02em}
.wallet .b{font-size:23px;font-weight:800;margin-top:6px;font-family:'Bricolage Grotesque';letter-spacing:-.02em}
.wallet .r{font-size:11.5px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}

.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:13px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;display:flex;flex-direction:column;gap:10px;min-height:134px}
.tile:hover{border-color:var(--mint);transform:translateY(-3px);box-shadow:0 16px 36px rgba(0,0,0,.4)}
.tile.static{cursor:default}.tile.static:hover{transform:none;border-color:var(--line);box-shadow:none}
.tile .ic{width:42px;height:42px;border-radius:11px;background:rgba(86,217,126,.12);display:grid;place-items:center;color:var(--mint);border:1px solid var(--line-2)}
.tile .ic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
.tile .t{font-weight:750;font-size:15px;font-family:'Bricolage Grotesque'}
.tile .d{font-size:12.5px;line-height:1.5;color:var(--ink-2)}

.sec{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);margin:26px 0 11px;display:flex;align-items:center;gap:10px}
.sec:first-child{margin-top:4px}
.sec::after{content:"";flex:1;height:1px;background:var(--line)}

/* =================== lists =================== */
.row-item{display:flex;align-items:center;gap:14px;padding:14px 7px;border-bottom:1px solid var(--line);min-height:64px}
.row-item:last-child{border-bottom:none}
.tic{width:40px;height:40px;border-radius:11px;background:rgba(86,217,126,.10);color:var(--mint);display:grid;place-items:center;flex:none;border:1px solid var(--line-2)}
.tic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.row-item .nm{font-weight:750;font-size:14.5px;color:var(--ink)}
.row-item .mt{font-size:12.4px;color:var(--ink-2);line-height:1.5;margin-top:1px}
.row-item .amt{margin-left:auto;text-align:right;font-weight:750;font-variant-numeric:tabular-nums;color:var(--ink);display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.row-item .amt .btn{margin-left:6px}

/* base pill — semantic colour applied via .st-* (or legacy .b-* aliases) */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;line-height:1;padding:4px 9px;border-radius:999px;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap;
  background:var(--st-mut-bg);color:var(--st-mut-ink);border:1px solid var(--st-mut-bd);transition:background .14s ease,border-color .14s ease}
/* a small leading dot reinforces the colour for accessibility (not colour-alone);
   only on semantic tokens, never on plain count/code pills */
.st-ok::before,.st-bad::before,.st-warn::before,.st-info::before,.st-mut::before,
.b-ok::before,.b-pend::before,.b-bad::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;opacity:.9}
/* semantic tokens */
.st-ok{background:var(--st-ok-bg);color:var(--st-ok-ink);border-color:var(--st-ok-bd)}
.st-bad{background:var(--st-bad-bg);color:var(--st-bad-ink);border-color:var(--st-bad-bd)}
.st-warn{background:var(--st-warn-bg);color:var(--st-warn-ink);border-color:var(--st-warn-bd)}
.st-info{background:var(--st-info-bg);color:var(--st-info-ink);border-color:var(--st-info-bd)}
.st-mut{background:var(--st-mut-bg);color:var(--st-mut-ink);border-color:var(--st-mut-bd)}
/* legacy aliases — keep older markup resolving to the same semantic tokens */
.b-ok{background:var(--st-ok-bg);color:var(--st-ok-ink);border-color:var(--st-ok-bd)}
.b-pend{background:var(--st-warn-bg);color:var(--st-warn-ink);border-color:var(--st-warn-bd)}
.b-bad{background:var(--st-bad-bg);color:var(--st-bad-ink);border-color:var(--st-bad-bd)}
.in{color:var(--st-ok-ink)}
/* full-width status banner (e.g. checkout success) — semantic colour, no pill/uppercase */
.banner{display:flex;align-items:center;justify-content:center;gap:9px;text-align:center;padding:13px 16px;border-radius:var(--radius-sm);font-weight:750;font-size:14px;letter-spacing:.005em}
.banner::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.banner.st-ok{background:var(--st-ok-bg);color:var(--st-ok-ink);border:1px solid var(--st-ok-bd)}
.banner.st-bad{background:var(--st-bad-bg);color:var(--st-bad-ink);border:1px solid var(--st-bad-bd)}
.banner.st-warn{background:var(--st-warn-bg);color:var(--st-warn-ink);border:1px solid var(--st-warn-bd)}

.kv{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.kv:first-child{padding-top:0}.kv:last-child{border:none;padding-bottom:0}
.kv .k{color:var(--ink-2);flex:none}.kv .v{font-weight:750;text-align:right;color:var(--ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}

.note{background:rgba(86,217,126,.07);border:1px solid var(--line-2);color:var(--ink-2);padding:13px 15px;border-radius:13px;font-size:13px;margin-bottom:15px;line-height:1.55}
.note b{color:var(--ink)}
.linklike{background:none;border:none;color:var(--mint);font:inherit;font-size:13px;cursor:pointer;padding:0;font-weight:600;transition:color .15s ease}
.linklike:hover{color:var(--mint-hi)}

/* =================== business onboarding =================== */
.onb-card{margin-bottom:14px;padding:18px 20px}
.onb-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.onb-title{font-weight:750;font-size:15px;color:var(--ink);flex:1 1 auto;min-width:0;line-height:1.35}
.onb-head .badge{flex:none}
.onb-desc{font-size:12.8px;color:var(--ink-2);line-height:1.55;margin-top:7px}
.onb-control{margin-top:13px;display:flex;flex-direction:column;gap:9px;align-items:flex-start}
.onb-upload{cursor:pointer;display:inline-flex;align-items:center}
.onb-upload svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;margin-right:6px}
.onb-file{display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;background:var(--panel-2,rgba(255,255,255,.03));border:1px solid var(--line);border-radius:var(--radius-sm,11px)}
.onb-file-meta{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
.onb-file-name{font-weight:700;font-size:13.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.onb-file-sub{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-2)}
.onb-file-actions{display:flex;align-items:center;gap:7px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.onb-ubo-row{padding-top:13px;border-top:1px solid var(--line)}
.onb-ubo-row:first-of-type{border-top:none;padding-top:0}
.onb-ubo-label{margin-top:0;font-weight:700;color:var(--ink)}
.onb-sandbox-pill{margin-right:10px;letter-spacing:.06em;font-weight:800}
@media (max-width:560px){
  .onb-file{flex-direction:column;align-items:stretch}
  .onb-file-actions{justify-content:flex-start}
}

/* =================== docs =================== */
.docs-page{min-height:100vh}
.docs-shell{max-width:1180px;margin:0 auto;padding:40px 30px}
.docs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:15px}
.doc-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.doc-title{font-weight:800;margin-bottom:11px;font-size:15.5px;font-family:'Bricolage Grotesque';color:var(--ink)}
.endpoint{display:grid;grid-template-columns:58px 1fr;gap:8px 11px;padding:12px 0;border-top:1px solid var(--line)}
.endpoint:first-of-type{border-top:none}
.endpoint code{font-size:12.5px;word-break:break-word;color:var(--ink)}
.endpoint p{grid-column:2;font-size:12.4px;color:var(--ink-2);line-height:1.5}
.method{display:inline-flex;align-items:center;justify-content:center;height:22px;border-radius:7px;font-size:10.5px;font-weight:800;letter-spacing:.02em}
.method.get{background:rgba(86,160,217,.18);color:#86c4f5}
.method.post{background:rgba(86,217,126,.16);color:#7ee49a}
.method.delete{background:rgba(255,107,107,.16);color:#ff9b9b}

/* =================== modal / toast =================== */
.overlay{position:fixed;inset:0;background:rgba(3,9,7,.72);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px;z-index:50;animation:fade .16s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet{background:var(--panel);border:1px solid var(--line-2);border-radius:18px;padding:24px;width:100%;max-width:470px;box-shadow:0 30px 80px rgba(0,0,0,.6);max-height:92vh;overflow:auto;animation:rise .2s cubic-bezier(.2,.7,.3,1)}
@keyframes rise{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.sheet h3{font-size:22px;margin-bottom:6px;color:var(--ink)}
.sheet .sub{color:var(--ink-2);font-size:13.5px;margin-bottom:18px;line-height:1.5}
.close{float:right;border:none;background:rgba(255,255,255,.06);width:32px;height:32px;border-radius:9px;cursor:pointer;font-size:17px;color:var(--ink-2);transition:background .14s ease,color .14s ease;display:grid;place-items:center}
.close:hover{background:rgba(255,107,107,.14);color:#ff9b9b}
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--elevated);color:var(--ink);padding:13px 20px;border-radius:12px;font-size:14px;font-weight:600;z-index:60;box-shadow:0 18px 44px rgba(0,0,0,.5);border:1px solid var(--line-2);animation:rise .22s ease}

/* =================== tables =================== */
table{width:100%;border-collapse:collapse;font-size:13.2px;color:var(--ink)}
th,td{text-align:left;padding:11px 9px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--ink-2);font-weight:750;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
td b{color:var(--ink)}
.crow{display:flex;gap:6px;margin-top:11px}
.crow .btn{flex:1;padding:7px 6px;font-size:12px;background:rgba(86,217,126,.10);color:var(--mint);border:1px solid var(--line-2);min-width:0}
.crow .btn:hover{background:rgba(86,217,126,.18)}.crow .btn svg{width:13px;height:13px}
.addrbox{background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:14px;font-family:ui-monospace,monospace;font-size:13px;word-break:break-all;margin-bottom:14px;color:var(--ink-2)}
pre{color:var(--ink-2)}

/* =================== auth =================== */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:
  radial-gradient(900px 600px at 50% -10%,rgba(86,217,126,.14),transparent 60%),
  linear-gradient(180deg,var(--bg) 0,var(--bg-deep) 100%)}
.auth-card{background:var(--panel);border:1px solid var(--line-2);border-radius:20px;box-shadow:0 32px 80px rgba(0,0,0,.55);width:100%;max-width:436px;padding:30px}
.auth-card .brand{margin-bottom:22px}
.tabs{display:flex;gap:4px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:5px;margin-bottom:20px}
.tabs button{flex:1;border:none;background:transparent;padding:10px;border-radius:9px;font-weight:700;cursor:pointer;font-family:inherit;color:var(--ink-2);font-size:13.5px;transition:background .15s ease,color .15s ease}
.tabs button.on{background:var(--grad);color:#06130d;box-shadow:0 6px 16px rgba(34,192,106,.25)}
.tabs button:not(.on):hover{color:var(--ink)}
.err{background:rgba(255,107,107,.1);color:#ff9b9b;padding:11px 13px;border:1px solid rgba(255,107,107,.3);border-radius:11px;font-size:13px;margin-bottom:13px}
.hint{font-size:12.5px;color:var(--muted);margin-top:11px;text-align:center;line-height:1.55}

/* =================== advanced admin console =================== */
.admin-console{display:grid;gap:15px}
.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.admin-metric{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow-sm);min-width:0}
.admin-metric.warn{border-color:rgba(215,173,69,.4);background:rgba(215,173,69,.07)}
.admin-metric span{display:block;color:var(--ink-2);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.admin-metric strong{display:block;font-family:'Bricolage Grotesque';font-size:25px;line-height:1.1;margin:8px 0 4px;overflow-wrap:anywhere;color:var(--ink);letter-spacing:-.02em}
.admin-metric em{display:block;color:var(--ink-2);font-style:normal;font-size:12px;line-height:1.4}
.admin-balance-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden}
.admin-balance-strip div{background:var(--panel);padding:13px 15px}
.admin-balance-strip span{display:block;font-size:11px;font-weight:800;color:var(--mint);letter-spacing:.05em}
.admin-balance-strip strong{font-size:19px;font-family:'Bricolage Grotesque';color:var(--ink)}
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--line);border-radius:13px;padding:6px}
.admin-tabs button{border:none;background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:750;padding:9px 14px;border-radius:9px;cursor:pointer;transition:background .14s ease,color .14s ease}
.admin-tabs button.on{background:var(--grad);color:#06130d}
.admin-tabs button:hover:not(.on){background:rgba(255,255,255,.05);color:var(--ink)}
.admin-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:15px;align-items:start}
.admin-split.two-even{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px;min-width:0}
.admin-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:13px;flex-wrap:wrap}
.admin-panel-head h2,.detail-head h2{font-size:20px;line-height:1.12;color:var(--ink)}
.admin-panel-head p,.detail-head p{color:var(--ink-2);font-size:12.5px;line-height:1.5;margin-top:5px}
.admin-filterbar{display:grid;grid-template-columns:1fr 140px 140px;gap:9px;margin-bottom:11px}
.admin-filterbar input,.admin-filterbar select,.admin-controls select{margin-bottom:0}
.admin-table-wrap{overflow:auto;max-width:100%}
.admin-table th{white-space:nowrap}
.admin-table td{font-size:12.7px}
.admin-table tr[data-user-select]{cursor:pointer}
.admin-table tr[data-user-select]:hover td{background:rgba(255,255,255,.035)}
.admin-table tr.selected td{background:rgba(86,217,126,.10)}
.admin-table td b{display:block;font-size:13px}
.admin-table td small{display:block;color:var(--ink-2);font-size:11.5px;margin-top:3px}
.admin-table .actions{white-space:nowrap;min-width:150px}
.detail-panel{position:sticky;top:22px}
.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:13px}
.detail-head span{display:block;text-transform:uppercase;color:var(--mint);font-size:11px;font-weight:800;letter-spacing:.08em}
.detail-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.detail-grid .admin-metric{box-shadow:none;background:var(--panel-2)}
.admin-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}
.mini-card{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:13px;min-width:0}
.mini-card span{display:block;color:var(--mint);font-size:11px;font-weight:800}
.mini-card strong{display:block;font-family:'Bricolage Grotesque';font-size:20px;margin:5px 0;color:var(--ink)}
.mini-card small{display:block;color:var(--ink-2);font-size:11.5px;word-break:break-word;line-height:1.4}
.compact-list{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.compact-list div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px;padding:11px 13px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.compact-list div:last-child{border-bottom:none}
.compact-list b{font-size:12.5px;color:var(--ink)}
.compact-list span{font-size:12.5px;color:var(--ink-2);overflow-wrap:anywhere}
.compact-list em{grid-column:2;color:var(--muted);font-size:11.5px;font-style:normal;line-height:1.45}
.grid3 .card,.card .card{background:var(--panel-2)}

/* =================== public marketing front (dev fallback) =================== */
.land{min-height:100vh;overflow-x:hidden;background:linear-gradient(180deg,var(--bg) 0,var(--bg-deep) 100%)}
.land-nav{display:flex;justify-content:space-between;align-items:center;padding:18px 30px;max-width:1240px;margin:0 auto}
.land-r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.land-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(86,217,126,.10);color:var(--mint);font-size:12px;font-weight:800;padding:7px 13px;border:1px solid var(--line-2);border-radius:999px;margin-bottom:18px;max-width:100%;white-space:normal}
.land-sub{font-size:18px;line-height:1.62;color:var(--ink-2);margin:18px 0 26px;max-width:690px;overflow-wrap:break-word}
.land-actions{display:flex;gap:12px;flex-wrap:wrap}
.trust-strip{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.trust-strip span{font-size:12px;font-weight:700;color:var(--ink-2);background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:999px;padding:7px 12px}
.section-head{margin-bottom:18px}
.section-head span{display:block;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--mint)}
.section-head h2,.section-head h1{font-size:34px;max-width:760px;margin-top:7px;color:var(--ink);letter-spacing:-.025em}
.section-head p{color:var(--ink-2);line-height:1.6;margin-top:11px;max-width:850px}
.land-foot{text-align:center;color:var(--muted);font-size:12px;padding:36px 24px;border-top:1px solid var(--line);margin-top:42px}
.land-foot code{color:var(--ink-2)}

.mkt{background:transparent;color:var(--ink)}
.mkt-nav{position:sticky;top:0;z-index:30;background:rgba(7,19,15,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.mkt-nav-inner{max-width:1240px;margin:0 auto;padding:13px 28px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px}
.mkt-menu-toggle{display:none;border:1px solid var(--line);background:var(--panel);border-radius:10px;width:42px;height:42px;color:var(--ink)}
.mkt-menu-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.mkt-links{display:flex;gap:4px;align-items:center}
.mkt-nav-item{border:none;background:transparent;border-radius:9px;padding:10px 13px;font:inherit;font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer;transition:background .14s ease,color .14s ease}
.mkt-nav-item:hover,.mkt-nav-item:focus{background:rgba(86,217,126,.10);color:var(--mint);outline:none}
.mkt-actions{display:flex;gap:12px;align-items:center}
.mkt-mega{max-width:1240px;margin:0 auto;display:none;padding:0 28px 12px}.mkt-mega.open{display:block}
.mkt-mega-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;background:var(--panel);border:1px solid var(--line-2);color:var(--ink);border-radius:14px;padding:14px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.mkt-mega-card .linklike{color:var(--ink-2);text-align:left;padding:10px;border-radius:9px}
.mkt-mega-card .linklike:hover{background:rgba(255,255,255,.05);color:var(--ink)}
.mkt-hero{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 480px;gap:38px;align-items:center;padding:54px 28px 34px}
.mkt-hero-copy h1{font-size:60px;line-height:1.0;max-width:760px;color:var(--ink);letter-spacing:-.03em}
.quote-card{background:linear-gradient(150deg,#0e2a1f,#0a1c14);color:var(--ink);border:1px solid var(--line-2);border-radius:20px;padding:20px;box-shadow:0 32px 90px rgba(0,0,0,.5)}
.quote-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:rgba(255,255,255,.05);border-radius:11px;padding:5px;margin-bottom:16px}
.quote-tabs button,.coverage-tabs button{border:none;border-radius:9px;background:transparent;color:var(--ink-2);font:inherit;font-size:12px;font-weight:750;padding:9px;cursor:pointer;transition:background .14s ease,color .14s ease}
.quote-tabs button.on{background:var(--grad);color:#06130d}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quote-card label{color:var(--ink-2)}
.quote-card input,.quote-card select{background:var(--panel-2);color:var(--ink);border-color:var(--line);margin-top:5px}
.quote-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:13px 0;background:var(--line);border-radius:11px;overflow:hidden}
.quote-breakdown div{background:var(--panel-2);padding:13px}
.quote-breakdown span{display:block;font-size:11px;color:var(--ink-2);font-weight:750;text-transform:uppercase}
.quote-breakdown strong{display:block;font-size:13px;margin-top:5px;color:var(--ink)}
.quote-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.quote-note{color:var(--muted);font-size:12px;line-height:1.5;margin-top:13px}
.mkt-strip{max-width:1240px;margin:0 auto;padding:10px 28px 22px;display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.mkt-strip article,.mkt-product-card,.price-table,.developer-rail article,.phone-mock{background:var(--panel);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-sm)}
.mkt-strip article{padding:17px}.mkt-strip b{display:block;font-size:15px;color:var(--ink)}
.mkt-strip span{display:block;color:var(--ink-2);font-size:12.5px;line-height:1.5;margin-top:7px}
.mkt-section{max-width:1240px;margin:0 auto;padding:58px 28px}
.price-table{overflow:auto;padding:4px}.price-table table{min-width:720px}
.price-table th{background:rgba(86,217,126,.08);color:var(--mint)}
.price-table td:first-child{font-weight:750;color:var(--ink)}
.mkt-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.mkt-product-card{padding:19px;min-height:190px;display:flex;flex-direction:column;gap:11px}
.mkt-product-card .ic{width:44px;height:44px;border-radius:11px;background:rgba(86,217,126,.12);color:var(--mint);display:grid;place-items:center;border:1px solid var(--line-2)}
.mkt-product-card .ic svg,.business-band svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
.mkt-product-card h3{font-size:20px;color:var(--ink)}
.mkt-product-card p{color:var(--ink-2);font-size:13.5px;line-height:1.55;flex:1}
.compliance-band{display:grid;grid-template-columns:.8fr 1fr;gap:24px;background:linear-gradient(140deg,#0e2a1f,#081610);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);max-width:none;padding-left:calc((100vw - 1240px)/2 + 28px);padding-right:calc((100vw - 1240px)/2 + 28px)}
.compliance-band p{color:var(--ink-2);line-height:1.6}
.compliance-band span{color:var(--mint);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.compliance-band ul{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;list-style:none}
.compliance-band li{display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:11px;padding:13px}
.compliance-band li svg{width:17px;height:17px;stroke:var(--mint);fill:none;stroke-width:2;flex:none}
.compliance-band li span{color:var(--ink);text-transform:none;letter-spacing:0;font-size:13px;font-weight:600}
.business-band{background:var(--panel-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:none;padding-left:calc((100vw - 1240px)/2 + 28px);padding-right:calc((100vw - 1240px)/2 + 28px)}
.mkt-use-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:18px 0}
.mkt-use-grid div{display:flex;gap:11px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:15px;color:var(--ink)}
.mkt-use-grid div svg{stroke:var(--mint);flex:none}.mkt-use-grid b{font-size:14px}
.api-band{background:var(--panel-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:none;padding-left:calc((100vw - 1240px)/2 + 28px);padding-right:calc((100vw - 1240px)/2 + 28px)}
.developer-rail{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}
.developer-rail article{padding:16px}
.developer-rail code{display:block;font-size:13px;font-weight:800;color:var(--mint);margin-bottom:9px}
.developer-rail p{font-size:12.5px;color:var(--ink-2);line-height:1.5}
.webdash{display:grid;grid-template-columns:minmax(0,1fr) 260px auto;gap:20px;align-items:center;background:linear-gradient(140deg,#0e2a1f,#081610);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);max-width:none;padding-left:calc((100vw - 1240px)/2 + 28px);padding-right:calc((100vw - 1240px)/2 + 28px)}
.webdash span{color:var(--mint);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.webdash p{color:var(--ink-2)}
.phone-mock{background:var(--panel);color:var(--ink);padding:19px;display:grid;gap:8px;border-radius:18px}
.phone-mock b{font-size:18px}.phone-mock span{color:var(--mint);letter-spacing:0;font-weight:700}
.phone-mock strong{font-size:30px;font-family:'Bricolage Grotesque';color:var(--ink)}
.coverage-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}
.coverage-tabs button{background:rgba(255,255,255,.05);color:var(--ink-2)}
.coverage-tabs button.on{background:var(--grad);color:#06130d}
.coverage-panel{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.coverage-panel span{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-size:13px;font-weight:650;color:var(--ink)}
.mkt-footer{background:var(--bg-deep);border-top:1px solid var(--line);color:var(--ink-2);padding:46px 28px}
.mkt-footer-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.mkt-footer h3{font-size:16px;margin-bottom:11px;color:var(--ink)}
.mkt-footer .linklike{display:block;color:var(--ink-2);text-align:left;margin:9px 0;font-weight:500}
.mkt-footer .linklike:hover{color:var(--mint)}
.footer-disclosure{max-width:1240px;margin:24px auto 0;color:var(--muted);font-size:12px;line-height:1.6}

/* =================== responsive =================== */
@media(max-width:1180px){
  .admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-split,.admin-split.two-even{grid-template-columns:1fr}
  .detail-panel{position:static}
  .mkt-hero{grid-template-columns:1fr}.quote-card{max-width:720px}
  .mkt-card-grid,.mkt-strip,.mkt-use-grid{grid-template-columns:repeat(2,1fr)}
  .developer-rail{grid-template-columns:repeat(3,1fr)}.webdash{grid-template-columns:1fr 260px}
}
@media(max-width:980px){
  .land-hero h1,.mkt-hero-copy h1{font-size:42px}
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;gap:4px;padding:14px}
  .side .brand{width:100%}.side .spacer{display:none}
  .main{padding:22px}
  .mkt-menu-toggle{display:grid;place-items:center}
  .mkt-nav-inner{grid-template-columns:auto 1fr auto}
  .mkt-links{display:none;grid-column:1/-1;grid-template-columns:1fr;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px}
  .mkt-links.open{display:grid}.mkt-nav-item{text-align:left}.mkt-mega{padding-left:18px;padding-right:18px}
  .compliance-band,.business-band,.webdash,.api-band{padding-left:28px;padding-right:28px}
  .compliance-band{grid-template-columns:1fr}.mkt-footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .land,.mkt,.mkt main,.mkt-nav,#app{width:100%;max-width:100vw;overflow-x:clip}
  .land-nav{padding:14px 18px;align-items:flex-start;flex-wrap:wrap;gap:12px}
  .land-r{width:100%;display:grid;grid-template-columns:1fr;gap:8px}.land-r .btn{width:100%}
  .mkt-hero{display:block;width:100%;padding:34px 18px;max-width:100vw;overflow-x:clip}
  .mkt-hero>*{min-width:0}
  .mkt-hero-copy{width:calc(100vw - 36px);min-width:0;max-width:calc(100vw - 36px);overflow:hidden}
  .land-hero h1,.mkt-hero-copy h1{display:block;width:100%;font-size:30px;line-height:1.12;max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .land-sub{width:100%;font-size:15.5px;max-width:100%;overflow-wrap:anywhere}
  .land-actions{width:100%;max-width:calc(100vw - 36px)}.land-actions .btn{width:100%}
  .trust-strip{width:100%;max-width:calc(100vw - 36px)}.trust-strip span{max-width:100%;overflow-wrap:anywhere}
  .quote-card{width:calc(100vw - 36px);max-width:calc(100vw - 36px);min-width:0;padding:14px;margin-top:28px;overflow:hidden}
  .quote-grid,.quote-breakdown,.quote-actions,.mkt-card-grid,.mkt-strip,.mkt-use-grid,.developer-rail,.webdash,.mkt-footer-grid{grid-template-columns:1fr}
  .docs-shell,.mkt-section{padding-left:18px;padding-right:18px;max-width:100vw;overflow:hidden}
  .row{flex-direction:column}
  .row-item{align-items:flex-start}.row-item .amt{margin-left:0;text-align:left;align-items:flex-start}
  .top h1{font-size:25px}.main{padding:18px}.hero .big{font-size:33px}
  .endpoint{grid-template-columns:1fr}.endpoint p{grid-column:1}
  .admin-metrics,.detail-grid,.admin-controls,.admin-filterbar{grid-template-columns:1fr}
  .compact-list div{grid-template-columns:1fr}.compact-list em{grid-column:1}.admin-panel{padding:13px}
  .mkt-nav-inner{padding:12px 16px;gap:10px;grid-template-columns:auto minmax(0,1fr) auto}
  .mkt-actions{gap:8px}.mkt-actions .btn{display:none}.mkt-actions .linklike{font-size:12.5px;white-space:nowrap}
  .quote-tabs{grid-template-columns:1fr}.quote-tabs button{white-space:normal;overflow-wrap:anywhere}
  .compliance-band ul{grid-template-columns:1fr}.mkt-section{padding-top:40px;padding-bottom:40px}
  .mkt-footer{padding-left:18px;padding-right:18px}
  .acct-menu{min-width:220px}
}

/* =================== branded cursor =================== */
html, body { cursor: url("/media/cursor.png") 3 2, auto; }
a, button, [role="button"], input[type="submit"], input[type="button"], label, summary, select, .clickable { cursor: pointer; }
