@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap");html,body,#root{
  margin:0;
  width:100%;
  min-width:0;
  min-height:100%;
}
*{box-sizing:border-box}
body{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input{font:inherit}
button{border:0;cursor:pointer}

:root{--nova:#0bb477;--nova2:#18c989;--navy:#061a2c;--navy2:#0a2c3a;--gold:#d9b45f;--ink:#10263a;--muted:#728296;--bg:#f4f8f6;--card:#fff;--line:#e1eae6;--soft:#e9f7f1;--danger:#d94e59;--shadow:0 14px 40px rgba(6,35,28,.07)}
*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg)}body{overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.app{min-height:100vh;padding-bottom:82px;background:linear-gradient(#f8fbfa,#f3f7f5)}
.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:rgba(255,255,255,.94);backdrop-filter:blur(20px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.top-brand{display:flex;align-items:center;gap:10px}.top-brand b{font-size:14px;font-weight:800;display:block}.top-brand small{font-size:9px;color:var(--muted);display:block;margin-top:2px}.logo{width:40px;height:40px}.logo.large{width:82px;height:82px}.wallet-line{display:flex;justify-content:space-between;align-items:center}.wallet-line small{font-size:9px;letter-spacing:1.3px;opacity:.65}.wallet-line strong{font-size:31px;letter-spacing:-1px;display:block;margin-top:7px}.wallet-line button{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.1);color:#fff}.fund-btn{margin-top:18px;width:100%;padding:12px;border-radius:12px;background:#fff;color:var(--navy);font-weight:900;position:relative}.section-head{display:flex;align-items:end;justify-content:space-between;margin:25px 0 12px}.section-head h2{font-size:17px;margin:0;font-weight:800}.section-head button{background:none;color:var(--nova);font-weight:800;font-size:11px}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.service-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:16px;text-align:left;box-shadow:var(--shadow);transition:.2s}.service-card:active{transform:scale(.98)}.service-card b,.service-card small{display:block}.service-card b{font-size:13px;margin-top:10px}.service-card small{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.35}.service-icon,.provider-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:var(--soft);color:var(--nova);font-weight:900;font-size:20px}.airtime{background:#fff4dc!important;color:#b47a10!important}.tv{background:#f0ebff!important;color:#7358d4!important}.electricity{background:#fff5d5!important;color:#bd8a00!important}.exam{background:#eaf1ff!important;color:#426fc5!important}.betting{background:#f7e9ef!important;color:#a83d63!important}.ezam{background:#e7f2f5!important;color:#22738a!important}.esim{background:#e9f8ef!important;color:#158b59!important}.nova-banner,.market-hero{margin-top:14px;border:1px solid #d8ebe3;background:linear-gradient(135deg,#eaf8f2,#fff);border-radius:20px;padding:18px;display:flex;justify-content:space-between;gap:12px}.nova-banner span,.market-hero small,.public-kicker{font-size:9px;letter-spacing:1.3px;color:var(--nova);font-weight:900}.nova-banner h3,.market-hero h2{font-size:17px;margin:6px 0}.nova-banner p,.market-hero p{font-size:11px;color:var(--muted);line-height:1.5;margin:0}.nova-banner button{background:var(--navy);color:#fff;border-radius:12px;padding:10px 13px;font-weight:800}.row-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;align-items:center;gap:11px;margin-bottom:9px}.row-card>div{flex:1}.row-card b,.row-card small{display:block}.row-card b{font-size:12px}.row-card small{font-size:10px;color:var(--muted);margin-top:4px}.tx-icon{width:38px;height:38px;border-radius:12px;background:var(--soft);color:var(--nova);display:grid;place-items:center;font-weight:900}.empty{text-align:center;background:#fff;border:1px dashed var(--line);border-radius:18px;padding:30px 18px;color:var(--muted)}.empty div{font-size:28px}.empty h3{color:var(--ink);font-size:15px;margin:8px 0 4px}.page-title{margin:4px 0 19px}.page-title small{color:var(--nova);font-size:9px;letter-spacing:1.2px;font-weight:900}.page-title h1{font-size:27px;letter-spacing:-.7px;margin:5px 0}.page-title p{font-size:11px;color:var(--muted);margin:0}.market-search{height:48px;border:1px solid var(--line);background:#fff;border-radius:15px;padding:0 14px;display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:10px}.market-search input{border:0;outline:0;background:none;flex:1;font-size:12px}.category-pills{display:flex;gap:7px;overflow:auto;padding-bottom:3px}.category-pills button{white-space:nowrap;padding:8px 12px;border-radius:20px;background:#fff;border:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:800}.category-pills button.active{background:var(--navy);border-color:var(--navy);color:#fff}.provider-card{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;margin:9px 0;box-shadow:var(--shadow)}.provider-card>div{flex:1}.provider-card b,.provider-card small{display:block}.provider-card b{font-size:12px}.provider-card small{font-size:10px;color:var(--muted);margin-top:4px}.provider-card>strong{color:var(--nova);font-size:21px}.payment-info,.profile-card,.settings-card,.complaint,.coming-card,.secure-note{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:11px}.pay-logo{width:44px;height:44px;border-radius:12px;background:#111;color:#fff;display:grid;place-items:center;font-weight:900;float:left;margin-right:11px}.amount-input{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 13px}.amount-input input{width:100%;border:0;outline:0;padding:15px 7px;font-size:20px}.quick-amounts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:9px 0 15px}.quick-amounts button{background:var(--soft);color:var(--nova);border-radius:10px;padding:9px;font-weight:800}.primary{width:100%;padding:14px;border-radius:13px;background:linear-gradient(135deg,var(--nova),var(--nova2));color:#fff;font-weight:900;box-shadow:0 10px 22px rgba(11,180,119,.18)}.ghost-btn{width:100%;padding:12px;border-radius:13px;background:#eef4f2;color:var(--navy);font-weight:800}.wide{margin-top:8px}.back-btn,.text-btn{background:none;color:var(--nova);font-weight:800}.secure-note{background:#edf8f3;color:#4d685f;font-size:11px}.network-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.network-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.network-card b,.network-card small{display:block}.network-card small{font-size:10px;color:var(--muted);margin-top:3px}.network{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#eef3f5;font-weight:900;margin-bottom:10px}.network.mtn{background:#ffe500}.network.airtel{background:#e60000;color:#fff}.network.glo{background:#0a9f59;color:#fff}.network.nine{background:#111;color:#fff}.bottom{position:fixed;bottom:0;left:0;right:0;height:80px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:40}.bottom button{background:none;color:#91a098;font-size:10px;font-weight:600}.bottom .nav-icon{display:block;font-size:20px;margin-bottom:4px}.bottom button.active{color:var(--nova);font-weight:900}.drawer-wrap,.modal-wrap{position:fixed;inset:0;background:rgba(4,20,31,.55);z-index:80}.drawer{position:absolute;left:0;top:0;bottom:0;width:min(88%,360px);background:#fff;padding:20px;box-shadow:20px 0 60px rgba(0,0,0,.2)}.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head button,.modal-close{width:36px;height:36px;border-radius:11px;background:#eef4f2;font-size:20px}.drawer h3{margin:22px 0 8px}.drawer>button{width:100%;background:#fff;border-bottom:1px solid var(--line);padding:15px 5px;text-align:left;display:flex;gap:10px}.drawer>button span{flex:1}.modal-wrap{display:grid;place-items:center;padding:18px}.modal{width:min(100%,430px);background:#fff;border-radius:24px;padding:22px;position:relative}.modal-close{position:absolute;right:14px;top:14px}.modal input{width:100%;padding:14px;border:1px solid var(--line);border-radius:12px;margin:12px 0}.notice{display:flex;gap:9px;align-items:center;background:#eaf8f1;border:1px solid #d1ebdf;color:#176d43;border-radius:12px;padding:11px;margin-bottom:12px;font-size:11px}.notice div{flex:1}.notice button{background:none;color:inherit;font-size:18px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 15% 10%,#0eae76 0,#071b2d 44%,#03121f 100%);position:relative;overflow:hidden}.auth-card{width:min(100%,430px);background:rgba(255,255,255,.98);border-radius:28px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.3);position:relative;z-index:2}.auth-card>.logo{margin:auto}.brand-title{text-align:center;font-size:23px;font-weight:900;margin-top:9px}.tagline{text-align:center;font-size:9px;letter-spacing:1.4px;color:var(--nova);font-weight:900;margin:6px 0 16px}.auth-showcase{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:17px}.auth-showcase span{padding:7px 2px;border-radius:9px;background:#eef6f2;color:#4c675f;text-align:center;font-size:7px;font-weight:900}.auth-card h2{margin:4px 0}.muted,.switch{font-size:11px;color:var(--muted)}.auth-card label{font-size:10px;font-weight:800;display:block;margin:12px 0 6px}.auth-card input{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;outline:0;margin-bottom:9px}.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.otp{text-align:center;letter-spacing:7px;font-size:23px}.switch{text-align:center;margin-top:13px}.spinner{width:18px;height:18px;border:3px solid #dce8e4;border-top-color:var(--nova);border-radius:50%;animation:spin .8s linear infinite}.loading-message{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px;margin:18px 0}.fatal-error{min-height:100vh;display:grid;place-items:center;text-align:center;padding:25px;background:var(--bg)}
/* Full-screen NOVA opening animation */
.nova-splash{min-height:100svh;width:100%;display:grid;place-items:center;position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 50% 35%,#0d755b 0,#062a35 32%,#03131f 70%,#010b12 100%)}.nova-splash:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 35%,rgba(255,255,255,.05) 50%,transparent 65%);animation:sweep 2.3s ease-in-out infinite}.nova-splash-center{position:relative;z-index:3;text-align:center;animation:novaEnter 1.1s cubic-bezier(.2,.8,.2,1) both}.nova-logo-stage{width:138px;height:138px;margin:auto;display:grid;place-items:center;position:relative}.nova-logo-stage .logo{width:94px;height:94px;position:relative;z-index:2;filter:drop-shadow(0 16px 28px rgba(0,0,0,.35));animation:novaLogo 1.3s cubic-bezier(.2,.8,.2,1) both}.nova-logo-ring{position:absolute;inset:4px;border:1px solid rgba(53,225,154,.6);border-radius:42px;box-shadow:0 0 45px rgba(19,201,137,.18);animation:ringPulse 1.8s ease-in-out infinite}.nova-wordmark{font-size:31px;font-weight:800;letter-spacing:4px;margin-top:14px}.nova-wordmark span{color:#e3c26f}.nova-tagline{font-size:8px;letter-spacing:2.3px;color:#b9d8ce;margin-top:7px}.nova-progress{width:145px;height:3px;background:rgba(255,255,255,.1);border-radius:20px;margin:25px auto 0;overflow:hidden}.nova-progress span{display:block;width:35%;height:100%;background:#e3c26f;border-radius:20px;animation:progress 1.65s ease-in-out infinite}.nova-particles:before,.nova-particles:after{content:"";position:absolute;width:3px;height:3px;background:#35e19a;border-radius:50%;box-shadow:12vw 8vh #d9b45f,25vw 72vh #35e19a,70vw 18vh #d9b45f,82vw 65vh #35e19a,91vw 32vh #d9b45f,6vw 54vh #35e19a;animation:float 5s linear infinite}.nova-orbit{position:absolute;border:1px solid rgba(53,225,154,.13);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit-one{width:390px;height:390px;animation:orbit 12s linear infinite}.orbit-two{width:620px;height:620px;border-color:rgba(217,180,95,.08);animation:orbit 18s linear reverse infinite}.nova-splash-footer{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;color:#708c86;font-size:7px;letter-spacing:1.4px;white-space:nowrap}.nova-splash-footer i{width:3px;height:3px;border-radius:50%;background:#d9b45f}@keyframes novaEnter{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}@keyframes novaLogo{from{opacity:0;transform:scale(.55) rotate(-12deg)}70%{opacity:1;transform:scale(1.07) rotate(2deg)}to{transform:scale(1) rotate(0)}}@keyframes ringPulse{0%,100%{transform:scale(.92);opacity:.5}50%{transform:scale(1.08);opacity:1}}@keyframes progress{0%{transform:translateX(-80px)}50%{transform:translateX(110px)}100%{transform:translateX(-80px)}}@keyframes sweep{0%{transform:translateX(-70%)}60%,100%{transform:translateX(70%)}}@keyframes float{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(20px,-16px,0)}100%{transform:translate3d(0,0,0)}}@keyframes orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}
/* Public landing */
.public-home{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(circle at 90% 10%,#0e8d67 0,#061a2c 40%,#03111c 100%);color:#fff}.public-bg-orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.25}.public-bg-orb.orb-a{width:330px;height:330px;background:#1bd193;right:-120px;top:-90px}.public-bg-orb.orb-b{width:280px;height:280px;background:#d9b45f;left:-170px;bottom:80px}.public-header{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;position:relative;z-index:2}.public-header .top-brand b{color:#fff}.public-header .top-brand small{color:#9fc5b8}.public-login{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.14);padding:10px 16px;border-radius:12px;font-weight:800}.public-main{max-width:1100px;margin:auto;padding:42px 20px 30px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:30px;position:relative;z-index:1}.public-copy{max-width:620px}.public-kicker{color:#46e2a7}.public-copy h1{font-size:clamp(42px,6vw,72px);line-height:.98;letter-spacing:-2.8px;margin:13px 0 18px}.public-copy h1 em{font-style:normal;color:#d9b45f}.public-copy p{max-width:530px;color:#b8d2c9;font-size:15px;line-height:1.7}.public-actions{display:flex;gap:10px;margin-top:25px;max-width:380px}.public-actions .primary,.public-actions .ghost-btn{width:auto;flex:1}.public-actions .ghost-btn{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.12)}.trust-row{display:flex;gap:18px;margin-top:18px;color:#8fb3a8;font-size:10px;font-weight:800}.public-phone{display:flex;justify-content:center}.phone-shell{width:280px;height:545px;border:7px solid #1b3140;border-radius:40px;background:#061b2b;box-shadow:0 30px 90px rgba(0,0,0,.45);padding:10px;transform:rotate(4deg);animation:phoneFloat 4s ease-in-out infinite}.phone-notch{width:88px;height:20px;border-radius:20px;background:#07131c;margin:0 auto 9px}.phone-screen{height:100%;border-radius:29px;background:linear-gradient(#f7fbf9,#eef6f3);color:var(--ink);padding:16px}.mini-top{display:flex;justify-content:space-between;font-weight:900;font-size:11px}.mini-top b{color:var(--nova)}.phone-screen>small{display:block;color:var(--muted);font-size:8px;margin-top:30px}.phone-screen>strong{display:block;font-size:25px;margin:5px 0 13px}.mini-fund{background:var(--navy);color:#fff;border-radius:11px;padding:10px;text-align:center;font-size:9px;font-weight:800}.mini-title{font-size:11px;font-weight:900;margin:20px 0 8px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-grid span{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:18px;color:var(--nova)}.mini-grid b{display:block;font-size:8px;color:var(--ink);margin-top:6px}.public-services{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:26px;flex-wrap:wrap;padding:18px;background:rgba(1,11,18,.55);border-top:1px solid rgba(255,255,255,.07);color:#78988f;font-size:8px;letter-spacing:1.4px}@keyframes phoneFloat{0%,100%{transform:rotate(4deg) translateY(0)}50%{transform:rotate(2deg) translateY(-12px)}}
/* Admin premium */
.admin-app{min-height:100vh;background:var(--bg);padding-bottom:80px}.admin-top{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:20}.admin-content{max-width:1100px;margin:auto;padding:20px}.admin-hero{background:linear-gradient(135deg,var(--navy),#0a4b44);color:#fff;border-radius:24px;padding:22px;display:flex;justify-content:space-between;gap:15px}.admin-hero h2{margin:7px 0;font-size:24px}.admin-hero p{font-size:11px;color:#b8d2c9;max-width:620px}.admin-hero>span{font-size:9px;color:#e0c16d;font-weight:900}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:13px 0}.admin-stats>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px}.admin-stats small{display:block;color:var(--muted);font-size:9px}.admin-stats strong{display:block;font-size:19px;margin-top:6px}.quick-admin{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.quick-admin>div{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.quick-admin button{background:#f3f8f5;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:left}.quick-admin button b,.quick-admin button small{display:block}.quick-admin button b{margin-top:8px}.quick-admin button small{color:var(--muted);font-size:9px;margin-top:3px}.admin-note{background:#edf7f3;color:#526a61;border-radius:13px;padding:12px;font-size:10px;margin-top:12px}.admin-nav{position:fixed;bottom:0;left:0;right:0;height:76px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:40}.admin-nav button{background:none;color:#87959f;font-size:18px}.admin-nav button span{display:block;font-size:9px;margin-top:4px}.admin-nav button.active{color:var(--nova);font-weight:900}.table-list{margin-top:10px}.admin-row,.complaint-row{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.admin-row b,.admin-row small{display:block}.admin-row small{color:var(--muted);font-size:10px;margin-top:4px}.status{padding:5px 8px;border-radius:8px;background:#edf1f5;font-size:9px;font-weight:800}.status.resolved{background:#e7f8ee;color:#18733f}.settings-card{display:block}.settings-card h3{margin:0 0 7px}.settings-card p{font-size:11px;color:var(--muted)}
@media(max-width:760px){.public-main{grid-template-columns:1fr;padding-top:28px}.public-copy{text-align:center;margin:auto}.public-copy p{margin-left:auto;margin-right:auto}.public-actions{margin-left:auto;margin-right:auto}.trust-row{justify-content:center}.public-phone{margin:10px 0 90px}.public-services{position:relative}.admin-stats{grid-template-columns:1fr 1fr}.quick-admin>div{grid-template-columns:1fr 1fr}}@media(min-width:800px){.content{padding-top:30px}.bottom{left:50%;right:auto;width:700px;transform:translateX(-50%);border:1px solid var(--line);border-radius:20px 20px 0 0}.admin-nav{left:50%;right:auto;width:900px;transform:translateX(-50%);border:1px solid var(--line);border-radius:18px 18px 0 0}}

:root{--blue:#075fe8;--blue2:#19b6ff;--green:#28f27b;--ink:#10233f;--muted:#71809a;--bg:#f5f8fc;--card:#fff;--line:#e6edf6;--danger:#e5484d;--shadow:0 14px 40px rgba(20,55,100,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}a{text-decoration:none;color:inherit}.app{min-height:100vh;background:var(--bg);padding-bottom:82px}.topbar,.admin-top{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:20}.top-brand,.admin-brand{display:flex;align-items:center;gap:10px}.top-brand b,.admin-brand b{display:block;font-size:15px}.top-brand small,.admin-brand small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.icon-btn,.admin-actions button{width:40px;height:40px;border-radius:12px;background:#f3f7fc;color:var(--ink);font-size:19px}.notification-dot{position:relative}.content{max-width:620px;margin:auto;padding:20px}.logo{width:40px;height:40px}.logo.large{width:76px;height:76px}.admin-app{min-height:100vh;background:#f3f6fa;padding-bottom:76px}.admin-top{position:sticky;top:0;z-index:20}.admin-content{max-width:1000px;margin:auto;padding:24px}.admin-actions{display:flex;gap:8px}.admin-hero{background:linear-gradient(135deg,#075fe8,#0b84e9);color:#fff;border-radius:24px;padding:24px;display:flex;justify-content:space-between;align-items:flex-start}.admin-hero h2{margin:6px 0}.admin-hero p{max-width:650px;opacity:.78}.admin-hero>span{background:rgba(255,255,255,.16);padding:8px 10px;border-radius:10px;font-size:11px;font-weight:900}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.admin-stats strong{font-size:22px;margin-top:7px}.quick-admin{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.quick-admin h3{margin-top:0}.quick-admin>div{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.quick-admin button{background:#f7f9fc;border:1px solid var(--line);border-radius:15px;padding:15px;text-align:left}.quick-admin button>b,.quick-admin button>small{display:block}.quick-admin button>b{margin-top:9px}.quick-admin button>small{color:var(--muted);margin-top:3px}.table-list{margin-top:10px}.admin-row,.complaint-row{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;display:flex;justify-content:space-between;gap:15px;margin-bottom:9px}.admin-row b,.admin-row small{display:block}.admin-row small{color:var(--muted);margin-top:4px}.reward-setting{justify-content:space-between}.reward-setting>div:first-child{flex:1}.reward-setting b,.reward-setting small{display:block}.reward-setting small{color:var(--muted);font-size:11px;margin-top:4px}.reward-setting input{width:120px;padding:11px;border:1px solid var(--line);border-radius:10px}.reward-setting button,.complaint-actions button,.settings-card button{padding:10px 13px;background:var(--blue);color:#fff;border-radius:10px;font-weight:800}.complaint-row>div:first-child{flex:1}.complaint-row p{margin:9px 0;color:#52627a}.complaint-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.status{padding:5px 8px;border-radius:8px;background:#edf1f5;font-size:10px;font-weight:800}.status.resolved{background:#e7f8ee;color:#18733f}.admin-nav{position:fixed;bottom:0;left:0;right:0;height:76px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:40}.admin-nav button{background:none;color:#8b98aa}.admin-nav button span{display:block;font-size:10px;margin-top:4px}.admin-nav button.active{color:var(--blue);font-weight:900}.settings-card{display:block}.settings-card h3{margin-top:0}.settings-card p{color:var(--muted);font-size:13px}.settings-card button{margin-top:6px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes load{50%{transform:translateX(130%)}}@media(max-width:700px){.admin-content{padding:16px}.admin-stats{grid-template-columns:1fr 1fr}.quick-admin>div{grid-template-columns:1fr 1fr}.admin-nav{grid-template-columns:repeat(5,1fr)}.admin-nav button{font-size:15px}.admin-nav button span{font-size:9px}.support-cards{grid-template-columns:1fr}.content{padding:16px}.topbar{padding:0 15px}}@media(min-width:800px){.app .content{padding-top:30px}.bottom{left:50%;right:auto;width:620px;transform:translateX(-50%);border:1px solid var(--line);border-radius:18px 18px 0 0}.admin-nav{left:50%;right:auto;width:900px;transform:translateX(-50%);border-radius:18px 18px 0 0;border:1px solid var(--line)}}
/* DSAS NOVA polish: preserve the existing palette while improving hierarchy and motion. */
.top-brand b,.admin-brand b,.service-card b,.wallet-line strong,.section-head h2,.page-title h1,.referral-banner b,.payment-info b,.profile-card b,.settings-list button b,.admin-hero h2,.quick-admin button>b,.admin-row b,.complaint-row b{font-weight:800}
.service-card small,.page-title p,.payment-info small,.profile-card small,.settings-list small{font-weight:500}
.service-list-grid{display:grid;gap:11px}.provider-card{width:100%;background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;display:flex;align-items:center;gap:13px;text-align:left;box-shadow:var(--shadow)}.provider-card>div{flex:1}.provider-card b,.provider-card small{display:block}.provider-card small{color:var(--muted);font-size:12px;margin-top:3px}.provider-icon{width:46px;height:46px;border-radius:14px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-size:21px;font-weight:900}.provider-icon.airtime{background:#eefcf4;color:#119653}.provider-icon.tv{background:#f0edff;color:#6b4de6}.provider-icon.electricity{background:#fff5d8;color:#d59b00}.provider-icon.exam{background:#fff0e8;color:#df6b2f}.provider-icon.betting{background:#f2eaff;color:#7b42d6}.provider-icon.esim{background:#e8f8f1;color:#14895a}.retry-btn{background:#eaf3ff!important;color:var(--blue)!important}
.splash{overflow:hidden;background:linear-gradient(145deg,#061a39 0%,#073d91 45%,#075fe8 100%)}.splash-stage{position:relative;z-index:2;text-align:center;animation:splash-stage-in .8s ease-out both}.splash-logo{animation:splash-logo-in 1s cubic-bezier(.2,.8,.2,1) both}.splash h1{font-weight:850;letter-spacing:-.4px;animation:splash-title-in .8s .25s ease-out both}.splash p{font-size:15px;animation:splash-title-in .8s .38s ease-out both}.splash-glow{position:absolute;border-radius:50%;filter:blur(24px);opacity:.18;pointer-events:none}.splash-glow-a{width:260px;height:260px;background:#19b6ff;top:12%;left:-90px;animation:glow-drift 5s ease-in-out infinite}.splash-glow-b{width:300px;height:300px;background:#28f27b;right:-120px;bottom:8%;animation:glow-drift 6s 1s ease-in-out infinite reverse}.floating-icons{position:absolute;inset:-100px -130px;pointer-events:none}.floating-icons span{position:absolute;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);box-shadow:0 12px 35px rgba(0,0,0,.12);font-size:20px;animation:float-icon 5.5s ease-in-out infinite}.floating-icons span:nth-child(1){left:3%;top:38%;animation-delay:-1.2s}.floating-icons span:nth-child(2){right:3%;top:24%;animation-delay:-3.1s}.floating-icons span:nth-child(3){right:8%;bottom:13%;animation-delay:-4.2s}.loader{position:relative;height:4px;width:120px;margin:25px auto 0}.loader span{display:block;height:100%;width:38%;border-radius:20px;background:#28f27b;animation:load-smooth 1.8s ease-in-out infinite}.loader:after{display:none}
@keyframes splash-stage-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes splash-logo-in{0%{opacity:0;transform:scale(.72) rotate(-4deg)}70%{opacity:1;transform:scale(1.04) rotate(1deg)}100%{transform:scale(1) rotate(0)}}@keyframes splash-title-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes float-icon{0%,100%{transform:translate3d(0,0,0) rotate(0);opacity:.62}50%{transform:translate3d(0,-16px,0) rotate(5deg);opacity:1}}@keyframes glow-drift{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(22px,-18px,0) scale(1.08)}}@keyframes load-smooth{0%{transform:translateX(0);width:25%}50%{transform:translateX(120px);width:42%}100%{transform:translateX(0);width:25%}}@media(prefers-reduced-motion:reduce){.splash-stage,.splash-logo,.splash h1,.splash p,.floating-icons span,.splash-glow-a,.splash-glow-b,.loader span{animation:none}.loader span{width:70%}}

/* Final DSAS NOVA polish: clean splash, in-place reward motion, stronger hierarchy, safer back navigation. */
.splash-stage{width:min(92vw,420px);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:420px}
.splash-logo{filter:drop-shadow(0 14px 30px rgba(0,0,0,.18))}
.splash h1{font-weight:900}
.splash p{font-weight:600;letter-spacing:.1px}
.reward-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.reward-mini{min-width:0;display:flex;align-items:center;gap:10px;text-align:left;padding:14px;border-radius:17px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);color:var(--ink)}
.reward-mini>div{min-width:0;flex:1}
.reward-mini b,.reward-mini small{display:block}
.reward-mini b{font-weight:850}
.reward-mini small{color:var(--muted);font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reward-mini-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:20px;flex:none}
.cashback .reward-mini-icon{background:#eaf3ff;color:var(--blue);animation:reward-breathe 3.2s ease-in-out infinite}
.offers .reward-mini-icon{background:#eaf8ef;color:#168b51;animation:reward-float 3.6s ease-in-out infinite}
.referral-banner .gift{display:inline-grid;place-items:center;animation:reward-float 3.8s ease-in-out infinite}
.service-icon.betting{animation:reward-breathe 4s ease-in-out infinite}
.service-icon.ezam{background:#fff3e8;color:#e37a21;animation:reward-breathe 4.2s ease-in-out infinite}
.service-icon.exam{animation:reward-breathe 4.5s ease-in-out infinite}
@keyframes reward-breathe{0%,100%{transform:scale(1);opacity:.92}50%{transform:scale(1.06);opacity:1}}
@keyframes reward-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(2deg)}}
@media(max-width:430px){.reward-strip{grid-template-columns:1fr}.reward-mini small{white-space:normal}.splash-stage{min-height:380px}}
@media(prefers-reduced-motion:reduce){.cashback .reward-mini-icon,.offers .reward-mini-icon,.referral-banner .gift,.service-icon.betting,.service-icon.ezam,.service-icon.exam{animation:none}}
.floating-icons{display:none!important}

/* DSAS logo asset + resilient loading/error states */
.logo { display:flex; align-items:center; justify-content:center; overflow:hidden; }

/* Runtime safety: never leave the user on a white screen if a UI component throws. */
.nova-runtime-error{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#061a39,#073d91 55%,#075fe8);color:#fff}
.nova-runtime-card{width:min(92vw,430px);text-align:center;padding:34px 24px;border-radius:28px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px);box-shadow:0 24px 70px rgba(0,0,0,.28)}
.nova-runtime-logo{width:82px;height:82px;margin:0 auto 14px}
.nova-runtime-logo img{width:100%;height:100%;display:block}
.nova-runtime-card .nova-wordmark{font-size:26px;font-weight:900}
.nova-runtime-card .nova-wordmark span{color:#d9b45a}
.nova-runtime-card h1{font-size:22px;margin:22px 0 8px}
.nova-runtime-card p{color:rgba(255,255,255,.78);line-height:1.55;margin:0 0 22px}
.nova-runtime-card .primary{width:100%}


/* =========================================================
   DSAS NOVA — Premium UI completion
   Repairs missing component styles without touching API/backend.
   ========================================================= */
:root{--nova-deep:#071b2e;--nova-green:#0bb477;--nova-green-2:#19c98b;--nova-gold:#d9b45f;--nova-bg:#f4f8fc;--nova-border:#e2e9ef}
.app{background:linear-gradient(180deg,#f8fbfd 0%,#f2f6fa 100%);padding-bottom:92px;min-height:100svh}
.content{max-width:980px;margin:0 auto;padding:24px 20px 108px;min-height:calc(100svh - 72px)}
.topbar{height:72px;padding:0 max(16px,calc((100vw - 980px)/2 + 20px));background:rgba(255,255,255,.96);border-bottom:1px solid #e5edf2;box-shadow:0 5px 22px rgba(7,27,46,.04)}
.icon-btn{width:46px;height:46px;border-radius:15px;background:#f2f6fa;color:var(--nova-deep);font-size:24px;display:grid;place-items:center;line-height:1}
.top-brand{gap:11px}.top-brand b{font-size:17px;color:var(--nova-deep)}.top-brand small{font-size:11px}.logo{flex:none}.logo img,.dsas-nova-logo{width:100%;height:100%;display:block;object-fit:contain}
.nova-customer-home{padding-top:4px}.nova-welcome{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.nova-welcome small{display:block;color:var(--nova-green);font-weight:900;letter-spacing:1.4px;font-size:10px}.nova-welcome h1{margin:4px 0 4px;font-size:31px;line-height:1.08;letter-spacing:-1px;color:var(--nova-deep)}.nova-welcome p{margin:0;color:#6f7f91;font-size:13px}.nova-avatar{width:48px;height:48px;border-radius:16px;background:var(--nova-deep);color:#fff;font-size:18px;font-weight:900;box-shadow:0 10px 25px rgba(7,27,46,.15)}
.nova-wallet{position:relative;overflow:hidden;background:linear-gradient(135deg,#071b2e,#0b3d45 68%,#0b6a55);color:#fff;border-radius:25px;padding:22px;box-shadow:0 20px 42px rgba(7,27,46,.16);margin-bottom:26px}.nova-wallet-glow{position:absolute;width:220px;height:220px;right:-90px;top:-100px;background:rgba(25,201,139,.26);filter:blur(20px);border-radius:50%}.nova-wallet-top,.nova-wallet-bottom{position:relative;z-index:1}.nova-wallet-top{display:flex;align-items:flex-start;justify-content:space-between}.nova-wallet-top small{font-size:9px;letter-spacing:1.5px;color:rgba(255,255,255,.65)}.nova-wallet-top strong{display:block;font-size:30px;margin-top:7px;letter-spacing:-1px}.nova-wallet-top button{width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.10);color:#fff}.nova-wallet-bottom{display:flex;gap:10px;margin-top:22px}.nova-wallet-bottom button{flex:1;padding:12px;border-radius:13px;background:rgba(255,255,255,.12);color:#fff;font-weight:800;border:1px solid rgba(255,255,255,.12)}.nova-wallet-bottom button:first-child{background:#fff;color:var(--nova-deep)}
.nova-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:25px 0 12px}.nova-section-head small{font-size:9px;letter-spacing:1.4px;color:var(--nova-green);font-weight:900}.nova-section-head h2{margin:3px 0 0;font-size:20px;letter-spacing:-.5px;color:var(--nova-deep)}.nova-section-head>button{background:transparent;color:var(--nova-green);font-weight:900;font-size:12px;padding:5px}
.nova-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.nova-service-grid>button,.nova-market-grid>button{min-width:0;text-align:left;background:#fff;border:1px solid var(--nova-border);border-radius:18px;padding:15px;box-shadow:0 8px 24px rgba(7,27,46,.05);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.nova-service-grid>button:active,.nova-market-grid>button:active{transform:scale(.98)}.nova-service-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#e9f8f2;color:var(--nova-green);font-size:20px;font-weight:900;margin-bottom:11px}.nova-service-grid b{display:block;color:var(--nova-deep);font-size:14px}.nova-service-grid small{display:block;color:#748398;font-size:10px;line-height:1.35;margin-top:4px}.nova-service-icon.airtime{background:#fff5df;color:#b47a10}.nova-service-icon.tv{background:#f0edff;color:#6e55d6}.nova-service-icon.electricity{background:#fff6d8;color:#b78300}.nova-service-icon.exam{background:#edf3ff;color:#426fc5}.nova-service-icon.betting{background:#f5ebff;color:#7b42d6}.nova-service-icon.ezam{background:#fff0e5;color:#d06d22}.nova-service-icon.esim{background:#e8f8f1;color:#14895a}
.nova-feature{margin:24px 0;background:linear-gradient(135deg,#eaf8f2,#fff);border:1px solid #d9ebe3;border-radius:21px;padding:19px;display:flex;align-items:center;justify-content:space-between;gap:15px}.nova-feature small{color:var(--nova-green);font-weight:900;font-size:9px;letter-spacing:1.4px}.nova-feature h3{margin:5px 0 7px;font-size:20px;color:var(--nova-deep)}.nova-feature p{margin:0;color:#708094;font-size:11px;line-height:1.5}.nova-feature button{flex:none;background:var(--nova-deep);color:#fff;padding:11px 14px;border-radius:13px;font-weight:900}
.nova-search{height:52px;background:#fff;border:1px solid var(--nova-border);border-radius:16px;padding:0 14px;display:flex;align-items:center;gap:9px;box-shadow:0 7px 20px rgba(7,27,46,.04)}.nova-search>input{min-width:0;flex:1;border:0;outline:0;color:var(--nova-deep);background:transparent;font-size:14px}.nova-search>input::placeholder{color:#8c99a8}.nova-categories{display:flex;gap:8px;overflow:auto;padding:12px 0 4px;scrollbar-width:none}.nova-categories::-webkit-scrollbar{display:none}.nova-categories button{white-space:nowrap;border:1px solid var(--nova-border);background:#fff;color:#738297;border-radius:22px;padding:9px 14px;font-size:11px;font-weight:900}.nova-categories button.active{background:var(--nova-deep);border-color:var(--nova-deep);color:#fff}.nova-market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:12px}.nova-market-grid>button{position:relative;display:flex;align-items:center;gap:12px;min-height:92px}.nova-market-grid .nova-service-icon{margin:0;flex:none}.nova-market-grid>button>div{min-width:0;flex:1}.nova-market-grid b{display:block;font-size:13px;color:var(--nova-deep);line-height:1.2}.nova-market-grid small{display:block;margin-top:5px;color:#748398;font-size:10px;line-height:1.3}.nova-market-grid>button>strong{color:var(--nova-green);font-size:22px}
.nova-support-cards{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:14px}.nova-support-cards a{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--nova-border);border-radius:18px;padding:15px;color:var(--nova-deep);text-decoration:none;box-shadow:0 8px 22px rgba(7,27,46,.04)}.support-icon{width:44px;height:44px;flex:none;border-radius:14px;display:grid;place-items:center;font-weight:900;font-size:19px}.support-icon.whatsapp{background:#e8f8ef;color:#15935c}.support-icon.email{background:#eef3ff;color:#3f67c6}.nova-support-cards a>div{min-width:0;flex:1}.nova-support-cards b,.nova-support-cards small{display:block}.nova-support-cards b{font-size:13px}.nova-support-cards small{margin-top:4px;color:#78879a;font-size:10px;line-height:1.35}.nova-support-cards a>strong{color:var(--nova-green);font-size:20px}.nova-complaint{padding:20px;border-radius:21px;box-shadow:0 10px 28px rgba(7,27,46,.04)}.form-heading>span{font-size:9px;letter-spacing:1.4px;color:var(--nova-green);font-weight:900}.form-heading h3{margin:5px 0 5px;font-size:21px;color:var(--nova-deep)}.form-heading p{margin:0 0 18px;color:#7a899b;font-size:11px}.nova-complaint label{display:block;margin:12px 0 7px;color:var(--nova-deep);font-size:11px;font-weight:800}.nova-complaint label span{font-weight:500;color:#8794a3}.nova-complaint input,.nova-complaint select,.nova-complaint textarea{width:100%;border:1px solid #dfe7ed;border-radius:13px;background:#fbfcfd;color:var(--nova-deep);outline:0;padding:13px;font-size:13px}.nova-complaint input:focus,.nova-complaint select:focus,.nova-complaint textarea:focus{border-color:#7bd9b7;box-shadow:0 0 0 3px rgba(11,180,119,.10)}.nova-complaint textarea{resize:vertical;min-height:125px}.nova-complaint .primary{margin-top:16px}
.nova-profile-card{display:flex;align-items:center;gap:16px;padding:18px;border-radius:21px}.profile-avatar{width:86px;height:86px;border-radius:22px;background:#edf4f8;display:grid;place-items:center;flex:none}.profile-avatar .logo.large{width:70px;height:70px}.profile-identity{min-width:0}.profile-identity>b{display:block;font-size:19px;color:var(--nova-deep);line-height:1.2}.profile-identity>small{display:block;margin-top:5px;color:#778699;font-size:11px;overflow-wrap:anywhere}.verified-pill{display:inline-flex;align-items:center;gap:4px;margin-top:9px;padding:5px 9px;border-radius:20px;background:#e9f8f1;color:#128a57;font-size:9px;font-weight:900}.nova-account-stats{margin-bottom:12px}.nova-settings-list{display:grid;gap:10px}.nova-settings-list .setting-item{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:15px;background:#fff;border:1px solid var(--nova-border);border-radius:17px;color:var(--nova-deep);box-shadow:0 7px 20px rgba(7,27,46,.04)}.nova-settings-list .setting-item>div{min-width:0;flex:1}.setting-icon{width:42px;height:42px;flex:none;border-radius:13px;background:#edf8f4;color:var(--nova-green);display:grid;place-items:center;font-size:19px;font-weight:900}.biometric-icon{background:#eef3ff;color:#4169c7}.nova-settings-list .setting-item b,.nova-settings-list .setting-item small{display:block}.nova-settings-list .setting-item b{font-size:13px}.nova-settings-list .setting-item small{margin-top:4px;color:#7c8a9b;font-size:10px;line-height:1.35}.setting-status{font-size:10px!important;color:var(--nova-green);font-weight:900}.setting-status.enabled{padding:6px 9px;border-radius:20px;background:#e8f8ef}.nova-settings-list .danger-btn .setting-icon{background:#fff0f0;color:#d94e59}.nova-settings-list .danger-btn{color:#a52f3a}
.nova-bottom{height:82px;min-height:82px;padding:8px 6px max(8px,env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid #dfe8ee;box-shadow:0 -10px 28px rgba(7,27,46,.07);z-index:60}.nova-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;color:#8996a5;font-size:10px;font-weight:800;min-width:0}.nova-bottom button .nav-icon{font-size:21px;line-height:1;color:#8a98a8}.nova-bottom button.active{color:var(--nova-green)}.nova-bottom button.active .nav-icon{color:var(--nova-green);transform:translateY(-1px)}.nova-bottom button:active{transform:scale(.96)}
.nova-splash{position:fixed;inset:0;z-index:9999;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 43%,#0b6a55 0%,#073d43 28%,#061b2d 64%,#04121f 100%);color:#fff;min-height:100svh}.nova-splash-center{position:relative;z-index:3;width:min(88vw,390px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:translateY(-3vh);animation:nova-center-in .8s cubic-bezier(.2,.8,.2,1) both}.nova-logo-stage{position:relative;width:154px;height:154px;display:grid;place-items:center;margin-bottom:20px}.nova-logo-stage>.logo.large{position:relative;z-index:3;width:92px;height:92px}.nova-logo-ring{position:absolute;inset:5px;border:1px solid rgba(25,201,139,.45);border-radius:50%;box-shadow:0 0 0 12px rgba(25,201,139,.025),0 0 45px rgba(25,201,139,.18);animation:nova-ring-pulse 2.8s ease-in-out infinite}.nova-logo-halo{position:absolute;width:104px;height:104px;border-radius:50%;background:rgba(25,201,139,.14);filter:blur(15px);animation:nova-halo 2.8s ease-in-out infinite}.nova-wordmark{font-size:37px;line-height:1;font-weight:900;letter-spacing:5px;color:#fff}.nova-wordmark span{color:var(--nova-gold)}.nova-tagline{margin-top:12px;font-size:10px;letter-spacing:3px;color:rgba(255,255,255,.66);font-weight:700}.nova-progress{width:130px;height:4px;background:rgba(255,255,255,.14);border-radius:20px;margin-top:26px;overflow:hidden}.nova-progress span{display:block;height:100%;width:38%;background:linear-gradient(90deg,var(--nova-green),var(--nova-gold));border-radius:20px;animation:nova-progress 1.8s ease-in-out infinite}.nova-splash-footer{position:absolute;z-index:3;bottom:max(30px,calc(22px + env(safe-area-inset-bottom)));left:0;right:0;display:flex;align-items:center;justify-content:center;gap:12px;color:rgba(255,255,255,.45);font-size:8px;font-weight:800;letter-spacing:2px}.nova-splash-footer i{width:4px;height:4px;border-radius:50%;background:var(--nova-gold)}.nova-orbit{position:absolute;z-index:1;border:1px solid rgba(104,220,190,.10);border-radius:50%;pointer-events:none}.nova-orbit.orbit-one{width:520px;height:520px;left:50%;top:50%;transform:translate(-50%,-50%);animation:nova-orbit 18s linear infinite}.nova-orbit.orbit-two{width:720px;height:720px;left:50%;top:50%;transform:translate(-50%,-50%);animation:nova-orbit 26s linear infinite reverse}.nova-orbit.orbit-three{width:900px;height:900px;left:50%;top:50%;transform:translate(-50%,-50%);border-color:rgba(217,180,95,.06);animation:nova-orbit 34s linear infinite}.nova-particles{position:absolute;inset:0;background:radial-gradient(circle at 27% 23%,rgba(25,201,139,.9) 0 2px,transparent 3px),radial-gradient(circle at 72% 31%,rgba(217,180,95,.9) 0 2px,transparent 3px),radial-gradient(circle at 79% 76%,rgba(25,201,139,.7) 0 2px,transparent 3px),radial-gradient(circle at 40% 78%,rgba(25,201,139,.6) 0 2px,transparent 3px);opacity:.8;animation:nova-particle-drift 7s ease-in-out infinite}.nova-particles:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(25,201,139,.12),transparent 32%)}
@keyframes nova-center-in{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(-3vh) scale(1)}}@keyframes nova-ring-pulse{0%,100%{transform:scale(.98);opacity:.55}50%{transform:scale(1.035);opacity:1}}@keyframes nova-halo{0%,100%{transform:scale(.88);opacity:.35}50%{transform:scale(1.08);opacity:.72}}@keyframes nova-progress{0%{transform:translateX(-120%)}50%{transform:translateX(210%)}100%{transform:translateX(-120%)}}@keyframes nova-orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes nova-particle-drift{50%{transform:translateY(-8px) scale(1.03);opacity:.95}}
.admin-app{min-height:100svh;background:linear-gradient(180deg,#f8fbfd,#f2f6fa);padding-bottom:90px}.admin-top{height:78px;background:rgba(255,255,255,.97);border-bottom:1px solid #e1e9ef;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 980px)/2 + 20px));position:sticky;top:0;z-index:30;box-shadow:0 5px 22px rgba(7,27,46,.04)}.admin-brand{display:flex;align-items:center;gap:11px}.admin-brand b{font-size:17px}.admin-brand small{display:block;color:#7a899b;font-size:10px;margin-top:2px}.admin-actions{display:flex;gap:8px}.admin-actions button{width:42px;height:42px;border-radius:14px;background:#f1f5f8;color:var(--nova-deep);font-size:20px}.admin-content{max-width:980px;margin:0 auto;padding:24px 20px 110px}.admin-hero{background:linear-gradient(135deg,#071b2e,#0b3d43);border:1px solid rgba(25,201,139,.18);color:#fff;border-radius:25px;padding:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;box-shadow:0 20px 42px rgba(7,27,46,.14);overflow:hidden;position:relative}.admin-hero:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-100px;top:-110px;background:rgba(25,201,139,.20);filter:blur(5px)}.admin-hero>div,.admin-hero>span{position:relative;z-index:1}.admin-hero small{color:#7ee3c1;font-weight:800;letter-spacing:1px}.admin-hero h2{font-size:27px;letter-spacing:-.7px;margin:7px 0}.admin-hero p{max-width:520px;color:rgba(255,255,255,.68);font-size:11px;line-height:1.55;margin:0}.admin-hero>span{padding:9px 12px;border-radius:12px;background:rgba(217,180,95,.16);color:#f0ce79;font-size:10px;font-weight:900;letter-spacing:1px}.admin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:14px 0}.admin-stats>div{background:#fff;border:1px solid var(--nova-border);border-radius:18px;padding:17px;box-shadow:0 7px 20px rgba(7,27,46,.04)}.admin-stats small{display:block;color:#7c8a9b;font-size:10px}.admin-stats strong{display:block;color:var(--nova-deep);font-size:25px;margin-top:6px;letter-spacing:-.6px}.quick-admin{background:#fff;border:1px solid var(--nova-border);border-radius:21px;padding:19px;box-shadow:0 7px 20px rgba(7,27,46,.04)}.quick-admin h3{font-size:20px;color:var(--nova-deep);margin:0 0 14px}.quick-admin>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-admin button{background:#f7fafb;border:1px solid #e3ebef;border-radius:16px;padding:14px;text-align:left;color:var(--nova-deep);min-height:90px}.quick-admin button>b,.quick-admin button>small{display:block}.quick-admin button>b{font-size:12px;margin-top:8px}.quick-admin button>small{font-size:9px;color:#7b8a9b;margin-top:4px}.quick-admin button:first-child{border-color:#bdebd9;background:#effaf5}.admin-note{margin-top:12px;background:#eef7f4;border:1px solid #d7ece4;color:#668073;border-radius:14px;padding:12px;font-size:10px}.admin-nav{height:82px!important;min-height:82px;padding:8px 6px max(8px,env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid #dfe8ee;box-shadow:0 -10px 28px rgba(7,27,46,.07)}.admin-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;color:#8b98a8;font-size:20px}.admin-nav button span{font-size:10px;margin:0}.admin-nav button.active{color:var(--nova-green)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 14px}.stats>div{background:#fff;border:1px solid var(--nova-border);border-radius:17px;padding:14px}.stats small{display:block;color:#7a899b;font-size:10px}.stats b{display:block;color:var(--nova-deep);font-size:17px;margin-top:5px}.support-cards{display:grid}.complaint{width:100%}.back-btn{background:transparent;color:var(--nova-green);font-weight:900;padding:8px 0}.primary{background:linear-gradient(135deg,var(--nova-green),var(--nova-green-2));color:#fff;border-radius:14px;padding:13px 16px;font-weight:900;box-shadow:0 10px 22px rgba(11,180,119,.18)}.primary.wide{width:100%}
@media(max-width:700px){.content{padding:20px 16px 108px}.nova-welcome h1{font-size:29px}.nova-service-grid,.nova-market-grid{grid-template-columns:1fr 1fr}.nova-support-cards{grid-template-columns:1fr}.nova-feature{align-items:flex-start}.nova-feature button{padding:10px 12px}.nova-wordmark{font-size:32px;letter-spacing:4px}.nova-logo-stage{width:140px;height:140px}.nova-logo-stage>.logo.large{width:86px;height:86px}.nova-splash-center{transform:translateY(-2vh)}.admin-content{padding:20px 16px 108px}.admin-hero{padding:20px}.admin-hero h2{font-size:24px}.admin-nav{left:0!important;right:0!important;width:auto!important;transform:none!important;border-radius:0!important}.profile-identity>b{font-size:17px}}
@media(max-width:380px){.nova-service-grid,.nova-market-grid{grid-template-columns:1fr}.nova-wallet-top strong{font-size:26px}.nova-wallet-bottom{flex-direction:column}.nova-wordmark{font-size:28px}.nova-splash-footer{font-size:7px;gap:8px}.nova-profile-card{align-items:flex-start}.profile-avatar{width:70px;height:70px}.profile-avatar .logo.large{width:58px;height:58px}}
@media(min-width:800px){.nova-bottom{left:50%;right:auto;width:min(680px,100vw);transform:translateX(-50%);border:1px solid #dfe8ee;border-radius:20px 20px 0 0}.admin-nav{left:50%;right:auto;width:min(900px,100vw);transform:translateX(-50%);border-radius:20px 20px 0 0;border:1px solid #dfe8ee}.nova-service-grid,.nova-market-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-admin>div{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.nova-splash-center,.nova-logo-ring,.nova-logo-halo,.nova-progress span,.nova-orbit,.nova-particles{animation:none!important}.nova-progress span{transform:none;width:60%}}


/* ===== DSAS NOVA FINAL MOBILE / RESPONSIVE OVERRIDES ===== */
html,body,#root{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
body{overscroll-behavior-x:none;-webkit-text-size-adjust:100%}
.app,.admin-app{width:100%;max-width:100%;overflow-x:hidden}
.content,.admin-content,.page{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

/* Customer bottom navigation: clear, bold and easy to tap */
.nova-bottom{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important}
.nova-bottom button{min-width:0!important;padding:7px 2px 4px!important;font-weight:900!important;color:#7f8d9b!important}
.nova-bottom button span:last-child{font-size:11px!important;font-weight:900!important;letter-spacing:.1px}
.nova-bottom button .nav-icon{font-size:23px!important;font-weight:800!important}
.nova-bottom button.active,.nova-bottom button.active span:last-child{color:var(--nova-green)!important}
.nova-bottom button:active{transform:scale(.97)}

/* Admin bottom navigation: bold labels + consistent icons */
.admin-nav{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important}
.admin-nav button{min-width:0!important;padding:7px 2px 4px!important;font-weight:900!important;color:#7f8d9b!important}
.admin-nav button .nav-icon{display:block;font-size:22px!important;line-height:1!important;font-weight:900!important}
.admin-nav button span:last-child{font-size:11px!important;font-weight:900!important;line-height:1.1!important;margin-top:5px!important}
.admin-nav button.active,.admin-nav button.active span:last-child{color:var(--nova-green)!important}

/* Data / Airtime marketplace cards */
.nova-network-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0 25px}
.network-choice{min-width:0;background:transparent;border:0;padding:0;text-align:center;color:var(--nova-deep);font-weight:900}
.network-choice .network{width:100%;height:66px;border-radius:18px;margin:0 auto 7px;display:grid;place-items:center;font-size:19px;box-shadow:0 7px 16px rgba(7,27,46,.07)}
.network-choice>b{font-size:12px}
.nova-plan-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 0 10px}
.nova-plan-head h3{margin:0;color:var(--nova-deep);font-size:20px;letter-spacing:-.4px}
.nova-plan-head span{color:#7c8998;font-size:10px;font-weight:700}
.nova-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.nova-plan-card{min-width:0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;gap:8px 10px;text-align:left;background:#fff;border:1px solid var(--nova-border);border-radius:18px;padding:15px;box-shadow:0 8px 22px rgba(7,27,46,.045);transition:transform .18s ease,border-color .18s ease}
.nova-plan-card:active{transform:scale(.98)}
.nova-plan-card .plan-main{min-width:0}
.nova-plan-card .plan-main b{display:block;color:var(--nova-deep);font-size:17px;font-weight:900;white-space:nowrap}
.nova-plan-card .plan-main small{display:block;color:#788798;font-size:10px;margin-top:5px;font-weight:700}
.nova-plan-card>strong{color:var(--nova-green);font-size:17px;white-space:nowrap}
.nova-plan-card .plan-buy{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf1f3;padding-top:9px;color:var(--nova-deep);font-size:11px;font-weight:900}
.nova-plan-card .plan-buy i{font-style:normal;color:var(--nova-green);font-size:17px}
.secure-note{width:100%;max-width:100%;line-height:1.5;overflow-wrap:anywhere}

/* Biometric setup and login */
.biometric-setting{cursor:pointer}
.biometric-setting:disabled{opacity:1;cursor:pointer}
.biometric-login-btn{width:100%;margin-top:9px;padding:13px;border-radius:13px;background:#eef8f4;color:var(--nova-deep);border:1px solid #d7ece3;font-weight:900;display:flex;align-items:center;justify-content:center;gap:8px}
.biometric-login-btn span{color:var(--nova-green);font-size:18px}

/* Prevent accidental wide cards / horizontal page drift */
.nova-wallet,.nova-feature,.nova-profile-card,.nova-settings-list,.nova-account-stats,.nova-plans,.nova-network-grid,.quick-admin,.admin-hero,.admin-stats,.admin-note{max-width:100%;min-width:0}
.admin-content *,.content *{max-width:100%}
.admin-row,.complaint-row{min-width:0;overflow-wrap:anywhere}

/* Mobile spacing */
@media(max-width:600px){
  .nova-network-grid{gap:7px}
  .network-choice .network{height:62px;border-radius:17px;font-size:17px}
  .nova-plan-card{padding:13px}
  .nova-plan-card .plan-main b{font-size:15px}
  .nova-plan-card>strong{font-size:15px}
  .nova-bottom button span:last-child,.admin-nav button span:last-child{font-size:11px!important}
}
@media(max-width:380px){
  .nova-plans{grid-template-columns:1fr}
  .nova-network-grid{gap:6px}
  .network-choice .network{height:58px;font-size:15px}
}


/* ===== DSAS NOVA SECURITY + REFERRAL POLISH ===== */
.login-methods{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:4px 0 12px;padding:4px;background:#f2f6f8;border-radius:13px}
.login-methods button{padding:10px 8px;border-radius:10px;background:transparent;color:#7b8999;font-size:11px;font-weight:900}
.login-methods button.active{background:#fff;color:var(--nova-deep);box-shadow:0 4px 12px rgba(7,27,46,.08)}
.pin-input{letter-spacing:8px;text-align:center;font-weight:900}
.nova-network-grid .network-choice{position:relative;padding-bottom:2px;transition:transform .16s ease}
.nova-network-grid .network-choice.selected{transform:translateY(-2px)}
.nova-network-grid .network-choice.selected .network{box-shadow:0 0 0 3px rgba(25,201,139,.18),0 10px 22px rgba(7,27,46,.12)}
.nova-network-grid .network-choice.selected>b{color:var(--nova-green)}
.nova-network-grid .network-choice small{display:block;color:var(--nova-green);font-size:8px;font-weight:900;margin-top:3px}
.referral-code-panel{background:linear-gradient(145deg,#071b2e,#0b3d43);border:1px solid rgba(25,201,139,.18);border-radius:23px;padding:19px;color:#fff;box-shadow:0 16px 34px rgba(7,27,46,.12);overflow:hidden;position:relative}
.referral-code-panel:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-80px;top:-90px;background:rgba(25,201,139,.15);filter:blur(2px)}
.referral-code-head,.referral-code-value,.referral-actions,.referral-retry{position:relative;z-index:1}
.referral-code-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.referral-code-head small{display:block;color:#79dcb9;font-size:8px;font-weight:900;letter-spacing:1.5px}
.referral-code-head b{display:block;margin-top:4px;font-size:16px}
.referral-code-head>span{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.09);display:grid;place-items:center}
.referral-code-value{margin:18px 0 13px;background:rgba(255,255,255,.08);border:1px dashed rgba(255,255,255,.2);border-radius:15px;padding:17px;text-align:center;min-height:62px;display:grid;place-items:center}
.referral-code-value strong{font-size:23px;letter-spacing:2px;color:#f0ce79}
.code-skeleton{color:rgba(255,255,255,.62);font-size:11px;font-weight:800}
.referral-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.referral-actions button{padding:11px;border-radius:12px;background:#fff;color:var(--nova-deep);font-size:10px;font-weight:900}
.referral-actions button:last-child{background:var(--nova-green);color:#fff}
.referral-actions button:disabled{opacity:.45}
.referral-retry{margin-top:11px;padding-top:11px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:10px;align-items:center;color:rgba(255,255,255,.68);font-size:9px}
.referral-retry button{background:transparent;color:#f0ce79;font-weight:900;font-size:10px}
.pin-setting-card{background:#fff;border:1px solid var(--nova-border);border-radius:17px;padding:15px;box-shadow:0 7px 20px rgba(7,27,46,.04)}
.pin-setting-row{display:flex;align-items:center;gap:12px}
.pin-setting-row>div{min-width:0;flex:1}.pin-setting-row b,.pin-setting-row small{display:block}.pin-setting-row b{font-size:13px}.pin-setting-row small{margin-top:4px;color:#7c8a9b;font-size:10px;line-height:1.35}
.secondary-action{margin-top:12px;width:100%;padding:10px;border-radius:11px;background:#eef8f4;color:#13885a;font-size:10px;font-weight:900}
.pin-form{display:grid;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #edf1f3}.pin-form input{width:100%;border:1px solid #dfe7ed;border-radius:12px;background:#fbfcfd;color:var(--nova-deep);outline:0;padding:12px;font-size:13px;letter-spacing:4px;text-align:center}
.terms-card{display:grid;gap:10px}.terms-card>div{background:#fff;border:1px solid var(--nova-border);border-radius:18px;padding:16px;box-shadow:0 7px 20px rgba(7,27,46,.04)}.terms-card small{color:var(--nova-green);font-size:9px;font-weight:900;letter-spacing:1px}.terms-card h3{margin:5px 0 6px;color:var(--nova-deep);font-size:15px}.terms-card p{margin:0;color:#718094;font-size:11px;line-height:1.6}
.admin-app .admin-hero{background:linear-gradient(145deg,#071b2e,#0b3d43)}
@media(max-width:600px){.referral-code-value strong{font-size:20px}.referral-actions{grid-template-columns:1fr}.pin-setting-row{align-items:flex-start}.terms-card p{font-size:10.5px}}

/* ===== DSAS NOVA remembered-account login + stable referral ===== */
.remembered-account{
  display:flex;
  align-items:center;
  gap:10px;
  margin:4px 0 13px;
  padding:12px;
  background:#f3f8f7;
  border:1px solid #dcece6;
  border-radius:14px;
  min-height:62px;
}
.remembered-account-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:#dff5ec;
  color:var(--nova-green);
  font-weight:900;
}
.remembered-account-main{min-width:0;flex:1}
.remembered-account-main small,
.remembered-account-main b,
.remembered-account-main span{display:block}
.remembered-account-main small{font-size:8px;letter-spacing:1.2px;color:#7d8b98;font-weight:900}
.remembered-account-main b{font-size:12px;color:var(--nova-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.remembered-account-main span{font-size:9px;color:#81909d;margin-top:2px}
.remembered-account>button{
  flex:0 0 auto;
  padding:7px 9px;
  border-radius:9px;
  background:#fff;
  border:1px solid #d9e6e2;
  color:var(--nova-deep);
  font-size:9px;
  font-weight:900;
}
.new-account-email{margin-bottom:12px}
.code-refreshing{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.5);
  font-size:8px;
  font-weight:800;
  letter-spacing:.5px;
}
