/* SophiAwoof VTU UI 2026 — presentation layer only.
   Existing PHP, forms, endpoints, wallet logic, transaction logic and provider logic stay untouched. */

:root{
  --ui-green:#087a49;
  --ui-green-2:#10ad68;
  --ui-green-3:#075533;
  --ui-gold:#f8c532;
  --ui-gold-2:#ffe783;
  --ui-bg:#f5f8f6;
  --ui-surface:#ffffff;
  --ui-surface-2:#f8fbf9;
  --ui-text:#102319;
  --ui-muted:#74847c;
  --ui-line:#dfe9e4;
  --ui-line-2:#cfe0d7;
  --ui-danger:#c2363f;
  --ui-shadow:0 14px 40px rgba(12,66,45,.08);
  --ui-shadow-lg:0 24px 70px rgba(4,68,42,.14);
  --ui-radius:24px;
  --ui-radius-sm:16px;
}

:root[data-theme="dark"]{
  --ui-bg:#07110c;
  --ui-surface:#101b15;
  --ui-surface-2:#0c1711;
  --ui-text:#f1f8f4;
  --ui-muted:#9aaca2;
  --ui-line:#23352b;
  --ui-line-2:#2f4739;
  --ui-shadow:0 16px 42px rgba(0,0,0,.32);
  --ui-shadow-lg:0 24px 70px rgba(0,0,0,.45);
}

html{scroll-behavior:smooth;color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}

body{
  min-height:100vh;
  margin:0;
  color:var(--ui-text);
  background:
    radial-gradient(circle at 88% 4%,rgba(248,197,50,.24),transparent 24rem),
    radial-gradient(circle at -8% 82%,rgba(16,173,104,.18),transparent 25rem),
    linear-gradient(180deg,#f7fbf8 0%,#eef5f1 100%);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  transition:background-color .25s ease,color .2s ease;
  -webkit-tap-highlight-color:transparent;
}

html[data-theme="dark"] body{
  background:
    radial-gradient(circle at 88% 4%,rgba(248,197,50,.09),transparent 24rem),
    radial-gradient(circle at -8% 82%,rgba(16,173,104,.09),transparent 25rem),
    linear-gradient(180deg,#07110c 0%,#0b1510 100%);
}

body::before,body::after{content:"";position:fixed;pointer-events:none;z-index:0;border-radius:999px;filter:blur(1px)}
body::before{width:280px;height:280px;right:-110px;top:90px;border:1px solid rgba(8,122,73,.09)}
body::after{width:220px;height:220px;left:-100px;bottom:100px;border:1px solid rgba(248,197,50,.10)}
body > *{position:relative;z-index:1}

a,button,input,select,textarea{font:inherit}
a{text-decoration:none}
button{touch-action:manipulation}

/* ---------- shared app shell ---------- */
body.app-ui{overflow-x:hidden;padding-bottom:100px}
body.app-ui .app{display:block;min-height:100vh;width:100%}
body.app-ui .side,body.app-ui .mob-overlay,body.app-ui .hamb{display:none!important}
body.app-ui .main,body.app-ui .app-main{width:100%!important;margin-left:0!important;min-height:100vh;background:transparent}
body.app-ui .top,body.app-ui .app-top{
  min-height:78px;height:auto;
  display:flex;align-items:center;gap:14px;
  padding:12px clamp(16px,3vw,42px);
  position:sticky;top:0;z-index:120;
  background:rgba(255,255,255,.86);
  border-bottom:1px solid rgba(223,233,228,.9);
  box-shadow:0 10px 28px rgba(7,57,39,.06);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
html[data-theme="dark"] body.app-ui .top,html[data-theme="dark"] body.app-ui .app-top{
  background:rgba(10,20,14,.88);border-color:rgba(47,71,57,.78);box-shadow:0 12px 30px rgba(0,0,0,.22)
}
body.app-ui .app-title{flex:1;min-width:0}
body.app-ui .top h2,body.app-ui .app-title h2{margin:0;font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:950;letter-spacing:-.025em;color:var(--ui-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.app-ui .app-title small{display:block;margin-top:4px;color:var(--ui-muted);font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.065em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.app-ui .date{color:var(--ui-muted);font-weight:850;font-size:.74rem;white-space:nowrap}
body.app-ui .content,body.app-ui .app-content{width:min(1120px,100%);margin:0 auto;padding:28px 24px 118px}

/* ---------- dashboard app shell ---------- */
body.dashboard-ui{overflow-x:hidden;padding-bottom:104px}
body.dashboard-ui .app{display:block;min-height:100vh}
body.dashboard-ui .side{display:none!important}
body.dashboard-ui .main{margin:0!important;width:100%!important;min-height:100vh}
body.dashboard-ui .top{
  min-height:78px;height:auto;padding:12px clamp(18px,3.2vw,44px);
  display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:120;
  background:rgba(255,255,255,.90);border-bottom:1px solid var(--ui-line);
  box-shadow:0 10px 28px rgba(7,57,39,.06);backdrop-filter:blur(18px)
}
html[data-theme="dark"] body.dashboard-ui .top{background:rgba(10,20,14,.9);border-color:var(--ui-line);box-shadow:0 12px 30px rgba(0,0,0,.22)}
body.dashboard-ui .top .brand-dot{width:50px;height:50px;border-radius:17px;background:linear-gradient(145deg,#ffd95a,#f8c532);box-shadow:0 10px 24px rgba(248,197,50,.24);flex:0 0 auto}
body.dashboard-ui .top h2{flex:1;margin:0;font-size:1.24rem;font-weight:950;color:var(--ui-text);letter-spacing:-.03em}
body.dashboard-ui .top h2 small{display:block;margin-top:4px;font-size:.68rem;font-weight:800;letter-spacing:.055em;color:var(--ui-muted)}
body.dashboard-ui .top-date{font-size:.75rem;color:var(--ui-muted);font-weight:850;white-space:nowrap}
body.dashboard-ui .content{width:min(1120px,100%);margin:0 auto;padding:28px 24px 118px}

/* ---------- loaders ---------- */
#loader{
  position:fixed!important;inset:0!important;z-index:2147483000!important;
  display:none!important;place-items:center!important;
  background:
    radial-gradient(circle at 50% 40%,rgba(248,197,50,.14),transparent 11rem),
    linear-gradient(145deg,rgba(4,67,43,.98),rgba(7,124,76,.98));
  opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease;
  color:#fff;pointer-events:none;
}
#loader.show{
  /* Safety fix: never let the full-screen overlay block dashboard/vendor pages.
     Existing mini-loader feedback remains available without covering the page. */
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#loader .spin{
  position:relative;width:76px!important;height:76px!important;border:0!important;border-radius:24px!important;
  display:grid!important;place-items:center!important;
  background:#0f6f45 url("awoof-icon-512.png") center/48px 48px no-repeat;
  box-shadow:0 20px 45px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.18) inset;
  animation:awoofLoaderPulse 1.35s ease-in-out infinite;
}
#loader .spin::after{
  content:"";position:absolute;inset:-7px;border-radius:30px;border:2px solid rgba(255,255,255,.26);border-top-color:#f8c532;animation:awoofLoaderSpin .8s linear infinite;
}
#loader p{margin:18px 0 0;color:rgba(255,255,255,.84);font-weight:850;font-size:.8rem;letter-spacing:.03em;text-align:center}
@keyframes awoofLoaderPulse{0%,100%{transform:scale(.96);box-shadow:0 18px 38px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.15) inset}50%{transform:scale(1);box-shadow:0 24px 55px rgba(0,0,0,.32),0 0 0 8px rgba(248,197,50,.06)}}
@keyframes awoofLoaderSpin{to{transform:rotate(360deg)}}
.mini-loader{
  position:fixed!important;left:50%;bottom:92px;transform:translate(-50%,18px);z-index:2147482000;
  background:rgba(7,45,29,.96);color:#fff;border:1px solid rgba(255,255,255,.12);
  min-height:44px;padding:11px 17px;border-radius:999px;display:flex;align-items:center;gap:9px;
  font-size:.77rem;font-weight:850;box-shadow:0 16px 35px rgba(0,0,0,.24);opacity:0;pointer-events:none;transition:.24s ease;
}
.mini-loader::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ui-gold);box-shadow:0 0 0 5px rgba(248,197,50,.12);animation:miniPulse 1s ease-in-out infinite}
.mini-loader.show{opacity:1;transform:translate(-50%,0)}
@keyframes miniPulse{50%{transform:scale(.6);opacity:.65}}

/* ---------- animation / interaction ---------- */
body.app-ui .app-content > *,body.dashboard-ui .content > *{animation:awoofRise .5s cubic-bezier(.22,1,.36,1) both}
body.app-ui .app-content > *:nth-child(2),body.dashboard-ui .content > *:nth-child(2){animation-delay:.035s}
body.app-ui .app-content > *:nth-child(3),body.dashboard-ui .content > *:nth-child(3){animation-delay:.07s}
body.app-ui .app-content > *:nth-child(4),body.dashboard-ui .content > *:nth-child(4){animation-delay:.105s}
@keyframes awoofRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tap-bounce{animation:awoofTap .22s ease!important}
@keyframes awoofTap{0%{transform:scale(1)}48%{transform:scale(.96)}100%{transform:scale(1)}}

/* ---------- buttons ---------- */
.btn,.button,
body.app-ui .btn,body.app-ui button[type="submit"],
body.dashboard-ui .btn,body.dashboard-ui .hero-btn{
  min-height:48px!important;padding:13px 18px!important;border-radius:16px!important;border:1px solid transparent!important;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(135deg,var(--ui-green),var(--ui-green-2))!important;color:#fff!important;
  font-weight:950!important;box-shadow:0 11px 24px rgba(8,122,73,.18)!important;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background .18s ease!important;
  -webkit-tap-highlight-color:transparent;
}
.btn:hover,.button:hover{transform:translateY(-2px);filter:brightness(1.025);box-shadow:0 15px 30px rgba(8,122,73,.22)!important}
.btn:active,.button:active{transform:scale(.97)!important}
.btn.gold,.hero-btn.gold,.bottom-tab.gold{
  background:linear-gradient(135deg,var(--ui-gold),#ffd95b)!important;color:#16351f!important;box-shadow:0 11px 24px rgba(248,197,50,.22)!important
}
.btn.soft{background:var(--ui-surface-2)!important;color:var(--ui-green)!important;border-color:var(--ui-line)!important;box-shadow:none!important}
.btn.danger{background:linear-gradient(135deg,#bf3844,#dd525a)!important;color:#fff!important}
.btn.ghost,.hero-btn.ghost{background:rgba(255,255,255,.13)!important;color:#fff!important;border-color:rgba(255,255,255,.24)!important;box-shadow:none!important}

/* ---------- cards / forms ---------- */
body.app-ui .card,body.app-ui form.card,
body.app-ui .form,body.dashboard-ui .summary-card,body.dashboard-ui .quick-nav,
body.dashboard-ui .ad-wrap,body.dashboard-ui .service-card{
  background:var(--ui-surface)!important;color:var(--ui-text)!important;border:1px solid var(--ui-line)!important;
  border-radius:var(--ui-radius)!important;box-shadow:var(--ui-shadow)!important;
}
body.app-ui .card,body.app-ui form.card,body.app-ui .form{padding:22px!important}
body.app-ui .card h3,body.dashboard-ui .summary-card h3,body.dashboard-ui .quick-nav h3{color:var(--ui-text)!important;font-weight:950!important;letter-spacing:-.02em}
body.app-ui .card p,body.app-ui .form p{color:var(--ui-muted);line-height:1.55}
body.dashboard-ui .summary-card,body.dashboard-ui .quick-nav{padding:21px!important}

body.app-ui input,body.app-ui select,body.app-ui textarea,
body.dashboard-ui .input,body.dashboard-ui input,body.dashboard-ui select,body.dashboard-ui textarea,
.input,.control{
  width:100%;min-height:50px;padding:13px 15px;border:1px solid var(--ui-line)!important;
  border-radius:16px!important;background:var(--ui-surface-2)!important;color:var(--ui-text)!important;outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);transition:border-color .18s,box-shadow .18s,background .18s;
}
body.app-ui input:focus,body.app-ui select:focus,body.app-ui textarea:focus,
body.dashboard-ui .input:focus,body.dashboard-ui input:focus,body.dashboard-ui select:focus,body.dashboard-ui textarea:focus,
.input:focus,.control:focus{border-color:#5dc994!important;box-shadow:0 0 0 4px rgba(16,173,104,.10)!important;background:var(--ui-surface)!important}
input::placeholder,textarea::placeholder{color:#9aa9a2}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#70847a}

body.app-ui label,body.dashboard-ui label{color:var(--ui-muted)}
body.app-ui .form label{text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:900}

/* ---------- service / plan choices ---------- */
body.app-ui .service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:8px}
body.app-ui .service,body.app-ui .plan,body.app-ui .data-plan-card{
  position:relative;min-height:112px;padding:18px 14px!important;border-radius:20px!important;
  background:var(--ui-surface)!important;color:var(--ui-text)!important;border:1px solid var(--ui-line)!important;
  box-shadow:0 10px 24px rgba(7,67,43,.06)!important;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease!important;
}
body.app-ui .service:hover,body.app-ui .plan:hover,body.app-ui .data-plan-card:hover{transform:translateY(-3px);border-color:#7bd7aa!important;box-shadow:0 16px 34px rgba(7,67,43,.12)!important}
body.app-ui .service:has(input:checked),body.app-ui .plan:has(input:checked),body.app-ui .data-plan-card:has(input:checked){border-color:var(--ui-green-2)!important;box-shadow:0 0 0 3px rgba(16,173,104,.12),0 16px 34px rgba(7,67,43,.12)!important;background:linear-gradient(180deg,var(--ui-surface),rgba(226,251,238,.55))!important}
html[data-theme="dark"] body.app-ui .service:has(input:checked),html[data-theme="dark"] body.app-ui .plan:has(input:checked),html[data-theme="dark"] body.app-ui .data-plan-card:has(input:checked){background:#10261a!important;box-shadow:0 0 0 3px rgba(16,173,104,.17),0 18px 38px rgba(0,0,0,.25)!important}
body.app-ui .service input[type="radio"],body.app-ui .plan input[type="radio"]{accent-color:var(--ui-green-2)}

.network-logo{display:inline-grid!important;place-items:center!important;width:48px!important;height:48px!important;border-radius:15px!important;font-size:.67rem!important;font-weight:950!important;margin:0 auto 9px!important;box-shadow:0 9px 20px rgba(0,0,0,.08)!important}
.net-mtn{background:#ffe11a!important;color:#064c31!important}.net-glo{background:#078b43!important;color:#fff!important}.net-9mobile{background:#0a65a9!important;color:#fff!important}.net-airtel{background:#e93643!important;color:#fff!important}
.badge,.pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px!important;background:#ebf8f1!important;color:#087449!important;border:1px solid #d0eadc!important;padding:6px 10px!important;font-size:.68rem!important;font-weight:900!important}
html[data-theme="dark"] .badge,html[data-theme="dark"] .pill{background:#10271b!important;color:#a4f3c2!important;border-color:#284f3a!important}

/* ---------- hero ---------- */
body.app-ui .hero{
  position:relative;overflow:hidden;color:#fff!important;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.16) 0 74px,transparent 76px),
    radial-gradient(circle at 70% 100%,rgba(255,255,255,.08) 0 100px,transparent 102px),
    linear-gradient(135deg,#075936 0%,#0a8f57 52%,#11b56c 100%)!important;
  border:0!important;border-radius:28px!important;padding:29px!important;box-shadow:var(--ui-shadow-lg)!important;
}
body.app-ui .hero::after,body.dashboard-ui .hero-card::after{content:"";position:absolute;width:180px;height:180px;right:-66px;top:-68px;border-radius:50%;border:1px solid rgba(255,255,255,.16);pointer-events:none}
body.app-ui .hero .balance{font-size:clamp(2rem,4.4vw,3rem);font-weight:1000;color:#fff!important;letter-spacing:-.04em;margin:12px 0 18px}
body.app-ui .hero small{color:rgba(255,255,255,.76)!important;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
body.app-ui .hero p{color:rgba(255,255,255,.78)!important}

body.dashboard-ui .hero-card{
  position:relative;overflow:hidden;color:#fff!important;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.18) 0 74px,transparent 76px),
    radial-gradient(circle at 70% 96%,rgba(255,255,255,.09) 0 102px,transparent 104px),
    linear-gradient(135deg,#075936 0%,#089456 54%,#10b568 100%)!important;
  border:0!important;border-radius:30px!important;padding:32px!important;min-height:228px;margin-bottom:26px;
  box-shadow:0 25px 55px rgba(6,109,66,.20)!important;
}
body.dashboard-ui .hero-label{font-size:.75rem;letter-spacing:.14em;font-weight:950;text-transform:uppercase;color:rgba(255,255,255,.76)}
body.dashboard-ui .hero-balance{font-size:clamp(2.35rem,5.1vw,3.35rem);font-weight:1000;color:#fff;letter-spacing:-.045em;margin:13px 0 24px}
body.dashboard-ui .hero-actions{display:flex;flex-wrap:wrap;gap:11px}
body.dashboard-ui .hero-btn{min-width:150px}

/* ---------- dashboard services ---------- */
body.dashboard-ui .section-title{margin:4px 0 14px;font-size:1.08rem;color:var(--ui-text);font-weight:950;letter-spacing:-.02em}
body.dashboard-ui .service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:25px}
body.dashboard-ui .service-card{min-height:168px;padding:22px 15px!important;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ui-text)!important;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;background:rgba(255,255,255,.94)!important}
html[data-theme="dark"] body.dashboard-ui .service-card{background:var(--ui-surface)!important}
body.dashboard-ui .service-card:hover{transform:translateY(-4px);border-color:#88d7af!important;box-shadow:0 20px 40px rgba(6,66,42,.12)!important}
body.dashboard-ui .service-icon{width:65px;height:65px;border-radius:20px;display:grid;place-items:center;margin-bottom:13px;box-shadow:0 13px 28px rgba(0,0,0,.08),inset 0 -8px 18px rgba(255,255,255,.55)}
body.dashboard-ui .service-icon.green{background:linear-gradient(135deg,#e8fff2,#cbf6df)}
body.dashboard-ui .service-icon.gold{background:linear-gradient(135deg,#fff9db,#ffed9f)}
body.dashboard-ui .service-icon.blue{background:linear-gradient(135deg,#eef7ff,#dcecff)}
body.dashboard-ui .service-icon.purple{background:linear-gradient(135deg,#f4f0ff,#ebe3ff)}
body.dashboard-ui .service-name{font-size:.98rem;font-weight:950;margin-bottom:6px;color:var(--ui-text)}
body.dashboard-ui .service-sub{font-size:.75rem;color:var(--ui-muted);line-height:1.3}

/* ---------- dashboard promotions / summaries ---------- */
body.dashboard-ui .ad-wrap{overflow:hidden;padding:14px!important;margin-bottom:21px}
body.dashboard-ui .ad-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 3px 11px}
body.dashboard-ui .ad-head b{font-size:.93rem;color:var(--ui-text);font-weight:950}
body.dashboard-ui .ad-head small{font-size:.69rem;color:var(--ui-muted);font-weight:800}
body.dashboard-ui .ad-track{display:flex;gap:12px;width:max-content;animation:awoofAds 20s linear infinite}
body.dashboard-ui .ad-wrap:hover .ad-track{animation-play-state:paused}
body.dashboard-ui .ad-slide{width:265px;min-height:88px;border-radius:18px!important;padding:14px 16px!important;display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
body.dashboard-ui .ad-slide b{display:block;color:#23372d;font-size:.84rem;font-weight:950}
body.dashboard-ui .ad-slide span{display:block;color:#64736c;font-size:.7rem;margin-top:4px;line-height:1.35}
@keyframes awoofAds{0%{transform:translateX(0)}100%{transform:translateX(-555px)}}
html[data-theme="dark"] body.dashboard-ui .ad-slide b{color:#1c3227}
html[data-theme="dark"] body.dashboard-ui .ad-slide span{color:#56675f}
body.dashboard-ui .bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
body.dashboard-ui .stats{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ui-line);border-radius:18px;overflow:hidden}
body.dashboard-ui .stat{padding:17px 14px;text-align:center;background:var(--ui-surface-2)}
body.dashboard-ui .stat:first-child{border-right:1px solid var(--ui-line)}
body.dashboard-ui .stat small{display:block;color:var(--ui-muted);font-size:.67rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}
body.dashboard-ui .stat b{font-size:1.3rem;color:var(--ui-green);font-weight:1000;overflow-wrap:anywhere}
html[data-theme="dark"] body.dashboard-ui .stat b{color:#8eefb5}
body.dashboard-ui .quick-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
body.dashboard-ui .quick-link{display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;padding:12px;background:#edf9f2;border:1px solid #d8ece0;border-radius:15px;color:#0a7748;font-size:.8rem;font-weight:900;transition:.18s}
body.dashboard-ui .quick-link:hover{background:var(--ui-green);border-color:var(--ui-green);color:#fff}
html[data-theme="dark"] body.dashboard-ui .quick-link{background:#12251a;border-color:#264033;color:#a7f3c3}

/* ---------- notices ---------- */
.notice,.notice-pop{
  position:relative;background:linear-gradient(135deg,#fff9df,#fff3ba)!important;color:#654f0a!important;
  border:1px solid #eed36e!important;border-radius:19px!important;padding:16px 45px 16px 18px!important;
  box-shadow:0 12px 28px rgba(212,160,23,.12)!important;
}
.notice b,.notice-pop b{color:#493805!important;font-weight:950}
.notice button,.notice-pop button{position:absolute;right:11px;top:11px;background:rgba(255,255,255,.78)!important;color:#694d00!important;border:0!important;width:30px;height:30px;border-radius:11px!important;font-weight:950;box-shadow:0 6px 14px rgba(66,55,10,.08)}
html[data-theme="dark"] .notice,html[data-theme="dark"] .notice-pop{background:linear-gradient(135deg,#2b240c,#221d09)!important;border-color:#63521b!important;color:#ffefb0!important}
html[data-theme="dark"] .notice b,html[data-theme="dark"] .notice-pop b{color:#fff2c2!important}

/* ---------- modal / sheets ---------- */
.modal{position:fixed!important;inset:0!important;background:rgba(2,24,15,.58)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;place-items:center!important;padding:18px!important;z-index:3000!important}
.modal > div{
  width:min(520px,100%)!important;max-height:min(88dvh,760px)!important;overflow:auto!important;
  background:var(--ui-surface)!important;color:var(--ui-text)!important;border:1px solid var(--ui-line)!important;
  border-top:5px solid var(--ui-gold)!important;border-radius:27px!important;padding:28px 24px!important;
  box-shadow:0 30px 80px rgba(0,0,0,.26)!important;animation:awoofSheet .25s cubic-bezier(.22,1,.36,1) both!important;
}
@keyframes awoofSheet{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.modal h2{color:var(--ui-text)!important;font-size:1.3rem;font-weight:950;letter-spacing:-.02em}
.modal p{color:var(--ui-muted)!important}
.modal-x{position:absolute;top:13px;right:13px;width:38px;height:38px;border:1px solid var(--ui-line)!important;border-radius:13px!important;background:var(--ui-surface-2)!important;color:var(--ui-text)!important;font-weight:950;cursor:pointer}
.bills-options,.bills-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:12px!important}
.bill-card,.fund-option{display:block!important;min-height:90px;padding:17px!important;border-radius:18px!important;background:#eef9f3!important;border:1px solid #cde8d8!important;color:#173328!important;transition:.18s!important}
.bill-card:hover,.fund-option:hover{transform:translateY(-2px);background:#0a8451!important;border-color:#0a8451!important;color:#fff!important}
.bill-card b,.fund-option b{display:block;font-size:.92rem;margin-bottom:5px;font-weight:950}
.bill-card small,.fund-option small{font-size:.72rem;line-height:1.35;opacity:.76}
html[data-theme="dark"] .bill-card,html[data-theme="dark"] .fund-option{background:#11261a!important;border-color:#274637!important;color:#effbf5!important}
html[data-theme="dark"] .bill-card:hover,html[data-theme="dark"] .fund-option:hover{background:#0b7f4e!important;border-color:#0b7f4e!important}

/* ---------- history / tables ---------- */
.table-wrap{overflow:auto;border:1px solid var(--ui-line)!important;border-radius:20px!important;background:var(--ui-surface)!important;box-shadow:var(--ui-shadow)!important}
.table,.app-ui table{width:100%;border-collapse:separate!important;border-spacing:0!important;background:var(--ui-surface)!important;color:var(--ui-text)!important}
.table th,.app-ui table th{background:#075b39!important;color:#fff!important;padding:13px 12px!important;border:0!important;font-size:.69rem;text-transform:uppercase;letter-spacing:.07em;text-align:left}
.table td,.app-ui table td{padding:13px 12px!important;border:0!important;border-bottom:1px solid var(--ui-line)!important;color:var(--ui-text)!important;font-size:.82rem}
html[data-theme="dark"] .table th,html[data-theme="dark"] .app-ui table th{background:#0c4b30!important}

/* ---------- copy fields / toggles ---------- */
.copybox{display:flex;align-items:center;gap:8px;min-height:52px;padding:6px 7px 6px 13px;border:1px solid var(--ui-line)!important;border-radius:16px!important;background:var(--ui-surface-2)!important}
.copybox input{border:0!important;background:transparent!important;min-height:38px!important;box-shadow:none!important;color:var(--ui-text)!important}
.copybox .btn{min-height:39px!important;padding:8px 13px!important;border-radius:12px!important}
.switch{width:56px;height:32px;border:1px solid var(--ui-line)!important;border-radius:999px!important;background:#dfe9e4!important;position:relative;padding:0!important;cursor:pointer}
.switch i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 3px 9px rgba(0,0,0,.18);transition:left .2s}
.switch.on{background:var(--ui-green-2)!important;border-color:var(--ui-green-2)!important}.switch.on i{left:28px}

/* ---------- bottom app navigation ---------- */
.bottom-nav,.app-bottom-nav{
  position:fixed!important;left:50%!important;bottom:max(12px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;
  width:min(580px,calc(100% - 26px))!important;min-height:72px!important;
  padding:6px!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:6px!important;
  background:rgba(255,255,255,.92)!important;border:1px solid rgba(218,230,224,.96)!important;border-radius:27px!important;
  box-shadow:0 20px 55px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.58) inset!important;
  backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;z-index:2500!important;
}
.bottom-tab{
  min-width:0;min-height:58px!important;border:0!important;border-radius:21px!important;background:transparent!important;
  color:#7b8982!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;
  font-size:.68rem!important;font-weight:950!important;cursor:pointer!important;transition:.18s ease!important;
}
.bottom-tab svg{width:22px!important;height:22px!important;color:inherit!important;stroke:currentColor!important}
.bottom-tab.active{background:#e9f7ef!important;color:#087b4b!important}
.bottom-tab.gold{background:linear-gradient(135deg,var(--ui-gold),#ffd85a)!important;color:#16341f!important;box-shadow:0 10px 22px rgba(248,197,50,.24)!important}
html[data-theme="dark"] .bottom-nav,html[data-theme="dark"] .app-bottom-nav{background:rgba(9,18,13,.94)!important;border-color:#294235!important;box-shadow:0 20px 55px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.04) inset!important}
html[data-theme="dark"] .bottom-tab{color:#eef8f3!important}
html[data-theme="dark"] .bottom-tab.active{background:rgba(16,173,104,.16)!important;color:#a8f3c6!important}
html[data-theme="dark"] .bottom-tab.gold{color:#132c1b!important}

/* ---------- theme switch ---------- */
.theme-switch{
  position:relative!important;flex:0 0 auto!important;width:58px!important;height:34px!important;border:1px solid #d3e1da!important;
  border-radius:999px!important;background:linear-gradient(145deg,#e9f3ed,#dfece5)!important;padding:0!important;cursor:pointer!important;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.06),0 5px 14px rgba(4,68,42,.08)!important;overflow:hidden;
}
.theme-switch .knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#ffe68d);box-shadow:0 4px 12px rgba(0,0,0,.16);transition:left .24s cubic-bezier(.4,0,.2,1),background .24s}
.theme-switch .knob svg{width:15px!important;height:15px!important;stroke:#a56c00!important}
html[data-theme="dark"] .theme-switch{background:linear-gradient(145deg,#13291d,#1a3a28)!important;border-color:#2f503f!important}
html[data-theme="dark"] .theme-switch .knob{left:29px;background:linear-gradient(145deg,#0e6f46,#11aa69)}
html[data-theme="dark"] .theme-switch .knob svg{stroke:#fff3bc!important}
.floating-theme-switch{position:fixed!important;right:16px!important;top:16px!important;z-index:99999!important}

/* ---------- auth pages: same premium visual language ---------- */
body.login-page,body.register-page,body.vendor-login-page,body.vendor-register-page{
  min-height:100dvh!important;overflow-x:hidden!important;color:var(--ui-text)!important;
  background:
    radial-gradient(circle at 15% 10%,rgba(248,197,50,.22),transparent 24rem),
    radial-gradient(circle at 88% 86%,rgba(16,173,104,.22),transparent 27rem),
    linear-gradient(135deg,#06452d 0%,#087d4d 55%,#0da965 100%)!important;
}
html[data-theme="dark"] body.login-page,html[data-theme="dark"] body.register-page,html[data-theme="dark"] body.vendor-login-page,html[data-theme="dark"] body.vendor-register-page{
  background:radial-gradient(circle at 15% 10%,rgba(248,197,50,.08),transparent 24rem),linear-gradient(135deg,#03170e,#063d29 55%,#075b3b)!important
}
body.login-page .login-card,body.register-page .register-card,body.vendor-login-page .vendor-login-card,body.vendor-register-page .vendor-register-card{
  border:1px solid rgba(255,255,255,.50)!important;box-shadow:0 30px 90px rgba(2,43,27,.32)!important;border-radius:30px!important;overflow:hidden
}
body.login-page .login-intro,body.register-page .register-intro,body.vendor-login-page .vendor-login-intro,body.vendor-register-page .vendor-register-intro{
  background:linear-gradient(155deg,#052f20,#075f3b 55%,#0b8f57)!important
}
body.login-page .login-panel,body.register-page .register-panel,body.vendor-login-page .vendor-login-panel,body.vendor-register-page .vendor-register-panel{
  background:var(--ui-surface)!important;color:var(--ui-text)!important
}
html[data-theme="dark"] body.login-page .login-panel,html[data-theme="dark"] body.register-page .register-panel,html[data-theme="dark"] body.vendor-login-page .vendor-login-panel,html[data-theme="dark"] body.vendor-register-page .vendor-register-panel{
  background:#101a14!important
}
body.login-page .panel-title h1,body.register-page .panel-title h1,body.vendor-login-page .panel-title h1,body.vendor-register-page .panel-title h1{color:var(--ui-text)!important}
body.login-page .panel-title p,body.register-page .panel-title p,body.vendor-login-page .panel-title p,body.vendor-register-page .panel-title p{color:var(--ui-muted)!important}
body.login-page .field label,body.register-page .field label,body.vendor-login-page .field label,body.vendor-register-page .field label{color:var(--ui-muted)!important}
body.login-page .field input:not(.pin-digit),body.register-page .field input:not(.pin-digit),body.vendor-login-page .field input:not(.pin-digit),body.vendor-register-page .field input:not(.pin-digit){
  background:var(--ui-surface-2)!important;border-color:var(--ui-line)!important;color:var(--ui-text)!important
}
body.login-page .pin-field,body.register-page .pin-field,body.vendor-login-page .pin-field,body.vendor-register-page .pin-field{
  background:var(--ui-surface-2)!important;border-color:var(--ui-line)!important
}
body.login-page .pin-entry .pin-digit,body.register-page .pin-entry .pin-digit,body.vendor-login-page .pin-entry .pin-digit,body.vendor-register-page .pin-entry .pin-digit{
  background:var(--ui-surface)!important;border-color:var(--ui-line-2)!important;color:var(--ui-text)!important
}
body.login-page .remembered-account{background:#edf9f2!important;border-color:#d0e8d9!important}
html[data-theme="dark"] body.login-page .remembered-account{background:#12261b!important;border-color:#2b4738!important}
html[data-theme="dark"] body.login-page .account-copy b,html[data-theme="dark"] body.login-page .panel-title h1{color:#eff8f3!important}
body.login-page .btn-login,body.register-page .btn-register,body.vendor-login-page .btn-login,body.vendor-register-page .btn-register{
  background:linear-gradient(135deg,var(--ui-green),var(--ui-green-2))!important;color:#fff!important;box-shadow:0 14px 30px rgba(8,122,73,.20)!important;border:0!important;border-radius:16px!important
}
body.login-page .btn-bio{background:linear-gradient(145deg,#ffd85a,#f8c532)!important;color:#16351f!important;border-radius:16px!important;border:1px solid #e0b722!important}
body.login-page .google-btn{background:var(--ui-surface)!important;border-color:var(--ui-line)!important;color:var(--ui-text)!important;border-radius:16px!important}
body.login-page .divider,body.register-page .divider,body.vendor-login-page .divider{color:var(--ui-muted)!important}
body.login-page .divider::before,body.login-page .divider::after,body.register-page .divider::before,body.register-page .divider::after,body.vendor-login-page .divider::before,body.vendor-login-page .divider::after{background:var(--ui-line)!important}
body.login-page .links a,body.register-page .login-link a,body.vendor-login-page .links a,body.vendor-register-page .login-link a{color:var(--ui-green)!important}
html[data-theme="dark"] body.login-page .links,html[data-theme="dark"] body.register-page .login-link{color:var(--ui-muted)!important}

/* Auth loader variants that already exist in the source files. */
#sophiUniversalLoader{border:0!important}

/* ---------- small desktop refinements ---------- */
@media(min-width:901px){
  body.app-ui .content,body.app-ui .app-content{padding-top:30px}
  body.dashboard-ui .content{padding-top:30px}
  body.dashboard-ui .service-card{min-height:172px}
  body.dashboard-ui .bottom-grid{grid-template-columns:1.05fr .95fr}
}

/* ---------- mobile app experience ---------- */
@media(max-width:760px){
  body.app-ui{padding-bottom:104px}
  body.app-ui .top,body.app-ui .app-top{min-height:70px;padding:10px 14px}
  body.app-ui .content,body.app-ui .app-content{padding:18px 14px 110px}
  body.app-ui .app-title small{display:none}
  body.app-ui .date{display:none}
  body.app-ui .card,body.app-ui form.card,body.app-ui .form{padding:18px!important;border-radius:22px!important}
  body.app-ui .hero{padding:24px 20px!important;border-radius:25px!important}
  body.app-ui .hero .balance{font-size:2.15rem!important}
  body.app-ui .grid{grid-template-columns:1fr!important}
  body.app-ui .cards{grid-template-columns:1fr 1fr!important;gap:12px!important}
  body.app-ui .service-grid{grid-template-columns:1fr 1fr!important;gap:12px!important}
  body.app-ui .service{min-height:112px!important;padding:16px 10px!important}
  body.app-ui .network-logo{width:43px!important;height:43px!important;margin-bottom:7px!important}
  body.app-ui .actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  body.app-ui .actions .btn:last-child{grid-column:1/3}
  body.app-ui .bills-options,body.app-ui .bills-grid{grid-template-columns:1fr!important}
  body.app-ui .table-wrap{border-radius:18px!important}

  body.dashboard-ui .top{min-height:68px;padding:9px 14px}
  body.dashboard-ui .top .brand-dot{width:45px;height:45px;border-radius:15px}
  body.dashboard-ui .top h2{font-size:1.05rem}
  body.dashboard-ui .top-date{display:none}
  body.dashboard-ui .content{padding:17px 14px 112px}
  body.dashboard-ui .hero-card{border-radius:26px!important;padding:25px 19px!important;min-height:224px;margin-bottom:22px}
  body.dashboard-ui .hero-balance{font-size:2.15rem;margin:12px 0 21px}
  body.dashboard-ui .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  body.dashboard-ui .hero-btn{min-width:0;width:100%;padding:12px 9px!important;font-size:.79rem!important}
  body.dashboard-ui .hero-actions .hero-btn:last-child{grid-column:1/3}
  body.dashboard-ui .service-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
  body.dashboard-ui .service-card{min-height:148px;padding:18px 10px!important;border-radius:21px!important}
  body.dashboard-ui .service-icon{width:58px;height:58px;border-radius:19px;margin-bottom:10px}
  body.dashboard-ui .service-icon svg{width:31px;height:31px}
  body.dashboard-ui .service-name{font-size:.9rem}
  body.dashboard-ui .service-sub{font-size:.7rem}
  body.dashboard-ui .ad-slide{width:235px;min-height:82px}
  body.dashboard-ui .bottom-grid{grid-template-columns:1fr;gap:12px}
  body.dashboard-ui .summary-card,body.dashboard-ui .quick-nav{border-radius:22px!important}
  body.dashboard-ui .stats{grid-template-columns:1fr 1fr}
  body.dashboard-ui .quick-links{grid-template-columns:1fr 1fr}

  .bottom-nav,.app-bottom-nav{width:calc(100% - 22px)!important;bottom:max(8px,env(safe-area-inset-bottom))!important;border-radius:25px!important;min-height:69px!important}
  .bottom-tab{min-height:56px!important;font-size:.65rem!important}
  .bottom-tab svg{width:21px!important;height:21px!important}
  .theme-switch{width:53px!important;height:32px!important}
  .theme-switch .knob{width:24px;height:24px}
  html[data-theme="dark"] .theme-switch .knob{left:26px}
}

@media(max-width:390px){
  body.app-ui .cards{grid-template-columns:1fr!important}
  body.dashboard-ui .hero-balance{font-size:1.98rem}
  body.dashboard-ui .quick-links{grid-template-columns:1fr 1fr}
  .bottom-tab{font-size:.61rem!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- landing page keeps its established dark VTU identity ---------- */
body.landing-ui{
  color:#0b2518!important;
  background:#06452c!important;
  min-height:100dvh!important;
}
html[data-theme="dark"] body.landing-ui{background:#03170e!important}
body.landing-ui .shell{position:relative;z-index:2}
body.landing-ui .topbar{position:relative;z-index:5}
body.landing-ui .theme-switch{margin-left:10px}
body.landing-ui .card{background:#fff!important;color:#0b2518!important}
html[data-theme="dark"] body.landing-ui .card{background:#101b15!important;color:#f1f8f4!important}
html[data-theme="dark"] body.landing-ui .card p,html[data-theme="dark"] body.landing-ui .step-vibe,html[data-theme="dark"] body.landing-ui .hint{color:#9aaca2!important}
html[data-theme="dark"] body.landing-ui .card h2{color:#f1f8f4!important}
