
/* Layout: investor statement world. Public site = left-aligned narrative + statement cards; client/admin = sidebar app shell with ledger tables. */
:root{
  --bg:#f6f4fc; --surface:#ffffff; --sunk:#efebfa; --ink:#14101f; --muted:#5d5873; --line:#e2deef;
  --accent:#2e234b; --accent-ink:#ffffff; --accent-soft:#ece8f8; --gold:#6a4fd6; --coral:#ffb198;
  --good:#1f7a52; --bad:#b4372b; --warn:#9a6a12; --warn-bg:#fbf1dc; --scrim:rgb(20 12 40/.5);
  --font-display:"Sora","Segoe UI",system-ui,sans-serif;
  --font-body:"IBM Plex Sans","Hind Siliguri","Segoe UI",system-ui,sans-serif;
  --font-bn:"Hind Siliguri","IBM Plex Sans","Nirmala UI",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --r:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#120e1f; --surface:#1a1430; --sunk:#161127; --ink:#f1eff8; --muted:#a9a3c2; --line:#2d2547;
  --accent:#ffb198; --accent-ink:#2e234b; --accent-soft:#2a2142; --gold:#ffb198; --good:#5fd39b; --bad:#f07a6c; --warn:#e0b45c; --warn-bg:#2e2615; --scrim:rgb(0 0 0/.6); color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#120e1f; --surface:#1a1430; --sunk:#161127; --ink:#f1eff8; --muted:#a9a3c2; --line:#2d2547;
  --accent:#ffb198; --accent-ink:#2e234b; --accent-soft:#2a2142; --gold:#ffb198; --good:#5fd39b; --bad:#f07a6c; --warn:#e0b45c; --warn-bg:#2e2615; --scrim:rgb(0 0 0/.6); color-scheme:dark;}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.55}
html[lang="bn"] body{font-family:var(--font-bn);font-size:16px}
.wrap{max-width:1160px;margin:0 auto;padding-inline:20px}
h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;margin:0;line-height:1.15}
html[lang="bn"] :is(h1,h2,h3,h4){font-family:var(--font-bn);font-weight:600}
p{margin:0}
a{color:var(--accent)}
.num,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
html[lang="bn"] .eyebrow{letter-spacing:0;text-transform:none;font-size:13px}
.muted{color:var(--muted)} .hint{font-size:13px;color:var(--muted)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);padding:10px 18px;border-radius:8px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.quiet{background:transparent;border-color:var(--line);color:var(--ink)}
.btn.small{padding:6px 12px;font-size:14px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn:not([disabled]):hover{filter:brightness(1.06)}
.linkbtn{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;font-weight:600}

.pill{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;font-weight:600;white-space:nowrap;background:var(--accent-soft);color:var(--accent)}
.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.bad{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
.pill.neutral{background:var(--sunk);color:var(--muted)}
.pos{color:var(--good)} .neg{color:var(--bad)}

.site-top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-top .wrap{display:flex;align-items:center;gap:20px;padding-block:12px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink);text-decoration:none;cursor:pointer;background:none;border:0;padding:0}
.mark{width:30px;height:30px;border-radius:7px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--font-mono);font-size:12px;font-weight:500}
.site-nav{display:flex;gap:18px;overflow-x:auto;white-space:nowrap}
.site-nav a{color:var(--muted);text-decoration:none;font-size:14px;font-weight:500}
.site-nav a:hover{color:var(--ink)}
.top-right{margin-left:auto;display:flex;gap:10px;align-items:center}
.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.lang button{border:0;background:transparent;padding:5px 10px;cursor:pointer;color:var(--muted);font-size:13px}
.lang button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.risk-bar{background:var(--sunk);font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}
.risk-bar .wrap{padding-block:6px}

section{padding-block:64px}
.tint{background:var(--sunk)}
.h2{font-size:clamp(26px,3.4vw,36px);margin-top:6px}
.sublede{margin-top:10px;color:var(--muted);max-width:62ch}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding-block:56px 48px}
.hero h1{font-size:clamp(36px,5.2vw,60px);letter-spacing:-.02em}
.hero .lede{margin-top:18px;font-size:18px;color:var(--muted);max-width:52ch}
.cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.trustline{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px;font-size:13px;color:var(--muted)}
.trustline span::before{content:"✓ ";color:var(--accent);font-weight:700}
.statement{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 18px 40px -24px rgb(13 92 70/.35);min-width:0}
.statement .row{display:flex;justify-content:space-between;gap:12px;padding-block:9px;border-bottom:1px dashed var(--line)}
.statement .row:last-child{border-bottom:0}
.statement .big{font-size:32px;color:var(--gold);font-family:var(--font-mono)}
.statement .head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.facts{background:var(--accent);color:var(--accent-ink)}
.facts .wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;padding-block:22px}
.fact{display:grid;gap:2px;min-width:0}
.fv{font-size:28px;font-weight:500}
.fl{font-size:13px;opacity:.85}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;min-width:0}
.syms{display:flex;flex-wrap:wrap;gap:6px;margin-block:10px}
.syms span{font-family:var(--font-mono);font-size:13px;padding:4px 9px;border-radius:6px;background:var(--accent-soft);color:var(--accent)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:28px}
.step{padding:22px 18px 0 0;border-right:1px solid var(--line);margin-right:18px}
.step:last-child{border-right:0;margin-right:0}
.step .n{font-family:var(--font-mono);color:var(--accent);font-size:13px}
.step h3{font-size:18px;margin-top:8px}
.step p{color:var(--muted);margin-top:8px;font-size:14px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.lanes{display:grid;gap:12px;margin-top:20px}
.lane{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.lane b{font-family:var(--font-mono);font-size:13px;color:var(--accent)}
.lane span{color:var(--muted);font-size:14px}
.pipeline ol{list-style:none;margin:14px 0 0;padding:0;counter-reset:pl}
.pipeline li{counter-increment:pl;display:grid;grid-template-columns:30px 1fr;column-gap:12px;row-gap:2px;padding-block:12px;border-top:1px solid var(--line)}
.pipeline li::before{content:counter(pl);grid-row:span 2;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);display:grid;place-items:center;font-family:var(--font-mono);font-size:12px}
.pipeline li span{color:var(--muted);font-size:14px}
.plan{display:grid;gap:6px;align-content:start}
.plan.feature{border:2px solid var(--accent)}
.plan .price{font-size:30px;color:var(--gold);margin-top:6px}
.plan ul{margin:10px 0 14px;padding-left:18px;display:grid;gap:6px}
.risk{background:var(--warn-bg);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.risk ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px}
details{border-bottom:1px solid var(--line);padding-block:14px}
details summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
details summary::after{content:"+";color:var(--accent);font-family:var(--font-mono)}
details[open] summary::after{content:"–"}
details p{color:var(--muted);margin-top:8px;max-width:72ch}
.methods{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.methods span{border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:13px;background:var(--surface)}
footer.site-foot{border-top:1px solid var(--line);padding-block:32px;color:var(--muted);font-size:13px}
.foot-cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:20px;margin-bottom:20px}
.foot-cols h4{font-size:13px;color:var(--ink);margin-bottom:8px}
.foot-links{display:grid;gap:6px}
.foot-links a{color:var(--muted);text-decoration:none;cursor:pointer}
.legal{font-size:12px;max-width:100ch;margin-top:8px}

.field{display:grid;gap:6px;min-width:0}
.field label{font-size:13px;color:var(--muted);font-weight:500}
.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px 12px;width:100%}
.field textarea{min-height:90px;resize:vertical}
.field .err{color:var(--bad);font-size:13px}
[hidden]{display:none!important}
.form{display:grid;gap:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.check input{margin-top:4px}
.notice{padding:12px 14px;border-radius:8px;background:var(--accent-soft);font-size:14px}
.notice.warn{background:var(--warn-bg)}
.notice.bad{background:color-mix(in srgb,var(--bad) 12%,transparent)}
.radio-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.radio-cards label{border:1px solid var(--line);border-radius:10px;padding:14px;cursor:pointer;display:grid;gap:4px;background:var(--surface);color:var(--ink);font-size:14px;position:relative}
.radio-cards input{position:absolute;opacity:0;pointer-events:none}
.radio-cards label:has(input:checked){border:2px solid var(--accent);padding:13px}
.radio-cards label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}

.auth{max-width:560px;margin:48px auto 64px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px}
.auth.narrow{max-width:420px}
.stepper{display:flex;gap:6px;margin-block:16px 22px}
.stepper span{flex:1;height:4px;border-radius:4px;background:var(--line)}
.stepper span.on{background:var(--accent)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0;min-width:0;overflow-wrap:anywhere}

.app{display:grid;grid-template-columns:232px 1fr;min-height:100%}
.side{background:var(--surface);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow:auto}
.side nav{display:grid;gap:2px}
.side nav :is(button,a){display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;border:0;background:transparent;padding:9px 12px;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:500}
.side nav :is(button,a)[aria-current="page"]{background:var(--accent-soft);color:var(--accent)}
.side nav :is(button,a):hover{color:var(--ink)}
.badge{background:var(--bad);color:#fff;border-radius:999px;font-size:11px;padding:1px 7px;font-family:var(--font-mono)}
.side .who{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:8px;font-size:13px}
.main{min-width:0;padding:24px 28px 80px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.page-head h2{font-size:28px}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.tile .v{font-family:var(--font-mono);font-size:24px;margin-top:6px;font-variant-numeric:tabular-nums}
.tile .s{font-size:13px;color:var(--muted);margin-top:4px}
.tile.key .v{color:var(--gold)}
.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0}
.panel + .panel{margin-top:16px}
.panel h3{font-size:17px}
.panel .sub{color:var(--muted);font-size:13px;margin-top:2px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.chart{margin-top:12px}
.chart svg{display:block;width:100%;height:auto}
.tscroll{overflow-x:auto;margin-top:12px}
table{border-collapse:collapse;width:100%;font-size:14px}
th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
html[lang="bn"] th{text-transform:none;letter-spacing:0;font-size:13px}
td{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
td.r,th.r{text-align:right}
tr.clickable{cursor:pointer} tr.clickable:hover td{background:var(--sunk)}
.empty{padding:28px;text-align:center;color:var(--muted)}
.months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.month{border:1px solid var(--line);border-radius:8px;padding:10px;display:grid;gap:2px}
.month .m{font-size:12px;color:var(--muted)}
.month .p{font-family:var(--font-mono);font-size:17px}
.banner{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;border-radius:var(--r);background:var(--warn-bg);border:1px solid var(--line);margin-bottom:16px}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;cursor:pointer;font-size:13px;color:var(--muted)}
.filters button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.payinfo{display:grid;gap:8px;background:var(--sunk);border-radius:10px;padding:14px;font-size:14px}
.payinfo .line{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.payinfo b{overflow-wrap:anywhere}
.copy{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer}
.thread{display:grid;gap:10px;margin-top:12px}
.msg{padding:10px 12px;border-radius:10px;background:var(--sunk);max-width:80%;font-size:14px}
.msg.me{background:var(--accent-soft);justify-self:end}
.msg .when{font-size:11px;color:var(--muted);margin-top:4px}
.notes-row{display:flex;justify-content:space-between;gap:12px;padding-block:10px;border-bottom:1px solid var(--line)}

.modal-scrim{position:fixed;inset:0;background:var(--scrim);display:grid;place-items:center;padding:16px;z-index:50}
.modal{background:var(--surface);border-radius:14px;max-width:640px;width:100%;max-height:calc(100% - 32px);overflow:auto;padding:24px;border:1px solid var(--line)}
.sheet{border:1px solid var(--line);border-radius:10px;padding:18px;margin-top:14px}
.sheet .row{display:flex;justify-content:space-between;gap:12px;padding-block:8px;border-bottom:1px dashed var(--line)}
.sheet .row.total{border-bottom:0;font-weight:600}

/* receipts */
.rcpt{position:relative;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.rcpt-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:18px 20px;background:var(--accent);color:var(--accent-ink)}
.rcpt-head .brand-sm{display:flex;gap:10px;align-items:center;font-family:var(--font-display);font-weight:700;font-size:17px}
.rcpt-head .brand-sm .mark{background:var(--accent-ink);color:var(--accent)}
.rcpt-head .rno{text-align:right;font-size:12px;opacity:.9}
.rcpt-head .rno b{display:block;font-family:var(--font-mono);font-size:14px;opacity:1}
.rcpt-amt{padding:18px 20px 6px;display:grid;gap:4px}
.rcpt-amt .big{font-family:var(--font-mono);font-size:32px;font-variant-numeric:tabular-nums}
.rcpt-body{padding:6px 20px 16px}
.rcpt-body .row{display:flex;justify-content:space-between;gap:16px;padding-block:8px;border-bottom:1px dashed var(--line);font-size:14px}
.rcpt-body .row span:first-child{color:var(--muted)}
.rcpt-body .row span:last-child{text-align:right;overflow-wrap:anywhere;min-width:0}
.rcpt-body .row.total{font-weight:600;border-bottom:0}
.rcpt-tear{border-top:2px dashed var(--line);margin-inline:12px}
.rcpt-foot{padding:14px 20px 18px;display:grid;gap:6px;font-size:12px;color:var(--muted)}
.stamp{position:absolute;right:18px;top:96px;transform:rotate(-8deg);border:2px solid currentColor;border-radius:8px;padding:4px 12px;font-family:var(--font-mono);font-weight:500;font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.stamp.completed{color:var(--good)} .stamp.pending{color:var(--warn)} .stamp.rejected,.stamp.cancelled{color:var(--bad)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(76px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-size:14px;z-index:60;max-width:calc(100% - 32px)}
.dock{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;box-shadow:0 8px 24px -12px rgb(0 0 0/.35);align-items:center}
.dock span{font-size:11px;color:var(--muted);padding-inline:8px;font-weight:600;letter-spacing:.06em}
.dock button{border:0;background:transparent;border-radius:999px;padding:6px 11px;cursor:pointer;font-size:13px;color:var(--muted)}
.dock button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}

@media (max-width:960px){
  .hero,.split,.grid2{grid-template-columns:1fr}
  .grid3{grid-template-columns:1fr}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr 1fr}
  .step{border-right:0;margin-right:0;padding-right:0;border-bottom:1px solid var(--line);padding-bottom:16px}
  .facts .wrap{grid-template-columns:repeat(3,1fr)}
  .foot-cols{grid-template-columns:1fr 1fr}
  .site-nav{display:none}
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px 12px;border-right:0;border-bottom:1px solid var(--line)}
  .side nav{display:flex;overflow-x:auto;width:100%;order:3}
  .side nav :is(button,a){white-space:nowrap}
  .side .who{margin-top:0;border-top:0;padding-top:0;margin-left:auto;display:flex;align-items:center}
  .side .who .hide-sm{display:none}
  .main{padding:18px 16px 96px}
}
@media (max-width:520px){
  .tiles,.steps,.radio-cards,.two{grid-template-columns:1fr}
  .facts .wrap{grid-template-columns:repeat(2,1fr)}
  .months{grid-template-columns:repeat(2,1fr)}
  .foot-cols{grid-template-columns:1fr}
  .top-right .btn.ghost{display:none}
  .lane{grid-template-columns:1fr}
  .dock span{display:none}
  .auth{padding:20px}
}
.side nav a{text-decoration:none}
.badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--bad);color:#fff;font-size:11px;font-weight:600}
.side.admin{background:var(--sunk)}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:var(--accent-soft)}
.check{display:flex;gap:8px;align-items:center;font-size:14px}
.notes-row{display:flex;justify-content:space-between;gap:12px;padding-block:10px;border-bottom:1px solid var(--line)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);font:inherit;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.tabbar{display:none}
@media (max-width:960px){
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .tabbar a{display:grid;justify-items:center;gap:2px;font-size:11px;color:var(--muted);text-decoration:none;padding:4px 2px;border-radius:8px}
  .tabbar a span{font-size:18px;line-height:1}
  .tabbar a[aria-current="page"]{color:var(--accent);background:var(--accent-soft)}
  .app:has(.tabbar) .main{padding-bottom:84px}
}
/* live selfie */
.live-cam{position:relative;margin-top:12px;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:4/3;max-height:60vh}
.live-cam video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);display:block}
.live-oval{position:absolute;inset:8% 22%;border:3px dashed rgb(255 255 255/.75);border-radius:50%;pointer-events:none}
.live-msg{margin-top:12px;font-weight:600;font-size:17px;text-align:center;min-height:1.6em}
.live-steps{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.live-steps span{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--sunk);color:var(--muted)}
.live-steps span.now{background:var(--accent-soft);color:var(--accent);font-weight:600}
.live-steps span.on{background:var(--accent);color:var(--accent-ink)}
.live-done{display:flex;align-items:center;gap:12px;margin:6px 0}
.live-done img{width:72px;height:72px;object-fit:cover;border-radius:10px;transform:scaleX(-1)}
.label-like{font-weight:500;font-size:14px}
.kyc-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.kyc-docs figure{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--sunk)}
.kyc-docs img{width:100%;height:130px;object-fit:cover;display:block;cursor:zoom-in}
.kyc-docs figcaption{font-size:12px;padding:6px 8px;display:flex;justify-content:space-between;gap:6px}
.kyc-docs .missing{display:grid;place-items:center;height:130px;color:var(--bad);font-size:13px;text-align:center;padding:8px}
.audit-row td{vertical-align:top}
.audit-detail{font-size:13px;color:var(--muted);white-space:normal}
/* camera capture of documents */
.cap-card{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}
.cap-card.done{border-color:var(--accent);background:var(--accent-soft)}
.cap-ex svg,.cap-ex img{width:100%;height:auto;display:block;border-radius:8px}
.cap-ex img{aspect-ratio:1.586;object-fit:cover}
.ok-line{color:var(--accent);font-weight:600;margin:6px 0}
.cap-head{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;margin-top:8px}
.cap-head svg{width:100%;height:auto}
.cap-tips{margin:0;padding-left:18px;display:grid;gap:3px}
.doc-cam{position:relative;margin-top:10px;border-radius:12px;overflow:hidden;background:#000;max-height:58vh;aspect-ratio:4/3}
.doc-cam video{width:100%;height:100%;object-fit:contain;display:block}
.doc-guide{position:absolute;border:3px solid #e0b45c;border-radius:10px;box-shadow:0 0 0 9999px rgb(0 0 0/.35);pointer-events:none}
.doc-meter{position:absolute;left:10%;right:10%;bottom:10px;height:6px;border-radius:3px;background:rgb(255 255 255/.25)}
.doc-meter span{display:block;height:100%;width:0;border-radius:3px;background:#4cc39a;transition:width .15s}
@media (max-width:520px){.cap-card{grid-template-columns:96px 1fr}.cap-head{grid-template-columns:90px 1fr}}
/* printable statement */
.print-bar{display:flex;gap:10px;justify-content:space-between;align-items:center;max-width:820px;margin:16px auto;padding:0 16px}
.print-doc{max-width:820px;margin:0 auto 40px;background:var(--surface);color:var(--ink);padding:32px;border:1px solid var(--line);border-radius:12px;display:grid;gap:14px}
.print-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--accent);padding-bottom:12px}
.print-head .r{text-align:right}
.print-table{width:100%;border-collapse:collapse}
.print-table td,.print-table th{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}
.print-table .r{text-align:right}
.print-table tr.total td{border-top:2px solid var(--ink)}
.print-doc{width:calc(100% - 32px);min-width:0}
.print-table-scroll{min-width:0;overflow-x:auto}
@media (max-width:520px){.print-bar{flex-wrap:wrap}.print-doc{padding:16px}.print-head{gap:12px;flex-wrap:wrap}}
@media print{
  body{background:#fff !important;color:#000}
  .no-print,.toast,#modal-root{display:none !important}
  .print-doc{border:0;padding:0;max-width:none;width:100%;margin:0;background:#fff;color:#000}
  .print-table-scroll{overflow:visible}
  @page{margin:14mm}
}
.goal-bar{height:12px;border-radius:6px;background:var(--sunk);overflow:hidden;margin-top:10px}
.goal-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--gold));border-radius:6px}
/* field errors and password checklist */
.field-error{display:block;color:var(--bad);font-size:13px;font-weight:500;margin-top:4px}
.field-error::before{content:"⚠ "}
form[data-form="rate"]{flex-wrap:wrap;max-width:160px}
form[data-form="rate"] .field-error{flex-basis:100%;white-space:normal}
input.invalid,select.invalid,textarea.invalid{border-color:var(--bad) !important;box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 18%,transparent) !important}
.pw-rules{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2px 12px;font-size:12.5px;color:var(--muted)}
.pw-rules li.no{color:var(--bad)}
.pw-rules li.ok{color:var(--good,#1f8a5b)}
.verify-box{border:1px dashed var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:8px;margin-top:-4px}
/* show / hide password */
.pw-wrap{position:relative;display:block}
.pw-wrap input{width:100%;padding-right:46px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:8px;background:transparent;cursor:pointer;font-size:18px;line-height:1;display:grid;place-items:center}
.pw-eye:hover,.pw-eye:focus-visible{background:var(--sunk)}

/* brand: app shell (client, agent, staff) in the Next Gen Global palette */
.app .side:not(.admin){background:linear-gradient(180deg,#2e234b 0%,#1a1430 100%);border-right:0;color:#f1eff8}
.app .side:not(.admin) .brand{color:#fff}
.app .side:not(.admin) nav :is(button,a){color:#bdb6d6}
.app .side:not(.admin) nav :is(button,a):hover{color:#fff;background:rgb(255 255 255/.06)}
.app .side:not(.admin) nav :is(button,a)[aria-current="page"]{background:linear-gradient(90deg,rgb(255 177 152/.22),rgb(255 177 152/.06));color:#ffd0bd;box-shadow:inset 3px 0 0 var(--coral)}
.app .side:not(.admin) .who{border-top-color:rgb(255 255 255/.12);color:#d9d3ee}
.app .side:not(.admin) .who :is(.hint,.muted){color:#a9a3c2}
.app .side:not(.admin) :is(.btn.quiet,.linkbtn){color:#ffd0bd;border-color:rgb(255 255 255/.25)}
.app .side:not(.admin) .lang{border-color:rgb(255 255 255/.25)}
.app .side:not(.admin) .lang button{color:#bdb6d6}
.app .side:not(.admin) .lang button[aria-pressed="true"]{background:var(--coral);color:#2e234b}
.mark.logo{background:none;width:34px;height:34px;padding:0;flex:none}
.mark.logo svg{width:100%;height:100%;display:block}
.app .side .mark.logo svg > rect:first-of-type{fill:#4a3a7a}
.btn{border-radius:2px}
.panel,.tile,.card{border-radius:4px}
.tile{position:relative;overflow:hidden}
.tile::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--coral),#b79cff)}
:is(h1,h2,h3){letter-spacing:-.01em}
.dock{background:rgb(46 35 75/.96)}
.dock button{color:#bdb6d6}
.dock button[aria-pressed="true"]{background:var(--coral);color:#2e234b}

/* brand: stand-alone sign-in pages (agent, staff) on the same aubergine stage as the website */
body:has(main > .auth):not(:has(.site-top)){background:radial-gradient(70% 60% at 85% 0%,#4a3a7a 0%,transparent 60%),radial-gradient(60% 50% at 0% 100%,rgb(255 177 152/.22),transparent 60%),linear-gradient(170deg,#2e234b 0%,#1a1430 100%) fixed;min-height:100vh}
body:not(:has(.site-top)) main > .auth{border:0;border-top:4px solid var(--coral);border-radius:4px;box-shadow:0 40px 90px -40px rgb(0 0 0/.7);padding:34px 32px}
body:not(:has(.site-top)) main > .auth .eyebrow{color:var(--gold)}
body:not(:has(.site-top)) main > .auth .field input{border-radius:2px;padding:12px 14px}
body:not(:has(.site-top)) main > .auth .btn:not(.ghost):not(.quiet):not(.small){width:100%;padding:13px 18px}

/* review card (client dashboard) */
.review-card{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;border-top:3px solid var(--coral);background:linear-gradient(160deg,#fff,#f6f2ff)}
.review-card .eyebrow{color:var(--gold)}
.stars{display:flex;gap:4px}
.star{font-size:30px;line-height:1;border:0;background:none;cursor:pointer;color:#ddd6ee;padding:0 2px;transition:transform .15s ease,color .15s ease}
.star.on{color:#e8a33a} .star:hover{transform:scale(1.15)}
@media (max-width:760px){.review-card{grid-template-columns:1fr}}

/* smart dashboard */
.setup-card{border-top:3px solid var(--coral);margin-bottom:16px}
.su-count{font-size:22px;color:var(--gold)}
.su-bar{height:6px;background:var(--sunk);margin:12px 0 14px}
.su-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--coral),#b79cff);transition:width .4s ease}
.su-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.su{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;padding:12px;background:var(--sunk);text-decoration:none;color:var(--ink)}
.su b{display:block;font-size:14px}
.su-dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:13px;color:#fff}
.su.done{opacity:.65} .su.done .su-dot{background:var(--good);border-color:var(--good)}
.su:not(.done):hover{outline:2px solid var(--coral)}
.smart-row{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:16px}
.lk-card{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:center}
.lk-card .eyebrow{grid-column:1/-1}
.lk-card > h3:first-of-type,.lk-card > p.muted{grid-column:1/-1}
.lk-ring{--p:0;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--coral) calc(var(--p)*1%),var(--sunk) 0)}
.lk-ring span{width:58px;height:58px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:15px;font-weight:600}
.nx-card{background:linear-gradient(160deg,#2e234b,#1a1430);color:#f1eff8}
.nx-card .eyebrow{color:var(--coral)} .nx-card .muted{color:#bdb6d6}
.nx-big{display:flex;align-items:baseline;gap:8px;margin:6px 0}
.nx-big .num{font-family:var(--font-display);font-weight:300;font-size:46px;color:#fff;line-height:1}
@media (max-width:860px){.su-steps,.smart-row{grid-template-columns:1fr}}
/* dark mode: the badge red is light there, so its number is dark */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .badge{color:#1a1430}}
:root[data-theme="dark"] .badge{color:#1a1430}

/* bank-style statement */
.bst{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:6px}
.bst-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 18px;background:linear-gradient(135deg,#2e234b,#1a1430);color:#f1eff8}
.bst-brand{display:flex;align-items:center;gap:10px}.bst-brand .mark{width:36px;height:36px}.bst-brand b{display:block;font-size:15px}.bst-brand span{font-size:12px;color:#bdb6d6}
.bst-period{text-align:right}.bst-period span{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#bdb6d6}.bst-period b{color:#fff}
.bst-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;margin:0;padding:16px 18px;border-bottom:1px solid var(--line)}
.bst-info dt{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.bst-info dd{margin:2px 0 0;font-size:14px;overflow-wrap:anywhere}
.bst-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--sunk)}
.bst-sum div{padding:12px 18px;border-right:1px solid var(--line)}.bst-sum div:last-child{border-right:0}
.bst-sum span{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.bst-sum b{font-size:17px}
.bst .tscroll{margin-top:0}.bst-table td,.bst-table th{white-space:nowrap}.bst-table td:nth-child(3){white-space:normal;min-width:180px}
.bst-edge td{background:var(--sunk);font-weight:600}
@media (max-width:760px){.bst-info{grid-template-columns:1fr 1fr}.bst-sum{grid-template-columns:1fr 1fr}.bst-sum div:nth-child(2){border-right:0}.bst-period{text-align:left}}
@media print{.range-bar,.page-head .muted{display:none}}

/* formal statement (owner's bank sample) */
.fst{border:1px solid var(--line);border-radius:10px;padding:18px;margin-top:6px;background:var(--surface);position:relative;overflow:hidden}
.fst-head{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:10px;text-align:center;border-bottom:1px solid var(--line);padding-bottom:12px}
.fst-head .mark{width:48px;height:48px}.fst-head b{display:block;font-size:20px;color:var(--plum,#2e234b)}.fst-head span{display:block;font-size:12.5px;color:var(--muted)}
.fst-head em{display:block;margin-top:6px;font-style:normal;font-weight:700;font-size:13px;letter-spacing:.03em;color:#c0502d}
.fst-info{display:grid;grid-template-columns:1.3fr 1fr;gap:6px 28px;padding:14px 0}
.fst-info dl{display:grid;grid-template-columns:max-content 1fr;gap:5px 14px;margin:0;align-content:start}
.fst-info dt{color:#6a4fd6;font-size:13px}.fst-info dd{margin:0;font-size:13.5px;overflow-wrap:anywhere}
.fst-table thead th{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.fst-table td:nth-child(2){min-width:220px;white-space:normal}.fst-table td,.fst-table th{white-space:nowrap}
.fst-table tfoot th{border-top:1.5px solid var(--ink);font-weight:700}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .fst-head b{color:#fff}:root:not([data-theme="light"]) .fst-info dt{color:#b79cff}}
:root[data-theme="dark"] .fst-head b{color:#fff}:root[data-theme="dark"] .fst-info dt{color:#b79cff}
@media (max-width:760px){.fst-info{grid-template-columns:1fr}.fst-head{grid-template-columns:40px 1fr}.fst-head>div{text-align:left}.fst{padding:12px}}

/* deposit slip thumb */
.slip-thumb{display:block;margin-top:6px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:zoom-in;overflow:hidden;width:120px;height:80px}
.slip-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.notice-card{border-left:4px solid var(--coral,#ffb198)}

/* client actions bar */
.ca-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ca-actions b{margin-right:6px}

/* bank report boxes */
.bank-box h3{color:var(--plum,#2e234b)}
.cs-hint{color:#1f7a52;font-weight:600;font-size:13.5px;margin:4px 0 8px}
.cs-submit{background:#1f9d62;border-color:#1f9d62}
.ds-outlet{margin:14px 0 6px;text-decoration:underline;font-size:13.5px}
.ds-table{border-collapse:collapse;width:100%}
.ds-table th,.ds-table td{border:1px solid var(--ink,#14101f);padding:7px 10px}
.ds-table thead th{background:var(--sunk)}
.ds-grand{margin-top:12px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .bank-box h3{color:#fff}:root:not([data-theme="light"]) .ds-table th,:root:not([data-theme="light"]) .ds-table td{border-color:rgb(255 255 255/.35)}}
:root[data-theme="dark"] .bank-box h3{color:#fff}:root[data-theme="dark"] .ds-table th,:root[data-theme="dark"] .ds-table td{border-color:rgb(255 255 255/.35)}

/* bank look: dark side menu for staff too, secure strip, statement-style tables, accent cards */
.app .side.admin{background:linear-gradient(180deg,#22304a 0%,#141c2e 100%);border-right:0;color:#e8edf6}
.app .side.admin .brand{color:#fff}
.app .side.admin .eyebrow{color:#9fb3d1}
.app .side.admin nav :is(button,a){color:#b9c6da}
.app .side.admin nav :is(button,a):hover{color:#fff;background:rgb(255 255 255/.06)}
.app .side.admin nav :is(button,a)[aria-current="page"]{background:linear-gradient(90deg,rgb(120 170 255/.22),rgb(120 170 255/.05));color:#fff;box-shadow:inset 3px 0 0 #5b9cff}
.app .side.admin .who{border-top-color:rgb(255 255 255/.12);color:#d6deeb}
.app .side.admin .who :is(.hint,.muted){color:#9fb3d1}
.app .side.admin :is(.btn.quiet,.linkbtn){color:#cfe0ff;border-color:rgb(255 255 255/.25)}
.app .side.admin .lang{border-color:rgb(255 255 255/.25)}.app .side.admin .lang button{color:#b9c6da}.app .side.admin .lang button[aria-pressed="true"]{background:#5b9cff;color:#0e1726}
.app .side.admin .badge{color:#fff}
.page-head{padding-bottom:12px;border-bottom:1px solid var(--line)}
.panel > h3:first-child,.panel .panel-head h3{position:relative;padding-left:10px}
.panel > h3:first-child::before,.panel .panel-head h3::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:var(--coral,#ffb198)}
.main table thead th{background:var(--sunk);border-bottom:1.5px solid var(--line)}
.main table tbody tr:nth-child(even){background:color-mix(in srgb,var(--sunk) 55%,transparent)}
.main table tbody tr:hover{background:color-mix(in srgb,var(--accent-soft,#efe9ff) 70%,transparent)}
.main table td{border-bottom:1px solid var(--line)}
.num,.main td.r,.main th.r{font-variant-numeric:tabular-nums}
.tile{border-top:3px solid var(--coral,#ffb198)}
.tile.key{border-top-color:#5b9cff}
@media print{.bankbar{display:none}}
.report-boxes{align-items:start}
.report-boxes .form{align-content:start}
.panel > h3:first-child::before,.panel .panel-head h3::before{top:4px;bottom:auto;height:1em}
/* list filters: status chips + search/date row */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.chip b{margin-left:4px;color:var(--muted)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.chip[aria-pressed="true"] b{color:inherit;opacity:.8}
.filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.filter-row .field{display:grid;gap:4px;margin:0}
.filter-row .field.grow{flex:1 1 220px}
.filter-row .actions{display:flex;gap:8px}
/* top strip (owner 2026-10-16): brand gradient, balance chips, currency switch; same colours in light and dark mode */
.bankbar{margin:-6px 0 18px;padding:10px 16px 12px;border-radius:14px;background:linear-gradient(120deg,#2e234b 0%,#45357a 55%,#6a4fd6 100%);color:#d9d2f3;font-size:12.5px;box-shadow:0 6px 18px rgb(46 35 75/.18);position:relative;overflow:hidden}
.bankbar::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgb(255 177 152/.28),transparent 70%);pointer-events:none}
.bankbar b{color:#fff}
.bankbar .bb-top{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center;position:relative;z-index:1}
.bankbar .bb-lock{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;background:rgb(95 211 155/.16);color:#7fe0b1;font-weight:600}
.bankbar .bb-who{margin-left:auto;color:#fff;font-weight:600}
.bankbar .bb-main{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid rgb(255 255 255/.14);position:relative;z-index:1}
.bankbar .bb-bal{display:flex;flex-wrap:wrap;gap:10px}
.bankbar .bb-chip{display:flex;flex-direction:column;gap:2px;padding:6px 14px;border-radius:10px;background:rgb(255 255 255/.09);border:1px solid rgb(255 255 255/.14);min-width:150px}
.bankbar .bb-chip small{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#cfc6ef}
.bankbar .bb-chip b{font-size:17px;color:#fff;letter-spacing:.01em}
.bankbar .bb-chip:first-child{background:rgb(255 177 152/.16);border-color:rgb(255 177 152/.45)}
.bankbar .bb-chip:first-child b{color:#ffd2c2}
.bankbar .bb-view{display:flex;align-items:center;gap:8px}
.bankbar .bb-view-l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#cfc6ef}
.bankbar .bb-seg{display:inline-flex;padding:3px;border-radius:999px;background:rgb(0 0 0/.22);border:1px solid rgb(255 255 255/.14)}
.bankbar .bb-seg button{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:4px 12px;border:0;border-radius:999px;background:transparent;color:#e6e0fa;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.bankbar .bb-seg button i{font-style:normal;opacity:.75}
.bankbar .bb-seg button:hover{background:rgb(255 255 255/.12);color:#fff}
.bankbar .bb-seg button[aria-pressed="true"]{background:#ffb198;color:#2e234b;box-shadow:0 2px 8px rgb(255 177 152/.35)}
.bankbar .bb-seg button[aria-pressed="true"] i{opacity:1}
.bankbar .bb-seg button:focus-visible{outline:2px solid #fff;outline-offset:1px}
@media (max-width:760px){.bankbar{margin-top:0}.bankbar .bb-who{margin-left:0;width:100%}.bankbar .bb-chip{flex:1;min-width:0}.bankbar .bb-chip b{font-size:15px}.bankbar .bb-view{width:100%;justify-content:space-between}.bankbar .bb-seg button{padding:4px 9px}}
/* print only the chosen statement (Print buttons next to the PDF buttons) */
@media print{
  body.printing *{visibility:hidden}
  body.printing .print-target,body.printing .print-target *{visibility:visible}
  body.printing .print-target{position:absolute;left:0;top:0;width:100%;margin:0;box-shadow:none;border:0}
  body.printing .print-target .actions,body.printing .print-target button{display:none}
}
/* review boxes */
.preview-slip{max-width:100%;max-height:60vh;border-radius:8px;border:1px solid var(--line);display:block}
.kyc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:10px}
@media (max-width:860px){.kyc-grid{grid-template-columns:1fr}}
.person-kv{grid-template-columns:max-content 1fr}
.section-t{margin:18px 0 10px;font-size:16px;display:flex;gap:8px;align-items:center}
.perm-list{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px 14px}
.perm-list legend{padding:0 6px}
.btn.danger{background:#b3261e;border-color:#b3261e;color:#fff}
.doc-thumb img{max-height:140px}
/* account verification checklist (documents, withdraw) */
.verify-list{display:grid;gap:8px;margin-top:10px}
.verify-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.verify-row .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bad-text{color:#b3261e}
/* notice bar (staff notice moving right to left; click opens it in full) */
.ticker{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 10px;padding:7px 12px;border:1px solid var(--line);border-radius:10px;background:var(--accent-soft);color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer;overflow:hidden}
.ticker .tk-label{flex:none;font-weight:700;white-space:nowrap}
.ticker .tk-track{flex:1;overflow:hidden;white-space:nowrap;min-width:0}
.ticker .tk-move{display:inline-block;padding-left:100%;animation:tk-run 20s linear infinite}
.ticker:hover .tk-move,.ticker:focus-visible .tk-move{animation-play-state:paused}
@keyframes tk-run{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.ticker .tk-move{animation:none;padding-left:0;text-overflow:ellipsis;overflow:hidden;max-width:100%}}
/* ---------- polish layer (owner 2026-10-16 "wow"): softer cards, depth, motion; app pages only, the public site keeps its own look */
.boot{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:16px;background:radial-gradient(1200px 600px at 50% 30%,#3a2d63,#1a1430 70%);color:#e9e4fb;font:600 15px/1.2 "Sora",system-ui,sans-serif;letter-spacing:.04em}
.boot-ring{width:46px;height:46px;border-radius:50%;border:3px solid rgb(255 255 255/.15);border-top-color:#ffb198;border-right-color:#b79cff;animation:boot-spin .9s linear infinite}
@keyframes boot-spin{to{transform:rotate(360deg)}}
.side nav .nb-l{display:inline-flex;align-items:center;gap:11px;min-width:0}
.nav-ic{width:18px;height:18px;flex:none;opacity:.72;transition:opacity .15s,transform .2s}
.side nav a{transition:background .18s,color .18s}
.side nav a:hover .nav-ic{opacity:1;transform:scale(1.08)}
.side nav a[aria-current="page"] .nav-ic{opacity:1}
.side nav a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--coral,#ffb198)}
.app .page-head h2{background:linear-gradient(92deg,var(--ink) 30%,var(--gold) 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.app .tile{border-radius:14px;box-shadow:0 1px 2px rgb(20 16 31/.04),0 8px 22px rgb(46 35 75/.06);transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s}
.app .tile:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgb(20 16 31/.05),0 16px 36px rgb(46 35 75/.14)}
.app .tile.key{background:linear-gradient(160deg,color-mix(in srgb,#5b9cff 9%,var(--surface)),var(--surface) 60%)}
.app .tile .eyebrow{font-size:11px}
.app .panel{border-radius:16px;box-shadow:0 1px 2px rgb(20 16 31/.04),0 10px 30px rgb(46 35 75/.06)}
.app .btn{border-radius:10px;transition:transform .15s,box-shadow .2s,filter .15s,background .15s}
.app .btn:not(.quiet):not(.ghost):not(.danger){background-image:linear-gradient(135deg,rgb(255 255 255/.12),transparent 60%);box-shadow:0 4px 14px rgb(46 35 75/.22)}
.app .btn:not([disabled]):hover{transform:translateY(-1px)}
.app .btn:not([disabled]):active{transform:translateY(0);filter:brightness(.97)}
.app :is(input,select,textarea){transition:border-color .15s,box-shadow .15s}
.app :is(input,select,textarea):focus{border-color:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 16%,transparent);outline:none}
.app .tscroll,.app .table-wrap{border-radius:12px}
.app .pill{border-radius:999px}
.modal-scrim{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:md-fade .2s ease-out}
.modal{border-radius:18px;box-shadow:0 30px 80px rgb(20 12 40/.35);animation:md-pop .26s cubic-bezier(.2,.8,.25,1.1)}
@keyframes md-fade{from{opacity:0}}
@keyframes md-pop{from{opacity:0;transform:translateY(12px) scale(.97)}}
html[data-enter] .app .main > *{animation:pg-in .5s cubic-bezier(.2,.7,.2,1) both}
html[data-enter] .app .main > *:nth-child(2){animation-delay:.05s}
html[data-enter] .app .main > *:nth-child(3){animation-delay:.1s}
html[data-enter] .app .main > *:nth-child(4){animation-delay:.15s}
html[data-enter] .app .main > *:nth-child(n+5){animation-delay:.2s}
html[data-enter] .app .tiles > .tile{animation:pg-in .55s cubic-bezier(.2,.7,.2,1) both}
html[data-enter] .app .tiles > .tile:nth-child(2){animation-delay:.08s}
html[data-enter] .app .tiles > .tile:nth-child(3){animation-delay:.16s}
html[data-enter] .app .tiles > .tile:nth-child(4){animation-delay:.24s}
@keyframes pg-in{from{opacity:0;transform:translateY(12px)}}
.app .main::-webkit-scrollbar,.side::-webkit-scrollbar{width:8px;height:8px}
.app .main::-webkit-scrollbar-thumb,.side::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 35%,transparent);border-radius:8px}
@media (prefers-reduced-motion:reduce){.boot-ring{animation-duration:2.5s}.app *,.modal,.modal-scrim{animation:none !important;transition:none !important}}
@media print{.app .tile,.app .panel{box-shadow:none}.app .page-head h2{color:#000;background:none}}
/* money in / out chart (staff overview) */
.fl-sum{display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0 6px;font-size:13px;color:var(--muted)}
.fl-k b{color:var(--ink);margin-left:4px}.fl-k.in{color:var(--good)}.fl-k.out{color:var(--bad)}
.fl-svg{width:100%;height:auto;display:block}
.fl-svg .fl-axis{stroke:var(--line);stroke-width:1}
.fl-svg .fl-in{fill:var(--good);opacity:.85}.fl-svg .fl-out{fill:var(--coral,#ffb198)}
.fl-svg .fl-hit{fill:transparent}.fl-svg g:hover .fl-hit{fill:color-mix(in srgb,var(--accent-soft) 70%,transparent)}
.fl-svg g:hover .fl-in,.fl-svg g:hover .fl-out{opacity:1;filter:brightness(1.08)}
.fl-dates{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:4px}
/* this month's progress on the next-result card */
.nx-bar{height:6px;border-radius:999px;background:rgb(255 255 255/.12);overflow:hidden;margin:10px 0 4px}
.nx-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffb198,#b79cff)}
.nx-day{font-size:12px;color:#bdb6d6;margin-bottom:6px}
/* friendlier empty states (not table cells) */
.app :not(td).empty{display:grid;justify-items:center;gap:10px;padding:30px 20px;border:1.5px dashed var(--line);border-radius:14px;background:color-mix(in srgb,var(--sunk) 45%,transparent)}
.app :not(td).empty::before{content:"";width:48px;height:48px;border-radius:50%;background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a4fd6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13 6 4h12l3 9v7H3z'/%3E%3Cpath d='M3 13h5l1 3h6l1-3h5'/%3E%3C/svg%3E") center/24px no-repeat}
/* light / dark / automatic theme switch */
.theme-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:16px;line-height:1;cursor:pointer;transition:transform .2s,background .2s}
.theme-btn:hover{transform:rotate(-20deg);background:var(--accent-soft)}
.side .who .theme-btn{justify-self:start}
@media print{.theme-btn{display:none}}
/* monthly profit page: three numbered steps */
.pp-steps{display:grid;gap:4px}
.pp-step{display:grid;grid-template-columns:36px 1fr;gap:14px;padding:14px 0;border-bottom:1px dashed var(--line)}
.pp-step:last-child{border-bottom:0}
.pp-n{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-family:var(--font-mono)}
.pp-step.done .pp-n{background:var(--good);color:#fff}
.pp-body{display:grid;gap:10px;min-width:0}
.pp-body h3{font-size:16px}
.pp-accts{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pp-accts li{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--sunk);font-size:13.5px;overflow-wrap:anywhere}
.pp-how{margin:0;padding-left:18px;display:grid;gap:8px;font-size:13.5px;color:var(--muted)}
.pp-how b{color:var(--ink)}
.radio-cards label.is-off{opacity:.55;cursor:not-allowed}
/* logos: banks, wallets, USDT, currencies, flags, options (logos.js, owner 2026-10-17) */
.lg{width:28px;height:28px;border-radius:8px;flex:none;vertical-align:middle;display:inline-block}
.lg.flag{width:30px;height:20px;border-radius:4px;overflow:hidden;box-shadow:0 0 0 1px rgb(0 0 0/.12)}.radio-cards label .lg.flag{width:30px;height:20px}
.with-logo{display:flex;align-items:center;gap:10px;min-width:0}.with-logo>span:last-child{min-width:0}.with-logo select{flex:1;min-width:0}
.radio-cards label .lg{width:34px;height:34px;margin-bottom:2px}.bb-seg .lg{width:18px;height:18px;border-radius:50%}
.pay-logo{display:flex;justify-content:center;margin-bottom:8px}.pay-logo .lg{width:48px;height:48px;border-radius:12px}
p.with-logo{margin:6px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 8px 4px 6px;background:var(--surface);font-size:13px}.chip .lg.flag{width:24px;height:16px}.chip-x{border:0;background:none;color:var(--ink);font-size:16px;line-height:1;cursor:pointer;padding:0 2px}
.mark.logo img{width:100%;height:100%;object-fit:contain;display:block;border-radius:9px;background:#fff}
.nb-g{margin:12px 0 4px;font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.offers-row{margin:0 0 14px}.offer-card{border-color:var(--coral)}
/* live chat (owner 2026-10-17) */
#chat-dock{position:fixed;right:16px;bottom:76px;z-index:60}@media (min-width:761px){#chat-dock{bottom:18px}}
.chat-btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:10px 16px;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgb(0 0 0/.22)}.chat-btn .badge{background:var(--bad);color:#fff}
.chat-win{position:absolute;right:0;bottom:52px;width:min(360px,calc(100vw - 32px));height:min(480px,calc(100vh - 160px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px rgb(0 0 0/.28);overflow:hidden}
.chat-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}
.chat-log{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--sunk, var(--bg))}.chat-log.tall{min-height:320px;max-height:60vh}
.chat-m{display:flex;flex-direction:column;max-width:85%}.chat-m.me{align-self:flex-end;align-items:flex-end}.chat-m.them{align-self:flex-start}
.chat-b{padding:8px 11px;border-radius:12px;background:var(--surface);border:1px solid var(--line);white-space:pre-line;font-size:14px;line-height:1.5}.chat-m.me .chat-b{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.chat-t{font-size:11px;color:var(--muted);margin-top:2px}.chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.chat-form input{flex:1;min-width:0}
.chat-admin{display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:14px}.chat-list{display:flex;flex-direction:column;gap:6px;max-height:70vh;overflow:auto}.chat-list .nb-item.is-on{outline:2px solid var(--accent)}
@media (max-width:860px){.chat-admin{grid-template-columns:1fr}}
.phone-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.phone-in .cc{flex:0 1 8.5rem;min-width:6.5rem;text-overflow:ellipsis}.phone-in [data-phone]{flex:1 1 10rem;min-width:10rem}.phone-in .cc-flag{display:inline-flex}.phone-in .cc-flag .lg{width:30px;height:20px}
.page-tabs{margin:0 0 14px}.page-tabs .chip-btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.page-tabs .nav-ic{width:16px;height:16px}
.seg-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chip-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;font:inherit;font-size:13.5px;cursor:pointer}.chip-btn.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.rc-rej{background:rgb(240 122 108/.12)}.doc-banner .verify-list{margin-top:10px}
.ccy-cards{grid-template-columns:repeat(4,1fr)}.ccy-cards label{padding:10px;justify-items:center;text-align:center}.ccy-cards label .lg{width:28px;height:28px}
@media (max-width:520px){.ccy-cards{grid-template-columns:repeat(2,1fr)}}.qr-box img{width:100%;height:auto;display:block}
.ho-card .cap-ex.ho-ic{display:flex;align-items:center;justify-content:center;font-size:40px}.ho-card.on{border-color:var(--accent)}.ho-qr{width:170px;flex:none;background:#fff;padding:8px;border-radius:8px}.ho-qr svg{width:100%;height:auto;display:block}.ho-state{font-weight:700;margin:6px 0}
.qr-box{width:150px;max-width:100%;background:#fff;padding:8px;border-radius:8px;margin-top:8px}.qr-box svg{width:100%;height:auto;display:block}
.social{display:flex;gap:8px;flex-wrap:wrap}.social a{display:inline-flex}.social .lg{width:30px;height:30px}.side-social{margin:10px 16px 6px}.foot-social{margin-top:10px}
.ip-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.ip-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:6px 10px}
/* staff management (owner 2026-10-16): search row, compact list with icon buttons, wide edit form with grouped permissions */
.sf-filter{display:grid;grid-template-columns:90px repeat(4,minmax(0,1fr)) auto;gap:8px 10px;align-items:end;margin-bottom:14px}
.sf-filter .field{margin:0}.sf-filter .field label{font-size:12px}
.sf-filter-btns{display:flex;gap:6px}
@media (max-width:900px){.sf-filter{grid-template-columns:1fr 1fr}.sf-filter-btns{grid-column:1/-1}}
.staff-table td{vertical-align:middle}
.sf-st{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:700}
.sf-st.on{color:var(--good);background:color-mix(in srgb,var(--good) 14%,transparent)}.sf-st.off{color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}
.ic-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:0;cursor:pointer;color:#fff;font-size:15px;transition:transform .15s,filter .15s}
.ic-btn:hover{transform:translateY(-1px);filter:brightness(1.1)}
.ic-btn.edit{background:#6a4fd6}.ic-btn.del{background:#d9534f}
.modal:has(.staff-form){max-width:1040px}
/* file preview before download (owner 2026-10-17) */
.modal.modal-wide{max-width:1100px;width:96vw;padding:16px}
.pv-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.pv-head h3{font-size:16px;word-break:break-all}
.pv-frame{width:100%;height:min(78vh,900px);border:1px solid var(--line);border-radius:10px;background:#fff}
.pv-table{max-height:70vh;overflow:auto;font-size:13px}
.pv-table th{position:sticky;top:0;background:var(--surface)}
/* dashboard trading bars */
.tt-b1{fill:var(--muted);opacity:.55}.tt-b2{fill:var(--accent)}.tt-b3{fill:var(--gold)}
.warn-text{color:#b26a00}
.sf-grid{display:grid;grid-template-columns:300px 1fr;gap:22px;margin-top:14px}
@media (max-width:860px){.sf-grid{grid-template-columns:1fr}}
.sf-login{display:grid;gap:10px;align-content:start}
.sf-sec{font-weight:700;color:var(--gold);font-size:14px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.sf-perms{border:0;padding:0;margin:0;min-width:0}
.sf-perms legend{width:100%;margin-bottom:8px}
.sf-perms legend label{display:flex;align-items:center;gap:8px;cursor:pointer}
.pg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.pg{display:grid;gap:4px;align-content:start;border:1px solid var(--line);border-radius:10px;padding:0 0 8px;background:var(--surface);overflow:hidden}
.pg .pg-h{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--sunk);font-weight:600;font-size:13px;cursor:pointer;margin-bottom:2px}
.pg .check{padding:2px 10px;font-size:13.5px}
.sf-perms[disabled] .pg-grid{opacity:.5}
.sf-foot{display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:12px 18px;align-items:end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
@media (max-width:640px){.sf-foot{grid-template-columns:1fr}}
.sf-foot .field{margin:0}
/* reference-panel updates (owner 2026-10-16) */
/* grouped staff menu */
.side .nav-group{margin:12px 12px 4px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);opacity:.85}
.side.admin nav .nav-group:first-child{margin-top:4px}
/* header bell and account menu */
.bankbar .um{display:inline-flex;align-items:center;gap:10px;margin-left:12px;position:relative;z-index:5}
.um-bell{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgb(255 255 255/.1);text-decoration:none;font-size:15px}
.um-bell .badge{position:absolute;top:-5px;right:-7px;font-size:10px;min-width:18px;height:18px;padding:0 4px}
.um-menu{position:relative}
.um-menu summary{list-style:none;cursor:pointer;padding:5px 12px;border-radius:999px;background:rgb(255 255 255/.12);color:#fff;font-weight:600;font-size:12.5px;white-space:nowrap}
.um-menu summary::-webkit-details-marker{display:none}
.um-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;display:grid;padding:6px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 40px rgb(20 12 40/.25);z-index:30}
.um-pop a,.um-pop button{display:block;text-align:left;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font:inherit;font-size:13.5px;background:none;border:0;cursor:pointer}
.um-pop a:hover,.um-pop button:hover{background:var(--accent-soft)}
.um-pop hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.bankbar:has(.um-menu[open]){overflow:visible}
@media (max-width:760px){.bankbar .um{margin-left:0}}
/* dashboard: statistic, last payments, balance status */
.st-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin:16px 0}
@media (max-width:1000px){.st-grid{grid-template-columns:1fr}}
.st-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.st-card h3{padding:12px 16px;background:linear-gradient(120deg,#2e234b,#4a3a7a);color:#fff;font-size:15px}
.st-card h3::before{display:none}
.st-row{display:flex;justify-content:space-between;gap:10px;padding:9px 16px;border-bottom:1px solid var(--line);font-size:13.5px}
.st-row:nth-child(even){background:color-mix(in srgb,var(--sunk) 55%,transparent)}
.st-row span{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-row span a{color:var(--ink);font-weight:600}
.st-row b.pos{color:var(--good)}.st-row b.neg{color:var(--bad)}
.st-card .empty,.st-card .st-foot{margin:10px 16px}
/* money queue and access-log filters */
.q-filter{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end}
.q-filter .field{margin:0;min-width:120px;flex:1}
.q-filter .field label{font-size:12px}
.q-filter-btns{display:flex;gap:6px;padding-bottom:2px}
.q-sum-rows{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:8px}
.ol-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--muted);opacity:.5;vertical-align:middle}
.ol-dot.on{background:var(--good);opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 20%,transparent)}
/* on-screen PIN keypad */
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:260px;margin-top:10px}
.pinpad .pk{height:46px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 18px/1 var(--font-mono);cursor:pointer;transition:transform .1s,background .15s}
.pinpad .pk:hover{background:var(--accent-soft)}.pinpad .pk:active{transform:scale(.95)}
.pinpad .pk-back{background:color-mix(in srgb,#5b9cff 16%,var(--surface))}.pinpad .pk-clear{background:color-mix(in srgb,var(--bad) 14%,var(--surface));font-size:13px}
.q-filter .field input,.q-filter .field select{width:100%;min-width:0}.q-filter .field:has(input[type="date"]){min-width:140px;max-width:180px}
/* bank-panel ideas (owner 2026-10-16) */
.acc-check{display:flex;gap:8px}.acc-check input{flex:1;min-width:0}
.acc-brief{margin-top:-4px}
.amt-words{margin-top:4px;font-style:italic;color:var(--gold)}
.rcpt .rc-words span:last-child{font-style:italic;text-align:right;max-width:65%}
.msg .msg-file{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;border-radius:8px;background:rgb(255 255 255/.5);border:1px solid var(--line);font-size:13px;text-decoration:none;color:var(--ink)}
.close-card{border:1px solid color-mix(in srgb,var(--bad) 30%,var(--line))}
.close-card summary{cursor:pointer;list-style:none}.close-card summary::-webkit-details-marker{display:none}
.close-card summary::after{content:" ▾";color:var(--muted)}
.vouchers .vo-words{display:block;max-width:240px;margin-left:auto;font-style:italic;white-space:normal;line-height:1.35}
.vouchers tfoot td{border-top:2px solid var(--line);background:var(--sunk)}
@media print{
  html.print-vouchers body *{visibility:hidden}
  html.print-vouchers .vouchers,html.print-vouchers .vouchers *{visibility:visible}
  html.print-vouchers .vouchers{position:absolute;left:0;top:0;width:100%;box-shadow:none;border:0}
  html.print-vouchers .vouchers .no-print{display:none}
  html.print-vouchers .vouchers .tscroll{overflow:visible}
}
/* Notice Board (owner 2026-10-16) */
.nb{padding:0;overflow:hidden;max-width:820px}
.nb .nb-head{margin:0;padding:12px 18px;text-align:center;background:linear-gradient(120deg,#2e234b,#4a3a7a 60%,#6a4fd6);color:#fff;font-size:16px;letter-spacing:.02em}
.nb .nb-head::before{display:none}
.nb-list{list-style:none;margin:0;padding:0}
.nb-list li+li{border-top:1px solid var(--line)}
.nb-item{display:flex;align-items:center;gap:10px;width:100%;padding:13px 18px;border:0;background:none;text-align:left;cursor:pointer;color:var(--muted);font:inherit;font-size:14.5px;transition:background .15s}
.nb-item:hover{background:var(--accent-soft)}
.nb-item .nb-t{flex:1;min-width:0}
.nb-item.unread{color:var(--ink);font-weight:600}
.nb-item .nb-d{font-weight:400;color:var(--muted);font-size:12.5px;white-space:nowrap}
.nb-item .nb-f{font-size:14px}
.nb-new{flex:none;padding:2px 8px;border-radius:999px;background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.05em;animation:nb-blink 1.6s ease-in-out infinite}
@keyframes nb-blink{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.nb-new{animation:none}}
.nb-adm{padding:12px 0;border-bottom:1px solid var(--line)}
.nb-adm.is-off{opacity:.55}
.nb-adm-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.nb-adm-f{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.nb-adm .msg-file{display:inline-flex;margin-top:8px;padding:5px 10px;border-radius:8px;border:1px solid var(--line);font-size:13px;text-decoration:none;color:var(--ink)}
/* access log events (owner 2026-10-16) */
.ev{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.ev-in{color:var(--good);background:color-mix(in srgb,var(--good) 13%,transparent)}.ev-fail{color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}
.ev-out{color:var(--muted);background:var(--sunk)}.ev-end{color:var(--warn);background:var(--warn-bg)}
/* audit round 1 (owner 2026-10-16): iPhone zooms into boxes under 16px, and small buttons are hard to tap */
@media (max-width:760px){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}}
.copy{min-height:32px;padding:4px 12px}
@media (max-width:760px){.copy{min-height:38px;min-width:44px}}
.panel-head select[data-change="ryear"]{min-height:36px;padding:4px 10px}
/* installing on iPhone: the Share steps */
.ios-steps{margin:12px 0 10px;padding-left:22px;display:grid;gap:10px;font-size:15px;line-height:1.5}
.ios-share{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--accent-soft);color:#2f7cf6;font-weight:700;margin-left:4px}
/* audit round 1 — phones: the top of each page was too tall; the work started half-way down the screen */
.um-menu summary::after{content:none!important}
.um-menu summary{border:0;display:inline-flex;align-items:center;gap:6px}
@media (max-width:760px){
  .side .nav-group{display:none}
  .bankbar{padding:10px 12px;margin-bottom:12px;border-radius:12px}
  .bankbar .bb-time,.bankbar .bb-who{display:none}
  .bankbar .bb-top{gap:6px 10px;font-size:12px}
  .bankbar .bb-main{margin-top:8px;padding-top:8px;gap:8px}
  .bankbar .bb-chip{padding:5px 10px}
  .bankbar .bb-view-l{display:none}
  .bankbar .um{margin-left:auto}
  .app .tiles{grid-template-columns:1fr 1fr;gap:10px}
  .app .tile{padding:12px}
  .app .tile .v{font-size:18px;overflow-wrap:anywhere}
  .app .tile .eyebrow{font-size:10px}
  .app .page-head{margin-bottom:12px}
  .app .page-head h2{font-size:24px}
  .st-grid{gap:10px}
}
/* audit round 2: tap targets on phones */
@media (max-width:760px){
  .stars button,[data-action="rv-star"]{min-width:40px;min-height:40px}
  [data-action="rym"]{min-height:36px;padding:6px 12px}
  [data-action="doc-reject"]{min-height:36px;padding:6px 12px}
}
/* offline bar */
#offline-bar{position:fixed;left:50%;top:calc(10px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:90;max-width:min(560px,calc(100% - 24px));padding:10px 16px;border-radius:12px;background:#9a6a12;color:#fff;font-size:14px;font-weight:600;box-shadow:0 10px 30px rgb(0 0 0/.25);text-align:center}
#offline-bar[hidden]{display:none}
.side .who .help-link{justify-self:start}
/* audit round 2 (phones): balance chips keep the amount on one line; space between a notice card and the greeting */
.bankbar .bb-chip b{white-space:nowrap}
@media (max-width:760px){.bankbar .bb-chip b{font-size:clamp(13px,3.9vw,15px)}.app .notice-card{margin-bottom:14px}.app .tile .v{font-size:clamp(15px,4.4vw,18px)}}

/* audit round 3 — phones: table rows become cards (no sideways scrolling); the column name sits next to each value */
@media (max-width:640px){
  .app main .tscroll:has(table[data-cards]){overflow:visible;border:0;background:none}
  .app main table[data-cards]{border:0;min-width:0!important;width:100%;border-collapse:separate}
  .app main table[data-cards] thead{display:none}
  .app main table[data-cards] tbody,.app main table[data-cards] tfoot,.app main table[data-cards] tr,.app main table[data-cards] td{display:block;width:100%}
  .app main table[data-cards] tr{margin:0 0 10px;padding:6px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)!important;box-shadow:0 4px 14px rgb(46 35 75/.06)}
  .app main table[data-cards] td{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);text-align:right!important;white-space:normal!important;max-width:none!important}
  .app main table[data-cards] td:last-child{border-bottom:0}
  .app main table[data-cards] td[data-label]::before{content:attr(data-label);color:var(--muted);font-size:11.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;text-align:left;flex:none;max-width:42%;padding-top:2px}
  .app main table[data-cards] td.empty,.app main table[data-cards] td[colspan]{display:block;text-align:center!important}
  .app main table[data-cards] td:empty{display:none}
  .app main table[data-cards] td > :is(.btn,button){margin-left:auto}
}
/* cards: a cell with several parts (text, links, line breaks) flows normally; the column name sits on the left; long IDs wrap */
@media (max-width:640px){
  .app main table[data-cards] td{display:block;position:relative;padding:7px 0 7px 40%;min-height:34px;overflow-wrap:anywhere}
  .app main table[data-cards] td[data-label]::before{position:absolute;left:0;top:9px;width:38%;max-width:38%}
  .app main table[data-cards] td.empty,.app main table[data-cards] td[colspan]{padding-left:0}
  .app main table[data-cards] td .slip-thumb img{max-width:120px}
  .app main table[data-cards] tr{overflow:hidden}
}
/* owner 2026-10-16 — sign-in lock box with countdown */
/* owner 2026-10-25 staff gate: the code a waiting browser reads to the super admin */
.sg-code{font-size:44px;letter-spacing:10px;font-weight:600;text-align:center;margin:18px 0 10px;padding:14px 0;border:1px dashed var(--line,#ccc);border-radius:14px}
.lock-box{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;margin:0 0 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--bad) 40%,transparent);background:color-mix(in srgb,var(--bad) 9%,var(--surface));animation:lk-in .35s ease}
.lock-box .lk-ic{font-size:26px;line-height:1}
.lock-box b{display:block;color:var(--bad);font-size:15px}
.lock-box p{margin:4px 0 0;font-size:13.5px;color:var(--muted)}
.lock-box .lk-time{font:600 28px/1.1 "Sora",system-ui,sans-serif;color:var(--ink);letter-spacing:.04em;margin-top:8px;font-variant-numeric:tabular-nums}
.lock-box.open{border-color:color-mix(in srgb,var(--good) 45%,transparent);background:color-mix(in srgb,var(--good) 10%,var(--surface))}
.lock-box.open b{color:var(--good)}
@keyframes lk-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.lk-panel.has{border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.ev-lock{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}
/* dashboard — clients' investment and profit */
.iv-wrap{margin-bottom:16px}
.iv-card{position:relative;overflow:hidden}
.iv-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#ffb198,#b79cff,#6a4fd6)}
.iv-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.iv-big{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.iv-k{padding:14px 16px;border-radius:14px;background:var(--soft,color-mix(in srgb,var(--ink) 5%,transparent))}
.iv-k.in{background:linear-gradient(135deg,#2e234b,#4a3a7a);color:#fff}.iv-k.in .eyebrow,.iv-k.in .hint{color:#d9d1f5}
.iv-k.pr{background:color-mix(in srgb,var(--good) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--good) 25%,transparent)}
.iv-k .v{font:600 clamp(20px,2.6vw,28px)/1.2 "Sora",system-ui,sans-serif;margin:4px 0}
.iv-k.in .v{color:#fff}
.iv-rows .st-row{padding:9px 4px}
.iv-total{font-weight:600;border-bottom:0!important}
.iv-det summary{cursor:pointer;font-weight:600;list-style:none;padding:4px 0}
.iv-det summary::-webkit-details-marker{display:none}
.iv-det summary::after{content:" ▾";color:var(--muted)}.iv-det[open] summary::after{content:" ▴"}
@media (max-width:640px){.iv-big{grid-template-columns:1fr}}
/* install chooser: iPhone or Android */
.in-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 6px}
.in-os{display:grid;justify-items:center;gap:2px;padding:14px 10px;border-radius:14px;border:2px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;min-height:44px;transition:border-color .15s,transform .15s}
.in-os:hover{transform:translateY(-1px)}
.in-os.on{border-color:var(--violet,#6a4fd6);background:color-mix(in srgb,#6a4fd6 9%,var(--surface));box-shadow:0 6px 18px rgb(106 79 214/.18)}
.in-os{position:relative;gap:4px;padding:16px 10px 14px}
.in-os .in-ic{display:grid;place-items:center;width:58px;height:58px;border-radius:17px;margin-bottom:6px;transition:transform .2s}
.in-os .in-ic svg{width:32px;height:32px}
.in-os[data-os="ios"] .in-ic{background:linear-gradient(160deg,#3a3a40,#0b0b0d);color:#fff;box-shadow:0 8px 18px rgb(0 0 0/.28),inset 0 1px 0 rgb(255 255 255/.15)}
.in-os[data-os="ios"] .in-ic svg{margin-top:-3px}
.in-os[data-os="android"] .in-ic{background:linear-gradient(160deg,#5ef0a0,#2fbf71);color:#073042;box-shadow:0 8px 18px rgb(47 191 113/.35),inset 0 1px 0 rgb(255 255 255/.35)}
.in-os[data-os="android"] .in-ic svg{margin-top:4px}
.in-os:hover .in-ic,.in-os.on .in-ic{transform:scale(1.06)}
.in-os.on::after{content:"✓";position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:#6a4fd6;color:#fff;font-size:13px;font-weight:700;display:grid;place-items:center}
.in-body{margin-top:8px}
.in-now{width:100%;margin-top:6px}
.in-qr{display:flex;gap:14px;align-items:center;margin-top:14px;padding:12px;border-radius:12px;border:1px dashed var(--line)}
.in-qr-code{width:110px;flex:none;background:#fff;padding:6px;border-radius:8px}
.iv-wrap .grid2>.panel{margin:0}.iv-wrap .grid2{align-items:stretch}
.in-os:focus{outline:none}.in-os:focus-visible{outline:2px solid #6a4fd6;outline-offset:2px}
/* owner 2026-10-16 — profit rates by term: client term cards, staff grids, rate circular table */
.cr-panel{margin-top:16px}
.cr-mine{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:16px 18px;margin:10px 0 14px;border-radius:16px;background:linear-gradient(120deg,#2e234b,#4a3a7a 60%,#6a4fd6);color:#fff}
.cr-mine .eyebrow,.cr-mine .hint{color:#d9d1f5}
.cr-big{font:600 24px/1.2 "Sora","Hind Siliguri",system-ui,sans-serif;margin:2px 0}
.cr-bar{flex:1 1 220px;max-width:360px;height:10px;border-radius:99px;background:rgb(255 255 255/.18);overflow:hidden}
.cr-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffb198,#b79cff)}
.cr-terms{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.cr-term{position:relative;display:grid;gap:4px;align-content:start;padding:16px;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);transition:transform .15s,box-shadow .15s}
.cr-term:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgb(46 35 75/.1)}
.cr-term.on{border-color:#6a4fd6;background:color-mix(in srgb,#6a4fd6 7%,var(--surface));box-shadow:0 8px 22px rgb(106 79 214/.18)}
.cr-m{margin:0;color:var(--muted)}.cr-m b{font:600 26px/1 "Sora",system-ui,sans-serif;color:var(--ink)}
.cr-rate{margin:4px 0 0;font:600 22px/1.2 "Sora",system-ui,sans-serif;color:var(--good)}
.cr-extra{justify-self:start;font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent)}
.cr-was{text-decoration:line-through}
.cr-term .btn,.cr-term .pill{justify-self:start;margin-top:6px}
.cr-confirm{margin:10px 0 14px;padding-left:20px;display:grid;gap:6px;line-height:1.5}
.tr-grid input{width:84px;min-width:0}
.tr-grid td{vertical-align:top}
.tr-cell{display:flex;gap:4px;align-items:center}
.tr-grid .hint{display:block;margin-top:3px;font-size:11.5px}
.rc-table .rc-plan td{background:color-mix(in srgb,#6a4fd6 7%,var(--surface));font-size:13.5px}
.rc-force{border-color:color-mix(in srgb,#6a4fd6 35%,var(--line))}
@media (max-width:640px){.cr-terms{grid-template-columns:1fr 1fr}.cr-big{font-size:20px}.tr-grid input{width:70px}}
.cr-next{margin:0 0 12px;padding:12px 14px;border-radius:14px;border:1px dashed color-mix(in srgb,var(--good) 45%,var(--line));background:color-mix(in srgb,var(--good) 7%,var(--surface))}
.cr-next-rows{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:13.5px}
.cr-rate{white-space:nowrap}.cr-rate .hint{font:500 12px/1 "IBM Plex Sans","Hind Siliguri",system-ui,sans-serif}
@media (max-width:640px){.cr-term{padding:13px}.cr-rate{font-size:19px}.cr-m b{font-size:22px}.cr-extra{font-size:11px;padding:2px 7px}}
/* duplicate checker (owner 2026-10-16) */
.dp-warn{border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.dp-h{margin:14px 0 6px;font-size:14px}
.dp-group{padding:10px 12px;margin:0 0 8px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--bad) 4%,var(--surface))}
.dp-key{margin:0 0 4px;font-weight:600;color:var(--bad)}
.dp-group ul,.dp-list{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13.5px}
.dp-rules{margin:6px 0 0;padding-left:20px;display:grid;gap:5px;font-size:14px}
.dup-flag{text-decoration:none}
/* text messages: SMS and WhatsApp (owner 2026-10-16) */
.pill.wa{color:#0b6b3a;background:#d9f7e6}
:root[data-theme="dark"] .pill.wa{color:#7ff0b0;background:#123b27}
.wa-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#25d366;vertical-align:middle}
.tx-pv.on{border-color:color-mix(in srgb,var(--good) 40%,var(--line))}
.tx-ch{grid-template-columns:repeat(3,1fr)!important}
.tx-pick{display:grid;gap:8px}
.tx-found,.tx-picked{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;min-height:36px}
.chip.on{background:color-mix(in srgb,#6a4fd6 10%,var(--surface));border-color:#b79cff}
.chip.on button{border:0;background:none;color:inherit;font-size:16px;cursor:pointer;padding:0 2px}
.tx-list{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.tx-list li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;padding:8px 10px;border-radius:10px;background:var(--soft,color-mix(in srgb,var(--ink) 4%,transparent));font-size:13.5px}
.tx-prefs .check{display:flex;align-items:center;gap:8px;margin:4px 0}
@media (max-width:640px){.tx-ch{grid-template-columns:1fr!important}}
/* header bell list (owner 2026-10-16) */
.um-bellbox > summary{list-style:none;cursor:pointer}.um-bellbox > summary::-webkit-details-marker{display:none}.um-bellbox > summary::after{content:none!important}
.bell-pop{min-width:270px}
.bell-pop a{display:flex!important;justify-content:space-between;align-items:center;gap:10px}
.bell-pop .badge{position:static;font-size:11px}
.bell-h{margin:4px 12px 6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.bell-none{margin:6px 12px 8px;color:var(--good);font-size:13.5px}
.rym-add{display:flex;gap:6px;align-items:center}.rym-add input{width:150px;min-height:36px}
tr.rym-on td{background:color-mix(in srgb,#6a4fd6 8%,var(--surface))!important}
/* quick search Ctrl+K (owner 2026-10-16) */
.modal.ck-modal{max-width:640px;padding:0;overflow:hidden;align-self:flex-start;margin-top:10vh}
.ck-in{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.ck-in input{flex:1;border:0;background:none;font-size:17px;outline:none;color:var(--ink);min-height:36px}
.ck-in kbd,.ck-foot kbd{font:600 11px system-ui;padding:2px 6px;border-radius:6px;border:1px solid var(--line);color:var(--muted)}
.ck-res{max-height:56vh;overflow:auto;padding:6px 8px 10px}
.ck-h{margin:10px 10px 4px;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ck-item{display:grid;grid-template-columns:28px 1fr;gap:0 10px;align-items:center;padding:9px 10px;border-radius:10px;color:var(--ink);text-decoration:none}
.ck-item .ck-ic{grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--soft,color-mix(in srgb,var(--ink) 6%,transparent))}
.ck-item .ck-sub{font-size:12.5px;color:var(--muted)}
.ck-item.on,.ck-item:hover{background:color-mix(in srgb,#6a4fd6 10%,var(--surface))}
.ck-empty{padding:18px;color:var(--muted);text-align:center}
.ck-foot{margin:0;padding:8px 16px;border-top:1px solid var(--line)}
.um-search{border:0;cursor:pointer;color:inherit}
@media (max-width:640px){.modal.ck-modal{margin-top:4vh}}
.wait{display:inline-block;margin-top:4px;font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:99px;white-space:nowrap}
.wait.ok{color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent)}.wait.mid{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.wait.late{color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}
/* client insights card (owner 2026-10-16) */
.in-card{grid-column:1/-1;background:linear-gradient(135deg,color-mix(in srgb,#ffb198 14%,var(--surface)),color-mix(in srgb,#b79cff 16%,var(--surface)))}
.in-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:8px}
.in-k{margin:0;font-size:12.5px;color:var(--muted)}
.in-v{margin:2px 0 0;font:600 20px/1.25 "Sora","Hind Siliguri",system-ui,sans-serif}
.in-proj{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px dashed color-mix(in srgb,#6a4fd6 35%,var(--line))}
.in-proj .v{font:600 24px/1.2 "Sora",system-ui,sans-serif;margin:2px 0}
@media (max-width:640px){.in-grid{grid-template-columns:1fr 1fr}.in-v{font-size:17px}}
/* website visitors (owner 2026-10-16) */
.vs-bars{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:7px}
.vs-bars li{display:grid;grid-template-columns:minmax(90px,1.1fr) 2fr auto auto;gap:10px;align-items:center;font-size:13.5px}
.vs-k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vs-bar{height:9px;border-radius:99px;background:color-mix(in srgb,var(--ink) 7%,transparent);overflow:hidden}
.vs-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#b79cff,#6a4fd6)}
.vs-svg{width:100%;height:auto;margin-top:8px}.vs-col{fill:color-mix(in srgb,#6a4fd6 55%,transparent)}.vs-col:hover{fill:#6a4fd6}
.vs-line{stroke:#ffb198;stroke-width:2.5;stroke-linejoin:round}
.vs-hours{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;align-items:end;height:70px;margin-top:6px}
.vs-hours span{display:block;height:max(3px,var(--h));border-radius:3px 3px 0 0;background:linear-gradient(180deg,#ffb198,#b79cff)}
.st-link{text-decoration:none;color:inherit}.st-link:hover{background:var(--accent-soft)}
@media (max-width:640px){.vs-bars li{grid-template-columns:1fr 1fr auto}.vs-bars li .hint{display:none}}
.linkbtn[data-tap]{min-height:32px;padding:4px 2px;display:inline-flex;align-items:center}
/* transaction ID (owner 2026-10-16): the 17-digit ID first, the internal reference small under it */
.txid{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.txref{display:block;font-size:11px;color:var(--muted);font-family:"IBM Plex Mono",ui-monospace,monospace}
/* signed-in tables fit a 1366 px laptop (Chrome check 2026-10-16): words may wrap; numbers, dates, IDs, amounts and pills stay on one line */
@media (min-width:641px){
  .app main td,.app main th{white-space:normal}

  .app main td.num,.app main td.r,.app main td.mono,.app main .txid,.app main td .pill,.app main td .btn,.app main td .wait,.app main td.num *{white-space:nowrap}
  .app main td .actions,.app main td.r .btn{white-space:nowrap}
  .app main td .hint{word-break:break-word}
}
@media (min-width:641px){
  .app main td.num,.app main td.r{white-space:normal}
  .app main td .num,.app main td.r b,.app main td.r > .num{white-space:nowrap}
  .app main td.r:has(.btn){white-space:normal}
  .app main td.r:has(.btn) .btn{margin:2px 0}
  .app main td .hint.mono{word-break:normal;overflow-wrap:anywhere}
}
/* narrow-panel tables as cards on wide screens (same look as on phones) */
.app main .tscroll:has(table.as-cards){overflow:visible;border:0;background:none}
.app main table.as-cards{border:0;min-width:0!important;width:100%;border-collapse:separate}
.app main table.as-cards thead{display:none}
.app main table.as-cards tbody,.app main table.as-cards tfoot,.app main table.as-cards tr,.app main table.as-cards td{display:block;width:100%}
.app main table.as-cards tr{margin:0 0 10px;padding:6px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)!important}
.app main table.as-cards td{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);text-align:right!important;white-space:normal!important}
.app main table.as-cards td:last-child{border-bottom:0}
.app main table.as-cards td[data-label]::before{content:attr(data-label);color:var(--muted);font-size:11.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;text-align:left;flex:none;max-width:42%;padding-top:2px}
.app main table.as-cards td.empty,.app main table.as-cards td[colspan]{display:block;text-align:center!important}
.app main table.as-cards td:empty{display:none}
/* copy trading form (2026-10-19) */
.cp-opts{border:0;padding:0;margin:0 0 14px;min-width:0}.cp-opts legend{font-weight:600;font-size:13.5px;margin-bottom:6px;padding:0}
.cp-opts .check{margin:5px 0}.cp-opts .check input{width:auto;margin-top:0}.cp-opts .hint{display:block;margin-top:4px}
/* owner 2026-10-19: boxes never touch — a box after any other block in the page flow or in a column gets a gap
   (sibling margins collapse, so a block that already has its own margin keeps it) */
.main > * + :is(.panel,.card,.tiles,.grid2,.grid3,form,details,section,div:has(> .panel),div:has(> form.panel),div:has(> .card)),
:is(.grid2,.grid3) > div > * + :is(.panel,.card,.tiles,form.panel,div:has(> .panel)),
.panel + :is(.tiles,.grid2,.grid3,.card),.tiles + .panel{margin-top:16px}
* + details.panel,div:has(> .panel) + .panel,div:has(> .card) + .panel{margin-top:16px}
/* ---------- document centre (owner 2026-10-21): one card per document; green accepted, amber checking, red not accepted, grey not sent */
.dc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:14px}
.dc-card{--dc:var(--muted);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0;transition:transform .18s ease,box-shadow .18s ease}
.dc-card header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--sunk);border-bottom:1px solid var(--line)}
.dc-card header h4{margin:0;font-size:14px;font-weight:600}
.dc-req,.dc-opt{font-size:11px;border-radius:999px;padding:2px 8px;white-space:nowrap}
.dc-req{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad)} .dc-opt{background:var(--surface);color:var(--muted);border:1px solid var(--line)}
.dc-body{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 12px 12px;text-align:center;flex:1}
.dc-icon{width:68px;height:68px;color:var(--dc);filter:drop-shadow(0 6px 10px color-mix(in srgb,var(--dc) 28%,transparent))}
.dc-state{margin:0;font-weight:600;color:var(--dc);border-top:1px dashed color-mix(in srgb,var(--dc) 55%,var(--line));padding-top:8px;width:100%}
.dc-det{margin:0}
.dc-parts{list-style:none;margin:0;padding:0;width:100%;display:grid;gap:4px;font-size:13px}
.dc-parts li{display:flex;justify-content:space-between;gap:6px;align-items:center}
.dc-reason{margin:0;font-size:13px;color:var(--bad);text-align:left;width:100%;background:color-mix(in srgb,var(--bad) 8%,transparent);border-radius:8px;padding:6px 8px}
.dc-card footer{padding:10px 12px;background:var(--sunk);border-top:1px solid var(--line);display:grid;gap:8px}
.dc-card footer .hint{margin:0;font-size:12.5px;text-align:center}
.dc-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.dc-ok{--dc:var(--good);border-color:color-mix(in srgb,var(--good) 45%,var(--line))}
.dc-review{--dc:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}
.dc-rejected{--dc:var(--bad);border:2px solid var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 14%,transparent)}
.dc-rejected header{background:color-mix(in srgb,var(--bad) 12%,var(--sunk))}
.dc-missing{--dc:var(--muted);border-style:dashed}
.dc-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px -18px rgb(20 12 40/.45)}
.dc-todo{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.dc-todo li{padding:8px 10px;border-radius:8px;background:var(--warn-bg);font-size:14px}
.dc-todo li.bad{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad)}
.dc-req-list{display:flex;flex-wrap:wrap;gap:10px 18px;margin:10px 0}
@media (prefers-reduced-motion:reduce){.dc-card{transition:none}.dc-card:hover{transform:none}}
/* ---------- light 3D (owner 2026-10-21, lightened): only the card under the mouse tilts; nothing else gets a 3D layer or a filter */
html.tilt-on :is(.rb,.an,.fm,.fc,.lane,.tv-note,.pipeline,.dc-card,.tile,.svc-card,.mk-card):not(.rv:not(.in)){transition:transform .3s ease,box-shadow .3s ease,opacity .6s ease}
html.tilt-on .is-tilting{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 22px 40px -26px rgb(20 12 40/.5);transition:transform .1s linear,box-shadow .3s ease}
@media (prefers-reduced-motion:reduce){html.tilt-on .is-tilting{transform:none!important}}

/* ---------- contrast fixes (owner 2026-10-21) */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .review-card{background:linear-gradient(160deg,#241c3e,#1a1430)}}
:root[data-theme="dark"] .review-card{background:linear-gradient(160deg,#241c3e,#1a1430)}
.star{color:#8f84b0}
.star.on{color:#e8a33a}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .su.done .su-dot{color:#0d2b1d}}
:root[data-theme="dark"] .su.done .su-dot{color:#0d2b1d}
.bankbar .bb-chip small{color:#ece7ff}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .pill.warn{color:#7a5208}}
:root[data-theme="light"] .pill.warn{color:#7a5208}

/* personal rate set for this client (owner 2026-10-21) */
.pr-own{border-color:var(--coral,#ff8f6b)!important;box-shadow:0 0 0 2px rgb(255 143 107/.25);font-weight:700}
/* owner 2026-10-23: one amount in the other currencies */
.m4{display:flex;flex-wrap:wrap;gap:2px 10px;font-variant-numeric:tabular-nums}
.m4 > span{white-space:nowrap}
/* owner 2026-10-24: a click shows at once that it was taken (page loading bar; a busy button) */
html.nav-busy::before{content:"";position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;pointer-events:none;background:linear-gradient(90deg,transparent,var(--accent,#2f6bff),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:nav-run 1s linear infinite}
@keyframes nav-run{from{background-position:-40% 0}to{background-position:140% 0}}
.is-busy{opacity:.6;cursor:progress!important}
/* owner 2026-10-24: admin market board - where the price sits in today's range; news rows that have passed */
.mk-rng{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--bad),var(--line) 50%,var(--good))}
.mk-rng i{position:absolute;top:-3px;width:4px;height:12px;margin-left:-2px;border-radius:2px;background:var(--ink)}
.nw-past{opacity:.6}
.um-news{text-decoration:none;white-space:nowrap}
/* owner 2026-10-24: trading control page */
.ctl-switch.on{border-left:4px solid var(--good)}
.ctl-switch.off{border-left:4px solid var(--bad)}
.ctl-sw-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.ctl-state{font-size:22px;margin:4px 0 2px}
.ctl-sw{position:relative;display:inline-block;width:38px;height:22px;vertical-align:middle}
.ctl-sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.ctl-sw span{position:absolute;inset:0;border-radius:999px;background:var(--line);transition:background .15s}
.ctl-sw span::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgb(0 0 0/.25);transition:transform .15s}
.ctl-sw input:checked+span{background:var(--good)}
.ctl-sw input:checked+span::after{transform:translateX(16px)}
.ctl-sw input:disabled{cursor:not-allowed}
.ctl-sw input:disabled+span{opacity:.5}
.ctl-sw input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.ctl-grid td.c,.ctl-grid th.c{text-align:center}
.ctl-all td{background:var(--sunk)}
.ctl-row-off td{opacity:.55}
.ctl-num{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.ctl-num input{width:84px}
.ctl-setups{display:flex;flex-wrap:wrap;gap:10px 18px}
.ctl-setup{display:inline-flex;gap:8px;align-items:center;text-transform:capitalize}
.ctl-checks{margin:8px 0 0 18px;display:grid;gap:4px}
.ctl-fixed{margin:4px 0 0 18px;display:grid;gap:4px}
/* owner 2026-10-28: strategy rules (Trading control, second view) */
.se-tabs{margin:10px 0}
.se-cell{white-space:nowrap}
.se-score{width:58px;margin-left:6px;padding:4px 6px}
.se-offc .se-score{opacity:.55}
.se-src{display:inline-block;min-width:16px;margin-left:3px;padding:0 3px;border-radius:5px;font-size:10px;font-weight:700;line-height:16px;text-align:center;background:var(--sunk);color:var(--muted,#888);vertical-align:middle}
.se-symbol_lane{background:var(--accent,#2f6bff);color:#fff}.se-class_lane{background:#7c5cff;color:#fff}.se-lane{background:#16a085;color:#fff}.se-global{background:var(--line)}
.se-val{white-space:pre-wrap;word-break:break-word;font-size:12px}
.se-json{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:12px}
.se-set{display:flex;flex-wrap:wrap;gap:6px 14px}
.se-set label{display:inline-flex;gap:6px;align-items:center;font-size:13px}
.se-risk td{background:color-mix(in srgb,var(--bad,#d33) 10%,transparent)}
.se-hi td{font-weight:600}
.se-ack{display:flex;gap:8px;align-items:flex-start;margin-top:8px;color:var(--bad,#d33)}
.se-sched{display:grid;gap:3px;margin-top:4px}
.se-srow{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;align-items:center;font-size:12px}
.se-bar{display:grid;grid-template-columns:repeat(96,minmax(0,1fr));height:14px;border-radius:4px;overflow:hidden;background:var(--line)}
.se-bar i{display:block}.se-bar i.o{background:var(--good,#159957)}.se-bar i.x{background:var(--sunk)}.se-bar i.s{background:repeating-linear-gradient(135deg,var(--good,#159957) 0 3px,var(--sunk) 3px 6px)}.se-bar i.now{box-shadow:inset 0 0 0 2px var(--ink,#111)}
.se-hours{position:relative;height:16px;margin-left:100px;font-size:10px;color:var(--muted,#888)}.se-hours b{position:absolute;font-weight:500}
@media (max-width:520px){.se-srow{grid-template-columns:70px minmax(0,1fr)}.se-hours{margin-left:78px}}

/* owner 2026-10-26: monthly profit bars on the client dashboard */
.mp-svg{width:100%;max-height:170px;display:block;margin-top:8px}.mp-bar{fill:var(--accent,#2f6bff);opacity:.85}.mp-bar:hover{opacity:1}.mp-lbl{font-size:9px;fill:var(--muted,#888)}.mp-next{margin-top:10px;font-size:14px}
/* owner 2026-10-26: agent referral share */
.ref-share{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-top:12px}.ref-qr{width:150px;background:#fff;padding:8px;border-radius:8px}.ref-btns{display:flex;flex-wrap:wrap;gap:8px;max-width:420px}
/* owner 2026-10-26: serial column + pager */
td.sn,th.sn{width:1%;white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted,#888);font-weight:600;padding-left:12px;padding-right:12px}th.sn{color:var(--muted,#888)}
.sn-pager{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin-top:12px}.sn-nav{display:flex;gap:4px;align-items:center}.sn-btn{min-width:34px;height:34px;padding:0 8px;border-radius:9px;border:1px solid var(--line,#ddd);background:var(--surface,#fff);color:inherit;cursor:pointer;font:inherit}.sn-btn[aria-current]{background:var(--accent,#2f6bff);border-color:var(--accent,#2f6bff);color:#fff}.sn-btn:disabled{opacity:.4;cursor:default}.sn-gap{padding:0 4px;color:var(--muted,#888)}.sn-size{margin-left:6px;padding:4px 6px;border-radius:8px}
/* owner 2026-10-26: hide / show the left menu */
html.side-hidden .app{grid-template-columns:minmax(0,1fr)}html.side-hidden .app>.side{display:none}
/* owner 2026-10-26: business summary */
.bz{margin-bottom:18px}.bz-head{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:space-between;align-items:flex-end}.bz-tabs{display:flex;flex-wrap:wrap;gap:8px 14px}
.bz-group{margin:16px 0 8px;font-weight:600;font-size:14px}.bz-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.bz-kpi{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}.bz-k{font-size:12px;color:var(--muted,#888);text-transform:uppercase;letter-spacing:.04em}.bz-v{font-size:22px;font-weight:700;margin-top:4px}.bz-s{font-size:12px;color:var(--muted,#888);margin-top:4px}
.bz-kpi.pos .bz-v{color:var(--ok,#159957)}.bz-kpi.neg .bz-v{color:var(--bad,#d33)}td.pos{color:var(--ok,#159957)}td.neg{color:var(--bad,#d33)}
.bz-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px;margin-top:16px;align-items:start}@media (max-width:960px){.bz-foot{grid-template-columns:1fr}}
.bz-svg{width:100%;height:110px}.bz-axis{stroke:var(--line);stroke-width:1}.bz-up{fill:var(--ok,#159957)}.bz-dn{fill:var(--bad,#d33)}.bz-paid{fill:var(--accent,#2f6bff);opacity:.55}
.bz-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin:0 4px 0 10px;vertical-align:middle}.bz-dot.up{background:var(--ok,#159957)}.bz-dot.paid{background:var(--accent,#2f6bff);opacity:.55}
/* owner 2026-10-26: hide button on the menu, show tab on the left edge */
.app>.side{position:sticky}.side-hide{position:absolute;top:12px;right:10px;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--muted,#888);cursor:pointer;font-size:16px;line-height:1;display:grid;place-items:center;z-index:2;transition:background .15s,color .15s}
.side-hide:hover{background:var(--accent,#2f6bff);color:#fff;border-color:transparent}
.side-open{display:none;position:fixed;left:0;top:96px;z-index:60;width:34px;height:42px;border:1px solid var(--line);border-left:0;border-radius:0 12px 12px 0;background:var(--surface);color:inherit;box-shadow:0 6px 18px rgba(20,16,40,.14);cursor:pointer;font-size:17px}
.side-open:hover{background:var(--accent,#2f6bff);color:#fff}
html.side-hidden .side-open{display:grid;place-items:center}
@media (max-width:960px){.side-hide,.side-open{display:none!important}html.side-hidden .app>.side{display:flex}}
/* owner 2026-10-26: trading desk additions */
.dk-risk-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;align-items:center}@media (max-width:760px){.dk-risk-grid{grid-template-columns:1fr}}
.dk-big{font-size:26px;font-weight:700;margin:4px 0}.dk-bar{height:12px;border-radius:7px;background:var(--line);overflow:hidden;margin:8px 0}.dk-bar span{display:block;height:100%;border-radius:7px;background:var(--ok,#159957)}.dk-bar.warn span{background:#e0a100}.dk-bar.bad span{background:var(--bad,#d33)}
.dk-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:6px 0 4px;font-size:13px}.dk-leg i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.dk-leg.live i{background:#16a34a}.dk-leg.demo i{background:#7c6cf0}
/* owner 2026-10-27: desk top strip - running / waiting / A+ as icons, LIVE and DEMO apart */
.dn-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:860px){.dn-grid{grid-template-columns:1fr}}
.dn-acct{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}.dn-acct.live{border-top:4px solid #16a34a}.dn-acct.demo{border-top:4px solid #7c6cf0}
.dn-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.dn-lbl{font-size:12px;font-weight:600;min-width:118px;color:var(--muted,#666)}
.dn-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:999px;border:1px solid var(--line);font-size:12.5px;line-height:1.2;background:var(--bg,#fff);white-space:nowrap}
.dn-ic{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:12px;color:#fff;background:#8a8399}
.dn-chip.buy .dn-ic{background:#16a34a}.dn-chip.sell .dn-ic{background:#dc2626}.dn-chip.wait .dn-ic{background:#d97706}.dn-chip.aplus .dn-ic{background:linear-gradient(135deg,#f5b301,#e07b00)}
.dn-chip.aplus{border-color:#f0c45a;background:#fff8e6}
.dn-grid.one{grid-template-columns:1fr}.dn-mt5{margin:8px 0 4px}.dn-mt5 table{font-size:12.5px;white-space:nowrap}.dn-mt5 th{font-weight:600;color:var(--muted,#666)}
.dn-mt5 td,.dn-mt5 th{padding:5px 8px}.dn-mt5 tbody tr:nth-child(even){background:color-mix(in srgb,var(--line) 35%,transparent)}
.dn-mt5 tfoot td{border-top:2px solid var(--line);background:color-mix(in srgb,var(--line) 55%,transparent);font-size:12.5px}
.dn-side{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:4px;color:#fff;font-size:10px}.dn-side.buy{background:#16a34a}.dn-side.sell{background:#dc2626}
.dn-acline{margin:6px 0 2px}.dn-chip .pos{color:#15803d}.dn-chip .neg{color:#b91c1c}
.dk-svg{width:100%;height:220px}.dk-line{stroke-width:2.2}.dk-line.live{stroke:#16a34a}.dk-line.demo{stroke:#7c6cf0}.dk-zero{stroke:var(--line);stroke-dasharray:4 4}.dk-ax{font-size:10px;fill:var(--muted,#888)}
tr.dk-badrow td{background:color-mix(in srgb,var(--bad,#d33) 8%,transparent)}tr.dk-goodrow td{background:color-mix(in srgb,var(--ok,#159957) 8%,transparent)}

/* owner 2026-10-26 ("joto page print hoy sob gulo te slogan and water merk"): every printed page carries the Next Gen Global seal
   in the middle (fixed = repeated on each sheet, faint, over the content so tables never hide it) and the slogan at the foot */
@media print{
  body::before{content:url("/img/seal.svg");position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);opacity:.07;z-index:2147483646;pointer-events:none}
  @page{@bottom-center{content:"Next Gen Global \00B7  Responsible investment management  \2014  Your investment and trust. Our responsibility.";font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:8.5pt;color:#6b5a8a}}
}

/* owner 2026-10-27 ("sob koro, sundor o poripati kore", like SK) */
/* business chart fills its column next to the month table */
.bz-foot{align-items:stretch}.bz-chart{display:flex;flex-direction:column;min-width:0}.bz-chart .bz-svg{flex:1 1 auto;height:auto;min-height:240px}
/* friendly page not found */
.nf-wrap{display:grid;place-items:center;min-height:70vh;padding-block:40px}.nf-card{max-width:560px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:36px 28px;box-shadow:0 18px 50px rgb(46 35 75/.10)}
.nf-code{font-family:var(--font-display);font-size:86px;font-weight:800;line-height:1;letter-spacing:-.04em;background:linear-gradient(120deg,#2e234b,#6a4fd6 60%,#ffb198);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:10px}
:root[data-theme="dark"] .nf-code{background:linear-gradient(120deg,#ffb198,#b79cff);-webkit-background-clip:text;background-clip:text}
.nf-card h2{font-size:24px}.nf-card .sub{margin-top:8px;color:var(--muted)}.nf-path{margin-top:10px;word-break:break-all;opacity:.75}.nf-card .cta{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}
/* our own confirm box (also the idle warning) */
.ask-scrim{position:fixed;inset:0;z-index:10000;background:var(--scrim);display:grid;place-items:center;padding:16px;animation:askIn .14s ease-out}
.ask{width:min(440px,100%);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 24px 60px rgb(0 0 0/.28)}
.ask-head{display:flex;align-items:center;gap:12px}.ask-head h3{font-size:18px}.ask-ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:18px}.ask-ic.danger{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}
.ask p{margin-top:12px;white-space:pre-line;color:var(--muted)}.ask-btns{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px}.ask-danger{background:var(--bad)!important;border-color:var(--bad)!important;color:#fff!important}
.idle-n{font-size:15px}.idle-n b{font-size:28px;color:var(--ink);margin-right:4px}
@keyframes askIn{from{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.ask-scrim{animation:none}}
/* left menu: icons only */
.side-mini-btn{position:absolute;top:12px;right:44px;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--muted,#888);cursor:pointer;font-size:14px;display:grid;place-items:center;z-index:2}
.side-mini-btn:hover{background:var(--accent,#2f6bff);color:#fff;border-color:transparent}
html.side-mini .app{grid-template-columns:72px minmax(0,1fr)}
html.side-mini .app>.side{padding:58px 8px 14px;align-items:center}
html.side-mini .app>.side :is(.brand>span:not(.mark),.eyebrow,.nav-group,.who .hide-sm,.who .lang){display:none}
html.side-mini .app>.side .who [data-action="a-logout"]{font-size:0;padding:6px 10px}html.side-mini .app>.side .who [data-action="a-logout"]::before{content:"⎋";font-size:16px}
html.side-mini .app>.side nav{width:100%}html.side-mini .app>.side nav :is(a,button){justify-content:center;padding:10px 0;position:relative}
html.side-mini .app>.side nav .nb-l>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}html.side-mini .app>.side nav .nav-ic{width:20px;height:20px}
html.side-mini .app>.side nav .badge{position:absolute;top:2px;right:4px;min-width:16px;height:16px;font-size:9px;padding:0 4px}
html.side-mini .side-mini-btn{right:auto;left:50%;transform:translateX(-50%)}html.side-mini .side-hide{display:none}
html.side-mini .app>.side .who{justify-items:center}
@media (max-width:960px){.side-mini-btn{display:none!important}html.side-mini .app{grid-template-columns:1fr}html.side-mini .app>.side{padding:18px 14px;align-items:stretch}html.side-mini .app>.side :is(.eyebrow,.nav-group,.who .hide-sm){display:revert}html.side-mini .app>.side nav .nb-l>span{position:static;width:auto;height:auto;overflow:visible;clip:auto}}
/* who is signed in: initials + role colour */
.who-id{display:flex;align-items:center;gap:10px;min-width:0}
.av{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-weight:700;font-size:13px;letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,#5b9cff,#6a4fd6);box-shadow:0 0 0 2px rgb(255 255 255/.18)}
.av.role-super_admin{background:linear-gradient(135deg,#f5b301,#e07b00)}.av.role-accountant{background:linear-gradient(135deg,#19b37a,#0e7a52)}.av.role-support{background:linear-gradient(135deg,#5b9cff,#3a64d8)}
.role-b{display:inline-block;margin-top:3px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;background:rgb(91 156 255/.18);color:#9cc2ff}
.role-b.role-super_admin{background:rgb(245 179 1/.2);color:#ffd36b}.role-b.role-accountant{background:rgb(25 179 122/.2);color:#7fe3b8}
.um-help{font-weight:800;font-size:15px;color:inherit;text-decoration:none}
/* the footer line */
.trust-foot{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;margin-top:28px;padding:14px 4px 4px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.trust-foot .tf-brand{margin-left:auto;font-weight:600;letter-spacing:.02em}
@media print{.trust-foot,.um-help{display:none}}
/* overview top */
.ov-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px 24px;align-items:center;margin-bottom:16px;padding:22px 24px;border-radius:18px;color:#fff;
  background:radial-gradient(120% 140% at 100% 0%,rgb(255 177 152/.28),transparent 55%),linear-gradient(125deg,#22304a 0%,#2e234b 50%,#4a3a8a 100%);box-shadow:0 12px 32px rgb(34 48 74/.25)}
.ov-hero h2{font-size:26px;color:#fff;margin-top:4px}.ov-date{font-size:13px;color:#c9d4ea;letter-spacing:.02em}.ov-sub{margin-top:6px;color:#d6dcef;font-size:14px}
.ov-total{justify-self:end;text-align:right}.ov-k{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#c9d4ea}.ov-big{font-size:30px;font-weight:700;line-height:1.15;margin-top:2px}.ov-s{font-size:13px;color:#d6dcef;margin-top:4px}
.ov-qa{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.ov-qa-b{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;background:rgb(255 255 255/.10);border:1px solid rgb(255 255 255/.16);color:#fff;text-decoration:none;font-size:14px;font-weight:500;transition:background .15s,transform .15s}
.ov-qa-b:hover{background:rgb(255 255 255/.2);transform:translateY(-1px)}.ov-qa-b .nav-ic{width:17px;height:17px;opacity:.9}.ov-qa-b .badge{margin-left:2px}
@media (max-width:760px){.ov-hero{grid-template-columns:1fr;padding:18px}.ov-total{justify-self:start;text-align:left}.ov-big{font-size:24px}}
/* tiles with an icon */
.tiles.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:16px}
.tile.kpi{display:block;text-decoration:none;color:inherit;padding-right:56px;transition:transform .15s,box-shadow .15s}.tile.kpi:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgb(46 35 75/.12)}
.kpi-ic{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--accent-soft);font-size:17px}
.tile.kpi.warn{border-top-color:#e0a100}.tile.kpi.warn .kpi-ic{background:var(--warn-bg)}.tile.kpi.bad{border-top-color:var(--bad)}
/* section heads */
.sec-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sec-h h3{font-size:17px}
/* needs your attention + automatic jobs */
.ov-two{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;margin-bottom:16px}.ov-two>.panel{margin:0}@media (max-width:960px){.ov-two{grid-template-columns:1fr}}
.att-list{display:grid;gap:6px}.att-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);border-left:4px solid var(--line);text-decoration:none;color:inherit;background:var(--bg)}
.att-row:hover{border-color:var(--accent)}.att-row.warn{border-left-color:#e0a100}.att-row.bad{border-left-color:var(--bad)}.att-ic{flex:none;width:22px;text-align:center}.att-t{flex:1;min-width:0;font-size:14px}.att-go{color:var(--muted);font-size:18px}
.att-none{padding:14px;border-radius:10px;background:color-mix(in srgb,var(--good) 10%,transparent);color:var(--good);font-weight:600}
.job-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14px}.job-row:last-of-type{border-bottom:0}
.job-dot{width:10px;height:10px;border-radius:50%;background:#9a94ad}.job-dot.ok{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 20%,transparent)}.job-dot.warn{background:#e0a100}.job-dot.bad{background:var(--bad)}
.job-at{font-size:12.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
/* reports catalogue */
.rc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.rc-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:inherit;text-decoration:none;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,transform .15s}
.rc-card:hover{border-color:var(--accent);transform:translateY(-1px)}.rc-ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);font-size:18px}
.rc-tx{flex:1;min-width:0;display:grid;gap:2px}.rc-tx b{font-size:14px}.rc-tx span{font-size:12.5px;color:var(--muted);line-height:1.35}.rc-go{color:var(--muted)}
.rc{margin-bottom:16px}.rep-sec{scroll-margin-top:16px}
/* help page with the manual inside */
.help-secs{margin:0 0 12px}.help-frame{padding:0;overflow:hidden}.help-frame iframe{display:block;width:100%;height:calc(100vh - 250px);min-height:520px;border:0;background:#fff}
/* audit signature check */
.av-res{margin-bottom:16px;border-left:4px solid var(--good)}.av-res.bad{border-left-color:var(--bad)}
/* the two menu buttons sit in their own row above the name, so the name keeps its width */
.app>.side{padding-top:50px}@media (max-width:960px){.app>.side{padding-top:18px}}
@media (max-width:560px){.tiles.kpis{grid-template-columns:1fr 1fr;gap:10px}.tile.kpi{padding:12px 46px 12px 12px}.kpi-ic{width:30px;height:30px;top:10px;right:10px;font-size:15px}}

/* owner 2026-10-27 ("SK er 1-5, sbs er 1-5"): exports, reports, corrections, security check, activity, gateways, backups */
.exp-btns{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.exp-btns .btn{white-space:nowrap}
.day-nav{display:flex;align-items:center;gap:12px;justify-content:center;margin:0 0 14px}.day-nav b{font-size:16px}
.cq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.cq-card{border:1px solid var(--line);border-left:4px solid #e0a100;border-radius:12px;padding:12px 14px;background:var(--bg)}.cq-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:6px}
.cq-card .actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sc-list{display:grid;gap:8px}.sc-item{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:10px;background:var(--bg)}
.sc-item>summary{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;list-style:none}.sc-item>summary::-webkit-details-marker{display:none}
.sc-item>summary .linkbtn{margin-left:auto;white-space:nowrap}.sc-t{flex:1;min-width:0}.sc-item>.hint,.sc-names{margin:0 12px 10px 44px}
.sc-item.bad{border-left-color:var(--bad)}.sc-item.warn{border-left-color:#e0a100}.sc-item.info{border-left-color:#5b9cff}.sc-item.ok{border-left-color:var(--good);opacity:.85}
.sc-names{padding-left:18px;font-size:13px;columns:2;column-gap:24px}@media (max-width:700px){.sc-names{columns:1}}
.sb-row{display:inline-flex;gap:4px;flex-wrap:wrap}.sb{display:inline-grid;place-items:center;min-width:26px;height:22px;padding:0 5px;border-radius:6px;font-size:11px;font-weight:700;border:1px solid var(--line)}
.sb.ok{background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good);border-color:transparent}.sb.no{opacity:.45;filter:grayscale(1)}.sb.idle{background:var(--warn-bg);color:var(--warn);border-color:transparent;font-weight:600}
.dc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.dc{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:13.5px}.dc span:nth-child(2){flex:1}
.dc.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 7%,transparent)}.dc.warn{border-color:#e0a100;background:var(--warn-bg)}
.json-view{margin-top:12px;max-height:50vh;overflow:auto;background:var(--sunk);border:1px solid var(--line);border-radius:10px;padding:12px;font:12.5px/1.5 var(--font-mono);white-space:pre-wrap;word-break:break-word}
.bk-steps{padding-left:20px;display:grid;gap:6px;margin:8px 0 10px}.wn-day+.wn-day{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.wn ul{margin:6px 0 0;padding-left:20px;display:grid;gap:4px}
.ov-nb{margin-bottom:16px}.ov-nb-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--line)}.ov-nb-row:last-child{border-bottom:0}
@media print{.exp-btns,.day-nav button,.q-filter{display:none!important}}
