/* Locally hosted fonts: licenses and provenance in assets/fonts/README.txt. */
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/open-sans-400.ttf') format('truetype'); }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/open-sans-600.ttf') format('truetype'); }
@font-face { font-family:'Open Sans'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/open-sans-700.ttf') format('truetype'); }
@font-face { font-family:'Open Sans Condensed'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/open-sans-condensed-700.ttf') format('truetype'); }
@font-face { font-family:'Orbitron'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/orbitron-600.ttf') format('truetype'); }
@font-face { font-family:'Orbitron'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/orbitron-700.ttf') format('truetype'); }
/* Dark cosmic theme; block layout and solid-color fallbacks keep the classic HTML usable. */
body { margin:0; padding:0; background:#080d19 url('/assets/cosmos.svg') repeat-y center top; color:#e3eaf5; font:16px/1.7 'Open Sans','Segoe UI',Arial,Helvetica,sans-serif; }
a { color:#85dcf1; text-decoration:underline; } a:hover { color:#c5b7ff; }
a:focus,input:focus,textarea:focus,select:focus,button:focus { outline:2px solid #81e4fa; outline-offset:3px; }
.header { background:#0c1324 url('/assets/cosmos.svg') center top; color:#f2f5ff; padding:28px 4% 24px; border-bottom:1px solid #354462; }
.brand { font:700 26px/1.4 'Orbitron','Trebuchet MS',Arial,sans-serif; letter-spacing:1px; margin:0; }
.header p { margin:7px 0 0; font-size:13px; color:#a7b6d1; }
.header p.brand { font-size:26px; color:#f2f5ff; }
.nav { padding:10px 4%; background:#0b1221; border-bottom:1px solid #26334b; line-height:2.8; }
.nav a { display:inline; padding:9px 12px; margin-right:3px; white-space:nowrap; text-decoration:none; font:700 17px/1.6 'Open Sans Condensed','Arial Narrow',Arial,sans-serif; letter-spacing:.3px; color:#bdcce4; }
.nav a:hover { background:#17223a; color:#e9f7ff; }
.nav a.active { background:#182a43; color:#99eaff; border-bottom:2px solid #7ce0f5; }
.admin-navigation { padding-top:0; padding-bottom:0; }
.nav-group { padding:14px 0; }
.nav-group .nav-label { margin:0 0 6px; font:600 12px/1.6 'Open Sans',Arial,sans-serif; letter-spacing:1.2px; text-transform:uppercase; color:#a7b6d1; }
.nav-management { border-top:1px solid #354462; }
.nav-management .nav-label { color:#99eaff; }
.admin-navigation a { display:inline-block; margin:2px 3px 2px 0; padding:7px 12px; border-bottom:2px solid transparent; }
.main { margin:34px auto 48px; padding:0 4%; max-width:1040px; }
h1 { font:600 32px/1.35 'Orbitron','Trebuchet MS',Arial,sans-serif; letter-spacing:.2px; overflow-wrap:break-word; margin:0 0 14px; color:#f3f6ff; }
h2 { font:700 27px/1.3 'Open Sans Condensed','Arial Narrow',Arial,sans-serif; margin:0 0 16px; color:#edf2ff; }
h3 { font-size:17px; font-weight:600; line-height:1.45; margin:18px 0 10px; color:#c8d7f2; }
p { margin:0 0 14px; } .muted { color:#a6b5cf; } .eyebrow { font:700 13px/1.7 'Open Sans Condensed','Arial Narrow',Arial,sans-serif; letter-spacing:1.8px; text-transform:uppercase; color:#8eddec; }
.panel { background:#101a2c; border:1px solid #2b3a55; border-top:2px solid #7c83cf; padding:24px; margin:24px 0; }
.card { border:1px solid #2d3c56; background:#131f34; padding:16px; margin:12px 0; }
.card p { margin:3px 0; } .stat { display:inline; padding:5px 22px 5px 0; white-space:nowrap; line-height:3; color:#afbfda; }
/* Queue labels can wrap on narrow screens. */
#status-matchmaking .stat { white-space:normal; }
.stat strong { font:700 34px 'Open Sans Condensed','Arial Narrow',Arial,sans-serif; font-variant-numeric:tabular-nums; color:#9ae5f4; padding-right:7px; }
.badge { background:#15392f; color:#a5e9cf; padding:4px 8px; font:700 12px/1.5 'Open Sans',Arial,sans-serif; letter-spacing:.5px; }
.warning { background:#3c2d1e; color:#f2cb92; }
.notice { border-left:3px solid #6bd1c7; background:#122c31; color:#cfebe9; padding:18px; margin:24px 0; }
.notice p { margin:6px 0 0; }
.error { border-left:3px solid #ef8e9c; background:#34202d; color:#ffd2d9; padding:16px; margin:20px 0; }
label { display:block; font-weight:600; font-size:14px; margin:14px 0 6px; color:#cbd8ed; }
input.text,textarea,select { width:90%; max-width:580px; border:1px solid #4c5f80; background:#0a1221; color:#edf3ff; padding:10px; font:16px/1.5 'Open Sans','Segoe UI',Arial,sans-serif; }
textarea { height:90px; } select { width:94%; padding:9px 4px; }
input.button,button.button,a.download { border:1px solid #93deed; background:#93deed; color:#08131f; padding:11px 20px; font:600 14px/1.5 'Open Sans','Segoe UI',Arial,sans-serif; cursor:pointer; margin:12px 8px 0 0; }
input.button:hover,button.button:hover,a.download:hover { background:#b6a9f5; border-color:#b6a9f5; color:#111329; }
input.danger,button.danger { background:#492332; border-color:#ba6a7d; color:#ffe2e9; }
.inline { display:inline; } .inline input.button,.inline button.button { margin:8px 5px 0 0; }
.help { font-size:13px; color:#a3b2cc; margin:6px 0 0; } .secret { font:13px/1.6 'Courier New',monospace; background:#0a1323; border:1px solid #384c6b; padding:14px; overflow:auto; color:#a6e4ee; }
.table-wrap { overflow:auto; } table { border-collapse:collapse; width:100%; font-size:14px; }
th,td { padding:11px 9px; border-bottom:1px solid #2a3952; text-align:left; vertical-align:top; } th { background:#18263f; color:#cad9f2; }
.code { font:12px/1.7 'Courier New',monospace; word-wrap:break-word; color:#b1c7e7; } .message { white-space:pre-wrap; word-wrap:break-word; }
.reported-chat { color:#ffccce; background:#352333; border-left:3px solid #d7919d; padding:10px; }
.report-section { border-top:1px solid #2d3c56; padding-top:8px; margin:16px 0; }
.report-toggle { display:none; background:#182a43; border:1px solid #57718e; color:#bcebf4; padding:5px 12px; margin-left:12px; font:13px 'Open Sans',Arial,sans-serif; cursor:pointer; }
.conversation-scroll { max-height:560px; border:1px solid #2d3c56; margin:12px 0; }
.conversation-table { table-layout:fixed; min-width:520px; }
.conversation-table th,.conversation-table td { padding:8px 10px; overflow-wrap:break-word; word-wrap:break-word; }
.conversation-table th:first-child { width:100px; }
.conversation-table th:nth-child(2) { width:155px; }
.conversation-table th:nth-child(4) { width:70px; }
.conversation-table .chat-time { font-variant-numeric:tabular-nums; font-size:12px; }
.conversation-table .badge,.conversation-table .help { display:block; margin-top:4px; }
.conversation-table .badge { font-size:10px; padding:2px 4px; letter-spacing:0; }
.participant-document { display:inline-block; margin:4px 6px 8px 0 !important; }
.participant-document a { display:inline-block; border:1px solid #506382; padding:5px 10px; text-decoration:none; }
.participant-document a.selected-document { background:#254558; border-color:#93deed; color:#e0faff; }
.footer { padding:24px 4%; border-top:1px solid #25344d; background:#0a1020; color:#94a6c4; font-size:12px; }
.login { max-width:480px; margin:48px auto; padding:0 4%; }
button.button { white-space:normal; max-width:100%; }
.content-picker fieldset { border:1px solid #364867; margin:12px 0; padding:12px; }
.content-options { max-height:230px; overflow:auto; }
.content-choice { margin:4px 0; padding:5px; font-weight:normal; }
.content-choice input { width:auto; margin-right:8px; }
.pagination { padding:12px; background:#172941; }
.pagination a { margin-right:20px; }
a.download { display:inline-block; text-decoration:none; }
ol { padding-left:24px; } li { margin:9px 0; }
/* Stars are decorative: browsers without SVG still get the solid navy background. */

/* Keep long administrative headings and action labels readable on small screens. */
@media (max-width:480px) {
  .header { padding-top:22px; padding-bottom:20px; }
  .nav { padding-top:8px; padding-bottom:8px; }
  .nav a { display:inline-block; margin:2px 3px 2px 0; padding:7px 9px; }
  .main { margin-top:26px; }
  h1 { font-size:26px; line-height:1.4; }
  h2 { font-size:25px; }
  .panel { padding:18px; }
  #status-matchmaking .stat { display:block; padding-right:0; line-height:2; }
  input.button,button.button,a.download { max-width:100%; box-sizing:border-box; }
}

.brawl-title { font-size:21px; color:#a6e4ee; margin-top:4px; }
.rule-list { padding-left:22px; margin:0 0 14px; }
.rule-list li { margin:6px 0; }

.ladder-search { display:flex; flex-wrap:wrap; gap:14px 24px; align-items:flex-end; }
.ladder-search > div { flex:1 1 180px; }
.ladder-search input.text,.ladder-search select { width:100%; box-sizing:border-box; }
.ladder-search .ladder-actions { flex:0 1 180px; padding-bottom:1px; }
.ladder-table { border:1px solid #285055; }
.ladder-table th { background:#102a30; color:#8cdae4; font-weight:600; }
.ladder-table td { vertical-align:middle; border-bottom:1px solid #20383e; padding-top:8px; padding-bottom:8px; }
.ladder-table tbody tr:nth-child(odd) { background:#101f29; }
.ladder-table tbody tr:nth-child(even) { background:#132a31; }
.ladder-table tbody tr:hover { background:#20444d; }
.ladder-table .ladder-number { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ladder-table td.ladder-number { color:#eed88a; }
.ladder-name { font-weight:600; min-width:140px; max-width:240px; overflow-wrap:anywhere; }
.ladder-rank { white-space:nowrap; font-variant-numeric:tabular-nums; color:#eed88a; }
.ladder-favourite { min-width:130px; }
.league-cell { white-space:nowrap; }
.league-icon { vertical-align:middle; object-fit:contain; margin-right:8px; }
.empty-state { padding:20px 0; color:#bdcce2; }
.pagination span { display:inline-block; margin-right:20px; }

.news-post + .news-post { border-top:1px solid #344a60; padding-top:24px; margin-top:24px; }
.news-post > h3 { font-size:23px; line-height:1.4; }
.news-content { max-width:78ch; line-height:1.75; overflow-wrap:anywhere; }
.news-content img { max-width:100%; height:auto; }
.news-content pre { max-width:100%; overflow:auto; padding:12px; background:#111d30; }
.news-content code { font-size:0.9em; }
.news-content blockquote { margin-left:0; padding-left:18px; border-left:3px solid #70c9db; }
.news-content h1,.news-content h2,.news-content h3,.news-content h4 { font-family:'Open Sans',sans-serif; font-size:1.2em; line-height:1.5; }
#newsBody { width:100%; box-sizing:border-box; }

.news-collapsed { display:none; }

/* Installation pages separate platforms and keep advanced steps optional. */
.platform-choices { display:flex; flex-wrap:wrap; gap:24px; }
.platform-choices .panel { flex:1 1 260px; margin-top:10px; }
.platform-choices button.button:disabled { background:#444a54; border-color:#737b88; color:#d0d3d9; cursor:default; }
details.panel > summary { cursor:pointer; color:#c8d7f2; font-weight:600; }
details.panel > summary:focus { outline:2px solid #81e4fa; outline-offset:6px; }
.manual-instructions { margin-top:24px; }
.manual-instructions code { overflow-wrap:anywhere; }

.medal-options { max-height:280px; overflow:auto; }

/* Home-screen editor: compact selection, readable native-card controls. */
.home-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.home-cards .card { margin:0; padding:12px; min-width:0; }
.home-cards a { display:block; overflow-wrap:anywhere; }
.home-cards img { display:block; width:100%; max-width:240px; height:auto; margin-bottom:8px; }
.home-card-preview { display:block; width:100%; max-width:512px; height:auto; }
.home-cards p { margin-bottom:0; }
.home-tile-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.home-tile-options .card { margin:0; padding:16px; }
.home-tile-options select { width:100%; }
#home-card-editor { scroll-margin-top:24px; }

#home-card-editor details { padding:10px 0; border-top:1px solid #33435d; }
#home-card-editor summary { cursor:pointer; color:#8cdae4; font-weight:bold; }

/* Player detail pages share compact navigation, including legacy browsers. */
.player-sections { margin:18px 0; padding:8px; background:#172941; }
.player-sections a { display:inline-block; padding:8px 12px; margin:3px; border:1px solid #405675; }
.player-sections a[aria-current="page"] { background:#93deed; color:#08131f; text-decoration:none; }

#player-activity-summary .match-play-time { margin-top:24px; }

.faq-contents ol { margin:0; padding-left:24px; }
.faq-contents li { margin:8px 0; }
.faq-answer { scroll-margin-top:24px; }
#faq-editor textarea { height:300px; max-width:850px; }
#faq-order td { vertical-align:top; }
#faq-order button { margin-top:0; padding:6px 10px; }
#faq-order button:disabled { opacity:.4; cursor:default; }

.conversation-table .account-id { font-size:11px; word-break:break-all; font-weight:normal; }
.declaration-table { min-width:0; }
.declaration-table th:first-child { width:120px; }
.declaration-table th:nth-child(2) { width:auto; }
@media (max-width:600px) {
  .declaration-table th:first-child { width:90px; }
  .declaration-table th,.declaration-table td { padding:7px 6px; }
}

.group-rule-list { max-height:520px; overflow:auto; border-top:1px solid #364867; border-bottom:1px solid #364867; margin-bottom:20px; }
.access-rule-choice { border-bottom:1px solid #364867; padding:10px 8px; }
.access-rule-detail { display:block; margin:4px 0 0 24px; }
