
/* Shared layouts for payment, profile and CDK pages.
   Dimensions and spacing are adapted from the 1440px Figma frames. */

.inner-site {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background: var(--bg);
}
.inner-site > header,
.inner-site > main,
.inner-site > footer { position: relative; z-index: 2; }

.inner-glow {
  position: absolute;
  z-index: 1;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(139,92,246,.15), rgba(139,92,246,0) 70%);
}
.inner-glow.g1 { width:700px; height:700px; left:-100px; top:150px; opacity:.7; }
.inner-glow.g2 { width:800px; height:800px; right:-160px; top:500px; opacity:.55; }
.profile-site .inner-glow.g1 { left:400px; top:100px; width:800px; height:800px; opacity:.48; }
.profile-site .inner-glow.g2 { left:-200px; right:auto; top:800px; width:700px; height:700px; opacity:.4; }
.cdk-site .inner-glow.g1 { left:43%; top:188px; opacity:.55; }
.cdk-site .inner-glow.g2 { left:-254px; right:auto; top:654px; width:700px; height:700px; opacity:.4; }
.cdk-site .inner-glow.g3 { position:absolute; z-index:1; pointer-events:none; width:800px; height:800px; left:34%; top:875px; border-radius:50%; background:radial-gradient(circle,rgba(139,92,246,.12),rgba(139,92,246,0) 70%); }

.page-navbar .nav-links .is-active { color:#fff; font-weight:600; }
.page-navbar .balance-chip { min-height:37px; }
.page-navbar .profile-btn { gap:8px; }
.page-navbar .profile-btn img { width:14px; height:14px; }

.page-container {
  width:100%;
  padding:64px var(--page-pad) 96px;
}
.page-container__inner {
  width:100%;
  max-width:var(--container);
  margin:0 auto;
}
.page-heading {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  margin-bottom:40px;
}
.page-heading h1 {
  margin:0;
  font-family:"Unbounded",sans-serif;
  font-size:36px;
  line-height:1.25;
  font-weight:500;
}
.page-heading .section-badge { font-size:12px; }

.inner-footer {
  background:var(--bg-alt);
  min-height:394px;
}

/* PAYMENT */
.checkout-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 440px;
  gap:40px;
  align-items:start;
}
.panel {
  background:var(--surface);
  border:2px solid var(--border);
  border-radius:24px;
}
.payment-methods {
  min-height:848px;
  padding:32px;
}
.panel-title {
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 24px;
  font-size:18px;
  line-height:24px;
  font-weight:700;
}
.step-dot {
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:12px;
  background:var(--accent);
  font-size:12px;
  font-weight:700;
}
.payment-list {
  display:flex;
  flex-direction:column;
  gap:16px;
}
.payment-method {
  width:100%;
  min-height:76px;
  padding:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:2px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  cursor:pointer;
  text-align:left;
  transition:border-color .2s ease, background .2s ease, transform .2s var(--ease);
}
.payment-method:hover { border-color:#342b5d; transform:translateY(-1px); }
.payment-method.is-active { border-color:var(--accent); background:var(--surface-2); }
.method-main { display:flex; align-items:center; gap:16px; min-width:0; }
.method-radio {
  width:20px;
  height:20px;
  flex:0 0 auto;
  border:2px solid var(--border);
  border-radius:50%;
  position:relative;
}
.payment-method.is-active .method-radio { border-color:var(--accent); }
.payment-method.is-active .method-radio::after {
  content:"";
  position:absolute;
  width:10px;
  height:10px;
  left:3px; top:3px;
  border-radius:50%;
  background:var(--accent);
}
.method-copy { display:flex; flex-direction:column; gap:4px; min-width:0; }
.method-copy strong { font-size:15px; line-height:19px; font-weight:600; }
.method-copy small { color:var(--muted); font-size:12px; line-height:15px; }
.method-icons { display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.method-icons img { width:20px; height:20px; }
.payment-method[data-method="balance"] .method-icons img { width:24px; height:24px; }
.payment-method.is-disabled { opacity:.45; cursor:not-allowed; transform:none; }

.order-summary {
  width:440px;
  padding:32px;
  display:flex;
  flex-direction:column;
  gap:24px;
  position:sticky;
  top:24px;
}
.order-summary > h2 {
  margin:0;
  font-size:18px;
  line-height:23px;
  font-weight:700;
}
.rule { height:1px; background:var(--border); width:100%; flex:0 0 auto; }
.summary-product {
  display:flex;
  align-items:center;
  gap:16px;
}
.summary-thumb {
  width:80px; height:80px;
  flex:0 0 auto;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:12px;
  background:#151224;
  display:grid;
  place-items:center;
}
.summary-thumb img { width:100%; height:100%; object-fit:cover; }
.summary-thumb.is-service img { width:28px; height:28px; object-fit:contain; }
.summary-product__copy {
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.summary-product__copy strong {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:15px;
  line-height:19px;
  font-weight:700;
}
.summary-product__copy span { color:var(--muted-2); font-size:12px; line-height:15px; }
.summary-product__copy b { color:#d9d9e0; font-size:13px; line-height:17px; font-weight:600; }

.promo-block { display:flex; flex-direction:column; gap:8px; }
.field-label { color:var(--muted); font-size:13px; font-weight:600; }
.promo-row { display:flex; gap:8px; }
.input {
  min-width:0;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
  color:#fff;
  outline:0;
}
.promo-row .input { flex:1; padding:12px 16px; font-size:14px; }
.input:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(139,92,246,.08); }
.small-action {
  padding:12px 16px;
  border:1px solid var(--accent);
  border-radius:10px;
  background:var(--border-accent);
  color:#fff;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.promo-status { min-height:15px; margin:0; color:#10b981; font-size:12px; }
.promo-status.is-error { color:#ef7e8d; }
.totals { display:flex; flex-direction:column; gap:12px; }
.total-row { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:14px; }
.total-row span { color:var(--muted); }
.total-row strong { font-weight:500; }
.total-row.discount strong { color:#10b981; }
.total-row.grand { align-items:baseline; }
.total-row.grand span { color:#fff; font-size:16px; font-weight:700; }
.total-row.grand strong {
  color:#fff;
  font-family:"Unbounded",sans-serif;
  font-size:24px;
  font-weight:600;
}
.primary-wide {
  width:100%;
  min-height:46px;
  border:0;
  border-radius:10px;
  background:var(--accent);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  transition:filter .2s ease, transform .2s var(--ease);
}
.primary-wide:hover { filter:brightness(1.08); transform:translateY(-1px); }
.security-note {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted-2);
  font-size:11px;
  line-height:1.25;
}
.security-note img { width:12px; height:12px; flex:0 0 auto; }
.inline-message {
  min-height:18px;
  margin:0;
  color:#a78bfa;
  font-size:12px;
}

/* PROFILE */
.profile-layout {
  display:grid;
  grid-template-columns:380px minmax(0,1fr);
  gap:32px;
  align-items:start;
}
.profile-left { display:flex; flex-direction:column; gap:32px; }
.user-card {
  padding:32px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
}
.avatar-ring {
  width:106px; height:106px;
  padding:4px;
  border:2px solid var(--accent);
  border-radius:50%;
}
.avatar-ring img { width:96px; height:96px; border-radius:50%; object-fit:cover; }
.user-name { text-align:center; display:flex; flex-direction:column; gap:4px; }
.user-name strong { font-family:"Unbounded",sans-serif; font-size:18px; font-weight:500; }
.user-name span { color:var(--muted-2); font-size:13px; }
.meta-list { width:100%; display:flex; flex-direction:column; gap:12px; }
.meta-row { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:13px; }
.meta-row > span:first-child { color:var(--muted); }




.secondary-wide {
  width:100%; min-height:44px;
  display:grid; place-items:center;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
  color:#fff;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}





.profile-right { display:flex; flex-direction:column; gap:32px; }
.stats-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.stat-card { padding:24px; border-radius:16px; }
.stat-card span { color:var(--muted); font-size:14px; }
.stat-card strong {
  display:block;
  margin:12px 0;
  font-family:"Unbounded",sans-serif;
  font-size:24px;
  font-weight:600;
}
.stat-card small { font-size:12px; color:var(--muted-2); }
.stat-card small.purple { color:#a78bfa; }
.stat-card small.green { color:#10b981; }

.purchases-card, .settings-card { padding:32px; }
.purchases-card > h2, .settings-card > h2 { margin:0 0 20px; font-size:18px; }
.purchase-list { display:flex; flex-direction:column; gap:12px; }
.purchase {
  min-height:68px;
  padding:16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface-2);
}
.purchase-main { display:flex; align-items:center; gap:16px; min-width:0; }
.purchase-icon {
  width:48px; height:48px;
  flex:0 0 auto;
  display:grid; place-items:center;
  border-radius:8px;
  background:var(--border-accent);
}
.purchase-icon img { width:20px; height:20px; }
.purchase-copy { min-width:0; display:flex; flex-direction:column; gap:4px; }
.purchase-copy strong { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.purchase-copy small { color:var(--muted-2); font-size:12px; }
.purchase-end { display:flex; align-items:center; gap:24px; flex:0 0 auto; }
.purchase-end > strong { font-size:14px; }
.status-ok { padding:4px 10px; border-radius:999px; background:rgba(16,185,129,.13); color:#10b981; font-size:11px; font-weight:600; }

.settings-card { display:flex; flex-direction:column; gap:24px; }
.settings-card > h2 { margin:0; }
.settings-fields { display:flex; gap:16px; align-items:flex-end; }
.field { display:flex; flex-direction:column; gap:8px; }
.field label { color:var(--muted); font-size:13px; font-weight:600; }
.field input { height:46px; padding:14px; font-size:14px; }
.field.current { width:174px; }
.field.new { width:174px; }
.settings-actions { display:flex; gap:16px; }
.primary-action, .secondary-action {
  min-height:46px;
  padding:14px 24px;
  border-radius:10px;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}
.primary-action { border:0; background:var(--accent); color:#fff; }
.secondary-action { border:1px solid var(--border); background:var(--surface-2); color:#fff; }
.form-status { margin:0; min-height:16px; color:#10b981; font-size:12px; }

/* CDK */
.cdk-container { padding-top:64px; }
.cdk-hero { max-width:1100px; margin-bottom:64px; }
.cdk-hero .section-badge { margin-bottom:20px; }
.cdk-hero h1 {
  max-width:1050px;
  margin:0 0 20px;
  font-family:"Unbounded",sans-serif;
  font-size:40px;
  line-height:1.2;
  font-weight:700;
}
.cdk-hero p { max-width:1040px; margin:0; color:var(--muted-2); font-size:15px; line-height:1.6; }

.cdk-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 380px;
  gap:32px;
  align-items:start;
  min-height:678px;
}
.cdk-input-card { padding:32px; display:flex; flex-direction:column; gap:28px; }
.cdk-card-header { display:flex; flex-direction:column; gap:16px; }
.cdk-title { display:flex; align-items:center; gap:16px; }
.num-box {
  width:40px; height:40px; display:grid; place-items:center;
  border-radius:12px; background:#1a1630;
  color:var(--accent);
  font-family:"Unbounded",sans-serif;
  font-size:14px; font-weight:700;
}
.cdk-title h2 { margin:0; font-size:20px; }
.cdk-tags { display:flex; gap:10px; flex-wrap:wrap; }
.cdk-tag { padding:6px 14px; border:1px solid var(--border); border-radius:999px; color:var(--muted-2); font-size:12px; font-weight:500; }
.cdk-tag.primary { background:#1a1630; border-color:#2d2450; color:#a78bfa; }
.cdk-input-block { display:flex; flex-direction:column; gap:10px; }
.cdk-input-block label { color:var(--muted-2); font-size:11px; letter-spacing:1.5px; font-weight:700; }
.cdk-key-input {
  width:100%; height:58px;
  padding:16px 20px;
  border:2px solid #2d2450;
  border-radius:14px;
  background:var(--bg);
  color:#fff;
  outline:0;
  font-size:15px;
  letter-spacing:2px;
  text-transform:uppercase;
}
.cdk-key-input::placeholder { color:rgba(102,97,128,.7); }
.cdk-key-input:focus { border-color:var(--accent); }
.cdk-submit { min-height:50px; border-radius:14px; font-size:15px; }
.cdk-status { margin:-10px 0 0; min-height:18px; font-size:12px; color:#a78bfa; }
.cdk-status.is-error { color:#ef7e8d; }

.cdk-side { display:flex; flex-direction:column; gap:20px; }
.side-card { padding:24px; border-radius:20px; }
.how-card { padding:28px; border-radius:24px; }
.side-kicker { margin:0 0 24px; color:var(--accent); font-size:11px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; }
.how-steps { display:flex; flex-direction:column; gap:24px; }
.how-step { display:flex; align-items:flex-start; gap:16px; }
.how-num { width:32px; height:32px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:#1a1630; color:var(--accent); font-family:"Unbounded",sans-serif; font-size:13px; font-weight:700; }
.how-copy { display:flex; flex-direction:column; gap:4px; }
.how-copy strong { font-size:13px; line-height:1.3; }
.how-copy span { color:var(--muted-2); font-size:12px; line-height:1.5; }
.side-card__title { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.side-icon { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:#1a1630; }
.side-icon img { width:18px; height:18px; }
.side-card h3 { margin:0; font-size:14px; }
.side-card p { margin:0; color:var(--muted-2); font-size:12px; line-height:1.6; }
.support-btn { width:100%; min-height:42px; margin-top:16px; border:2px solid var(--border); border-radius:10px; background:transparent; color:#fff; font-size:13px; font-weight:700; cursor:pointer; }

/* Shared mini toast */
.toast {
  position:fixed;
  right:24px; bottom:24px;
  z-index:20;
  max-width:360px;
  padding:14px 18px;
  border:1px solid #342b5d;
  border-radius:12px;
  background:#151224;
  color:#fff;
  box-shadow:0 16px 60px rgba(0,0,0,.35);
  font-size:13px;
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:.22s ease;
}
.toast.is-visible { opacity:1; transform:none; }

/* Compatibility/final refinements for the generated semantic markup */
.inner-glow--checkout-a { width:700px; height:700px; left:-100px; top:150px; opacity:.7; }
.inner-glow--checkout-b { width:800px; height:800px; left:800px; top:500px; opacity:.55; }
.inner-glow--profile-a { width:800px; height:800px; left:400px; top:100px; opacity:.48; }
.inner-glow--profile-b { width:700px; height:700px; left:-200px; top:800px; opacity:.40; }
.inner-glow--cdk-a { width:700px; height:700px; left:43%; top:188px; opacity:.55; }
.inner-glow--cdk-b { width:700px; height:700px; left:-254px; top:654px; opacity:.40; }
.inner-glow--cdk-c { width:800px; height:800px; left:34%; top:875px; opacity:.38; }

.panel-title h2 { margin:0; font-size:18px; line-height:24px; font-weight:700; }
.method-radio img { display:none; }
.summary-thumb { object-fit:cover; }
.summary-thumb.is-service { object-fit:contain; padding:22px; }
.total-row .positive { color:#10b981; }
.total-row--grand { align-items:baseline; }
.total-row--grand > b { color:#fff; font-size:16px; }
.total-row--grand > strong {
  color:#fff;
  font-family:"Unbounded",sans-serif;
  font-size:24px;
  font-weight:600;
}
.topup-amount { display:flex; flex-direction:column; gap:8px; }
.amount-input-wrap { position:relative; }
.amount-input-wrap .input { width:100%; height:44px; padding:12px 42px 12px 16px; font-size:14px; }
.amount-input-wrap span { position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:13px; }




.stat-card small.violet { color:#a78bfa; }
.purchase-copy > span { color:var(--muted-2); font-size:12px; }
.field > span { color:var(--muted); font-size:13px; font-weight:600; }
.field { flex:0 1 174px; }
.field .input { width:100%; height:46px; padding:14px; font-size:14px; }
.settings-card form { display:flex; flex-direction:column; gap:20px; }
.settings-card .form-status { margin:-4px 0 -4px; }
.form-status.is-error { color:#ef7e8d; }

.cdk-hero h1 span { color:var(--accent); }
.cdk-tag-button { background:var(--surface); cursor:pointer; font-family:inherit; }
.cdk-tag-button.is-active { background:#1a1630; border-color:#2d2450; color:#a78bfa; }
.cdk-key-list { height:auto; min-height:138px; resize:vertical; text-transform:uppercase; }
.cdk-submit {
  width:100%;
  border:0;
  background:var(--accent);
  color:#fff;
  font-weight:700;
  cursor:pointer;
  transition:filter .2s ease, transform .2s var(--ease);
}
.cdk-submit:hover { filter:brightness(1.08); transform:translateY(-1px); }
.support-btn { display:flex; align-items:center; justify-content:center; text-decoration:none; }

.balance-chip { cursor:pointer; transition:border-color .2s ease, background .2s ease; }
.balance-chip:hover { border-color:#342b5d; background:#19152a; }

/* Avatar image already contains the exact Figma ring. */
.avatar-ring {
  width:106px;
  height:106px;
  padding:0;
  border:0;
  overflow:hidden;
}
.avatar-ring img { width:106px; height:106px; }























