/* Store, checkout, proxy management and account-specific components. */
.public-nav { background: var(--card); border-bottom: 1px solid var(--rule); }
.public-nav-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.public-nav-links, [data-nav-actions], .nx-nav-account { display: flex; align-items: center; gap: 18px; }
.public-nav-links { font-size: .875rem; font-weight: 600; }
.public-nav-links a[aria-current="page"] { text-decoration: underline; text-underline-offset: 8px; }
.nx-user-chip, .nx-balance-chip { display: flex; align-items: center; gap: 9px; font-size: .875rem; }
.nx-user-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--accent2); color: var(--ink); object-fit: cover; }
.home-hero { padding: 64px 0 42px; display: grid; grid-template-columns: 1.15fr 1fr; gap: 64px; align-items: center; }
.home-hero h1 { font-size: clamp(2.7rem, 5vw, 4.25rem); line-height: 1.06; letter-spacing: -.065em; margin-bottom: 22px; }
.home-hero h1 span { display: inline; background: var(--accent); color: var(--ink); padding-inline: 6px; box-decoration-break: clone; }
.home-hero p { max-width: 510px; color: var(--muted); }
.featured-product { border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); background: var(--card); }
.featured-product-top { background: var(--accent2); color: var(--ink); border-bottom: 1px solid var(--line); padding: 32px; }
.featured-product-top h2 { font-size: 2rem; margin: 18px 0 6px; }
.featured-product-top p { margin: 0; color: #43555d; }
.featured-product-body { padding: 24px 32px; }
.featured-product-body .btn { width: 100%; margin-top: 18px; }
.spec-line, .nx-spec-row, .deposit-world-row { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--rule); font-size: .875rem; }
.spec-line span, .nx-spec-row span, .deposit-world-row span { color: var(--muted); }
.spec-line strong, .deposit-world-row strong { text-align: right; overflow-wrap: anywhere; }
.home-steps { padding: 36px 0 64px; }
.home-steps .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.step-number { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 8px; background: var(--accent); color: var(--ink); font-size: .875rem; font-weight: 750; margin-bottom: 18px; }
.home-steps p { font-size: .9375rem; color: var(--muted); margin: 0; }
.footer, .nx-login-footer { border-top: 1px solid var(--rule); padding: 24px 0; font-size: .875rem; color: var(--muted); }
.footer-inner, .footer-grid { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
.footer-links { display: flex; gap: 20px; }
.section { padding: 48px 0; }
.faq-item { margin-bottom: 16px; }
.faq-item p:last-child { margin: 0; }
.nx-login-main { padding: 64px 20px; }
.nx-login-shell { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; max-width: 1000px; margin: auto; }
.nx-login-intro h1 { font-size: clamp(2.3rem, 5vw, 3.4rem); }
.nx-login-intro p { color: var(--muted); max-width: 420px; }
.nx-login-meta { display: grid; gap: 14px; }
.nx-login-meta div { display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--rule); padding-bottom: 10px; font-size: .875rem; }
.nx-login-meta span { color: var(--muted); }
.nx-login-panel { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden; }
.nx-login-panel-head { background: var(--accent); color: var(--ink); border-bottom: 1px solid var(--line); padding: 14px 24px; display: flex; justify-content: space-between; font-size: .75rem; font-weight: 750; }
.nx-login-panel-body { padding: 32px; }
.nx-discord-mark { width: 48px; height: 48px; display: grid; place-items: center; background: var(--accent2); color: var(--ink); border: 1.5px solid var(--line); border-radius: 10px; margin-bottom: 24px; font-weight: 800; }
.nx-discord-login { width: 100%; }
.nx-login-note { font-size: .875rem; color: var(--muted); margin-top: 22px; }
.nx-login-footer { display: flex; justify-content: space-between; gap: 24px; padding-inline: 32px; }
.nx-login-footer-links { display: flex; gap: 20px; }
.nx-login-index { display: block; font-size: .75rem; color: var(--muted); letter-spacing: .1em; margin-bottom: 20px; }
.products-count { border: 1px solid var(--rule); background: var(--card); padding: 6px 12px; border-radius: 6px; white-space: nowrap; font-size: .875rem; }
.products-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 1060px; }
.market-product-card, .product-card { border: 1.5px solid var(--line); background: var(--card); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
.product-category-banner { padding: 22px 26px; border-bottom: 1.5px solid var(--line); background: var(--accent2); color: var(--ink); font-weight: 800; letter-spacing: -.02em; display: flex; justify-content: space-between; }
.product-category-banner.credit { background: #eee0ff; }
.market-product-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.market-product-title { font-size: 1.6rem; margin-top: 18px; }
.market-product-description { font-size: .9375rem; color: var(--muted); }
.nx-product-card-topline { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.nx-product-feature-list { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 16px 0 24px; }
.nx-product-feature-list span { display: block; font-size: .75rem; color: var(--muted); margin-bottom: 4px; }
.nx-product-feature-list strong { font-size: .875rem; }
.market-product-footer, .price-row { display: flex; justify-content: space-between; gap: 18px; align-items: end; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--rule); }
.market-product-price small, .market-product-price strong, .market-product-price span { display: block; }
.market-product-price strong { font-size: 1.7rem; letter-spacing: -.04em; }
.market-product-price span { color: var(--muted); font-size: .8125rem; }
.product-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.product-detail-page { padding: 36px 0 60px; }
.nx-product-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.nx-product-head p { color: var(--muted); max-width: 650px; }
.nx-stock-block { display: grid; gap: 4px; text-align: right; flex-shrink: 0; }
.nx-stock-label { color: var(--muted); font-size: .75rem; }
.nx-product-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 28px; align-items: start; }
.nx-product-info { padding: 28px; background: var(--card); border: 1px solid var(--rule); border-radius: 10px; }
.nx-product-copy h2 { font-size: 1.4rem; }
.nx-product-copy p { color: var(--muted); }
.nx-price-preview { margin-top: 24px; padding: 18px; border-radius: 8px; background: var(--surface2); }
.nx-price-preview > * { display: block; }
.nx-price-preview strong { font-size: 1.8rem; }
.nx-order-panel { padding: 28px; background: var(--card); border: 1.5px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.nx-payment-section { margin: 24px 0; }
.nx-payment-label, .nx-summary-title { display: block; font-weight: 700; margin-bottom: 12px; }
.nx-payment-grid, .nx-credit-payment-options { display: flex; gap: 12px; }
.nx-payment-option { flex: 1; padding: 14px; border: 1px solid var(--rule); border-radius: 8px; background: var(--card); color: var(--text); text-align: left; }
.nx-payment-option.is-active { border: 1.5px solid var(--line); background: var(--accent); color: var(--ink); }
.nx-payment-option span, .nx-payment-option strong { display: block; }
.nx-order-summary, .nx-credit-summary { background: var(--surface2); border-radius: 8px; padding: 18px; margin-bottom: 20px; }
.nx-summary-row, .nx-credit-summary > div { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; font-size: .875rem; }
.nx-summary-divider, .proxy-confirm-divider { border-top: 1px solid var(--rule); margin: 12px 0; }
.nx-summary-total { font-weight: 750; font-size: 1rem; }
.nx-total-value { font-size: 1.4rem; }
.nx-purchase-button { width: 100%; cursor: pointer; }
.nx-order-note, .nx-credit-note { font-size: .875rem; color: var(--muted); margin: 18px 0 0; }
.deposit-world-info { margin: 10px 0; }
.deposit-world-info + .actions { margin-top: 18px; }
.proxy-page-header-right, .proxy-action-buttons, .proxy-quick-select, .proxy-row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.proxy-wallet-card { border: 1px solid var(--rule); border-radius: 8px; display: flex; gap: 12px; padding: 10px 14px; align-items: center; background: var(--card); color: var(--text); }
.proxy-wallet-copy > * { display: block; }
.proxy-wallet-icon { width: 34px; height: 34px; background: var(--accent2); color: var(--ink); display: grid; place-items: center; border-radius: 6px; font-size: .8125rem; font-weight: 800; }
.proxy-toolbar, .admin-proxy-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 18px; }
.proxy-toolbar select { max-width: 210px; }
.proxy-toolbar input, .admin-proxy-toolbar input { flex: 1 1 200px; }
.admin-proxy-toolbar select { flex: 0 1 220px; }
.proxy-actionbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 16px 0; border-block: 1px solid var(--rule); margin-bottom: 20px; }
.proxy-select-all { display: flex; align-items: center; gap: 10px; font-size: .875rem; }
.proxy-actionbar #selected-count { font-size: .875rem; margin-left: auto; }
.proxy-quick-select { width: 100%; }
.proxy-action-buttons { width: 100%; }
.proxy-list, .admin-proxy-list { display: grid; gap: 16px; }
.proxy-item { padding: 20px; border: 1px solid var(--rule); border-radius: 10px; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto auto; gap: 14px; align-items: start; background: var(--card); }
.proxy-item:has([data-proxy-check]:checked) { border: 1.5px solid var(--line); box-shadow: var(--shadow); }
.proxy-item-label { font-size: .6875rem; font-weight: 750; color: var(--muted); letter-spacing: .1em; margin-bottom: 8px; }
.proxy-credential { font: 600 .875rem/1.5 ui-monospace, monospace; overflow-wrap: anywhere; }
.proxy-health-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.proxy-info-box { border-top: 1px solid var(--rule); padding-top: 12px; }
.proxy-info-box span, .proxy-info-box strong { display: block; font-size: .8125rem; }
.proxy-info-box span { color: var(--muted); }
.proxy-row-actions { grid-column: 1 / -1; padding-top: 4px; }
.proxy-check-summary:not(:empty) { margin-bottom: 16px; font-size: .875rem; }
.admin-proxy-credit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.admin-proxy-credit-card { border: 1px solid var(--rule); border-radius: 10px; background: var(--card); padding: 22px; display: flex; align-items: center; gap: 16px; }
.admin-proxy-credit-label { font-size: .875rem; color: var(--muted); }
.admin-proxy-credit-value { display: block; font-size: 1.7rem; font-weight: 750; }
.admin-proxy-credit-icon { background: var(--surface2); border-radius: 8px; padding: 12px; }
.admin-proxy-stats { display: flex; flex-wrap: wrap; gap: 24px; padding: 18px 0; font-size: .875rem; }
.admin-proxy-stats strong { margin-left: 6px; }
.admin-proxy-item { border: 1px solid var(--rule); border-radius: 10px; padding: 20px; }
.admin-proxy-item > div { margin-bottom: 10px; }
.admin-proxy-item :is(.admin-proxy-head, .admin-proxy-meta, .admin-proxy-actions) { display: flex; gap: 12px; flex-wrap: wrap; }
.admin-proxy-credential { overflow-wrap: anywhere; font-family: ui-monospace, monospace; }
.admin-proxy-row { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(90px, 1fr)); gap: 18px; padding: 20px; border: 1px solid var(--rule); border-radius: 10px; background: var(--card); }
.admin-proxy-owner { font-size: .875rem; color: var(--muted); margin-top: 7px; }
.admin-proxy-box > span { color: var(--muted); font-size: .8125rem; display: block; }
.admin-proxy-box strong { display: block; font-size: .875rem; }
.admin-proxy-health-wrap, .proxy-admin-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 760px) { .admin-proxy-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } .admin-proxy-main { grid-column: 1 / -1; } }
#profile-card { max-width: 760px; }
#profile-card .card { padding: 28px; }
.balance-info, .balance-action-buttons { display: flex; gap: 12px; }
.balance-info > * { flex: 1; background: var(--surface2); padding: 14px; border-radius: 8px; }
.balance-info strong, .balance-info span { display: block; }
.balance-field { margin-bottom: 18px; }
.balance-message:empty { display: none; }
.balance-message { color: var(--danger); padding: 10px 0; }
@media (max-width: 900px) { .home-hero { gap: 30px; } .products-grid { gap: 18px; } .nx-login-shell { gap: 30px; } .nx-product-layout { grid-template-columns: 1fr; } .admin-proxy-credit-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .public-nav-inner { flex-wrap: wrap; padding-block: 15px; gap: 14px; }
  .public-nav-links { order: 3; width: 100%; gap: 24px; }
  [data-nav-actions] { margin-left: auto; gap: 6px; }
  [data-nav-actions] .theme-toggle, .nx-nav-account .nx-balance-chip { display: none; }
  .home-hero, .nx-login-shell, .products-grid { grid-template-columns: 1fr; }
  .home-hero { padding-top: 34px; }
  .home-steps .grid { grid-template-columns: 1fr; }
  .nx-login-main { padding: 32px 16px; }
  .nx-login-meta { display: none; }
  .nx-product-head { align-items: start; flex-direction: column; }
  .nx-stock-block { text-align: left; }
  .nx-order-panel, .nx-product-info { padding: 20px; }
  .proxy-page-heading { flex-direction: column; align-items: stretch; }
  .proxy-item { grid-template-columns: 22px minmax(0, 1fr); padding: 14px; }
  .proxy-item > .proxy-state { grid-column: 2; justify-self: start; }
  .proxy-info-box { grid-column: 1 / -1; display: flex; justify-content: space-between; }
  .proxy-item > [data-copy-one] { grid-column: 2; justify-self: start; }
  .nx-payment-grid { flex-wrap: wrap; }
}


.autoip-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
}

.autoip-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.autoip-toggle-slider {
  width: 38px;
  height: 22px;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  background: var(--surface2);
  position: relative;
  transition: .15s ease;
}

.autoip-toggle-slider::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  top: 1.5px;
  left: 2px;
  border-radius: 50%;
  background: var(--line);
  transition: .15s ease;
}

.autoip-toggle input:checked
+ .autoip-toggle-slider {
  background: var(--accent);
}

.autoip-toggle input:checked
+ .autoip-toggle-slider::after {
  transform: translateX(16px);
}

.autoip-toggle input:disabled
+ .autoip-toggle-slider {
  opacity: .45;
  cursor: not-allowed;
}

.autoip-toggle-label {
  font-size: .8125rem;
  font-weight: 700;
}


/* =========================================================
   AUTO IP TOGGLE
   ========================================================= */

.autoip-toggle {
  min-width: 104px;
  height: 40px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;

  border: 1px solid var(--rule);
  border-radius: 8px;

  background: var(--surface2);
  color: var(--muted);

  cursor: pointer;
  transition:
    background .15s ease,
    border-color .15s ease,
    transform .12s ease,
    opacity .15s ease;
}

.autoip-toggle:hover:not(:disabled) {
  border-color: var(--line);
  color: var(--text);
  transform: translateY(-1px);
}

.autoip-toggle:active:not(:disabled) {
  transform: translateY(0);
}

.autoip-toggle.is-on {
  background: var(--accent);
  border-color: var(--line);
  color: var(--ink);
}

.autoip-toggle:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.autoip-toggle.is-loading {
  opacity: .65;
  pointer-events: none;
}

.autoip-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;

  border-radius: 50%;
  background: var(--muted);

  box-shadow:
    0 0 0 3px rgba(255,255,255,.04);
}

.autoip-toggle.is-on .autoip-dot {
  background: var(--ink);
  box-shadow:
    0 0 0 3px rgba(0,0,0,.08);
}

.autoip-copy {
  display: flex;
  align-items: baseline;
  gap: 5px;
  line-height: 1;
}

.autoip-title {
  font-size: .78rem;
  font-weight: 750;
}

.autoip-status {
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .05em;
}

@media (max-width: 640px) {
  .autoip-toggle {
    flex: 1 1 100px;
    min-width: 0;
  }

  .autoip-copy {
    gap: 4px;
  }
}


/* =========================================================
   AUTO IP TOGGLE
   ========================================================= */

.autoip-toggle {
  min-width: 104px;
  height: 40px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;

  border: 1px solid var(--rule);
  border-radius: 8px;

  background: var(--surface2);
  color: var(--muted);

  cursor: pointer;
  transition:
    background .15s ease,
    border-color .15s ease,
    transform .12s ease,
    opacity .15s ease;
}

.autoip-toggle:hover:not(:disabled) {
  border-color: var(--line);
  color: var(--text);
  transform: translateY(-1px);
}

.autoip-toggle:active:not(:disabled) {
  transform: translateY(0);
}

.autoip-toggle.is-on {
  background: var(--accent);
  border-color: var(--line);
  color: var(--ink);
}

.autoip-toggle:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.autoip-toggle.is-loading {
  opacity: .65;
  pointer-events: none;
}

.autoip-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;

  border-radius: 50%;
  background: var(--muted);

  box-shadow:
    0 0 0 3px rgba(255,255,255,.04);
}

.autoip-toggle.is-on .autoip-dot {
  background: var(--ink);
  box-shadow:
    0 0 0 3px rgba(0,0,0,.08);
}

.autoip-copy {
  display: flex;
  align-items: baseline;
  gap: 5px;
  line-height: 1;
}

.autoip-title {
  font-size: .78rem;
  font-weight: 750;
}

.autoip-status {
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .05em;
}

@media (max-width: 640px) {
  .autoip-toggle {
    flex: 1 1 100px;
    min-width: 0;
  }

  .autoip-copy {
    gap: 4px;
  }
}


/* =========================================================
   AUTO IP TOGGLE
   ========================================================= */

.autoip-toggle {
  min-width: 104px;
  height: 40px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: var(--surface2);
  color: var(--muted);
  cursor: pointer;
  transition:
    background .15s ease,
    border-color .15s ease,
    transform .12s ease,
    opacity .15s ease;
}

.autoip-toggle:hover:not(:disabled) {
  border-color: var(--line);
  color: var(--text);
  transform: translateY(-1px);
}

.autoip-toggle:active:not(:disabled) {
  transform: translateY(0);
}

.autoip-toggle.is-on {
  background: var(--accent);
  border-color: var(--line);
  color: var(--ink);
}

.autoip-toggle:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.autoip-toggle.is-loading {
  opacity: .65;
  pointer-events: none;
}

.autoip-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: var(--muted);
  box-shadow: 0 0 0 3px rgba(255,255,255,.04);
}

.autoip-toggle.is-on .autoip-dot {
  background: var(--ink);
  box-shadow: 0 0 0 3px rgba(0,0,0,.08);
}

.autoip-copy {
  display: flex;
  align-items: baseline;
  gap: 5px;
  line-height: 1;
}

.autoip-title {
  font-size: .78rem;
  font-weight: 750;
}

.autoip-status {
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .05em;
}

@media (max-width: 640px) {
  .autoip-toggle {
    flex: 1 1 100px;
    min-width: 0;
  }

  .autoip-copy {
    gap: 4px;
  }
}


/* =========================================================
   AUTO IP TOGGLE
   ========================================================= */

.autoip-toggle {
  min-width: 104px;
  height: 40px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: var(--surface2);
  color: var(--muted);
  cursor: pointer;
  transition:
    background .15s ease,
    border-color .15s ease,
    transform .12s ease,
    opacity .15s ease;
}

.autoip-toggle:hover:not(:disabled) {
  border-color: var(--line);
  color: var(--text);
  transform: translateY(-1px);
}

.autoip-toggle:active:not(:disabled) {
  transform: translateY(0);
}

.autoip-toggle.is-on {
  background: var(--accent);
  border-color: var(--line);
  color: var(--ink);
}

.autoip-toggle:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.autoip-toggle.is-loading {
  opacity: .65;
  pointer-events: none;
}

.autoip-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: var(--muted);
  box-shadow: 0 0 0 3px rgba(255,255,255,.04);
}

.autoip-toggle.is-on .autoip-dot {
  background: var(--ink);
  box-shadow: 0 0 0 3px rgba(0,0,0,.08);
}

.autoip-copy {
  display: flex;
  align-items: baseline;
  gap: 5px;
  line-height: 1;
}

.autoip-title {
  font-size: .78rem;
  font-weight: 750;
}

.autoip-status {
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .05em;
}

@media (max-width: 640px) {
  .autoip-toggle {
    flex: 1 1 100px;
    min-width: 0;
  }

  .autoip-copy {
    gap: 4px;
  }
}

