




:root {
  color-scheme: dark;
  --bg: #050b12;
  --bg-soft: #09131f;
  --surface: #0d1a28;
  --surface-2: #122235;
  --surface-3: #182b40;
  --text: #f5f8fb;
  --muted: #9aabba;
  --line: rgba(148, 163, 184, .18);
  --line-strong: rgba(148, 163, 184, .3);
  --accent: #5eead4;
  --accent-strong: #2dd4bf;
  --accent-blue: #7dd3fc;
  --danger: #fb7185;
  --warning: #fde68a;
  --success: #4ade80;
  --radius: 18px;
  --shadow: 0 18px 55px rgba(0, 0, 0, .28);
  --font: Vazirmatn, "Noto Sans Arabic", Tahoma, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body {
  min-width: 320px;
  min-height: 100svh;
  margin: 0;
  overflow-x: hidden;
  color: var(--text);
  background: linear-gradient(180deg, #07111c 0%, var(--bg) 65%);
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button, input, select, textarea { font: inherit; }
button, a, input, select, summary { -webkit-tap-highlight-color: transparent; }
button { border: 0; color: inherit; cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible, canvas:focus-visible, a:focus-visible {
  outline: 3px solid rgba(125, 211, 252, .75);
  outline-offset: 3px;
}
.hidden { display: none !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; top: 8px; right: 8px; padding: 10px 14px; transform: translateY(-160%); border-radius: 10px; color: #04110f; background: var(--accent); font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
.surface-card, .glass-card { border: 1px solid var(--line); background: rgba(13, 26, 40, .94); box-shadow: var(--shadow); }

.topbar {
  width: min(1220px, calc(100% - 32px));
  min-height: 68px;
  margin: 0 auto;
  padding-top: max(10px, env(safe-area-inset-top));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.brand { display: flex; align-items: center; gap: 10px; padding: 5px; background: transparent; text-align: right; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border: 0; border-radius: 0; color: inherit; background: transparent; }
.brand-mark b { font-size: 22px; line-height: 1; }
.brand-copy strong, .brand-copy small { display: block; }
.brand-copy strong { font-size: 15px; }
.brand-copy small { color: var(--muted); font-size: 11px; }
.top-actions { display: flex; align-items: center; gap: 8px; }
.icon-btn, .profile-chip { border: 1px solid var(--line); background: rgba(13, 26, 40, .86); }
.icon-btn { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; font-size: 18px; }
.icon-btn:hover, .profile-chip:hover { border-color: var(--line-strong); background: var(--surface-2); }
.sound-toggle.muted { opacity: .72; }
.profile-chip { min-height: 48px; padding: 5px 7px 5px 13px; display: flex; align-items: center; gap: 9px; border-radius: 14px; text-align: right; }
.profile-chip .avatar, .avatar { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; color: #05201d; background: var(--accent); font-weight: 900; }
.profile-chip strong, .profile-chip small { max-width: 150px; display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.profile-chip strong { font-size: 12px; }
.profile-chip small { color: var(--muted); font-size: 10px; }

main { width: min(1220px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 52px; }
.lobby-view { min-height: calc(100svh - 105px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, 480px); gap: clamp(28px, 6vw, 78px); align-items: center; }
.hero-copy { max-width: 670px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--accent); font-size: 12px; font-weight: 700; }
.eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.hero-copy h1 { margin: 15px 0 16px; font-size: clamp(42px, 7vw, 82px); line-height: 1.08; letter-spacing: -.035em; }
.hero-copy h1 em { color: var(--accent); font-style: normal; }
.hero-copy > p { max-width: 620px; margin: 0; color: var(--muted); font-size: clamp(15px, 1.7vw, 18px); line-height: 1.9; }
.hero-cta-row { margin-top: 25px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.primary-btn, .secondary-btn, .ghost-btn, .soft-btn, .danger-ghost, .mini-primary, .text-guide-btn {
  min-height: 44px;
  padding: 10px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px;
  font-weight: 750;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.primary-btn:hover, .secondary-btn:hover, .ghost-btn:hover, .soft-btn:hover, .mini-primary:hover { transform: translateY(-1px); }
.primary-btn, .mini-primary { color: #031513; background: var(--accent); }
.primary-btn:hover, .mini-primary:hover { background: #86f5e4; }
.secondary-btn { border: 1px solid rgba(125, 211, 252, .3); color: #dff6ff; background: rgba(125, 211, 252, .09); }
.bot-play-button { border-color: rgba(253, 230, 138, .32); color: #fff7cf; background: rgba(253, 230, 138, .075); }
.bot-play-button .giant-icon { background: rgba(253, 230, 138, .09); }
.ghost-btn, .soft-btn { border: 1px solid var(--line); background: rgba(13, 26, 40, .72); }
.danger-ghost { border: 1px solid rgba(251, 113, 133, .28); color: #fecdd3; background: rgba(251, 113, 133, .08); }
.text-guide-btn { min-height: 40px; padding-inline: 10px; color: var(--accent-blue); background: transparent; }
.hero-cta { min-width: 150px; }
.hero-cta i { font-size: 19px; font-style: normal; }
.full { width: 100%; }
.text-btn { padding: 8px; color: var(--accent-blue); background: transparent; }
.hero-stats { margin-top: 30px; display: flex; gap: 10px; flex-wrap: wrap; }
.hero-stats span { min-width: 100px; padding: 11px 14px; border-right: 2px solid rgba(94, 234, 212, .45); background: rgba(13, 26, 40, .48); }
.hero-stats b, .hero-stats small { display: block; }
.hero-stats b { font-size: 17px; }
.hero-stats small { color: var(--muted); font-size: 11px; }
.lobby-progress { max-width: 470px; margin-top: 17px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(13, 26, 40, .58); }
.lobby-progress > div, .profile-level > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lobby-progress small, .profile-level small { color: var(--muted); font-size: 11px; }
.progress-track { height: 7px; margin-top: 9px; display: block; overflow: hidden; border-radius: 99px; background: rgba(148, 163, 184, .15); }
.progress-track i { width: 0; height: 100%; display: block; border-radius: inherit; background: var(--accent); transition: width .25s ease; }
.lobby-stage { min-width: 0; }
.lobby-card { padding: clamp(18px, 3vw, 26px); border-radius: 24px; }
.card-head { margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.card-head > div { display: flex; align-items: center; gap: 8px; }
.card-head small { color: var(--muted); font-size: 11px; }
.status-dot { width: 9px; height: 9px; display: inline-block; flex: 0 0 auto; border-radius: 50%; background: var(--success); }
.giant { width: 100%; min-height: 74px; margin-top: 10px; padding: 13px 15px; justify-content: flex-start; text-align: right; }
.giant .giant-icon { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; background: rgba(3, 21, 19, .14); font-size: 23px; }
.giant > span:nth-child(2) { flex: 1; }
.giant b, .giant small { display: block; }
.giant b { font-size: 15px; }
.giant small { margin-top: 3px; color: inherit; opacity: .72; font-size: 11px; font-weight: 500; }
.giant i { font-style: normal; font-size: 20px; }
.divider { margin: 20px 0 13px; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 11px; }
.divider::before, .divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.join-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.join-row input { text-transform: uppercase; letter-spacing: .1em; direction: ltr; text-align: center; }
.room-hint { min-height: 21px; margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.features-row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.feature-card { min-width: 0; padding: 16px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 16px; background: rgba(13, 26, 40, .48); }
.feature-card > span { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; color: var(--accent); background: rgba(94, 234, 212, .08); font-size: 20px; }
.feature-card b, .feature-card small { display: block; }
.feature-card b { font-size: 13px; }
.feature-card small { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.65; }

.home-guide { grid-column: 1 / -1; margin-top: 18px; padding: clamp(22px, 4vw, 38px); scroll-margin-top: 18px; border: 1px solid var(--line); border-radius: 24px; background: #0a1623; }
.guide-heading { max-width: 720px; }
.guide-heading h2 { margin: 9px 0 7px; font-size: clamp(25px, 4vw, 38px); line-height: 1.25; }
.guide-heading p { margin: 0; color: var(--muted); font-size: 14px; }
.home-guide-steps { margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; list-style: none; }
.home-guide-steps li { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.home-guide-steps li > span { width: 33px; height: 33px; margin-bottom: 12px; display: grid; place-items: center; border-radius: 10px; color: #031513; background: var(--accent); font-weight: 900; }
.home-guide-steps b, .home-guide-steps small { display: block; }
.home-guide-steps b { font-size: 13px; }
.home-guide-steps small { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.75; }
.guide-details-grid { margin-top: 12px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.guide-details-grid article { padding: 14px; display: flex; align-items: flex-start; gap: 11px; border: 1px solid var(--line); border-radius: 14px; background: rgba(18, 34, 53, .58); }
.guide-details-grid article > span { color: var(--accent-blue); font-size: 20px; }
.guide-details-grid b, .guide-details-grid small { display: block; }
.guide-details-grid small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.guide-tip { margin-top: 12px; padding: 13px 15px; display: flex; gap: 8px; border-right: 3px solid var(--warning); border-radius: 10px; color: #dbe7f1; background: rgba(253, 230, 138, .06); }
.guide-tip span { color: var(--muted); }

/* Game */
.game-view { min-height: calc(100svh - 115px); }
.game-top { min-height: 66px; margin-bottom: 10px; padding: 9px 13px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-radius: 17px; }
.room-ident { display: flex; align-items: center; gap: 8px; }
.room-ident .room-label { color: var(--muted); font-size: 10px; }
.room-ident strong { direction: ltr; letter-spacing: .12em; font-size: 15px; }
.room-ident button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 10px; background: rgba(148, 163, 184, .06); }
.game-phase { display: flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; }
.game-phase strong { font-size: 13px; }
.game-phase small { min-width: 58px; color: var(--accent); font-size: 13px; font-weight: 900; text-align: center; font-variant-numeric: tabular-nums; }
.game-actions { display: flex; justify-content: flex-start; gap: 7px; }
.battle-guide-button { gap: 6px; }
.battle-guide-button > span:first-child { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid rgba(125, 211, 252, .32); border-radius: 7px; color: var(--accent-blue); }
.game-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 10px; align-items: stretch; }
.canvas-shell { min-width: 0; height: min(72svh, 720px); min-height: 520px; position: relative; overflow: hidden; border-radius: 18px; contain: layout paint; touch-action: manipulation; }
#gameCanvas { width: 100%; height: 100%; display: block; touch-action: manipulation; }
.game-sidebar { min-width: 0; display: flex; flex-direction: column; gap: 9px; }
.side-card { padding: 13px; border-radius: 15px; box-shadow: none; }
.side-title { margin-bottom: 9px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.side-title strong { font-size: 13px; }
.side-title span { color: var(--muted); font-size: 11px; }
.side-title span b { color: var(--text); }
.players-list { max-height: 285px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.player-row { min-height: 58px; padding: 7px 4px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid rgba(148, 163, 184, .1); }
.player-row:last-child { border-bottom: 0; }
.player-row.me { margin-inline: -5px; padding-inline: 8px; border-radius: 11px; background: rgba(94, 234, 212, .07); }
.player-row.eliminated { opacity: .56; }
.player-skin-avatar { --player-color: #5eead4; width: 44px; height: 44px; position: relative; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--player-color) 58%, transparent); border-radius: 13px; background: color-mix(in srgb, var(--player-color) 8%, #07121d); }
.player-skin-slot { width: 40px; height: 40px; display: block; overflow: hidden; border-radius: 11px; }
.player-rank { position: absolute; z-index: 6; top: -5px; right: -5px; width: 19px; height: 19px; display: grid; place-items: center; border: 1px solid rgba(148,163,184,.24); border-radius: 50%; color: var(--text); background: #1c2c3d; font-size: 9px; font-style: normal; box-shadow: 0 4px 10px rgba(0,0,0,.28); }
.player-identity { min-width: 0; }
.player-row b, .player-row small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.player-row b { font-size: 11px; }
.player-row small { color: var(--muted); font-size: 9px; }
.player-score { min-width: 50px; text-align: center; }
.player-score b { font-size: 12px; }
.mission-copy { display: flex; align-items: flex-start; gap: 9px; }
.mission-copy > span { color: var(--warning); font-size: 19px; }
.mission-copy b, .mission-copy small { display: block; }
.mission-copy b { font-size: 12px; }
.mission-copy small { color: var(--muted); font-size: 10px; }
.mission-reward { margin-top: 8px; display: block; color: var(--accent); font-size: 10px; }
.mission-card.completed { border-color: rgba(74, 222, 128, .36); }
.control-card input[type="range"] { width: 100%; accent-color: var(--accent); }
.percent-presets { margin-top: 8px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.percent-presets button { min-height: 35px; border: 1px solid var(--line); border-radius: 9px; background: rgba(148, 163, 184, .06); font-size: 10px; }
.percent-presets button.active { border-color: rgba(94, 234, 212, .5); color: var(--accent); background: rgba(94, 234, 212, .08); }
.secondary-panel summary { cursor: pointer; color: #d5e0ea; font-size: 12px; font-weight: 700; }
.emotes { margin-top: 10px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; }
.emotes button { min-height: 34px; border-radius: 8px; background: rgba(148, 163, 184, .08); }
.events-list { max-height: 110px; margin-top: 8px; overflow-y: auto; }
.events-list p { margin: 0; padding: 6px 0; border-bottom: 1px solid rgba(148, 163, 184, .08); color: var(--muted); font-size: 10px; }

.waiting-overlay, .result-overlay { position: absolute; inset: 0; z-index: 10; padding: clamp(18px, 5vw, 42px); display: flex; flex-direction: column; align-items: center; justify-content: center; overflow-y: auto; text-align: center; background: rgba(5, 12, 20, .96); }
.overlay-kicker { color: var(--accent); font-size: 11px; font-weight: 800; }
.waiting-overlay h2, .result-overlay h2 { margin: 7px 0; font-size: clamp(24px, 4vw, 38px); }
.waiting-overlay > p, .result-overlay > p { max-width: 620px; margin: 0; color: var(--muted); font-size: 13px; }
.lobby-code-card { margin-top: 17px; padding: 13px 15px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.lobby-code-card small { color: var(--muted); }
.lobby-code-card strong { direction: ltr; letter-spacing: .16em; font-size: 25px; }
.share-panel { width: min(620px, 100%); margin-top: 10px; text-align: right; }
.share-panel > small { color: var(--muted); font-size: 10px; }
.share-box { margin-top: 5px; display: grid; grid-template-columns: minmax(0, 1fr) auto; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #07111c; }
.share-box code { padding: 10px 12px; direction: ltr; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #cfe5f4; font-family: var(--font); font-size: 11px; }
.share-box button { padding: 8px 14px; border-right: 1px solid var(--line); background: var(--surface-2); }
.waiting-meta { margin-top: 10px; display: flex; justify-content: center; gap: 7px; flex-wrap: wrap; }
.waiting-meta span { padding: 5px 9px; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); background: rgba(148, 163, 184, .05); font-size: 10px; }
.waiting-actions, .result-actions { margin-top: 14px; display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.waiting-overlay > small { margin-top: 8px; color: var(--muted); font-size: 10px; }
.result-crown { color: var(--warning); font-size: 46px; }
.result-stats { width: min(620px, 100%); margin-top: 15px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.result-stats span { padding: 10px 5px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.result-stats b, .result-stats small { display: block; }
.result-stats b { font-size: 13px; }
.result-stats small { color: var(--muted); font-size: 9px; }
.result-mission { width: min(620px, 100%); margin-top: 10px; padding: 10px 12px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 12px; text-align: right; background: var(--surface); }
.result-mission > span { color: var(--warning); }
.result-mission b, .result-mission small { display: block; }
.result-mission small { color: var(--muted); font-size: 10px; }

.battle-guide { position: absolute; z-index: 24; top: 12px; right: 12px; width: min(430px, calc(100% - 24px)); max-height: calc(100% - 24px); padding: 22px; overflow: auto; border: 1px solid rgba(125, 211, 252, .32); border-radius: 18px; background: #0b1b2a; box-shadow: 0 24px 70px rgba(0, 0, 0, .5); }
.battle-guide-close { position: absolute; top: 10px; left: 10px; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); font-size: 22px; }
.guide-kicker { color: var(--accent-blue); font-size: 11px; font-weight: 800; }
.battle-guide h2 { margin: 7px 0 5px; font-size: 23px; }
.battle-guide > p { margin: 0; color: var(--muted); font-size: 12px; }
.guide-steps { margin: 14px 0 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.guide-steps li { padding: 10px; display: flex; align-items: flex-start; gap: 9px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.guide-steps li > span { width: 29px; height: 29px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; color: #031513; background: var(--accent); font-weight: 900; }
.guide-steps b, .guide-steps small { display: block; }
.guide-steps b { font-size: 12px; }
.guide-steps small { color: var(--muted); font-size: 10px; }
.guide-goal { margin-top: 9px; padding: 10px; display: flex; align-items: center; gap: 9px; border-radius: 11px; background: rgba(253, 230, 138, .07); }
.guide-goal > span { color: var(--warning); font-size: 21px; }
.guide-goal b, .guide-goal small { display: block; }
.guide-goal small { color: var(--muted); font-size: 10px; }
.battle-guide-done { width: 100%; margin-top: 11px; }

.connection-status, .field-banner, .spectator-banner, .momentum-chip, .game-toast { position: absolute; z-index: 18; border: 1px solid var(--line); background: rgba(6, 16, 26, .95); box-shadow: 0 12px 35px rgba(0, 0, 0, .32); }
.connection-status { top: 12px; left: 50%; padding: 8px 12px; transform: translateX(-50%); border-radius: 99px; color: var(--warning); font-size: 11px; }
.field-banner, .spectator-banner, .momentum-chip { top: 14px; right: 14px; padding: 9px 11px; display: flex; align-items: center; gap: 8px; border-radius: 12px; }
.field-banner b, .field-banner small, .spectator-banner b, .spectator-banner small, .momentum-chip b, .momentum-chip small { display: block; }
.field-banner small, .spectator-banner small, .momentum-chip small { color: var(--muted); font-size: 9px; }
.spectator-banner { right: auto; left: 14px; }
.momentum-chip { top: 72px; }
.game-toast { top: 68px; left: 50%; max-width: calc(100% - 28px); padding: 8px 13px; transform: translate(-50%, -9px); border-radius: 11px; opacity: 0; pointer-events: none; transition: .18s ease; font-size: 11px; text-align: center; }
.game-toast.show { opacity: 1; transform: translate(-50%, 0); }
.command-dock { position: absolute; z-index: 15; right: 14px; bottom: 14px; left: 14px; min-height: 70px; padding: 10px 50px 10px 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(170px, 1fr); align-items: center; gap: 12px; border: 1px solid rgba(94, 234, 212, .32); border-radius: 15px; background: rgba(7, 22, 32, .96); box-shadow: 0 18px 55px rgba(0, 0, 0, .38); }
.dock-close { position: absolute; top: 50%; right: 10px; width: 34px; height: 34px; transform: translateY(-50%); border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.dock-status { display: flex; align-items: center; gap: 9px; }
#selectedMarker { width: 33px; height: 33px; display: block; border: 2px solid; border-radius: 50%; }
.dock-status small, .dock-status b, .dock-troops small, .dock-troops b { display: block; }
.dock-status small, .dock-troops small { color: var(--muted); font-size: 9px; }
.dock-status b { font-size: 12px; }
.dock-troops { text-align: center; }
.dock-troops b { font-size: 16px; }
.command-dock p { margin: 0; color: var(--muted); font-size: 10px; text-align: left; }

/* Modals and forms */
.modal-backdrop { position: fixed; inset: 0; z-index: 50; padding: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)); display: grid; place-items: center; background: rgba(2, 7, 12, .84); }
.modal { width: min(450px, 100%); max-height: min(92svh, 900px); padding: 25px; position: relative; overflow: auto; border: 1px solid var(--line-strong); border-radius: 22px; background: #0c1927; box-shadow: 0 28px 90px rgba(0, 0, 0, .58); }
.modal-wide { width: min(1000px, 100%); }
.modal-close { position: absolute; z-index: 2; top: 12px; left: 12px; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); font-size: 23px; }
.modal-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; color: var(--accent); background: rgba(94, 234, 212, .08); font-size: 24px; }
.modal h2 { margin: 9px 0 7px; font-size: 25px; }
.modal > p, .modal-title-row p { margin: 0; color: var(--muted); font-size: 12px; }
.modal form label { margin-top: 14px; display: block; color: #dbe5ee; font-size: 12px; font-weight: 650; }
input, select { width: 100%; min-height: 46px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 11px; color: var(--text); background: #07121d; }
input::placeholder { color: #697b8b; }
select { cursor: pointer; }
.form-help { margin-top: 5px; display: block; color: var(--muted); font-size: 10px; font-weight: 400; }
.otp-input { direction: ltr; text-align: center; letter-spacing: .35em; font-size: 20px; }
.auth-separator { margin: 17px 0 10px; display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; }
.auth-separator::before, .auth-separator::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.auth-availability-notice { margin-top: 13px; padding: 11px 13px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(251,191,36,.26); border-radius: 14px; background: rgba(251,191,36,.055); }
.auth-availability-notice > span { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: #fde68a; background: rgba(251,191,36,.1); font-size: 17px; }
.auth-availability-notice b, .auth-availability-notice small { display: block; }
.auth-availability-notice b { color: #fef3c7; font-size: 11px; }
.auth-availability-notice small { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.65; }
.auth-unavailable { margin: 14px 0 4px; padding: 13px; border: 1px solid rgba(251,191,36,.28); border-radius: 13px; background: rgba(251,191,36,.06); }
.auth-unavailable b { display: block; color: #fef3c7; font-size: 12px; }
.auth-unavailable p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.75; }
.form-grid.two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.toggle-row { padding: 12px; display: flex !important; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(148, 163, 184, .04); }
.toggle-row b, .toggle-row small { display: block; }
.toggle-row small { color: var(--muted); font-size: 10px; font-weight: 400; }
.toggle-row input { width: 22px; min-height: 22px; flex: 0 0 auto; accent-color: var(--accent); }
.modal-title-row { padding-left: 45px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.wallet { min-height: 42px; padding: 8px 12px; display: flex; align-items: center; gap: 6px; flex: 0 0 auto; border: 1px solid rgba(253, 230, 138, .24); border-radius: 12px; color: var(--warning); background: rgba(253, 230, 138, .06); }
.section-label { margin: 23px 0 9px; font-size: 14px; }
.shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.shop-item { min-height: 175px; padding: 15px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.shop-item .badge { align-self: flex-start; padding: 4px 8px; border-radius: 99px; color: var(--accent); background: rgba(94, 234, 212, .08); font-size: 9px; }
.shop-item h4 { margin: 11px 0 4px; font-size: 15px; }
.shop-item p { flex: 1; margin: 0; color: var(--muted); font-size: 11px; }
.shop-item strong { margin: 10px 0; }
.cosmetics-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.cosmetic { min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); text-align: center; }
.cosmetic.owned { border-color: rgba(94, 234, 212, .32); }
.cosmetic.equipped { box-shadow: inset 0 0 0 2px rgba(94, 234, 212, .35); }
.skin-preview { --skin-a: #5eead4; --skin-b: #0f766e; --skin-accent: #e2e8f0; --skin-text: #fff; --skin-border: 2px; height: 82px; margin-bottom: 9px; position: relative; display: grid; place-items: center; overflow: hidden; border-radius: 11px; background: linear-gradient(145deg, color-mix(in srgb, var(--skin-a) 18%, #07121d), #07121d); isolation: isolate; }
.preview-core { width: 32px; height: 32px; z-index: 3; border: var(--skin-border) solid var(--skin-a); border-radius: 50%; background: var(--skin-b); box-shadow: inset 7px -7px 0 color-mix(in srgb, var(--skin-accent) 12%, transparent); }
.preview-ring { width: 52px; height: 52px; position: absolute; z-index: 2; border: var(--skin-border) solid var(--skin-a); border-radius: 50%; opacity: .78; }
.preview-ring-text { width: 76px; height: 76px; position: absolute; z-index: 4; overflow: visible; pointer-events: none; }
.preview-ring-text path { fill: none; }
.preview-ring-text text { fill: var(--skin-text); stroke: rgba(2, 7, 12, .92); stroke-width: 1.25px; paint-order: stroke fill; font-family: var(--font); font-weight: 850; letter-spacing: .4px; }
.skin-preview:not([data-ornament="text"]) .preview-ring-text { display: none; }
.skin-preview[data-ornament="none"] .preview-ring { opacity: .18; }
.skin-preview[data-ring="dashed"] .preview-ring { border-style: dashed; }
.skin-preview[data-ring="double"] .preview-ring { border-style: double; border-width: calc(var(--skin-border) + 2px); }
.skin-preview[data-ring="dotted"] .preview-ring { border-style: dotted; border-width: calc(var(--skin-border) + 1px); }
.skin-preview[data-effect="clean"] .preview-ring { display: none; }
.skin-preview[data-effect="hex"] .preview-ring { border-radius: 0; clip-path: polygon(25% 4%, 75% 4%, 98% 50%, 75% 96%, 25% 96%, 2% 50%); box-shadow: inset 0 0 0 var(--skin-border) var(--skin-a); border: 0; }
.skin-preview[data-effect="arc"] .preview-ring { border-top-color: transparent; border-left-color: transparent; transform: rotate(25deg); }
.skin-preview[data-effect="diamond"] .preview-ring, .skin-preview[data-effect="square"] .preview-ring { border-radius: 5px; transform: rotate(45deg); }
.skin-preview[data-effect="double"] .preview-ring { width: 57px; height: 57px; border-style: double; border-width: 4px; }
.skin-preview[data-effect="shield"] .preview-ring { border-radius: 8px 8px 18px 18px; clip-path: polygon(50% 0, 95% 22%, 82% 72%, 50% 100%, 18% 72%, 5% 22%); box-shadow: inset 0 0 0 var(--skin-border) var(--skin-a); border: 0; }
.skin-preview[data-effect="dots"] .preview-ring { border-style: dotted; border-width: 4px; }
.skin-preview[data-effect="rays"] .preview-ring { border-style: dashed; transform: rotate(22.5deg); }
.skin-preview[data-effect="star"] .preview-ring { border-radius: 0; clip-path: polygon(50% 0, 61% 36%, 100% 50%, 61% 64%, 50% 100%, 39% 64%, 0 50%, 39% 36%); box-shadow: inset 0 0 0 var(--skin-border) var(--skin-a); border: 0; }
.skin-preview[data-effect="leaf"] .preview-ring { border-radius: 50% 8px 50% 8px; transform: rotate(45deg); }
.skin-preview[data-effect="wave"] .preview-ring { width: 58px; height: 36px; border-right-color: transparent; border-left-color: transparent; }
.skin-preview[data-core="hex"] .preview-core { border-radius: 0; clip-path: polygon(25% 4%, 75% 4%, 98% 50%, 75% 96%, 25% 96%, 2% 50%); }
.skin-preview[data-core="diamond"] .preview-core, .skin-preview[data-core="square"] .preview-core { border-radius: 5px; transform: rotate(45deg); }
.skin-preview[data-core="shield"] .preview-core { border-radius: 5px 5px 13px 13px; clip-path: polygon(50% 0, 95% 22%, 82% 72%, 50% 100%, 18% 72%, 5% 22%); }
.skin-preview.compact-preview { width: 40px; height: 40px; margin: 0; border-radius: 10px; background: color-mix(in srgb, var(--skin-a) 10%, #07121d); }
.compact-preview .preview-core { width: 17px; height: 17px; border-width: max(1px, calc(var(--skin-border) * .65)); box-shadow: inset 3px -3px 0 color-mix(in srgb, var(--skin-accent) 13%, transparent); }
.compact-preview .preview-ring { width: 28px; height: 28px; border-width: max(1px, calc(var(--skin-border) * .7)); }
.compact-preview .preview-ring-text { width: 39px; height: 39px; }
.compact-preview .preview-ring-text text { font-size: 10px !important; stroke-width: 1.7px; letter-spacing: 0; }
.compact-preview[data-effect="double"] .preview-ring { width: 31px; height: 31px; border-width: 3px; }
.compact-preview[data-effect="wave"] .preview-ring { width: 31px; height: 21px; }
.cosmetic b, .cosmetic small { display: block; overflow: hidden; text-overflow: ellipsis; }
.cosmetic b { font-size: 12px; white-space: nowrap; }
.cosmetic small { min-height: 36px; margin: 3px 0 7px; color: var(--muted); font-size: 9px; }
.cosmetic button { width: 100%; min-height: 36px; padding: 6px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); font-size: 10px; }
.leaderboard-list { margin-top: 16px; }
.leader-row { min-height: 57px; padding: 8px; display: grid; grid-template-columns: 38px minmax(0, 1fr) repeat(3, minmax(70px, auto)); align-items: center; gap: 8px; border-bottom: 1px solid var(--line); }
.leader-rank { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 10px; background: var(--surface-2); font-weight: 900; }
.leader-name b, .leader-name small, .leader-metric b { display: block; }
.leader-name small, .leader-metric { color: var(--muted); font-size: 10px; }
.leader-metric b { color: var(--text); font-size: 12px; }
.loading, .empty-state { color: var(--muted); text-align: center; }

.profile-modal { width: min(1040px, 100%); }
.guest-profile { max-width: 430px; margin: 30px auto; text-align: center; }
.guest-profile .modal-icon { margin-inline: auto; }
.profile-header { padding-left: 45px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; }
.profile-header h2 { margin: 3px 0; }
.profile-header p { margin: 0; direction: ltr; color: var(--muted); font-size: 11px; text-align: right; }
.profile-avatar { width: 58px; height: 58px; display: grid; place-items: center; border: 2px solid rgba(94, 234, 212, .42); border-radius: 18px; color: var(--accent); background: var(--surface-2); font-size: 24px; font-weight: 900; }
.profile-stats { margin: 16px 0 10px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; }
.profile-stats span { padding: 11px 5px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); text-align: center; }
.profile-stats b, .profile-stats small { display: block; }
.profile-stats b { font-size: 15px; }
.profile-stats small { color: var(--muted); font-size: 9px; }
.profile-level { padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.profile-layout { margin-top: 11px; display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); gap: 10px; }
.profile-section { padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.profile-section h3 { margin: 0 0 8px; font-size: 14px; }
.profile-history { max-height: 300px; overflow-y: auto; }
.history-row { min-height: 55px; padding: 8px 5px; display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.history-row:last-child { border-bottom: 0; }
.history-result { color: #cbd7e2; font-weight: 800; }
.history-row.won .history-result { color: var(--success); }
.history-row b, .history-row small { display: block; }
.history-row small, .history-row time { color: var(--muted); font-size: 9px; }

.referral-card { margin-top: 12px; padding: clamp(15px, 2.5vw, 22px); border: 1px solid rgba(94,234,212,.22); border-radius: 18px; background: linear-gradient(145deg, rgba(94,234,212,.055), rgba(125,211,252,.025) 52%, rgba(12,25,39,.92)); box-shadow: inset 0 1px 0 rgba(255,255,255,.025); }
.referral-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.referral-copy { min-width: 0; display: flex; align-items: flex-start; gap: 11px; }
.referral-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(94,234,212,.25); border-radius: 13px; color: var(--accent); background: rgba(94,234,212,.08); font-size: 20px; font-weight: 900; }
.referral-copy h3 { margin: 0 0 4px; font-size: 16px; }
.referral-copy p { max-width: 670px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.9; }
.referral-badge { padding: 6px 9px; flex: 0 0 auto; border: 1px solid rgba(253,230,138,.2); border-radius: 999px; color: var(--warning); background: rgba(253,230,138,.055); font-size: 9px; white-space: nowrap; }
.referral-stats { margin-top: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.referral-stats span { min-height: 66px; padding: 11px 13px; display: flex; flex-direction: column; justify-content: center; border: 1px solid var(--line); border-radius: 13px; background: rgba(7,18,29,.72); }
.referral-stats b { color: var(--accent); font-size: 19px; line-height: 1.2; }
.referral-stats small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.referral-share-grid { margin-top: 10px; display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.25fr); gap: 8px; }
.invite-code-box, .invite-link-box { min-width: 0; min-height: 70px; padding: 10px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 13px; background: #07121d; }
.invite-code-box > div, .invite-link-box > div { min-width: 0; }
.invite-code-box small, .invite-link-box small { display: block; margin-bottom: 3px; color: var(--muted); font-size: 9px; }
.invite-code-box strong { display: block; color: var(--warning); font-size: 20px; letter-spacing: .16em; overflow-wrap: anywhere; }
.invite-link-box code { display: block; overflow: hidden; color: var(--accent-blue); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; direction: ltr; text-align: left; white-space: nowrap; text-overflow: ellipsis; }
.invite-code-box button, .invite-link-box button { min-height: 38px; padding: 7px 10px; white-space: nowrap; }
.referral-share-button { width: 100%; min-height: 46px; margin-top: 10px; display: flex; align-items: center; justify-content: center; gap: 8px; }
.referral-share-button span { font-size: 17px; }
.referral-note { margin-top: 9px; padding: 9px 10px; display: flex; align-items: flex-start; gap: 7px; border-radius: 10px; color: var(--muted); background: rgba(148,163,184,.045); font-size: 9px; line-height: 1.8; }
.referral-note > span { width: 18px; height: 18px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(148,163,184,.23); border-radius: 50%; color: var(--accent-blue); font-size: 10px; font-weight: 900; }

.creator-settings { margin-top: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(18, 34, 53, .55); }
.creator-settings summary { cursor: pointer; font-weight: 750; }
.creator-settings[open] summary { margin-bottom: 5px; }

.toast { position: fixed; z-index: 80; right: 50%; bottom: max(18px, env(safe-area-inset-bottom)); max-width: min(440px, calc(100% - 28px)); padding: 11px 15px; transform: translate(50%, 18px); border: 1px solid var(--line); border-radius: 12px; background: #102132; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: .2s ease; text-align: center; }
.toast.show { opacity: 1; transform: translate(50%, 0); }
.is-loading { pointer-events: none; }
.is-loading::after { content: ""; width: 15px; height: 15px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(1turn); } }

/* Battle focus uses the browser viewport, not browser fullscreen. */
body.battle-focus { height: 100svh; overflow: hidden; }
body.battle-focus > .topbar { display: none; }
body.battle-focus main { width: 100%; height: 100svh; padding: 0; }
body.battle-focus #gameView { position: fixed; inset: 0; z-index: 30; padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; background: var(--bg); }
body.battle-focus .game-top { min-height: 56px; margin-bottom: 8px; padding: 6px 10px; border-radius: 14px; box-shadow: none; }
body.battle-focus .game-grid { min-height: 0; height: 100%; grid-template-columns: minmax(0, 1fr) clamp(270px, 22vw, 330px); align-items: stretch; }
body.battle-focus .canvas-shell { height: auto; min-height: 0; border-radius: 15px; box-shadow: none; }
body.battle-focus .game-sidebar { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
body.battle-focus .side-card { box-shadow: none; }
body.battle-focus .players-list { max-height: min(31svh, 255px); }

@media (max-width: 980px) {
  .lobby-view { grid-template-columns: minmax(0, 1fr) minmax(330px, 420px); gap: 28px; }
  .home-guide-steps { grid-template-columns: repeat(2, 1fr); }
  .cosmetics-grid { grid-template-columns: repeat(3, 1fr); }
  .game-grid { grid-template-columns: minmax(0, 1fr) 270px; }
  .leader-row { grid-template-columns: 38px minmax(0, 1fr) repeat(2, minmax(64px, auto)); }
  .leader-row .leader-metric:last-child { display: none; }
}

@media (max-width: 760px) {
  .topbar { width: min(100% - 22px, 720px); min-height: 62px; }
  .brand-copy small { display: none; }
  .profile-chip > span:last-child { display: none; }
  .profile-chip { padding: 5px; }
  main { width: min(100% - 22px, 720px); padding-top: 20px; }
  .lobby-view { min-height: auto; grid-template-columns: 1fr; gap: 20px; }
  .hero-copy { text-align: center; }
  .hero-copy h1 { font-size: clamp(40px, 13vw, 65px); }
  .hero-copy > p { margin-inline: auto; }
  .hero-cta-row, .hero-stats { justify-content: center; }
  .lobby-progress { margin-inline: auto; text-align: right; }
  .lobby-stage { width: min(100%, 520px); margin-inline: auto; }
  .features-row { grid-template-columns: 1fr; }
  .feature-card { min-height: 76px; }
  .guide-details-grid { grid-template-columns: 1fr; }
  .game-top { grid-template-columns: auto minmax(0, 1fr) auto; }
  .room-ident .room-label { display: none; }
  .game-phase { flex-wrap: wrap; gap: 4px 7px; }
  .game-phase strong { width: 100%; order: 2; font-size: 10px; text-align: center; }
  .game-phase small { font-size: 12px; }
  .game-actions .button-label { display: none; }
  .game-actions .soft-btn { width: 40px; padding: 7px; }
  .game-grid { grid-template-columns: 1fr; }
  .canvas-shell { min-height: 460px; height: 62svh; }
  .game-sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .secondary-panel { grid-column: 1 / -1; }
  .shop-grid { grid-template-columns: 1fr; }
  .shop-item { min-height: auto; }
  .modal-title-row { display: block; }
  .modal-title-row .wallet { width: fit-content; margin-top: 10px; }
  .profile-stats { grid-template-columns: repeat(3, 1fr); }
  .profile-layout { grid-template-columns: 1fr; }
  .referral-share-grid { grid-template-columns: 1fr; }
  .profile-header { grid-template-columns: auto minmax(0, 1fr); }
  .profile-header .wallet { grid-column: 1 / -1; justify-self: stretch; justify-content: center; }
  .leader-row { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .leader-row .leader-metric:nth-last-child(-n+2) { display: none; }

  body.battle-focus .game-grid { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; gap: 7px; }
  body.battle-focus .canvas-shell { min-height: 0; }
  body.battle-focus .game-sidebar { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(255px, 88vw); grid-template-columns: none; gap: 7px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; }
  body.battle-focus .side-card { min-height: 142px; scroll-snap-align: start; }
  body.battle-focus .control-card { order: -3; }
  body.battle-focus .roster-card { order: -2; }
  body.battle-focus .mission-card { order: -1; }
  body.battle-focus .secondary-panel { grid-column: auto; }
  body.battle-focus .players-list { max-height: 100px; }
  body.battle-focus .player-row { min-height: 46px; }
}

@media (max-width: 520px) {
  body { font-size: 13px; }
  .top-actions { gap: 5px; }
  .icon-btn { width: 40px; height: 40px; border-radius: 11px; }
  .brand-mark { width: 39px; height: 39px; }
  .hero-copy h1 { margin-top: 12px; }
  .hero-cta-row > button { flex: 1 1 135px; }
  .text-guide-btn { flex-basis: 100% !important; }
  .hero-stats { gap: 6px; }
  .hero-stats span { min-width: 88px; padding: 9px 10px; }
  .lobby-card, .home-guide, .modal { padding: 18px; border-radius: 18px; }
  .home-guide-steps { grid-template-columns: 1fr; }
  .guide-tip { display: block; }
  .guide-tip b { display: block; margin-bottom: 3px; }
  .giant { min-height: 70px; }
  .form-grid.two-columns { grid-template-columns: 1fr; gap: 0; }
  .cosmetics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lobby-code-card { width: 100%; grid-template-columns: 1fr auto; }
  .lobby-code-card small { grid-column: 1 / -1; }
  .lobby-code-card strong { font-size: 22px; text-align: right; }
  .result-stats { grid-template-columns: repeat(2, 1fr); }
  .command-dock { right: 8px; bottom: 8px; left: 8px; padding: 8px 43px 8px 9px; grid-template-columns: minmax(0, 1fr) auto; }
  .command-dock p { grid-column: 1 / -1; text-align: right; }
  .percent-presets { grid-template-columns: repeat(2, 1fr); }
  .profile-stats { grid-template-columns: repeat(2, 1fr); }
  .profile-stats span:first-child { grid-column: 1 / -1; }
  .referral-header { display: block; }
  .referral-badge { width: fit-content; margin-top: 10px; display: block; }
  .referral-stats { grid-template-columns: 1fr 1fr; }
  .invite-code-box, .invite-link-box { grid-template-columns: minmax(0, 1fr) auto; }
  .invite-code-box strong { font-size: 18px; }
  .history-row { grid-template-columns: 78px minmax(0, 1fr); }
  .history-row time { grid-column: 1 / -1; }
  .modal-backdrop { place-items: end center; padding: 8px; }
  .modal { width: 100%; max-height: 94svh; border-radius: 20px 20px 12px 12px; }
  .battle-guide { top: 8px; right: 8px; width: calc(100% - 16px); max-height: calc(100% - 16px); padding: 18px; }
  body.battle-focus #gameView { padding: max(5px, env(safe-area-inset-top)) max(5px, env(safe-area-inset-right)) max(5px, env(safe-area-inset-bottom)) max(5px, env(safe-area-inset-left)); }
  body.battle-focus .game-top { min-height: 50px; margin-bottom: 5px; padding: 4px 6px; }
  body.battle-focus .room-ident strong { font-size: 12px; letter-spacing: .08em; }
  body.battle-focus .room-ident button { width: 33px; height: 33px; }
  body.battle-focus .game-actions .danger-ghost { min-height: 35px; padding: 6px 9px; font-size: 10px; }
  body.battle-focus .game-sidebar { grid-auto-columns: minmax(238px, 84vw); }
  body.battle-focus .side-card { min-height: 128px; padding: 10px; }
}

@media (max-height: 620px) and (orientation: landscape) {
  body.battle-focus .game-top { min-height: 46px; }
  body.battle-focus .game-phase strong { display: none; }
  body.battle-focus .game-grid { grid-template-columns: minmax(0, 1fr) minmax(250px, 34vw); grid-template-rows: 1fr; }
  body.battle-focus .game-sidebar { display: flex; overflow-y: auto; overflow-x: hidden; }
  body.battle-focus .side-card { min-height: auto; }
  body.battle-focus .players-list { max-height: 120px; }
  .waiting-overlay, .result-overlay { justify-content: flex-start; }
}

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

/* Admin dashboard and full skin manager */
.admin-page { background: #050b12; }
.admin-topbar { width: min(1440px, calc(100% - 28px)); }
.admin-top-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.admin-connection { padding: 7px 10px; border: 1px solid rgba(74, 222, 128, .25); border-radius: 99px; color: #bbf7d0; background: rgba(74, 222, 128, .07); font-size: 11px; }
.admin-connection.error { border-color: rgba(251, 113, 133, .3); color: #fecdd3; background: rgba(251, 113, 133, .07); }
.admin-shell { width: min(1440px, calc(100% - 28px)); padding-top: 20px; }
.admin-hero { padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-radius: 20px; }
.admin-hero h1 { margin: 6px 0 3px; font-size: clamp(24px, 4vw, 38px); }
.admin-hero p { margin: 0; color: var(--muted); }
.admin-last-update { color: var(--muted); font-size: 11px; white-space: nowrap; }
.admin-metrics { margin: 13px 0; display: grid; grid-template-columns: repeat(7, minmax(120px, 1fr)); gap: 8px; }
.metric-card { min-width: 0; padding: 13px; border-radius: 14px; box-shadow: none; }
.metric-card b, .metric-card small { display: block; overflow: hidden; text-overflow: ellipsis; }
.metric-card b { color: var(--accent); font-size: 17px; white-space: nowrap; }
.metric-card small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-panel { min-width: 0; padding: 18px; border-radius: 18px; box-shadow: none; }
.admin-live-panel, .admin-users-panel, .skin-manager-panel { grid-column: 1 / -1; }
.admin-panel-head { margin-bottom: 13px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.admin-panel-head h2 { margin: 0; font-size: 18px; }
.admin-panel-head p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.admin-pill, .noncash-badge { padding: 6px 9px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 99px; color: var(--accent); background: rgba(94, 234, 212, .06); font-size: 9px; }
.admin-table-wrap { max-width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 13px; }
.admin-table-wrap table { width: 100%; border-collapse: collapse; min-width: 690px; }
.admin-table-wrap th, .admin-table-wrap td { padding: 10px 11px; border-bottom: 1px solid var(--line); text-align: right; vertical-align: middle; font-size: 11px; }
.admin-table-wrap th { position: sticky; top: 0; z-index: 1; color: var(--muted); background: #0c1927; font-size: 9px; }
.admin-table-wrap tr:last-child td { border-bottom: 0; }
.admin-table-wrap td b, .admin-table-wrap td small { display: block; }
.admin-table-wrap td small { color: var(--muted); font-size: 9px; }
.empty-cell { padding: 25px !important; color: var(--muted); text-align: center !important; }
.status-badge { display: inline-flex; padding: 4px 7px; border-radius: 99px; color: #dbeafe; background: rgba(125, 211, 252, .1); font-size: 9px; white-space: nowrap; }
.status-badge.paid, .status-badge.playing { color: #bbf7d0; background: rgba(74, 222, 128, .1); }
.status-badge.cancelled, .status-badge.failed { color: #fecdd3; background: rgba(251, 113, 133, .1); }
.admin-search { width: min(260px, 100%); min-height: 39px; }
.table-action { min-height: 34px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); font-size: 9px; white-space: nowrap; }
.table-action:hover { border-color: var(--line-strong); }
.danger-action { border-color: rgba(251, 113, 133, .28); color: #fecdd3; background: rgba(251, 113, 133, .07); }
.coin-adjustment { margin-bottom: 12px; padding: 12px; display: grid; grid-template-columns: minmax(170px, .35fr) minmax(0, 1fr); gap: 12px; align-items: center; border: 1px solid rgba(94, 234, 212, .25); border-radius: 13px; background: rgba(94, 234, 212, .04); }
.coin-adjustment b, .coin-adjustment small { display: block; }
.coin-adjustment small { color: var(--muted); }
.coin-adjustment form { display: grid; grid-template-columns: 140px minmax(180px, 1fr) auto auto; gap: 7px; }
.coin-adjustment input { min-height: 40px; }

.skin-manager-head { align-items: center; }
.skin-manager-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(240px, .5fr); gap: 16px; align-items: start; }
.skin-editor-form { padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: rgba(7, 18, 29, .74); }
.admin-form label { display: block; color: #dbe5ee; font-size: 10px; font-weight: 700; }
.admin-form label small { min-height: 17px; margin-top: 3px; display: block; color: var(--muted); font-size: 8px; font-weight: 400; }
.admin-form input, .admin-form select { min-height: 42px; margin-top: 4px; }
.skin-editor-title { margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.skin-editor-title b, .skin-editor-title small { display: block; }
.skin-editor-title small { color: var(--muted); font-size: 9px; }
.form-grid.three-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.form-grid.four-columns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.admin-form .form-grid { margin-bottom: 10px; }
.color-fields input[type="color"] { min-height: 42px; padding: 5px; cursor: pointer; }
.compact-fields input { text-align: center; }
.check-label.editor-active { min-height: 63px; padding: 8px 11px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 11px; background: #07121d; }
.check-label.editor-active input { width: 20px; min-height: 20px; margin: 0; accent-color: var(--accent); }
.skin-live-preview { position: sticky; top: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: #07121d; text-align: center; }
.skin-live-preview .section-label { margin-top: 0; display: block; color: var(--muted); font-size: 10px; }
.large-preview { height: 250px; margin: 9px 0 12px; border-radius: 16px; }
.large-preview .preview-core { width: 78px; height: 78px; }
.large-preview .preview-ring { width: 128px; height: 128px; }
.large-preview .preview-ring-text { width: 190px; height: 190px; }
.skin-live-preview b, .skin-live-preview small { display: block; }
.skin-live-preview b { font-size: 17px; }
.skin-live-preview small { color: var(--muted); }
.preview-note { margin-top: 11px; padding: 8px; border-radius: 9px; color: var(--muted); background: rgba(148, 163, 184, .05); font-size: 8px; }
.skin-library-toolbar { margin: 16px 0 9px; padding-top: 14px; display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 280px) 145px 145px; gap: 8px; align-items: center; border-top: 1px solid var(--line); }
.skin-library-toolbar b, .skin-library-toolbar small { display: block; }
.skin-library-toolbar small { color: var(--muted); font-size: 9px; }
.skin-library-toolbar select, .skin-library-toolbar input { min-height: 40px; }
.admin-skin-list { display: grid; gap: 7px; }
.admin-skin-row { min-width: 0; padding: 9px; display: grid; grid-template-columns: 88px minmax(160px, 1fr) 72px auto minmax(245px, auto); align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 13px; background: rgba(7, 18, 29, .7); }
.admin-skin-row.inactive { opacity: .58; }
.mini-skin-preview { width: 88px; height: 68px; margin: 0; }
.mini-skin-preview .preview-ring-text { width: 66px; height: 66px; }
.admin-skin-copy { min-width: 0; }
.admin-skin-copy b, .admin-skin-copy small, .admin-skin-copy em { display: block; overflow: hidden; text-overflow: ellipsis; }
.admin-skin-copy b { white-space: nowrap; }
.admin-skin-copy small { color: var(--muted); font-size: 9px; }
.admin-skin-copy em { margin-top: 2px; color: #6f8293; font-size: 8px; font-style: normal; }
.skin-library-price { text-align: center; }
.skin-library-price b, .skin-library-price small { display: block; }
.skin-library-price b { color: var(--warning); }
.skin-library-price small { color: var(--muted); font-size: 8px; }
.admin-skin-actions { display: flex; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }

@media (max-width: 1180px) {
  .admin-metrics { grid-template-columns: repeat(4, 1fr); }
  .skin-manager-layout { grid-template-columns: 1fr 260px; }
  .admin-skin-row { grid-template-columns: 80px minmax(150px, 1fr) 65px auto; }
  .admin-skin-actions { grid-column: 2 / -1; }
}

@media (max-width: 820px) {
  .admin-shell, .admin-topbar { width: min(100% - 18px, 760px); }
  .admin-topbar { align-items: flex-start; }
  .admin-brand .brand-copy small { display: none; }
  .admin-hero { display: block; }
  .admin-last-update { margin-top: 8px; }
  .admin-metrics { grid-template-columns: repeat(2, 1fr); }
  .admin-grid { grid-template-columns: 1fr; }
  .admin-panel { grid-column: 1; padding: 13px; }
  .skin-manager-layout { grid-template-columns: 1fr; }
  .skin-live-preview { position: static; }
  .large-preview { height: 210px; }
  .form-grid.three-columns, .form-grid.four-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .skin-library-toolbar { grid-template-columns: 1fr 1fr; }
  .skin-library-toolbar > div { grid-column: 1 / -1; }
  .admin-skin-row { grid-template-columns: 74px minmax(0, 1fr) auto; }
  .admin-skin-row > .status-badge { display: none; }
  .admin-skin-actions { grid-column: 1 / -1; justify-content: stretch; }
  .admin-skin-actions .table-action { flex: 1; }
  .coin-adjustment { grid-template-columns: 1fr; }
  .coin-adjustment form { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .admin-top-actions { justify-content: flex-end; }
  .admin-connection { width: 100%; text-align: center; }
  .admin-hero { padding: 17px; }
  .admin-panel-head { display: block; }
  .admin-panel-head .admin-search, .admin-panel-head .admin-pill, .admin-panel-head .noncash-badge { margin-top: 8px; }
  .form-grid.three-columns, .form-grid.four-columns, .admin-form .form-grid.two-columns { grid-template-columns: 1fr; }
  .skin-library-toolbar { grid-template-columns: 1fr; }
  .skin-library-toolbar > div { grid-column: auto; }
  .skin-library-toolbar .admin-search { width: 100%; }
  .admin-skin-row { grid-template-columns: 70px minmax(0, 1fr); }
  .skin-library-price { grid-column: 1; }
  .admin-skin-actions { grid-column: 1 / -1; }
  .coin-adjustment form { grid-template-columns: 1fr; }
  .large-preview { height: 185px; }
  .large-preview .preview-ring-text { width: 170px; height: 170px; }
}

/* Final audit: readability, responsive density and accessible controls */
body { font-size: 15px; }
button, input, select, textarea { min-width: 0; }
input, select, textarea { font-size: 16px; }
.modal-backdrop[aria-hidden="true"] { visibility: hidden; }
.modal { overscroll-behavior: contain; }
.floating-emote {
  position: absolute; right: 18px; z-index: 19; padding: 9px 12px;
  border: 1px solid rgba(148,163,184,.22); border-radius: 11px;
  color: var(--text); background: rgba(4,11,19,.94); box-shadow: 0 12px 30px rgba(0,0,0,.3);
  font-size: 12px; font-weight: 700; pointer-events: none; transition: transform .45s ease, opacity .45s ease;
}
.player-row b { font-size: 12px; }
.player-row small, .events-list p, .mission-copy small, .mission-reward, .command-dock p { font-size: 11px; }
.percent-presets button { min-height: 40px; font-size: 11px; }
.keyboard-hint { line-height: 1.5; }
.shop-item p, .cosmetic small, .leader-name small, .leader-metric, .history-row small, .history-row time { font-size: 11px; }
.cosmetic button { min-height: 42px; font-size: 11px; }

.admin-page { font-size: 14px; }
.admin-shell { padding-bottom: max(48px, env(safe-area-inset-bottom)); }
.admin-hero p, .admin-panel-head p { max-width: 760px; line-height: 1.75; }
.admin-last-update, .admin-connection { font-size: 12px; }
.admin-metrics { grid-template-columns: repeat(7, minmax(135px, 1fr)); gap: 10px; }
.metric-card { min-height: 80px; padding: 15px; display: flex; flex-direction: column; justify-content: center; }
.metric-card b { font-size: 19px; }
.metric-card small { margin-top: 4px; font-size: 11px; line-height: 1.45; white-space: normal; }
.admin-panel { padding: 20px; }
.admin-panel-head h2 { font-size: 20px; }
.admin-panel-head p { font-size: 12px; }
.admin-pill, .noncash-badge, .status-badge { font-size: 11px; }
.admin-table-wrap th, .admin-table-wrap td { padding: 12px 13px; font-size: 12px; }
.admin-table-wrap th { font-size: 11px; }
.admin-table-wrap td small { margin-top: 2px; font-size: 10px; }
.table-action { min-height: 40px; padding: 8px 12px; font-size: 11px; }
.admin-form label { font-size: 12px; }
.admin-form label small { min-height: 0; font-size: 10px; line-height: 1.55; }
.skin-editor-title small, .skin-library-toolbar small, .admin-skin-copy small, .admin-skin-copy em, .skin-library-price small, .preview-note { font-size: 10px; }
.admin-skin-row { padding: 12px; gap: 12px; }
.admin-skin-copy b { font-size: 13px; }
.skin-live-preview .section-label { font-size: 11px; }

@media (max-width: 1180px) {
  .admin-metrics { grid-template-columns: repeat(4, minmax(135px, 1fr)); }
}

@media (max-width: 820px) {
  body { font-size: 14px; }
  .admin-page { font-size: 14px; }
  .admin-topbar { padding-block: 10px; align-items: center; }
  .admin-top-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .admin-connection { grid-column: 1 / -1; text-align: center; }
  .admin-top-actions > button, .admin-top-actions > a { width: 100%; }
  .admin-hero { padding: 20px; }
  .admin-hero h1 { font-size: clamp(25px, 7vw, 34px); }
  .admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric-card { min-height: 86px; }
  .admin-panel { padding: 16px; }
  .admin-table-wrap { overflow: visible; border: 0; border-radius: 0; }
  .admin-table-wrap table { min-width: 0; }
  .admin-table-wrap thead { display: none; }
  .admin-table-wrap tbody { display: grid; gap: 10px; }
  .admin-table-wrap tr { padding: 8px 12px; display: block; border: 1px solid var(--line); border-radius: 14px; background: rgba(7,18,29,.72); }
  .admin-table-wrap td { min-height: 40px; padding: 8px 0; display: grid; grid-template-columns: minmax(105px, 38%) minmax(0, 1fr); align-items: center; gap: 10px; border-bottom: 1px solid rgba(148,163,184,.1); font-size: 12px; text-align: left; overflow-wrap: anywhere; }
  .admin-table-wrap td::before { content: attr(data-label); color: var(--muted); font-size: 11px; font-weight: 700; text-align: right; }
  .admin-table-wrap td:last-child { border-bottom: 0; }
  .admin-table-wrap td b, .admin-table-wrap td small { text-align: left; }
  .admin-table-wrap .empty-cell { display: block; padding: 24px !important; text-align: center !important; }
  .admin-table-wrap .empty-cell::before { content: none; }
  .admin-table-wrap .table-action { width: 100%; }
  .skin-manager-layout { gap: 12px; }
  .skin-live-preview { order: -1; }
  .large-preview { height: 190px; }
  .skin-library-toolbar { padding: 12px; border: 1px solid var(--line); border-radius: 14px; }
  .admin-skin-row { grid-template-columns: 82px minmax(0, 1fr) auto; }
  .coin-adjustment { position: sticky; top: 8px; z-index: 5; box-shadow: var(--shadow); }
}

@media (max-width: 520px) {
  body { font-size: 14px; }
  .topbar, main, .admin-shell, .admin-topbar { width: calc(100% - 16px); }
  .topbar { gap: 8px; }
  .brand { min-width: 0; }
  .brand-copy strong { font-size: 13px; }
  .hero-copy h1 { font-size: clamp(36px, 13vw, 54px); }
  .hero-copy > p { font-size: 14px; line-height: 1.8; }
  .hero-cta-row > button { min-height: 52px; }
  .feature-card small, .home-guide-steps small, .guide-details-grid small { font-size: 12px; }
  .game-top { gap: 5px; }
  .game-phase strong { font-size: 11px; }
  .game-actions .soft-btn, .game-actions .danger-ghost { min-width: 40px; min-height: 40px; }
  body.battle-focus .game-sidebar { grid-auto-columns: minmax(270px, 91vw); }
  body.battle-focus .side-card { min-height: 142px; }
  .modal { padding: 20px 17px; }
  .shop-grid, .cosmetics-grid { gap: 9px; }
  .cosmetic { padding: 10px; }
  .profile-stats span { min-height: 72px; }
  .admin-brand { width: 100%; }
  .admin-hero { padding: 17px; }
  .admin-metrics { gap: 8px; }
  .metric-card { min-height: 82px; padding: 12px; }
  .metric-card b { font-size: 17px; }
  .metric-card small { font-size: 10px; }
  .admin-panel { padding: 13px; border-radius: 15px; }
  .admin-panel-head h2 { font-size: 18px; }
  .admin-panel-head p { font-size: 11px; }
  .admin-table-wrap td { grid-template-columns: 94px minmax(0, 1fr); }
  .skin-editor-form { padding: 12px; }
  .skin-editor-title { align-items: flex-start; }
  .skin-editor-title #cancelSkinEdit { min-height: 38px; padding: 7px 9px; }
  .large-preview { height: 170px; }
  .admin-skin-row { grid-template-columns: 68px minmax(0, 1fr); padding: 10px; }
  .mini-skin-preview { width: 68px; height: 62px; }
  .skin-library-price { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: flex-start; gap: 5px; text-align: right; }
  .admin-skin-actions { display: grid; grid-template-columns: repeat(2, 1fr); }
  .admin-skin-actions .table-action:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* Payment result */
.payment-page { min-height: 100svh; }
.payment-shell { min-height: 100svh; padding: max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); display: grid; place-items: center; }
.payment-card { width: min(480px, 100%); padding: clamp(25px, 6vw, 42px); border-radius: 24px; text-align: center; }
.payment-icon { width: 78px; height: 78px; margin: 0 auto 18px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 24px; color: var(--accent); background: rgba(94,234,212,.08); font-size: 42px; font-weight: 900; }
.payment-card h1 { margin: 10px 0 8px; font-size: clamp(24px, 6vw, 34px); }
.payment-card p { margin: 0; color: var(--muted); line-height: 1.9; }
.payment-ref { margin-top: 16px; padding: 10px 12px; display: block; overflow-wrap: anywhere; border: 1px solid var(--line); border-radius: 10px; color: var(--accent-blue); background: rgba(125,211,252,.06); }
.payment-return { margin-top: 22px; text-decoration: none; }
.payment-page[data-payment-status="failed"] .payment-icon { color: #fecdd3; border-color: rgba(251,113,133,.3); background: rgba(251,113,133,.08); }
.payment-page[data-payment-status="cancelled"] .payment-icon { color: var(--warning); border-color: rgba(253,230,138,.3); background: rgba(253,230,138,.07); }

/* Final battle mobile pass: vertical, predictable controls instead of an RTL horizontal carousel */
.keyboard-hint {
  margin: 10px 0 0; display: flex; align-items: center; justify-content: center;
  gap: 6px; flex-wrap: wrap; color: var(--muted); font-size: 10px; line-height: 1.5;
}
.keyboard-hint span { margin-inline-end: 2px; }
.keyboard-hint kbd {
  min-width: 25px; min-height: 25px; padding: 2px 7px; display: inline-grid; place-items: center;
  border: 1px solid rgba(148,163,184,.3); border-bottom-width: 2px; border-radius: 7px;
  color: var(--text); background: rgba(148,163,184,.08); font-family: inherit; font-size: 11px; font-weight: 900;
}

@media (max-width: 820px) and (min-height: 621px) {
  body.battle-focus .game-grid {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr) clamp(170px, 27svh, 225px);
  }
  body.battle-focus .game-sidebar {
    display: flex; flex-direction: column; gap: 7px;
    overflow-x: hidden; overflow-y: auto; scroll-snap-type: none;
    overscroll-behavior: contain; scrollbar-width: thin;
  }
  body.battle-focus .side-card {
    width: 100%; min-height: auto; flex: 0 0 auto; scroll-snap-align: none;
  }
  body.battle-focus .control-card { order: -3; }
  body.battle-focus .roster-card { order: -2; }
  body.battle-focus .mission-card { order: -1; }
  body.battle-focus .players-list { max-height: 150px; }
  body.battle-focus .secondary-panel { grid-column: auto; }
  .keyboard-hint { display: none; }
}

@media (max-width: 520px) and (min-height: 621px) {
  body.battle-focus .game-grid { grid-template-rows: minmax(0, 1fr) clamp(175px, 25svh, 210px); }
  body.battle-focus .control-card { padding: 11px 12px; }
  body.battle-focus .control-card .side-title { margin-bottom: 6px; }
  body.battle-focus .percent-presets { margin-top: 6px; }
}

@media (max-height: 620px) and (orientation: landscape) {
  body.battle-focus .control-card { order: -3; }
  body.battle-focus .roster-card { order: -2; }
  body.battle-focus .mission-card { order: -1; }
  body.battle-focus .keyboard-hint { display: none; }
}


/* Growth release 0.8 */
.campaign-banner { grid-column: 1 / -1; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:18px; margin-bottom:18px; padding:18px 20px; border-color:rgba(94,234,212,.24); background:linear-gradient(135deg,rgba(20,184,166,.1),rgba(96,165,250,.08)); }
.campaign-banner.hidden { display:none; }
.campaign-visual { width:58px; min-width:58px; height:58px; display:grid; place-items:center; border-radius:18px; border:1px solid var(--line); background:rgba(255,255,255,.035); }
.campaign-visual .skin-preview { width:48px; height:48px; }
.campaign-swords { font-size:28px; }
.campaign-copy h2 { margin:5px 0 4px; font-size:clamp(20px,3vw,30px); }
.campaign-copy p { margin:0; color:var(--muted); }
.campaign-banner .primary-btn { flex:0 0 auto; min-width:180px; }

.daily-growth-card { margin:18px 0 26px; padding:18px; }
.daily-growth-card.hidden { display:none; }
.daily-growth-card > header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.daily-growth-card h2 { margin:4px 0 0; font-size:22px; }
.daily-missions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.daily-mission { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.025); }
.daily-mission > span { width:30px; height:30px; display:grid; place-items:center; border-radius:10px; background:rgba(94,234,212,.08); }
.daily-mission b,.daily-mission small { display:block; }
.daily-mission small { color:var(--muted); }
.daily-mission > strong { text-align:left; font-size:13px; white-space:nowrap; }
.daily-mission > strong small { margin-top:3px; color:var(--accent); }
.daily-mission.completed { border-color:rgba(94,234,212,.3); background:rgba(94,234,212,.055); }
.milestone-hint { margin:12px 2px 0; color:var(--muted); font-size:13px; }

.result-bonus-text { display:block; margin:8px 0 0; color:var(--accent); }
.challenge-result-card,.guest-save-card { margin-top:10px; border:1px solid var(--line); border-radius:16px; padding:12px 14px; background:rgba(255,255,255,.035); }
.challenge-result-card { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px; }
.challenge-result-card > span { font-size:24px; }
.challenge-result-card b,.challenge-result-card small,.guest-save-card b,.guest-save-card small { display:block; }
.challenge-result-card small,.guest-save-card small { margin-top:3px; color:var(--muted); }
.challenge-result-card.completed { border-color:rgba(94,234,212,.32); background:rgba(94,234,212,.06); }
.guest-save-card { display:flex; align-items:center; justify-content:space-between; gap:12px; border-color:rgba(250,204,21,.25); }
.guest-save-card.hidden,.challenge-result-card.hidden,.result-bonus-text.hidden { display:none; }
.guest-save-card .primary-btn { flex:0 0 auto; }
.growth-result-actions { grid-template-columns:1.15fr 1fr auto; }

.leaderboard-tabs { display:flex; gap:8px; margin:12px 0 16px; }
.leaderboard-tab { border:1px solid var(--line); background:rgba(255,255,255,.035); color:var(--muted); border-radius:999px; padding:8px 14px; cursor:pointer; }
.leaderboard-tab.active { color:var(--text); border-color:rgba(94,234,212,.35); background:rgba(94,234,212,.09); }

.recommended-pulse { animation:recommendedPulse .8s ease-in-out 2; }
@keyframes recommendedPulse { 50% { transform:translateY(-2px) scale(1.02); box-shadow:0 0 0 4px rgba(94,234,212,.12); } }

.admin-growth-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.admin-funnel,.admin-sources { display:grid; gap:8px; }
.admin-funnel-row,.admin-source-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:12px; }
.admin-funnel-row small,.admin-source-row small { color:var(--muted); }
.campaign-link { direction:ltr; unicode-bidi:plaintext; word-break:break-all; font-size:12px; color:var(--accent); }

@media (max-width: 900px) {
  .daily-missions { grid-template-columns:1fr; }
  .admin-growth-grid { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .campaign-banner { grid-template-columns:auto minmax(0,1fr); }
  .campaign-banner .primary-btn { grid-column:1 / -1; }
  .guest-save-card { align-items:stretch; flex-direction:column; }
  .campaign-banner .primary-btn,.guest-save-card .primary-btn { width:100%; }
  .growth-result-actions { grid-template-columns:1fr; }
  .daily-growth-card > header { align-items:flex-start; flex-direction:column; }
}


/* 0.9 revenue engine */
.shop-offer-note{margin:-.25rem 0 .9rem;color:var(--muted);font-size:.86rem;line-height:1.8}
.shop-item.featured-offer{position:relative;border-color:rgba(250,204,21,.38);background:linear-gradient(180deg,rgba(250,204,21,.07),rgba(15,23,42,.78));box-shadow:0 12px 32px rgba(0,0,0,.16)}
.shop-item.featured-offer .skin-preview{margin:.2rem auto .65rem}
.shop-item .package-value{display:block;color:var(--text);font-weight:700;margin:.15rem 0 .35rem}
.shop-item.purchased-offer{opacity:.72}
.shop-item button:disabled{cursor:not-allowed;opacity:.58}
.cosmetic.bundle-exclusive{border-color:rgba(250,204,21,.24)}
.shop-result-cta{border:1px solid rgba(250,204,21,.45);background:rgba(250,204,21,.1);color:#fde68a;border-radius:12px;padding:.75rem 1rem;font:inherit;font-weight:800;cursor:pointer}
.profile-badge{display:inline-flex;align-items:center;vertical-align:middle;margin-inline-start:.4rem;padding:.18rem .5rem;border-radius:999px;font-size:.68rem;color:#fde68a;border:1px solid rgba(250,204,21,.38);background:rgba(250,204,21,.08)}
.offer-pulse{animation:offerPulse .9s ease}
@keyframes offerPulse{0%,100%{transform:translateY(0)}35%{transform:translateY(-5px);box-shadow:0 0 0 3px rgba(250,204,21,.16),0 16px 38px rgba(0,0,0,.22)}}
@media (prefers-reduced-motion:reduce){.offer-pulse{animation:none}}

/* 0.10 ranked + install UX */
.home-ranked-strip{margin-bottom:14px;padding:12px 13px;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,.65fr) auto;align-items:center;gap:11px;border:1px solid rgba(125,211,252,.2);border-radius:14px;background:linear-gradient(135deg,rgba(125,211,252,.055),rgba(94,234,212,.025))}
.home-rank-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(125,211,252,.28);border-radius:13px;color:var(--accent-blue);background:rgba(125,211,252,.07);font-size:21px;font-weight:900}
.home-ranked-strip small,.home-ranked-strip b,.home-ranked-strip em{display:block}.home-ranked-strip small{color:var(--muted);font-size:9px}.home-ranked-strip b{margin:1px 0;font-size:14px}.home-ranked-strip em{color:var(--accent-blue);font-size:10px;font-style:normal}
.rank-progress-track{height:6px;overflow:hidden;border-radius:999px;background:rgba(148,163,184,.12)}.rank-progress-track i{height:100%;display:block;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--accent-blue),var(--accent))}
.ranked-quick-cta{min-height:38px;padding:7px 11px;border:1px solid rgba(94,234,212,.26);border-radius:10px;color:var(--accent);background:rgba(94,234,212,.06);font:inherit;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}

.result-ranked-card{width:min(620px,100%);margin-top:10px;padding:11px 13px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);text-align:right}
.result-ranked-card.hidden{display:none}.result-ranked-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:rgba(125,211,252,.08);font-size:20px}.result-ranked-card b,.result-ranked-card small{display:block}.result-ranked-card small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.65}.result-ranked-card>strong{min-width:55px;font-size:18px;text-align:center}.result-ranked-card.positive{border-color:rgba(94,234,212,.28);background:rgba(94,234,212,.045)}.result-ranked-card.positive>strong{color:var(--accent)}.result-ranked-card.negative{border-color:rgba(251,113,133,.25);background:rgba(251,113,133,.035)}.result-ranked-card.negative>strong{color:#fda4af}.result-ranked-card.promoted{box-shadow:inset 0 0 0 1px rgba(253,230,138,.16)}
.install-result-cta{border:1px solid rgba(125,211,252,.34);border-radius:12px;padding:.75rem 1rem;color:#bae6fd;background:rgba(125,211,252,.08);font:inherit;font-weight:800;cursor:pointer}

.ranked-modal{width:min(1060px,100%)}.ranked-modal-head{padding-left:46px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.ranked-modal-head h2{margin:5px 0 4px}.ranked-modal-head p{margin:0;max-width:650px;color:var(--muted);font-size:11px;line-height:1.8}.ranked-play-button{flex:0 0 auto;margin-top:12px}
.ranked-me-card{margin:18px 0 14px;padding:15px;display:grid;grid-template-columns:minmax(190px,1.1fr) auto minmax(250px,1.25fr);grid-template-areas:"league position stats" "progress progress progress";align-items:center;gap:12px;border:1px solid rgba(125,211,252,.24);border-radius:18px;background:linear-gradient(145deg,rgba(125,211,252,.065),rgba(94,234,212,.025) 52%,rgba(12,25,39,.72))}
.ranked-me-league{grid-area:league;display:flex;align-items:center;gap:11px}.ranked-me-league>span{width:50px;height:50px;display:grid;place-items:center;border:1px solid rgba(125,211,252,.3);border-radius:15px;color:var(--accent-blue);background:rgba(125,211,252,.075);font-size:24px}.ranked-me-league small,.ranked-me-league b,.ranked-me-league em{display:block}.ranked-me-league small{color:var(--muted);font-size:9px}.ranked-me-league b{margin:1px 0;font-size:16px}.ranked-me-league em{color:var(--accent-blue);font-size:11px;font-style:normal}
.ranked-me-position{grid-area:position;min-width:130px;padding:10px 14px;border-inline:1px solid var(--line);text-align:center}.ranked-me-position small,.ranked-me-position b{display:block}.ranked-me-position small{color:var(--muted);font-size:9px}.ranked-me-position b{margin-top:3px;font-size:17px}
.ranked-me-stats{grid-area:stats;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.ranked-me-stats span{padding:9px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.025);text-align:center}.ranked-me-stats b,.ranked-me-stats small{display:block}.ranked-me-stats b{font-size:13px}.ranked-me-stats small{margin-top:2px;color:var(--muted);font-size:8px}
.ranked-me-progress{grid-area:progress;display:grid;grid-template-columns:minmax(150px,auto) minmax(0,1fr);align-items:center;gap:12px;padding-top:10px;border-top:1px solid var(--line)}.ranked-me-progress small,.ranked-me-progress b{display:block}.ranked-me-progress small{color:var(--muted);font-size:9px}.ranked-me-progress b{font-size:11px}
.ranked-podium{margin:2px 0 14px;display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:8px}.ranked-podium.hidden{display:none}.podium-player{min-width:0;padding:13px 9px 10px;position:relative;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.025);text-align:center}.podium-player.is-me,.ranked-leader-row.is-me{border-color:rgba(94,234,212,.38);background:rgba(94,234,212,.045)}.podium-place-1{min-height:132px;border-color:rgba(253,230,138,.3);background:linear-gradient(180deg,rgba(253,230,138,.07),rgba(255,255,255,.02))}.podium-rank{position:absolute;top:8px;right:8px;color:var(--warning);font-weight:900}.podium-player .skin-preview{margin:5px auto 7px}.podium-player b,.podium-player small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-player b{font-size:11px}.podium-player small{margin-top:3px;color:var(--muted);font-size:8px}.podium-avatar{width:40px;height:40px;margin:5px auto 7px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2)}
.ranked-leader-row{min-height:62px;grid-template-columns:36px 44px minmax(0,1fr) minmax(92px,auto) minmax(58px,auto)}.leader-skin{display:grid;place-items:center}.leader-skin .skin-preview{margin:0}.ranked-leader-row .leader-name b i{margin-inline-start:4px;color:var(--warning);font-size:8px;font-style:normal}.leader-rating,.leader-winrate{text-align:center}.leader-rating b,.leader-rating small,.leader-winrate b,.leader-winrate small{display:block}.leader-rating b{font-size:14px}.leader-rating small,.leader-winrate small{color:var(--muted);font-size:8px}.leader-delta{margin-top:2px;display:block;color:var(--muted);font-size:8px;font-style:normal}.leader-delta.positive{color:var(--accent)}.leader-delta.negative{color:#fda4af}.ranked-rules{margin:12px 2px 0!important;padding:9px 11px;border-radius:10px;background:rgba(148,163,184,.04);color:var(--muted)!important;font-size:9px!important;line-height:1.75}.ranked-empty{padding:24px 10px}

.install-nudge{position:fixed;z-index:75;right:max(16px,env(safe-area-inset-right));bottom:max(78px,calc(env(safe-area-inset-bottom) + 78px));width:min(390px,calc(100% - 32px));padding:11px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid rgba(125,211,252,.28);border-radius:16px;background:rgba(10,26,40,.97);box-shadow:0 20px 55px rgba(0,0,0,.42);backdrop-filter:blur(12px)}.install-nudge.hidden{display:none}.install-nudge-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:var(--accent-blue);background:rgba(125,211,252,.09);font-size:20px;font-weight:900}.install-nudge b,.install-nudge small{display:block}.install-nudge b{font-size:12px}.install-nudge small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.55}.install-nudge .primary-btn{min-height:38px;padding:7px 12px}.install-nudge-close{position:absolute;top:-9px;left:-9px;width:27px;height:27px;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:#102132;font-size:17px;cursor:pointer}

.growth-result-actions{display:grid;grid-template-columns:1.15fr 1fr 1fr repeat(3,auto);align-items:stretch}

@media (max-width:900px){.ranked-me-card{grid-template-columns:1fr 1fr;grid-template-areas:"league position" "stats stats" "progress progress"}.ranked-modal-head{display:block}.ranked-play-button{width:100%}.home-ranked-strip{grid-template-columns:auto minmax(0,1fr) auto}.home-ranked-strip .rank-progress-track{grid-column:1/-1;order:4}}
@media (max-width:640px){.home-ranked-strip{grid-template-columns:auto minmax(0,1fr)}.ranked-quick-cta{grid-column:1/-1;width:100%}.ranked-me-card{grid-template-columns:1fr;grid-template-areas:"league" "position" "stats" "progress"}.ranked-me-position{border-inline:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ranked-me-progress{grid-template-columns:1fr}.ranked-podium{gap:5px}.podium-player{padding-inline:5px}.ranked-leader-row{grid-template-columns:32px 40px minmax(0,1fr) auto}.ranked-leader-row .leader-winrate{display:none}.leader-rating{min-width:64px}.growth-result-actions{grid-template-columns:1fr}.install-nudge{right:12px;bottom:max(82px,calc(env(safe-area-inset-bottom) + 82px));width:calc(100% - 24px);grid-template-columns:auto minmax(0,1fr)}.install-nudge .primary-btn{grid-column:1/-1;width:100%}}
@media (max-width:420px){.ranked-me-stats{grid-template-columns:1fr 1fr}.ranked-me-stats span:last-child{grid-column:1/-1}.ranked-podium{grid-template-columns:1fr}.podium-place-1{order:-1;min-height:auto}.ranked-leader-row{grid-template-columns:30px minmax(0,1fr) auto}.ranked-leader-row .leader-skin{display:none}}
@media (prefers-reduced-motion:reduce){.install-nudge{backdrop-filter:none}}

/* 1.0 Fath Rush core battle */
#gameCanvas{touch-action:none}
.duel-hud{position:absolute;z-index:14;top:12px;left:50%;transform:translateX(-50%);width:min(430px,calc(100% - 190px));display:grid;grid-template-columns:minmax(72px,1fr) minmax(120px,1.35fr) minmax(72px,1fr);align-items:center;gap:7px;padding:7px;border:1px solid rgba(125,211,252,.2);border-radius:15px;background:rgba(5,15,25,.88);box-shadow:0 12px 32px rgba(0,0,0,.26);backdrop-filter:blur(9px);pointer-events:none}
.duel-hud.hidden{display:none}.duel-score,.duel-center{text-align:center}.duel-score{padding:6px 7px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025)}.duel-score small,.duel-score b,.duel-center span,.duel-center small{display:block}.duel-score small{max-width:90px;margin:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:8px}.duel-score b{font-size:17px;line-height:1.15}.duel-score.mine b{color:var(--accent)}.duel-score.rival b{color:#fda4af}.duel-center span{color:#fde68a;font-size:10px;font-weight:900}.duel-center small{margin-top:2px;color:var(--muted);font-size:8px;line-height:1.45}.duel-hud.rush{border-color:rgba(250,204,21,.45);background:linear-gradient(135deg,rgba(120,53,15,.93),rgba(15,23,42,.94));box-shadow:0 0 0 2px rgba(250,204,21,.08),0 15px 38px rgba(0,0,0,.32)}.duel-hud.rush .duel-center span{color:#fef08a}
.field-banner,.spectator-banner,.momentum-chip{top:76px}
.field-banner{border-color:rgba(250,204,21,.45)!important;background:rgba(67,36,8,.96)!important}.field-banner>span{color:#fde68a;font-size:18px}.field-banner b{color:#fef3c7}
.result-stats{grid-template-columns:repeat(5,1fr)}
.result-stats .result-points{border-color:rgba(250,204,21,.3);background:rgba(250,204,21,.045)}
.result-stats .result-points b{color:#fde68a;font-size:16px}
.canvas-shell{cursor:crosshair}.canvas-shell:has(#gameCanvas:active){cursor:grabbing}
@media (max-width:760px){.duel-hud{top:9px;width:min(370px,calc(100% - 26px));grid-template-columns:70px minmax(110px,1fr) 70px;padding:5px}.duel-score{padding:5px}.duel-score b{font-size:15px}.duel-center small{display:none}.result-stats{grid-template-columns:repeat(3,1fr)}.result-stats span:nth-last-child(-n+2){grid-column:span 1}}
@media (max-width:430px){.duel-hud{width:calc(100% - 18px);grid-template-columns:64px 1fr 64px;gap:4px}.duel-score small{font-size:7px}.duel-score b{font-size:14px}.duel-center span{font-size:9px}.result-stats{grid-template-columns:repeat(2,1fr)}.result-stats .result-points{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){.duel-hud{backdrop-filter:none}}

/* 1.1 Rivalry, ranked stakes and stronger match feel */
.home-rival-strip{margin:-7px 0 13px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;border:1px solid rgba(251,113,133,.2);border-radius:13px;background:linear-gradient(135deg,rgba(251,113,133,.045),rgba(125,211,252,.025))}
.home-rival-strip.hidden{display:none}.home-rival-strip>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:rgba(251,113,133,.075);font-size:17px}.home-rival-strip small,.home-rival-strip b,.home-rival-strip em{display:block}.home-rival-strip small{color:var(--muted);font-size:8px}.home-rival-strip b{margin:1px 0;font-size:11px}.home-rival-strip em{color:#fda4af;font-size:9px;font-style:normal}
.result-rival-card{width:min(620px,100%);margin-top:10px;padding:11px 13px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;border:1px solid rgba(251,113,133,.24);border-radius:14px;background:linear-gradient(135deg,rgba(251,113,133,.055),rgba(255,255,255,.02))}
.result-rival-card.hidden{display:none}.result-rival-card>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:rgba(251,113,133,.08);font-size:18px}.result-rival-card b,.result-rival-card small{display:block}.result-rival-card b{font-size:11px}.result-rival-card small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.55}
.result-mastery-card{width:min(620px,100%);margin-top:10px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;border:1px solid rgba(125,211,252,.18);border-radius:13px;background:linear-gradient(135deg,rgba(125,211,252,.045),rgba(255,255,255,.018));text-align:right}.result-mastery-card.hidden{display:none}.result-mastery-card>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(125,211,252,.07);color:#bae6fd;font-size:17px}.result-mastery-card b,.result-mastery-card small{display:block}.result-mastery-card b{font-size:10px}.result-mastery-card small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.55}
.revenge-btn{border-color:rgba(251,113,133,.4)!important;background:linear-gradient(135deg,rgba(190,24,93,.9),rgba(127,29,29,.88))!important}.revenge-btn:disabled{opacity:.65;cursor:wait}
.duel-hud.winning:not(.rush){border-color:rgba(94,234,212,.34);box-shadow:0 0 0 1px rgba(94,234,212,.06),0 12px 32px rgba(0,0,0,.26)}
.duel-hud.losing:not(.rush){border-color:rgba(251,113,133,.3)}
.duel-hud.close{animation:duel-close-pulse 1.15s ease-in-out infinite alternate}
@keyframes duel-close-pulse{from{box-shadow:0 12px 32px rgba(0,0,0,.26)}to{box-shadow:0 0 0 2px rgba(253,230,138,.12),0 14px 36px rgba(0,0,0,.3)}}
@media (prefers-reduced-motion:reduce){.duel-hud.close{animation:none}}


/* 1.2.0 — UI/UX cleanup + categorized shop + full Skin Studio */
.streamlined-hero { align-self: center; }
.hero-main-action { margin-top: 26px; }
.home-primary-cta { width: min(100%, 410px); min-height: 64px; padding: 12px 18px; justify-content: space-between; text-align: right; }
.home-primary-cta > span { min-width: 0; display: block; }
.home-primary-cta b, .home-primary-cta small { display: block; }
.home-primary-cta b { font-size: 15px; }
.home-primary-cta small { margin-top: 2px; opacity: .82; font-size: 10px; font-weight: 500; }
.hero-stats.compact { margin-top: 15px; }
.compact-lobby-stage { width: 100%; align-self: center; }
.home-tools { padding: 0; overflow: hidden; border-radius: 18px; }
.home-tools > summary, .home-guide-compact > summary { min-height: 58px; padding: 13px 15px; display: flex; align-items: center; gap: 12px; cursor: pointer; list-style: none; user-select: none; }
.home-tools > summary::-webkit-details-marker, .home-guide-compact > summary::-webkit-details-marker { display: none; }
.home-tools > summary > span { flex: 1; font-weight: 850; }
.home-tools > summary small { color: var(--muted); font-size: 10px; }
.home-tools > summary i, .home-guide-compact > summary i { color: var(--muted); font-style: normal; transition: transform .18s ease; }
.home-tools[open] > summary i, .home-guide-compact[open] > summary i { transform: rotate(180deg); }
.home-tools-body { padding: 0 15px 15px; border-top: 1px solid var(--line); }
.home-tools-actions { padding-top: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.home-tools-actions button { min-height: 46px; }
.home-tools-actions .ranked-option-btn { grid-column: 1 / -1; }
.home-join-block { margin-top: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: rgba(148,163,184,.035); }
.home-join-block > small { margin-bottom: 6px; display: block; color: var(--muted); }
.compact-join-row { margin: 0; }
.home-guide-compact { padding: 0; margin-top: 0; overflow: hidden; }
.home-guide-compact > summary > span { flex: 1; }
.home-guide-compact > summary b, .home-guide-compact > summary small { display: block; }
.home-guide-compact > summary small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.compact-guide-steps { margin: 0; padding: 14px 14px 6px; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }
.home-guide-compact .guide-tip { margin: 6px 14px 14px; }
.daily-card-hint { max-width: 260px; color: var(--muted); text-align: left; font-size: 9px; }

.skin-store-section { margin-top: 18px; }
.skin-store-head { margin-bottom: 10px; display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.skin-store-head .section-label { margin: 0; }
.skin-store-head small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.skin-store-head select { width: min(210px, 45%); min-height: 40px; }
.skin-store-tabs { margin-bottom: 11px; padding: 4px; display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; border: 1px solid var(--line); border-radius: 13px; background: rgba(7,18,29,.7); }
.skin-store-tab { min-height: 42px; padding: 7px 9px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font-size: 10px; font-weight: 750; }
.skin-store-tab b { min-width: 22px; margin-inline-start: 4px; padding: 2px 5px; display: inline-block; border-radius: 99px; color: var(--text); background: rgba(148,163,184,.09); }
.skin-store-tab.active { color: #031513; background: var(--accent); box-shadow: 0 6px 18px rgba(94,234,212,.12); }
.skin-store-tab.active b { color: #05211f; background: rgba(3,21,19,.12); }
.categorized-cosmetics { min-height: 145px; }
.cosmetic { position: relative; transition: border-color .15s ease, transform .15s ease, background .15s ease; }
.cosmetic:hover { border-color: var(--line-strong); transform: translateY(-1px); }
.cosmetic.equipped { border-color: rgba(94,234,212,.58); background: linear-gradient(180deg,rgba(94,234,212,.055),var(--surface)); box-shadow: inset 0 0 0 1px rgba(94,234,212,.27); }
.cosmetic .skin-meta-row { min-height: 20px; margin: 2px 0 6px; display: flex; align-items: center; justify-content: center; gap: 4px; flex-wrap: wrap; }
.cosmetic .skin-tag { padding: 2px 5px; border-radius: 99px; color: var(--muted); background: rgba(148,163,184,.07); font-size: 8px; }
.cosmetic .skin-tag.featured { color: #fde68a; background: rgba(250,204,21,.08); }
.cosmetic .skin-price-line { min-height: 26px; margin: 1px 0 7px; display: grid; place-items: center; color: var(--warning); font-size: 10px; font-weight: 800; }
.cosmetic button[data-skin-id][disabled] { cursor: default; opacity: .72; }

.skin-preview { --skin-core-scale: 1; --skin-aura-scale: 1; --skin-ring-opacity: .78; --skin-glow: 20; }
.preview-core { scale: var(--skin-core-scale); filter: drop-shadow(0 0 calc(var(--skin-glow) * .08px) color-mix(in srgb, var(--skin-accent) 72%, transparent)); }
.preview-ring { scale: var(--skin-aura-scale); opacity: var(--skin-ring-opacity); filter: drop-shadow(0 0 calc(var(--skin-glow) * .07px) color-mix(in srgb, var(--skin-a) 70%, transparent)); }
.skin-preview[data-ornament="none"] .preview-ring { opacity: min(.18, var(--skin-ring-opacity)); }

.admin-form textarea { width: 100%; margin-top: 4px; padding: 10px 12px; resize: vertical; border: 1px solid var(--line); border-radius: 11px; color: var(--text); background: #07121d; font: inherit; line-height: 1.65; }
.skin-editor-section { margin-bottom: 10px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: rgba(4,12,20,.34); }
.skin-editor-section > summary { min-height: 44px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; color: #e6f0f7; font-size: 11px; font-weight: 850; }
.skin-editor-section > summary::-webkit-details-marker { display: none; }
.skin-editor-section > summary::after { content: '⌄'; color: var(--muted); transition: transform .16s ease; }
.skin-editor-section[open] > summary::after { transform: rotate(180deg); }
.skin-editor-section[open] > summary { border-bottom: 1px solid var(--line); }
.skin-editor-section > .form-grid, .skin-editor-section > label, .skin-editor-section > .skin-editor-toggles { margin-inline: 11px; }
.skin-editor-section > .form-grid:first-of-type, .skin-editor-section > label:first-of-type { margin-top: 11px; }
.skin-editor-section > .form-grid:last-child, .skin-editor-section > .skin-editor-toggles:last-child { margin-bottom: 11px; }
.skin-editor-toggles { margin-bottom: 11px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.skin-editor-toggles .check-label.editor-active { min-height: 48px; }
.skin-editor-note { height: 100%; margin: 0; padding: 9px 11px; display: flex; align-items: center; border: 1px dashed var(--line); border-radius: 11px; background: rgba(148,163,184,.025); line-height: 1.6; }
.skin-library-toolbar { grid-template-columns: minmax(170px,1fr) minmax(170px,240px) repeat(4,minmax(115px,145px)); }
.admin-skin-row { grid-template-columns: 88px minmax(180px,1fr) minmax(90px,130px) auto minmax(270px,auto); }
.admin-skin-row.deleted { opacity: .48; border-style: dashed; }
.default-skin-badge { margin-inline-start: 5px; padding: 2px 6px; display: inline-block; border-radius: 99px; color: #031513; background: var(--accent); font-size: 8px; font-style: normal; vertical-align: middle; }
.skin-library-price b { font-size: 10px; }

@media (max-width:1180px) {
  .skin-library-toolbar { grid-template-columns: 1fr 1fr 1fr; }
  .skin-library-toolbar > div { grid-column: 1/-1; }
  .admin-skin-row { grid-template-columns: 80px minmax(160px,1fr) minmax(90px,120px) auto; }
  .skin-editor-toggles { grid-template-columns: repeat(2,1fr); }
}
@media (max-width:820px) {
  .lobby-view { gap: 14px; }
  .compact-guide-steps { grid-template-columns: 1fr; }
  .daily-card-hint { text-align: right; }
  .skin-store-head { align-items: stretch; flex-direction: column; }
  .skin-store-head select { width: 100%; }
  .skin-library-toolbar { grid-template-columns: 1fr 1fr; }
  .admin-skin-row { grid-template-columns: 74px minmax(0,1fr) auto; }
  .admin-skin-row .skin-library-price { grid-column: 2; text-align: right; }
}
@media (max-width:560px) {
  .home-primary-cta { width: 100%; }
  .home-tools-actions { grid-template-columns: 1fr; }
  .home-tools > summary { align-items: flex-start; flex-wrap: wrap; }
  .home-tools > summary small { width: 100%; }
  .skin-store-tabs { grid-template-columns: 1fr; }
  .skin-store-tab { text-align: right; }
  .cosmetics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .skin-editor-toggles { grid-template-columns: 1fr; }
  .skin-library-toolbar { grid-template-columns: 1fr; }
  .admin-skin-row { grid-template-columns: 68px minmax(0,1fr); }
  .admin-skin-row .skin-library-price { grid-column: 1/-1; text-align: right; }
}
.skin-card-badges { min-height: 22px; margin-bottom: 5px; display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.skin-card-badges span, .skin-card-badges em { max-width: 55%; padding: 2px 6px; overflow: hidden; border-radius: 99px; color: var(--muted); background: rgba(148,163,184,.07); font-size: 8px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.skin-card-badges em { color: #fde68a; background: rgba(250,204,21,.07); }
.featured-skin .skin-card-badges::before { content: '★'; margin-inline-end: 2px; color: #fde68a; font-size: 9px; }


/* 1.3.0 — static home options, simplified skins and admin commerce */
.static-home-tools { padding: 0; overflow: hidden; }
.home-tools-head { min-height: 58px; padding: 13px 15px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); }
.home-tools-head > span { flex: 1; font-weight: 850; }
.home-tools-head > small { color: var(--muted); font-size: 10px; }
.static-home-tools .home-tools-body { border-top: 0; }
.simple-skin-section { padding: 12px; }
.simple-skin-section > .form-grid, .simple-skin-section > label, .simple-skin-section > .skin-editor-toggles { margin-inline: 0; }
.simple-skin-toolbar { grid-template-columns: minmax(160px,1fr) minmax(170px,250px) minmax(130px,170px) minmax(130px,170px); }
.commerce-manager-panel { grid-column: 1 / -1; }
.admin-subsection-head { margin: 4px 0 10px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.admin-subsection-head b { font-size: 12px; }
.admin-subsection-head small { color: var(--muted); font-size: 9px; }
.economy-form { margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.admin-compact-details { margin: 10px 0; border: 1px solid var(--line); border-radius: 12px; background: rgba(4,12,20,.28); }
.admin-compact-details > summary { min-height: 42px; padding: 10px 12px; cursor: pointer; list-style: none; font-size: 10px; font-weight: 800; }
.admin-compact-details > summary::-webkit-details-marker { display: none; }
.admin-compact-details[open] > summary { border-bottom: 1px solid var(--line); }
.admin-compact-details > .form-grid, .admin-compact-details > .form-help { margin: 11px; }
.package-editor-form { padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: rgba(4,12,20,.32); }
.admin-package-list { margin-top: 12px; display: grid; gap: 8px; }
.admin-package-row { min-height: 66px; padding: 10px 12px; display: grid; grid-template-columns: minmax(180px,1fr) auto minmax(220px,auto); align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.admin-package-row > div:first-child b, .admin-package-row > div:first-child small { display: block; }
.admin-package-row > div:first-child small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.65; }
.admin-package-row.inactive { opacity: .68; }
.admin-package-row.deleted { opacity: .48; border-style: dashed; }
.admin-package-actions, .user-admin-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.skin-access-manager { margin-bottom: 12px; padding: 12px; border: 1px solid rgba(125,211,252,.24); border-radius: 13px; background: rgba(125,211,252,.035); }
.skin-access-manager > div:first-child b, .skin-access-manager > div:first-child small { display: block; }
.skin-access-manager > div:first-child small, .skin-access-inventory { color: var(--muted); font-size: 9px; }
.skin-access-form { margin: 10px 0 7px; display: grid; grid-template-columns: minmax(170px,1fr) minmax(190px,1.2fr) auto auto auto; align-items: center; gap: 7px; }
.skin-access-form select, .skin-access-form input[type="text"], .skin-access-form input:not([type]) { min-height: 42px; }
.admin-skin-row { grid-template-columns: 88px minmax(180px,1fr) minmax(100px,140px) auto minmax(250px,auto); }
.admin-skin-copy small { color: var(--muted); }
@media (max-width: 980px) {
  .admin-package-row { grid-template-columns: minmax(0,1fr) auto; }
  .admin-package-actions { grid-column: 1 / -1; justify-content: stretch; }
  .admin-package-actions .table-action { flex: 1; }
  .skin-access-form { grid-template-columns: 1fr 1fr; }
  .skin-access-form .check-label { min-height: 42px; }
  .simple-skin-toolbar { grid-template-columns: 1fr 1fr; }
  .simple-skin-toolbar > div { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .home-tools-head { align-items: flex-start; flex-direction: column; gap: 2px; }
  .admin-subsection-head { display: block; }
  .admin-subsection-head small { margin-top: 3px; display: block; }
  .skin-access-form, .simple-skin-toolbar { grid-template-columns: 1fr; }
  .admin-package-row { grid-template-columns: 1fr; }
  .admin-package-row > .status-badge { justify-self: start; }
  .user-admin-actions { justify-content: stretch; }
  .user-admin-actions .table-action { flex: 1; }
}

/* 1.4.0 — canonical skin preview, cleaner replay loop and focused mobile battle */
.skin-canvas-preview {
  width: 100%; height: 112px; margin: 0 0 9px; display: block;
  border: 1px solid rgba(148,163,184,.12); border-radius: 12px;
  background: radial-gradient(circle at 50% 42%, rgba(125,211,252,.055), rgba(7,18,29,.72));
}
.skin-canvas-preview.compact-preview { width: 48px; height: 48px; margin: 0; border-radius: 11px; }
.skin-canvas-preview.large-preview { width: 100%; height: 220px; margin: 8px 0 12px; }
.mini-skin-preview.skin-canvas-preview { width: 68px; height: 68px; }
.campaign-visual .skin-canvas-preview, .podium-player .skin-canvas-preview, .leader-skin .skin-canvas-preview, .player-skin-slot .skin-canvas-preview { margin: 0; }
.player-skin-slot .skin-canvas-preview { width: 40px; height: 40px; border: 0; background: transparent; }
.podium-player .skin-canvas-preview { margin: 5px auto 7px; }
.shop-item.featured-offer .skin-canvas-preview { margin: .2rem auto .65rem; }
.package-efficiency { display: block; margin: -1px 0 5px; color: var(--accent); font-size: 9px; font-weight: 800; }

.home-weekly-goal {
  margin: -4px 0 12px; padding: 10px 12px; display: grid; grid-template-columns: auto minmax(0,1fr) minmax(100px,.55fr);
  align-items: center; gap: 10px; border: 1px solid rgba(250,204,21,.2); border-radius: 13px; background: rgba(250,204,21,.035);
}
.home-weekly-goal > span:first-child { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #fde68a; background: rgba(250,204,21,.08); }
.home-weekly-goal small,.home-weekly-goal b,.home-weekly-goal em { display:block; }
.home-weekly-goal small { color:var(--muted);font-size:9px; }.home-weekly-goal b{font-size:12px}.home-weekly-goal em{color:#fde68a;font-size:9px;font-style:normal}
.home-weekly-goal.completed { border-color: rgba(74,222,128,.22); background: rgba(74,222,128,.035); }
.home-weekly-goal.completed > span:first-child { color: #86efac; background: rgba(74,222,128,.08); }

.growth-result-actions { width: min(620px, 100%); grid-template-columns: minmax(180px,1.2fr) minmax(150px,1fr) auto; gap: 8px; }
.growth-result-actions .result-secondary-link,
.growth-result-actions .result-home-link { min-height: 42px; padding: 8px 10px; border: 0; color: var(--muted); background: transparent; text-decoration: underline; text-decoration-color: rgba(148,163,184,.25); text-underline-offset: 4px; }
.growth-result-actions .result-secondary-link:hover,
.growth-result-actions .result-home-link:hover { color: var(--text); }
.growth-result-actions .shop-result-cta,
.growth-result-actions .install-result-cta { grid-column: 1 / -1; min-height: 42px; }

.admin-business-health,.admin-package-performance { display:grid;gap:8px; }
.business-rate,.package-performance-row { min-height:48px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025) }
.business-rate span,.package-performance-row small{color:var(--muted);font-size:10px}.business-rate b{font-size:15px}.package-performance-row div b,.package-performance-row div small{display:block}.package-performance-row strong{white-space:nowrap;font-size:11px}

@media (max-width: 760px) {
  body.battle-focus .game-grid { grid-template-rows: minmax(0,1fr) auto; }
  body.battle-focus .game-sidebar { display: block; overflow: visible; }
  body.battle-focus .game-sidebar .control-card { display: block; margin: 0; }
  body.battle-focus .game-sidebar .roster-card,
  body.battle-focus .game-sidebar .mission-card,
  body.battle-focus .game-sidebar .secondary-panel { display: none; }
  body.battle-focus .control-card { min-height: 0; padding: 10px 12px; border-radius: 14px; }
  body.battle-focus .control-card .side-title { margin-bottom: 5px; }
  body.battle-focus .percent-presets { margin-top: 5px; }
  body.battle-focus .percent-presets button { min-height: 38px; }
  .home-weekly-goal { grid-template-columns:auto minmax(0,1fr); }
  .home-weekly-goal .rank-progress-track { grid-column:1/-1; }
  .growth-result-actions { grid-template-columns: 1fr 1fr; }
  .growth-result-actions .revenge-btn,
  .growth-result-actions #resultPlayAgainButton.primary-btn { grid-column: 1 / -1; }
  .growth-result-actions .shop-result-cta,
  .growth-result-actions .install-result-cta { grid-column: 1/-1; }
  .skin-canvas-preview.large-preview { height: 190px; }
}

@media (max-width: 480px) {
  .growth-result-actions { grid-template-columns: 1fr; }
  .growth-result-actions > * { width: 100%; }
  .skin-canvas-preview { height: 96px; }
  .skin-canvas-preview.large-preview { height: 170px; }
}

/* 1.7.1 — stable responsive battle polish */
.canvas-shell {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
}
.battle-map-surface {
  min-width: 0;
  min-height: 0;
  position: relative;
  overflow: hidden;
  background: #050d16;
}
#gameCanvas {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  display: block;
  touch-action: none;
}
.battle-commandbar { display: none; }

/* One battle viewport: top chrome + arena + command ribbon. */
body.battle-focus {
  width: 100%;
  height: 100dvh;
  min-height: 100svh;
  overflow: hidden;
  overscroll-behavior: none;
  background: #030911;
}
body.battle-focus > .topbar { display: none; }
body.battle-focus main {
  width: 100%;
  height: 100dvh;
  min-height: 100svh;
  padding: 0;
}
body.battle-focus #gameView {
  position: fixed;
  inset: 0;
  z-index: 30;
  width: 100%;
  height: 100dvh;
  min-height: 100svh;
  padding:
    max(4px, env(safe-area-inset-top))
    max(4px, env(safe-area-inset-right))
    max(4px, env(safe-area-inset-bottom))
    max(4px, env(safe-area-inset-left));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% -15%, rgba(34,211,238,.065), transparent 38%),
    #030911;
}
body.battle-focus .game-grid {
  min-width: 0;
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}
body.battle-focus .game-sidebar { display: none !important; }
body.battle-focus .canvas-shell {
  width: 100%;
  height: 100%;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr);
  border: 1px solid rgba(125,211,252,.11);
  border-top: 0;
  border-radius: 0 0 18px 18px;
  background: #050d16;
  box-shadow: none;
  contain: layout paint;
}
body.battle-focus #gameView.battle-live-view .canvas-shell {
  grid-template-rows: minmax(0, 1fr) auto;
}

/* Battle header is game chrome, not a floating card. */
body.battle-focus .game-top {
  min-width: 0;
  min-height: 58px;
  margin: 0;
  padding: 6px clamp(7px, 1.1vw, 15px);
  display: grid;
  grid-template-columns: minmax(84px, 1fr) minmax(300px, 560px) minmax(84px, 1fr);
  grid-template-areas: "actions duel room";
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(125,211,252,.11);
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
  background: linear-gradient(180deg, rgba(10,24,37,.98), rgba(6,16,26,.97));
  box-shadow: none;
  direction: ltr;
}
body.battle-focus .game-top > * { direction: rtl; }
body.battle-focus .game-top .room-ident { grid-area: room; justify-self: end; }
body.battle-focus .game-top .game-actions { grid-area: actions; justify-self: start; }
body.battle-focus .game-actions .action-icon { display: none; font-size: 18px; line-height: 1; }
body.battle-focus .game-top .game-phase { grid-area: duel; }
body.battle-focus .game-top.battle-live .game-phase { display: none; }
body.battle-focus .game-top.battle-live {
  position: relative;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "duel";
}
body.battle-focus .game-top.battle-live .room-ident { display: none; }
body.battle-focus .game-top.battle-live .duel-hud { width: min(600px, calc(100% - 190px)); justify-self: center; }
body.battle-focus .game-top.battle-live .game-actions {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}
body.battle-focus .game-top.battle-live .game-actions > button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: auto;
}
body.battle-focus .game-top.battle-live .battle-guide-button { left: 8px; right: auto; }
body.battle-focus .game-top.battle-live .danger-ghost { right: 8px; left: auto; }
body.battle-focus .game-actions { gap: 5px; }
body.battle-focus .battle-guide-button,
body.battle-focus .danger-ghost {
  min-height: 34px;
  padding: 5px 9px;
  border-radius: 10px;
  font-size: 9px;
}
body.battle-focus .battle-guide-button > span:first-child {
  width: 20px;
  height: 20px;
  border-radius: 6px;
}

/* Scoreboard reads in one glance and visually belongs to the arena. */
.duel-hud {
  --duel-my: #2dd4bf;
  --duel-rival: #fb7185;
  --duel-share: 50%;
  grid-area: duel;
  width: 100%;
  min-width: 0;
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  transform: none;
  display: grid;
  grid-template-columns: minmax(72px, 1fr) minmax(105px, .9fr) minmax(72px, 1fr);
  align-items: center;
  gap: clamp(5px, .8vw, 10px);
  padding: 2px 7px 7px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  pointer-events: none;
}
.duel-hud.hidden { display: none; }
.duel-score {
  min-width: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  border: 0;
  background: transparent;
  text-align: right;
}
.duel-score.rival { flex-direction: row-reverse; text-align: left; }
.duel-player-dot {
  width: 7px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 99px;
  background: var(--duel-my);
  box-shadow: 0 0 14px color-mix(in srgb, var(--duel-my) 48%, transparent);
}
.duel-score.rival .duel-player-dot {
  background: var(--duel-rival);
  box-shadow: 0 0 14px color-mix(in srgb, var(--duel-rival) 48%, transparent);
}
.duel-score span { min-width: 0; }
.duel-score small,
.duel-score b,
.duel-center b,
.duel-center span,
.duel-center small { display: block; }
.duel-score small {
  max-width: 145px;
  overflow: hidden;
  color: #8192a4;
  font-size: 8px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.duel-score b {
  margin-top: 1px;
  color: #f8fafc;
  font-size: clamp(17px, 2vw, 23px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.duel-score.mine b { text-shadow: 0 0 14px color-mix(in srgb, var(--duel-my) 32%, transparent); }
.duel-score.rival b { text-shadow: 0 0 14px color-mix(in srgb, var(--duel-rival) 32%, transparent); }
.duel-center {
  min-width: 0;
  text-align: center;
}
.duel-center b {
  color: #fff;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.duel-center span {
  margin-top: 2px;
  color: #dbe7f1;
  font-size: 8px;
  font-weight: 850;
}
.duel-center small {
  max-width: 190px;
  margin: 1px auto 0;
  overflow: hidden;
  color: #708295;
  font-size: 7px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.duel-balance {
  position: absolute;
  right: 7px;
  bottom: 0;
  left: 7px;
  height: 3px;
  overflow: hidden;
  border-radius: 99px;
  background: linear-gradient(90deg,
    var(--duel-rival) 0 calc(100% - var(--duel-share)),
    rgba(71,85,105,.3) calc(100% - var(--duel-share)) calc(101% - var(--duel-share)),
    var(--duel-my) calc(101% - var(--duel-share)) 100%);
  opacity: .82;
}
.duel-hud.rush .duel-center b,
.duel-hud.rush .duel-center span { color: #fef08a; }
.duel-hud.close .duel-balance { height: 4px; opacity: 1; }

/* Arena surface and command ribbon share one visual shell. */
body.battle-focus .battle-map-surface {
  min-height: 0;
  border-top: 0;
}
body.battle-focus .battle-commandbar {
  min-width: 0;
  min-height: 62px;
  padding: 7px clamp(8px, 1.2vw, 16px) calc(7px + env(safe-area-inset-bottom));
  display: none;
  grid-template-columns: minmax(130px, .72fr) minmax(180px, 1fr) minmax(310px, 1.6fr) auto;
  align-items: center;
  gap: clamp(8px, 1vw, 14px);
  border-top: 0;
  background: linear-gradient(180deg, rgba(7,18,29,.96), rgba(4,12,20,.985));
}
body.battle-focus #gameView.battle-live-view .battle-commandbar { display: grid; }
.dispatch-readout {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 1px 8px;
}
.dispatch-readout small {
  color: #718397;
  font-size: 8px;
  font-weight: 700;
}
.dispatch-readout strong {
  grid-row: 1 / span 2;
  grid-column: 2;
  min-width: 52px;
  padding: 5px 7px;
  border: 1px solid rgba(94,234,212,.24);
  border-radius: 9px;
  color: #99f6e4;
  background: rgba(94,234,212,.065);
  font-size: 13px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.dispatch-readout span {
  overflow: hidden;
  color: #a1afbd;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dispatch-readout.ready span { color: #c8f7ef; }
.dispatch-readout.ready strong { box-shadow: inset 0 0 0 1px rgba(94,234,212,.07), 0 0 18px rgba(45,212,191,.05); }
.battle-commandbar .dispatch-slider {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
}
.battle-commandbar .dispatch-slider > small {
  color: #607286;
  font-size: 7px;
  font-variant-numeric: tabular-nums;
}
.battle-commandbar input[type="range"] {
  width: 100%;
  min-width: 0;
  height: 32px;
  margin: 0;
  accent-color: var(--accent);
}
.battle-commandbar .percent-presets {
  min-width: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}
.battle-commandbar .percent-presets button {
  min-width: 0;
  min-height: 39px;
  padding: 4px 5px;
  border: 1px solid rgba(148,163,184,.13);
  border-radius: 9px;
  background: rgba(148,163,184,.035);
  line-height: 1.1;
}
.battle-commandbar .percent-presets button b,
.battle-commandbar .percent-presets button small { display: block; }
.battle-commandbar .percent-presets button b {
  color: #d8e3ed;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}
.battle-commandbar .percent-presets button small {
  margin-top: 1px;
  color: #64768a;
  font-size: 7px;
}
.battle-commandbar .percent-presets button.active {
  border-color: rgba(94,234,212,.48);
  background: rgba(94,234,212,.09);
  box-shadow: inset 0 0 0 1px rgba(94,234,212,.08);
}
.battle-commandbar .percent-presets button.active b { color: #99f6e4; }
.battle-commandbar .keyboard-hint {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  color: #607286;
  font-size: 7px;
  white-space: nowrap;
}
.battle-commandbar .keyboard-hint kbd {
  min-width: 22px;
  min-height: 22px;
  padding: 2px 5px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 6px;
  color: #cbd5e1;
  background: rgba(148,163,184,.055);
  font-family: inherit;
  font-size: 9px;
}

/* Routine gameplay never gets covered by persistent status cards. */
body.battle-focus .field-banner,
body.battle-focus .momentum-chip { display: none !important; }
body.battle-focus .spectator-banner {
  top: 9px;
  left: 9px;
  right: auto;
  max-width: 220px;
  padding: 6px 8px;
  border-radius: 9px;
  font-size: 9px;
}
body.battle-focus .connection-status,
body.battle-focus .game-toast {
  top: 8px;
  right: 50%;
  bottom: auto;
  left: auto;
  max-width: min(330px, calc(100% - 30px));
  padding: 6px 10px;
  transform: translate(50%, -6px);
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 99px;
  background: rgba(4,12,20,.92);
  box-shadow: 0 8px 24px rgba(0,0,0,.28);
  color: #d9e5ef;
  font-size: 9px;
  line-height: 1.4;
  text-align: center;
  pointer-events: none;
  backdrop-filter: blur(8px);
}
body.battle-focus .game-toast.show { transform: translate(50%, 0); }
body.battle-focus .floating-emote {
  right: 10px;
  left: auto;
  max-width: 180px;
  padding: 5px 8px;
  border-radius: 99px;
  background: rgba(4,12,20,.88);
  font-size: 10px;
}

/* Final Rush is a battlefield flash plus HUD state, not a covering banner. */
@keyframes battle-rush-flash {
  0% { box-shadow: inset 0 0 0 0 rgba(250,204,21,0); }
  30% { box-shadow: inset 0 0 0 3px rgba(250,204,21,.34), inset 0 0 70px rgba(250,204,21,.09); }
  100% { box-shadow: inset 0 0 0 1px rgba(250,204,21,.08), inset 0 0 0 rgba(250,204,21,0); }
}
body.battle-focus .battle-map-surface.rush-flash { animation: battle-rush-flash 1.2s ease-out; }

/* Guide/result remain modal moments and scale to the actual map surface. */
body.battle-focus .battle-guide {
  top: 10px;
  right: 10px;
  width: min(410px, calc(100% - 20px));
  max-height: calc(100% - 20px);
  padding: 18px;
  border-radius: 16px;
  background: rgba(8,22,34,.985);
  backdrop-filter: blur(12px);
}
body.battle-focus .waiting-overlay,
body.battle-focus .result-overlay { inset: 0; }

/* Tablet: same mental model, tighter chrome. */
@media (max-width: 980px) {
  body.battle-focus .game-top {
    min-height: 55px;
    grid-template-columns: minmax(68px, .7fr) minmax(260px, 1.7fr) minmax(68px, .7fr);
    gap: 5px;
    padding-inline: 7px;
  }
  body.battle-focus .game-top.battle-live .room-ident strong { font-size: 9px; }
  body.battle-focus .battle-commandbar {
    min-height: 59px;
    grid-template-columns: minmax(112px, .65fr) minmax(135px, .8fr) minmax(270px, 1.5fr);
    gap: 7px;
    padding-inline: 8px;
  }
  .battle-commandbar .keyboard-hint { display: none; }
  .dispatch-readout span { font-size: 8px; }
}


/* Desktop arena uses the full horizontal viewport; JS also stretches the horizontal map frame to the usable aspect. */
@media (min-width: 981px) and (hover: hover) and (pointer: fine) {
  body.battle-focus #gameView {
    padding-right: 0;
    padding-left: 0;
  }
}

/* Touch tablets keep the vertical board. In portrait the arena is edge-to-edge and
   the command ribbon background reaches the real bottom viewport edge. */
@media (min-width: 681px) and (any-pointer: coarse) {
  body.battle-focus #gameView { padding-bottom: 0; }
}
@media (min-width: 681px) and (orientation: portrait) and (any-pointer: coarse) {
  body.battle-focus #gameView {
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
  }
}

/* Phone/tablet portrait: scoreboard stays readable, controls become one thumb-friendly row. */
@media (max-width: 680px) {
  body.battle-focus #gameView {
    padding: max(1px, env(safe-area-inset-top)) max(1px, env(safe-area-inset-right)) max(1px, env(safe-area-inset-bottom)) max(1px, env(safe-area-inset-left));
  }
  body.battle-focus .game-top {
    min-height: 48px;
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    grid-template-areas: "actions duel room";
    gap: 2px;
    padding: 3px 4px;
    border-radius: 13px 13px 0 0;
  }
  body.battle-focus .game-top.battle-live .room-ident { display: none; }
  body.battle-focus .game-top.battle-live {
    position: relative;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "duel";
  }
  /* Keep the live score strip geometrically centered on the viewport.
     Guide is always to its left; exit mirrors it on the right. */
  body.battle-focus .game-top.battle-live .game-actions {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    justify-self: stretch;
    display: block;
    pointer-events: none;
  }
  body.battle-focus .game-top.battle-live .game-actions > button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: auto;
  }
  body.battle-focus .game-top.battle-live .battle-guide-button { left: 5px; right: auto; }
  body.battle-focus .game-top.battle-live .danger-ghost { right: 5px; left: auto; }
  body.battle-focus .battle-guide-button,
  body.battle-focus .danger-ghost {
    width: 30px;
    min-width: 30px;
    min-height: 32px;
    padding: 3px;
    display: grid;
    place-items: center;
    font-size: 8px;
  }
  body.battle-focus .game-actions .button-label { display: none; }
  body.battle-focus .game-actions .action-icon { display: inline; }
  body.battle-focus .battle-guide-button .button-label { display: none; }
  body.battle-focus .battle-guide-button > span:first-child {
    width: 18px;
    height: 18px;
    border: 0;
  }
  .duel-hud {
    width: min(286px, calc(100% - 78px));
    justify-self: center;
    grid-template-columns: minmax(50px, 1fr) 72px minmax(50px, 1fr);
    gap: 4px;
    padding: 2px 4px 6px;
  }
  .duel-player-dot { width: 5px; height: 23px; }
  .duel-score { gap: 4px; }
  .duel-score small { max-width: 86px; font-size: 7px; }
  .duel-score b { font-size: clamp(14px, 4.4vw, 18px); }
  .duel-center b { font-size: 17px; }
  .duel-center span { font-size: 7px; }
  .duel-center small { display: none; }
  .duel-balance { right: 4px; left: 4px; }
  body.battle-focus .canvas-shell { border-radius: 0 0 13px 13px; }
  body.battle-focus .battle-commandbar {
    min-height: 50px;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px 7px;
    padding: 5px 6px calc(5px + env(safe-area-inset-bottom));
  }
  .dispatch-readout { display: none; }
  .battle-commandbar .dispatch-slider { display: none; }
  .battle-commandbar .percent-presets {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
  }
  .battle-commandbar .percent-presets button {
    min-height: 39px;
    padding: 3px;
    border-radius: 8px;
    touch-action: manipulation;
  }
  .battle-commandbar .percent-presets button b { font-size: 10px; }
  .battle-commandbar .percent-presets button small { display: none; }
  body.battle-focus .battle-guide {
    top: 6px;
    right: 6px;
    width: calc(100% - 12px);
    max-height: calc(100% - 12px);
    padding: 15px;
  }
  body.battle-focus .connection-status,
  body.battle-focus .game-toast { top: 5px; max-width: calc(100% - 24px); font-size: 8px; }
}

@media (max-width: 390px) {
  body.battle-focus .game-top { min-height: 46px; }
  .duel-hud { width: min(264px, calc(100% - 76px)); grid-template-columns: minmax(42px, 1fr) 64px minmax(42px, 1fr); }
  .duel-score small { max-width: 67px; }
  .duel-score b { font-size: 15px; }
  .duel-center b { font-size: 16px; }
  body.battle-focus .battle-commandbar { min-height: 51px; padding-inline: 4px; gap: 4px; }
  .battle-commandbar .percent-presets { gap: 3px; }
  .battle-commandbar .percent-presets button { min-height: 36px; padding-inline: 2px; }
  .battle-commandbar .percent-presets button b { font-size: 9px; }
}

/* Short landscape: map rotates in JS; chrome shrinks vertically but interaction stays identical. */
@media (max-height: 620px) and (orientation: landscape) {
  body.battle-focus #gameView {
    padding: max(1px, env(safe-area-inset-top)) max(1px, env(safe-area-inset-right)) max(1px, env(safe-area-inset-bottom)) max(1px, env(safe-area-inset-left));
  }
  body.battle-focus .game-top {
    min-height: 43px;
    grid-template-columns: 46px minmax(250px, 520px) 46px;
    justify-content: space-between;
    padding: 3px 5px;
  }
  body.battle-focus .game-top.battle-live .room-ident { display: none; }
  body.battle-focus .game-top.battle-live {
    position: relative;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "duel";
  }
  body.battle-focus .game-top.battle-live .duel-hud { width: min(410px, calc(100% - 92px)); justify-self: center; }
  body.battle-focus .game-top.battle-live .game-actions { position: absolute; inset: 0; width: 100%; height: 100%; justify-self: stretch; display: block; pointer-events: none; }
  body.battle-focus .game-top.battle-live .game-actions > button { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: auto; }
  body.battle-focus .game-top.battle-live .battle-guide-button { left: 5px; right: auto; }
  body.battle-focus .game-top.battle-live .danger-ghost { right: 5px; left: auto; }
  body.battle-focus .battle-guide-button,
  body.battle-focus .danger-ghost { min-height: 29px; padding-block: 2px; }
  .duel-hud { padding-bottom: 5px; }
  .duel-score b { font-size: 15px; }
  .duel-center b { font-size: 16px; }
  .duel-center small { display: none; }
  body.battle-focus .battle-commandbar {
    min-height: 40px;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    padding: 3px 6px calc(3px + env(safe-area-inset-bottom));
  }
  .dispatch-readout,
  .battle-commandbar .dispatch-slider,
  .battle-commandbar .keyboard-hint { display: none; }
  .battle-commandbar .percent-presets { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
  .battle-commandbar .percent-presets button { min-height: 33px; padding: 2px 4px; }
  .battle-commandbar .percent-presets button small { display: none; }
}

@media (max-height: 430px) and (orientation: landscape) {
  body.battle-focus .game-top { min-height: 39px; }
  .duel-score small { display: none; }
  .duel-score b { font-size: 14px; }
  .duel-center b { font-size: 15px; }
  .duel-center span { font-size: 6px; }
  body.battle-focus .battle-commandbar { min-height: 38px; padding-block: 2px; }
  .battle-commandbar .percent-presets button { min-height: 29px; }
}

@media (hover: none) and (pointer: coarse) {
  body.battle-focus #gameCanvas { cursor: default; }
  .battle-commandbar .percent-presets button { touch-action: manipulation; }
}

@media (prefers-reduced-motion: reduce) {
  body.battle-focus .battle-map-surface.rush-flash { animation: none; }
}




/* 1.8.0 — production polish, branding and strict 1v1 private lobby */
.brand-mark {
  overflow: hidden;
  padding: 0;
}
.brand-mark img,
.payment-brand img,
.admin-branding-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.brand-mark img { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }

.private-duel-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border: 1px solid rgba(94,234,212,.16);
  border-radius: 14px;
  background: rgba(8,31,44,.7);
}
.private-duel-note b { color: var(--accent); font-size: 14px; white-space: nowrap; }
.private-duel-note span { color: var(--muted); font-size: 12px; line-height: 1.7; }

.site-footer {
  width: min(1180px, calc(100% - 28px));
  margin: 22px auto 14px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 14px;
  color: #718096;
  font-size: 11px;
  text-align: center;
}
.site-footer b { color: #a7b6c8; font-weight: 800; }
body.battle-focus .site-footer { display: none; }
.admin-footer { margin-top: 10px; }
.payment-footer { margin-top: 4px; }

.admin-branding-panel {
  margin: 0 0 18px;
  padding: 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
  gap: 18px;
  align-items: center;
}
.admin-branding-preview { display: flex; align-items: center; gap: 14px; min-width: 0; }
.admin-branding-preview img {
  width: 82px;
  height: 82px;
  flex: 0 0 82px;
  padding: 0;
  border-radius: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.admin-branding-preview div { min-width: 0; display: grid; gap: 4px; }
.admin-branding-preview small,
.admin-branding-preview span { color: var(--muted); font-size: 11px; }
.admin-branding-preview b { font-size: 20px; }
.admin-branding-preview em { color: var(--accent); font-style: normal; font-size: 12px; margin-inline-start: 6px; }
.admin-branding-form { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 8px; align-items: end; }
.branding-upload-label {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 9px 11px;
  border: 1px dashed rgba(148,163,184,.24);
  border-radius: 13px;
  background: rgba(5,17,27,.55);
  cursor: pointer;
}
.branding-upload-label span { font-weight: 800; }
.branding-upload-label small { color: var(--muted); font-size: 10px; }
.branding-upload-label input { width: 100%; margin-top: 5px; font-size: 11px; }

.payment-brand {
  width: fit-content;
  margin: 0 auto 12px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #e6fffb;
}
.payment-brand img {
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.payment-brand b { font-size: 15px; }

/* Final usability pass: predictable focus, touch and no decorative layout shifts. */
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, canvas:focus-visible {
  outline: 2px solid rgba(94,234,212,.92);
  outline-offset: 3px;
}
.primary-btn, .secondary-btn, .ghost-btn, .icon-btn, .mini-primary, .profile-chip {
  transition: transform .14s ease, border-color .14s ease, background-color .14s ease, opacity .14s ease;
}
@media (hover:hover) {
  .primary-btn:hover, .secondary-btn:hover, .ghost-btn:hover, .mini-primary:hover { transform: translateY(-1px); }
}
button:active { transform: translateY(0) scale(.985); }
button:disabled { transform: none !important; }

@media (max-width: 900px) {
  .admin-branding-panel { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .site-footer { margin-top: 14px; font-size: 10px; }
  .admin-branding-panel { padding: 14px; }
  .admin-branding-preview img { width: 66px; height: 66px; flex-basis: 66px; border-radius: 0; }
  .admin-branding-form { grid-template-columns: 1fr; }
  .admin-branding-form .primary-btn,
  .admin-branding-form .secondary-btn { width: 100%; }
  .private-duel-note { align-items: flex-start; flex-direction: column; gap: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .primary-btn, .secondary-btn, .ghost-btn, .icon-btn, .mini-primary, .profile-chip { transition: none; }
}


/* 1.9.0 — release typography & readability */
html[dir="rtl"] h1,
html[dir="rtl"] h2,
html[dir="rtl"] h3,
html[dir="rtl"] h4,
html[dir="rtl"] .brand-copy,
html[dir="rtl"] .home-hero-copy { letter-spacing: 0 !important; }

body {
  font-size: clamp(14px, calc(13.55px + .12vw), 15.25px);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

button, input, select, textarea { font-family: inherit; }
#duelTimer,
.duel-score b,
.leader-rating b,
.rank-me-rating,
.metric-card b {
  font-variant-numeric: tabular-nums;
}

.duel-score small { font-size: 10px; line-height: 1.35; }
.duel-center span { font-size: 10px; line-height: 1.35; }
.duel-center small { font-size: 9px; }
.podium-player b { font-size: 12px; }
.podium-player small { font-size: 10px; line-height: 1.45; }
.ranked-leader-row .leader-name small { font-size: 10px; line-height: 1.45; }
.leader-rating small,
.leader-winrate small,
.leader-delta { font-size: 9px; line-height: 1.4; }
.ranked-rules { font-size: 10px !important; line-height: 1.9; }

@media (max-width: 680px) {
  .duel-score small { font-size: 9px; }
  .duel-center span { font-size: 9px; }
  .podium-player b { font-size: 11px; }
  .podium-player small { font-size: 9px; }
}

@media (max-width: 380px) {
  body { font-size: 14px; }
  .ranked-rules { font-size: 9.5px !important; }
}

/* 1.10.0 — public identity + explicit guest/registered entry flow */
.hero-entry-actions {
  width: min(100%, 760px);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(230px, .75fr);
  gap: 10px;
  align-items: stretch;
}
.hero-entry-actions .home-primary-cta { width: 100%; margin: 0; }
.hero-ranked-guest-cta {
  min-height: 64px;
  padding: 11px 14px;
  justify-content: space-between;
  text-align: right;
  border-color: rgba(96,165,250,.3);
  background: linear-gradient(135deg, rgba(96,165,250,.09), rgba(45,212,191,.04));
}
.hero-ranked-guest-cta > span { min-width: 0; display: block; }
.hero-ranked-guest-cta b,
.hero-ranked-guest-cta small { display: block; }
.hero-ranked-guest-cta b { font-size: 13px; }
.hero-ranked-guest-cta small { margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 600; }

.ranked-public-id {
  display: block;
  width: max-content;
  max-width: 100%;
  margin-top: 2px;
  overflow: hidden;
  color: #93c5fd;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 9px;
  font-weight: 750;
  line-height: 1.4;
  direction: ltr;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.podium-player .ranked-public-id { margin: 2px auto 0; font-size: 8px; }
.ranked-me-league .ranked-public-id { margin-top: 4px; font-size: 10px; }
.leader-name .ranked-public-id { margin-top: 1px; }

.public-id-input {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
}
.public-id-input:focus-within { border-color: rgba(45,212,191,.55); box-shadow: 0 0 0 3px rgba(45,212,191,.08); }
.public-id-input > span { padding-inline: 12px 4px; color: #93c5fd; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-weight: 800; }
.public-id-input input {
  min-width: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  direction: ltr;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  box-shadow: none !important;
}
.field-help { display: block; margin: -2px 2px 8px; color: var(--muted); font-size: 9px; line-height: 1.7; }

@media (max-width: 700px) {
  .hero-entry-actions { width: 100%; grid-template-columns: 1fr; gap: 8px; }
  .hero-ranked-guest-cta { min-height: 54px; }
  .hero-ranked-guest-cta b { font-size: 12px; }
  .hero-ranked-guest-cta small { font-size: 9px; }
  .ranked-public-id { font-size: 8.5px; }
}

/* 1.13.0 — revenue growth / Live Ops */
.season-shop-card {
  margin: 0 0 18px; padding: clamp(14px, 2.4vw, 22px); display: grid; gap: 14px;
  border: 1px solid var(--line); border-radius: 18px; background: rgba(15,23,42,.58);
}
.season-shop-card > div:first-child { display: flex; align-items: end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.season-shop-card h3 { margin: 4px 0 0; }
.season-shop-card p { margin: 0; color: var(--muted); }
.season-progress-summary { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.season-progress-summary span { padding: 10px; text-align: center; border: 1px solid var(--line); border-radius: 12px; background: rgba(2,6,23,.28); }
.season-progress-summary b, .season-progress-summary small { display: block; }
.season-progress-summary small { margin-top: 3px; color: var(--muted); }
.referral-ladder { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 9px; margin: 12px 0; }
.referral-ladder-step { min-width: 0; padding: 11px; display: grid; align-content: start; gap: 8px; border: 1px solid var(--line); border-radius: 13px; background: rgba(2,6,23,.22); opacity: .72; }
.referral-ladder-step.unlocked, .referral-ladder-step.claimed { opacity: 1; }
.referral-ladder-step.claimed { border-color: rgba(94,234,212,.3); box-shadow: inset 0 0 0 1px rgba(94,234,212,.12); }
.referral-ladder-step > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.referral-ladder-step > header span { color: var(--muted); font-size: 8px; font-weight: 800; }
.referral-ladder-step > header b { color: #dbeafe; font-size: 9px; white-space: nowrap; }
.referral-ladder-step > strong { min-width: 0; font-size: 11px; line-height: 1.5; }
.referral-reward-items { display: grid; gap: 6px; }
.referral-reward-item { min-width: 0; min-height: 42px; padding: 6px 8px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(148,163,184,.13); border-radius: 10px; background: rgba(15,23,42,.38); }
.referral-reward-item > span { min-width: 0; }
.referral-reward-item small, .referral-reward-item b { display: block; }
.referral-reward-item small { color: var(--muted); font-size: 7.5px; line-height: 1.3; }
.referral-reward-item b { margin-top: 1px; overflow: hidden; color: #f8fafc; font-size: 9.5px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.referral-reward-item.coins > i { color: #facc15; font-size: 14px; font-style: normal; }
.referral-reward-item.skin .skin-canvas-preview { width: 38px; height: 38px; flex: 0 0 38px; margin: 0; }
.referral-fallback-skin { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; border: 1px solid rgba(125,211,252,.2); border-radius: 9px; color: #7dd3fc; background: rgba(14,116,144,.1); font-style: normal; }
.referral-reward-item.badge { align-items: flex-start; }
.referral-reward-item.badge > span { width: 100%; }
.referral-reward-item.badge .fath-badge { margin-top: 3px; max-width: 100%; }
.referral-reward-item.badge .fath-badge b { margin-top: 0; color: inherit; }
.referral-step-status { color: var(--muted); font-size: 8px; line-height: 1.5; }
.referral-ladder-step.claimed .referral-step-status { color: #99f6e4; }
.push-preferences { margin-top: 16px; }
.push-preferences p { color: var(--muted); line-height: 1.8; }
.live-ops-manager { margin: 18px 0; }
.admin-inline-form { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.source-roas-row { grid-template-columns: minmax(210px,1fr) auto minmax(160px,.55fr); align-items: center; }
.source-spend-editor { display: flex; gap: 6px; align-items: center; }
.source-spend-editor input { min-width: 0; width: 100%; }
@media (max-width: 820px) {
  .referral-ladder { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .source-roas-row { grid-template-columns: 1fr; }
  .season-progress-summary { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .referral-ladder { grid-template-columns: 1fr; }
}


/* 1.15.0 — canonical admin workspace */
.admin-page .admin-shell { width: min(1480px, calc(100% - 28px)); margin-inline: auto; }
.admin-section-nav { position: sticky; top: 70px; z-index: 24; margin: 12px 0 18px; padding: 7px; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: thin; border-radius: 16px; backdrop-filter: blur(18px); }
.admin-nav-button { min-height: 42px; padding: 0 16px; flex: 0 0 auto; border: 0; border-radius: 11px; color: var(--muted); background: transparent; font: inherit; font-weight: 900; cursor: pointer; }
.admin-nav-button:hover { color: var(--text); background: rgba(148,163,184,.08); }
.admin-nav-button.active { color: var(--text); background: rgba(94,234,212,.12); box-shadow: inset 0 0 0 1px rgba(94,234,212,.24); }
.admin-page [data-admin-section] { display: none !important; }
.admin-page [data-admin-section].admin-section-active { display: block !important; }
.admin-page .admin-growth-grid, .admin-page .admin-grid { display: contents; }
.admin-page [data-admin-section].admin-panel, .admin-page [data-admin-section].admin-branding-panel, .admin-page [data-admin-section].admin-hero { margin: 0 0 14px; }
.admin-page #adminMetrics.admin-section-active { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.admin-page .metric-card { min-height: 112px; padding: 15px; display: grid; align-content: center; gap: 5px; }
.admin-page .metric-card > span { color: var(--muted); font-size: 11px; }
.admin-page .metric-card > strong { font-size: clamp(18px, 2.2vw, 27px); line-height: 1.2; }
.admin-page .metric-card > small { color: var(--muted); font-size: 9px; }
.admin-page .admin-panel { padding: clamp(15px, 2vw, 22px); }
.admin-page .admin-panel-head { margin-bottom: 14px; }
.admin-page .admin-panel-head h2 { font-size: 16px; }
.admin-page .admin-panel-head p { max-width: 70ch; font-size: 10px; }
.admin-page .commerce-manager-panel, .admin-page .skin-manager-panel, .admin-page .admin-users-panel { grid-column: auto; }
.admin-page details.admin-compact-details > summary, .admin-page .skin-editor-section > summary { cursor: pointer; }
@media (max-width: 980px) { .admin-page .admin-shell { width: min(100% - 18px, 1480px); } .admin-page #adminMetrics.admin-section-active { grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-section-nav { top: 62px; margin-top: 8px; } }
@media (max-width: 560px) { .admin-page #adminMetrics.admin-section-active { grid-template-columns: 1fr 1fr; } .admin-nav-button { min-height: 40px; padding-inline: 12px; font-size: 10px; } .admin-page .metric-card { min-height: 96px; padding: 12px; } .admin-page .admin-panel { border-radius: 15px; } }
.admin-page .admin-funnel-row { grid-template-columns: minmax(0, 1fr) auto; }


/* 1.15.0 — adaptive rendering for weak / data-saving devices */
html.perf-low .duel-hud,
html.perf-low body.battle-focus .game-toast,
html.perf-low body.battle-focus .connection-status,
html.perf-low body.battle-focus .battle-guide,
html.perf-low .install-nudge,
html.perf-low .admin-section-nav {
  backdrop-filter: none !important;
}
html.perf-low .duel-hud.close,
html.perf-low body.battle-focus .battle-map-surface.rush-flash,
html.perf-low .recommended-pulse,
html.perf-low .offer-pulse {
  animation: none !important;
}
html.perf-low body.battle-focus .game-toast,
html.perf-low body.battle-focus .connection-status,
html.perf-low .duel-hud {
  box-shadow: none;
}
html.perf-low .skin-preview .preview-core,
html.perf-low .skin-preview .preview-ring {
  filter: none !important;
}
/* 1.16.0 — admin decision workspace: season, commerce and players */
.admin-panel-head-actions { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.compact-btn { min-height:40px; padding:8px 13px; white-space:nowrap; }
.admin-decision-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.admin-decision-card { min-width:0; padding:12px 13px; display:grid; gap:4px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.025); }
.admin-decision-card span { color:var(--muted); font-size:11px; }
.admin-decision-card strong { overflow:hidden; text-overflow:ellipsis; font-size:16px; line-height:1.3; }
.admin-decision-card small { color:var(--muted); font-size:10.5px; line-height:1.55; }
.admin-split-layout { margin-top:14px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:12px; align-items:start; }
.admin-editor-card { padding:13px; border:1px solid var(--line); border-radius:14px; background:rgba(4,12,20,.28); }
.admin-editor-shell { margin:11px 0; }
.admin-toolbar { display:flex; align-items:center; gap:8px; }
.admin-toolbar-wrap { margin:12px 0; flex-wrap:wrap; }
.admin-toolbar-wrap > div:first-child { min-width:170px; margin-inline-end:auto; }
.admin-toolbar-wrap > div:first-child b, .admin-toolbar-wrap > div:first-child small { display:block; }
.admin-toolbar-wrap > div:first-child small { margin-top:2px; color:var(--muted); font-size:11px; }
.admin-toolbar .admin-search, .admin-toolbar select { min-height:40px; }
.admin-search-wide { min-width:min(420px,100%); flex:1 1 280px; }
.admin-toggle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.admin-content-board { margin-top:14px; padding-top:13px; border-top:1px solid var(--line); }
.admin-content-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.admin-content-row { min-width:0; padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.02); }
.admin-content-row b, .admin-content-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-content-row small { margin-top:2px; color:var(--muted); font-size:10px; }
.season-reward-list { max-height:430px; overflow:auto; display:grid; gap:7px; overscroll-behavior:contain; }
.season-reward-row { padding:9px 10px; display:grid; grid-template-columns:auto auto 1fr 1fr; gap:7px; align-items:center; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.02); }
.season-reward-row > small { color:var(--muted); font-size:10px; }
.season-reward-row > span { min-width:0; padding:6px 8px; border-radius:9px; background:rgba(148,163,184,.055); font-size:10px; line-height:1.5; }
.season-reward-row em { margin-inline-end:5px; color:var(--accent); font-style:normal; font-weight:900; }
.admin-push-panel { margin-top:14px; }
.admin-push-panel > summary { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.admin-push-panel .admin-inline-form { border-top:0; }
.admin-economy-panel { margin-top:14px; }
.admin-economy-panel > .economy-form { margin:0 11px 11px; }
.admin-package-row.live { border-color:rgba(94,234,212,.2); }
.admin-package-row.upcoming { border-color:rgba(253,230,138,.2); }
.admin-package-row.ended, .admin-package-row.inactive, .admin-package-row.deleted { opacity:.68; }
.admin-form[data-dirty="true"] { box-shadow:inset 0 0 0 1px rgba(253,230,138,.22); }
.admin-form[data-dirty="true"]::before { content:"تغییر ذخیره‌نشده"; display:block; margin-bottom:8px; color:#fde68a; font-size:11px; font-weight:800; }
.primary-table-action { border-color:rgba(94,234,212,.25) !important; color:var(--accent) !important; }
.player-detail-panel { margin:12px 0; padding:14px; border:1px solid rgba(94,234,212,.2); border-radius:15px; background:rgba(94,234,212,.025); }
.player-detail-head { margin-bottom:11px; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.player-detail-head b, .player-detail-head small { display:block; }
.player-detail-head b { font-size:16px; }
.player-detail-head small { margin-top:3px; color:var(--muted); font-size:11px; }
.player-detail-columns { margin-top:11px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.player-detail-meta { display:grid; gap:7px; }
.player-detail-meta > div { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid rgba(148,163,184,.09); }
.player-detail-meta span { color:var(--muted); font-size:11px; }
.player-detail-meta b { text-align:left; font-size:12px; }
.player-mini-list { margin-top:12px; display:grid; gap:6px; }
.player-mini-list > b { font-size:12px; }
.player-mini-row { padding:8px 9px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; border:1px solid var(--line); border-radius:10px; }
.player-mini-row span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.player-mini-row b { font-size:11px; }
.player-mini-row small { grid-column:1/-1; color:var(--muted); font-size:10px; }
.player-detail-panel .coin-adjustment, .player-detail-panel .skin-access-manager { position:static; margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
.player-detail-panel .coin-adjustment form { grid-template-columns:minmax(90px,.6fr) minmax(180px,1.3fr) auto; }
.player-skin-form { grid-template-columns:minmax(150px,1fr) minmax(180px,1.2fr) auto auto auto; }
.compact-empty { padding:10px !important; }
@media (max-width:980px) {
  .admin-decision-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-split-layout, .player-detail-columns { grid-template-columns:1fr; }
  .admin-content-list { grid-template-columns:1fr; }
  .season-reward-row { grid-template-columns:auto auto 1fr; }
  .season-reward-row > span:last-child { grid-column:3; }
  .player-skin-form { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
  .admin-panel-head-actions { display:block; }
  .admin-panel-head-actions > .compact-btn, .admin-panel-head-actions > .admin-pill { margin-top:9px; width:100%; }
  .admin-decision-grid { grid-template-columns:1fr 1fr; }
  .admin-toolbar { align-items:stretch; }
  .admin-toolbar > * { width:100%; }
  .admin-toolbar-wrap > div:first-child { min-width:0; width:100%; }
  .season-reward-row { grid-template-columns:1fr auto; }
  .season-reward-row > span, .season-reward-row > span:last-child { grid-column:1/-1; }
  .admin-toggle-grid { grid-template-columns:1fr; }
  .player-detail-columns { gap:8px; }
  .player-detail-panel .coin-adjustment form, .player-skin-form { grid-template-columns:1fr; }
}


/* Admin UI controls, decision assistant, referral, Skin Studio and in-game notices */
.admin-page .check-label {
  min-width: 0;
  min-height: 42px;
  padding: 8px 10px;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(7,18,29,.72);
  cursor: pointer;
  line-height: 1.45;
}
.admin-page .check-label input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  max-width: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 18px;
  align-self: center;
  accent-color: var(--accent);
  cursor: pointer;
}
.admin-page .check-label > span { min-width: 0; flex: 1; font-size: 11px; font-weight: 800; }
.admin-page .check-label:has(input:focus-visible) { outline: 2px solid rgba(94,234,212,.38); outline-offset: 2px; }
.admin-page .check-label:has(input:checked) { border-color: rgba(94,234,212,.27); background: rgba(94,234,212,.055); }
.admin-page .check-label:has(input:disabled) { opacity: .58; cursor: not-allowed; }

.admin-smart-advisor { overflow: hidden; }
.admin-insights { display: grid; gap: 9px; }
.admin-insight {
  min-width: 0; padding: 11px 12px; display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 12px;
  border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.022);
}
.admin-insight > div { display: grid; align-content: start; gap: 5px; }
.admin-insight > div span { width: max-content; padding: 3px 7px; border-radius: 999px; color: #dbeafe; background: rgba(96,165,250,.13); font-size: 9px; font-weight: 950; }
.admin-insight > div small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.admin-insight section { min-width: 0; }
.admin-insight section b { display: block; margin-bottom: 3px; font-size: 12px; }
.admin-insight section p { margin: 0 0 5px; color: var(--muted); font-size: 10.5px; line-height: 1.65; }
.admin-insight section strong { color: #d9f99d; font-size: 10px; line-height: 1.6; }
.admin-insight.critical { border-color: rgba(251,113,133,.3); background: rgba(251,113,133,.045); }
.admin-insight.critical > div span { color: #fecdd3; background: rgba(251,113,133,.14); }
.admin-insight.high { border-color: rgba(251,191,36,.24); }
.admin-insight.high > div span { color: #fde68a; background: rgba(251,191,36,.12); }
.admin-insight.opportunity { border-color: rgba(74,222,128,.25); }
.admin-insight.opportunity > div span { color: #bbf7d0; background: rgba(74,222,128,.12); }

.referral-reward-editor { margin-top: 10px; }
.referral-reward-rows { display: grid; gap: 8px; margin: 10px 0; }
.referral-reward-row {
  padding: 10px; display: grid; grid-template-columns: 100px 100px minmax(150px,1fr) minmax(150px,1fr) minmax(130px,.8fr) auto;
  gap: 8px; align-items: end; border: 1px solid var(--line); border-radius: 12px; background: rgba(2,6,23,.22);
}
.referral-reward-row label { min-width: 0; margin: 0; }
.referral-reward-row label > span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 9px; }
.referral-reward-row input, .referral-reward-row select { min-height: 40px; }

.skin-preset-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; margin: 8px 0 12px; }
.skin-preset-grid button {
  min-height: 44px; padding: 7px 8px; display: flex; align-items: center; gap: 7px;
  border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: rgba(255,255,255,.025); font: inherit; font-size: 9px; font-weight: 850; cursor: pointer;
}
.skin-preset-grid button i { width: 18px; height: 18px; flex: 0 0 18px; border-radius: 50%; background: linear-gradient(135deg,var(--a),var(--b)); box-shadow: 0 0 0 2px rgba(255,255,255,.07); }
.skin-preset-grid button:hover { border-color: rgba(94,234,212,.35); transform: translateY(-1px); }

.admin-game-notice-panel .admin-form { margin-top: 0; }
.game-notice-preview {
  min-height: 78px; padding: 12px; display: grid; align-content: center; gap: 5px;
  border: 1px solid var(--line); border-radius: 13px; background: rgba(96,165,250,.055);
}
.game-notice-preview b { font-size: 12px; }
.game-notice-preview span { color: var(--muted); font-size: 10.5px; line-height: 1.65; }
.game-notice-preview.success { border-color: rgba(74,222,128,.28); background: rgba(74,222,128,.055); }
.game-notice-preview.warning { border-color: rgba(251,191,36,.28); background: rgba(251,191,36,.055); }
.admin-notice-history { display: grid; gap: 7px; margin-top: 10px; }
.admin-notice-row { padding: 10px 11px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; border: 1px solid var(--line); border-radius: 11px; }
.admin-notice-row > div { min-width: 0; }
.admin-notice-row b, .admin-notice-row small, .admin-notice-row em { display: block; }
.admin-notice-row b { font-size: 11px; }
.admin-notice-row small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.admin-notice-row em { margin-top: 4px; color: #93c5fd; font-size: 9px; font-style: normal; }
.admin-notice-row.expired { opacity: .55; }

.notice-button { position: relative; }
.notice-unread-badge {
  position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px;
  display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--bg);
  border-radius: 999px; color: #06111a; background: #facc15; font-size: 9px; font-weight: 950; line-height: 1;
}
.notification-list { display: grid; gap: 8px; margin-top: 12px; }
.notification-item { padding: 11px 12px; display: grid; grid-template-columns: 8px minmax(0,1fr); gap: 10px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.022); }
.notification-item::before { content:""; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: #60a5fa; }
.notification-item.unread { border-color: rgba(96,165,250,.32); background: rgba(96,165,250,.055); }
.notification-item.success::before { background: #4ade80; }
.notification-item.warning::before { background: #fbbf24; }
.notification-item b, .notification-item p, .notification-item small { display: block; }
.notification-item b { font-size: 12px; }
.notification-item p { margin: 4px 0 5px; color: var(--muted); font-size: 10.5px; line-height: 1.7; }
.notification-item small { color: #93a4b8; font-size: 9px; }
.notification-actions { margin-top: 7px; display: flex; gap: 6px; flex-wrap: wrap; }
.notification-actions button { min-height: 34px; padding: 5px 10px; }

@media (max-width: 980px) {
  .referral-reward-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .referral-reward-row > button { grid-column: 2; justify-self: end; }
  .skin-preset-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .admin-page .check-label { min-height: 40px; }
  .admin-insight { grid-template-columns: 56px minmax(0,1fr); gap: 9px; }
  .referral-reward-row { grid-template-columns: 1fr; }
  .referral-reward-row > button { grid-column: 1; width: 100%; }
  .skin-preset-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-notice-row { grid-template-columns: 1fr; }
  .admin-notice-row button { width: 100%; }
}

/* 1.18 — simplified season/content hub, moderation and legal pages */
.admin-page .admin-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: max(8px, env(safe-area-inset-top)) max(14px, calc((100vw - 1440px) / 2));
  border-bottom: 1px solid rgba(148,163,184,.14);
  background: rgba(5,11,18,.96);
  backdrop-filter: blur(14px);
}
.admin-page .admin-section-nav { top: 68px; margin-top: 0; border-radius: 0 0 16px 16px; }

.season-reward-editor-rows { display:grid; gap:9px; margin:10px 0; }
.season-reward-editor-row { display:grid; grid-template-columns:80px minmax(0,1fr) minmax(0,1fr) auto; gap:9px; align-items:end; padding:10px; border:1px solid var(--line); border-radius:13px; background:rgba(2,6,23,.24); }
.season-reward-editor-row fieldset { min-width:0; margin:0; padding:8px; display:grid; grid-template-columns:90px minmax(130px,1fr) minmax(130px,1fr); gap:7px; border:1px solid rgba(148,163,184,.12); border-radius:10px; }
.season-reward-editor-row legend { padding-inline:5px; color:var(--accent); font-size:10px; font-weight:900; }
.season-reward-editor-row label { margin:0; min-width:0; }
.season-reward-editor-row input,.season-reward-editor-row select { min-height:40px; }

.season-rules-text { margin:10px 0; padding:10px 12px; border:1px solid rgba(94,234,212,.17); border-radius:12px; color:#cbd5e1; background:rgba(94,234,212,.04); font-size:11px; line-height:1.8; }
.season-rewards-user { max-height:300px; overflow:auto; display:grid; gap:6px; margin:10px 0; }
.season-user-reward { padding:8px 10px; display:grid; grid-template-columns:auto 1fr 1fr; gap:8px; align-items:center; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.018); }
.season-user-reward.reached { border-color:rgba(74,222,128,.22); background:rgba(74,222,128,.035); }
.season-user-reward > span { display:grid; gap:2px; color:#e2e8f0; font-size:10px; }
.season-user-reward > span small { color:var(--muted); font-size:9px; }
.season-upgrade-button { width:100%; margin-top:8px; }

.live-notice-banner { position:fixed; z-index:90; top:calc(10px + env(safe-area-inset-top)); left:50%; width:min(560px,calc(100% - 24px)); transform:translateX(-50%); padding:12px 44px 12px 13px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; border:1px solid rgba(94,234,212,.33); border-radius:14px; color:var(--text); background:rgba(4,13,22,.97); box-shadow:0 18px 55px rgba(0,0,0,.42); }
.live-notice-banner.notice-enter { animation:noticeIn .2s ease-out; }
.live-notice-banner b,.live-notice-banner p { display:block; margin:0; }
.live-notice-banner b { color:var(--accent); font-size:12px; }
.live-notice-banner p { margin-top:2px; color:#d6e2ec; font-size:11px; line-height:1.65; }
.live-notice-close { position:absolute; top:7px; right:8px; width:30px; height:30px; border-radius:9px; background:rgba(255,255,255,.05); }
@keyframes noticeIn { from { opacity:0; transform:translate(-50%,-12px); } to { opacity:1; transform:translate(-50%,0); } }

.dynamic-footer { flex-direction:column; gap:8px; }
.footer-links { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px 6px; }
#footerSocialLinks,#pageSocial { display:contents; }
.footer-links a { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:4px 8px; border:1px solid transparent; border-radius:8px; color:#9fb4c7; text-decoration:none; font-weight:700; line-height:1.4; transition:border-color .16s ease,background-color .16s ease,color .16s ease; }
.footer-links a:hover { color:var(--accent); border-color:rgba(148,163,184,.14); background:rgba(15,23,42,.42); }
.footer-links a:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.footer-social-link { color:inherit !important; }
.footer-social-link:hover { color:var(--accent) !important; }
.social-link-note { margin-bottom:10px; }
.footer-trust-badges { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px; }
.footer-trust-badges img { display:block; max-width:92px; max-height:92px; object-fit:contain; }
.legal-page { width:min(920px,calc(100% - 28px)); min-height:calc(100svh - 180px); margin:20px auto; }
.legal-card { padding:clamp(18px,4vw,36px); border-radius:20px; }
.legal-card h1 { margin-top:0; }
.legal-body { color:#cbd5e1; line-height:2; white-space:normal; }
.hub-icon { font-size:20px; color:var(--accent); }
.player-moderation-card { margin-top:12px; padding:12px; border:1px solid var(--line); border-radius:13px; }
.player-moderation-card h4 { margin:0 0 8px; }

@media (max-width: 820px) {
  .season-reward-editor-row { grid-template-columns:1fr auto; }
  .season-reward-editor-row > fieldset { grid-column:1/-1; }
  .season-reward-editor-row fieldset { grid-template-columns:1fr; }
  .season-user-reward { grid-template-columns:auto 1fr; }
  .season-user-reward > span { grid-column:2; }
}
@media (max-width: 560px) {
  .admin-page .admin-topbar { padding-inline:10px; }
  .admin-page .admin-section-nav { top:64px; }
  .live-notice-banner { top:calc(6px + env(safe-area-inset-top)); grid-template-columns:1fr; }
  .season-user-reward { grid-template-columns:1fr; }
  .season-user-reward > span { grid-column:auto; }
}



/* 1.19.0 — Store, season, badges and admin clarity */
.hub-nav-btn{min-height:42px;padding:6px 10px;border:1px solid rgba(148,163,184,.2);border-radius:13px;background:rgba(15,23,42,.68);color:var(--text);display:inline-flex;align-items:center;gap:7px;cursor:pointer;font:inherit;font-weight:800;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.hub-nav-btn:hover{transform:translateY(-1px);border-color:rgba(94,234,212,.45);background:rgba(15,23,42,.9)}
.store-hub-icon{width:26px;height:24px;display:inline-grid;place-items:center;flex:0 0 auto;transition:transform .18s ease}
.store-hub-icon svg{width:100%;height:100%;display:block;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.store-hub-icon-accent{stroke-width:2.2;opacity:.78}
.store-hub-btn:hover .store-hub-icon,.store-hub-btn:focus-visible .store-hub-icon{transform:translateY(-1px)}
.season-hub-btn{background:linear-gradient(135deg,rgba(124,58,237,.22),rgba(15,23,42,.82))}.season-hub-icon{font-size:21px;line-height:1;filter:drop-shadow(0 0 8px rgba(250,204,21,.35))}
.skin-store-tabs{flex-wrap:wrap}.exclusive-requirement{display:block;min-height:34px;color:var(--muted);line-height:1.65}.badge-store-section{margin-top:22px;padding-top:18px;border-top:1px solid rgba(148,163,184,.14)}
.owned-badges-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.badge-choice{min-height:72px;padding:10px;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:rgba(15,23,42,.55);color:var(--text);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;cursor:pointer}.badge-choice.active{border-color:rgba(94,234,212,.55);box-shadow:0 0 0 1px rgba(94,234,212,.14) inset}.badge-choice small{color:var(--muted)}
.fath-badge{--badge-bg:#334155;--badge-fg:#fff;display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 9px;border-radius:999px;background:var(--badge-bg);color:var(--badge-fg);border:1px solid color-mix(in srgb,var(--badge-fg) 25%,transparent);box-shadow:0 5px 14px color-mix(in srgb,var(--badge-bg) 30%,transparent);line-height:1.1;vertical-align:middle}.fath-badge i{font-style:normal;font-size:1.05em}.fath-badge b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fath-badge.compact{padding:3px 6px;gap:4px}.fath-badge.compact b{font-size:10px}
.profile-badges,.leader-badges,.player-detail-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.duel-badges{display:flex;gap:3px;margin-top:2px}.duel-badges .fath-badge{padding:2px 4px}.duel-badges .fath-badge b{display:none}.duel-badges .fath-badge i{font-size:9px}
.leader-skins-toggle{border:0;background:transparent;color:var(--accent,#5eead4);font:inherit;font-size:11px;cursor:pointer;padding:4px 6px}.leader-skin-collection{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;background:rgba(2,6,23,.35);border-radius:10px}.leader-skin-collection.hidden{display:none}.leader-skin-collection .skin-canvas-preview{width:42px;height:42px}.podium-player .leader-skin-collection{justify-content:center;width:100%;margin-top:5px}
.season-modal-head{margin-bottom:14px}.season-modal .season-shop-card{margin:0}
/* Admin reward editors */
.badge-reward-fields{display:grid;grid-template-columns:minmax(150px,1.7fr) 74px 78px 78px;gap:8px;align-items:end;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(148,163,184,.16)}.season-reward-core{display:grid;grid-template-columns:100px minmax(150px,1fr);gap:8px}.referral-badge-editor{display:grid;grid-template-columns:minmax(140px,1fr) 68px 88px 88px;gap:7px}.skin-reward-source-row{padding:10px;border:1px solid rgba(94,234,212,.16);border-radius:12px;background:rgba(15,23,42,.35)}
.player-detail-head{gap:14px}.player-detail-identity-card{display:flex;align-items:center;gap:12px;min-width:0}.player-detail-avatar{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-weight:900;font-size:20px;background:linear-gradient(145deg,rgba(94,234,212,.22),rgba(124,58,237,.25));border:1px solid rgba(148,163,184,.2)}.player-detail-identity-card>div{min-width:0}.player-detail-identity-card b{font-size:18px}.player-detail-identity-card small{display:block;margin-top:3px;color:var(--muted);overflow-wrap:anywhere}.player-detail-panel .admin-editor-card{background:rgba(8,17,31,.62)}
@media(max-width:760px){.hub-nav-btn{padding:7px;width:42px;justify-content:center}.hub-nav-btn>b{display:none}.badge-reward-fields{grid-template-columns:1fr 1fr}.season-reward-core{grid-template-columns:1fr}.referral-badge-editor{grid-template-columns:1fr 1fr}.leader-skin-collection{padding-inline:6px}}
@media(max-width:520px){.badge-reward-fields,.referral-badge-editor{grid-template-columns:1fr}.owned-badges-grid{grid-template-columns:1fr}.player-detail-identity-card{align-items:flex-start}.player-detail-avatar{width:42px;height:42px}}


/* 1.20.1 — Skin Studio fidelity + reward editor polish */
.skin-studio-shell{
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px;align-items:start;margin-top:14px;
}
.skin-studio-editor{display:grid;gap:12px;min-width:0}.skin-editor-title{margin:0;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(148,163,184,.16);border-radius:14px;background:rgba(15,23,42,.42)}
.skin-editor-title b,.skin-editor-title small{display:block}.skin-editor-title b{font-size:14px}.skin-editor-title small{margin-top:3px;color:var(--muted);font-size:10.5px;line-height:1.6}
.skin-studio-step{margin:0;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(2,6,23,.24);overflow:hidden}.skin-studio-step>header,.skin-studio-step>summary{padding:12px 14px;display:flex;gap:10px;align-items:center;list-style:none;cursor:default}.skin-studio-step>summary{cursor:pointer}.skin-studio-step>summary::-webkit-details-marker{display:none}.skin-studio-step>header>span,.skin-studio-step>summary>span{width:28px;height:28px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;color:#06111a;background:var(--accent);font-weight:950}.skin-studio-step>header b,.skin-studio-step>header small,.skin-studio-step>summary b,.skin-studio-step>summary small{display:block}.skin-studio-step>header b,.skin-studio-step>summary b{font-size:12.5px}.skin-studio-step>header small,.skin-studio-step>summary small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.55}.skin-studio-step-body{padding:0 14px 14px}.skin-studio-step[open]>summary{border-bottom:1px solid rgba(148,163,184,.1);margin-bottom:12px}.skin-studio-step summary:after{content:'⌄';margin-inline-start:auto;color:var(--muted);font-size:18px;transition:transform .18s ease}.skin-studio-step[open] summary:after{transform:rotate(180deg)}
.skin-preset-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 12px}.skin-preset-grid button{min-height:44px;padding:7px 8px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(148,163,184,.18);border-radius:11px;background:rgba(15,23,42,.5);color:var(--text);font:inherit;font-size:10px;font-weight:850}.skin-preset-grid button i{width:19px;height:19px;flex:0 0 19px;border-radius:50%;background:linear-gradient(135deg,var(--a),var(--b));box-shadow:0 0 0 2px rgba(255,255,255,.07)}.skin-preset-grid button:hover{border-color:rgba(94,234,212,.42);background:rgba(15,23,42,.78)}
.skin-studio-preview{position:sticky;top:132px;padding:14px;border:1px solid rgba(94,234,212,.18);border-radius:17px;background:rgba(5,14,23,.96);box-shadow:0 18px 50px rgba(0,0,0,.22);text-align:center}.skin-preview-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;text-align:right}.skin-preview-head b,.skin-preview-head small{display:block}.skin-preview-head b{font-size:15px}.skin-preview-head small{margin-top:2px;color:var(--muted);font-size:10px}.skin-renderer-trust{padding:4px 7px;border-radius:999px;color:#99f6e4;background:rgba(20,184,166,.1);border:1px solid rgba(94,234,212,.15);font-size:8.5px;font-weight:900;white-space:nowrap}.skin-studio-preview>.large-preview{width:min(100%,230px);height:230px;margin:10px auto 8px;display:block}.skin-surface-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.skin-surface-previews>div{min-width:0;padding:8px 5px;border:1px solid rgba(148,163,184,.12);border-radius:11px;background:rgba(15,23,42,.36)}.skin-surface-previews b,.skin-surface-previews small{display:block}.skin-surface-previews b{margin-bottom:5px;font-size:9px}.skin-surface-previews small{margin-top:4px;color:var(--muted);font-size:7.5px;line-height:1.35}.skin-surface-previews canvas{width:76px;height:76px;max-width:100%;margin:auto;display:block}.skin-surface-previews .rank-surface-preview{width:54px;height:54px}.preview-note{margin-top:9px;padding:8px 9px;border-radius:10px;color:#a9bbca;background:rgba(94,234,212,.035);font-size:9px;line-height:1.65;text-align:right}
.skin-canvas-preview{background:transparent!important}.skin-studio-preview .skin-canvas-preview{border:0;box-shadow:none}

/* Referral + season reward editors */
.referral-reward-rows,.season-reward-editor-rows{display:grid;gap:12px;margin:12px 0}.referral-reward-row,.season-reward-editor-row{display:block;padding:0;border:1px solid rgba(148,163,184,.17);border-radius:15px;background:rgba(2,6,23,.27);overflow:hidden}.reward-row-head{padding:11px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid rgba(148,163,184,.11);background:rgba(15,23,42,.36)}.reward-row-head>div{min-width:0}.reward-row-head b,.reward-row-head small{display:block}.reward-row-head b{font-size:11.5px}.reward-row-head small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.5}.referral-step-number{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:11px;color:#06201b;background:linear-gradient(135deg,#99f6e4,#5eead4);font-size:13px;font-weight:950}.referral-reward-main{padding:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.referral-reward-main label,.season-reward-core label,.badge-reward-fields label,.referral-badge-editor label{min-width:0;margin:0}.referral-reward-main label>span{display:block}.referral-reward-main input,.referral-reward-main select,.season-reward-core input,.season-reward-core select,.badge-reward-fields input,.badge-reward-fields select,.referral-badge-editor input,.referral-badge-editor select{min-height:40px}
.reward-badge-block{margin:0 12px 12px;padding:9px 10px;border:1px dashed rgba(148,163,184,.18);border-radius:12px;background:rgba(15,23,42,.22)}.reward-badge-block.enabled{border-style:solid;border-color:rgba(250,204,21,.23);background:rgba(250,204,21,.025)}.reward-badge-toggle{margin:0!important;min-height:34px!important}.badge-reward-fields,.referral-badge-editor{margin-top:8px;display:grid;grid-template-columns:minmax(140px,1.35fr) 90px 100px 100px minmax(150px,auto);gap:8px;align-items:end}.reward-badge-live-preview{min-height:40px;padding:6px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.12);border-radius:9px;background:rgba(2,6,23,.3)}
.season-level-field{display:flex;align-items:center;gap:6px;margin:0!important}.season-level-field span{font-size:9px;color:var(--muted)}.season-level-field input{width:64px;min-height:38px}.season-track-grid{padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reward-track-card{min-width:0;border:1px solid rgba(148,163,184,.13);border-radius:13px;background:rgba(15,23,42,.28);overflow:hidden}.reward-track-card>header{padding:9px 10px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(148,163,184,.09)}.reward-track-card>header span{font-size:11px;font-weight:950}.reward-track-card>header small{color:var(--muted);font-size:8.5px}.reward-track-card.free-track>header span{color:#a7f3d0}.reward-track-card.premium-track{border-color:rgba(192,132,252,.19);background:linear-gradient(180deg,rgba(124,58,237,.045),rgba(15,23,42,.28))}.reward-track-card.premium-track>header span{color:#d8b4fe}.season-reward-core{padding:10px;display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}.reward-track-card .reward-badge-block{margin:0 10px 10px}.reward-track-card .badge-reward-fields{grid-template-columns:minmax(130px,1.2fr) 80px 88px 88px minmax(125px,auto)}

/* Compact season reward display: a badge is one reward chip, never a full profile badge row. */
.season-reward-items{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.season-reward-chip,.season-badge-chip{min-height:24px;padding:3px 7px;display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(148,163,184,.13);border-radius:999px;background:rgba(15,23,42,.58);color:#dbe7f2;font-size:9px;line-height:1.15;white-space:nowrap}.season-badge-chip{background:var(--badge-bg,#334155);color:var(--badge-fg,#fff);border-color:color-mix(in srgb,var(--badge-fg,#fff) 20%,transparent);box-shadow:none}.season-badge-chip i{font-style:normal;font-size:10px}.season-badge-chip b{font-size:9px;max-width:110px;overflow:hidden;text-overflow:ellipsis}.season-reward-empty{color:var(--muted);font-size:9px}.season-user-reward>span{align-content:start}.season-user-reward>span>small{margin-bottom:3px}
.reward-preview-items{display:flex;flex-wrap:wrap;gap:4px}.reward-preview-chip,.reward-preview-empty{padding:3px 6px;border-radius:999px;background:rgba(15,23,42,.55);font-size:8.5px}.reward-preview-empty{color:var(--muted)}

/* Featured label floats over the card instead of changing card height/alignment. */
.skin-card{position:relative}.skin-card-badges{position:absolute!important;z-index:3;top:8px;inset-inline-start:8px;min-height:0!important;margin:0!important;display:flex!important;pointer-events:none}.skin-card-badges span{max-width:none!important;padding:3px 7px!important;border:1px solid rgba(250,204,21,.22);color:#fde68a!important;background:rgba(15,23,42,.88)!important;box-shadow:0 5px 14px rgba(0,0,0,.2);font-size:8px!important}.featured-skin .skin-card-badges::before{display:none!important}

@media (max-width:1100px){.skin-studio-shell{grid-template-columns:minmax(0,1fr) 280px}.skin-surface-previews{grid-template-columns:1fr 1fr}.skin-surface-previews>div:last-child{grid-column:1/-1}.referral-reward-main{grid-template-columns:repeat(2,minmax(0,1fr))}.badge-reward-fields,.referral-badge-editor,.reward-track-card .badge-reward-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.reward-badge-live-preview{grid-column:1/-1}}
@media (max-width:820px){.skin-studio-shell{grid-template-columns:1fr}.skin-studio-preview{position:static;order:-1}.skin-studio-preview>.large-preview{height:190px}.season-track-grid{grid-template-columns:1fr}.reward-row-head{grid-template-columns:auto minmax(0,1fr)}.reward-row-head>.danger-action{grid-column:2;justify-self:end}.skin-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.referral-reward-main,.season-reward-core,.badge-reward-fields,.referral-badge-editor,.reward-track-card .badge-reward-fields{grid-template-columns:1fr}.skin-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skin-surface-previews{grid-template-columns:repeat(3,minmax(0,1fr))}.skin-surface-previews>div:last-child{grid-column:auto}.reward-row-head{grid-template-columns:1fr}.reward-row-head>.danger-action{grid-column:auto;width:100%}.referral-step-number{width:32px;height:32px}.season-level-field{justify-content:flex-start}}

/* 1.20.1 — Player admin profile + low-interruption live notices */
.player-detail-panel {
  padding: 16px;
  border-color: rgba(148,163,184,.16);
  background: linear-gradient(180deg, rgba(10,22,38,.82), rgba(6,14,25,.72));
}
.player-detail-head { align-items:center; margin-bottom:14px; }
.player-detail-close { flex:0 0 auto; min-width:72px; }
.player-detail-kpis { margin-bottom:12px; }
.player-detail-kpis .admin-decision-card { min-height:82px; }
.player-profile-overview { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr); gap:10px; }
.player-profile-overview > .admin-editor-card { min-width:0; margin:0; }
.player-activity-columns { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.player-activity-columns .player-mini-list { margin-top:0; min-width:0; }
.player-detail-meta > div:last-child { border-bottom:0; }

.player-ops-shell {
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(94,234,212,.16);
  border-radius:16px;
  background:rgba(4,12,22,.56);
}
.player-ops-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.player-ops-head h3 { margin:2px 0 0; font-size:16px; }
.player-ops-head p { margin:5px 0 0; max-width:680px; color:var(--muted); font-size:10.5px; line-height:1.7; }
.player-ops-kicker { color:var(--accent); font-size:9.5px; font-weight:900; letter-spacing:.02em; }
.player-ops-audit { flex:0 0 auto; padding:5px 8px; border:1px solid rgba(148,163,184,.14); border-radius:999px; color:#a8bacb; background:rgba(148,163,184,.05); font-size:9px; white-space:nowrap; }
.player-ops-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.player-op-card {
  min-width:0;
  padding:11px;
  border:1px solid rgba(148,163,184,.13);
  border-radius:13px;
  background:rgba(255,255,255,.018);
}
.player-op-card > header { display:flex; align-items:center; gap:9px; margin-bottom:9px; }
.player-op-card > header > div { min-width:0; }
.player-op-card > header b, .player-op-card > header small { display:block; }
.player-op-card > header b { font-size:12px; }
.player-op-card > header small { margin-top:2px; color:var(--muted); font-size:9.5px; line-height:1.5; }
.player-op-icon { width:31px; height:31px; flex:0 0 31px; display:grid; place-items:center; border:1px solid rgba(94,234,212,.2); border-radius:9px; color:var(--accent); background:rgba(94,234,212,.055); font-size:14px; font-weight:900; }
.player-op-icon.danger { border-color:rgba(248,113,113,.2); color:#fca5a5; background:rgba(248,113,113,.055); }
.player-op-moderation { grid-column:1 / -1; border-color:rgba(248,113,113,.13); }
.player-op-form { display:grid !important; grid-template-columns:minmax(100px,.7fr) minmax(180px,1.3fr) auto; gap:8px; align-items:end; }
.player-op-form > label:not(.check-label) { min-width:0; display:grid; gap:5px; }
.player-op-form > label:not(.check-label) > span { color:#9fb0c1; font-size:9.5px; font-weight:800; }
.player-op-form input, .player-op-form select, .player-op-form textarea { width:100%; }
.player-op-form textarea { resize:vertical; min-height:76px; }
.player-op-wide { min-width:0; }
.player-op-check { min-height:40px !important; align-self:end; }
.player-op-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.player-op-actions > button { flex:1 1 110px; }
.player-op-skins .player-op-form { grid-template-columns:minmax(150px,.85fr) minmax(180px,1.15fr); }
.player-op-skins .player-op-check, .player-op-skins .player-op-actions, .player-op-skins .skin-access-inventory { grid-column:1 / -1; }
.player-op-skins .skin-access-inventory { display:block; margin-top:8px; padding:8px 9px; border-radius:9px; color:#9fb0c1; background:rgba(148,163,184,.035); font-size:9.5px; line-height:1.65; }
.player-op-moderation .player-op-form { grid-template-columns:minmax(0,1fr) auto; }
.player-op-moderation .player-op-actions { align-self:end; max-width:410px; }
.player-op-moderation #playerModerationStatus.status-badge { display:inline-flex; width:max-content; margin-top:3px; }
.player-detail-panel .coin-adjustment, .player-detail-panel .skin-access-manager { margin:0; }

.live-notice-banner {
  top:calc(12px + env(safe-area-inset-top));
  left:12px;
  right:auto;
  width:min(390px,calc(100% - 24px));
  transform:none;
  min-height:62px;
  padding:10px 40px 12px 11px;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  border-radius:13px;
  box-shadow:0 14px 36px rgba(0,0,0,.36);
  overflow:hidden;
}
.live-notice-banner.notice-enter { animation:noticeInCompact .18s ease-out; }
.live-notice-copy { min-width:0; }
.live-notice-banner b { font-size:11.5px; }
.live-notice-banner p { margin-top:2px; font-size:10.5px; line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.live-notice-action { min-height:32px; padding:6px 9px; font-size:9.5px; }
.live-notice-close { top:7px; right:7px; width:27px; height:27px; min-height:27px; padding:0; font-size:17px; line-height:1; }
.live-notice-life { position:absolute; left:0; bottom:0; width:100%; height:2px; transform-origin:left center; background:var(--accent); animation:noticeLife 5s linear forwards; opacity:.7; }
body.battle-focus .live-notice-banner { top:calc(62px + env(safe-area-inset-top)); width:min(330px,calc(100% - 20px)); opacity:.96; }
@keyframes noticeInCompact { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
@keyframes noticeLife { from { transform:scaleX(1); } to { transform:scaleX(0); } }

@media (prefers-reduced-motion: reduce) {
  .live-notice-banner.notice-enter, .live-notice-life { animation:none !important; }
}
@media (max-width:980px) {
  .player-profile-overview { grid-template-columns:1fr; }
  .player-ops-grid { grid-template-columns:1fr; }
  .player-op-moderation { grid-column:auto; }
  .player-op-moderation .player-op-form { grid-template-columns:1fr; }
  .player-op-moderation .player-op-actions { max-width:none; }
}
@media (max-width:620px) {
  .player-detail-panel { padding:11px; }
  .player-detail-head { align-items:flex-start; }
  .player-detail-close { min-width:60px; padding-inline:9px; }
  .player-activity-columns { grid-template-columns:1fr; }
  .player-ops-head { display:block; }
  .player-ops-audit { display:inline-flex; margin-top:8px; }
  .player-op-form, .player-op-skins .player-op-form { grid-template-columns:1fr !important; }
  .player-op-check, .player-op-actions, .player-op-skins .player-op-check, .player-op-skins .player-op-actions { grid-column:1 !important; }
  .player-op-actions > button { width:100%; flex-basis:100%; }
  .live-notice-banner { top:calc(8px + env(safe-area-inset-top)); left:8px; width:calc(100% - 16px); }
  body.battle-focus .live-notice-banner { top:calc(54px + env(safe-area-inset-top)); left:8px; width:calc(100% - 16px); }
}


/* 1.21.0 — final release audit: readable admin helpers + accessible notice close target */
.admin-page .admin-form label small,
.admin-page .skin-editor-title small,
.admin-page .skin-library-toolbar small,
.admin-page .admin-skin-copy small,
.admin-page .admin-skin-copy em,
.admin-page .skin-library-price small,
.admin-page .referral-reward-row label > span,
.admin-page .reward-track-card > header small {
  font-size: 10px;
  line-height: 1.55;
}
.admin-page .skin-surface-previews small { font-size: 9px; line-height: 1.45; }
.live-notice-close {
  width: 34px;
  height: 34px;
  min-height: 34px;
}
@media (max-width: 560px) {
  .live-notice-close { width: 36px; height: 36px; min-height: 36px; }
}


/* 1.21.0 — final release audit: user-facing readability */
.ranked-me-stats small,
.podium-player small,
.leader-rating small,
.leader-winrate small,
.leader-delta,
.home-rival-strip small { font-size: 9px; line-height: 1.45; }
.duel-score small, .duel-center small { font-size: 9px; }
.install-nudge small { font-size: 10px; line-height: 1.5; }
.install-nudge-close { width: 34px; height: 34px; min-height: 34px; }
@media (max-width: 430px) {
  .duel-score small, .duel-center small { font-size: 8px; }
}
@media (max-height: 430px) and (orientation: landscape) {
  .duel-center span { font-size: 8px; }
  body.battle-focus .game-toast { font-size: 9px; }
}

/* 1.22.0 — Skin Studio advanced authoring without simple-mode clutter */
.skin-editor-title-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.skin-studio-mode{display:inline-flex;padding:3px;border:1px solid rgba(148,163,184,.16);border-radius:11px;background:rgba(2,6,23,.36)}.skin-studio-mode button{min-height:30px;padding:5px 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:9.5px;font-weight:900;cursor:pointer}.skin-studio-mode button.active{color:#06201b;background:var(--accent);box-shadow:0 4px 12px rgba(94,234,212,.16)}
.skin-studio-shell[data-skin-studio-mode="simple"] .skin-studio-pro-only{display:none}.skin-studio-shell[data-skin-studio-mode="pro"] .skin-pro-entry{display:none}.skin-quick-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-3px 0 12px}.skin-quick-actions .compact-btn{min-height:34px;padding:6px 10px;font-size:9.5px}
.skin-pro-body{display:grid;gap:10px}.skin-pro-section{padding:11px;border:1px solid rgba(148,163,184,.12);border-radius:13px;background:rgba(15,23,42,.25)}.skin-pro-section>header{margin:0 0 10px;padding:0;display:block}.skin-pro-section>header b,.skin-pro-section>header small{display:block}.skin-pro-section>header b{font-size:11px}.skin-pro-section>header small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.55}.skin-pro-section .form-grid{margin:0}
.skin-design-quality{margin:2px 0 10px;padding:8px 10px;border:1px solid rgba(94,234,212,.16);border-radius:11px;background:rgba(20,184,166,.055);text-align:right}.skin-design-quality b,.skin-design-quality small{display:block}.skin-design-quality b{font-size:10px;color:#99f6e4}.skin-design-quality small{margin-top:2px;color:#b8c7d4;font-size:8.5px;line-height:1.55}.skin-design-quality[data-level="warn"]{border-color:rgba(251,191,36,.22);background:rgba(245,158,11,.055)}.skin-design-quality[data-level="warn"] b{color:#fde68a}.skin-design-quality[data-level="bad"]{border-color:rgba(251,113,133,.24);background:rgba(244,63,94,.055)}.skin-design-quality[data-level="bad"] b{color:#fecdd3}
.skin-preset-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.skin-preset-grid button{transition:border-color .16s ease,background .16s ease,transform .16s ease}.skin-preset-grid button:active{transform:translateY(1px)}
@media (max-width:820px){.skin-editor-title{align-items:flex-start;flex-direction:column}.skin-editor-title-actions{width:100%;justify-content:space-between}.skin-studio-mode{flex:1}.skin-studio-mode button{flex:1}.skin-pro-section .form-grid.four-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.skin-editor-title-actions{align-items:stretch;flex-direction:column}.skin-studio-mode{width:100%}.skin-quick-actions>*{flex:1}.skin-pro-section .form-grid.four-columns{grid-template-columns:1fr}}

/* 1.23.0 — multi-layer precision controls, history and design diagnostics */
.skin-secondary-layer{border-color:rgba(192,132,252,.2);background:rgba(124,58,237,.035)}
.skin-secondary-layer>header b{color:#e9d5ff}
.skin-design-quality>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.skin-design-quality>div b{min-width:0}.skin-design-quality>div span{flex:0 0 auto;padding:3px 7px;border:1px solid currentColor;border-radius:999px;color:#99f6e4;font-size:8px;font-weight:950;line-height:1.2}.skin-design-quality[data-level="warn"]>div span{color:#fde68a}.skin-design-quality[data-level="bad"]>div span{color:#fecdd3}
.skin-design-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:-3px 0 10px}.skin-design-metrics span{min-width:0;padding:5px 6px;border:1px solid rgba(148,163,184,.12);border-radius:8px;background:rgba(15,23,42,.32);color:#aebdca;font-size:7.8px;font-weight:800;line-height:1.35;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.skin-quick-actions button:disabled{opacity:.38;cursor:not-allowed;transform:none!important}.skin-pro-section input:disabled,.skin-pro-section select:disabled{opacity:.45;cursor:not-allowed}.skin-pro-section .form-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
.skin-preset-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.skin-preset-grid button{min-width:0}.skin-preset-grid button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:1180px){.skin-preset-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:820px){.skin-pro-section .form-grid.three-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.skin-design-metrics{grid-template-columns:1fr}.skin-design-metrics span{text-align:right}.skin-preset-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.skin-pro-section .form-grid.three-columns{grid-template-columns:1fr}.skin-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 1.24.0 — curated classic/luxury frames and advanced typography */
.skin-preset-intro{margin:0 0 9px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.skin-preset-intro b{font-size:11px}.skin-preset-intro small{color:var(--muted);font-size:9px;line-height:1.55}
.skin-preset-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.skin-preset-grid button{min-height:58px;padding:8px 9px;justify-content:flex-start;text-align:right}.skin-preset-grid button i{width:24px;height:24px;flex-basis:24px}.skin-preset-grid button span{min-width:0;display:block;overflow:visible;text-overflow:clip;white-space:normal}.skin-preset-grid button span b,.skin-preset-grid button span small{display:block}.skin-preset-grid button span b{font-size:10px;line-height:1.35}.skin-preset-grid button span small{margin-top:2px;color:var(--muted);font-size:8px;line-height:1.35;font-weight:650}
.skin-text-section{border-color:rgba(246,211,101,.2);background:linear-gradient(180deg,rgba(246,211,101,.025),rgba(15,23,42,.25))}.skin-text-section>header b{color:#f8e6a8}.skin-subtext-editor{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(148,163,184,.16)}.skin-subtext-editor>div:first-child{margin-bottom:8px}.skin-subtext-editor>div:first-child b,.skin-subtext-editor>div:first-child small{display:block}.skin-subtext-editor>div:first-child b{font-size:10px}.skin-subtext-editor>div:first-child small{margin-top:2px;color:var(--muted);font-size:8.5px;line-height:1.55}
@media (max-width:1180px){.skin-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.skin-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.skin-preset-grid{grid-template-columns:1fr}.skin-preset-grid button{min-height:54px}}


/* 1.25.0 — retention journey: one clear next goal, Commander Path and post-match continuation */
.home-next-goal{
  margin:0 0 12px;padding:13px 14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;
  border:1px solid rgba(94,234,212,.28);border-radius:16px;
  background:linear-gradient(135deg,rgba(20,184,166,.09),rgba(56,189,248,.045) 58%,rgba(15,23,42,.28));
}
.home-next-goal.hidden{display:none}.home-next-goal-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(94,234,212,.24);border-radius:13px;background:rgba(94,234,212,.08);color:#99f6e4;font-size:20px;font-weight:950}
.home-next-goal-copy{min-width:0}.home-next-goal-copy small,.home-next-goal-copy b,.home-next-goal-copy em{display:block}.home-next-goal-copy small{color:var(--accent);font-size:9px;font-weight:900}.home-next-goal-copy b{margin:2px 0;font-size:13px}.home-next-goal-copy em{margin-bottom:8px;color:var(--muted);font-size:9.5px;line-height:1.55;font-style:normal}.home-next-goal .rank-progress-track{height:5px}.home-next-goal .mini-primary{min-height:39px;padding:7px 12px;white-space:nowrap}

.commander-path-card{margin:0 0 14px;padding:12px 13px;border:1px solid rgba(250,204,21,.18);border-radius:15px;background:linear-gradient(145deg,rgba(250,204,21,.045),rgba(20,184,166,.025));overflow:hidden}
.commander-path-card.hidden{display:none}.commander-path-card>header{margin:0 0 10px;padding:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.commander-path-card>header small,.commander-path-card>header b{display:block}.commander-path-card>header small{color:#fde68a;font-size:8.5px;font-weight:850}.commander-path-card>header b{margin-top:1px;font-size:12px}.commander-path-card>header strong{color:#f8e6a8;font-size:9px;white-space:nowrap}
.commander-path-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.commander-path-days span{height:30px;display:grid;place-items:center;border:1px solid rgba(148,163,184,.13);border-radius:9px;background:rgba(15,23,42,.36);color:var(--muted);font-size:9px;font-weight:900}.commander-path-days span.done{border-color:rgba(94,234,212,.26);background:rgba(94,234,212,.09);color:#99f6e4}.commander-path-days span.current{border-color:rgba(250,204,21,.3);background:rgba(250,204,21,.075);color:#fde68a;box-shadow:inset 0 0 0 1px rgba(250,204,21,.05)}
.commander-path-footer{margin-top:9px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.commander-path-footer span,.commander-path-footer small{display:block;line-height:1.5}.commander-path-footer span{color:#f8e6a8;font-size:9px;font-weight:850}.commander-path-footer small{max-width:52%;color:var(--muted);font-size:8px;text-align:left}
.daily-missions.onboarding-muted{opacity:.72}.daily-missions.onboarding-muted .daily-mission{background:rgba(255,255,255,.016)}

.result-next-goal{width:min(620px,100%);margin-top:10px;padding:11px 13px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;border:1px solid rgba(94,234,212,.23);border-radius:14px;background:linear-gradient(135deg,rgba(20,184,166,.055),rgba(56,189,248,.025));text-align:right}
.result-next-goal.hidden{display:none}.result-next-goal>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:rgba(94,234,212,.08);color:#99f6e4;font-size:18px}.result-next-goal small,.result-next-goal b,.result-next-goal em{display:block}.result-next-goal small{color:var(--accent);font-size:8px;font-weight:900}.result-next-goal b{margin:1px 0;font-size:11px}.result-next-goal em{margin:2px 0 7px;color:var(--muted);font-size:9px;line-height:1.5;font-style:normal}.result-next-goal .rank-progress-track{height:5px}

@media (max-width:700px){
  .home-next-goal{grid-template-columns:auto minmax(0,1fr)}.home-next-goal .mini-primary{grid-column:1/-1;width:100%}
  .commander-path-card>header,.commander-path-footer{align-items:flex-start;flex-direction:column}.commander-path-footer small{max-width:none;text-align:right}
}
@media (max-width:430px){
  .home-next-goal{padding:11px;gap:9px}.home-next-goal-icon{width:38px;height:38px;font-size:18px}.commander-path-days{gap:4px}.commander-path-days span{height:28px;border-radius:8px;font-size:8px}
}

/* 1.26.0 — اعلان آنی صفحه اصلی */
.admin-page .admin-notice-form .check-label { flex-wrap: wrap; }
.admin-page .admin-notice-form .check-label > small { flex: 1 1 100%; margin-right: 27px; color: var(--muted); font-size: 9px; line-height: 1.65; }

/* Final UI polish 3 — clearer, calmer player profile */
.profile-modal #profileForm { display: grid; gap: 12px; }
.profile-modal #profileForm.hidden { display: none; }
.profile-header {
  position: relative;
  margin: -2px 0 0;
  padding: 17px 48px 17px 17px;
  border: 1px solid rgba(94, 234, 212, .20);
  border-radius: 18px;
  background:
    radial-gradient(circle at 12% 15%, rgba(94, 234, 212, .10), transparent 32%),
    linear-gradient(135deg, rgba(16, 34, 48, .96), rgba(10, 23, 36, .90));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
  overflow: hidden;
}
.profile-header::after {
  content: "";
  position: absolute;
  inset: auto 17px 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(94,234,212,.32), transparent);
  pointer-events: none;
}
.profile-identity { min-width: 0; }
.profile-header .eyebrow { color: #8ee9dc; }
.profile-header h2 { margin: 3px 0 2px; font-size: 18px; letter-spacing: -.01em; }
.profile-header p {
  width: fit-content;
  max-width: 100%;
  margin-top: 5px;
  padding: 3px 7px;
  border: 1px solid rgba(148,163,184,.12);
  border-radius: 999px;
  background: rgba(2,6,23,.24);
  font-size: 10px;
  line-height: 1.45;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.profile-avatar {
  width: 64px;
  height: 64px;
  border-color: rgba(94,234,212,.50);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(94,234,212,.12), rgba(15,23,42,.88));
  box-shadow: 0 10px 24px rgba(0,0,0,.16), inset 0 0 0 1px rgba(255,255,255,.025);
  font-size: 26px;
}
.profile-header .wallet {
  min-width: 112px;
  min-height: 44px;
  padding: 8px 12px;
  border-color: rgba(253,230,138,.20);
  border-radius: 13px;
  color: #f8e6a8;
  background: rgba(250,204,21,.055);
  justify-content: center;
  white-space: nowrap;
}
.profile-header .wallet b { color: #fff5c2; font-size: 15px; }
.profile-badges { margin-top: 6px; }
.profile-badges:empty { display: none; }
.profile-stats { margin: 0; gap: 8px; }
.profile-stats span {
  position: relative;
  min-width: 0;
  padding: 12px 7px 10px;
  border-color: rgba(148,163,184,.13);
  background: linear-gradient(180deg, rgba(20,34,48,.72), rgba(12,25,39,.72));
  overflow: hidden;
}
.profile-stats span::before {
  content: "";
  position: absolute;
  top: 0;
  right: 22%;
  left: 22%;
  height: 2px;
  border-radius: 0 0 3px 3px;
  background: rgba(94,234,212,.34);
}
.profile-stats span:first-child::before { background: rgba(253,230,138,.45); }
.profile-stats b { color: #eef7fb; font-size: 17px; line-height: 1.25; }
.profile-stats small { margin-top: 3px; font-size: 9.5px; line-height: 1.35; }
.profile-level {
  padding: 12px 13px;
  border-color: rgba(94,234,212,.16);
  background: rgba(10,24,37,.58);
}
.profile-level > div b { font-size: 11px; }
.profile-level .progress-track { height: 6px; margin-top: 9px; background: rgba(148,163,184,.10); }
.profile-level .progress-track i { box-shadow: 0 0 14px rgba(94,234,212,.16); }
.profile-layout { margin-top: 0; gap: 12px; }
.profile-section {
  min-width: 0;
  padding: 17px;
  border-color: rgba(148,163,184,.13);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(16,30,44,.70), rgba(10,23,36,.64));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.018);
}
.profile-section h3 {
  margin: 0 0 13px;
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
}
.profile-section h3::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(94,234,212,.07);
}
.profile-section label { margin-top: 10px; color: #c6d4df; font-size: 10px; font-weight: 800; }
.profile-section label:first-of-type { margin-top: 0; }
.profile-section input,
.profile-section .public-id-input { background-color: rgba(2,6,23,.24); }
.profile-section .field-help { display: block; margin-top: 6px; line-height: 1.65; }
.profile-section > .primary-btn { margin-top: 14px; }
.profile-history {
  max-height: 310px;
  padding-left: 3px;
  display: grid;
  gap: 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(94,234,212,.24) transparent;
}
.history-row {
  min-height: 57px;
  padding: 8px 9px;
  border: 1px solid rgba(148,163,184,.10);
  border-radius: 11px;
  background: rgba(2,6,23,.18);
  transition: border-color .16s ease, background .16s ease;
}
.history-row:last-child { border-bottom: 1px solid rgba(148,163,184,.10); }
.history-row:hover { border-color: rgba(94,234,212,.16); background: rgba(15,30,44,.42); }
.history-result {
  width: fit-content;
  max-width: 100%;
  padding: 4px 7px;
  border: 1px solid rgba(148,163,184,.12);
  border-radius: 999px;
  background: rgba(148,163,184,.045);
  font-size: 10px;
  line-height: 1.25;
}
.history-row.won .history-result {
  border-color: rgba(52,211,153,.20);
  background: rgba(52,211,153,.06);
}
.history-row b { font-size: 11px; }
.history-row small, .history-row time { line-height: 1.45; }
.profile-modal .referral-card { margin-top: 0; }
.profile-modal #profileForm > .danger-ghost {
  min-height: 40px;
  margin-top: 0;
  border-color: rgba(251,113,133,.18);
  background: rgba(251,113,133,.035);
}
.profile-modal #profileForm > .danger-ghost:hover { border-color: rgba(251,113,133,.30); background: rgba(251,113,133,.07); }

@media (max-width: 760px) {
  .profile-header { padding: 14px 43px 14px 14px; gap: 11px; }
  .profile-avatar { width: 55px; height: 55px; border-radius: 17px; font-size: 23px; }
  .profile-header h2 { font-size: 16px; }
  .profile-header .wallet { min-height: 40px; min-width: 0; justify-self: stretch; }
  .profile-section { padding: 15px; }
}
@media (max-width: 520px) {
  .profile-modal #profileForm { gap: 10px; }
  .profile-header { padding: 13px 40px 13px 12px; align-items: start; }
  .profile-avatar { width: 49px; height: 49px; border-radius: 15px; font-size: 20px; }
  .profile-header p { max-width: 175px; }
  .profile-stats { gap: 6px; }
  .profile-stats span { min-height: 67px; padding: 11px 6px 9px; display: grid; align-content: center; }
  .profile-stats b { font-size: 16px; }
  .profile-section { padding: 14px; border-radius: 14px; }
  .history-row { min-height: 55px; padding: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .history-row { transition: none; }
}

/* Final UI polish 4 — stronger player identity, cleaner stats and battle history */
.profile-modal { width: min(1000px, 100%); }
.profile-modal #profileForm { gap: 14px; }
.profile-header {
  min-height: 112px;
  padding: 20px 52px 20px 20px;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 16px;
  border-color: rgba(94,234,212,.22);
  border-radius: 22px;
  background:
    radial-gradient(circle at 10% 18%, rgba(94,234,212,.14), transparent 31%),
    radial-gradient(circle at 86% 0%, rgba(125,211,252,.07), transparent 28%),
    linear-gradient(145deg, rgba(15,33,47,.98), rgba(8,21,34,.96));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 12px 34px rgba(0,0,0,.10);
}
.profile-header::before {
  content: "";
  position: absolute;
  top: 22px;
  bottom: 22px;
  right: 0;
  width: 3px;
  border-radius: 3px 0 0 3px;
  background: linear-gradient(180deg, transparent, rgba(94,234,212,.72), transparent);
  opacity: .7;
}
.profile-header::after { inset: auto 22px 0; }
.profile-avatar {
  width: 72px;
  height: 72px;
  border: 1px solid rgba(94,234,212,.52);
  border-radius: 23px;
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.08), transparent 28%),
    linear-gradient(145deg, rgba(94,234,212,.17), rgba(7,20,33,.94));
  box-shadow: 0 12px 28px rgba(0,0,0,.20), inset 0 0 0 4px rgba(94,234,212,.025);
  font-size: 29px;
}
.profile-header .eyebrow { margin-bottom: 2px; font-size: 9px; letter-spacing: .02em; }
.profile-header h2 { margin: 2px 0; font-size: 20px; line-height: 1.35; }
.profile-header p { margin-top: 7px; padding: 4px 8px; color: #9fb0bf; background: rgba(2,6,23,.30); }
.profile-header .wallet {
  min-width: 126px;
  min-height: 48px;
  padding: 9px 14px;
  border-color: rgba(253,230,138,.24);
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(250,204,21,.075), rgba(250,204,21,.035));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
.profile-header .wallet b { font-size: 17px; }
.profile-badges { margin-top: 7px; gap: 5px; }

.profile-stats {
  margin: 0;
  display: grid;
  grid-template-columns: 1.08fr 1.08fr repeat(3, 1fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.13);
  border-radius: 17px;
  background: linear-gradient(180deg, rgba(15,30,44,.72), rgba(9,22,35,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.018);
}
.profile-stats span,
.profile-stats span:first-child {
  position: relative;
  min-height: 76px;
  padding: 14px 10px 11px;
  grid-column: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
}
.profile-stats span + span { border-inline-start: 1px solid rgba(148,163,184,.10); }
.profile-stats span::before { display: none; }
.profile-stats span::after {
  position: absolute;
  top: 8px;
  left: 9px;
  min-width: 22px;
  height: 18px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(148,163,184,.11);
  border-radius: 7px;
  color: #7f94a6;
  background: rgba(2,6,23,.20);
  font-size: 7px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .03em;
}
.profile-stat.stat-level::after { content: "LV"; color: #f5dc8c; border-color: rgba(253,230,138,.16); }
.profile-stat.stat-xp::after { content: "XP"; color: #8ee9dc; border-color: rgba(94,234,212,.16); }
.profile-stat.stat-wins::after { content: "✓"; color: #86efac; border-color: rgba(134,239,172,.15); }
.profile-stat.stat-games::after { content: "⚔"; color: #bfdbfe; border-color: rgba(191,219,254,.14); }
.profile-stat.stat-rate::after { content: "%"; color: #c4b5fd; border-color: rgba(196,181,253,.14); }
.profile-stats b { margin-top: 5px; color: #f4f8fb; font-size: 20px; line-height: 1.15; }
.profile-stats small { margin-top: 5px; color: #8fa2b3; font-size: 9.5px; }

.profile-level {
  padding: 12px 14px 13px;
  border-color: rgba(94,234,212,.14);
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(8,23,36,.74), rgba(8,21,33,.56));
}
.profile-level > div b { color: #d9e7ef; font-size: 10px; }
.profile-level > div small { color: #90a6b7; }
.profile-level .progress-track { height: 7px; margin-top: 10px; border: 1px solid rgba(148,163,184,.06); }
.profile-level .progress-track i { box-shadow: 0 0 16px rgba(94,234,212,.22); }

.profile-layout { grid-template-columns: minmax(285px, .82fr) minmax(0, 1.18fr); gap: 12px; }
.profile-section {
  padding: 18px;
  border-color: rgba(148,163,184,.12);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(14,29,43,.78), rgba(8,21,34,.68));
}
.profile-section h3 { margin-bottom: 15px; color: #edf5fa; font-size: 13px; }
.profile-section h3::before {
  width: 8px;
  height: 8px;
  box-shadow: 0 0 0 5px rgba(94,234,212,.055), 0 0 12px rgba(94,234,212,.10);
}
.profile-section label { color: #b8c8d4; }
.profile-section input,
.profile-section .public-id-input {
  border-color: rgba(148,163,184,.13);
  background-color: rgba(2,6,23,.30);
}
.profile-section input:focus,
.profile-section .public-id-input:focus-within { border-color: rgba(94,234,212,.42); box-shadow: 0 0 0 3px rgba(94,234,212,.065); }
.profile-section > .primary-btn { min-height: 44px; border-radius: 12px; }

.profile-history { max-height: 328px; gap: 7px; padding: 1px 0 1px 3px; }
.history-row {
  position: relative;
  min-height: 62px;
  padding: 9px 11px 9px 13px;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  gap: 11px;
  border: 1px solid rgba(148,163,184,.10);
  border-radius: 13px;
  background: rgba(2,6,23,.22);
  overflow: hidden;
}
.history-row::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  right: 0;
  width: 3px;
  border-radius: 3px 0 0 3px;
  background: rgba(148,163,184,.30);
}
.history-row.won::before { background: rgba(52,211,153,.72); }
.history-row.lost::before { background: rgba(251,113,133,.58); }
.history-row.draw::before { background: rgba(250,204,21,.54); }
.history-result { padding: 5px 8px; font-size: 9.5px; }
.history-row.lost .history-result { color: #fda4af; border-color: rgba(251,113,133,.16); background: rgba(251,113,133,.045); }
.history-row.draw .history-result { color: #fde68a; border-color: rgba(250,204,21,.16); background: rgba(250,204,21,.045); }
.history-row b { color: #e8f1f6; font-size: 11.5px; }
.history-row small { margin-top: 3px; }
.history-row time { white-space: nowrap; }

.profile-modal .referral-card {
  border-color: rgba(94,234,212,.16);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(94,234,212,.045), rgba(10,23,36,.88) 58%);
}
.profile-modal #profileForm > .danger-ghost { border-radius: 12px; }

@media (max-width: 760px) {
  .profile-header { min-height: 0; padding: 16px 44px 16px 15px; grid-template-columns: 58px minmax(0, 1fr); gap: 12px; }
  .profile-avatar { width: 58px; height: 58px; border-radius: 18px; font-size: 24px; }
  .profile-header h2 { font-size: 17px; }
  .profile-header .wallet { grid-column: 1 / -1; min-height: 42px; width: 100%; }
  .profile-stats { grid-template-columns: repeat(5, minmax(88px, 1fr)); overflow-x: auto; scrollbar-width: none; }
  .profile-stats::-webkit-scrollbar { display: none; }
  .profile-stats span { min-height: 72px; }
  .profile-layout { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .profile-modal #profileForm { gap: 11px; }
  .profile-header { padding: 14px 40px 14px 12px; border-radius: 18px; }
  .profile-avatar { width: 52px; height: 52px; border-radius: 16px; font-size: 21px; }
  .profile-header h2 { font-size: 16px; }
  .profile-header p { max-width: 170px; }
  .profile-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; border-radius: 15px; }
  .profile-stats span,
  .profile-stats span:first-child { min-height: 68px; grid-column: auto; border-bottom: 1px solid rgba(148,163,184,.08); }
  .profile-stats span + span { border-inline-start: 1px solid rgba(148,163,184,.08); }
  .profile-stats span:nth-last-child(-n+2) { border-bottom: 0; }
  .profile-stats span:last-child { grid-column: 1 / -1; border-inline-start: 0; border-bottom: 0; }
  .profile-stats b { font-size: 18px; }
  .profile-section { padding: 15px; border-radius: 16px; }
  .history-row { min-height: 60px; padding: 9px 10px 9px 12px; grid-template-columns: 75px minmax(0, 1fr); gap: 8px; }
  .history-row time { grid-column: 1 / -1; padding-right: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .profile-section input,
  .profile-section .public-id-input { transition: none; }
}
