/* Scoped second-pass visual polish for public pay and admin surfaces. */
:root{
  --premium-night:#101715;
  --premium-night-2:#18231f;
  --premium-night-3:#263127;
  --premium-paper:#f5efe4;
  --premium-paper-2:#fffaf2;
  --premium-card:#fffdf8;
  --premium-ink:#1b211f;
  --premium-muted:#64706b;
  --premium-teal:#0f766e;
  --premium-teal-2:#13a091;
  --premium-gold:#c8872f;
  --premium-gold-2:#f1c06d;
  --premium-line:#e5d7c5;
  --premium-line-dark:rgba(255,255,255,.14);
  --premium-shadow:0 30px 90px rgba(25,22,17,.18);
  --premium-shadow-strong:0 34px 100px rgba(10,16,14,.34);
}

body.pay-portal,
body.pay-auth,
body.admin-auth,
body.admin-console,
body.pay-redirect{
  background:
    radial-gradient(900px 520px at 0% 0%,rgba(15,118,110,.16),transparent 62%),
    radial-gradient(780px 440px at 100% 0%,rgba(200,135,47,.16),transparent 58%),
    linear-gradient(180deg,#f7f1e7 0%,#eee4d7 100%);
  color:var(--premium-ink);
  font-family:var(--font-body,"Sora",sans-serif);
  letter-spacing:0;
}
body.pay-portal::before,
body.pay-auth::before,
body.admin-auth::before,
body.admin-console::before,
body.pay-redirect::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(115deg,rgba(255,255,255,.42),rgba(255,255,255,0) 48%),
    repeating-linear-gradient(125deg,rgba(31,38,34,.035) 0,rgba(31,38,34,.035) 1px,transparent 1px,transparent 18px);
  pointer-events:none;
}
body.pay-portal::after,
body.pay-auth::after,
body.admin-auth::after,
body.admin-console::after,
body.pay-redirect::after{
  content:"";
  position:fixed;
  inset:auto 0 0;
  height:32vh;
  z-index:-1;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,250,242,.72));
  pointer-events:none;
}

/* Shared brand mark */
body.pay-portal .mark,
body.pay-auth .mark,
body.admin-auth .mark,
body.admin-console .mark,
body.pay-redirect .mark{
  border-radius:14px;
  background:
    radial-gradient(circle at 30% 20%,rgba(255,255,255,.22),transparent 28%),
    linear-gradient(135deg,var(--premium-teal),#1d6a57 48%,var(--premium-gold));
  box-shadow:0 18px 34px rgba(15,118,110,.22), inset 0 1px 0 rgba(255,255,255,.24);
}

/* Public pay portal */
body.pay-portal .page{
  max-width:1280px;
  padding:28px 24px 60px;
}
body.pay-portal .hero{
  position:relative;
  overflow:hidden;
  grid-template-columns:minmax(0,.95fr) minmax(390px,.72fr);
  gap:34px;
  min-height:620px;
  padding:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:28px;
  background:
    radial-gradient(900px 480px at 18% 0%,rgba(19,160,145,.2),transparent 58%),
    radial-gradient(680px 420px at 100% 24%,rgba(200,135,47,.18),transparent 60%),
    linear-gradient(135deg,var(--premium-night) 0%,var(--premium-night-2) 58%,#2a231a 100%);
  box-shadow:var(--premium-shadow-strong);
  color:#fffdf8;
}
body.pay-portal .hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,rgba(0,0,0,.75),rgba(0,0,0,.18) 55%,transparent);
  pointer-events:none;
}
body.pay-portal .hero::after{
  content:"";
  position:absolute;
  left:34px;
  bottom:34px;
  width:min(46%,520px);
  height:150px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.1),rgba(255,255,255,0)),
    repeating-linear-gradient(90deg,rgba(241,192,109,.55) 0 10px,transparent 10px 26px),
    linear-gradient(135deg,rgba(15,118,110,.34),rgba(200,135,47,.18));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
  opacity:.75;
  pointer-events:none;
}
body.pay-portal .hero-copy,
body.pay-portal .hero-cards{
  position:relative;
  z-index:1;
}
body.pay-portal .hero-copy{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:12px 0 182px;
}
body.pay-portal .brand{
  margin-bottom:28px;
}
body.pay-portal .brand-text .name{
  color:#fffdf8;
  font-size:1.04rem;
}
body.pay-portal .brand-text .tag{
  color:rgba(255,253,248,.68);
}
body.pay-portal h1{
  max-width:13ch;
  color:#fffdf8;
  font-size:clamp(3rem,5vw,5.25rem);
  line-height:.94;
  text-wrap:balance;
}
body.pay-portal .lead{
  max-width:54ch;
  color:rgba(255,253,248,.72);
  font-size:1.08rem;
}
body.pay-portal .hero-actions{
  margin:26px 0 18px;
}
body.pay-portal .btn{
  border-radius:14px;
  font-weight:800;
}
body.pay-portal .btn.primary{
  background:linear-gradient(135deg,var(--premium-gold),var(--premium-gold-2));
  color:#172015;
  box-shadow:0 18px 36px rgba(200,135,47,.28);
}
body.pay-portal .btn.ghost,
body.pay-portal .btn.outline{
  border-color:rgba(255,255,255,.18);
  background:rgba(255,253,248,.08);
  color:#fffdf8;
  backdrop-filter:blur(14px);
}
body.pay-portal .card .btn.outline,
body.pay-portal .section .btn.outline{
  border-color:var(--premium-line);
  background:#fff;
  color:var(--premium-ink);
}
body.pay-portal .trust{
  gap:8px;
}
body.pay-portal .trust-item{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:rgba(255,253,248,.74);
  backdrop-filter:blur(12px);
}
body.pay-portal .hero-cards{
  gap:14px;
}
body.pay-portal .card{
  border:1px solid rgba(229,215,197,.86);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(255,253,248,.96),rgba(255,250,242,.92));
  box-shadow:0 24px 70px rgba(8,14,12,.2);
  color:var(--premium-ink);
}
body.pay-portal .hero-cards .card{
  backdrop-filter:blur(20px);
}
body.pay-portal .card-head h3,
body.pay-portal .section h3{
  color:var(--premium-ink);
}
body.pay-portal .callout-title,
body.pay-portal .value,
body.pay-portal .steps li{
  color:var(--premium-ink);
}
body.pay-portal .pill{
  border-color:rgba(15,118,110,.22);
  background:rgba(15,118,110,.1);
  color:#0f665f;
}
body.pay-portal .pill.soft{
  border-color:rgba(200,135,47,.3);
  background:rgba(200,135,47,.12);
  color:#8a541c;
}
body.pay-portal .callout{
  border-radius:16px;
  background:#fff;
  border-color:rgba(15,118,110,.18);
  box-shadow:inset 4px 0 0 rgba(15,118,110,.38);
}
body.pay-portal .input,
body.pay-portal input,
body.pay-portal select{
  border-radius:14px;
  border-color:#dccab5;
  background:#fffdf8;
}
body.pay-portal .stats{
  gap:10px;
}
body.pay-portal .stats>div{
  border:1px solid rgba(229,215,197,.72);
  border-radius:16px;
  padding:12px;
  background:rgba(255,255,255,.68);
}
body.pay-portal .stat{
  font-size:1.15rem;
}
body.pay-portal .section{
  margin-top:34px;
}
body.pay-portal .section-head h2{
  color:#1b211f;
  font-size:clamp(1.8rem,2.6vw,2.45rem);
}
body.pay-portal .plan-card{
  border-radius:20px;
  border:1px solid rgba(229,215,197,.86);
  background:
    linear-gradient(180deg,rgba(255,253,248,.98),rgba(255,249,239,.96));
  box-shadow:0 20px 55px rgba(25,22,17,.12);
}
body.pay-portal .buy-btn{
  border-radius:14px;
  background:linear-gradient(135deg,var(--premium-teal),var(--premium-teal-2));
  box-shadow:0 14px 28px rgba(15,118,110,.18);
}
body.pay-portal .highlight{
  background:
    radial-gradient(700px 260px at 0% 0%,rgba(15,118,110,.1),transparent 58%),
    linear-gradient(135deg,rgba(255,253,248,.98),rgba(246,237,222,.92));
}
body.pay-portal .footer{
  border-color:rgba(38,49,39,.12);
}
body.pay-portal .footer-site-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body.pay-portal .footer-site-links a{
  color:#3f4a45;
  text-decoration:none;
  font-size:.9rem;
  font-weight:800;
}
body.pay-portal .footer-site-links a:hover{
  color:var(--premium-teal);
}

/* User account workspace */
body.pay-portal .user-page{
  max-width:none;
  padding:18px;
}
body.pay-portal .user-topbar{
  position:sticky;
  top:12px;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:18px;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:26px;
  background:
    radial-gradient(760px 300px at 12% 0%,rgba(19,160,145,.2),transparent 60%),
    linear-gradient(135deg,var(--premium-night),var(--premium-night-2) 66%,#2b241a);
  box-shadow:0 24px 70px rgba(10,16,14,.24);
}
body.pay-portal .brand-lockup{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
  text-decoration:none;
}
body.pay-portal .user-topbar .mark,
body.pay-portal .brand-lockup .mark{
  width:44px;
  height:44px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  align-items:end;
  gap:3px;
  padding:8px;
}
body.pay-portal .user-topbar .brand-text .name{
  color:#fffdf8;
}
body.pay-portal .user-topbar .brand-text .tag{
  color:rgba(255,253,248,.66);
}
body.pay-portal .nister-global-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:1 1 300px;
  gap:6px;
  min-width:240px;
}
body.pay-portal .nister-global-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  border:1px solid transparent;
  border-radius:999px;
  padding:8px 12px;
  color:rgba(255,253,248,.72);
  font-size:.88rem;
  font-weight:850;
  text-decoration:none;
  white-space:nowrap;
}
body.pay-portal .nister-global-nav a:hover{
  background:rgba(255,255,255,.08);
  color:#fffdf8;
}
body.pay-portal .nister-global-nav a.active{
  border-color:rgba(241,192,109,.3);
  background:linear-gradient(135deg,rgba(15,118,110,.34),rgba(200,135,47,.2));
  color:#fffdf8;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
body.pay-portal .user-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
body.pay-portal .user-topbar .btn{
  min-height:42px;
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#fffdf8;
}
body.pay-portal .user-topbar .btn.primary{
  background:linear-gradient(135deg,var(--premium-gold),var(--premium-gold-2));
  color:#172015;
}
body.pay-portal .user-topbar .btn.active,
body.pay-portal .hero-actions .btn.active{
  border-color:rgba(241,192,109,.36);
  background:linear-gradient(135deg,rgba(15,118,110,.34),rgba(200,135,47,.2));
  color:#fffdf8;
}
body.pay-portal .user-layout{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:18px;
  align-items:start;
}
body.pay-portal .user-side{
  position:sticky;
  top:100px;
  display:grid;
  gap:14px;
  min-width:0;
}
body.pay-portal .side-card{
  border-radius:24px;
  box-shadow:0 24px 70px rgba(10,16,14,.18);
}
body.pay-portal .user-menu-card{
  padding:14px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,rgba(16,23,21,.98),rgba(24,35,31,.96));
}
body.pay-portal .menu-title{
  margin:0 0 8px;
  color:rgba(255,253,248,.62);
  font-weight:800;
}
body.pay-portal .user-menu{
  display:grid;
  gap:6px;
  max-width:100%;
  min-width:0;
}
body.pay-portal .user-menu .btn{
  width:100%;
  justify-content:flex-start;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:rgba(255,253,248,.74);
  font-weight:800;
  text-align:left;
}
body.pay-portal .user-menu .btn:hover{
  background:rgba(255,255,255,.08);
  transform:none;
}
body.pay-portal .user-menu .btn.active{
  border-color:rgba(241,192,109,.26);
  background:linear-gradient(135deg,rgba(15,118,110,.34),rgba(200,135,47,.18));
  color:#fffdf8;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
body.pay-portal .user-pocket{
  padding:16px;
  border:1px solid rgba(229,215,197,.9);
  background:rgba(255,253,248,.94);
}
body.pay-portal .side-label{
  margin-top:14px;
  color:var(--premium-muted);
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
}
body.pay-portal .side-value{
  margin-top:4px;
  color:var(--premium-ink);
  font-weight:800;
}
body.pay-portal .user-content{
  min-width:0;
}
body.pay-portal .portal-panel[hidden]{
  display:none !important;
}
body.pay-portal .portal-panel.is-active{
  animation:fadeUp .35s ease both;
}
body.pay-portal .user-section,
body.pay-portal .user-overview{
  scroll-margin-top:112px;
}
body.pay-portal .hero.user-overview{
  min-height:auto;
  grid-template-columns:minmax(0,.68fr) minmax(340px,.42fr);
  align-items:stretch;
  margin:0;
  padding:24px;
  border-radius:26px;
}
body.pay-portal .hero.user-overview::after{
  display:none;
}
body.pay-portal .hero.user-overview .hero-copy{
  padding:0;
  justify-content:center;
}
body.pay-portal .hero.user-overview h1{
  max-width:12ch;
  font-size:clamp(2.35rem,3.7vw,4rem);
  line-height:.96;
}
body.pay-portal .hero.user-overview .lead{
  max-width:48ch;
}
body.pay-portal .hero.user-overview .hero-cards{
  justify-content:center;
}
body.pay-portal .hero.user-overview .card{
  box-shadow:0 24px 70px rgba(8,14,12,.24);
}
body.pay-portal .user-section{
  margin-top:18px;
}
body.pay-portal .user-section>.card,
body.pay-portal .user-section .card{
  box-shadow:0 22px 60px rgba(25,22,17,.12);
}
body.pay-portal #plans_section,
body.pay-portal #rewards_section{
  padding:22px;
  border:1px solid rgba(229,215,197,.88);
  border-radius:24px;
  background:rgba(255,253,248,.62);
  box-shadow:0 18px 50px rgba(25,22,17,.08);
}
body.pay-portal #rewards_section .card{
  box-shadow:none;
}
body.pay-portal .plans-grid{
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:18px;
}
body.pay-portal .plan-card.premium-plan{
  position:relative;
  overflow:hidden;
  min-height:360px;
  padding:0;
  display:grid;
  grid-template-rows:auto 1fr auto;
  border:1px solid rgba(229,215,197,.92);
  border-radius:26px;
  background:
    radial-gradient(520px 220px at 0% 0%,rgba(15,118,110,.1),transparent 60%),
    linear-gradient(180deg,#fffdf8,#fff7ec);
  box-shadow:0 28px 80px rgba(25,22,17,.14);
}
body.pay-portal .plan-card.premium-plan::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:7px;
  background:linear-gradient(90deg,var(--premium-teal),var(--premium-gold));
}
body.pay-portal .plan-card.premium-plan.featured{
  border-color:rgba(255,255,255,.16);
  background:
    radial-gradient(520px 240px at 0% 0%,rgba(19,160,145,.22),transparent 60%),
    radial-gradient(520px 260px at 100% 100%,rgba(200,135,47,.2),transparent 64%),
    linear-gradient(145deg,var(--premium-night),var(--premium-night-2) 62%,#2b241a);
  color:#fffdf8;
  box-shadow:0 34px 95px rgba(10,16,14,.3);
}
body.pay-portal .plan-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:20px 20px 0;
}
body.pay-portal .plan-badge,
body.pay-portal .plan-code{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  border-radius:999px;
  padding:6px 10px;
  font-size:.76rem;
  font-weight:900;
  line-height:1;
}
body.pay-portal .plan-badge{
  border:1px solid rgba(15,118,110,.22);
  background:rgba(15,118,110,.1);
  color:#0f665f;
}
body.pay-portal .plan-code{
  border:1px solid rgba(200,135,47,.24);
  background:rgba(200,135,47,.1);
  color:#8a541c;
}
body.pay-portal .premium-plan.featured .plan-badge,
body.pay-portal .premium-plan.featured .plan-code{
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#fffdf8;
}
body.pay-portal .plan-body{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:24px 20px 18px;
}
body.pay-portal .premium-plan .plan-title{
  color:var(--premium-muted);
  font-size:.92rem;
  font-weight:900;
  text-transform:uppercase;
}
body.pay-portal .premium-plan.featured .plan-title{
  color:rgba(255,253,248,.66);
}
body.pay-portal .plan-allowance{
  font-family:var(--font-display,"Fraunces",serif);
  font-size:clamp(2.35rem,4.2vw,4.25rem);
  line-height:.9;
  color:var(--premium-ink);
}
body.pay-portal .premium-plan.featured .plan-allowance{
  color:#fffdf8;
}
body.pay-portal .plan-price{
  color:#18231f;
  font-size:1.55rem;
  font-weight:900;
}
body.pay-portal .premium-plan.featured .plan-price{
  color:var(--premium-gold-2);
}
body.pay-portal .plan-details{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:8px;
  margin-top:4px;
}
body.pay-portal .plan-detail{
  min-height:46px;
  display:flex;
  align-items:center;
  border:1px solid rgba(229,215,197,.76);
  border-radius:14px;
  padding:8px 10px;
  background:rgba(255,255,255,.64);
  color:#4f5d56;
  font-size:.88rem;
  font-weight:800;
}
body.pay-portal .premium-plan.featured .plan-detail{
  border-color:rgba(255,255,255,.13);
  background:rgba(255,255,255,.08);
  color:rgba(255,253,248,.78);
}
body.pay-portal .plan-foot{
  padding:0 20px 20px;
}
body.pay-portal .premium-plan .buy-btn{
  width:100%;
  min-height:52px;
  border-radius:16px;
  font-size:.98rem;
}
body.pay-portal .premium-plan.featured .buy-btn{
  background:linear-gradient(135deg,var(--premium-gold),var(--premium-gold-2));
  color:#172015;
  box-shadow:0 18px 36px rgba(200,135,47,.25);
}

/* Premium auth shells */
body.pay-auth,
body.admin-auth,
body.pay-redirect{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
}
.auth-shell,
body.pay-redirect .redirect-shell{
  width:min(1040px,100%);
  min-height:560px;
  display:grid;
  grid-template-columns:minmax(320px,1fr) minmax(360px,430px);
  overflow:hidden;
  border:1px solid rgba(229,215,197,.92);
  border-radius:30px;
  background:var(--premium-card);
  box-shadow:var(--premium-shadow);
}
.auth-brand{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:34px;
  color:#fffdf8;
  background:
    radial-gradient(620px 360px at 18% 0%,rgba(19,160,145,.26),transparent 58%),
    radial-gradient(520px 320px at 100% 100%,rgba(200,135,47,.2),transparent 62%),
    linear-gradient(135deg,var(--premium-night),var(--premium-night-2) 58%,#2b241a);
}
.auth-brand::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(135deg,rgba(0,0,0,.72),rgba(0,0,0,.2) 70%);
  pointer-events:none;
}
.auth-brand>*{
  position:relative;
  z-index:1;
}
.auth-brand-top{
  display:grid;
  gap:14px;
}
.auth-brand-link{
  color:inherit;
  text-decoration:none;
}
.auth-brand .brand-row{
  margin:0;
}
.auth-brand .brand-name{
  color:#fffdf8;
}
.auth-brand .brand-tag{
  color:rgba(255,253,248,.68);
}
.nister-auth-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.nister-auth-nav a{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:7px 10px;
  color:rgba(255,253,248,.78);
  font-size:.82rem;
  font-weight:850;
  text-decoration:none;
  white-space:nowrap;
}
.nister-auth-nav a:hover{
  background:rgba(255,255,255,.08);
  color:#fffdf8;
}
.nister-auth-nav a.active{
  border-color:rgba(241,192,109,.3);
  background:rgba(255,255,255,.1);
  color:#fffdf8;
}
.auth-brand h2{
  margin:34px 0 12px;
  max-width:10ch;
  font-family:var(--font-display,"Fraunces",serif);
  font-size:clamp(2.35rem,4vw,4rem);
  line-height:.94;
  color:#fffdf8;
}
.auth-brand p{
  max-width:46ch;
  margin:0;
  color:rgba(255,253,248,.72);
  line-height:1.65;
}
.auth-meta{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:28px;
}
.auth-meta span{
  min-height:76px;
  display:flex;
  align-items:flex-end;
  padding:12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:rgba(255,255,255,.08);
  color:rgba(255,253,248,.82);
  font-size:.84rem;
  font-weight:700;
  backdrop-filter:blur(12px);
}
body.pay-auth .card,
body.admin-auth .card{
  width:auto;
  max-width:none;
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:36px;
  border:0;
  border-radius:0;
  background:linear-gradient(180deg,#fffdf8,#fff8ee);
  box-shadow:none;
}
body.pay-auth .card>.brand-row,
body.admin-auth .card>.brand-row{
  display:none;
}
body.pay-auth h1,
body.admin-auth h1{
  font-size:2.15rem;
  color:var(--premium-ink);
}
body.pay-auth .muted,
body.admin-auth .muted{
  color:var(--premium-muted);
  line-height:1.55;
}
body.pay-auth .label,
body.admin-auth label{
  color:#3f4a45;
  font-weight:800;
}
body.pay-auth input,
body.admin-auth input[type=text],
body.admin-auth input[type=password]{
  min-height:48px;
  border-radius:14px;
  border-color:#d9c7b1;
  background:#fffefb;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
body.pay-auth input:focus,
body.admin-auth input:focus{
  outline:4px solid rgba(15,118,110,.16);
  border-color:var(--premium-teal);
}
body.pay-auth .btn,
body.admin-auth .btn{
  min-height:50px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--premium-teal),var(--premium-teal-2));
  box-shadow:0 18px 36px rgba(15,118,110,.22);
}
body.admin-auth .btn{
  background:linear-gradient(135deg,var(--premium-night-3),var(--premium-teal));
}
body.pay-auth .links a{
  color:var(--premium-teal);
}
.msg.err,
body.admin-auth .err{
  border:1px solid #f0c4bd;
  border-radius:14px;
  padding:10px 12px;
  background:#fff0eb;
  color:#8a271a;
}
.msg.ok,
body.admin-auth .ok{
  border:1px solid #b9dfce;
  border-radius:14px;
  padding:10px 12px;
  background:#eefaf4;
  color:#14532d;
}

/* Admin console */
body.admin-console{
  min-height:100vh;
  background:
    radial-gradient(900px 520px at 0% 0%,rgba(15,118,110,.12),transparent 62%),
    linear-gradient(180deg,#f8f2e9,#eee4d7);
}
body.admin-console .wrap{
  max-width:none;
  padding:18px;
}
body.admin-console .topbar{
  position:sticky;
  top:12px;
  z-index:20;
  align-items:center;
  margin-bottom:18px;
  padding:18px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:26px;
  background:
    radial-gradient(760px 300px at 12% 0%,rgba(19,160,145,.2),transparent 60%),
    linear-gradient(135deg,var(--premium-night),var(--premium-night-2) 66%,#2b241a);
  box-shadow:0 24px 70px rgba(10,16,14,.24);
}
body.admin-console .brand-lockup{
  display:flex;
  align-items:center;
  gap:14px;
}
body.admin-console .topbar .mark{
  width:44px;
  height:44px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  align-items:end;
  gap:3px;
  padding:8px;
}
body.admin-console .topbar .mark::before,
body.admin-console .topbar .mark::after,
body.admin-console .topbar .mark span{
  content:"";
  display:block;
  width:100%;
  border-radius:3px;
  background:#fffdfa;
}
body.admin-console .topbar .mark::before{height:8px}
body.admin-console .topbar .mark span{height:14px}
body.admin-console .topbar .mark::after{height:20px}
body.admin-console .brand{
  font-size:1.75rem;
  line-height:1;
}
body.admin-console .topbar .muted,
body.admin-console .topbar label{
  color:rgba(255,253,248,.68);
}
body.admin-console .actions{
  align-items:flex-end;
}
body.admin-console .site-switch select{
  min-height:42px;
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#fffdf8;
}
body.admin-console .site-switch option{
  color:var(--premium-ink);
}
body.admin-console .topbar .btn{
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#fffdf8;
}
body.admin-console .layout{
  grid-template-columns:260px minmax(0,1fr);
  gap:18px;
}
body.admin-console .side{
  top:100px;
}
body.admin-console .side-card{
  padding:14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  background:
    linear-gradient(180deg,rgba(16,23,21,.98),rgba(24,35,31,.96));
  box-shadow:0 24px 70px rgba(10,16,14,.2);
}
body.admin-console .side-card .muted{
  color:rgba(255,253,248,.62);
}
body.admin-console .menu .btn{
  margin-bottom:6px;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:rgba(255,253,248,.74);
  font-weight:800;
}
body.admin-console .menu .btn:hover{
  background:rgba(255,255,255,.08);
  transform:none;
}
body.admin-console .menu .btn.active{
  border-color:rgba(241,192,109,.26);
  background:
    linear-gradient(135deg,rgba(15,118,110,.34),rgba(200,135,47,.18));
  color:#fffdf8;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
body.admin-console .content>.card,
body.legacy-deposits table{
  border:1px solid rgba(229,215,197,.9);
  border-radius:24px;
  background:rgba(255,253,248,.94);
  box-shadow:0 22px 60px rgba(25,22,17,.12);
}
body.admin-console .content>.card{
  padding:22px;
}
body.admin-console .section-head{
  margin-bottom:14px;
}
body.admin-console h2{
  font-size:1.65rem;
  color:var(--premium-ink);
}
body.admin-console h3{
  color:var(--premium-ink);
}
body.admin-console .grid{
  gap:12px;
}
body.admin-console .kpi{
  position:relative;
  overflow:hidden;
  border-color:rgba(229,215,197,.82);
  border-radius:18px;
  background:
    linear-gradient(180deg,#fffdf8,#fff8ee);
  box-shadow:0 12px 34px rgba(25,22,17,.08);
}
body.admin-console .kpi::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,var(--premium-teal),var(--premium-gold));
}
body.admin-console .kpi .label{
  color:#6e756f;
}
body.admin-console .kpi .value{
  color:#172015;
  font-size:1.48rem;
}
body.admin-console .btn{
  border-radius:13px;
  font-weight:800;
}
body.admin-console .btn.approve{
  border-color:rgba(15,118,110,.28);
  background:linear-gradient(135deg,#eefaf4,#fffdf8);
  color:#0f665f;
}
body.admin-console .btn.decline{
  border-color:#f2c8bd;
  background:linear-gradient(135deg,#fff2ee,#fffdf8);
  color:#8a271a;
}
body.admin-console .field input,
body.admin-console .field select,
body.admin-console .field textarea{
  border-radius:14px;
  border-color:#dccab5;
  background:#fffefb;
}
body.admin-console .field input:focus,
body.admin-console .field select:focus,
body.admin-console .field textarea:focus{
  outline:4px solid rgba(15,118,110,.14);
}
body.admin-console .note{
  border-radius:14px;
  border-color:rgba(229,215,197,.82);
  background:linear-gradient(180deg,#fffdf8,#fff8ee);
}
body.admin-console .table-wrap{
  border-radius:18px;
  border-color:rgba(229,215,197,.9);
  box-shadow:0 12px 34px rgba(25,22,17,.08);
}
body.admin-console .table thead th,
body.legacy-deposits th{
  background:linear-gradient(135deg,var(--premium-night),var(--premium-night-2));
  color:rgba(255,253,248,.74);
}
body.admin-console .table tbody tr:hover,
body.legacy-deposits tr:hover td{
  background:rgba(15,118,110,.055);
}
body.admin-console .badge,
body.legacy-deposits .pill{
  border-color:rgba(15,118,110,.22);
  background:rgba(15,118,110,.1);
  color:#0f665f;
}

/* Redirect shell */
body.pay-redirect .redirect-shell{
  grid-template-columns:1fr;
  min-height:auto;
  max-width:520px;
}
body.pay-redirect .card{
  width:auto;
  border:0;
  box-shadow:none;
}

/* Top-up modal and floating actions */
.nister-fab{
  right:22px;
  bottom:22px;
}
.nister-fab button{
  border-radius:14px;
  box-shadow:0 18px 38px rgba(10,16,14,.2);
}
.nister-fab .fab-topup{
  background:linear-gradient(135deg,var(--premium-teal),var(--premium-teal-2));
}
.nister-backdrop{
  background:rgba(10,16,14,.56);
  backdrop-filter:blur(10px);
}
.nister-modal{
  border-radius:24px;
  border-color:rgba(229,215,197,.92);
  background:linear-gradient(180deg,#fffdf8,#fff8ee);
  box-shadow:0 36px 110px rgba(10,16,14,.34);
}
.nister-btn,
.nister-input,
.nister-wa-btn{
  border-radius:14px;
}
.nister-primary{
  background:linear-gradient(135deg,var(--premium-teal),var(--premium-teal-2));
}

@media (max-width:1040px){
  body.pay-portal .hero{
    grid-template-columns:1fr;
    min-height:auto;
  }
  body.pay-portal .hero.user-overview{
    grid-template-columns:1fr;
  }
  body.pay-portal .hero-copy{
    padding-bottom:0;
  }
  body.pay-portal .hero::after{
    display:none;
  }
}
@media (max-width:900px){
  .auth-shell{
    grid-template-columns:1fr;
  }
  .auth-brand{
    min-height:330px;
  }
  body.admin-console .layout{
    grid-template-columns:1fr;
  }
  body.pay-portal .user-layout{
    grid-template-columns:1fr;
  }
  body.pay-portal .user-side{
    position:static;
    width:100%;
    max-width:100%;
    min-width:0;
  }
  body.pay-portal .user-menu-card{
    position:sticky;
    top:94px;
    z-index:18;
  }
  body.pay-portal .user-menu{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:2px;
  }
  body.pay-portal .user-menu .btn{
    width:auto;
    white-space:nowrap;
  }
  body.pay-portal .user-pocket{
    display:none;
  }
  body.admin-console .side{
    position:static;
  }
  body.admin-console .menu{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:2px;
  }
  body.admin-console .menu .btn{
    width:auto;
    white-space:nowrap;
    margin:0;
  }
}
@media (max-width:640px){
  body.pay-portal .page,
  body.admin-console .wrap{
    padding:14px;
  }
  body.pay-portal .user-page{
    padding:10px;
  }
  body.pay-portal .user-topbar{
    position:static;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:18px;
    border-radius:22px;
  }
  body.pay-portal .brand-lockup{
    width:100%;
  }
  body.pay-portal .nister-global-nav{
    width:100%;
    min-width:0;
    flex:0 0 auto;
    justify-content:flex-start;
    overflow-x:auto;
    padding-bottom:2px;
  }
  body.pay-portal .user-top-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  body.pay-portal .user-top-actions .btn{
    width:100%;
  }
  body.pay-portal .user-menu-card{
    top:0;
    border-radius:20px;
  }
  body.pay-portal .hero{
    padding:22px;
    border-radius:24px;
  }
  body.pay-portal .hero.user-overview{
    padding:18px;
  }
  body.pay-portal h1{
    font-size:clamp(2.5rem,16vw,3.4rem);
  }
  body.pay-portal .hero.user-overview h1{
    font-size:clamp(2.15rem,12vw,3rem);
  }
  body.pay-portal #plans_section,
  body.pay-portal #rewards_section{
    padding:16px;
    border-radius:20px;
  }
  .auth-shell{
    border-radius:24px;
  }
  .auth-brand,
  body.pay-auth .card,
  body.admin-auth .card{
    padding:24px;
  }
  .nister-auth-nav a{
    flex:1 1 auto;
    justify-content:center;
  }
  .auth-meta{
    grid-template-columns:1fr;
  }
  body.admin-console .topbar{
    position:static;
    border-radius:22px;
  }
  body.admin-console .actions,
  body.admin-console .site-switch{
    width:100%;
  }
}
