/* Narrow compatibility fixes on the unchanged Dark v12 theme. Public pages only. */
.is-public .skip-link { position:fixed; left:16px; top:8px; z-index:200; padding:10px 14px; border-radius:8px; color:var(--page); background:var(--blue); transform:translateY(-160%); }
.is-public .skip-link:focus { transform:none; }
.is-public .topbar { gap:16px; }
.is-public .social-button { display:inline-grid; place-items:center; min-width:36px; min-height:36px; border:1px solid var(--line-strong); border-radius:10px; font-weight:700; font-size:12px; }
.is-public .nav-toggle { display:none; width:40px; min-height:36px; padding:9px; border:1px solid var(--line-strong); border-radius:10px; cursor:pointer; }
.is-public .nav-toggle span { width:20px; height:2px; background:currentColor; }
.is-public .topbar-actions .admin-chip { max-width:170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:1280px) {
 .is-public .topbar { grid-template-columns:auto minmax(0,1fr); }
 .is-public .topbar-actions { min-width:0; }
 .is-public .public-nav { display:flex; grid-column:1/-1; grid-row:2; width:100%; justify-content:center; flex-wrap:wrap; border-radius:14px; margin-bottom:12px; }
 .js .is-public .public-nav { display:none; }
 .js .is-public .nav-toggle { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
 .js .is-public .topbar.nav-open .public-nav { display:flex; }
 .is-public .public-nav a { min-height:40px; display:flex; align-items:center; }
}
@media(max-width:620px) {
 .is-public .topbar { padding-inline:16px; gap:10px; }
 .is-public .brand { gap:7px; }
 .is-public .brand-mark { width:30px; height:30px; }
 .is-public .brand strong { font-size:12px; }
 .is-public .brand small { display:none; }
 .is-public .topbar-actions { gap:6px; }
 .is-public .topbar-actions .social-button { display:none; }
 .is-public .topbar-actions .admin-chip { max-width:100px; }
 .is-public .topbar-actions .button { padding-inline:9px; }
 .is-public .public-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .js .is-public .topbar.nav-open .public-nav { display:grid; }
 .is-public .public-nav a { justify-content:center; padding-inline:8px; }
}
/* Current base CSS supplies a16:9 minimum-size rule that v12's grid must override. */
.is-public .vip-tier-stage .price-card { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
.is-public .vip-tier-stage .price-card > * { min-width:0; }
.is-public .vip-tier-stage .vip-card-visual { grid-column:1; aspect-ratio:auto; width:100%; min-width:0; }
.is-public .panel-head { flex-wrap:wrap; }
@media(min-width:1281px) { .is-public .topbar { padding-inline:max(24px,calc((100vw - 1440px)/2)); } }
@media(max-width:940px) { .is-public .vip-tier-stage .price-card { grid-template-columns:minmax(0,1fr); } }
/* The decorative glow must stay within the hero instead of widening the mobile document. */
.is-public .home-hero::before { max-width:73%; height:auto; aspect-ratio:1; }
/* Preserve the semantic public footer and account entry points with the current base stylesheet. */
.is-public .footer > nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:14px 20px; }
.is-public p.chat-composer-disabled { display:block; margin:0; font-size:12px; line-height:1.6; }
.is-public .topbar-actions .cabinet-button, .is-public .topbar-actions .admin-chip { display:inline-flex; }
@media(max-width:620px) { .is-public .footer > nav { justify-content:flex-start; } }
/* Owner-approved home additions: standalone ANEW purchase and the existing free female VIP. */
.home-extras-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.home-extras-grid > .price-card { min-width:0; display:flex; flex-direction:column; padding:0; gap:0; }
.home-extras-grid .vip-card-visual { grid-column:auto; grid-row:auto; margin:0; width:100%; min-width:0; min-height:0; aspect-ratio:16/9; border-radius:0; }
.home-extras-grid .vip-card-visual img { height:100%; object-fit:cover; }
.home-extras-grid .vip-card-purchase { margin-top:auto; }
.anew-home-visual { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; aspect-ratio:16/9; color:var(--blue); background:radial-gradient(ellipse at center,rgba(245,184,0,.18),transparent 70%),#0b1016; }
.anew-home-visual > span { font-size:clamp(44px,7vw,80px); font-weight:900; letter-spacing:.08em; }
.anew-home-visual > small { font-size:10px; letter-spacing:.2em; }
.anew-home-rate { display:flex; flex-wrap:wrap; gap:10px 24px; align-items:center; }
.anew-home-rate strong { color:var(--blue); font-size:20px; }
.anew-home-rate span { color:var(--ink-soft); font-size:14px; }
.home-extras-grid .wallet-topup, .anew-topup-panel .wallet-topup { display:flex; align-items:flex-end; flex-wrap:wrap; gap:14px; }
.home-extras-grid .wallet-topup label, .anew-topup-panel .wallet-topup label { display:grid; gap:8px; min-width:0; flex:1 1 140px; }
.home-extras-grid .wallet-topup input, .anew-topup-panel .wallet-topup input { width:100%; min-height:44px; }
@media(max-width:760px) { .home-extras-grid { grid-template-columns:minmax(0,1fr); } }
.home-extras-grid .wallet-topup input, .anew-topup-panel .wallet-topup input { color:var(--ink); background:#0d1217; border:1px solid var(--line-strong); border-radius:10px; padding:0 14px; }
.auth-feedback { display:flex; align-items:flex-start; gap:12px; margin:18px 0; padding:16px; border:1px solid #367653; border-radius:12px; background:#122a1e; color:#d8ffe6; font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
.auth-feedback.danger { border-color:#ab5960; background:#351b20; color:#ffe0e3; }
.auth-feedback p { margin:0; color:inherit; }
.auth-feedback-icon { flex:0 0 26px; text-align:center; font-weight:800; font-size:22px; line-height:1.2; }
.auth-feedback:focus { outline:2px solid currentColor; outline-offset:3px; }
.auth-password-requirements { font-size:14px; line-height:1.5; color:var(--ink-soft); }
.auth-password-requirements strong { color:var(--ink); }
.auth-password-requirements ul { margin:8px 0 0; padding-left:20px; }
.auth-password-requirements li + li { margin-top:5px; }

/* Keep the public dark theme through interaction: the legacy light :focus
   selector is more specific than dark-v12's plain input selector. */
.is-public { --muted-2:#9aa7b4; }
.is-public input,
.is-public select,
.is-public textarea {
  color-scheme:dark;
  color:var(--ink);
  caret-color:var(--ink);
  background-color:#0d1217;
  border-color:#667888;
}
.is-public input:hover,
.is-public select:hover,
.is-public textarea:hover { background-color:#151b22; border-color:#8e9aa7; }
.is-public input:focus,
.is-public select:focus,
.is-public textarea:focus {
  color:var(--ink);
  background-color:#0d1217;
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(245,184,0,.22);
}
.is-public input::placeholder,
.is-public textarea::placeholder { color:#a6b2bf; opacity:1; }
.is-public select option,
.is-public select optgroup { color:var(--ink); background-color:#0d1217; }
/* WebKit may supply its own autofill background. Paint an opaque inner layer
   and set the text fill together, preserving the visible focus ring. */
.is-public input:-webkit-autofill {
  -webkit-text-fill-color:#f3f5f7;
  caret-color:#f3f5f7;
  box-shadow:0 0 0 1000px #172330 inset;
}
.is-public input:autofill {
  color:#f3f5f7;
  -webkit-text-fill-color:#f3f5f7;
  caret-color:#f3f5f7;
  box-shadow:0 0 0 1000px #172330 inset;
}
.is-public input:-webkit-autofill:focus {
  box-shadow:0 0 0 1000px #172330 inset,0 0 0 3px rgba(245,184,0,.22);
}
.is-public input:autofill:focus {
  box-shadow:0 0 0 1000px #172330 inset,0 0 0 3px rgba(245,184,0,.22);
}
.is-public input[type="file"]::file-selector-button {
  color:#f3f5f7; background:#243443; border:1px solid #667888;
}
.is-public a:focus-visible,
.is-public button:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.is-public .or span { color:var(--muted); background:var(--surface); }
.is-public .live-player-card,
.is-public .stats-explainer article,
.is-public .banlist-footnote { color:var(--ink); background:var(--surface-muted); }
.is-public a.live-player-card:hover { color:var(--ink); background:#242b22; border-color:var(--blue); }
.is-public .live-player-card.unavailable { opacity:1; }
.is-public .banlist-permanent { color:#ffacb2; background:#3a1b22; }
.is-public .news-card .news-card-link { color:var(--blue); }
.is-public .news-article-body blockquote { color:var(--ink-soft); border-color:var(--muted); }
.is-public .news-article-body pre { color:var(--ink-soft); background:var(--surface-muted); }
.is-public .news-article-body pre code { color:inherit; }
.is-public .statistics-tabs a.active { color:var(--blue); background:#292415; }
.is-public .tournament-overview-grid dt,
.is-public .tournament-overview-grid p { color:#494020; }
.is-public .button.danger { color:#ffacb2; background:#3a1b22; border-color:#a3606a; }
.is-public .button.danger:hover { color:#ffe0e3; background:#52252d; }
.is-public .account-status-card.is-active,
.is-public .account-status-card.is-inactive,
.is-public .payment-summary { color:var(--ink); background:var(--surface-muted); }
.is-public .active-state-badge,
.is-public .skin-active-badge { color:var(--ink-soft); background:#24303b; }
.is-public .active-state-badge.is-active { color:#a3f5c4; background:#173626; }
@media(max-width:620px) {
  .is-public input,
  .is-public select,
  .is-public textarea { font-size:16px; }
}
