/* Self-hosted fonts (DSGVO/DDG: no request to Google's servers, no IP transfer) */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/inter-variable.woff2') format('woff2');
}
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/chakra-petch-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/chakra-petch-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Chakra Petch';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/chakra-petch-700.woff2') format('woff2');
}

:root {
  --bg-body: #060b16;
  --bg-alt: #0a1330;
  --bg-surface: #131f3d;
  --bg-surface-alt: #182750;
  --border: #24365c;
  --border-interactive: #46608f;
  --text-heading: #f5f8fc;
  --text-primary: #d7e2f2;
  --text-secondary: #aebbd6;
  --text-muted: #7e8cad;
  --link: #34e0ff;
  --link-hover: #7cecff;
  --accent-from: #ffa733;
  --accent-to: #ff8a00;
  --on-accent: #0a0f1c;
  --status-online: #3ddc84;
  --status-offline: #ff6b6b;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-pill: 999px;
  --font-family-mono: 'JetBrains Mono', 'Consolas', monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg-body);
  color: var(--text-primary);
  font-family: 'Inter', 'Segoe UI', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  position: relative;
}
h1, h2, h3, .logo, .btn, nav { font-family: 'Chakra Petch', 'Inter', sans-serif; }

body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(rgba(52,224,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(52,224,255,.035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(ellipse at top, black 0%, transparent 65%);
}

a { color: var(--link); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--link-hover); text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; border-radius: 4px; }
img { max-width: 100%; }

.skip-link { position: absolute; left: -999px; top: 0; background: var(--link); color: var(--on-accent); padding: 10px 16px; z-index: 200; font-weight: 700; border-radius: 0 0 8px 0; }
.skip-link:focus { left: 0; top: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; position: relative; z-index: 1; }
@media (max-width: 700px) { .wrap { padding: 0 16px; } }

/* ---------- HEADER / TOP NAV ---------- */
header.site-header { position: sticky; top: 0; z-index: 50; background: rgba(6,11,22,.85); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border); }
.header-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 68px; max-width: 1200px; margin: 0 auto; padding: 10px 24px; }
.brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.brand-mark { width: 34px; height: 34px; border-radius: 9px; flex-shrink: 0; object-fit: cover;
  box-shadow: 0 0 14px rgba(52,224,255,.4); }
.logo { font-size: 17px; font-weight: 700; letter-spacing: .3px; color: var(--text-heading); white-space: nowrap; }
.logo span { color: var(--link); }

.main-nav { flex: 1; min-width: 0; overflow-x: auto; overflow-y: hidden; display: flex; justify-content: center; padding: 6px 0 16px; scrollbar-width: none; -ms-overflow-style: none; }
.main-nav::-webkit-scrollbar { display: none; height: 0; }

/* Hint that the nav scrolls sideways once it no longer all fits — fades both
   edges based on the element's own box, so it works regardless of scroll
   position without any extra markup or JS. */
@media (max-width: 900px) {
  .main-nav {
    -webkit-mask-image: linear-gradient(to right, transparent 0, black 14px, black calc(100% - 14px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, black 14px, black calc(100% - 14px), transparent 100%);
  }
}
.main-nav ul { display: flex; justify-content: center; gap: 20px; list-style: none; margin: 0; padding: 0; white-space: nowrap; }
.main-nav a { color: var(--text-secondary); font-size: 13.5px; font-weight: 600; letter-spacing: .2px; position: relative; padding: 8px 2px; display: inline-block; }
.main-nav a:hover { color: var(--text-primary); text-decoration: none; }
.main-nav a.active { color: var(--link); }
.main-nav a.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 2px; background: var(--link); box-shadow: 0 0 10px var(--link), 0 0 20px var(--link); }

.header-actions { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.header-actions .icon-link { color: var(--text-secondary); font-size: 12.5px; font-weight: 600; }
.header-actions .icon-link:hover { color: var(--text-primary); text-decoration: none; }

.btn { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; letter-spacing: .2px; padding: 10px 18px; border-radius: 8px; border: none; cursor: pointer; transition: filter .15s, transform .15s, border-color .15s; }
.btn:hover { transform: translateY(-1px); text-decoration: none; }
.btn-primary, .btn-steam { background: linear-gradient(135deg, var(--accent-from), var(--accent-to)); color: var(--on-accent); box-shadow: 0 0 18px rgba(255,167,51,.35); }
.btn-primary:hover, .btn-steam:hover { box-shadow: 0 0 26px rgba(255,167,51,.5); color: var(--on-accent); }
.btn-outline, .btn-ghost { background: transparent; border: 1px solid var(--border-interactive); color: var(--text-primary); }
.btn-outline:hover, .btn-ghost:hover { border-color: var(--link); color: var(--text-primary); }
.btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }

@media (max-width: 900px) {
  .main-nav ul { gap: 14px; }
}
@media (max-width: 700px) {
  .header-row { height: 60px; padding: 0 16px; }
  .main-nav { order: 3; flex-basis: 100%; border-top: 1px solid var(--border); padding-top: 8px; margin-top: 8px; }
  .logo { font-size: 15px; }
}

/* ---------- MAIN CONTENT ---------- */
main#main { position: relative; z-index: 1; padding: 32px 0 60px; }
main#main > .wrap { display: block; }

/* ---------- simple page-header (used across list pages) ---------- */
.hero { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.hero h1, .hero h2 { font-size: 24px; font-weight: 700; color: var(--text-heading); margin: 0 0 4px; letter-spacing: -.01em; }
.hero p { margin: 0; color: var(--text-secondary); }
.hero-stats { text-align: right; }
.hero-stats .big { font-size: 22px; font-weight: 800; color: var(--accent-from); }
.hero-stats .small { font-size: 12px; color: var(--text-secondary); }

.section-title { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 14px; }
.section-title h2 { font-size: 22px; font-weight: 700; color: var(--text-heading); margin: 0; }
.section-title .meta { font-size: 11.5px; color: var(--text-secondary); font-weight: 600; }

.eyebrow, .eyebrow-line span { font-size: 12px; font-weight: 700; letter-spacing: 2.5px; color: var(--link); text-transform: uppercase; }
.eyebrow-line { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.eyebrow-line i { width: 22px; height: 2px; background: var(--link); box-shadow: 0 0 6px var(--link); display: block; }

/* ---------- Panels & tables (used everywhere) ---------- */
.panel {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: rgba(19,31,61,.6);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  margin-bottom: 22px;
  box-shadow: 0 14px 34px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.04);
}
.panel-head { padding: 14px 18px; border-bottom: 1px solid var(--border); }
.panel-head h2 { font-size: 16px; font-weight: 700; color: var(--text-heading); margin: 0; }
.panel-head p { font-size: 11.5px; color: var(--text-secondary); margin: 3px 0 0; }
.panel.danger { border-color: var(--status-offline); }
.panel.danger .panel-head { display: flex; align-items: center; gap: 8px; }
.panel.danger .panel-head::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--status-offline); box-shadow: 0 0 8px var(--status-offline); }

table.data { width: 100%; border-collapse: collapse; font-size: 13.5px; }
table.data th {
  background: var(--bg-surface-alt); color: var(--text-secondary); text-transform: uppercase;
  font-size: 10.5px; letter-spacing: .06em; padding: 13px 14px; border-bottom: 1px solid var(--border);
  font-weight: 700; text-align: left;
}
table.data td { padding: 13px 14px; border-bottom: 1px solid rgba(36,54,92,.6); vertical-align: middle; }
table.data tbody tr:nth-child(even) td { background: rgba(255,255,255,.025); }
table.data tbody tr:hover td { background: rgba(52,224,255,.08); }
table.data tbody tr:last-child td { border-bottom: none; }

.kd-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; padding: 4px 10px; border-radius: var(--radius-pill); font-size: 12px; font-weight: 700; border: 1px solid; line-height: 1.3; }
.kd-pill.kd-neutral { border-color: var(--border); color: var(--text-muted); background: rgba(255,255,255,.02); }

.leaderboard-table th, .leaderboard-table td { padding: 10px 11px; font-size: 12.5px; }
.leaderboard-table .kd-pill { min-width: 30px; padding: 3px 8px; font-size: 11.5px; }
.leaderboard-table .player-avatar { width: 28px; height: 28px; }
.leaderboard-table td.nowrap { white-space: nowrap; }

.player-avatar { border-radius: 8px; border: 1px solid var(--border); background: var(--bg-surface-alt); flex-shrink: 0; }
tr.rank-1 .player-avatar { border-color: var(--accent-from); }
.muted { color: var(--text-muted); }

.hlx-text { color: var(--text-secondary); font-size: 14px; line-height: 1.7; }
.hlx-text a { font-weight: 600; }

.hlx-nav-tab {
  display: inline-block; font-size: 12.5px; font-weight: 700; padding: 7px 14px;
  border-radius: var(--radius-pill); border: 1px solid var(--border); color: var(--text-secondary);
  background: rgba(19,31,61,.5);
}
.hlx-nav-tab:hover { color: var(--text-primary); text-decoration: none; border-color: var(--border-interactive); }
.hlx-nav-tab.active { color: var(--on-accent); background: linear-gradient(135deg, var(--link), #1fa8c2); border-color: transparent; }

.two-col { display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 900px) { .two-col { grid-template-columns: 1fr; } }

.account-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 18px; align-items: start; }
@media (max-width: 900px) { .account-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .about-setup-grid { grid-template-columns: 1fr !important; }
  .about-setup-grid table.data[style*="border-left"] { border-left: none !important; border-top: 1px solid var(--border); padding-top: 14px; margin-top: 4px; }
  .about-setup-grid table.data[style*="border-left"] td[style*="padding-left"] { padding-left: 0 !important; }
}

.ban-row { padding: 12px 18px; border-bottom: 1px solid rgba(36,54,92,.6); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ban-row:last-child { border-bottom: none; }
.ban-reason { font-size: 11.5px; color: var(--text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ban-badge { font-size: 10px; font-weight: 700; color: var(--status-offline); border: 1px solid var(--status-offline); border-radius: var(--radius-pill); padding: 2px 9px; flex-shrink: 0; }

.pagination { display: flex; gap: 6px; justify-content: center; padding: 18px 0; flex-wrap: wrap; }
.pagination a, .pagination span { padding: 10px 15px; border-radius: var(--radius-sm); font-size: 13px; color: var(--text-secondary); border: 1px solid var(--border); text-decoration: none; display: inline-flex; align-items: center; justify-content: center; min-width: 20px; }
.pagination a:hover { color: var(--text-primary); text-decoration: none; border-color: var(--link); }
.pagination .active { background: linear-gradient(135deg, var(--accent-from), var(--accent-to)); color: var(--on-accent); border-color: transparent; font-weight: 700; }

.stat-label { font-size: 10px; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .04em; }
.stat-value { font-size: 15px; font-weight: 700; color: var(--text-primary); }

.stat-card { border: 1px solid var(--border); border-radius: var(--radius-md); background: rgba(19,31,61,.6); backdrop-filter: blur(14px); padding: 16px; text-align: center; }
.stat-card .stat-num { font-size: 24px; font-weight: 800; font-family: 'Chakra Petch', sans-serif; color: var(--accent-from); }
.stat-card .stat-lbl { font-size: 10px; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .05em; margin-top: 3px; }

.chart-tabs { display: flex; gap: 4px; }
.chart-tab { font-size: 11px; font-weight: 600; padding: 5px 10px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: transparent; color: var(--text-secondary); cursor: pointer; }
.chart-tab.active { background: linear-gradient(135deg, var(--accent-from), var(--accent-to)); color: var(--on-accent); border-color: transparent; }
.leaflet-container { background: var(--bg-surface-alt) !important; }

.flag { width: 16px; height: 11px; vertical-align: middle; margin-right: 4px; border-radius: 2px; }
.empty-state { padding: 26px; text-align: center; color: var(--text-secondary); font-size: 13px; }

.status-dot { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600; flex-shrink: 0; }
.status-dot::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 6px currentColor; }
.status-online { color: var(--status-online); }
.status-offline { color: var(--status-offline); }
.bar { height: 6px; border-radius: 99px; background: var(--bg-body); margin-top: 6px; overflow: hidden; }
.bar > div { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--accent-from), var(--accent-to)); }
.score-ct { color: var(--link); }
.score-t { color: var(--accent-from); }

/* ---------- Server cards ---------- */
.server-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 16px; margin-bottom: 30px; }
.hero-row { display: grid; grid-template-columns: 1.7fr 1fr; gap: 16px; margin-bottom: 30px; align-items: start; }
.hero-row .server-grid-narrow { grid-template-columns: 1fr; margin-bottom: 0; }
.server-grid-narrow { display: grid; gap: 16px; }
.server-grid-compact { gap: 12px; }
@media (max-width: 900px) { .hero-row { grid-template-columns: 1fr; } }
.server-card {
  display: flex; border: 1px solid var(--border); border-radius: var(--radius-md);
  overflow: hidden; background: rgba(19,31,61,.55);
  backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%);
  box-shadow: 0 14px 34px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.05);
}
.server-card .thumb { position: relative; width: 42%; min-width: 160px; background: linear-gradient(135deg, rgba(52,224,255,.18), var(--bg-surface)); }
.server-card .thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.server-card .thumb .fade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.7), transparent 55%); }
.server-card .thumb .label { position: absolute; bottom: 8px; left: 10px; color: #fff; }
.server-card .thumb .label .eyebrow { font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.server-card .thumb .label .map { font-size: 14px; font-weight: 700; }
.server-card .info { flex: 1; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.server-card .row-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.server-card .row-top .name { font-weight: 700; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-heading); }
.player-count { display: flex; align-items: baseline; gap: 6px; }
.player-count .num { font-size: 24px; font-weight: 800; font-family: 'Chakra Petch', sans-serif; color: var(--accent-from); line-height: 1; }
.player-count .max { font-size: 13px; color: var(--text-secondary); }
.row-bottom { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.addr { font-family: var(--font-family-mono); font-size: 11px; color: var(--text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.score-row { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; }

.server-card.compact .thumb { width: 38%; min-width: 110px; }
.server-card.compact .thumb .map { font-size: 12px; }
.server-card.compact .info { padding: 12px 14px; gap: 8px; }
.server-card.compact .row-top .name { font-size: 13px; }
.server-card.compact .player-count .num { font-size: 20px; }

/* ---------- Podium ---------- */
.podium { display: flex; align-items: flex-end; justify-content: center; gap: 16px; padding: 24px 16px 0; margin-bottom: 30px; }
.podium-col { display: flex; flex-direction: column; align-items: center; width: 150px; min-width: 0; }
.podium-col .pname, .podium-col .pkills { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Fixed 150px columns don't fit any phone width — shrink to fluid columns
   that always share the available space instead of forcing a horizontal
   scroll on the whole homepage (confirmed: 3x150px+gaps = 482px minimum,
   wider than every common phone viewport). */
@media (max-width: 560px) {
  .podium { gap: 8px; padding-left: 0; padding-right: 0; }
  .podium-col { width: auto; flex: 1 1 0; max-width: 130px; }
  .medal { width: 28px; height: 28px; font-size: 12px; margin-bottom: 6px; }
  .podium-col .pname { font-size: 12.5px; }
  .podium-col .pkills { font-size: 10px; margin-bottom: 6px; }
}
.medal { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; color: var(--on-accent); margin-bottom: 8px; }
.podium-col .pname { font-weight: 700; font-size: 14px; margin: 4px 0 2px; color: var(--text-heading); }
.podium-col .pkills { font-size: 11px; color: var(--text-secondary); margin-bottom: 10px; }
.podium-block { width: 100%; border-radius: var(--radius-md) var(--radius-md) 0 0; border: 1px solid var(--border); border-bottom: none; }
.podium-empty { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 26px; text-align: center; color: var(--text-secondary); font-size: 13px; margin-bottom: 30px; }

/* ---------- New players row ---------- */
.new-players-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 30px; }
.new-player-card {
  display: flex; align-items: center; gap: 10px;
  border: 1px solid var(--border); border-radius: var(--radius-md);
  background: rgba(19,31,61,.6); backdrop-filter: blur(14px) saturate(140%);
  padding: 10px 16px; flex: 1 1 200px; min-width: 200px;
  text-decoration: none; color: inherit;
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
}
.new-player-card:hover { border-color: var(--link); text-decoration: none; }
.new-player-card .flag { margin: 0; width: 20px; height: 14px; flex-shrink: 0; }
.new-player-card .info { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.new-player-card .pname { font-weight: 700; font-size: 13px; color: var(--text-heading); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.new-player-card .joined { font-size: 11px; color: var(--text-secondary); }

/* ---------- Forms ---------- */
input[type=text], input[type=email], input[type=url], input[type=password], input[type=date], textarea, select {
  background: rgba(19,31,61,.6); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 9px 12px; color: var(--text-primary); font-size: 14px; font-family: inherit;
}
input::placeholder, textarea::placeholder { color: var(--text-muted); }
label { color: var(--text-secondary); }

/* ================= HOMEPAGE-ONLY SECTIONS ================= */
.home-hero { padding: 56px 0 70px; overflow: hidden; }
.home-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; }
.home-hero h1 { font-size: 44px; line-height: 1.05; font-weight: 700; letter-spacing: .5px; margin-bottom: 12px; color: var(--text-heading); }
.home-hero h1 .dot { color: var(--link); }
.home-hero .tagline { font-size: 18px; font-weight: 600; color: var(--text-primary); margin-bottom: 14px; }
.home-hero p.desc { max-width: 460px; color: var(--text-secondary); font-size: 15px; margin-bottom: 26px; }
.home-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

.hero-visual { position: relative; aspect-ratio: 16/11; border-radius: var(--radius-md); transform: rotate(-1.2deg); }
.hero-visual .glow-edge { position: absolute; inset: -1px; border-radius: 15px; background: linear-gradient(135deg, var(--link), transparent 45%, var(--accent-from) 100%); opacity: .55; filter: blur(1px); }
.hero-visual .inner { position: absolute; inset: 2px; border-radius: 13px; overflow: hidden; background: linear-gradient(160deg,#0d1830,#050a14); }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; }
.hud-corner { position: absolute; width: 24px; height: 24px; border: 2px solid rgba(52,224,255,.6); z-index: 3; }
.hud-corner.tl { top: 10px; left: 10px; border-right: none; border-bottom: none; }
.hud-corner.tr { top: 10px; right: 10px; border-left: none; border-bottom: none; }
.hud-corner.bl { bottom: 10px; left: 10px; border-right: none; border-top: none; }
.hud-corner.br { bottom: 10px; right: 10px; border-left: none; border-top: none; }
.ping-dot { position: absolute; top: 20px; left: 20px; width: 11px; height: 11px; border-radius: 50%; background: var(--status-online); box-shadow: 0 0 10px var(--status-online), 0 0 20px rgba(61,220,132,.6); z-index: 4; animation: pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
@media (prefers-reduced-motion: reduce) { .ping-dot { animation: none; } }
.map-label { position: absolute; bottom: 12px; left: 12px; z-index: 4; background: rgba(6,11,22,.75); backdrop-filter: blur(4px); border: 1px solid var(--border); border-radius: 8px; padding: 6px 12px; font-size: 12px; color: var(--text-secondary); }
.map-label strong { color: var(--text-heading); }
.home-player-count { position: absolute; right: -10px; bottom: -18px; z-index: 5; background: rgba(6,11,22,.9); border: 1px solid var(--border); border-radius: 10px; padding: 12px 18px; display: flex; align-items: center; gap: 12px; backdrop-filter: blur(6px); box-shadow: 0 10px 30px rgba(0,0,0,.4); }
.home-player-count svg { width: 22px; height: 22px; stroke: var(--accent-from); }
.home-player-count .pc-label { font-size: 9.5px; letter-spacing: 1.4px; color: var(--text-muted); font-weight: 600; }
.home-player-count .pc-value { font-size: 19px; font-weight: 700; color: var(--accent-from); }

.live-badge { position: absolute; top: 20px; left: 20px; z-index: 5; display: flex; align-items: center; gap: 6px; background: rgba(6,11,22,.85); border: 1px solid rgba(255,59,59,.5); border-radius: 20px; padding: 5px 12px 5px 9px; font-size: 11px; font-weight: 700; letter-spacing: 1.2px; color: #ff5c5c; backdrop-filter: blur(4px); }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: #ff3b3b; box-shadow: 0 0 8px #ff3b3b; animation: pulse 1.4s ease-in-out infinite; }
.live-scanlines { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: repeating-linear-gradient(rgba(255,255,255,.025) 0 1px, transparent 1px 3px); mix-blend-mode: overlay; opacity: .5; }
@media (prefers-reduced-motion: reduce) { .live-dot { animation: none; } }

.stat-strip { padding: 40px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--bg-alt); }
.stat-strip-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 26px; }
.strip-stat { text-align: center; padding: 12px 10px; }
.strip-stat .f-icon { width: 46px; height: 46px; margin: 0 auto 12px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(52,224,255,.08); border: 1px solid rgba(52,224,255,.25); }
.strip-stat .f-icon svg { width: 20px; height: 20px; stroke: var(--link); }
.strip-stat strong { display: block; font-size: 19px; font-family: 'Chakra Petch', sans-serif; margin-bottom: 4px; color: var(--text-heading); }
.strip-stat span { font-size: 12px; color: var(--text-muted); letter-spacing: .3px; }

.ranking-section { padding: 64px 0; }
.ranking-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.ranking-grid h2 { font-size: 30px; line-height: 1.2; font-weight: 700; margin-bottom: 16px; color: var(--text-heading); }
.ranking-grid p.lead { color: var(--text-secondary); font-size: 15px; margin-bottom: 22px; max-width: 440px; }
.ranking-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 26px; list-style: none; padding: 0; }
.ranking-list li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--text-primary); }
.ranking-list .rk { width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; background: rgba(52,224,255,.12); border: 1px solid var(--link); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: var(--link); }

.frame-shot { position: relative; border-radius: var(--radius-md); }
.frame-shot .glow-edge { position: absolute; inset: -1px; border-radius: 15px; background: linear-gradient(135deg, var(--accent-from), transparent 40%, var(--link) 100%); opacity: .5; filter: blur(1px); }
.frame-shot .inner { position: relative; border-radius: 13px; overflow: hidden; background: linear-gradient(160deg,#0d1830,#050a14); padding: 30px 18px; }

.banner-section { padding: 90px 0; background: radial-gradient(ellipse at 75% 40%, rgba(255,107,107,.10), transparent 55%), linear-gradient(200deg,#0a1428 0%,#050810 60%); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); overflow: hidden; position: relative; }
.banner-icon { position: absolute; right: 6%; top: 50%; transform: translateY(-50%); width: 260px; height: 260px; opacity: .08; stroke: var(--status-offline); z-index: 0; }
.banner-inner { position: relative; z-index: 1; max-width: 560px; }
.banner-section h2 { font-size: 30px; font-weight: 700; margin-bottom: 14px; color: var(--text-heading); }
.banner-section p.lead { color: var(--text-secondary); font-size: 15px; margin-bottom: 14px; max-width: 440px; }
.ban-ticker { display: flex; gap: 20px; flex-wrap: wrap; margin-bottom: 26px; }
.ban-ticker div { font-size: 13px; color: var(--text-muted); }
.ban-ticker strong { display: block; font-size: 20px; color: var(--status-offline); font-family: 'Chakra Petch', sans-serif; }
.banner-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

@media (max-width: 960px) {
  .home-hero-grid, .ranking-grid, .welcome-grid { grid-template-columns: 1fr; }
  .stat-strip-grid { grid-template-columns: 1fr 1fr; }
  .home-player-count { right: 12px; bottom: -16px; }
  .banner-icon { display: none; }
}
@media (max-width: 700px) {
  .home-hero h1 { font-size: 32px; }
  .hero-visual { margin-bottom: 34px; }
}

/* ---------- Footer ---------- */
footer.site-footer { background: var(--bg-alt); border-top: 1px solid var(--border); padding: 22px 0; position: relative; z-index: 1; }
.footer-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.legal-nav ul { display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.legal-nav a { color: var(--text-secondary); font-size: 12.5px; font-weight: 600; }
.legal-nav a:hover { color: var(--link); }
.footer-row p { font-size: 12px; color: var(--text-muted); margin: 0; }
.footer-right { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.footer-right .version-badge { font-size: 10.5px; color: var(--text-muted); opacity: .65; letter-spacing: .2px; }

@media (max-width: 700px) {
  .footer-row { flex-direction: column; align-items: flex-start; }
}

.legal-nav button { color: var(--text-secondary); font-size: 12.5px; font-weight: 600; background: none; border: none; cursor: pointer; font-family: inherit; padding: 0; }
.legal-nav button:hover { color: var(--link); }

/* ---------- Steam login privacy note ---------- */
.steam-wrap { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
.steam-note { font-size: 10px; color: var(--text-muted); max-width: 260px; text-align: right; line-height: 1.5; }
.steam-note a { color: var(--text-muted); text-decoration: underline; }
@media (max-width: 700px) { .steam-wrap { align-items: flex-start; } .steam-note { text-align: left; } }

/* ---------- Shared page header ---------- */
.page-header { padding: 44px 0 6px; }
.page-header .eyebrow { margin-bottom: 14px; }
.page-header h1 { font-size: 30px; margin-bottom: 8px; color: var(--text-heading); }
.page-header p { color: var(--text-secondary); font-size: 14.5px; max-width: 600px; margin: 0; }

/* ---------- Shared glow panel (podium-style frame, distinct from .panel used elsewhere) ---------- */
.glow-panel { position: relative; border-radius: var(--radius-md); margin-bottom: 22px; }
.glow-panel .glow-edge { position: absolute; inset: -1px; border-radius: 15px; filter: blur(.5px); }
.glow-panel.accent-cyan .glow-edge { background: linear-gradient(135deg, var(--link), transparent 45%, var(--accent-from) 100%); opacity: .55; }
.glow-panel.accent-orange .glow-edge { background: linear-gradient(135deg, var(--accent-from), transparent 45%, var(--link) 100%); opacity: .55; }
.glow-panel.accent-danger .glow-edge { background: linear-gradient(135deg, var(--status-offline), transparent 45%, var(--accent-from) 100%); opacity: .5; }
.glow-panel .inner { position: relative; border-radius: 13px; background: var(--bg-surface); padding: 22px; overflow: hidden; }
.glow-panel h2 { font-size: 14px; letter-spacing: .5px; text-transform: uppercase; margin-bottom: 4px; color: var(--text-heading); }
.glow-panel .sub { font-size: 12.5px; color: var(--text-muted); margin-bottom: 16px; }

/* ---------- Chart section (Spieler-Auslastung) — same typography as glow-panel, no box ---------- */
.chart-section { margin-bottom: 40px; }
.chart-section h2 { font-size: 14px; letter-spacing: .5px; text-transform: uppercase; margin-bottom: 4px; color: var(--text-heading); }
.chart-section .sub { font-size: 12.5px; color: var(--text-muted); margin-bottom: 16px; }

.frame-shot.tilt { transform: rotate(-1.2deg); }

/* Server Stats' live-status shot doesn't need to be as large as the homepage
   hero — scoped modifier so the homepage's own .frame-shot stays untouched. */
.frame-shot.compact { max-width: 380px; margin-inline: auto; }
.frame-shot.compact .inner { padding: 18px 14px; }

/* ---------- Server Stats: live status ---------- */
.live-status { padding: 44px 0 10px; }
.status-live { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.status-pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--status-online); box-shadow: 0 0 6px var(--status-online); animation: pulse 2s ease-in-out infinite; flex-shrink: 0; }
.status-live span { font-size: 11px; font-weight: 700; letter-spacing: 1.4px; color: var(--status-online); }
.status-live.offline .status-pulse { background: var(--status-offline); box-shadow: 0 0 6px var(--status-offline); animation: none; }
.status-live.offline span { color: var(--status-offline); }
.status-meta { display: flex; gap: 18px 22px; flex-wrap: wrap; margin-bottom: 24px; }
.status-meta div { font-size: 10.5px; color: var(--text-muted); white-space: nowrap; }
.status-meta strong { display: block; font-size: 16px; color: var(--text-primary); margin-top: 3px; font-family: 'Chakra Petch', sans-serif; white-space: nowrap; }
.status-meta .highlight strong { color: var(--accent-from); }
.connect-box { display: flex; align-items: center; gap: 10px; background: var(--bg-surface); border: 1px solid var(--border-interactive); border-radius: 8px; padding: 11px 15px; max-width: 340px; }
.connect-box code { color: var(--text-secondary); font-size: 12.5px; font-family: var(--font-family-mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.copy-btn { background: var(--link); color: var(--on-accent); border: none; border-radius: 6px; padding: 7px 13px; font-size: 12px; font-weight: 700; cursor: pointer; box-shadow: 0 0 10px rgba(52,224,255,.3); flex-shrink: 0; font-family: 'Chakra Petch', sans-serif; }
.copy-btn:hover { filter: brightness(1.08); }

/* ---------- Server Stats: chart ---------- */
.chart-section { padding: 30px 0; }
.chart-wrap-outer { width: 100%; overflow-x: auto; }
.chart-wrap-outer svg { width: 100%; min-width: 480px; height: auto; }
.chart-legend { display: flex; gap: 22px; margin-top: 12px; font-size: 12px; color: var(--text-muted); flex-wrap: wrap; }
.chart-legend strong { color: var(--accent-from); }

/* ---------- Server Stats: specs ---------- */
.specs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; }
dl.specs > div { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; }
dl.specs > div:last-child { border-bottom: none; }
dl.specs dt { color: var(--text-muted); margin: 0; }
dl.specs dd { color: var(--text-primary); font-weight: 600; margin: 0; }
@media (max-width: 700px) { .specs-grid { grid-template-columns: 1fr; } }

/* ---------- Map Pool: card grid ---------- */
.map-rotation-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 24px; }
.map-card { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; position: relative; text-decoration: none; display: block; transition: border-color .15s; }
.map-card:hover { border-color: var(--border-interactive); text-decoration: none; }
.map-card.active { border-color: var(--accent-from); box-shadow: 0 0 18px rgba(255,167,51,.2); }
.map-thumb { aspect-ratio: 16/10; background: var(--bg-alt); overflow: hidden; }
.map-thumb img { width: 100%; height: 100%; object-fit: cover; }
.map-card-body { padding: 13px 15px; }
.map-card-body h3 { font-size: 14px; margin-bottom: 3px; color: var(--text-heading); font-weight: 700; }
.map-card-body p { font-size: 11.5px; color: var(--text-muted); margin: 0; }
.active-badge { position: absolute; top: 10px; right: 10px; background: var(--accent-from); color: var(--on-accent); font-size: 9.5px; font-weight: 700; letter-spacing: .4px; padding: 3px 8px; border-radius: 20px; z-index: 2; }
@media (max-width: 960px) { .map-rotation-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .map-rotation-grid { grid-template-columns: 1fr; } }

/* ---------- Tables: filter chips + status badges ---------- */
.filter-bar { display: flex; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.chip { padding: 10px 16px; border-radius: 20px; border: 1px solid var(--border-interactive); font-size: 12.5px; color: var(--text-secondary); background: transparent; cursor: pointer; font-family: inherit; text-decoration: none; display: inline-flex; align-items: center; }
.chip:hover { color: var(--text-primary); text-decoration: none; border-color: var(--link); }
.chip.is-active { background: var(--link); color: var(--on-accent); border-color: var(--link); font-weight: 700; }
.chip.is-active:hover { color: var(--on-accent); }
td.rank-cell { color: var(--link); font-weight: 700; }
td.hs-cell { color: var(--accent-from); font-weight: 600; }
tr.rank-1 { background: linear-gradient(90deg, rgba(255,167,51,.10), transparent 70%); box-shadow: inset 3px 0 0 var(--accent-from); }
tr.rank-1 td.rank-cell { color: var(--accent-from); }
.badge-status { font-size: 10.5px; font-weight: 700; padding: 3px 10px; border-radius: 20px; display: inline-block; }
.badge-status.aktiv { background: rgba(255,107,107,.15); color: var(--status-offline); }
.badge-status.abgelaufen { background: rgba(126,140,173,.15); color: var(--text-muted); }
.badge-status.offen { background: rgba(255,167,51,.15); color: var(--accent-from); }
.badge-status.in_bearbeitung { background: rgba(52,224,255,.15); color: var(--link); }
.badge-status.geschlossen { background: rgba(61,220,132,.15); color: var(--status-online); }

/* ---------- Tickets ---------- */
.ticket-thread { display: flex; flex-direction: column; gap: 14px; margin: 20px 0; }
.ticket-msg { border-radius: var(--radius-md); padding: 14px 18px; max-width: 85%; }
.ticket-msg.from-user { background: var(--bg-surface); border: 1px solid var(--border); align-self: flex-start; }
.ticket-msg.from-admin { background: rgba(52,224,255,.08); border: 1px solid rgba(52,224,255,.3); align-self: flex-end; }
.ticket-msg-head { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; color: var(--text-muted); margin-bottom: 6px; }
.ticket-msg-head strong { color: var(--text-heading); }
.ticket-msg-body { font-size: 13.5px; color: var(--text-primary); white-space: pre-wrap; line-height: 1.6; }

/* ---------- CS Help: rules + FAQ accordion ---------- */
.help-rules ul { display: flex; flex-direction: column; gap: 10px; list-style: none; padding: 0; margin: 0 0 36px; }
.help-rules li { font-size: 14px; color: var(--text-secondary); padding-left: 20px; position: relative; }
.help-rules li::before { content: "–"; position: absolute; left: 0; color: var(--link); }
.accordion-item { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 12px; overflow: hidden; }
.accordion-item summary { padding: 15px 18px; cursor: pointer; font-weight: 600; font-size: 14px; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--text-heading); }
.accordion-item summary::-webkit-details-marker { display: none; }
.accordion-item summary::after { content: "+"; color: var(--link); font-size: 18px; flex-shrink: 0; }
.accordion-item[open] summary::after { content: "–"; }
.accordion-item .accordion-body { padding: 0 18px 16px; color: var(--text-secondary); font-size: 13.5px; line-height: 1.6; }
.accordion-item .accordion-body pre { margin-top: 8px; }

/* ---------- Contact cards ---------- */
.contact-cards { display: flex; flex-direction: column; gap: 14px; }

/* ---------- Legal pages ---------- */
.legal-note { background: rgba(255,167,51,.08); border: 1px solid rgba(255,167,51,.3); border-radius: 10px; padding: 15px 18px; font-size: 12.5px; color: var(--text-secondary); margin-bottom: 22px; }
.legal-note strong { color: var(--accent-from); }

/* ---------- Cookie banner ---------- */
.cookie-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; max-width: 560px; margin: 0 auto;
  background: rgba(10,17,36,.97); border: 1px solid var(--border-interactive); border-radius: 12px;
  padding: 18px 20px; box-shadow: 0 12px 40px rgba(0,0,0,.5); z-index: 300; backdrop-filter: blur(8px); }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { font-size: 12.5px; color: var(--text-secondary); margin-bottom: 14px; line-height: 1.5; }
.cookie-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- Homepage: boxless flowing sections (redesign) ---------- */
.trust-line { color: var(--text-secondary); font-size: 13.5px; margin: -10px 0 22px; }
.trust-line strong { color: var(--text-heading); }

.flow-section { padding: 56px 0; border-top: 1px solid var(--border); }
.flow-head { margin-bottom: 26px; }
.flow-head h2 { font-size: 26px; font-weight: 700; color: var(--text-heading); margin: 8px 0 0; }

.welcome-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: start; }

.news-list { display: flex; flex-direction: column; }
.news-item { padding: 14px 0; border-bottom: 1px solid var(--border); }
.news-item:first-child { padding-top: 0; }
.news-item:last-child { border-bottom: none; padding-bottom: 0; }
.news-item .date { font-size: 11px; color: var(--text-muted); letter-spacing: .3px; margin-bottom: 4px; }
.news-item .title { font-size: 14.5px; font-weight: 700; color: var(--text-heading); margin-bottom: 3px; }
.news-item .body { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }

.news-votes { display: flex; gap: 8px; margin-top: 10px; }
.vote-btn { display: flex; align-items: center; gap: 5px; padding: 4px 10px; background: rgba(19,27,46,.6); border: 1px solid var(--border); border-radius: var(--radius-pill); color: var(--text-secondary); font-size: 12.5px; font-family: inherit; cursor: pointer; transition: border-color .15s, color .15s; }
.vote-btn .icon { font-size: 13px; line-height: 1; filter: grayscale(1) opacity(.7); }
.vote-btn:hover:not(:disabled) { border-color: var(--border-interactive); color: var(--text-primary); }
.vote-btn:disabled { cursor: not-allowed; opacity: .55; }
.vote-btn.vote-up.active { border-color: var(--status-online); color: var(--status-online); }
.vote-btn.vote-up.active .icon { filter: none; }
.vote-btn.vote-down.active { border-color: var(--status-offline); color: var(--status-offline); }
.vote-btn.vote-down.active .icon { filter: none; }

.people-list { display: flex; flex-direction: column; }
.person-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); text-decoration: none; color: inherit; }
.person-row:first-child { padding-top: 0; }
.person-row:last-child { border-bottom: none; padding-bottom: 0; }
.person-row .flag { width: 18px; height: 13px; flex-shrink: 0; margin: 0; }
.person-row .pname { font-weight: 700; font-size: 13.5px; color: var(--text-heading); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-row .joined { margin-left: auto; font-size: 11.5px; color: var(--text-secondary); white-space: nowrap; flex-shrink: 0; }
.person-row:hover .pname { color: var(--link); }

.mvp-section { text-align: center; padding: 64px 0; }
.mvp-flag { width: 30px; height: 21px; margin: 4px auto 16px; display: block; }
.mvp-name { font-size: 42px; font-weight: 800; color: var(--text-heading); margin: 0 0 10px; line-height: 1.1; }
.mvp-name a { color: inherit; text-decoration: none; }
.mvp-name a:hover { color: var(--link); }
.mvp-stat { font-size: 15px; color: var(--accent-from); font-weight: 700; }
.mvp-stat .sep { color: var(--text-muted); margin: 0 10px; font-weight: 400; }

.hof-podium { margin-bottom: 8px; }
.hof-list { max-width: 640px; margin: 0 auto; }
.hof-row { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--border); }
.hof-row:last-child { border-bottom: none; }
.hof-row .rk { width: 28px; font-size: 13px; font-weight: 700; color: var(--text-muted); flex-shrink: 0; }
.hof-row .flag { width: 18px; height: 13px; flex-shrink: 0; margin: 0; }
.hof-row .pname { font-weight: 700; font-size: 13.5px; color: var(--text-heading); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hof-row .pkills { font-size: 12.5px; color: var(--text-secondary); flex-shrink: 0; }

@media (max-width: 760px) {
  .welcome-grid { grid-template-columns: 1fr; gap: 32px; }
  .mvp-name { font-size: 32px; }
}

/* ---------- Large-display scaling (4K / ultra-wide) ---------- */
/* The whole site is laid out in fixed px, capped at 1200px wide. On very
   large / 4K screens that leaves most of the display empty and everything
   rendered at "normal monitor" size. zoom scales layout, type, spacing and
   images uniformly (everything the design already has, just bigger and
   filling more of the screen) without needing to rewrite every rule to
   rem/clamp. Applies site-wide since every page shares this stylesheet. */
@media (min-width: 1900px) {
  html { zoom: 1.15; }
}
@media (min-width: 2400px) {
  html { zoom: 1.3; }
}
@media (min-width: 3200px) {
  html { zoom: 1.5; }
}

/* --- Language switcher (header dropdown with flags) --- */
.lang-switch { position: relative; }
.lang-switch summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--border-interactive); border-radius: var(--radius-sm); color: var(--text-secondary); font-size: 12.5px; font-weight: 600; user-select: none; }
.lang-switch summary::-webkit-details-marker { display: none; }
.lang-switch summary::marker { content: ""; }
.lang-switch summary:hover { color: var(--text-primary); border-color: var(--link); }
.lang-switch[open] summary { color: var(--text-primary); border-color: var(--link); }
.lang-flag { width: 18px; height: 12px; object-fit: cover; border-radius: 2px; flex-shrink: 0; }
.lang-switch summary::after { content: '\25BE'; font-size: 9px; color: var(--text-secondary); margin-left: 1px; }
.lang-menu { position: absolute; right: 0; top: calc(100% + 6px); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 6px; margin: 0; list-style: none; max-height: 360px; overflow-y: auto; min-width: 190px; box-shadow: 0 12px 30px rgba(0,0,0,.5); z-index: 60; }
.lang-menu li { margin: 0; }
.lang-menu a { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 8px; color: var(--text-secondary); font-size: 13px; font-weight: 500; }
.lang-menu a:hover { background: var(--bg-surface-alt); color: var(--text-primary); text-decoration: none; }
.lang-menu a.active { color: var(--text-heading); background: rgba(52,224,255,.1); font-weight: 700; }
@media (max-width: 720px) {
    .lang-menu { right: auto; left: 0; }
}
/* ==== PLAYCS server page v2 (begin) ==== */
.srv-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 32px; align-items: stretch; padding: 44px 0 26px; }
.srv-info { min-width: 0; }
.srv-info h1 { font-size: 36px; line-height: 1.12; margin: 8px 0 12px; color: var(--text-heading); font-family: 'Chakra Petch', sans-serif; word-break: break-word; }
.srv-info .status-live { margin-bottom: 18px; }
.srv-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 10px; margin-bottom: 22px; }
.srv-tile { border: 1px solid var(--border); border-radius: var(--radius-sm); background: rgba(19,31,61,.55); padding: 10px 12px; min-width: 0; }
.srv-tile > span:first-child { display: block; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.srv-tile strong { display: block; margin-top: 3px; font-size: 17px; color: var(--text-primary); font-family: 'Chakra Petch', sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.srv-tile.hl { border-color: rgba(255,167,51,.45); }
.srv-tile.hl strong { color: var(--accent-from); }
.srv-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.srv-mapcard { position: relative; border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--border-interactive); min-height: 300px; background: #050a14;
  box-shadow: 0 0 0 1px rgba(52,224,255,.08), 0 18px 44px rgba(0,0,0,.45), 0 0 40px rgba(52,224,255,.08); }
.srv-mapcard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.srv-mapcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,11,22,.0) 50%, rgba(6,11,22,.88) 100%); pointer-events: none; }
.srv-mapcard .live-pill { position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; color: var(--status-online);
  background: rgba(6,11,22,.72); border: 1px solid rgba(61,220,132,.45); border-radius: var(--radius-pill); padding: 4px 10px; }
.srv-mapcard .live-pill i { width: 7px; height: 7px; border-radius: 50%; background: var(--status-online); box-shadow: 0 0 8px var(--status-online); animation: pulse 2s ease-in-out infinite; }
.srv-maplabel { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 2; display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.srv-maplabel .nm { font-family: 'Chakra Petch', sans-serif; font-size: 22px; font-weight: 700; color: var(--text-heading); text-shadow: 0 2px 10px rgba(0,0,0,.8); line-height: 1.15; word-break: break-word; }
.srv-maplabel .sm { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-secondary); text-shadow: 0 1px 6px rgba(0,0,0,.8); white-space: nowrap; }

/* scoreboard (modelled on the in-game one: T left, CT right) */
.sb-panel { margin-bottom: 22px; }
.sb-headline { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.sb-live { display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; color: var(--status-online); }
.sb-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--status-online); box-shadow: 0 0 8px var(--status-online); animation: pulse 2s ease-in-out infinite; }
.sb-live.off { color: var(--status-offline); } .sb-live.off i { background: var(--status-offline); box-shadow: none; animation: none; }
.sb { display: grid; grid-template-columns: 1fr 1fr; }
.sb-team { min-width: 0; }
.sb-team + .sb-team { border-left: 1px solid var(--border); }
.sb-head { display: flex; align-items: baseline; gap: 8px; padding: 11px 16px; border-bottom: 1px solid var(--border); font-family: 'Chakra Petch', sans-serif; font-weight: 700; letter-spacing: .03em; }
.sb-t .sb-head { background: linear-gradient(90deg, rgba(255,167,51,.22), transparent); color: var(--accent-from); }
.sb-ct .sb-head { background: linear-gradient(90deg, rgba(52,224,255,.20), transparent); color: var(--link); }
.sb-head .sb-count { font-size: 12px; font-weight: 600; color: var(--text-muted); }
.sb-head .sb-score { margin-left: auto; font-size: 24px; line-height: 1; }
.sb-table { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: fixed; }
.sb-table th { padding: 8px 12px; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); font-weight: 700; text-align: right; border-bottom: 1px solid rgba(36,54,92,.6); }
.sb-table th.sb-n, .sb-table td.sb-n { text-align: left; }
.sb-table th.c-s, .sb-table th.c-d { width: 62px; }
.sb-table th.c-p { width: 56px; }
.sb-table td { padding: 8px 12px; border-bottom: 1px solid rgba(36,54,92,.45); text-align: right; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.sb-table td.sb-n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sb-table tbody tr:last-child td { border-bottom: none; }
.sb-table tr.dead td { opacity: .5; }
.sb-table tr.sb-none td { text-align: center; color: var(--text-muted); }
.sb .dead-badge { display: inline-block; font-size: 9px; letter-spacing: .08em; color: var(--status-offline); border: 1px solid rgba(255,107,107,.5); border-radius: 4px; padding: 0 4px; margin-right: 6px; vertical-align: 1px; }
.sb .bomb { margin-right: 2px; }
.sb-empty { grid-column: 1 / -1; padding: 14px 16px; text-align: center; color: var(--text-muted); font-size: 12.5px; border-top: 1px solid var(--border); }
.sb-spec { grid-column: 1 / -1; border-top: 1px solid var(--border); padding: 10px 16px; font-size: 12px; color: var(--text-muted); }
.sb-spec strong { color: var(--text-secondary); }

/* player-load chart */
.chart-panel { margin-bottom: 22px; }
.chart-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.chart-body { padding: 14px 18px 18px; }
.chart-panel .chart-wrap-outer svg { min-width: 520px; height: auto; display: block; }
.chart-panel .ch-hit:hover { fill: rgba(52,224,255,.10); }
.chart-nodata { height: 190px; display: flex; align-items: center; justify-content: center; color: var(--text-secondary); font-size: 13px; text-align: center; padding: 0 20px; }

@media (max-width: 900px) {
  .srv-hero { grid-template-columns: 1fr; padding-top: 30px; }
  .srv-mapcard { min-height: 0; aspect-ratio: 16 / 10; order: -1; }
  .srv-info h1 { font-size: 30px; }
}
@media (max-width: 760px) {
  .sb { grid-template-columns: 1fr; }
  .sb-team + .sb-team { border-left: none; border-top: 1px solid var(--border); }
}
/* ==== PLAYCS server page v2 (end) ==== */

/* ---- PLAYCS players page v2 ---- */
.pl-toolbar { display: flex; gap: 12px 14px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.pl-toolbar .filter-bar { margin: 0; }
.pl-search { position: relative; flex: 1 1 220px; max-width: 360px; display: flex; align-items: center; }
.pl-search svg { position: absolute; left: 11px; color: var(--text-muted); pointer-events: none; }
.pl-search input { width: 100%; background: rgba(19,27,46,.6); border: 1px solid var(--border-interactive); border-radius: var(--radius-sm);
  padding: 9px 34px 9px 34px; color: var(--text-primary); font-size: 14px; -webkit-appearance: none; appearance: none; }
.pl-search input::-webkit-search-cancel-button { display: none; }
.pl-search input:focus { outline: 2px solid var(--link); outline-offset: 1px; border-color: var(--link); }
.pl-clear { position: absolute; right: 6px; width: 26px; height: 26px; border: 0; border-radius: 50%; background: rgba(255,255,255,.08); color: var(--text-secondary); font-size: 17px; line-height: 1; cursor: pointer; }
.pl-clear:hover { background: rgba(255,255,255,.16); color: var(--text-heading); }
.pl-check, .pl-show { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-secondary); }
.pl-show { margin-left: auto; }
.pl-show select { background: rgba(19,27,46,.6); border: 1px solid var(--border-interactive); border-radius: var(--radius-sm); padding: 6px 10px; color: var(--text-primary); font-size: 12.5px; }
.pl-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; margin: 0 2px 10px; font-size: 13px; color: var(--text-secondary); }
.pl-meta strong { color: var(--accent-from); font-size: 15px; }
.pl-meta-note { font-size: 12px; color: var(--text-muted); }
#plResults { transition: opacity .15s; }
#plResults.is-loading { opacity: .55; }

table.leaderboard-table th.sortable { padding: 0; white-space: nowrap; }
table.leaderboard-table th.sortable a { display: flex; align-items: center; gap: 5px; padding: 10px 11px; color: inherit; text-decoration: none; cursor: pointer; }
table.leaderboard-table th.sortable a:hover { color: var(--text-heading); background: rgba(52,224,255,.06); }
table.leaderboard-table th.sortable a:focus-visible { outline: 2px solid var(--link); outline-offset: -2px; }
.sort-ind { font-size: 9px; opacity: .35; }
th.is-sorted { color: var(--link); }
th.is-sorted .sort-ind { opacity: 1; color: var(--link); }
.pagination .gap { border: 0; min-width: 0; padding: 10px 4px; }

@media (max-width: 700px) { .pl-show { margin-left: 0; } .pl-search { max-width: none; } }


/* players table v3 - roomy, centred, coloured figures */
.leaderboard-table { table-layout: auto; }
.leaderboard-table thead th { text-align: center; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--link); white-space: nowrap; padding: 14px 8px; }
.leaderboard-table th.sortable a { justify-content: center; padding: 14px 8px; }
.leaderboard-table td { text-align: center; padding: 14px 8px; font-size: 14px; }
.leaderboard-table th.th-name, .leaderboard-table td.td-name { text-align: left; }
.leaderboard-table th.th-name a { justify-content: flex-start; }
.leaderboard-table .player-avatar { width: 40px; height: 40px; border-radius: 6px; }
.leaderboard-table td.td-name a { font-size: 15px; font-weight: 700; color: #8fc4ff; }
.leaderboard-table td.td-name a:hover { color: var(--link); }
.leaderboard-table .c-skill { font-weight: 800; font-size: 15px; color: #ff9a8a; }
.leaderboard-table .c-k { color: #ff9a8a; }
.leaderboard-table .c-d { color: #9aa7c4; }
.leaderboard-table .c-diff { color: #ff9a8a; }
.leaderboard-table .c-ct, .leaderboard-table .c-t { color: #ff9a8a; }
.leaderboard-table .c-time { color: #ff9a8a; }
.leaderboard-table .c-date { color: var(--text-secondary); font-size: 13px; }
.leaderboard-table .hs-cell { color: #f4d35e; font-weight: 700; }
.leaderboard-table .rk { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-size: 12px; font-weight: 700; color: var(--text-secondary); }
.leaderboard-table .rk-1 { background: #4a3a14; color: #ffc94d; border: 1px solid #7a6020; }
.leaderboard-table .rk-2 { background: #2f3a4c; color: #d3dae8; border: 1px solid #55627a; }
.leaderboard-table .rk-3 { background: #3e2a1c; color: #e0955a; border: 1px solid #6b4528; }

/* players table v4: columns drop out based on the width of the table box itself, never a scrollbar on desktop */
.leaderboard-table thead th { padding: 14px 6px; }
.leaderboard-table th.sortable a { padding: 14px 6px; gap: 3px; }
.leaderboard-table td { padding: 14px 6px; }
.leaderboard-table th:first-child, .leaderboard-table td.rank-cell { width: 44px; padding-left: 10px; padding-right: 2px; }
.leaderboard-table td.td-name a { overflow-wrap: anywhere; }

/* players table v5: names keep their room, columns drop out by class when the table box gets narrow */
.leaderboard-table td.td-name > div { min-width: 0; }
.leaderboard-table td.td-name a { display: block; max-width: 175px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; }
.leaderboard-table th.th-name { min-width: 150px; }

/* players table v6: no box, table sits directly on the page and uses the full (slightly wider) width */
.wrap.pl-wide { max-width: 1360px; }
.pl-table { container-type: inline-size; overflow-x: auto; border-top: 1px solid var(--pcc-border, #24365c); border-bottom: 1px solid #24365c; }
.pl-table .leaderboard-table thead th { background: rgba(36,54,92,.45); }
.leaderboard-table td.td-name a { max-width: 230px; }
@container (max-width: 1240px) { .leaderboard-table .col-ct, .leaderboard-table .col-t { display: none; } }
@container (max-width: 1060px) { .leaderboard-table .col-first { display: none; } }
@container (max-width: 880px)  { .leaderboard-table .col-acc { display: none; } }
@container (max-width: 740px)  { .leaderboard-table .col-time, .leaderboard-table .col-diff { display: none; } }
@container (max-width: 580px)  { .leaderboard-table .col-kd, .leaderboard-table .col-hs { display: none; } }
@container (max-width: 440px)  { .leaderboard-table :is(th, td):nth-child(5) { display: none; } .leaderboard-table td, .leaderboard-table thead th { padding-left: 3px; padding-right: 3px; } .leaderboard-table td.c-date { white-space: normal !important; font-size: 11.5px; line-height: 1.3; } .leaderboard-table td.td-name a { font-size: 14px; max-width: 110px; } .leaderboard-table .player-avatar { width: 32px; height: 32px; } }
@container (max-width: 440px) { .leaderboard-table th.th-name { min-width: 0; } .leaderboard-table td.td-name a { max-width: 95px; } .leaderboard-table th:first-child, .leaderboard-table td.rank-cell { width: 28px; padding-left: 4px; } .leaderboard-table th.sortable a { padding-left: 2px; padding-right: 2px; font-size: 10px; } }
@container (max-width: 440px) { .leaderboard-table .player-avatar { display: none; } .leaderboard-table td.td-name a { max-width: 120px; } }
@container (max-width: 440px) { .leaderboard-table td.td-name a { max-width: 90px; } .leaderboard-table .c-skill { font-size: 13px; } .leaderboard-table td { font-size: 13px; } }

/* ==== PLAYCS flat layout v1: sections sit directly on the page instead of in boxes ==== */
.panel, .glow-panel .inner, .stat-card, .srv-tile, .podium-empty {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.glow-panel .glow-edge { display: none !important; }
.panel, .glow-panel { overflow: visible; }
.glow-panel .inner { padding: 0 !important; overflow: visible !important; }
.panel { margin-bottom: 34px; }
.panel-head { padding: 0 0 10px; border-bottom: 1px solid var(--border); margin-bottom: 4px; }
.panel-head h2 { font-size: 17px; }
.panel.danger .panel-head { border-bottom-color: var(--status-offline); }
.panel > :not(.panel-head):not(table):not(.data) { /* inner blocks of a former box: no extra side padding needed */ }
.panel-body, .panel .body { padding-left: 0; padding-right: 0; }

/* figures / tiles: just numbers with a thin accent rule, no card */
.stat-card { padding: 6px 4px 6px 14px !important; text-align: left; border-left: 2px solid var(--border-interactive) !important; }
.srv-tile { padding: 4px 4px 4px 12px !important; border-left: 2px solid var(--border-interactive) !important; }
.srv-tile.hl { border-left-color: var(--accent-from) !important; }

/* tables: header row stays visible, rows separated by hairlines only */
table.data th { background: transparent; border-bottom: 1px solid var(--border-interactive); }
.pl-table { border-top: 0 !important; border-bottom: 0 !important; }
.pl-table .leaderboard-table thead th { background: transparent !important; }
table.data tbody tr:nth-child(even) td { background: transparent; }

/* clickable map tiles: image stays, the frame goes */
.map-card { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.map-card.active { box-shadow: none !important; }
.map-card.active .map-card-body h3 { color: var(--accent-from); }
.map-card img { border-radius: 8px; }
.map-card-body { padding: 10px 2px; }
.connect-box { background: transparent; border: 0; border-bottom: 1px solid var(--border-interactive); border-radius: 0; padding-left: 0; padding-right: 0; }

/* flat v1 (part 2): FAQ accordion, notes, inline-padded panels */
.accordion-item { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--border) !important; border-radius: 0 !important; margin-bottom: 0 !important; }
.accordion-item summary { padding-left: 2px; padding-right: 2px; }
.accordion-item:hover summary { color: var(--link); }
.accordion-item .accordion-body { padding-left: 2px; padding-right: 2px; }
.legal-note { background: transparent !important; border: 0 !important; border-left: 2px solid rgba(255,167,51,.55) !important; border-radius: 0 !important; padding: 4px 0 4px 14px !important; }
.panel[style*="padding"] { padding: 0 !important; }

/* account drop-down in the header (re-uses the language menu look) */
.user-menu summary svg { flex-shrink: 0; }
.user-menu.is-current summary { color: var(--link); border-color: var(--link); }
.user-menu .lang-menu { min-width: 200px; }
.lang-menu li.sep { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--border); }

/* no sideways jump between short and long pages (scrollbar appears/disappears) */
html { scrollbar-gutter: stable; overflow-y: scroll; }

/* logo: sharper (shown at 44px from a 96px source), no extra glow/rounding on top of the artwork frame */
.brand-mark { width: 44px; height: 44px; border-radius: 0; box-shadow: none; object-fit: contain; image-rendering: auto; }
.brand { gap: 12px; }

/* account deletion tab */
.del-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 18px 0 8px; }
.del-cols h3 { font-size: 14px; margin: 0 0 8px; color: var(--text-heading); }
.del-cols ul { margin: 0; padding-left: 18px; font-size: 13px; color: var(--text-secondary); line-height: 1.55; }
.del-cols li { margin-bottom: 6px; }
.notice-ok, .notice-warn, .notice-info { padding: 4px 0 4px 14px; margin: 12px 0; font-size: 13.5px; border-left: 2px solid; }
.notice-ok { border-color: var(--status-online); color: var(--status-online); }
.notice-warn { border-color: var(--status-offline); color: var(--text-primary); }
.notice-info { border-color: var(--link); color: var(--text-primary); }
@media (max-width: 700px) { .del-cols { grid-template-columns: 1fr; } }

/* downloads page */
.dl-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px; margin-bottom: 38px; }
.dl-item { border-left: 2px solid var(--border-interactive); padding: 2px 0 2px 16px; }
.dl-item h2 { font-size: 16px; margin: 0 0 6px; color: var(--text-heading); }
.dl-item p { font-size: 13.5px; color: var(--text-secondary); margin: 0 0 14px; line-height: 1.55; }
.dl-item code { color: var(--text-primary); font-family: var(--font-family-mono); }
#dlTable td .btn { padding: 5px 12px; font-size: 12px; margin-left: 4px; }

/* guides: buy binds */
.bb-h { font-size: 13.5px; color: var(--text-heading); margin: 22px 0 8px; }
.bb-list { margin: 12px 0 0; padding-left: 18px; font-size: 13.5px; color: var(--text-secondary); line-height: 1.6; }
.bb-list li { margin-bottom: 6px; }
.bb-ex { border-left: 2px solid var(--border-interactive); padding: 2px 0 2px 14px; margin: 14px 0; }
.bb-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bb-key { display: inline-block; min-width: 30px; text-align: center; padding: 2px 8px; border: 1px solid var(--border-interactive); border-radius: 6px; font-family: var(--font-family-mono); font-size: 12px; color: var(--link); }
.bb-desc { font-size: 13px; color: var(--text-secondary); margin: 6px 0 8px; line-height: 1.5; }
.bb-copy { margin-left: auto; }
.hlx-text code, .bb-list code { font-family: var(--font-family-mono); font-size: 12px; color: var(--text-primary); background: rgba(52,224,255,.07); padding: 1px 5px; border-radius: 4px; }

/* ==== header v2: logical order, truly centred menu, two rows when tight, burger menu on phones ==== */
.header-row { display: grid; grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr); gap: 24px; align-items: center; }
.header-row .brand { justify-self: start; }
.header-row .header-actions { justify-self: end; }
.main-nav { flex: none; overflow: visible; justify-self: center; }
.main-nav ul { gap: 22px; }
.nav-toggle { display: none; align-items: center; justify-content: center; width: 40px; height: 38px; padding: 0; background: transparent;
  border: 1px solid var(--border-interactive); border-radius: var(--radius-sm); color: var(--text-secondary); cursor: pointer; }
.nav-toggle:hover, .site-header.nav-open .nav-toggle { color: var(--text-primary); border-color: var(--link); }

@media (max-width: 1180px) {
  .header-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 16px; min-height: 0; padding: 10px 24px 0; }
  .main-nav { order: 3; flex: 0 0 100%; overflow-x: auto; overflow-y: hidden; border-top: 1px solid var(--border); margin-top: 10px; padding: 4px 0 8px; justify-content: center; }
  .main-nav ul { gap: 20px; }
}
@media (max-width: 860px) {
  .main-nav ul { gap: 14px; }
}
@media (max-width: 700px) {
  .header-row { height: auto; padding: 10px 16px; }
  .nav-toggle { display: inline-flex; }
  .main-nav { display: none; margin-top: 10px; padding: 4px 0 0; -webkit-mask-image: none; mask-image: none; overflow: visible; }
  .site-header.nav-open .main-nav { display: block; }
  .main-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .main-nav li { border-bottom: 1px solid rgba(36,54,92,.55); }
  .main-nav li:last-child { border-bottom: 0; }
  .main-nav a { display: block; padding: 13px 4px; font-size: 15px; }
  .main-nav a.active { color: var(--link); }
  .main-nav a.active::after { left: auto; right: 4px; top: 50%; bottom: auto; width: 8px; height: 8px; border-radius: 50%; transform: translateY(-50%); }
  .header-actions { gap: 8px; }
  .header-actions .btn-steam { padding: 8px 12px; font-size: 12.5px; }
  .brand-mark { width: 38px; height: 38px; }
  .logo { font-size: 15px; }
}
@media (max-width: 420px) {
  .brand { gap: 8px; }
  .logo { font-size: 14px; }
  .header-actions .lang-switch summary { padding: 6px 7px; }
  .header-actions .btn-steam { padding: 7px 9px; font-size: 12px; }
  .user-menu summary span { display: none; }
}

/* header v2 - small phones: keep logo mark + actions on ONE row (wordmark hidden below 400px) */
@media (max-width: 480px) { .header-row { gap: 0 8px; } .header-actions { gap: 6px; } .brand { gap: 8px; min-width: 0; } }
@media (max-width: 400px) { .logo { display: none; } }

/* ==== header v3: grouped slide-in menu on phones (replaces the dropdown list) ==== */
.nav-drawer, .nav-backdrop { display: none; }
@media (max-width: 700px) {
  /* header: logo + burger only, everything else lives in the drawer */
  .header-actions .lang-switch, .header-actions .steam-wrap, .header-actions .user-menu { display: none !important; }
  .main-nav, .site-header.nav-open .main-nav { display: none !important; }
  .header-row { padding: 10px 16px; }
  .logo { display: inline !important; font-size: 16px; }
  .nav-toggle { margin-left: auto; }

  .nav-backdrop { display: block; position: fixed; inset: 0; z-index: 290; background: rgba(2,6,14,.62); opacity: 0; pointer-events: none; transition: opacity .2s; }
  .nav-drawer { display: flex; flex-direction: column; position: fixed; top: 0; right: 0; bottom: 0; z-index: 300; width: min(86vw, 340px);
    background: #0a1228; border-left: 1px solid var(--border-interactive); box-shadow: -20px 0 50px rgba(0,0,0,.55);
    transform: translateX(105%); transition: transform .24s cubic-bezier(.2,.8,.2,1); visibility: hidden; }
  html.nav-open { overflow: hidden; }
  html.nav-open .nav-backdrop { opacity: 1; pointer-events: auto; }
  html.nav-open .nav-drawer { transform: none; visibility: visible; }
  .nav-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border); }
  .nav-drawer-title { font: 700 13px 'Chakra Petch', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--text-secondary); }
  .nav-drawer-close { width: 38px; height: 38px; display: grid; place-items: center; background: transparent; border: 1px solid var(--border-interactive); border-radius: var(--radius-sm); color: var(--text-secondary); cursor: pointer; }
  .nav-drawer-body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 6px 18px 28px; }
  .nav-ip { margin: 14px 0 6px; padding: 12px 14px; border-left: 2px solid var(--accent-from); background: rgba(255,167,51,.06); }
  .nav-ip-label { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 6px; }
  .nav-ip-row { display: flex; align-items: center; gap: 10px; justify-content: space-between; }
  .nav-ip-row code { font-family: var(--font-family-mono); font-size: 13.5px; color: var(--text-primary); }
  .nav-ip-copy { padding: 5px 12px; border: 1px solid var(--border-interactive); border-radius: 6px; background: transparent; color: var(--link); font-size: 12px; font-weight: 700; cursor: pointer; }
  .nav-group { margin-top: 18px; }
  .nav-group-title { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 4px; font-weight: 700; }
  .nav-link { display: flex; align-items: center; justify-content: space-between; padding: 12px 2px; font-size: 15.5px; font-weight: 600; color: var(--text-primary); border-bottom: 1px solid rgba(36,54,92,.45); text-decoration: none; }
  .nav-link:hover { color: var(--link); text-decoration: none; }
  .nav-link.active { color: var(--link); }
  .nav-link.active::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--link); box-shadow: 0 0 8px var(--link); }
  .nav-link-muted { color: var(--text-secondary); font-weight: 500; }
  .nav-login { width: 100%; justify-content: center; margin-top: 8px; }
  .nav-langs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 6px; }
  .nav-lang { display: flex; align-items: center; gap: 5px; justify-content: center; padding: 7px 4px; font-size: 11.5px; font-weight: 700; color: var(--text-secondary); border: 1px solid var(--border); border-radius: 6px; text-decoration: none; }
  .nav-lang.active { border-color: var(--link); color: var(--text-heading); background: rgba(52,224,255,.08); }
  .nav-lang .lang-flag { width: 16px; height: auto; }
}

/* ==== home dashboard ==== */
.dash-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 22px; margin-bottom: 34px; }
.dash-kpis .stat-card { padding-left: 14px !important; }
.dash-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; }
.dash-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding-bottom: 8px; border-bottom: 1px solid var(--border-interactive); }
.dash-head h3 { margin: 0; font-size: 15.5px; color: var(--text-heading); }
.dash-tabs { display: inline-flex; gap: 2px; }
.dash-tabs button { padding: 4px 10px; font-size: 11.5px; font-weight: 700; color: var(--text-muted); background: transparent; border: 0; border-radius: 6px; cursor: pointer; }
.dash-tabs button:hover { color: var(--text-primary); }
.dash-tabs button.on { color: var(--on-accent); background: var(--link); }
.dash-sub { font-size: 12px; color: var(--text-muted); margin: 8px 0 6px; }
.dash-list { list-style: none; margin: 0; padding: 0; min-height: 150px; }
.dash-list[hidden] { display: none; }
.dash-list li { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid rgba(36,54,92,.5); }
.dash-list li:last-child { border-bottom: 0; }
.dash-rk { width: 18px; font-size: 12px; font-weight: 700; color: var(--text-muted); text-align: center; flex-shrink: 0; }
.dash-pl { display: flex; align-items: center; gap: 9px; min-width: 0; flex: 1; font-weight: 600; font-size: 13.5px; color: #8fc4ff; }
.dash-pl span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-pl:hover { color: var(--link); text-decoration: none; }
.dash-av { width: 26px; height: 26px; border-radius: 6px; object-fit: cover; flex-shrink: 0; background: #0a1228; }
.dash-val { margin-left: auto; text-align: right; font-size: 13px; color: #ff9a8a; white-space: nowrap; }
.dash-val small { display: block; font-size: 10.5px; color: var(--text-muted); }
.dash-empty { display: block !important; padding: 18px 0 !important; font-size: 12.5px; color: var(--text-muted); line-height: 1.5; }
@media (max-width: 1000px) { .dash-grid { grid-template-columns: 1fr; gap: 30px; } .dash-kpis { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .dash-kpis { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

/* ==== player profile v2 ==== */
.pf-head { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding: 6px 0 20px; }
.pf-avatar { width: 88px; height: 88px; border-radius: 12px; object-fit: cover; border: 1px solid var(--border-interactive); flex-shrink: 0; background: #0a1228; }
.pf-id { flex: 1 1 280px; min-width: 0; }
.pf-name { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 26px; color: var(--text-heading); flex-wrap: wrap; }
.pf-meta { display: flex; gap: 6px 16px; flex-wrap: wrap; font-size: 12.5px; color: var(--text-secondary); margin-bottom: 10px; align-items: center; }
.pf-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.pf-badge { padding: 3px 10px; font-size: 11.5px; font-weight: 700; border: 1px solid var(--border-interactive); border-radius: 999px; color: var(--link); }
.pf-badge-gold { color: var(--accent-from); border-color: rgba(255,167,51,.5); }
.pf-side { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-left: auto; }
.pf-rating { text-align: center; padding: 8px 20px; border-left: 2px solid var(--accent-from); }
.pf-rating-lbl { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.pf-rating-num { font: 800 38px/1.1 'Chakra Petch', sans-serif; color: var(--accent-from); }
.pf-rating-sub { font-size: 11.5px; color: var(--text-secondary); }
.pf-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pf-tabs { margin-bottom: 22px; border-bottom: 1px solid var(--border); padding-bottom: 14px; }
.pf-scroll { overflow-x: auto; }
.pf-table th, .pf-table td { text-align: center; }
.pf-table th:first-child, .pf-table td.td-left { text-align: left; }
.pf-bar-cell { min-width: 150px; text-align: left !important; }
.pf-bar-cell span { margin-left: 8px; font-size: 12px; color: var(--text-secondary); }
.pf-bar { display: inline-block; vertical-align: middle; width: 90px; height: 6px; background: rgba(255,255,255,.07); border-radius: 3px; overflow: hidden; }
.pf-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--link), #3b82f6); border-radius: 3px; }
.pf-zones { display: grid; grid-template-columns: 200px 1fr; gap: 34px; align-items: center; padding: 16px 0; max-width: 760px; }
.pf-body { width: 100%; max-width: 190px; height: auto; margin: 0 auto; display: block; }
.pf-zone-row { display: grid; grid-template-columns: 110px 1fr 70px 52px; gap: 12px; align-items: center; padding: 7px 0; border-bottom: 1px solid rgba(36,54,92,.45); font-size: 13px; }
.pf-zone-row .pf-bar { width: 100%; }
.pf-zone-row strong { text-align: right; color: var(--text-primary); }
.pf-zone-row small { color: var(--text-muted); text-align: right; }
.pf-zone-total { margin-top: 12px; font-size: 12.5px; color: var(--text-secondary); }
.pf-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.pf-hours { display: flex; align-items: flex-end; gap: 5px; height: 130px; padding: 14px 0 0; }
.pf-hour { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.pf-hour i { display: block; width: 100%; background: linear-gradient(180deg, var(--link), #3b82f6); border-radius: 3px 3px 0 0; }
.pf-hour span { font-size: 10px; color: var(--text-muted); height: 14px; margin-top: 4px; }
@media (max-width: 800px) { .pf-cols { grid-template-columns: 1fr; gap: 18px; } .pf-zones { grid-template-columns: 1fr; } .pf-side { margin-left: 0; } .pf-zone-row { grid-template-columns: 90px 1fr 56px 46px; } }

/* ==== friends + reputation ==== */
.pf-rep.is-on { border-color: var(--link); color: var(--link); }
.pf-rep span { font-weight: 800; margin-left: 2px; }
.pf-rep-static { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); padding: 0 6px; }
.pf-is-friend { border-color: var(--status-online); color: var(--status-online); }
.pf-friends { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 24px; padding: 8px 0; }
.pf-friend { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(36,54,92,.5); color: var(--text-primary); text-decoration: none; }
.pf-friend:hover { color: var(--link); text-decoration: none; }
.pf-friend img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; background: #0a1228; }
.pf-friend-name { flex: 1; min-width: 0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fr-h { font-size: 14px; margin: 22px 0 6px; color: var(--text-heading); }
.fr-count { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 6px; border-radius: 10px; background: rgba(52,224,255,.14); color: var(--link); font-size: 11.5px; text-align: center; }
.fr-rows { border-top: 1px solid var(--border); }
.fr-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(36,54,92,.5); flex-wrap: wrap; }
.fr-row img { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; background: #0a1228; }
.fr-name { font-weight: 700; color: #8fc4ff; }
.fr-acts { margin-left: auto; display: flex; gap: 8px; }
.fr-btn { padding: 6px 14px; font-size: 12.5px; }
.menu-badge { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 6px; border-radius: 9px; background: var(--accent-from); color: var(--on-accent); font-size: 11px; font-weight: 800; text-align: center; line-height: 18px; }

/* ==== statistics page ==== */
.st-switch { display: inline-flex; gap: 2px; padding: 3px; margin-bottom: 18px; border: 1px solid var(--border-interactive); border-radius: 10px; }
.st-switch a { padding: 7px 18px; font-size: 13px; font-weight: 700; color: var(--text-secondary); border-radius: 7px; text-decoration: none; }
.st-switch a:hover { color: var(--text-primary); text-decoration: none; }
.st-switch a.on { background: var(--link); color: var(--on-accent); }
.st-heat-wrap { overflow-x: auto; padding: 6px 0 4px; }
.st-heat { display: grid; grid-template-columns: 34px repeat(24, minmax(22px, 1fr)); gap: 3px; min-width: 640px; }
.st-heat-h, .st-heat-d { font-size: 10.5px; color: var(--text-muted); display: flex; align-items: center; justify-content: center; }
.st-heat-d { justify-content: flex-start; font-weight: 700; }
.st-cell { aspect-ratio: 1.4 / 1; min-height: 20px; border-radius: 4px; background: rgba(52,224,255, calc(.06 + var(--a) * .86)); border: 1px solid rgba(52,224,255, calc(.08 + var(--a) * .3)); }
.st-legend { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-muted); margin-top: 10px; justify-content: flex-end; }
.st-legend i { width: 16px; height: 12px; border-radius: 3px; background: rgba(52,224,255,.1); }
.st-legend i:nth-child(2) { background: rgba(52,224,255,.28); } .st-legend i:nth-child(3) { background: rgba(52,224,255,.5); }
.st-legend i:nth-child(4) { background: rgba(52,224,255,.72); } .st-legend i:nth-child(5) { background: rgba(52,224,255,.92); }
.st-days { height: 150px; }
.st-countries { display: grid; gap: 4px; max-width: 720px; padding: 8px 0; }
.st-country { display: grid; grid-template-columns: 26px 1fr 190px 44px 40px; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid rgba(36,54,92,.45); font-size: 13.5px; }
.st-country .pf-bar { width: 100%; }
.st-country strong { text-align: right; } .st-country small { color: var(--text-muted); text-align: right; }
.st-cname { font-weight: 600; color: var(--text-primary); }
@media (max-width: 640px) { .st-country { grid-template-columns: 26px 1fr 90px 36px 34px; gap: 8px; } }


/* hero live badge: green = server online, red = offline/error */
.live-badge { border-color: rgba(61,220,132,.5); color: var(--status-online); }
.live-dot { background: var(--status-online); box-shadow: 0 0 8px var(--status-online); }
.live-badge.is-offline { border-color: rgba(255,107,107,.55); color: var(--status-offline); }
.live-badge.is-offline .live-dot { background: var(--status-offline); box-shadow: 0 0 8px var(--status-offline); animation: none; }

/* live dot: visible pulse ring while online (also with "reduce motion": gentle fade only) */
@keyframes live-ring { 0% { box-shadow: 0 0 0 0 rgba(61,220,132,.75), 0 0 8px rgba(61,220,132,.9); opacity: 1; }
  70% { box-shadow: 0 0 0 9px rgba(61,220,132,0), 0 0 8px rgba(61,220,132,.9); opacity: 1; }
  100% { box-shadow: 0 0 0 0 rgba(61,220,132,0), 0 0 8px rgba(61,220,132,.9); opacity: 1; } }
@keyframes live-fade { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
.live-badge .live-dot { animation: live-ring 1.6s ease-out infinite; }
.live-badge.is-offline .live-dot { animation: none; }
@media (prefers-reduced-motion: reduce) {
  .live-badge .live-dot { animation: live-fade 2.4s ease-in-out infinite; }
  .live-badge.is-offline .live-dot { animation: none; }
}

/* ───────── Login-Center / account area (acc-*) and login page (login-*) ───────── */
.acc-wrap { padding-top: 28px; padding-bottom: 60px; }
.acc-shell { display: grid; grid-template-columns: 264px minmax(0, 1fr); gap: 24px; align-items: start; }
.acc-ico { width: 18px; height: 18px; flex-shrink: 0; }

.acc-side { position: sticky; top: 84px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 14px; }
.acc-user { display: flex; align-items: center; gap: 12px; padding: 6px 6px 14px; border-bottom: 1px solid var(--border); margin-bottom: 10px; }
.acc-avatar { width: 48px; height: 48px; border-radius: 14px; object-fit: cover; border: 1px solid var(--border-interactive); background: var(--bg-alt); }
.acc-user-txt { min-width: 0; }
.acc-user-name { font-weight: 700; color: var(--text-heading); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-user-sub { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.acc-nav { display: flex; flex-direction: column; gap: 2px; }
.acc-nav a { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 11px; color: var(--text-secondary); font-weight: 600; font-size: 14px; text-decoration: none; }
.acc-nav a:hover { background: rgba(52, 224, 255, .08); color: var(--text-heading); text-decoration: none; }
.acc-nav a.is-active { background: linear-gradient(135deg, rgba(255,167,51,.18), rgba(255,138,0,.10)); color: #ffc477; box-shadow: inset 0 0 0 1px rgba(255,167,51,.35); }
.acc-nav a.is-active .acc-ico { color: var(--accent-from); }
.acc-nav a span { flex: 1; min-width: 0; }
.acc-nav .acc-logout { margin-top: 10px; border-top: 1px solid var(--border); border-radius: 0 0 11px 11px; padding-top: 14px; color: var(--text-muted); }
.acc-badge { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--status-offline); color: #fff; font: 800 11px/20px var(--font-family, inherit); font-style: normal; text-align: center; box-sizing: border-box; }
.acc-badge.is-mute { background: rgba(255,255,255,.12); color: var(--text-secondary); }

.acc-main { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.acc-card { background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 20px 22px; }
.acc-h2 { margin: 0 0 14px; font-size: 17px; color: var(--text-heading); display: flex; align-items: center; gap: 10px; }
.acc-h2 .acc-ico { color: var(--link); }
.acc-h3 { margin: 22px 0 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); display: flex; align-items: center; gap: 8px; }
.acc-hint { font-size: 12.5px; color: var(--text-muted); margin: 10px 0 14px; }
.acc-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.acc-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.acc-table-wrap { overflow-x: auto; }

.acc-hero { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding: 22px; border-radius: var(--radius-md); border: 1px solid var(--border-interactive);
  background: radial-gradient(120% 140% at 0% 0%, rgba(52,224,255,.10), transparent 55%), radial-gradient(90% 120% at 100% 100%, rgba(255,167,51,.12), transparent 55%), var(--bg-surface); }
.acc-hero-av { width: 84px; height: 84px; border-radius: 22px; object-fit: cover; border: 2px solid var(--border-interactive); background: var(--bg-alt); }
.acc-hero-main { flex: 1; min-width: 220px; }
.acc-hello { font-size: 22px; font-weight: 800; color: var(--text-heading); margin-bottom: 10px; line-height: 1.2; }
.acc-hero-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.acc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 99px; font-size: 12px; font-weight: 600; background: rgba(255,255,255,.07); color: var(--text-secondary); }
.acc-chip code { font-family: var(--font-family-mono); font-size: 11.5px; color: var(--text-primary); }
.acc-chip.is-accent { background: rgba(255,167,51,.16); color: #ffc477; }
.acc-chip.is-cyan { background: rgba(52,224,255,.13); color: var(--link); }
.acc-hero-cta { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.acc-hero-cta .btn { display: inline-flex; align-items: center; gap: 8px; }
.acc-status { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: var(--status-online); }
.acc-status i { width: 8px; height: 8px; border-radius: 50%; background: var(--status-online); box-shadow: 0 0 8px var(--status-online); }
.acc-status.off { color: var(--status-offline); } .acc-status.off i { background: var(--status-offline); box-shadow: none; }

.acc-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; }
.acc-kpi { background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 16px 14px; text-align: center; }
.acc-kpi .v { font-size: 24px; font-weight: 800; color: var(--text-heading); line-height: 1.1; font-variant-numeric: tabular-nums; }
.acc-kpi .v small, .acc-kpi .l small { font-size: .55em; font-weight: 600; color: var(--text-muted); }
.acc-kpi .l { margin-top: 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); }

.acc-bar { height: 10px; border-radius: 8px; background: rgba(255,255,255,.08); overflow: hidden; margin-top: 10px; }
.acc-bar.sm { height: 6px; margin-top: 14px; }
.acc-bar i { display: block; height: 100%; border-radius: 8px; background: linear-gradient(90deg, var(--accent-from), var(--accent-to)); }

.acc-todo, .acc-list { list-style: none; margin: 0; padding: 0; }
.acc-todo li a, .acc-list li a, .acc-static { display: flex; align-items: center; gap: 11px; padding: 11px 4px; color: var(--text-primary); text-decoration: none; border-bottom: 1px solid var(--border); }
.acc-todo li:last-child a, .acc-list li:last-child a, .acc-list li:last-child .acc-static { border-bottom: 0; }
.acc-todo li a:hover, .acc-list li a:hover { color: var(--link); text-decoration: none; }
.acc-todo li a span, .acc-list li a span, .acc-static span { flex: 1; }
.acc-todo .acc-ico { color: var(--text-muted); border: 1.5px solid var(--border-interactive); border-radius: 50%; padding: 3px; width: 22px; height: 22px; }
.acc-todo li.is-done .acc-ico { color: #06240f; background: var(--status-online); border-color: var(--status-online); }
.acc-todo li.is-done span { color: var(--text-muted); text-decoration: line-through; text-decoration-color: rgba(255,255,255,.25); }
.acc-todo em, .acc-list em { font-style: normal; font-weight: 700; font-size: 12.5px; color: var(--text-secondary); }
.acc-list em.hot { color: #fff; background: var(--status-offline); border-radius: 10px; padding: 1px 8px; }
.acc-list .acc-ico { color: var(--link); }

.acc-callout { border: 1px solid var(--border-interactive); background: rgba(255,255,255,.03); border-radius: var(--radius-md); padding: 16px 18px; }
.acc-callout strong { color: var(--text-heading); display: flex; align-items: center; gap: 8px; }
.acc-callout p { margin: 6px 0 0; color: var(--text-secondary); font-size: 13.5px; }
.acc-callout.is-cyan { border-color: rgba(52,224,255,.4); background: rgba(52,224,255,.06); }
.acc-callout.is-cyan .acc-ico { color: var(--link); }

.acc-flash { padding: 10px 14px; border-radius: 11px; font-size: 13.5px; margin-bottom: 4px; }
.acc-flash.is-ok { background: rgba(61,220,132,.12); border: 1px solid rgba(61,220,132,.45); color: var(--status-online); }
.acc-flash.is-err { background: rgba(255,107,107,.12); border: 1px solid rgba(255,107,107,.45); color: #ffb4b4; }

.acc-form { display: block; }
.acc-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.acc-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.acc-field.is-wide { grid-column: 1 / -1; }
.acc-field > span { font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.acc-input { width: 100%; box-sizing: border-box; background: rgba(6, 11, 22, .55); border: 1px solid var(--border); border-radius: 11px; padding: 10px 13px; color: var(--text-primary); font: inherit; font-size: 14px; transition: border-color .12s, box-shadow .12s; }
.acc-input.is-mono { font-family: var(--font-family-mono); font-size: 13px; }
.acc-input:focus { outline: none; border-color: var(--link); box-shadow: 0 0 0 3px rgba(52,224,255,.14); }
.acc-file { width: 100%; font-size: 13px; padding: 12px; border: 1px dashed var(--border-interactive); border-radius: 11px; background: rgba(255,255,255,.02); color: var(--text-secondary); box-sizing: border-box; }
.acc-cfg { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13.5px; margin-bottom: 10px; }
.acc-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-secondary); cursor: pointer; }
.acc-check.big { display: flex; align-items: flex-start; font-size: 14px; margin: 16px 0; }
.acc-check.big input { margin-top: 3px; }
.acc-danger { background: var(--status-offline) !important; border-color: var(--status-offline) !important; color: #fff !important; }
.acc-form .btn { margin-top: 6px; }
.acc-card .del-cols { margin-top: 4px; }

/* login page */
.login-wrap { padding-top: 30px; padding-bottom: 70px; }
.login-grid { display: grid; grid-template-columns: minmax(300px, 420px) minmax(0, 1fr); gap: 28px; align-items: start; }
.login-card { background: radial-gradient(120% 90% at 0% 0%, rgba(52,224,255,.10), transparent 60%), var(--bg-surface); border: 1px solid var(--border-interactive); border-radius: 18px; padding: 28px; position: sticky; top: 90px; }
.login-card h2 { margin: 0 0 8px; font-size: 22px; color: var(--text-heading); }
.login-card p { color: var(--text-secondary); margin: 0 0 20px; }
.login-btn { width: 100%; display: inline-flex; justify-content: center; align-items: center; gap: 10px; padding: 14px 18px; font-size: 15px; }
.login-trust { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.login-trust li { position: relative; padding-left: 26px; font-size: 13.5px; color: var(--text-secondary); }
.login-trust li::before { content: ''; position: absolute; left: 2px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--status-online) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306240f' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/10px no-repeat; }
.login-fine { font-size: 12px; color: var(--text-muted); margin: 18px 0 0 !important; }
.login-benefits h2 { margin: 4px 0 16px; font-size: 18px; color: var(--text-heading); }
.login-bgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; }
.login-b { display: flex; gap: 14px; padding: 16px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); }
.login-b .acc-ico { width: 24px; height: 24px; color: var(--link); margin-top: 2px; }
.login-b strong { display: block; color: var(--text-heading); margin-bottom: 3px; }
.login-b span { font-size: 13px; color: var(--text-secondary); }

@media (max-width: 900px) {
  .acc-shell, .login-grid { grid-template-columns: minmax(0, 1fr); }
  .acc-side { position: static; padding: 10px; }
  .acc-user { border-bottom: 0; margin-bottom: 4px; padding-bottom: 8px; }
  .acc-nav { flex-direction: row; overflow-x: auto; gap: 6px; padding-bottom: 4px; scrollbar-width: thin; }
  .acc-nav a { white-space: nowrap; flex-shrink: 0; padding: 9px 13px; }
  .acc-nav .acc-logout { margin-top: 0; border-top: 0; }
  .acc-fields { grid-template-columns: minmax(0, 1fr); }
  .acc-hero-cta { align-items: flex-start; width: 100%; }
  .login-card { position: static; }
}

.login-public { margin: 16px 2px 0; padding: 12px 16px; border-radius: 12px; border: 1px dashed var(--border-interactive); color: var(--text-secondary); font-size: 13px; background: rgba(255,255,255,.02); }

/* ───────── Forum (fo-*) ───────── */
.fo-wrap { padding-top: 26px; padding-bottom: 70px; }
.fo-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.fo-search { display: flex; gap: 10px; flex: 1; min-width: 240px; max-width: 520px; }
.fo-search input { flex: 1; min-width: 0; background: rgba(6,11,22,.55); border: 1px solid var(--border); border-radius: 11px; padding: 10px 14px; color: var(--text-primary); font: inherit; font-size: 14px; }
.fo-search input:focus { outline: none; border-color: var(--link); box-shadow: 0 0 0 3px rgba(52,224,255,.14); }
.fo-stats { display: flex; gap: 18px; font-size: 13px; color: var(--text-muted); }
.fo-stats strong { color: var(--text-heading); font-size: 16px; margin-right: 4px; }
.fo-note { border: 1px dashed var(--border-interactive); background: rgba(255,255,255,.03); border-radius: 12px; padding: 12px 16px; margin-bottom: 18px; color: var(--text-secondary); font-size: 14px; }
.fo-note-sm, .fo-hint { font-size: 12.5px; color: var(--text-muted); }
.fo-crumbs { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.fo-empty { padding: 36px 16px; text-align: center; color: var(--text-muted); }

.fo-cat { margin-bottom: 26px; }
.fo-cat-h { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 10px 4px; }
.fo-boards, .fo-threads { background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; }
.fo-board, .fo-thread { display: grid; grid-template-columns: 44px minmax(0, 1fr) 84px 84px minmax(0, 230px); gap: 14px; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.fo-thread { grid-template-columns: minmax(0, 1fr) 84px 84px minmax(0, 200px); }
.fo-board:last-child, .fo-thread:last-child { border-bottom: 0; }
.fo-board:hover, .fo-thread:hover { background: rgba(52,224,255,.04); }
.fo-thread.is-sticky { background: linear-gradient(90deg, rgba(255,167,51,.07), transparent 60%); }
.fo-board-ico { font-size: 22px; text-align: center; }
.fo-board-title { font-weight: 700; font-size: 16px; color: var(--text-heading); text-decoration: none; }
.fo-board-title:hover { color: var(--link); }
.fo-board-desc, .fo-thread-sub { font-size: 12.5px; color: var(--text-muted); margin-top: 3px; overflow-wrap: anywhere; }
.fo-thread-title a { font-weight: 700; color: var(--text-heading); text-decoration: none; overflow-wrap: anywhere; }
.fo-thread-title a:hover { color: var(--link); }
.fo-board-num { text-align: center; }
.fo-board-num strong { display: block; font-size: 16px; color: var(--text-heading); font-variant-numeric: tabular-nums; }
.fo-board-num span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--text-muted); }
.fo-board-last { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fo-last-title { font-size: 13px; font-weight: 600; color: var(--text-primary); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fo-last-title:hover { color: var(--link); }
.fo-last-meta { font-size: 11.5px; color: var(--text-muted); }
.fo-tag { display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; padding: 2px 8px; border-radius: 99px; margin-right: 6px; vertical-align: middle; }
.fo-tag-sticky { background: rgba(255,167,51,.16); color: #ffc477; }
.fo-tag-lock { background: rgba(255,255,255,.1); color: var(--text-secondary); }

.fo-mod { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.fo-btn-sm { padding: 6px 12px !important; font-size: 12.5px !important; }
.fo-select { background: rgba(6,11,22,.7); border: 1px solid var(--border); color: var(--text-primary); border-radius: 10px; padding: 7px 10px; font: inherit; font-size: 12.5px; }
.fo-danger { color: #ff8e8e !important; }
.fo-danger:hover { border-color: var(--status-offline) !important; }

.fo-posts { display: flex; flex-direction: column; gap: 14px; }
.fo-post { display: grid; grid-template-columns: 150px minmax(0, 1fr); background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; scroll-margin-top: 90px; }
.fo-post:target { border-color: var(--link); box-shadow: 0 0 0 3px rgba(52,224,255,.12); }
.fo-author { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 18px 12px; background: rgba(255,255,255,.025); border-right: 1px solid var(--border); text-align: center; }
.fo-author img { width: 64px; height: 64px; border-radius: 16px; object-fit: cover; background: var(--bg-alt); border: 1px solid var(--border-interactive); }
.fo-author-name { font-weight: 700; color: var(--text-heading); text-decoration: none; overflow-wrap: anywhere; font-size: 14px; }
a.fo-author-name:hover { color: var(--link); }
.fo-author-sub { font-size: 11px; color: var(--text-muted); }
.fo-chip { font-size: 10px; font-weight: 800; letter-spacing: .08em; padding: 2px 8px; border-radius: 99px; }
.fo-chip-admin { background: rgba(255,167,51,.18); color: #ffc477; }
.fo-chip-mod { background: rgba(52,224,255,.15); color: var(--link); }
.fo-post-main { padding: 14px 20px 12px; min-width: 0; display: flex; flex-direction: column; }
.fo-post-head { display: flex; gap: 12px; align-items: center; font-size: 12px; color: var(--text-muted); margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.fo-post-time { color: var(--text-muted); text-decoration: none; }
.fo-post-time:hover { color: var(--link); }
.fo-postno { margin-left: auto; font-variant-numeric: tabular-nums; }
.fo-edited { font-style: italic; }
.fo-body { color: var(--text-primary); line-height: 1.65; overflow-wrap: anywhere; flex: 1; }
.fo-body a { color: var(--link); }
.fo-quote { margin: 10px 0; padding: 10px 14px; border-left: 3px solid var(--border-interactive); background: rgba(255,255,255,.04); border-radius: 0 10px 10px 0; color: var(--text-secondary); font-size: 14px; }
.fo-quote cite { display: block; font-style: normal; font-weight: 700; font-size: 12px; color: var(--text-muted); margin-bottom: 4px; }
.fo-code { margin: 10px 0; padding: 12px 14px; background: rgba(0,0,0,.4); border: 1px solid var(--border); border-radius: 10px; overflow-x: auto; font-family: var(--font-family-mono); font-size: 12.5px; line-height: 1.5; }
.fo-post-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border); }
.fo-act { background: transparent; border: 1px solid transparent; border-radius: 9px; padding: 5px 11px; font: 600 12.5px inherit; font-family: inherit; color: var(--text-muted); cursor: pointer; text-decoration: none; }
.fo-act:hover:not(:disabled) { background: rgba(255,255,255,.06); color: var(--text-heading); border-color: var(--border); }
.fo-act.is-on { color: #ffc477; background: rgba(255,167,51,.12); }
.fo-act:disabled { opacity: .45; cursor: not-allowed; }

.fo-reply { margin-top: 22px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 20px 22px; }
.fo-reply h2 { margin: 0 0 12px; font-size: 17px; color: var(--text-heading); }
.fo-compose { max-width: 860px; }
.fo-label { display: block; font-size: 12px; font-weight: 600; color: var(--text-secondary); margin: 14px 0 6px; }
.fo-reply textarea { width: 100%; box-sizing: border-box; background: rgba(6,11,22,.55); border: 1px solid var(--border); border-radius: 0 0 11px 11px; padding: 12px 14px; color: var(--text-primary); font: inherit; font-size: 14px; line-height: 1.55; resize: vertical; min-height: 140px; }
.fo-reply textarea:focus { outline: none; border-color: var(--link); box-shadow: 0 0 0 3px rgba(52,224,255,.14); }
.fo-toolbar { display: flex; gap: 4px; padding: 6px; background: rgba(255,255,255,.05); border: 1px solid var(--border); border-bottom: 0; border-radius: 11px 11px 0 0; }
.fo-toolbar button { min-width: 34px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: var(--text-secondary); cursor: pointer; font: inherit; }
.fo-toolbar button:hover { background: rgba(255,255,255,.1); color: var(--text-heading); }
.fo-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 12px; }
.fo-form-foot .btn { margin-left: 8px; }

@media (max-width: 860px) {
  .fo-board { grid-template-columns: 34px minmax(0, 1fr); }
  .fo-board .fo-board-num, .fo-thread .fo-board-num { display: none; }
  .fo-board-last { grid-column: 2; }
  .fo-thread { grid-template-columns: minmax(0, 1fr); }
  .fo-post { grid-template-columns: minmax(0, 1fr); }
  .fo-author { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; text-align: left; border-right: 0; border-bottom: 1px solid var(--border); padding: 12px 16px; }
  .fo-author img { width: 40px; height: 40px; border-radius: 12px; }
}

/* forum: who is online */
.fo-online { margin-top: 26px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 18px 22px; }
.fo-online h2 { margin: 0 0 6px; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.fo-online-sum { margin: 0 0 12px; color: var(--text-secondary); font-size: 14px; }
.fo-online-list { display: flex; flex-wrap: wrap; gap: 8px; }
.fo-online-user { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 99px; background: rgba(61,220,132,.10); border: 1px solid rgba(61,220,132,.30); color: var(--text-heading); font-size: 13px; font-weight: 600; text-decoration: none; }
a.fo-online-user:hover { border-color: var(--status-online); color: #fff; }
.fo-online-srv { margin: 14px 0 0; }

/* homepage: closing banner flush with footer (no gap) */
main#main:has(> .banner-section:last-child) { padding-bottom: 0; }
main#main > .banner-section:last-child { border-bottom: 0; }

/* ---------- section bar (Server | Players | Maps | Community) ---------- */
.sec-nav { position: relative; z-index: 2; background: rgba(10,20,40,.72); border-bottom: 1px solid var(--border); margin: -32px 0 0; }
.sec-nav-in { max-width: 1200px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; gap: 6px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.sec-nav-in::-webkit-scrollbar { display: none; }
.sec-nav-title { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); font-weight: 700; margin-right: 12px; padding: 12px 0; }
.sec-nav a { padding: 12px 14px; font-size: 13.5px; font-weight: 600; color: var(--text-secondary); border-bottom: 2px solid transparent; text-decoration: none; }
.sec-nav a:hover { color: var(--text-primary); }
.sec-nav a.on { color: var(--link); border-bottom-color: var(--link); }
.chip.is-locked { opacity: .65; }
.pf-lock { text-align: center; }
.pf-lock-in { padding: 34px 20px; max-width: 520px; margin: 0 auto; }
.pf-lock-ico { font-size: 34px; margin-bottom: 8px; }
.pf-lock h2 { margin: 0 0 8px; font-size: 20px; color: var(--text-heading); }
.pf-lock p { color: var(--text-secondary); margin: 0 0 18px; font-size: 14px; }
.gst-note { margin: 14px 0 0; padding: 12px 16px; border: 1px dashed var(--border); border-radius: var(--radius-md); color: var(--text-secondary); font-size: 13.5px; }
/* ---------- map round balance (CT / T) ---------- */
.mp-split { margin-top: 10px; }
.mp-bar { height: 8px; border-radius: 99px; background: #f59e0b; overflow: hidden; }
.mp-bar i { display: block; height: 100%; background: #60a5fa; }
.mp-lbl { display: flex; justify-content: space-between; gap: 8px; margin-top: 6px; font-size: 12px; font-weight: 700; }
.mp-ct { color: #60a5fa; } .mp-t { color: #f59e0b; } .mp-n { color: var(--text-muted); font-weight: 600; }
.mp-split.is-compact { margin-top: 8px; }
.mp-split.is-compact .mp-bar { height: 6px; }
.mp-split.is-compact .mp-lbl { font-size: 11px; }
td.mp-cell { min-width: 190px; }
/* ---------- header: account button + sign out (replaces the old dropdown) ---------- */
.acct-btns { display: inline-flex; align-items: center; gap: 8px; }
.btn-acct, .btn-signout { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 10px; font-size: 13px; font-weight: 700; text-decoration: none; border: 1px solid var(--border); color: var(--text-secondary); background: rgba(255,255,255,.02); transition: border-color .15s, color .15s; }
.btn-acct { color: var(--link); border-color: rgba(34,211,238,.45); }
.btn-acct:hover, .btn-acct.is-current { border-color: var(--link); background: rgba(34,211,238,.08); text-decoration: none; }
.btn-signout:hover { color: var(--text-primary); border-color: var(--text-muted); text-decoration: none; }
@media (max-width: 980px) { .btn-signout span { display: none; } .btn-signout { padding: 0 10px; } }
@media (max-width: 760px) { .acct-btns { display: none; } }
/* ---------- 3D weapon viewer + hit-zone body ---------- */
.wv { display: grid; grid-template-columns: 1.5fr 1fr; gap: 0; overflow: hidden; margin-bottom: 18px; }
.wv[hidden] { display: none; }
.wv-stage { min-height: 320px; height: 340px; background: radial-gradient(ellipse at 50% 55%, rgba(59,130,246,.22), transparent 62%), linear-gradient(180deg, #0b1630, #070d1c); position: relative; }
.wv-stage canvas { display: block; }
.wv-info { padding: 24px 26px; display: flex; flex-direction: column; justify-content: center; gap: 16px; border-left: 1px solid var(--border); }
.wv-info h3 { margin: 0; font-size: 24px; color: var(--text-heading); }
.wv-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.wv-stats div { background: rgba(255,255,255,.03); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; }
.wv-stats strong { display: block; font-size: 20px; color: var(--accent); }
.wv-stats span { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.wv-hint { margin: 0; font-size: 12.5px; color: var(--text-muted); }
tr.wv-row { cursor: pointer; }
tr.wv-row:hover td { background: rgba(255,255,255,.03); }
tr.wv-row.is-sel td { background: rgba(255,167,51,.10); }
@media (max-width: 760px) { .wv { grid-template-columns: 1fr; } .wv-info { border-left: 0; border-top: 1px solid var(--border); } .wv-stage { height: 260px; min-height: 260px; } }
.pf-body3d { position: relative; min-width: 260px; }
.pf-body3d-stage { height: 440px; width: 100%; border-radius: 14px; background: radial-gradient(ellipse at 50% 60%, rgba(59,130,246,.18), transparent 65%), linear-gradient(180deg, #0b1630, #070d1c); border: 1px solid var(--border); }
.pf-body3d-stage canvas { display: block; }
.pf-body3d-legend { display: flex; align-items: center; gap: 10px; justify-content: center; margin-top: 10px; font-size: 12px; color: var(--text-muted); }
.pf-body3d-legend i { width: 120px; height: 8px; border-radius: 99px; background: linear-gradient(90deg, hsl(118,90%,50%), hsl(60,90%,50%), hsl(0,90%,50%)); }
.pf-body-fallback[hidden] { display: none; }
.pf-body3d:has(.pf-body-fallback:not([hidden])) .pf-body3d-stage, .pf-body3d:has(.pf-body-fallback:not([hidden])) .pf-body3d-legend { display: none; }
/* weapon icons in tables (rendered from the game's own models) */
.wp-cell { white-space: nowrap; }
.wp-ico { width: 132px; height: 52px; object-fit: contain; object-position: center; vertical-align: middle; margin-right: 16px; }
@media (max-width: 640px) { .wp-ico { width: 84px; height: 34px; margin-right: 8px; } }

/* hit zones: 2D first, optional 3D, nothing overlaps the list */
.pf-zones { grid-template-columns: minmax(230px, 300px) minmax(0, 1fr); max-width: 900px; align-items: start; }
.pf-bodybox { min-width: 0; position: relative; overflow: hidden; border-radius: 14px; }
.pf-vtoggle { display: inline-flex; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; margin-bottom: 12px; }
.pf-vtoggle button { background: transparent; color: var(--text-secondary); border: 0; padding: 7px 18px; font-weight: 700; font-size: 13px; cursor: pointer; }
.pf-vtoggle button[hidden] { display: none; }
.pf-vtoggle button.is-on { background: rgba(34,211,238,.14); color: var(--link); }
.pf-view[hidden] { display: none; }
#pfView2d { padding: 8px 0; }
.pf-body-pct { font-size: 11px; font-weight: 700; fill: #fff; paint-order: stroke; stroke: rgba(0,0,0,.55); stroke-width: 2px; pointer-events: none; }
.pf-body3d-stage { position: relative; width: 100%; height: 400px; overflow: hidden; }
.pf-body3d-stage canvas { position: absolute; inset: 0; }
.pf-body3d-legend { margin-top: 12px; }
@media (max-width: 800px) { .pf-zones { grid-template-columns: 1fr; } .pf-body3d-stage { height: 340px; } }
/* 2D hit zones on the real CS model picture */
.pf-bodyimg { position: relative; width: 100%; max-width: 420px; margin: 0 auto; border-radius: 14px; background: radial-gradient(ellipse at 50% 55%, rgba(59,130,246,.18), transparent 65%), linear-gradient(180deg, #0b1630, #070d1c); border: 1px solid var(--border); overflow: hidden; }
.pf-bodyimg img { display: block; width: 100%; height: auto; }
.pf-bodyimg-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pf-bodyimg-svg polygon { stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.pf-badge-g text { fill: #fff; font-size: 20px; font-weight: 800; }
.pf-zones { grid-template-columns: minmax(260px, 420px) minmax(0, 1fr); max-width: 1000px; }

/* hit zones build up: outline is drawn, fill fades in, badge pops and counts up */
.pf-bodyimg-svg polygon { vector-effect: none; stroke-width: 5px; }
.pf-bodyimg.pf-anim polygon { stroke-dasharray: 1; stroke-dashoffset: 1; fill-opacity: 0; animation: pf-draw 1.1s ease-out var(--d) forwards, pf-fillin .7s ease-out calc(var(--d) + .9s) forwards; }
.pf-bodyimg.pf-anim .pf-pop { animation: pf-pop .5s cubic-bezier(.2, 1.5, .4, 1) var(--d) both; }
.pf-pop { transform-box: fill-box; transform-origin: center; }
@keyframes pf-draw { to { stroke-dashoffset: 0; } }
@keyframes pf-fillin { to { fill-opacity: 1; } }
@keyframes pf-pop { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pf-bodyimg.pf-anim polygon { animation: none; stroke-dashoffset: 0; fill-opacity: 1; } .pf-bodyimg.pf-anim .pf-pop { animation: none; } }

/* callout version: leader lines + circles outside the figure */
.pf-bodyimg { max-width: 560px; }
.pf-zones { grid-template-columns: minmax(280px, 560px) minmax(0, 1fr); max-width: 1100px; }
.pf-bodyimg-svg .pf-line { fill: none; stroke-width: 4; stroke-linecap: round; }
.pf-bodyimg.pf-anim .pf-line { stroke-dasharray: 1; stroke-dashoffset: 1; animation: pf-draw .55s ease-out var(--d) forwards; }
.pf-bodyimg.pf-anim .pf-line[stroke-dasharray="6 8"] { animation: none; stroke-dasharray: 6 8; stroke-dashoffset: 0; opacity: 0; animation: pf-fadein .4s ease-out var(--d) forwards; }
@keyframes pf-fadein { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pf-bodyimg.pf-anim .pf-line { animation: none; stroke-dashoffset: 0; } }

.pf-bodyimg-svg text { fill: #fff; font-weight: 800; paint-order: stroke; stroke: rgba(0,0,0,.35); stroke-width: 2px; }

/* bomb & objectives */
.bomb-wrap { display: flex; align-items: center; gap: 26px; padding: 18px 20px 6px; flex-wrap: wrap; }
.bomb-ico { width: 120px; height: 90px; object-fit: contain; }
.bomb-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; flex: 1; min-width: 260px; }
.bomb-kpi { background: rgba(255,255,255,.03); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
.bomb-kpi strong { display: block; font-size: 22px; color: var(--accent); }
.bomb-kpi span { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.bomb-tops { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 14px 20px 20px; }
.bomb-tops h3 { margin: 0 0 8px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.bomb-top { list-style: none; margin: 0; padding: 0; }
.bomb-top li { display: grid; grid-template-columns: 26px 1fr auto; gap: 8px; align-items: center; padding: 7px 0; border-bottom: 1px solid rgba(36,54,92,.45); font-size: 14px; }
.bomb-rank { color: var(--text-muted); font-weight: 700; }
@media (max-width: 640px) { .bomb-tops { grid-template-columns: 1fr; } .bomb-ico { width: 90px; height: 66px; } }

/* =====================================================================
   Consistency layer: ONE scale for type, buttons, inputs and tables
   (keeps pages from looking like different kits)
   ===================================================================== */
:root {
    --fs-label: 11px; --fs-small: 12.5px; --fs-body: 14px; --fs-lead: 15px; --fs-h3: 15px; --fs-h2: 17px; --fs-sec: 26px; --fs-h1: 30px;
    --h-btn: 40px; --h-btn-sm: 34px; --h-btn-head: 38px; --h-inp: 40px; --rad-ctl: 10px;
}
/* headings */
.page-header h1, .srv-info h1, main h1:not(.mvp-name) { font-size: var(--fs-h1); line-height: 1.15; }
.home-hero h1 { font-size: 44px; }
.ranking-grid h2, .banner-section h2, .section-head h2, .home-section h2 { font-size: var(--fs-sec); line-height: 1.2; }
.panel-head h2, .fo-cat-h, .pf-lock h2 { font-size: var(--fs-h2); letter-spacing: 0; text-transform: none; }
main h3, .map-card-body h3, .wv-info h3, .bomb-tops h3 { font-size: var(--fs-h3); }
.bomb-tops h3 { font-size: var(--fs-label); }
/* body text */
.page-header p, .banner-section p.lead, .home-hero p { font-size: var(--fs-lead); line-height: 1.55; }
.panel-head p, .map-card-body p, .fo-board-desc, .fo-thread-sub { font-size: 13px; }
.stat-lbl, .eyebrow, table.data th, .pf-table th { font-size: var(--fs-label); }
.muted, small { font-size: var(--fs-small); }
/* buttons */
.btn { height: var(--h-btn); padding: 0 20px; font-size: var(--fs-body); border-radius: var(--rad-ctl); line-height: 1; white-space: nowrap; justify-content: center; }
.btn.btn-lg, .btn-lg { height: var(--h-btn); padding: 0 20px; font-size: var(--fs-body); }
.chip, button.chip, .fo-btn-sm { height: var(--h-btn-sm); padding: 0 16px !important; font-size: 13px !important; display: inline-flex; align-items: center; line-height: 1; }
.header-actions .btn-steam, .btn-acct, .btn-signout { height: var(--h-btn-head); padding: 0 16px; font-size: 13px; border-radius: var(--rad-ctl); }
@media (max-width: 760px) { .header-actions .btn-steam { padding: 0 12px; font-size: 12.5px; } }
/* inputs */
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file]), select { height: var(--h-inp); font-size: var(--fs-body); border-radius: var(--rad-ctl); }
textarea { font-size: var(--fs-body); border-radius: var(--rad-ctl); }
/* tables */
table.data, .pf-table { font-size: var(--fs-body); }
table.data td, .pf-table td, .leaderboard-table td { font-size: var(--fs-body) !important; padding-top: 12px; padding-bottom: 12px; }
table.data th, .pf-table th, .leaderboard-table th { font-size: var(--fs-label) !important; letter-spacing: .08em; padding-top: 12px; padding-bottom: 12px; }
table.data td small, table.data td .muted { font-size: var(--fs-small) !important; }
/* consistency layer, part 2: win against older, more specific rules and inline sizes */
main h2:not(.sr-only) { font-size: var(--fs-h2) !important; }
main .flow-head .eyebrow + h2, main .banner-inner > h2, main .ranking-grid h2 { font-size: var(--fs-sec) !important; line-height: 1.2; }
main h3 { font-size: var(--fs-h3) !important; }
.stat-lbl { font-size: var(--fs-label) !important; }
main th { font-size: var(--fs-label) !important; }
main td { font-size: var(--fs-body) !important; }
.btn { height: var(--h-btn) !important; padding: 0 20px !important; font-size: var(--fs-body) !important; }
td .btn, table .btn, .btn.btn-sm { height: var(--h-btn-sm) !important; padding: 0 14px !important; font-size: 13px !important; }
.header-actions .btn-steam { height: var(--h-btn-head) !important; padding: 0 16px !important; font-size: 13px !important; }
.btn svg, .btn img { flex: none; }
.map-search { max-width: 360px; margin: 0 0 22px; }
.map-card[hidden] { display: none !important; }

.st-show { align-self: center; margin: 0 4px 0 12px; font-size: 12.5px; color: var(--text-muted); }
td.col-dmg, th.col-dmg { white-space: nowrap; }

/* forum: cheating reports + profile */
.fo-report { margin: 0 0 18px; padding: 18px 20px; background: var(--bg-surface); border: 1px solid var(--border); border-left: 3px solid var(--status-offline); border-radius: var(--radius-md); }
.fo-report-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px 22px; }
.fo-report-grid span { display: block; font-size: var(--fs-label); letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px; }
.fo-report-grid strong { font-size: 14px; color: var(--text-heading); word-break: break-word; }
.fo-report-staff { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.fo-report-staff .is-on { background: var(--link); color: var(--on-accent); border-color: var(--link); }
.fo-st { display: inline-block; padding: 2px 10px; border-radius: 99px; font-size: 12px; font-weight: 700; border: 1px solid currentColor; vertical-align: middle; }
.fo-st-open { color: #f59e0b; } .fo-st-review { color: var(--link); } .fo-st-confirmed { color: var(--status-offline); } .fo-st-rejected { color: var(--text-muted); }
.fo-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 640px) { .fo-row2 { grid-template-columns: 1fr; } }
.fo-compose select.acc-input { height: var(--h-inp); }
.fo-prof { display: grid; grid-template-columns: auto 1fr; gap: 20px 24px; align-items: center; padding: 22px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius-md); }
.fo-prof-ava { width: 96px; height: 96px; border-radius: 16px; object-fit: cover; }
.fo-prof-name { font-size: 22px; font-weight: 700; color: var(--text-heading); margin-bottom: 10px; }
.fo-prof-links { display: flex; gap: 10px; flex-wrap: wrap; }
.fo-prof-stats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; }
.fo-prof-stats div { background: rgba(255,255,255,.03); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
.fo-prof-stats strong { display: block; font-size: 20px; color: var(--accent); }
.fo-prof-stats span { font-size: var(--fs-label); letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.fo-prof-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 22px; }
@media (max-width: 800px) { .fo-prof-cols { grid-template-columns: 1fr; } }
.fo-plist { display: block; padding: 11px 0; border-bottom: 1px solid rgba(36,54,92,.45); text-decoration: none; color: var(--text-primary); }
.fo-plist span { display: block; font-size: 14px; }
.fo-plist small { display: block; margin-top: 3px; font-size: var(--fs-small); color: var(--text-muted); }
.fo-plist:hover span { color: var(--link); }

.status-dot.status-site { color: var(--link); }
.status-dot.status-site::before { background: var(--link); box-shadow: 0 0 6px var(--link); }

/* forum: unread markers, who-is-online with avatars */
.fo-new { display: inline-block; min-width: 20px; padding: 1px 8px; margin-right: 6px; border-radius: 99px; background: var(--accent-from); color: var(--on-accent); font-size: 11px; font-weight: 800; text-align: center; vertical-align: middle; }
.fo-thread.is-unread .fo-thread-title a { font-weight: 800; color: var(--text-heading); }
.fo-board-title + .fo-new { margin-left: 8px; }
.fo-online-user { padding: 4px 12px 4px 4px; gap: 8px; }
.fo-online-user img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; flex: none; }

/* notification bell */
.notif-wrap { position: relative; display: inline-flex; align-items: center; }
.notif-bell { position: relative; display: inline-flex; align-items: center; justify-content: center; width: var(--h-btn-head); height: var(--h-btn-head); border-radius: var(--rad-ctl); border: 1px solid var(--border); background: rgba(255,255,255,.02); color: var(--text-secondary); cursor: pointer; transition: border-color .15s, color .15s; }
.notif-bell:hover, .notif-bell[aria-expanded="true"] { color: var(--text-primary); border-color: var(--link); }
.notif-bell.has-new { color: var(--accent-from); border-color: rgba(255,167,51,.55); }
.notif-badge { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--accent-from); color: var(--on-accent); font-size: 11px; font-weight: 800; line-height: 18px; text-align: center; box-shadow: 0 0 0 2px var(--bg-base, #060b16); }
.notif-panel { position: absolute; right: 0; top: calc(100% + 10px); width: 360px; max-width: calc(100vw - 24px); background: #0e1730; border: 1px solid var(--border-interactive); border-radius: 14px; box-shadow: 0 18px 50px rgba(0,0,0,.55); z-index: 80; overflow: hidden; }
.notif-panel[hidden] { display: none; }
.notif-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--border); font-size: 14px; color: var(--text-heading); }
.notif-link { background: none; border: 0; color: var(--link); font-size: 12.5px; font-weight: 700; cursor: pointer; padding: 0; }
.notif-list { max-height: 380px; overflow-y: auto; }
.notif-item { display: block; padding: 12px 16px; border-bottom: 1px solid rgba(36,54,92,.45); text-decoration: none; color: var(--text-secondary); }
.notif-item:hover { background: rgba(52,224,255,.06); text-decoration: none; }
.notif-item.is-unread { background: rgba(255,167,51,.07); color: var(--text-primary); border-left: 3px solid var(--accent-from); padding-left: 13px; }
.notif-text { display: block; font-size: 13.5px; line-height: 1.4; }
.notif-item small { display: block; margin-top: 3px; font-size: 12px; color: var(--text-muted); }
.notif-empty { padding: 26px 16px; text-align: center; color: var(--text-muted); font-size: 13.5px; }
.fo-mute.is-off { opacity: .75; }
@media (max-width: 760px) { .notif-panel { position: fixed; left: 12px; right: 12px; top: 64px; width: auto; max-width: none; } }

/* footer: trademark notice + credits */
.footer-legal { padding-top: 6px; padding-bottom: 6px; border-top: 1px solid var(--border); margin-top: 14px; }
.footer-legal p { margin: 10px 0 0; font-size: 12px; line-height: 1.55; color: var(--text-muted); max-width: 980px; }
.footer-legal a { color: var(--text-secondary); }

/* ONE button height everywhere (buttons, filter chips, header controls, bell, inputs) */
:root { --h-btn: 38px; --h-btn-sm: 38px; --h-btn-head: 38px; --h-inp: 38px; }
.btn, .chip, button.chip, .fo-btn-sm, td .btn, table .btn, .btn.btn-sm, .btn-acct, .btn-signout, .header-actions .btn-steam { font-size: var(--fs-body) !important; }
.btn, td .btn, table .btn, .btn.btn-sm, .header-actions .btn-steam { padding: 0 18px !important; }
.chip, button.chip, .fo-btn-sm { padding: 0 18px !important; }
.btn-acct, .btn-signout { padding: 0 16px; }
.nav-lock { margin-left: 5px; opacity: .65; vertical-align: -1px; }
.login-need { margin: 0 0 20px; padding: 14px 18px; border: 1px solid rgba(255,167,51,.45); background: rgba(255,167,51,.08); border-radius: var(--radius-md); color: var(--text-primary); font-size: 14px; }

/* sortable tables */
th.ts { cursor: pointer; user-select: none; white-space: nowrap; }
th.ts:hover { color: var(--text-primary); }
th.ts .sort-ind { margin-left: 6px; font-size: 10px; opacity: .45; }
th.ts.is-sorted { color: var(--link); }
th.ts.is-sorted .sort-ind { opacity: 1; }
.demo-there { color: var(--status-online); font-weight: 700; white-space: nowrap; }

/* SEO topic pages: footer links, home teasers, landing body */
.footer-topics ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 20px;padding:0;margin:0 0 14px}
.footer-topics a{opacity:.85}
.footer-topics a:hover{opacity:1}
.topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:16px}
.topic-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:12px;text-decoration:none;color:inherit;background:rgba(255,255,255,.03);transition:border-color .15s,background .15s}
.topic-card:hover{border-color:rgba(120,170,255,.5);background:rgba(255,255,255,.06)}
.topic-card span{opacity:.75;font-size:14px;line-height:1.45}
.landing-body h2{margin:30px 0 10px}
.landing-body ul,.landing-body ol{padding-left:22px;line-height:1.7}
.landing-body p{line-height:1.7}
.landing-body code{padding:2px 6px;border-radius:6px;background:rgba(255,255,255,.08)}

/* Teams */
.team-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 24px;margin:0 0 22px}
.team-facts dt{font-size:12px;opacity:.65;text-transform:uppercase;letter-spacing:.04em}
.team-facts dd{margin:3px 0 0;font-weight:600;word-break:break-word}
.team-facts div{padding:12px 14px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.03)}
.team-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.team-stats .stat-card{padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.03)}
.team-stats .stat-card strong{display:block;font-size:22px;margin-top:4px}
.tm-help{font-size:12.5px;margin-top:6px;line-height:1.5}
.tm-err{color:var(--status-offline,#ff6b6b);font-size:13px;margin-top:6px}
