:root{
  --site-shell-max:1920px;
  --site-shell-width:75%;
  /* Semantic typography shared by all game modules. Themes keep their own
     fonts and colours while the visual hierarchy stays consistent. */
  --game-type-kicker:clamp(11px,.7vw,12px);
  --game-type-page-title:clamp(38px,3.1vw,52px);
  --game-type-lede:clamp(15px,1vw,17px);
  --game-type-section-title:clamp(28px,2.1vw,36px);
  --game-type-card-title:clamp(22px,1.65vw,30px);
  --game-type-body:clamp(14px,.9vw,16px);
  --game-type-meta:clamp(12px,.75vw,13px);
  --game-type-data:clamp(13px,.85vw,15px);
}

.game-type-kicker{font-size:var(--game-type-kicker)!important;line-height:1.25}
.game-type-page-title{font-size:var(--game-type-page-title)!important;line-height:1!important}
.game-type-lede{font-size:var(--game-type-lede)!important;line-height:1.5}
.game-type-section-title{font-size:var(--game-type-section-title)!important;line-height:1.08}
.game-type-card-title{font-size:var(--game-type-card-title)!important;line-height:1.08}
.game-type-body{font-size:var(--game-type-body)!important;line-height:1.5}
.game-type-meta{font-size:var(--game-type-meta)!important;line-height:1.35}
.game-type-data{font-size:var(--game-type-data)!important;line-height:1.35}

/* Existing shared game templates inherit the same roles without replacing
   their historical colours, display fonts or decorative treatment. */
.game-shell :is(.gmw-tool-head>span,.section-head>div>span,.visual-kicker,.cs-hub-eyebrow,.hub-resource-title){font-size:var(--game-type-kicker)!important;line-height:1.25}
.game-shell :is(.gmw-tool-head h1,#game-hub-title){font-size:var(--game-type-page-title)!important;line-height:1!important}
.game-shell :is(.gmw-tool-head>p,.cs-hub-identity>p){font-size:var(--game-type-lede)!important;line-height:1.5}
.game-shell :is(.section-head h2,.group-title h2){font-size:var(--game-type-section-title)!important;line-height:1.08}
.game-shell .visual-card h2{font-size:var(--game-type-card-title)!important;line-height:1.08}
.game-shell :is(.visual-card p,.hub-now-copy em){font-size:var(--game-type-meta)!important;line-height:1.35}
.game-shell :is(.data-panel td,.data-panel th){font-size:var(--game-type-data)!important;line-height:1.35}

/* Header and every module share the same vertical guide. */
.topbar{
  box-sizing:border-box;
  width:min(var(--site-shell-max),var(--site-shell-width))!important;
  max-width:var(--site-shell-max)!important;
  margin-right:auto!important;
  margin-left:auto!important;
}

@media(min-width:1001px){
  .topbar{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    padding-right:18px!important;
    padding-left:18px!important;
  }
  .topbar .brand{flex:0 0 184px!important;margin:0!important}
  .topbar .topnav{display:flex!important;min-width:0;flex:1 1 auto!important;margin:0!important;gap:0!important}
  .topbar .topnav>a,.topbar .topnav-dd-trigger{padding-right:10px!important;padding-left:10px!important}
  .topbar .player-search{width:180px!important;min-width:130px!important;max-width:180px!important;flex:0 1 180px!important;margin:0!important}
  .topbar .lang-switch{flex:0 0 auto!important;margin:0!important}
  .topbar .nav-toggle{display:none!important}
}

/* One content grid for every public module and the administration area. */
:is(.site-shell,.site-home-content,.game-shell,.stats-main,.stats-page,.content-page,.legal-page,.hof-page,.acc-main,.admin-main,.ts-shell,.ts3e-shell,.community-page,.tournament-hub){
  box-sizing:border-box;
  width:min(var(--site-shell-max),var(--site-shell-width))!important;
  max-width:var(--site-shell-max)!important;
  margin-right:auto!important;
  margin-left:auto!important;
}

/* A module owns no private horizontal canvas. Art, navigation, panels and
   tables all start and end on the same pair of guides. */
:is(.module-shell,.stats-main,.content-page){
  padding-right:0!important;
  padding-left:0!important;
}

:is(.module-shell,.stats-main,.content-page)>*{
  box-sizing:border-box;
  width:100%;
  max-width:none;
  margin-right:0;
  margin-left:0;
}

body[data-home="1"] .module-shell>*{
  width:100%!important;
  max-width:none!important;
}

/* Consent uses the same right guide as the shared 75% shell and stays compact. */
.privacy-banner{
  right:auto!important;
  left:50%!important;
  bottom:16px!important;
  transform:translateX(-50%);
  grid-template-columns:minmax(0,1fr) auto!important;
  width:min(980px,calc(100% - 32px))!important;
  padding:13px 16px!important;
  gap:18px!important;
}
.privacy-banner>div{min-width:0;align-self:center}
.privacy-banner strong{display:inline;margin-right:8px}
.privacy-banner p{display:inline;margin:0!important;font-size:13px;line-height:1.35!important}
.privacy-banner a{margin-left:9px;white-space:nowrap}
.privacy-banner form{display:flex!important;flex-wrap:nowrap;align-items:center!important;gap:8px!important}
.privacy-banner button{min-width:170px;white-space:nowrap}
.admin-legal-body{min-height:360px!important;font-family:var(--mono);line-height:1.5}
.admin-legal-link{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:13px;border:1px solid var(--line);background:#090706}.admin-legal-link span{color:#e45b37;font:800 9px var(--mono)}.admin-legal-link strong{color:#eadbc7}.admin-legal-link small{color:#806e60}

@media(max-width:1000px){.privacy-banner{grid-template-columns:1fr!important;width:min(620px,calc(100% - 28px))!important}.privacy-banner form{justify-content:flex-end}}
@media(max-width:760px){
  .privacy-banner{right:auto!important;left:50%!important;bottom:8px!important;width:calc(100% - 16px)!important;padding:12px!important}
  .privacy-banner strong,.privacy-banner p{display:block}.privacy-banner strong{margin:0 0 4px}.privacy-banner a{display:inline-block;margin:6px 0 0}
  .privacy-banner form{display:grid!important;grid-template-columns:1fr 1fr;justify-content:stretch}
  .privacy-banner button{min-width:0;padding:10px 8px;font-size:12px}
}

.ts3e-shell :is(.ts3e-overview,.ts3e-live-layout,.ts3e-quick){
  width:100%;
  margin-right:0!important;
  margin-left:0!important;
}

.game-shell :is(.game-hub-hero,.game-subnav,.hub-now,.hub-section,.data-panel,.gmw-tool-head),
.hof-page :is(.hof-commandbar,.hof-game-switch,.hof-arena,.hof-records-head,.hof-record-grid),
.ts-shell :is(.ts-hero,.ts-nav,.ts-server-card,.ts-section,.ts-article){
  box-sizing:border-box;
  width:100%;
  max-width:none;
}

/* Navigation is content, not a horizontal carousel: keep every item visible. */
body[data-game] main.game-shell>.game-subnav,
body[data-hub="1"] main.game-shell>.game-subnav{
  height:auto!important;
  min-height:52px;
  flex-wrap:wrap!important;
  align-content:center;
  overflow:visible!important;
  scrollbar-width:none;
}
body[data-game] main.game-shell>.game-subnav .gsn-item,
body[data-hub="1"] main.game-shell>.game-subnav .gsn-item{
  flex:0 0 auto;
  white-space:nowrap;
}
body[data-game] main.game-shell>.game-subnav .gsn-item.active,
body[data-hub="1"] main.game-shell>.game-subnav .gsn-item.active{
  box-shadow:none!important;
  text-shadow:none;
}
.cs-hub-proof .cs-hub-status{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:3px 6px;border:1px solid currentColor;border-radius:2px;background:rgba(255,255,255,.025);font:800 8px/1 var(--mono);letter-spacing:.1em}.cs-hub-proof .cs-hub-status.is-online{color:#45d982;background:rgba(34,167,94,.09)}.cs-hub-proof .cs-hub-status.is-offline{color:#df6868;background:rgba(185,55,55,.09)}

/* Production overview parity: one reusable feed for every game world. */
.hub-overview-feed{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(300px,.9fr);gap:14px;margin-top:16px}
.hub-overview-main,.hub-overview-side{display:grid;align-content:start;gap:14px;min-width:0}
.hub-feed-panel{min-width:0;border:1px solid rgba(226,92,49,.24);background:linear-gradient(145deg,rgba(24,12,9,.94),rgba(5,5,5,.98));box-shadow:inset 0 1px rgba(255,255,255,.025)}
.hub-feed-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:15px 17px 12px;border-bottom:1px solid rgba(226,92,49,.19)}
.hub-feed-panel>header div{min-width:0}.hub-feed-panel>header span{display:block;margin-bottom:5px;color:var(--accent,#e45b37);font:800 9px/1.2 var(--mono);letter-spacing:.14em}
.hub-feed-panel>header h2{margin:0;color:#f1dfca;font:700 clamp(18px,1.35vw,24px)/1.05 var(--display);text-transform:uppercase}.hub-feed-panel>header>a{flex:0 0 auto;color:#c89069;font:700 9px/1.2 var(--mono);letter-spacing:.08em;text-decoration:none;text-transform:uppercase}
.hub-feed-list{padding:5px 17px 12px}.hub-feed-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:center;padding:10px 0;border-bottom:1px dotted rgba(195,133,91,.2);color:#d9c3ae;text-decoration:none}.hub-feed-list>a:last-child{border-bottom:0}.hub-feed-list>a:hover strong{color:#fff}
.hub-feed-list strong{min-width:0;overflow:hidden;color:#d8c2ad;font:600 12px/1.35 var(--body);text-overflow:ellipsis;white-space:nowrap}.hub-feed-list span{color:#806c5d;font:700 9px/1.3 var(--mono);text-align:right}.hub-feed-articles>a{grid-template-columns:1fr}.hub-feed-articles span{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}
.hub-feed-compact .hub-feed-list{padding-bottom:8px}.hub-feed-compact .hub-feed-list>a{padding:8px 0}.hub-feed-compact .hub-feed-list strong{display:flex;align-items:center;gap:8px}.hub-status-label{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:52px;padding:3px 6px;border:1px solid currentColor;border-radius:2px;background:rgba(255,255,255,.025);font:800 8px/1 var(--mono);letter-spacing:.1em}.hub-status-label.is-online{color:#45d982;background:rgba(34,167,94,.09)}.hub-status-label.is-offline{color:#df6868;background:rgba(185,55,55,.09)}.hub-server-name{min-width:0;overflow:hidden;color:inherit!important;text-align:left!important;text-overflow:ellipsis;white-space:nowrap}
.hub-rank-list{margin:0;padding:6px 17px 12px;counter-reset:hub-rank;list-style:none}.hub-rank-list li{counter-increment:hub-rank;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px dotted rgba(195,133,91,.2)}.hub-rank-list li::before{content:counter(hub-rank) ".";color:var(--accent,#e45b37);font:800 10px var(--mono)}
.hub-rank-list strong{overflow:hidden;color:#d8c2ad;font:600 12px var(--body);text-overflow:ellipsis;white-space:nowrap}.hub-rank-list span{color:#8e7563;font:700 10px var(--mono)}.hub-feed-empty{margin:0;padding:16px 0;color:#745f50;font:11px/1.4 var(--mono)}

:is(.site-home-content,.game-shell,.stats-main,.stats-page,.content-page,.hof-page,.acc-main,.admin-main,.ts-shell,.ts3e-shell) :is(.table-wrap,.admin-table,.stats-table,.data-table){
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
}

:is(.site-home-content,.game-shell,.stats-main,.stats-page,.content-page,.hof-page,.acc-main,.admin-main,.ts-shell,.ts3e-shell) table{
  width:100%;
  border-collapse:collapse;
}

:is(.admin-grid,.admin-columns,.stats-grid,.hub-grid,.acc-overview-grid,.ts3e-live-layout)>*{min-width:0}

.admin-navigation-list{display:grid;gap:12px}
.admin-navigation-item{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(150px,1fr) minmax(200px,1.5fr) 140px 90px auto auto;gap:10px;align-items:end;padding:15px;border:1px solid rgba(212,142,83,.18);background:rgba(255,255,255,.018)}
.admin-navigation-item header{align-self:center}.admin-navigation-item header strong,.admin-navigation-item header span{display:block}.admin-navigation-item header span{margin-top:4px;color:#987f6c;font-size:11px}.admin-navigation-item label{display:grid;gap:5px;color:#ac9380;font-size:11px}.admin-navigation-item :is(input,select){box-sizing:border-box;width:100%}.admin-navigation-item .admin-check{display:flex;align-items:center;padding-bottom:11px}.admin-navigation-item .admin-check input{width:auto}

.acc-head-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.acc-head-body{min-width:0;flex:1 1 auto}
.acc-avatar-form{display:flex;align-items:center;gap:10px;margin-top:10px}.acc-avatar-form label{color:#b9a18e;font-size:11px}.acc-avatar-form input{display:block;margin-top:4px;max-width:240px;color:#8f7a69;font-size:10px}.acc-avatar-form button{border:1px solid #8f3828;background:#2b100b;color:#f5ddd0;padding:7px 11px;text-transform:uppercase;font-size:10px;cursor:pointer}

@media(max-width:1200px){.admin-navigation-item{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-navigation-item header{grid-column:1/-1}}

@media(max-width:1100px){.acc-head{flex-wrap:wrap}.acc-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible!important}.acc-nav a{display:grid;place-items:center;padding:12px 8px!important;border-bottom:1px solid var(--line);text-align:center;white-space:normal!important}}

@media(max-width:900px){
  :is(.ts3e-overview,.ts3e-live-layout,.game-shell .hub-now){grid-template-columns:1fr!important}
  .hub-overview-feed{grid-template-columns:1fr}.hub-overview-side{grid-template-columns:repeat(3,minmax(0,1fr))}
  :is(.hof-record-grid,.ts-channel-grid,.visual-card-grid,.map-card-grid,.file-card-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:760px){
  :root{--site-shell-width:calc(100% - 20px)}
  .topbar{width:100%!important;max-width:none!important;margin:0!important}
  .admin-navigation-item{grid-template-columns:1fr}
  .acc-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.acc-nav a:last-child{grid-column:1/-1}.acc-avatar-form{align-items:stretch;flex-direction:column}.acc-avatar-form input{width:100%;max-width:100%}.acc-avatar-form button{align-self:flex-start}
  :is(.hof-record-grid,.ts-channel-grid,.visual-card-grid,.map-card-grid,.file-card-grid,.content-index-grid){grid-template-columns:1fr!important}
  .hub-overview-side{grid-template-columns:1fr}.hub-feed-panel>header{align-items:flex-start}.hub-feed-list>a{grid-template-columns:minmax(0,1fr)}.hub-feed-list span{text-align:left}
  :is(.ts3e-metrics,.game-metric-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .module-shell :is(.table-wrap,.admin-table,.stats-table,.data-table,.cvars-table-wrap,.pp-table-wrap){overflow-x:auto;-webkit-overflow-scrolling:touch}
}
.site-breadcrumbs{box-sizing:border-box;display:flex;align-items:center;gap:8px;width:min(var(--site-shell-max),var(--site-shell-width));max-width:var(--site-shell-max);margin:10px auto 0;color:#746b61;font:700 9px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase}.site-breadcrumbs a{color:#a99b89;text-decoration:none}.site-breadcrumbs a:hover,.site-breadcrumbs a:focus-visible{color:var(--accent,#ef3d3d)}.site-breadcrumbs>span[aria-hidden]{opacity:.45}.site-breadcrumbs>span[aria-current]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:620px){.site-breadcrumbs{overflow-x:auto;white-space:nowrap}}
