/* SBX AURA, realistic app + dashboard mockup kit */
:root{
  --a-ink:#14141B; --a-ink2:#7A7E8C; --a-bg:#FFFFFF; --a-soft:#F4F4F7; --a-line:#ECECF1;
  --a-indigo:#2B48EA; --a-violet:#6B2BD6; --a-ochre:#DE8E27; --a-teal:#0E9F80; --a-red:#E5484D;
  --a-grad:linear-gradient(135deg,#6B2BD6,#2B48EA 70%);
  --fb:'General Sans','Inter',system-ui,sans-serif; --fm:'JetBrains Mono',ui-monospace,monospace; --fd:'Clash Display','Syne',sans-serif;
}

/* ---- device frame (phone) ---- */
.device{width:300px;height:616px;background:#0B0B10;border-radius:46px;padding:9px;box-shadow:0 40px 80px rgba(20,20,40,.22),0 0 0 1px rgba(0,0,0,.04);flex:0 0 auto}
.device .scr{position:relative;width:100%;height:100%;background:var(--a-bg);border-radius:38px;overflow:hidden;font-family:var(--fb);color:var(--a-ink);display:flex;flex-direction:column}
.device.dark .scr{background:#0C0D14;color:#F2F3F8;--a-ink:#F2F3F8;--a-ink2:#8990A6;--a-bg:#0C0D14;--a-soft:#171925;--a-line:#20222F}
.dvi{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:88px;height:24px;background:#0B0B10;border-radius:100px;z-index:9}
.sb{display:flex;justify-content:space-between;align-items:center;padding:14px 22px 2px;font-family:var(--fm);font-size:.6rem;color:var(--a-ink)}
.sb .r{display:flex;gap:4px;align-items:center}

/* app scaffolding */
.ab{flex:1;overflow:hidden;padding:8px 18px 0;display:flex;flex-direction:column;gap:13px}
.ah{display:flex;align-items:center;justify-content:space-between;padding:6px 0 2px}
.ah .t{font-family:var(--fd);font-weight:700;font-size:1.15rem}
.ah .ico{width:34px;height:34px;border-radius:11px;background:var(--a-soft);display:flex;align-items:center;justify-content:center;font-size:.9rem}
.small{font-size:.72rem;color:var(--a-ink2)}
.mono{font-family:var(--fm)}
.up{text-transform:uppercase;letter-spacing:.12em}

/* balance card */
.card{border-radius:20px;padding:17px;background:var(--a-grad);color:#fff;position:relative;overflow:hidden}
.card::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.14);top:-60px;right:-40px}
.card .k{font-family:var(--fm);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;opacity:.9}
.card .v{font-family:var(--fd);font-weight:700;font-size:1.9rem;margin-top:3px;letter-spacing:-.02em}
.card .s{font-size:.6rem;opacity:.9;margin-top:2px}
.spk{height:26px;width:100%;margin-top:8px}

/* action row */
.acts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.act{background:var(--a-soft);border-radius:14px;padding:11px 2px;text-align:center;font-size:.58rem;font-weight:600;color:var(--a-ink)}
.act i{display:block;font-style:normal;font-size:1rem;margin-bottom:3px;color:var(--a-indigo)}

/* list */
.lbl{font-family:var(--fm);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--a-ink2);display:flex;justify-content:space-between;align-items:center;margin-top:2px}
.lbl a{color:var(--a-indigo)}
.row{display:flex;align-items:center;gap:11px;padding:9px 0;border-top:1px solid var(--a-line)}
.row:first-of-type{border-top:none}
.av{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.72rem;color:#fff;flex-shrink:0}
.av.g1{background:linear-gradient(135deg,#2B48EA,#6B2BD6)}.av.g2{background:linear-gradient(135deg,#0E9F80,#2B48EA)}.av.g3{background:linear-gradient(135deg,#DE8E27,#D64FA0)}.av.soft{background:var(--a-soft);color:var(--a-indigo)}
.row .m{flex:1;min-width:0}
.row .m b{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:5px}
.row .m span{font-size:.64rem;color:var(--a-ink2)}
.amt{font-family:var(--fm);font-size:.8rem;font-weight:600}
.amt.in{color:var(--a-teal)}
.tick{color:var(--a-teal);font-size:.66rem}

/* buttons */
.pb{background:var(--a-ink);color:var(--a-bg);border-radius:100px;padding:14px;text-align:center;font-weight:600;font-size:.85rem}
.pb.ind{background:var(--a-grad);color:#fff}
.sbtn{background:var(--a-soft);color:var(--a-ink);border-radius:100px;padding:13px;text-align:center;font-weight:600;font-size:.82rem}
.footpad{margin-top:auto;padding:12px 0 16px;display:flex;flex-direction:column;gap:9px}

/* bottom tab bar */
.tabbar{display:flex;justify-content:space-around;padding:11px 10px 16px;border-top:1px solid var(--a-line);background:var(--a-bg)}
.tabbar div{font-size:.54rem;color:var(--a-ink2);display:flex;flex-direction:column;align-items:center;gap:3px;font-weight:600}
.tabbar div i{font-style:normal;font-size:1.05rem}
.tabbar div.on{color:var(--a-indigo)}

/* amount entry + keypad */
.enter{text-align:center;padding:14px 0}
.enter .big{font-family:var(--fd);font-weight:700;font-size:2.7rem;letter-spacing:-.02em}
.enter .cur{color:var(--a-ink2);font-size:1.4rem;vertical-align:super}
.enter .to{font-size:.72rem;color:var(--a-ink2);margin-top:4px}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}
.keys div{padding:12px 0;text-align:center;font-family:var(--fm);font-size:1.05rem;font-weight:500;border-radius:12px}
.keys div:active{background:var(--a-soft)}

/* verify checklist */
.vf{background:var(--a-soft);border-radius:16px;padding:15px}
.vf .h{font-family:var(--fm);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--a-ink2);margin-bottom:8px}
.vf .l{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:.74rem;border-top:1px solid var(--a-line)}
.vf .l:first-of-type{border-top:none}
.vf .ok{color:var(--a-teal);font-weight:700}
.chipbadge{display:inline-flex;align-items:center;gap:5px;font-size:.58rem;font-weight:700;padding:3px 9px;border-radius:100px;background:color-mix(in srgb,var(--a-teal) 14%,transparent);color:var(--a-teal)}
.chipbadge.warn{background:color-mix(in srgb,var(--a-ochre) 16%,transparent);color:var(--a-ochre)}

/* qr */
.qr{width:150px;height:150px;margin:6px auto;border-radius:16px;background:conic-gradient(#12121a 90deg,#fff 0 180deg,#12121a 0 270deg,#fff 0) 0 0/24px 24px,#fff;border:6px solid #fff;box-shadow:0 8px 24px rgba(0,0,0,.1);position:relative}
.qr::after{content:"◆";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--a-indigo)}

/* success */
.done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:20px}
.done .circ{width:88px;height:88px;border-radius:50%;background:color-mix(in srgb,var(--a-teal) 16%,transparent);display:flex;align-items:center;justify-content:center;font-size:2.4rem;color:var(--a-teal)}
.done h4{font-family:var(--fd);font-size:1.3rem}
.done .amtbig{font-family:var(--fd);font-weight:700;font-size:1.8rem}

/* chips */
.chips{display:flex;gap:7px;flex-wrap:wrap}
.chips span{font-family:var(--fm);font-size:.62rem;padding:7px 12px;border-radius:100px;background:var(--a-soft);color:var(--a-ink);font-weight:600}
.chips span.on{background:var(--a-ink);color:var(--a-bg)}

/* fields */
.field{background:var(--a-soft);border-radius:13px;padding:12px 14px;font-size:.78rem;color:var(--a-ink2);display:flex;justify-content:space-between;align-items:center}
.field b{color:var(--a-ink);font-weight:600}

/* mini virtual card */
.vc{border-radius:16px;padding:15px;color:#fff;background:linear-gradient(130deg,#14141B,#3a2a6e);position:relative;overflow:hidden;min-height:120px;display:flex;flex-direction:column;justify-content:space-between}
.vc .brand{font-family:var(--fd);font-weight:700}
.vc .chip{width:28px;height:20px;border-radius:5px;background:linear-gradient(135deg,#f5d67b,#c69a3e)}
.vc .num{font-family:var(--fm);letter-spacing:.14em;font-size:.72rem}
.vc .rw{display:flex;justify-content:space-between;font-size:.54rem;opacity:.85}

/* seg control */
.seg{display:flex;background:var(--a-soft);border-radius:12px;padding:3px}
.seg span{flex:1;text-align:center;font-size:.68rem;font-weight:600;padding:7px;border-radius:9px;color:var(--a-ink2)}
.seg span.on{background:var(--a-bg);color:var(--a-ink);box-shadow:0 2px 8px rgba(0,0,0,.06)}

/* barchart (app) */
.bars{display:flex;align-items:flex-end;gap:7px;height:80px;padding-top:6px}
.bars i{flex:1;background:var(--a-grad);border-radius:5px 5px 0 0;opacity:.85}

/* toggle rows */
.tg{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--a-line);font-size:.78rem}
.tg:first-of-type{border-top:none}
.sw{width:38px;height:22px;border-radius:100px;background:var(--a-teal);position:relative;flex-shrink:0}
.sw.off{background:var(--a-line)}
.sw::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:3px;right:3px;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.sw.off::after{right:auto;left:3px}

/* ===================== DASHBOARD (web) ===================== */
.board{width:860px;max-width:100%;height:540px;background:var(--a-bg);border-radius:20px;overflow:hidden;display:grid;grid-template-columns:190px 1fr;box-shadow:0 40px 80px rgba(20,20,40,.18),0 0 0 1px var(--a-line);font-family:var(--fb);color:var(--a-ink);flex:0 0 auto}
.board.dark{--a-ink:#F2F3F8;--a-ink2:#8990A6;--a-bg:#0C0D14;--a-soft:#171925;--a-line:#20222F;background:#0C0D14}
.bd-side{background:var(--a-soft);padding:20px 14px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--a-line)}
.bd-logo{display:flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:700;font-size:.95rem;padding:2px 8px 16px}
.bd-logo .d{width:22px;height:22px;border-radius:7px;background:var(--a-grad)}
.bd-nav{font-size:.78rem;color:var(--a-ink2);padding:9px 11px;border-radius:10px;display:flex;align-items:center;gap:9px;font-weight:500}
.bd-nav.on{background:var(--a-bg);color:var(--a-ink);font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.bd-main{display:flex;flex-direction:column;overflow:hidden}
.bd-top{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--a-line)}
.bd-top h3{font-family:var(--fd);font-size:1.15rem}
.bd-body{padding:20px 22px;overflow:hidden;display:flex;flex-direction:column;gap:16px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{border:1px solid var(--a-line);border-radius:14px;padding:14px}
.kpi .k{font-family:var(--fm);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:var(--a-ink2)}
.kpi .v{font-family:var(--fd);font-weight:700;font-size:1.5rem;margin-top:6px}
.kpi .d{font-size:.64rem;margin-top:3px}.kpi .up{color:var(--a-teal)}.kpi .dn{color:var(--a-red)}
.panel{border:1px solid var(--a-line);border-radius:14px;padding:16px}
.panel .ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.panel .ph b{font-family:var(--fd);font-size:.92rem}
.tbl{width:100%;border-collapse:collapse;font-size:.74rem}
.tbl th{text-align:left;font-family:var(--fm);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--a-ink2);padding:7px 8px;border-bottom:1px solid var(--a-line);font-weight:600}
.tbl td{padding:9px 8px;border-bottom:1px solid var(--a-line)}
.tbl .num{font-family:var(--fm)}
.pill{font-size:.6rem;font-weight:700;padding:3px 9px;border-radius:100px}
.pill.ok{background:color-mix(in srgb,var(--a-teal) 14%,transparent);color:var(--a-teal)}
.pill.pend{background:color-mix(in srgb,var(--a-ochre) 16%,transparent);color:var(--a-ochre)}
.bd-bars{display:flex;align-items:flex-end;gap:10px;height:130px}
.bd-bars i{flex:1;background:var(--a-grad);border-radius:6px 6px 0 0}
.bd-line{height:130px;width:100%}

/* ===================== GALLERY ===================== */
.gallery{max-width:1240px;margin:0 auto;padding:40px 24px 90px}
.gsec{margin-top:56px}
.gsec h2{font-family:var(--fd);font-size:1.7rem;margin-bottom:6px}
.gsec p{color:var(--a-ink2);font-size:.95rem;margin-bottom:26px}
.grid-ph{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:44px 24px;justify-items:center}
.grid-bd{display:flex;flex-direction:column;gap:44px;align-items:center}
.item{display:flex;flex-direction:column;align-items:center;gap:12px}
.cap{font-family:var(--fm);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--a-ink2);text-align:center}
.cap b{color:var(--a-ink);display:block;font-family:var(--fd);font-size:.86rem;letter-spacing:0;text-transform:none;margin-bottom:2px}

/* ===== MOCKUP MOTION (live, modern) ===== */
.card,.vc,.ph-card{position:relative;overflow:hidden}
.card::before,.vc::before{content:"";position:absolute;top:0;left:0;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent);transform:translateX(-140%);animation:mkshim 5s ease-in-out infinite;pointer-events:none;z-index:1}
@keyframes mkshim{0%{transform:translateX(-140%)}55%,100%{transform:translateX(260%)}}
.card>*,.vc>*{position:relative;z-index:2}
.spk polyline,.spark polyline{stroke-dasharray:620;stroke-dashoffset:620;animation:mkdraw 1.9s ease .25s forwards}
@keyframes mkdraw{to{stroke-dashoffset:0}}
.bd-bars i,.bars i{transform-origin:bottom;animation:mkgrow 1s cubic-bezier(.2,.7,.2,1) both}
.bd-bars i:nth-child(2){animation-delay:.06s}.bd-bars i:nth-child(3){animation-delay:.12s}.bd-bars i:nth-child(4){animation-delay:.18s}.bd-bars i:nth-child(5){animation-delay:.24s}.bd-bars i:nth-child(6){animation-delay:.3s}.bd-bars i:nth-child(7){animation-delay:.36s}.bd-bars i:nth-child(8){animation-delay:.42s}.bd-bars i:nth-child(9){animation-delay:.48s}.bd-bars i:nth-child(10){animation-delay:.54s}.bd-bars i:nth-child(11){animation-delay:.6s}.bd-bars i:nth-child(12){animation-delay:.66s}
@keyframes mkgrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.live{display:inline-flex;align-items:center;gap:7px;font-family:var(--fm);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:var(--a-teal);font-weight:600}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--a-teal);animation:mklive 1.7s infinite}
@keyframes mklive{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--a-teal) 60%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.row,.dash .r,.tbl tbody tr{animation:mkrow .5s ease both}
@keyframes mkrow{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.bd-line path{stroke-dasharray:1400;stroke-dashoffset:1400;animation:mkdraw 2.2s ease .3s forwards}

/* ===== INTERACTIVE + LAPTOP ===== */
.mscreen{display:none;flex:1;flex-direction:column;min-height:0}
.mscreen.on{display:flex}
.tabbar div{cursor:pointer;transition:color .2s}
.bview{display:none}
.bview.on{display:block}
.bd-nav[data-go]{cursor:pointer}
.mock-hint{font-family:var(--fm);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--a-ink2);text-align:center;margin-top:14px;opacity:.7}
.mock-hint b{color:var(--a-indigo)}
/* laptop frame */
.laptop{width:920px;max-width:100%;flex:0 0 auto;margin:0 auto}
.laptop .lid{background:#0B0B10;border-radius:16px 16px 4px 4px;padding:12px 12px 12px;box-shadow:0 40px 80px rgba(20,20,40,.22),0 0 0 1px rgba(0,0,0,.05)}
.laptop .lid .board{width:100%;height:500px;border-radius:8px;box-shadow:none}
.laptop .base{height:16px;width:112%;margin-left:-6%;background:linear-gradient(#20202a,#0b0b10);border-radius:0 0 16px 16px;position:relative;box-shadow:0 30px 40px rgba(20,20,40,.18)}
.laptop .base::after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:110px;height:6px;background:#05050a;border-radius:0 0 9px 9px}
@media(max-width:980px){.laptop .lid .board{height:auto;min-height:440px}}
@media(max-width:600px){.laptop .base{width:100%;margin-left:0}}
.showcase{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center;max-width:1200px;margin:36px auto 0}
@media(max-width:980px){.showcase{grid-template-columns:1fr;gap:36px;justify-items:center}}
