/* Noble Minds / Arena at night. Shared across public, player and Staff pages.
   Continues the campaign hero: near-black base, warm gold and cool teal light,
   angled cuts and gold reserved for actions, rank and emphasis.
   Page layouts, logo colours and the hero itself are preserved. */
:root {
    color-scheme: dark;
    --arena-page: #070b0d;
    --arena-panel: #0d1315;
    --arena-raised: #141b1e;
    --arena-input: #0a0f11;
    --arena-text: #f7f6ed;
    --arena-muted: #a9b3b2;
    --arena-line: #ffffff17;
    --arena-gold: #ffc000;
    --arena-gold-line: #ffc00059;
    --arena-teal: #5cc8c0;
    --arena-surface: linear-gradient(180deg,#111a1df0,#0a1012f2);
    --arena-cut: polygon(14px 0,100% 0,100% 100%,0 100%,0 14px);
}
body, body.nm-public, body.nm-account, body.nm-dashboard {
    --bg-dark: var(--arena-page);
    --bg-card: var(--arena-panel);
    --text-primary: var(--arena-text);
    --text-muted: var(--arena-muted);
    --site-surface: var(--arena-panel);
    --site-line: var(--arena-line);
    --site-muted: var(--arena-muted);
    --dash-panel: var(--arena-panel);
    --dash-panel-soft: var(--arena-raised);
    --dash-line: #ffc0002b;
    --dash-muted: var(--arena-muted);
    --dash-text: var(--arena-text);
    --bs-body-bg: var(--arena-page);
    --bs-body-color: var(--arena-text);
    --bs-secondary-color: var(--arena-muted);
    background: var(--arena-page);
    color: var(--arena-text);
    isolation: isolate;
}
/* The hero's lighting stays with the visitor: gold from one side, teal from the other. */
body::before, body.nm-public::before, body.nm-account::before, body.nm-dashboard::before {
    content:""; display:block; position:fixed; inset:0; z-index:-1;
    background:
        radial-gradient(ellipse 55% 45% at 8% 0%,#ffc0001c,transparent 70%),
        radial-gradient(ellipse 45% 40% at 96% 35%,#1f8f8a1f,transparent 70%),
        radial-gradient(ellipse 70% 40% at 50% 115%,#ffc0000f,transparent 70%),
        linear-gradient(#070b0d99,#070b0dbb),
        url('/assets/noble-minds-s05/background.webp') center top / cover no-repeat,
        var(--arena-page);
    pointer-events:none; animation:none; transform:none; opacity:1; clip-path:none;
}
@media (max-width: 600px) {
    body::before, body.nm-public::before, body.nm-account::before, body.nm-dashboard::before {
        background-image: linear-gradient(#070b0daa,#070b0dcc), url('/assets/noble-minds-s05/background_mobile.webp');
    }
}
/* The hero dissolves into the page instead of ending on a hard line. */
.nm-campaign::after {
    content:""; position:absolute; inset:auto 0 0; height:28%; z-index:-1;
    background:linear-gradient(180deg,transparent,var(--arena-page));
    pointer-events:none;
}

/* Navigation and its mobile panel: dark glass over the page. */
.sk-bar[data-overlay="0"]:not(.is-docked), body .sk-top {
    background:linear-gradient(180deg,#090e10f2,#070b0de6);
    border-bottom-color:#ffc0001f;
}
.sk-bar[data-overlay="1"]:not(.is-docked) {background:linear-gradient(180deg,#05080ab3,transparent)}
.sk-bar::before, body .sk-wheel {background:#090e10eb;backdrop-filter:blur(10px)}
body .nm-site-footer {background:#05080ad9;border-color:var(--arena-gold-line)}

/* Section headings borrow the hero's slanted gold accent. */
.nm-heading h2, .nm-masthead h1 {color:#fffdf1;text-shadow:0 4px 30px #0006}
.nm-heading h2::before {
    content:""; display:inline-block; width:.32em; height:.78em;
    margin-inline-end:.45em; vertical-align:-.04em;
    background:var(--arena-gold); transform:skewX(-18deg);
}
.nm-content-section + .nm-content-section {
    border-top:1px solid transparent;
    border-image:linear-gradient(90deg,transparent,#ffc00040,transparent) 1;
}

/* Content surfaces: dark panels with a gold top edge and the hero's angled corner. */
:is(body,body.nm-public,body.nm-account,body.nm-dashboard) :is(.nm-panel,.nm-scrim,.nm-player-tile,.player-panel,.league-panel,.league-path,.elo-panel,
    .server-card,.player-invite,.elo-filter-panel,.elo-ranking-panel),
body .nm-profile .card {
    background:var(--arena-surface);
    color:var(--arena-text); border-color:var(--arena-line);
}
:is(body,body.nm-public,body.nm-account,body.nm-dashboard) :is(.nm-panel,.nm-scrim,.league-path) {
    border-top:2px solid var(--arena-gold-line);clip-path:var(--arena-cut);
}
body .nm-panel-title {color:#f2eedf}
body .player-stat {background:var(--arena-surface);border:1px solid var(--arena-line);border-top-color:var(--arena-gold-line)}
body :is(.player-stage,.player-squad-banner) {
    background:radial-gradient(ellipse 60% 120% at 0% 0%,#ffc0001f,transparent 70%),
               radial-gradient(ellipse 50% 120% at 100% 100%,#1f8f8a24,transparent 70%),var(--arena-panel);
}
body .player-sidebar {background:#0a0f11a6;padding:10px 12px}
body :is(.player-header p,.player-overview-heading p,.player-list-row small,.player-hint,.player-empty,
    .player-squad-identity small,.player-task small,.player-pending-share small,.player-invite small,
    .player-stat small,.player-micro-label) {color:var(--arena-muted)}
body .player-stat>span {color:#d6dad3}
body .player-all-clear {color:var(--arena-teal)}
body .player-roster-preview>span {background:#ffffff08;color:#d1d6ce}
body .player-badge {background:#ffc00014;color:#ffdc73}

/* Actions have visible control surfaces; labels and ordinary navigation stay distinct. */
body :is(.player-link,.player-inline-action,.btn-link) {
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    min-height:36px;padding:7px 11px;border:1px solid #ffffff2e;
    border-radius:3px;background:var(--arena-raised);color:#f3f3eb;
    font-size:12px;font-weight:600;line-height:1.5;text-decoration:none;
    cursor:pointer;transition:background-color .15s,border-color .15s,color .15s;
}
body :is(.player-link,.player-inline-action,.btn-link):hover:not(:disabled) {
    background:#1c2629;border-color:#ffc00099;color:#fff;text-decoration:none;
}
body :is(.player-link,.player-inline-action,.btn-link):focus-visible {
    outline:2px solid var(--arena-gold);outline-offset:3px;
}
body .player-inline-action,body .player-link--captain {
    background:#3d3210;border-color:#c9a53f;color:#ffe29a;
}
body .player-inline-action:hover:not(:disabled),body .player-link--captain:hover:not(:disabled) {
    background:var(--arena-gold);border-color:var(--arena-gold);color:#080b0c;
}
body .player-link--danger {background:#3a1f1f;border-color:#b97770;color:#ffd1ca}
body .player-link--danger:hover:not(:disabled) {background:#773d39;border-color:#f2b1a8;color:#fff}
body :is(.player-link,.player-inline-action):disabled {opacity:.45;cursor:not-allowed}
body .player-invite .player-row-actions {gap:8px}
@media(pointer:coarse) {body :is(.player-link,.player-inline-action,.btn-link) {min-height:44px}}
body .player-notice {background:#ffc00014}
body .player-nav a {color:#d3d8d1}
body .player-nav a[aria-current] {color:#080b0c}

/* Image cards light up in gold on hover, like the hero trophy. */
.nm-path::before {background:linear-gradient(0deg,#05090bfa 8%,#05090b80 45%,transparent)}
.nm-path::after {
    content:""; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .35s;
    background:radial-gradient(ellipse 80% 55% at 50% 100%,#ffc00038,transparent 70%);
    border-bottom:2px solid var(--arena-gold);
}
.nm-path:hover::after, .nm-path:focus-visible::after {opacity:1}
body .nm-team {background:var(--arena-panel);transition:border-color .2s,box-shadow .25s,transform .25s}
body .nm-team:hover {background:var(--arena-raised);box-shadow:0 0 0 1px #ffc00055,0 22px 45px -24px #ffc00080;transform:translateY(-3px)}
body .nm-team__surface::after {background:linear-gradient(180deg,#0b111340 25%,#0b1113c9 65%,#0b1113f5)}
body .nm-inspect-card {background:var(--arena-panel)}
body .nm-inspect-card::after {background:linear-gradient(180deg,#0b111322 20%,#0b111399 65%,#0b1113f2)}
body .nm-ranking__position {color:#aeb8b4}
body .nm-ranking__row:first-of-type .nm-ranking__position {color:var(--site-yellow)}
body .nm-mini-rank:first-of-type > span {color:var(--arena-gold)}
body :is(.nm-search input,.nm-mode-switch a,.league-role,.elo-mode-tab) {background:var(--arena-input);border-color:#ffffff26;color:var(--arena-text)}
body .nm-mode-switch a.is-active {background:#ffc00014;border-color:#ffc000b3;color:#ffdc63}

/* Staff screens retain their permissions/layout, but use the same material tokens. */
body.nm-dashboard :is(.dashboard-hero,.operator-note,.dashboard-panel,.card,.ops-card,.server-card) {
    background:var(--arena-surface) !important; box-shadow:none !important;
}
body.nm-dashboard #sidebarMenu {background:var(--arena-panel) !important;box-shadow:none !important}
body.nm-dashboard .navbar-custom {background:var(--arena-panel) !important}
body.nm-dashboard .navbar-custom .navbar-brand {background:var(--arena-input)}
body :is(.modal-content,.dropdown-menu,.offcanvas,.accordion-item,.list-group-item) {background:var(--arena-panel);color:var(--arena-text);border-color:var(--arena-line)}
body :is(.modal-header,.modal-footer,.card-header,.card-footer) {background:#ffffff03;border-color:var(--arena-line)}
body :is(.form-control,.form-select,.input-group-text),
body.nm-dashboard :is(.form-control,.form-select,.input-group-text) {
    background-color:var(--arena-input) !important; color:var(--arena-text) !important;
    border-color:#ffffff26 !important;
}
body .form-select,body.nm-dashboard .form-select {background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23d5d8d1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important}

/* Background shorthands in legacy form styles reset the arrow's repeat and size. */
body .form-select,body.nm-dashboard .form-select {
    background-repeat:no-repeat !important;
    background-size:16px 12px !important;
    background-position:right .75rem center !important;
    padding-inline-end:2.25rem !important;
    appearance:none;
}
html[dir="rtl"] body .form-select {background-position:left .75rem center !important}

body :is(.form-control,.nm-search input)::placeholder {color:#8f9a99;opacity:1}
body :is(.form-control,.form-select):focus {border-color:#ffc000 !important;box-shadow:0 0 0 2px #ffc00026 !important}
body .form-control:disabled, body .form-select:disabled {background-color:#12191b !important;color:#8f9a99 !important}
body :is(.text-muted,.form-text),body.nm-dashboard :is(.text-muted,.form-text) {color:var(--arena-muted) !important}
body .bg-dark,body .bg-black {background-color:var(--arena-panel) !important}
body .table {--bs-table-bg:var(--arena-panel);--bs-table-color:var(--arena-text);--bs-table-border-color:var(--arena-line);--bs-table-striped-bg:#ffffff04;--bs-table-hover-bg:#ffc00008;color:var(--arena-text)}
body .table-dark {--bs-table-bg:var(--arena-panel);--bs-table-striped-bg:#ffffff05;--bs-table-hover-bg:#ffc00009;--bs-table-color:var(--arena-text)}
body.nm-dashboard .table :is(td,th) {background-color:transparent !important;color:inherit}
body :is(.leaderboard-mode-button,.leaderboard-search input[type='search']) {background-color:var(--arena-input)}
body :is(.leaderboard-mode-button.is-active,.leaderboard-mode-button:hover) {background-color:var(--gold);color:#080b0c}
@media(max-width:860px) {
    body .player-sidebar {padding:6px 8px;background:#0a0f11b3}
}
@media(prefers-reduced-motion:reduce) {
    body .nm-team:hover {transform:none}
}

body .player-roster-captain {display:inline-block;margin-inline-start:8px;padding:2px 5px;color:#e5d290;background:#ffc00012;font-size:10px;line-height:1.5}
