/* ============ TOKENS ============ */
:root{
  --bg:#F2F3EF; --surface:#FFFFFF; --surface2:#F1F2ED; --line:#E7E9E2;
  --ink:#0F1412; --ink2:#9AA09B; --ink3:#C9CDC6;
  --lime:#A3E635; --lime-press:#84CC16; --lime-soft:#EFF9D6; --lime-faint:#F7FCEC; --on-lime:#0F1412;
  --lime-glow:rgba(163,230,53,.35);
  --green:#14352A; --green2:#1E4A3A;
  --amber:#F5A623; --red:#E85D4A;
  --r:26px; --sh:0 10px 26px rgba(15,20,18,.07); --shs:0 4px 14px rgba(15,20,18,.06);
  --gutter:#E6E8E2;
  --font-body:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,sans-serif;
  --font-display:"Bricolage Grotesque","Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
[data-theme="dark"]{
  --bg:#0E1210; --surface:#171C19;   --surface2:#202621; --line:#262D27;
  --ink:#F1F3EE; --ink2:#8F968F; --ink3:#39413B;
  --lime:#A3E635; --lime-press:#84CC16; --lime-soft:#24301B; --lime-faint:#1A2214; --on-lime:#0F1412;
  --lime-glow:rgba(163,230,53,.28);
  --gutter:#040604;
  --green:#BEF264; --green2:#D8F98F;
  --sh:0 10px 26px rgba(0,0,0,.4); --shs:0 4px 14px rgba(0,0,0,.35);
}
/* ============ BASE ============ */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:var(--font-body);background:var(--gutter);color:var(--ink);overscroll-behavior:none;user-select:none;-webkit-user-select:none;touch-action:manipulation;-webkit-font-smoothing:antialiased}
.bal,.amt-big,.dhero-amt,.htitle,.obh,.spl-n,.auth h1,.succ-t,.succ-a,.stnet b,.bknum,.qrbox.code,.sec h3,.sh-title,.pcard h2,.promo b,.inv-t,.about-name{font-family:var(--font-display)}
input,textarea{user-select:text;-webkit-user-select:text;font:inherit;color:inherit}
button{font:inherit;border:0;background:none;color:inherit;cursor:pointer;touch-action:manipulation}
svg{display:block}
#app{position:fixed;inset:0;margin:0 auto;background:var(--bg);overflow:hidden}
@media(min-width:520px){body{padding:20px}#app{max-width:460px;height:calc(100dvh - 40px);border-radius:44px;box-shadow:0 30px 80px rgba(0,0,0,.22)}}
/* ============ SCREENS / ROUTER ============ */
#scr{position:absolute;inset:0}
.screen{position:absolute;inset:0;display:none;flex-direction:column;background:var(--bg)}
.screen.on{display:flex}
.screen.white{background:var(--surface)}
.screen.push{animation:pushIn .34s cubic-bezier(.22,.75,.25,1)}
.screen.pop{animation:popOut .26s ease forwards}
@keyframes pushIn{from{opacity:0;transform:translateX(7%)}to{opacity:1;transform:none}}
@keyframes popOut{to{opacity:0;transform:translateX(9%)}}
.screen-col{display:flex;flex-direction:column;height:100%}
.sscroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.pad{padding:6px 20px 0}
.mt20{margin-top:20px}
.foot-space{height:140px}
/* ============ HEADER ============ */
.hhead{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 14px) 20px 10px}
.htitle{text-align:center;font-weight:700;font-size:17px;letter-spacing:-.01em}
.ibtn{position:relative;width:44px;height:44px;border-radius:16px;background:var(--surface);display:grid;place-items:center;box-shadow:var(--shs);color:var(--ink)}
.ibtn:active{transform:scale(.92)}
.bdg{position:absolute;top:-4px;right:-4px;min-width:19px;height:19px;padding:0 4px;background:var(--lime);color:var(--on-lime);border:2px solid var(--surface);border-radius:99px;font-size:10px;font-weight:800;font-style:normal;display:grid;place-items:center}
.sec{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px}
.sec h3{font-size:16px;font-weight:700;letter-spacing:-.01em}
.lnk{display:flex;align-items:center;gap:2px;font-size:13px;font-weight:600;color:var(--ink2)}
.muted{color:var(--ink2)}
/* ============ BUTTONS / CHIPS / INPUTS ============ */
.btn-p{width:100%;padding:17px;border-radius:999px;background:var(--lime);color:var(--on-lime);font-weight:700;font-size:16px;box-shadow:0 12px 26px var(--lime-glow);transition:transform .1s,opacity .15s}
.btn-p:active{transform:scale(.97)}
.btn-p:disabled{opacity:.4;box-shadow:none}
.btn-g{width:100%;padding:16px;border-radius:999px;background:var(--surface2);color:var(--ink);font-weight:700;font-size:15px}
.btn-danger{width:100%;padding:16px;border-radius:999px;background:var(--red);color:#fff;font-weight:700;font-size:15px}
.btn-link{display:block;margin:4px auto 14px;font-size:13px;font-weight:600;color:var(--ink2)}
.chip{padding:10px 18px;border-radius:999px;background:var(--surface);color:var(--ink2);font-weight:600;font-size:14px;box-shadow:var(--shs);white-space:nowrap}
.chip.on{background:var(--lime);color:var(--on-lime)}
.flabel{display:block;font-size:13px;font-weight:600;color:var(--ink2);margin:14px 2px 7px}
.inp{width:100%;background:var(--surface2);border:1.6px solid transparent;border-radius:18px;padding:15px 16px;font-size:15px;outline:none;transition:border .15s}
.inp:focus{border-color:var(--lime)}
.aerr{color:var(--red);font-size:13px;font-weight:600;min-height:18px;margin-top:10px;text-align:center}
@keyframes shake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
.shake{animation:shake .4s}
.pw{position:relative}
.pw .inp{padding-right:48px}
.pweye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;color:var(--ink2)}
.or{display:flex;align-items:center;gap:12px;margin:22px 0 14px;color:var(--ink2);font-size:12px;font-weight:600}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.soc{display:flex;gap:12px}
.soc button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:16px;background:var(--surface2);font-weight:700;font-size:14px}
.soc .sg{width:22px;height:22px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:12px}
.swap{text-align:center;margin-top:20px;font-size:14px;color:var(--ink2)}
.swap button{color:var(--ink);font-weight:700}
.demo{width:100%;margin-top:16px;padding:13px;border-radius:16px;border:1.6px dashed var(--ink3);color:var(--ink2);font-weight:600;font-size:13.5px}
/* ============ AVATAR / LOGO ============ */
.av{border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:700;flex:none;letter-spacing:.02em}
.logotile{width:76px;height:76px;border-radius:24px;background:var(--surface);box-shadow:var(--sh);display:grid;place-items:center;margin:8px auto 18px}
/* ============ HOME HERO ============ */
.hero{background:var(--surface);border-radius:0 0 32px 32px;padding-bottom:24px}
.cardchip{display:flex;align-items:center;gap:7px;margin:6px auto 0;padding:9px 14px;border-radius:999px;background:var(--surface2);font-size:13px;font-weight:700;color:var(--ink)}
.cardchip:active{transform:scale(.96)}
.bal-l{text-align:center;margin-top:16px;font-size:13px;color:var(--ink2);font-weight:500}
.bal{text-align:center;font-size:37px;font-weight:800;letter-spacing:-.025em;margin-top:2px;font-variant-numeric:tabular-nums}
.bal .ad,.amt-big .ad{font-size:.58em;color:var(--ink3);font-weight:700}
.savepill{display:flex;align-items:center;gap:5px;margin:12px auto 0;padding:8px 15px;border-radius:999px;background:var(--lime-soft);color:#51761D;font-size:12px;font-weight:600}
[data-theme="dark"] .savepill{color:#CFEF8B}
.acts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:22px;padding:0 16px}
.act{display:flex;flex-direction:column;align-items:center;gap:7px}
.act span{font-size:12px;font-weight:600;color:var(--ink2)}
.actb{width:54px;height:54px;border-radius:20px;background:var(--surface);box-shadow:var(--shs);display:grid;place-items:center;color:var(--ink)}
.actb.lime{background:var(--lime);color:var(--on-lime);box-shadow:0 10px 20px var(--lime-glow)}
.actb:active{transform:scale(.9)}
/* ============ PROMOS ============ */
.promos{display:flex;gap:12px;overflow-x:auto;padding:2px 20px 8px;margin:0 -20px;scroll-snap-type:x mandatory;scrollbar-width:none}
.promos::-webkit-scrollbar{display:none}
.promo{position:relative;flex:none;width:236px;height:104px;border-radius:22px;padding:16px;text-align:left;overflow:hidden;scroll-snap-align:start;color:var(--on-lime)}
.promo b{display:block;font-size:15.5px;font-weight:800;letter-spacing:-.01em;max-width:70%}
.promo span{display:block;margin-top:4px;font-size:12px;opacity:.65;font-weight:500}
.promo em{position:absolute;right:8px;bottom:2px;font-size:52px;font-style:normal;transform:rotate(-8deg)}
.pico{position:absolute;right:10px;bottom:8px;width:58px;height:58px;border-radius:20px;background:rgba(255,255,255,.7);display:grid;place-items:center;color:var(--on-lime);transform:rotate(-8deg);box-shadow:var(--shs)}
.promo:active{transform:scale(.97)}
/* ============ TRANSACTIONS ============ */
.txsheet{background:var(--surface);border-radius:26px;padding:16px 18px;box-shadow:var(--shs)}
.tday{font-size:11.5px;font-weight:700;color:var(--ink2);text-transform:uppercase;letter-spacing:.06em;margin:12px 2px 2px}
.txr{display:flex;align-items:center;gap:12px;width:100%;padding:11px 0;text-align:left}
.txr:active{opacity:.7}
.txm{flex:1;min-width:0}
.txm b{display:block;font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.txm i{font-style:normal;font-size:12px;color:var(--ink2)}
.txr2{text-align:right}
.txr2 b{display:block;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.txr2 i{font-style:normal;font-size:12px;color:var(--ink2)}
.txr2 i.pend{color:var(--amber);font-weight:700}
/* ============ TABBAR ============ */
#tabbar{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));width:min(400px,calc(100% - 32px));height:74px;background:var(--surface);border-radius:26px;box-shadow:0 14px 34px rgba(10,14,12,.16);display:flex;align-items:center;padding:0 10px;z-index:40}
#tabbar[hidden]{display:none!important}
.tbi{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink2);font-size:10.5px;font-weight:700;padding-top:4px}
.tbi.on{color:var(--ink)}
.tbc{width:58px;height:58px;flex:none;border-radius:50%;background:var(--lime);color:var(--on-lime);display:grid;place-items:center;margin-top:-34px;box-shadow:0 12px 24px var(--lime-glow)}
.tbc:active{transform:scale(.92)}
/* ============ AMOUNT / KEYPAD ============ */
.amtcard{background:var(--surface);border-radius:30px;margin:8px 20px 0;padding:22px 18px 26px;text-align:center;box-shadow:var(--shs)}
.amt-big{font-size:42px;font-weight:800;letter-spacing:-.03em;margin-top:18px;font-variant-numeric:tabular-nums;min-height:50px}
.amt-hint{margin-top:4px;font-size:13.5px;color:var(--ink2)}
.qchips{display:flex;gap:9px;justify-content:center;margin:18px 16px 4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.qchips::-webkit-scrollbar{display:none}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;padding:14px 22px 4px}
.key{height:55px;border-radius:18px;background:var(--surface2);font-size:22px;font-weight:600;display:grid;place-items:center;color:var(--ink)}
.key:active{transform:scale(.92);background:var(--lime);color:var(--on-lime)}
.amt-note{text-align:center;font-size:12px;color:var(--ink2);padding:8px 0 4px}
.pfoot{padding:10px 20px calc(16px + env(safe-area-inset-bottom))}
/* ============ PINS / DOTS ============ */
.pindots{display:flex;justify-content:center;gap:16px;margin:14px 0 6px}
.pdot{width:15px;height:15px;border-radius:50%;border:1.8px solid var(--ink3);transition:.12s}
.pdot.on{background:var(--ink);border-color:var(--ink)}
.pkeys{padding:6px 26px 10px}
.pinphase{text-align:center;font-size:12.5px;color:var(--ink2);margin-bottom:4px}
/* ============ SHEETS ============ */
.shwrap{position:fixed;inset:0;z-index:60}
.shbg{position:absolute;inset:0;background:rgba(12,16,14,.45);opacity:0;transition:.25s}
.sheet{position:absolute;left:0;right:0;bottom:0;max-width:460px;margin:0 auto;background:var(--surface);border-radius:30px 30px 0 0;padding:10px 22px calc(22px + env(safe-area-inset-bottom));max-height:88%;overflow-y:auto;transform:translateY(100%);transition:transform .3s cubic-bezier(.22,.8,.3,1)}
.shwrap.on .shbg{opacity:1}
.shwrap.on .sheet{transform:none}
.grab{width:44px;height:5px;border-radius:99px;background:var(--ink3);margin:4px auto 14px}
.sh-title{text-align:center;font-size:17px;font-weight:800;letter-spacing:-.01em;margin-bottom:14px}
.crow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 2px;text-align:left}
.crow b{flex:1;font-size:15px;font-weight:700}
.crows{background:var(--surface2);border-radius:20px;padding:6px 16px;margin:12px 0 16px}
.crow2{display:flex;justify-content:space-between;padding:11px 0;font-size:14px}
.crow2 span{color:var(--ink2)}
.crow2 b{font-weight:700;font-variant-numeric:tabular-nums}
.free{background:var(--lime);color:var(--on-lime);font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:99px;margin-left:6px}
.conf-hero{display:flex;flex-direction:column;align-items:center;gap:9px;margin:8px 0 4px;text-align:center}
.conf-hero b{font-size:17px}
.conf-hero span{font-size:12.5px;color:var(--ink2)}
.actsheet button{display:flex;align-items:center;gap:14px;width:100%;padding:13px 4px;font-size:15px;font-weight:700;border-bottom:1px solid var(--line)}
.actsheet button:last-child{border:0}
.actsheet .asic{width:46px;height:46px;border-radius:16px;background:var(--lime-soft);display:grid;place-items:center;color:var(--ink)}
.actsheet .chev{margin-left:auto;color:var(--ink3)}
.proc{display:flex;flex-direction:column;align-items:center;gap:12px;padding:26px 0 14px}
.spin{width:44px;height:44px;border-radius:50%;border:4px solid var(--surface2);border-top-color:var(--lime);animation:rot .7s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}
.proc b{font-size:15.5px}
.proc span{font-size:12.5px;color:var(--ink2)}
/* ============ TOAST ============ */
#toastRoot{position:fixed;top:calc(env(safe-area-inset-top) + 16px);left:0;right:0;z-index:100;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{display:flex;align-items:center;gap:8px;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:999px;font-size:13.5px;font-weight:600;box-shadow:var(--sh);opacity:0;transform:translateY(-14px);transition:.28s}
[data-theme="dark"] .toast{background:#E8EDE4;color:#12160F}
.toast.on{opacity:1;transform:none}
/* ============ SUCCESS ============ */
.succ{align-items:center;justify-content:center;text-align:center;padding:30px 24px}
.succ-ck{width:110px;height:110px;border-radius:50%;background:var(--lime);display:grid;place-items:center;margin-bottom:22px;box-shadow:0 18px 40px var(--lime-glow)}
.succ-ck svg{width:58px;height:58px;stroke:var(--on-lime);stroke-width:3.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.succ-ck .c2{stroke-dasharray:40;stroke-dashoffset:40;animation:draw .45s .25s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.succ-t{font-size:20px;font-weight:800;letter-spacing:-.01em}
.succ-a{font-size:40px;font-weight:800;letter-spacing:-.03em;margin-top:8px;font-variant-numeric:tabular-nums}
.succ-s{font-size:13.5px;color:var(--ink2);margin-top:6px}
.succ-rows{width:100%;background:var(--surface2);border-radius:20px;padding:6px 18px;margin:22px 0}
.succ-btns{width:100%;display:flex;flex-direction:column;gap:10px;margin-top:auto}
/* ============ CARDS ============ */
.ccar{display:flex;gap:14px;overflow-x:auto;padding:16px 20px 6px;scroll-snap-type:x mandatory;scrollbar-width:none}
.ccar::-webkit-scrollbar{display:none}
.bkc{position:relative;flex:none;width:82%;aspect-ratio:1.586;border-radius:24px;padding:20px;color:#fff;scroll-snap-align:center;overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column}
.bkc.dark{background:linear-gradient(135deg,#1C4A39,#0D271E)}
.bkc.lite{background:linear-gradient(135deg,#3A4148,#171B1F)}
.bkc.limec{background:linear-gradient(135deg,#D9F68F,#B9EA5C);color:#0F1412}
.bkc .btop{display:flex;justify-content:space-between;align-items:center}
.brandv{font-style:italic;font-weight:900;font-size:17px;letter-spacing:.04em}
.brandm{display:flex}
.brandm i{width:20px;height:20px;border-radius:50%;background:#EB5757}
.brandm i+i{background:#F2C94C;margin-left:-8px;opacity:.9}
.bkc.limec .brandm i{opacity:.85}
.bkchip{display:block;width:40px;height:30px;border-radius:7px;background:linear-gradient(135deg,#F3D47A,#D9A83F);margin-top:auto}
.bkc.limec .bkchip{background:linear-gradient(135deg,#14352A,#2A5A45)}
.bknum{font-size:16.5px;font-weight:700;letter-spacing:.14em;margin-top:12px;font-variant-numeric:tabular-nums}
.bkbot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:10px;font-size:12px}
.bkbot span{opacity:.6;display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
.bkc.limec .bkbot span{opacity:.55}
.frz{position:absolute;inset:0;background:rgba(235,245,240,.35);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:grid;place-items:center;font-weight:800;color:#fff;gap:6px;border-radius:24px}
.frz div{display:flex;flex-direction:column;align-items:center;gap:6px;text-shadow:0 2px 10px rgba(0,0,0,.3)}
.cpanel{background:var(--surface);border-radius:26px;margin:14px 20px 0;padding:8px 20px;box-shadow:var(--shs)}
.crow3{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}
.crow3:last-child{border:0}
.crow3 span{color:var(--ink2);width:104px;flex:none}
.crow3 b{flex:1;font-weight:700;font-variant-numeric:tabular-nums;word-break:break-all}
.mini{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:var(--surface2);flex:none}
.mini.lime{background:var(--lime);color:var(--on-lime)}
.sw{display:inline-block;vertical-align:middle;width:46px;height:28px;flex:none;border-radius:99px;background:var(--ink3);position:relative;transition:.2s;margin-left:auto}
.sscroll,.sheet,.promos,.ccar,.hchips,.qchips{scrollbar-width:none;-ms-overflow-style:none}
.sscroll::-webkit-scrollbar,.sheet::-webkit-scrollbar,.promos::-webkit-scrollbar,.ccar::-webkit-scrollbar,.hchips::-webkit-scrollbar,.qchips::-webkit-scrollbar,body::-webkit-scrollbar{display:none}
.sw i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 5px rgba(0,0,0,.2)}
.sw.on{background:var(--lime)}
.sw.on i{left:21px}
.defb{background:var(--lime-soft);color:#51761D;font-size:11px;font-weight:800;padding:4px 10px;border-radius:99px}
[data-theme="dark"] .defb{color:#CFEF8B}
/* ============ STATS ============ */
.stchips{display:flex;gap:9px;margin:8px 20px 4px}
.stnet{text-align:center;margin:14px 0 4px}
.stnet span{display:block;font-size:12.5px;color:var(--ink2)}
.stnet b{font-size:30px;font-weight:800;letter-spacing:-.02em}
.stsum{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 20px}
.stin,.stout{border-radius:22px;padding:15px;display:flex;gap:10px;align-items:center}
.stin{background:var(--lime);color:var(--on-lime)}
.stout{background:var(--ink);color:var(--bg)}
[data-theme="dark"] .stout{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.stin span,.stout span{display:block;font-size:11.5px;opacity:.7;font-weight:600}
.stin b,.stout b{font-size:16.5px;font-weight:800;font-variant-numeric:tabular-nums}
.chart{display:flex;justify-content:space-between;align-items:flex-end;height:170px;margin:10px 22px 4px;gap:6px}
.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;height:100%}
.chart .bars{flex:1;display:flex;align-items:flex-end;gap:4px;width:100%;justify-content:center}
.chart i{width:11px;border-radius:6px;min-height:4px}
.bi{background:var(--lime)}
.bo{background:var(--ink)}
[data-theme="dark"] .bo{background:#4A564C}
.chart span{font-size:10px;color:var(--ink2);font-weight:600}
.legend{display:flex;gap:18px;justify-content:center;margin-top:8px;font-size:12px;color:var(--ink2);font-weight:600}
.legend span{display:flex;align-items:center;gap:6px}
.lg{width:10px;height:10px;border-radius:4px}
.lg1{background:var(--lime)}.lg2{background:var(--ink)}
[data-theme="dark"] .lg2{background:#4A564C}
.cat{display:flex;align-items:center;gap:12px;padding:10px 20px}
.cate{width:44px;height:44px;border-radius:16px;background:var(--surface);box-shadow:var(--shs);display:grid;place-items:center;font-size:20px;flex:none}
.catm{flex:1;min-width:0}
.catm b{font-size:14px;font-weight:700}
.catbar{height:6px;border-radius:99px;background:var(--surface2);margin-top:7px;overflow:hidden}
.catbar i{display:block;height:100%;border-radius:99px;background:var(--lime)}
.catv{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}
/* ============ LIST ROWS (profile/settings/etc) ============ */
.pcard{background:var(--surface);border-radius:28px;margin:14px 20px 0;padding:22px;text-align:center;box-shadow:var(--shs)}
.pava{width:78px;height:78px;border-radius:50%;margin:0 auto 12px;font-size:26px}
.pcard h2{font-size:19px;font-weight:800;letter-spacing:-.01em}
.pcard p{font-size:13px;color:var(--ink2);margin-top:3px}
.verif{display:inline-flex;align-items:center;gap:5px;background:var(--lime-soft);color:#51761D;font-size:11.5px;font-weight:800;padding:5px 11px;border-radius:99px;margin-top:10px}
[data-theme="dark"] .verif{color:#CFEF8B}
.pstats{display:flex;gap:10px;margin:12px 20px 0}
.pstats div{flex:1;background:var(--surface);border-radius:20px;padding:13px 6px;text-align:center;box-shadow:var(--shs)}
.pstats b{display:block;font-size:16.5px;font-weight:800}
.pstats span{font-size:11px;color:var(--ink2);font-weight:600}
.pmenu{background:var(--surface);border-radius:26px;margin:16px 20px 0;padding:4px 18px;box-shadow:var(--shs)}
.prow{display:flex;align-items:center;gap:13px;width:100%;padding:14px 0;border-bottom:1px solid var(--line);text-align:left;font-size:14.5px;font-weight:600}
.prow:last-child{border:0}
.prow .pic{width:38px;height:38px;border-radius:13px;background:var(--surface2);display:grid;place-items:center;color:var(--ink);flex:none}
.prow .chev{margin-left:auto;color:var(--ink3)}
.prow.danger{color:var(--red)}
.prow.danger .pic{background:rgba(232,93,74,.12);color:var(--red)}
.prow .rv{margin-left:auto;color:var(--ink2);font-size:13px;font-weight:600}
.vfoot{text-align:center;font-size:11.5px;color:var(--ink3);padding:20px 0 10px}
/* ============ NOTIFICATIONS ============ */
.nrow{display:flex;gap:12px;width:100%;padding:13px 0;border-bottom:1px solid var(--line);text-align:left;align-items:flex-start}
.nrow:last-child{border:0}
.nic{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;flex:none}
.nic.t1{background:var(--lime-soft);color:#51761D}
[data-theme="dark"] .nic.t1{color:#CFEF8B}
.nic.t2{background:var(--ink);color:var(--bg)}
.nm{flex:1;min-width:0}
.nm b{display:flex;align-items:center;gap:6px;font-size:14.5px}
.ndot{width:8px;height:8px;border-radius:50%;background:var(--lime);flex:none}
.nm p{font-size:13px;color:var(--ink2);margin-top:2px;line-height:1.35}
.nm i{font-style:normal;font-size:11.5px;color:var(--ink3)}
/* ============ HISTORY / SEARCH ============ */
.hchips{display:flex;gap:9px;padding:8px 20px 4px;overflow-x:auto;scrollbar-width:none}
.hchips::-webkit-scrollbar{display:none}
.hsearchw{padding:10px 20px 2px;position:relative}
.hsearchw input{width:100%;background:var(--surface);border-radius:16px;padding:12px 14px 12px 42px;font-size:14px;border:1.6px solid transparent;outline:none;box-shadow:var(--shs)}
.hsearchw input:focus{border-color:var(--lime)}
.hsearchw svg{position:absolute;left:34px;top:22px;color:var(--ink2)}
.count{font-size:12px;color:var(--ink2);padding:10px 22px 0;font-weight:600}
/* ============ MISC ============ */
.empty{text-align:center;padding:46px 30px}
.empty span{font-size:52px;display:block;margin-bottom:12px}
.eic{width:76px;height:76px;border-radius:26px;background:var(--surface2);display:grid;place-items:center;margin:0 auto 12px;color:var(--ink2)}
.empty p{color:var(--ink2);font-size:14px;margin-bottom:18px}
.faq{background:var(--surface);border-radius:20px;margin:0 20px 10px;box-shadow:var(--shs);overflow:hidden}
.faq summary{list-style:none;padding:16px 18px;font-weight:700;font-size:14.5px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.faq summary::after{content:"+";font-size:20px;color:var(--ink2)}
.faq[open] summary::after{content:"–"}
.faq p{padding:0 18px 16px;font-size:13.5px;color:var(--ink2);line-height:1.5}
.qrbox{background:#fff;color:#0F1412;border-radius:26px;padding:18px;margin:16px 20px;box-shadow:var(--sh);display:grid;place-items:center}
.qrbox canvas{border-radius:14px}
.qraddr{display:flex;align-items:center;gap:10px;background:var(--surface2);border-radius:16px;margin:0 20px;padding:13px 16px;font-size:12.5px;font-weight:600;word-break:break-all}
.mrow{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.mrow:last-child{border:0}
.payb{margin-left:auto;background:var(--lime);color:var(--on-lime);padding:8px 16px;border-radius:99px;font-size:12.5px;font-weight:800}
/* ============ ONBOARDING / SPLASH ============ */
.splash{flex:1;background:var(--lime);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.splash .logotile{background:#fff;margin:0}
.spl-n{font-size:26px;font-weight:900;letter-spacing:-.02em;color:var(--on-lime)}
.spl-t{font-size:13px;font-weight:600;color:rgba(15,20,18,.6)}
.spl-spin{margin-top:26px;width:26px;height:26px;border-radius:50%;border:3px solid rgba(15,20,18,.2);border-top-color:var(--ink);animation:rot .7s linear infinite}
.ob{flex:1;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 30px) 28px calc(24px + env(safe-area-inset-bottom))}
.obart{height:300px;border-radius:34px;background:var(--lime-soft);display:grid;place-items:center;font-size:96px;position:relative;overflow:hidden}
.obart>svg{width:104px;height:104px;color:var(--ink)}
svg.inl{display:inline-block;vertical-align:-3px}
.obart i{position:absolute;background:#fff;color:#0F1412;border-radius:18px;box-shadow:var(--shs);font-style:normal;font-size:22px;padding:10px 14px;font-weight:700}
.obart i:first-child{top:26px;left:22px;transform:rotate(-8deg)}
.obart i:last-child{bottom:26px;right:20px;transform:rotate(7deg)}
.obh{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:30px;text-align:center}
.obd{font-size:14.5px;color:var(--ink2);text-align:center;margin-top:10px;line-height:1.5;min-height:44px}
.obdots{display:flex;gap:7px;justify-content:center;margin:auto 0 16px;padding-top:20px}
.obdots i{width:7px;height:7px;border-radius:99px;background:var(--ink3);transition:.2s}
.obdots i.on{width:22px;background:var(--lime)}
.obbtns{display:flex;gap:12px;align-items:center}
.obbtns .skip{font-weight:700;color:var(--ink2);padding:14px}
.auth{flex:1;padding:calc(env(safe-area-inset-top) + 22px) 26px calc(20px + env(safe-area-inset-bottom))}
.auth h1{font-size:25px;font-weight:800;letter-spacing:-.02em;text-align:center}
.auth .sub{text-align:center;font-size:13.5px;color:var(--ink2);margin-top:6px}
.auth form{margin-top:6px}
.mono{font-variant-numeric:tabular-nums;letter-spacing:.05em}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;padding:6px 13px;border-radius:99px}
.status.ok{background:var(--lime-soft);color:#51761D}
[data-theme="dark"] .status.ok{color:#CFEF8B}
.status.pend{background:rgba(245,166,35,.15);color:var(--amber)}
.status.fail{background:rgba(232,93,74,.12);color:var(--red)}
.txr2 i.fail{color:var(--red);font-weight:700}
/* ============ LAYOUT UTILITIES ============ */
.tac{text-align:center}.tal{text-align:left}.tar{text-align:right}
.grow{flex:1}.mla{margin-left:auto}.db{display:block}.op6{opacity:.6}
.row{display:flex;align-items:center}
.row-c{display:flex;align-items:center;justify-content:center}
.frow{display:flex;gap:12px}.frow>div{flex:1}
.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}
.mt4{margin-top:4px}.mt6{margin-top:6px}.mt8{margin-top:8px}.mt10{margin-top:10px}.mt14{margin-top:14px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mt22{margin-top:22px}
.pad20{padding:0 20px}.pad18{padding:18px 20px}.pad16{padding:16px 20px}.pad420{padding:4px 20px}.pad-top{padding:14px 20px 0}.list-pad{padding:6px 20px 0}
.vpad{padding:16px 0}.foot40{height:40px}
.nobr{word-break:normal}.nobr-nw{word-break:normal;white-space:nowrap}
.danger-t{color:var(--red)}
a.prow{text-decoration:none;color:inherit}
/* ============ COMPONENT VARIANTS ============ */
.auth.pt6{padding-top:6px}.auth.pt10{padding-top:10px}
.btn-p.narrow{max-width:280px;margin-left:auto;margin-right:auto}
.cf-msg{text-align:center;font-size:14px;margin:2px 0 18px}
.crow .tail{margin-left:auto;color:var(--ink3)}
.crow.sel{background:var(--surface2);border-radius:14px}
.crow-t{display:block;font-size:15px}.crow-s{font-size:12px;color:var(--ink2)}
.cur-sym{font-size:17px}.cur-sym-lg{font-size:18px}
.hsearchw.slim{padding:0 0 8px}
.obbtns .grow{flex:1}
.otp{display:flex;gap:9px;justify-content:center;margin:24px 0 8px}
.oti{width:48px;height:56px;text-align:center;font-size:22px;font-weight:800;padding:0}
.otp-hint{margin:0 auto 6px;display:flex;align-items:center}.otp-code{margin-left:5px}
.mini.xs{width:24px;height:24px;border-radius:8px}.mini.xl{width:38px;height:38px}
.promos.flush{padding-left:0;padding-right:0;margin:0}
.promo.full{width:100%;margin-bottom:12px;height:112px}.promo-big{font-size:17px}
.txsheet.flush{margin:6px 20px 0}
.cpanel.flat{margin-top:22px}
.sec.gap{margin:20px 20px 6px}.sec.tight{margin:6px 0 12px}
.pmenu.gap6{margin-top:6px}.pmenu.gap14{margin-top:14px}
.mrow>b{flex:1;font-size:15px}.mcat{font-size:12px}
.pava{background:#17342A}
.pcard.left{text-align:left;padding:18px 20px}.pcard-t{font-size:14.5px}.devline{margin-top:6px;font-size:13px}
.empty.roomy{padding-top:30px}.inv-t{font-size:16px;color:var(--ink);font-weight:800}
.qrbox.code{font-size:26px;font-weight:900;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.dhero{text-align:center;padding:10px 24px 0}
.dhero-av{margin:16px 0 4px;display:flex;justify-content:center}
.dhero-name{font-size:18px;font-weight:800}
.dhero-amt{font-size:38px;font-weight:800;letter-spacing:-.03em;margin-top:8px;font-variant-numeric:tabular-nums}
.dhero-type{font-size:13px;margin-top:4px}
.dhero-actions{display:flex;gap:10px;padding:16px 20px}
.abtn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px}
.txref{font-size:12.5px}
.qr-intro{text-align:center;padding:8px 24px 0}
.qr-sub{font-size:13.5px}.qr-name{font-weight:800;font-size:16px}.qr-tag{font-size:13px;margin-top:2px}
.about{text-align:center;padding:6px 0 10px}
.logotile.flat{margin:0 auto 14px}.about-name{font-size:18px}.about-sub{margin-top:6px;font-size:13.5px}
.excur{display:flex;align-items:center;justify-content:center;gap:10px}
/* ============ 3D COIN (splash) ============ */
.coin3d{width:150px;height:150px}
.screen.coined .spl-spin{opacity:0}
.screen.coined .logotile{display:none}
/* ============ 3D CARDS ============ */
.bkc{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .18s ease-out;will-change:transform}
.bkc .glare{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.35),transparent 65%);opacity:0;transition:opacity .25s;pointer-events:none}
.bkc.tilting .glare{opacity:1}
.bkc.ocean{background:linear-gradient(135deg,#3B82F6,#0B2447)}
.bkc.berry{background:linear-gradient(135deg,#C026D3,#3B0764)}
.swatches{display:flex;gap:10px;align-items:center}
.numrow{padding:13px 0;border-bottom:1px solid var(--line)}
.numrow-top{display:flex;align-items:center;justify-content:space-between}
.numrow-top>span{font-size:14px;color:var(--ink2)}
.numv{display:block;width:100%;text-align:left;font-size:16px;margin-top:8px;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.numv:active{opacity:.7}
.swdot{width:26px;height:26px;border-radius:50%;flex:none;transition:transform .15s}
.swdot:active{transform:scale(.88)}
.swdot.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
.swdot.dark{background:linear-gradient(135deg,#1C4A39,#0D271E)}
.swdot.lite{background:linear-gradient(135deg,#3A4148,#171B1F)}
.swdot.limec{background:linear-gradient(135deg,#D9F68F,#B9EA5C)}
.swdot.ocean{background:linear-gradient(135deg,#3B82F6,#0B2447)}
.swdot.berry{background:linear-gradient(135deg,#C026D3,#3B0764)}
/* ============ ENTRANCE MOTION ============ */
@keyframes riseIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(-7px)}50%{transform:translateY(7px)}}
.screen.fadeup{animation:fadeUp .3s ease}
.acts .act{opacity:0;animation:riseIn .45s cubic-bezier(.22,.75,.25,1) forwards}
.acts .act:nth-child(1){animation-delay:.03s}.acts .act:nth-child(2){animation-delay:.08s}.acts .act:nth-child(3){animation-delay:.13s}.acts .act:nth-child(4){animation-delay:.18s}
.promos .promo{opacity:0;animation:riseIn .45s cubic-bezier(.22,.75,.25,1) forwards}
.promos .promo:nth-child(1){animation-delay:.1s}.promos .promo:nth-child(2){animation-delay:.17s}.promos .promo:nth-child(3){animation-delay:.24s}
.txsheet .txr{opacity:0;animation:riseIn .4s ease forwards}
.txsheet .txr:nth-child(1){animation-delay:.04s}.txsheet .txr:nth-child(2){animation-delay:.08s}.txsheet .txr:nth-child(3){animation-delay:.12s}.txsheet .txr:nth-child(4){animation-delay:.16s}.txsheet .txr:nth-child(5){animation-delay:.2s}.txsheet .txr:nth-child(6){animation-delay:.24s}.txsheet .txr:nth-child(7){animation-delay:.28s}.txsheet .txr:nth-child(8){animation-delay:.32s}
.obart>svg{animation:floaty 3.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.acts .act,.promos .promo,.txsheet .txr{opacity:1}}
/* ============ INSTALL BANNER ============ */
#installBar{position:absolute;left:16px;right:16px;bottom:calc(98px + env(safe-area-inset-bottom));z-index:45;background:var(--ink);color:var(--bg);border-radius:22px;padding:12px 12px 12px 14px;display:flex;align-items:center;gap:10px;box-shadow:var(--sh);transform:translateY(16px);opacity:0;transition:.3s}
#installBar.on{transform:none;opacity:1}
#installBar[hidden]{display:none}
[data-theme="dark"] #installBar{background:#E8EDE4;color:#12160F}
.ib-logo{flex:none}
.ib-tx{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.ib-tx b{font-size:14px}.ib-tx i{font-style:normal;font-size:12px;opacity:.7}
.ib-go{background:var(--lime);color:var(--on-lime);font-weight:800;font-size:13.5px;padding:10px 16px;border-radius:99px;flex:none}
.ib-x{opacity:.6;padding:8px;flex:none}
