/* Reconciliation totals may include several currencies; keep them inside the card. */
.payment-review-kpis .kpi { min-width: 0; }
.payment-review-kpis .kpi strong { font-size: clamp(1.25rem, 3vw, 2rem); overflow-wrap: anywhere; }
@media (max-width: 480px) { .registration-kpis.payment-review-kpis { grid-template-columns: minmax(0, 1fr); } }

/* Registration counters and monetary totals need different amounts of space. */
.registration-kpis.registration-summary-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.registration-summary-kpis .kpi { min-width: 0; }
.registration-summary-kpis .kpi strong,
.registration-summary-kpis .kpi span { overflow-wrap: anywhere; }
.registration-summary-kpis .kpi--amount { grid-column: span 2; }
.registration-summary-kpis .kpi--amount strong {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}
@media (max-width: 700px) {
    .registration-kpis.registration-summary-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

:root {
    --bg: #050505;
    --panel: #0c0e0b;
    --panel2: #121510;
    --line: #252b20;
    --accent: #ABFB02;
    --accent2: #d0ff6d;
    --text: #f5f7f2;
    --muted: #a6aea0;
    --danger: #ff6161;
    --warning: #ffc84a;
    --ok: #ABFB02;
    --radius: 18px;
    --shadow: 0 18px 50px rgba(0,0,0,.35);
    font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color-scheme: dark;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: radial-gradient(circle at 15% 0%,rgba(171,251,2,.08),transparent 26rem),var(--bg);
    color: var(--text);
    min-height: 100vh;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

.shell {
    width: min(1180px,calc(100% - 28px));
    margin: auto;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(5,5,5,.92);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(171,251,2,.12);
}

.topbar-inner {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: max-content;
}

.brand-mark {
    width: 38px;
    height: 38px;
    border: 2px solid var(--accent);
    display: grid;
    place-items: center;
    font: 900 19px/1 "Arial Narrow",Impact,sans-serif;
    transform: skew(-6deg);
    box-shadow: 0 0 25px rgba(171,251,2,.15);
}

.brand-copy strong {
    display: block;
    font: 900 18px/1 "Arial Narrow",Impact,sans-serif;
    letter-spacing: .08em;
}

.brand-copy small {
    color: var(--muted);
    font-size: 10px;
    letter-spacing: .14em;
}

.nav {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.nav a {
    padding: 9px 11px;
    border-radius: 10px;
    color: #c8cfc3;
    font-size: 13px;
    font-weight: 750;
}

.nav a:hover,
.nav a.active {
    background: rgba(171,251,2,.1);
    color: var(--accent);
}

.nav .admin-link {
    border: 1px solid rgba(171,251,2,.28);
}

.pwa-install-btn {
    appearance: none;
    border: 1px solid rgba(171,251,2,.42);
    border-radius: 10px;
    background: rgba(171,251,2,.12);
    color: var(--accent);
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    padding: 9px 11px;
}

.pwa-install-btn:hover:not(:disabled),
.pwa-install-btn:focus-visible {
    background: rgba(171,251,2,.22);
    outline: none;
}

.pwa-install-btn:disabled {
    cursor: wait;
    opacity: .65;
}

.pwa-connection {
    position: fixed;
    z-index: 100;
    right: 18px;
    bottom: 18px;
    max-width: min(390px,calc(100vw - 36px));
    border: 1px solid rgba(255,200,74,.48);
    border-radius: 12px;
    background: #1b1608;
    box-shadow: var(--shadow);
    color: #fff0c3;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    padding: 11px 13px;
}

.menu-btn {
    display: none;
    background: none;
    border: 1px solid var(--line);
    color: var(--text);
    border-radius: 10px;
    padding: 8px 11px;
}

.hero {
    padding: 76px 0 34px;
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: 28px;
    align-items: end;
}

.eyebrow {
    color: var(--accent);
    letter-spacing: .16em;
    font-weight: 900;
    font-size: 12px;
    text-transform: uppercase;
}

.hero h1 {
    font-family: "Arial Narrow","Roboto Condensed",Arial,sans-serif;
    font-size: clamp(42px,7vw,82px);
    font-weight: 800;
    line-height: .94;
    letter-spacing: -.035em;
    margin: 10px 0 18px;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.hero p {
    max-width: 680px;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.65;
}

.hero-card {
    border: 1px solid var(--line);
    background: linear-gradient(145deg,rgba(171,251,2,.08),rgba(255,255,255,.02));
    border-radius: var(--radius);
    padding: 24px;
    box-shadow: var(--shadow);
}

.hero-card strong {
    font: 900 38px/1 "Arial Narrow",Impact,sans-serif;
    color: var(--accent);
}

.hero-card span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    margin-top: 7px;
}

.section {
    padding: 24px 0 44px;
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 18px;
}

.section-head h2 {
    font: 900 30px/1 "Arial Narrow",Impact,sans-serif;
    text-transform: uppercase;
    margin: 5px 0;
}

.section-head p {
    color: var(--muted);
    margin: 6px 0 0;
}

.grid {
    display: grid;
    gap: 16px;
}

.grid.cards {
    grid-template-columns: repeat(3,1fr);
}

.portal-card,
.card {
    border: 1px solid var(--line);
    background: linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.012));
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.portal-card {
    padding: 24px;
    min-height: 210px;
    display: flex;
    flex-direction: column;
    transition: .2s ease;
}

.portal-card:hover {
    border-color: rgba(171,251,2,.5);
    transform: translateY(-3px);
    box-shadow: 0 18px 55px rgba(171,251,2,.08);
}

.portal-card .number {
    color: #5c6458;
    font: 900 13px/1 monospace;
}

.portal-card h3 {
    font: 900 26px/1.05 "Arial Narrow",Impact,sans-serif;
    margin: 35px 0 10px;
    text-transform: uppercase;
}

.portal-card p {
    color: var(--muted);
    line-height: 1.5;
    margin: 0 0 20px;
}

.portal-card .go {
    margin-top: auto;
    color: var(--accent);
    font-weight: 900;
}

.kpis {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 14px;
}

.kpi {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel);
}

.kpi strong {
    display: block;
    font: 900 34px/1 "Arial Narrow",Impact,sans-serif;
    color: var(--accent);
}

.kpi span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-top: 7px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.card {
    padding: 22px;
}

.filters {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
}

.field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.field label,
.field-label {
    display: block;
    font-size: 12px;
    color: #c7cec1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.check-row {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 8px;
    color: var(--text);
    font-weight: 700;
    cursor: pointer;
}

.check-row input[type="checkbox"] {
    width: 18px;
    height: 18px;
    padding: 0;
    accent-color: var(--accent);
}

.check-row small {
    grid-column: 2;
    margin-top: -4px;
}

.input,
input,
select,
textarea {
    width: 100%;
    background: #080a07;
    border: 1px solid #30372a;
    color: var(--text);
    padding: 12px 13px;
    border-radius: 11px;
    outline: none;
}

.input:focus,
input:focus,
select:focus,
textarea:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(171,251,2,.08);
}

.btn {
    border: 1px solid transparent;
    border-radius: 11px;
    padding: 12px 16px;
    font-weight: 900;
    cursor: pointer;
    transition: .18s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn.primary {
    background: var(--accent);
    color: #080a07;
}

.btn.primary:hover {
    filter: brightness(.9);
}

.btn.ghost {
    border-color: #384230;
    background: #0a0c09;
    color: var(--text);
}

.btn.danger {
    border-color: rgba(255,97,97,.35);
    background: rgba(255,97,97,.08);
    color: #ff9292;
}

.btn.small {
    padding: 8px 10px;
    font-size: 12px;
}

.btn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.menu-btn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.pwa-install-btn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.home-ranking-card { padding: 22px; }
.home-ranking-head { align-items: flex-start; }
.home-ranking-head h2 { margin-bottom: 6px; }
.home-ranking-head p { margin: 0; color: var(--muted); line-height: 1.45; }
.home-ranking-controls { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-top: 18px; }
.home-ranking-controls .field { width: min(440px,100%); }
.home-ranking-controls .field label { display: block; }
.home-ranking-bars { display: grid; gap: 9px; margin-top: 14px; }
.home-ranking-row { display: grid; grid-template-columns: 28px 36px minmax(150px,.8fr) minmax(100px,1.5fr) 48px; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); text-decoration: none; background: #090b08; }
.home-ranking-row:hover { border-color: rgba(171,251,2,.45); background: rgba(171,251,2,.04); }
.home-ranking-position { color: var(--accent); font-weight: 900; font-size: 16px; }
.home-ranking-person { min-width: 0; }
.home-ranking-person strong,.home-ranking-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-ranking-person small { color: var(--muted); font-size: 11px; margin-top: 3px; }
.rank-avatar { display: block; width: 36px; height: 36px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(171,251,2,.36); background: #1c2318; }
.rank-avatar-fallback { display: grid; place-items: center; color: var(--accent); font-size: 14px; font-weight: 900; }
.rank-person-link { display: flex; align-items: center; gap: 9px; min-width: 180px; color: var(--text); text-decoration: none; }
.rank-person-link .rank-avatar { flex: 0 0 36px; }
.rank-person-link span:last-child { min-width: 0; }
.rank-person-link strong,.rank-person-link small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.official-ranking-card { overflow: hidden; }
.official-ranking-intro { max-width: 740px; margin: 6px 0 0; line-height: 1.5; }
.official-ranking-rules { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.official-ranking-rules span { display: flex; align-items: baseline; gap: 7px; min-height: 54px; padding: 12px; border: 1px solid #293124; border-radius: 11px; background: #090b08; color: #c4ccc0; font-size: 12px; line-height: 1.35; }
.official-ranking-rules strong { color: var(--accent); font: 900 24px/1 "Arial Narrow",Impact,sans-serif; }
.official-ranking-filters { grid-template-columns: 160px minmax(220px,1fr) minmax(180px,.55fr); margin-bottom: 6px; }
.official-ranking-reference { justify-content: flex-end; }
.official-ranking-reference .pill { min-height: 43px; justify-content: center; }
.official-ranking-table-wrap { margin-top: 16px; }
.official-ranking-table { min-width: 960px; }
.official-ranking-table tr.is-provisional td { color: #9da69a; }
.official-position { color: var(--accent); font-weight: 900; white-space: nowrap; }
.official-points { color: var(--accent); font-size: 18px; font-weight: 1000; }
.official-shooter a { display: grid; gap: 3px; min-width: 180px; color: #fff; text-decoration: none; }
.official-shooter a:hover,.official-shooter a:focus-visible { color: var(--accent); }
.official-shooter small { color: var(--muted); font: 600 10px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace; }
.official-status { display: inline-flex; padding: 6px 8px; border: 1px solid; border-radius: 999px; font-size: 10px; font-weight: 900; letter-spacing: .04em; white-space: nowrap; }
.official-status.eligible { border-color: rgba(171,251,2,.38); background: rgba(171,251,2,.08); color: var(--accent); }
.official-status.provisional { border-color: #4a5145; background: #11140f; color: #b4bcb0; }
.section-tight { padding-top: 0; }
.home-ranking-bar { overflow: hidden; height: 10px; border-radius: 999px; background: #1e261a; }
.home-ranking-bar i { display: block; min-width: 4px; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#6ea500,var(--accent)); }
.home-ranking-row>b { color: var(--accent); text-align: right; }
@media(max-width:700px){.home-ranking-card{padding:16px}.home-ranking-controls{display:grid;align-items:stretch}.home-ranking-row{grid-template-columns:24px 32px minmax(0,1fr) 42px;gap:9px}.home-ranking-row .rank-avatar{width:32px;height:32px;grid-column:2}.home-ranking-bar{grid-column:3/5;grid-row:2}.home-ranking-row>b{grid-column:4;grid-row:1}.home-ranking-person{grid-column:3}.home-ranking-controls .pill{justify-self:start}}
@media(max-width:700px){.official-ranking-rules{grid-template-columns:repeat(2,minmax(0,1fr))}.official-ranking-filters{grid-template-columns:1fr}.official-ranking-reference{justify-content:initial}.official-ranking-table{display:block;min-width:0}.official-ranking-table thead{display:none}.official-ranking-table tbody{display:grid;gap:12px}.official-ranking-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid #2b3326;border-radius:13px;background:#080a07}.official-ranking-table td{display:grid;gap:5px;min-width:0;padding:10px!important;border:0;border-right:1px solid #20251d;border-bottom:1px solid #20251d}.official-ranking-table td:nth-child(even){border-right:0}.official-ranking-table td::before{content:attr(data-label);color:#818b7b;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.official-ranking-table td.official-shooter{grid-column:1/-1;border-right:0}.official-ranking-table td:last-child{grid-column:1/-1;border:0}.official-ranking-table tr.is-eligible{border-color:rgba(171,251,2,.28)}.official-ranking-card{padding:16px}}

.oauth-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 4px 0;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.oauth-divider::before,
.oauth-divider::after {
    content: '';
    height: 1px;
    flex: 1;
    background: var(--line);
}

.oauth-google {
    border-color: #4b5644;
    background: #fff;
    color: #151515;
}

.oauth-google:hover {
    background: #edf2e8;
    border-color: var(--accent);
}

.oauth-note {
    margin: 0;
    font-size: 12px;
    line-height: 1.45;
}

.table-wrap {
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}

.data-table th,
.data-table td {
    padding: 13px 12px;
    border-bottom: 1px solid #20251d;
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    position: sticky;
    top: 0;
    background: #0c0f0a;
    color: #bbc3b5;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .07em;
    z-index: 2;
}

.data-table tr:hover td {
    background: rgba(171,251,2,.025);
}

.data-table .score {
    font-weight: 900;
    color: var(--accent);
    font-size: 17px;
}

.rank {
    width: 42px;
    font-weight: 900;
}

.medal {
    font-size: 20px;
}

.pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #151a12;
    border: 1px solid #303a29;
    color: #cdd5c8;
    font-size: 11px;
    font-weight: 800;
}

.pill.ok {
    color: var(--accent);
    border-color: rgba(171,251,2,.3);
}

.pill.warn {
    color: var(--warning);
    border-color: rgba(255,200,74,.3);
}

.pill.danger {
    color: #ff8b8b;
    border-color: rgba(255,97,97,.3);
}

.podium {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 12px;
}

.podium-card {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 18px;
    background: #090b08;
}

.podium-card:first-child {
    border-color: rgba(171,251,2,.45);
}

.podium-card .place {
    font: 900 34px/1 "Arial Narrow",Impact,sans-serif;
    color: var(--accent);
}

.podium-card strong {
    display: block;
    margin: 10px 0 4px;
}

.podium-card small {
    color: var(--muted);
}

.empty {
    padding: 28px;
    text-align: center;
    color: var(--muted);
}

.hidden {
    display: none!important;
}

.status-line {
    margin-top: 12px;
    color: var(--muted);
    font-size: 13px;
}

.notice {
    border: 1px solid rgba(171,251,2,.25);
    background: rgba(171,251,2,.055);
    padding: 14px 16px;
    border-radius: 12px;
    color: #dce5d7;
    line-height: 1.5;
}

.notice.warn {
    border-color: rgba(255,200,74,.3);
    background: rgba(255,200,74,.06);
}

.split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.footer {
    border-top: 1px solid var(--line);
    padding: 28px 0 40px;
    color: #777f73;
    font-size: 12px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.loader {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255,255,255,.25);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin .7s linear infinite;
}

@keyframes spin{
    to {
        transform: rotate(360deg);
    }
}

.countdown-card {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 300px;
}

.countdown-card .countdown-kicker {
    color: var(--accent);
    font-weight: 900;
    letter-spacing: .14em;
    font-size: 11px;
    margin: 0 0 10px;
}

.countdown-card .countdown-event {
    display: block;
    color: var(--text);
    font: 900 clamp(24px,3vw,38px)/1.02 "Arial Narrow",Impact,sans-serif;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.countdown-card>small {
    display: block;
    line-height: 1.45;
}

.countdown-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 8px;
    margin-top: 22px;
}

.countdown-grid>div {
    border: 1px solid #30372a;
    background: #080a07;
    border-radius: 12px;
    padding: 12px 7px;
    text-align: center;
}

.countdown-grid b {
    display: block;
    color: var(--accent);
    font: 900 clamp(24px,3vw,34px)/1 "Arial Narrow",Impact,sans-serif;
    letter-spacing: .02em;
}

.countdown-grid span {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
}

.countdown-grid.today>div {
    border-color: rgba(171,251,2,.35);
    background: rgba(171,251,2,.07);
}

.countdown-message {
    min-height: 20px;
    margin-top: 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
}

.countdown-action {
    align-self: flex-start;
    margin-top: 12px;
}

.countdown-grid.today+.countdown-message {
    color: var(--accent);
    font-size: 14px;
    letter-spacing: .08em;
}

/* Admin */
.admin-shell {
    display: grid;
    grid-template-columns: 230px 1fr;
    min-height: calc(100vh - 73px);
}

.sidebar {
    border-right: 1px solid var(--line);
    padding: 22px 14px;
    background: #080a07;
}

.sidebar button {
    width: 100%;
    text-align: left;
    background: transparent;
    border: 0;
    color: #afb7a8;
    padding: 11px 12px;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 800;
    margin: 2px 0;
}

.sidebar button.active,
.sidebar button:hover {
    background: rgba(171,251,2,.09);
    color: var(--accent);
}

.sidebar-group {
    margin: 5px 0;
    border: 1px solid transparent;
    border-radius: 12px;
}

.sidebar-group.is-open {
    border-color: var(--line);
    background: rgba(171,251,2,.025);
}

.sidebar-group-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 12px;
    color: #d4d9cf;
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    text-align: left;
}

.sidebar-group-toggle::after { content: "+"; color: var(--accent); font-size: 18px; }
.sidebar-group.is-open > .sidebar-group-toggle::after { content: "−"; }
.sidebar-group-toggle:hover { background: rgba(171,251,2,.06); color: #fff; }
.sidebar-group-items { display: grid; gap: 1px; padding: 0 6px 7px; }
.sidebar-group-items[hidden] { display: none !important; }
.sidebar-group-items button { padding-left: 16px; font-size: 13px; }

.admin-secondary-actions {
    margin-top: 14px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #090b08;
}

.admin-secondary-actions > summary {
    padding: 12px 14px;
    color: var(--muted);
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-secondary-actions[open] > summary { color: var(--accent); border-bottom: 1px solid var(--line); }
.admin-secondary-actions > .actions,
.admin-secondary-actions > .stack { padding: 14px; }

.admin-overview-disclosure {
    margin-top: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #0a0c09;
}

.admin-overview-disclosure > summary {
    display: grid;
    gap: 3px;
    padding: 15px 16px;
    cursor: pointer;
    list-style: none;
}

.admin-overview-disclosure > summary::-webkit-details-marker { display: none; }
.admin-overview-disclosure > summary::after { content: "+"; grid-row: 1 / span 3; grid-column: 2; align-self: center; color: var(--accent); font-size: 22px; font-weight: 900; }
.admin-overview-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.admin-overview-disclosure[open] > summary::after { content: "−"; }
.admin-overview-disclosure > summary strong { color: var(--text); font-size: 18px; }
.admin-overview-disclosure > summary small { color: var(--muted); }
.admin-overview-disclosure > .admin-workflow-actions,
.admin-overview-disclosure > p { margin: 0; padding: 15px 16px; }

.admin-gallery-grid { display: grid; gap: 12px; }
.admin-gallery-item { display: grid; grid-template-columns: 180px minmax(0,1fr) 190px; gap: 16px; align-items: center; }
.admin-gallery-item > img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); background: #090b08; }
.admin-gallery-instagram { width: 100%; aspect-ratio: 4/3; display: grid; place-content: center; gap: 5px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: linear-gradient(145deg,#171717,#080908); color: var(--accent); text-align: center; }
.admin-gallery-instagram span { font-weight: 950; letter-spacing: .08em; }
.admin-gallery-instagram small { color: var(--muted); }
.admin-gallery-copy { display: grid; justify-items: start; gap: 6px; min-width: 0; }
.admin-gallery-copy strong,
.admin-gallery-copy small { overflow-wrap: anywhere; }
.admin-gallery-copy a { color: var(--accent); font-size: 12px; font-weight: 800; }
.admin-gallery-actions { display: grid; gap: 7px; }
.admin-gallery-actions label { display: grid; gap: 4px; color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.admin-gallery-actions input { width: 100%; }

.admin-main {
    padding: 24px;
    min-width: 0;
}

.admin-panel {
    display: none;
}

.admin-panel.active {
    display: block;
}

.login-wrap {
    max-width: 440px;
    margin: 70px auto;
}

.account-shell { padding-bottom: 54px; }
.account-hero { margin-bottom: 10px; }
.account-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; align-items: start; }
.account-recovery { max-width: 620px; margin-top: 16px; }
.account-identity { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-bottom: 16px; }
.account-identity h2 { overflow-wrap: anywhere; margin-bottom: 6px; }
.account-portal-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:6px; border:1px solid var(--line); border-radius:14px; background:#070907; }
.account-portal-nav button { min-height:46px; border:0; border-radius:10px; padding:9px 12px; background:transparent; color:var(--muted); font:900 12px/1.15 "Arial Narrow",Impact,sans-serif; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.account-portal-nav button:hover,.account-portal-nav button:focus-visible { color:var(--text); background:#11150e; }
.account-portal-nav button.active { color:#050505; background:var(--accent); }
.account-portal-panel { max-width:1100px; }
.account-welcome-card,.account-future-card { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.account-welcome-card h2,.account-future-card h2,.account-next-step h2 { margin:5px 0 7px; }
.account-upcoming-registration { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:center; border-color:rgba(171,251,2,.38); background:linear-gradient(135deg,rgba(171,251,2,.075),#090b08 48%); }
.account-upcoming-heading { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.account-upcoming-registration h2 { margin:7px 0 4px; }
.account-upcoming-date { margin:0; }
.account-registration-status { display:inline-flex; min-height:24px; align-items:center; border:1px solid var(--line); border-radius:999px; padding:4px 9px; color:var(--text); background:#11150e; font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.account-registration-status[data-state="confirmed"] { color:#071004; border-color:var(--accent); background:var(--accent); }
.account-registration-status[data-state="rejected"],.account-registration-status[data-state="expired"],.account-registration-status[data-state="cancelled"] { color:#ffc2c2; border-color:rgba(255,105,105,.45); background:rgba(255,105,105,.08); }
.account-upcoming-action { max-width:720px; margin:15px 0; font-weight:700; line-height:1.55; }
.account-upcoming-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:0; }
.account-upcoming-facts div { min-width:0; border:1px solid var(--line); border-radius:10px; padding:10px; background:rgba(0,0,0,.23); }
.account-upcoming-facts dt { color:var(--muted); font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.account-upcoming-facts dd { margin:4px 0 0; overflow-wrap:anywhere; font-size:12px; font-weight:800; }
.account-upcoming-actions { display:flex; width:min(100%,250px); flex-direction:column; gap:8px; }
.account-upcoming-actions .btn { width:100%; }
.account-portal-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.account-portal-kpis button { min-height:135px; text-align:left; border:1px solid var(--line); border-radius:14px; padding:18px; color:var(--text); background:#090b08; cursor:pointer; }
.account-portal-kpis button:hover,.account-portal-kpis button:focus-visible { border-color:var(--accent); transform:translateY(-1px); }
.account-portal-kpis b { display:block; color:var(--accent); font:900 34px/1 "Arial Narrow",Impact,sans-serif; }
.account-portal-kpis span { display:block; margin-top:9px; font-weight:900; text-transform:uppercase; }
.account-portal-kpis small { display:block; margin-top:5px; color:var(--muted); }
.account-next-step { gap:7px; }
.account-competition-list { display:grid; gap:10px; }
.account-competition-item { display:flex; justify-content:space-between; align-items:center; gap:18px; border:1px solid var(--line); border-radius:12px; padding:15px; background:#090b08; }
.account-competition-item span { color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.account-competition-item h3 { margin:5px 0; font-size:19px; }
.account-competition-item p { margin:0; color:var(--muted); font-size:13px; }
.account-rifle-inventory>.section-head{align-items:center}.account-rifle-list{display:grid;gap:10px}.account-rifle-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#090b08}.account-rifle-item.is-archived{opacity:.68}.account-rifle-item h3{margin:3px 0;font-size:18px}.account-rifle-item p{margin:0;color:var(--muted);font-size:13px}.account-rifle-form{display:grid;gap:13px;margin-top:5px;padding:18px;border:1px solid rgba(171,251,2,.25);border-radius:13px;background:rgba(171,251,2,.035)}.account-rifle-note{margin:0;font-size:12px}.account-rifle-state{color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.account-profile-form { max-width: 860px; }
.account-email-preferences { margin:2px 0; padding:16px; border:1px solid var(--line); border-radius:12px; background:#090b08; }
.account-email-preferences legend { padding:0 7px; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.account-preference-choice { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:start; cursor:pointer; }
.account-preference-choice input { width:20px; height:20px; margin:1px 0 0; accent-color:var(--accent); }
.account-preference-choice span { display:grid; gap:5px; line-height:1.45; }
.account-preference-choice small { color:var(--muted); }
.account-sports-summary { max-width: 980px; }
.account-sports-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.account-sports-kpis > div { border:1px solid var(--line); background:#090b08; border-radius:10px; padding:12px; }
.account-sports-kpis b { display:block; color:var(--accent); font:900 28px/1 "Arial Narrow",Impact,sans-serif; }
.account-sports-kpis span { display:block; margin-top:5px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.account-sports-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) auto; gap:10px; align-items:end; padding:14px; border:1px solid var(--line); border-radius:12px; background:#090b08; }
.account-sports-filters .field { margin:0; }
.account-sports-filter-summary { margin:0; font-size:12px; }
.account-progress-section{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#090b08}.account-progress-section h3,.account-progress-section p{margin:0}.account-progress-chart{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;min-height:230px}.account-progress-axis{display:flex;flex-direction:column;justify-content:space-between;padding:2px 0 22px;color:var(--muted);font-size:10px;font-weight:900}.account-progress-plot{position:relative;min-width:520px;height:210px;margin-bottom:20px;border-left:1px solid #343d2e;border-bottom:1px solid #343d2e;background:repeating-linear-gradient(to bottom,transparent 0,transparent 49px,rgba(171,251,2,.07) 50px)}.account-progress-plot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.account-progress-plot polyline{fill:none;stroke:var(--accent);stroke-width:5;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.account-progress-point{position:absolute;left:var(--progress-x);top:var(--progress-y);display:grid;place-items:center;width:34px;height:34px;min-width:34px;padding:0;transform:translate(-50%,-50%);border:2px solid #080a07;border-radius:50%;background:#dfe6d8;color:#050505;font:900 13px/1 Barlow,Arial,sans-serif;box-shadow:0 0 0 2px rgba(171,251,2,.25);cursor:pointer}.account-progress-point:hover,.account-progress-point:focus-visible,.account-progress-point.active{outline:0;background:var(--accent);box-shadow:0 0 0 5px rgba(171,251,2,.18)}.account-progress-detail{min-height:22px;padding-top:10px;border-top:1px solid var(--line);font-size:12px}.account-progress-section{overflow-x:auto}.account-progress-section>.section-head,.account-progress-section>.account-progress-detail{position:sticky;left:0}
.account-sports-breakdowns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.account-sports-breakdowns > section { min-width:0; padding:15px; border:1px solid var(--line); border-radius:12px; background:#090b08; }
.account-sports-breakdowns h3 { margin:0 0 11px; font-size:17px; }
.account-sports-breakdown-list { display:grid; gap:8px; }
.account-sports-breakdown-list article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 10px; padding:10px; border:1px solid #242b20; border-radius:9px; background:#070907; }
.account-sports-breakdown-list article strong { overflow-wrap:anywhere; }
.account-sports-breakdown-list article span { color:var(--accent); font-size:11px; font-weight:900; }
.account-sports-breakdown-list article small { grid-column:1/-1; color:var(--muted); line-height:1.45; }
.account-photo-card { max-width: 860px; margin-top: 16px; }
.account-photo-layout { display:grid; grid-template-columns:128px minmax(0,1fr); gap:20px; align-items:start; }
.account-photo-frame { width:128px; height:128px; overflow:hidden; display:grid; place-items:center; border:1px dashed var(--line); border-radius:50%; color:var(--muted); background:#090b08; font-size:11px; font-weight:900; letter-spacing:.12em; }
.account-photo-frame img { display:block; width:100%; height:100%; object-fit:cover; }
.account-photo-copy { gap:10px; }
.account-photo-copy .field { margin:0; }
.account-photo-note { margin:2px 0 0; font-size:12px; }
.account-photo-editor { display:grid; gap:12px; padding:13px; border:1px solid var(--line); border-radius:14px; background:#070907; }
.account-photo-editor.hidden { display:none; }
.account-photo-editor p { margin:4px 0 0; }
.account-photo-editor canvas { display:block; width:min(100%,420px); aspect-ratio:1; margin:auto; border:1px solid var(--line); border-radius:12px; background:#020302; cursor:grab; touch-action:none; }
.account-photo-editor canvas:active { cursor:grabbing; }
.account-photo-editor canvas:focus-visible { outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent); outline-offset:3px; }
.account-photo-editor input[type="range"] { width:100%; accent-color:var(--accent); }
.admin-photo-preview { display:block; width:min(100%,220px); aspect-ratio:1; object-fit:cover; border-radius:12px; border:1px solid var(--line); background:#090b08; }
.admin-photo-review-workspace { grid-column:1/-1; }
.section-head.compact { margin-bottom:0; }
.section-head.compact h3 { margin:4px 0 5px; }
.admin-photo-review-toolbar { display:flex; align-items:end; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.admin-photo-review-toolbar .field { min-width:190px; margin:0; }
.admin-photo-review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.admin-photo-review-grid > .empty { grid-column:1/-1; padding:20px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); text-align:center; }
.admin-photo-review-card { display:flex; flex-direction:column; gap:11px; min-width:0; padding:12px; border:1px solid var(--line); border-radius:14px; background:#090b08; }
.admin-photo-review-card img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; border:1px solid var(--line); background:#050605; }
.admin-photo-review-card h4 { margin:0; overflow-wrap:anywhere; }
.admin-photo-review-card p { margin:0; overflow-wrap:anywhere; }
.admin-photo-review-card .photo-review-email { color:var(--muted); font-size:12px; }
.admin-photo-review-card .photo-review-meta { display:flex; gap:6px; flex-wrap:wrap; }
.admin-photo-review-card .actions { margin-top:auto; }
.admin-photo-review-card .actions .btn { flex:1; }
.admin-photo-review-manual { border-top:1px solid var(--line); padding-top:11px; }
.admin-photo-review-manual summary { color:var(--muted); font-weight:800; cursor:pointer; }
.admin-photo-review-manual[open] summary { margin-bottom:12px; color:var(--text); }

@media (max-width:700px) {
    .account-grid { grid-template-columns: 1fr; }
    .account-identity { align-items: flex-start; flex-direction: column; }
    .account-portal-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .account-welcome-card,.account-future-card,.account-competition-item,.account-rifle-item { align-items:flex-start; flex-direction:column; }
    .account-upcoming-registration { grid-template-columns:1fr; align-items:start; }
    .account-upcoming-facts { grid-template-columns:1fr; }
    .account-upcoming-actions { width:100%; }
    .account-rifle-inventory>.section-head{align-items:flex-start}.account-rifle-inventory>.section-head .btn{width:100%}
    .account-portal-kpis { grid-template-columns:1fr; }
    .account-portal-kpis button { min-height:auto; }
    .account-sports-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .account-sports-filters,.account-sports-breakdowns { grid-template-columns:1fr; }
    .account-sports-filters .btn { width:100%; }
    .account-progress-section{padding:13px}.account-progress-chart{min-width:570px}.account-progress-plot{height:190px}
    .account-photo-layout { grid-template-columns:1fr; }
    .account-photo-frame { margin:auto; }
    .admin-photo-review-grid { grid-template-columns:1fr; }
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 12px;
}

.form-row.three {
    grid-template-columns: repeat(3,1fr);
}

.stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.actions {
    display: flex;
    gap: 9px;
    align-items: center;
    flex-wrap: wrap;
}

.preview {
    max-height: 420px;
    overflow: auto;
}

.muted {
    color: var(--muted);
}

.danger-text {
    color: #ff8585;
}

.ok-text {
    color: var(--accent);
}

.admin-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 22px;
}

.admin-top h1 {
    font: 900 34px/1 "Arial Narrow",Impact,sans-serif;
    text-transform: uppercase;
    margin: 0;
}
.admin-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.admin-notification-bell{position:relative;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:#0b0e09;color:#e9eee2;font:900 12px/1 Barlow,Arial,sans-serif;letter-spacing:.04em;cursor:pointer}.admin-notification-bell:hover,.admin-notification-bell:focus-visible{border-color:var(--accent);color:var(--accent)}.admin-notification-count{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;padding:0 4px;border-radius:12px;background:var(--accent);color:#071003;font-size:11px}.admin-notifications{display:grid;gap:16px;margin:0 0 22px}.admin-notifications-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.admin-notifications-heading h2{margin:4px 0 6px}.admin-notifications-heading p{margin:0}.admin-notifications-list{display:grid;gap:8px;max-height:360px;overflow:auto}.admin-notification-item{display:grid;gap:4px;width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;background:#090b08;color:#eef2e9;text-align:left;font:inherit;cursor:pointer}.admin-notification-item:hover,.admin-notification-item:focus-visible{border-color:rgba(171,251,2,.72);background:#10150c}.admin-notification-item.is-unread{border-left:4px solid var(--accent)}.admin-notification-item span{color:#c4cabb}.admin-notification-item small{color:var(--muted)}.admin-notification-preferences{padding-top:14px;border-top:1px solid var(--line)}.admin-notification-preferences p{margin:5px 0 10px;max-width:700px}
@media(max-width:700px){.admin-top-actions{width:100%;justify-content:flex-start}.admin-notifications-heading{flex-direction:column}.admin-notifications-heading .btn{width:100%}.admin-notification-preferences .actions{display:grid;grid-template-columns:1fr}.admin-notification-preferences .actions .btn{width:100%}}

.category-config {
    display: grid;
    grid-template-columns: 1.6fr .6fr .8fr .8fr .5fr;
    gap: 9px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #20251d;
}

.category-config input[type=checkbox] {
    width: auto;
}

.category-config-help {
    max-width: 850px;
    margin: 8px 0 4px;
}

.category-config-pending {
    opacity: .62;
}

.category-config-pending .cat-name {
    cursor: not-allowed;
}

.profile-hero {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: end;
}

.profile-title-block { display: flex; align-items: center; gap: 18px; min-width: 0; }
.profile-title-block h1 { overflow-wrap: anywhere; }
.profile-avatar { display: grid; place-items: center; flex: 0 0 94px; width: 94px; height: 94px; overflow: hidden; border: 2px solid rgba(171,251,2,.45); border-radius: 50%; background: #172013; color: var(--accent); font-size: 36px; font-weight: 900; }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }

.profile-id {
    font: 900 22px/1 monospace;
    color: var(--accent);
}

@media (max-width:950px){
    .grid.cards {
        grid-template-columns: repeat(2,1fr);
    }

    .kpis {
        grid-template-columns: repeat(2,1fr);
    }

    .filters {
        grid-template-columns: repeat(2,1fr);
    }

    .hero {
        grid-template-columns: 1fr;
    }

    .admin-shell {
        grid-template-columns: 1fr;
    }

    .sidebar {
        display: flex;
        align-items: flex-start;
        overflow: auto;
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding: 8px;
    }

    .sidebar button {
        min-width: max-content;
        width: auto;
    }

    .sidebar-group { flex: 0 0 auto; min-width: 170px; margin: 0 3px; }
    .sidebar-group-toggle { min-height: 44px; white-space: nowrap; }
    .sidebar-group-items button { width: 100%; }

    .admin-main {
        padding: 18px 0;
    }

    .shell.admin-container {
        width: min(1180px,calc(100% - 24px));
    }

    .category-config {
        grid-template-columns: 1fr 90px 90px;
    }

    .category-config>*:nth-child(4),
    .category-config>*:nth-child(5) {
        grid-column: auto;
    }
}

@media (max-width:700px) {
    .admin-gallery-item { grid-template-columns: 92px minmax(0,1fr); align-items: start; }
    .admin-gallery-actions { grid-column: 1/-1; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width:700px){
    .topbar-inner {
        min-height: 64px;
    }

    .menu-btn {
        display: block;
        min-width: 44px;
        min-height: 44px;
    }

    .nav {
        display: none;
        position: absolute;
        top: 64px;
        left: 0;
        right: 0;
        background: #080a07;
        padding: 12px 14px;
        border-bottom: 1px solid var(--line);
        align-items: stretch;
        max-height: calc(100dvh - 64px);
        overflow-y: auto;
    }

    .nav.open {
        display: flex;
        flex-direction: column;
    }

    .nav a {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 12px;
    }

    .pwa-install-btn {
        min-height: 44px;
        padding: 12px;
        text-align: left;
        width: 100%;
    }

    .hero {
        padding-top: 46px;
    }

    .hero h1 {
        font-size: clamp(36px,11vw,46px);
        line-height: .98;
    }

    .hero p {
        font-size: 16px;
    }

    .grid.cards,
    .podium,
    .split {
        grid-template-columns: 1fr;
    }

    .kpis,
    .filters,
    .form-row,
    .form-row.three {
        grid-template-columns: 1fr;
    }

    .section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    body.menu-open {
        overflow: hidden;
    }

    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea,
    .btn,
    .btn.small,
    .sidebar button,
    .ops-tabs button {
        min-height: 44px;
    }

    .profile-hero {
        grid-template-columns: 1fr;
    }

    .profile-title-block { align-items: flex-start; }

    .profile-avatar { flex-basis: 70px; width: 70px; height: 70px; font-size: 28px; }

    .category-config {
        grid-template-columns: 1fr 1fr;
    }

    .category-config .cat-name {
        grid-column: 1/-1;
    }

    .data-table {
        min-width: 680px;
    }

    .admin-top {
        align-items: flex-start;
        flex-direction: column;
    }
}

.brand-logo {
    display: block;
    width: auto;
    height: 46px;
    max-width: 120px;
    object-fit: contain;
    flex-shrink: 0;
}

.registration-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.registration-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.registration-detail-grid>div{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#0b0b0b}.registration-edit-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.audit-values{max-width:320px;max-height:180px;margin:0;overflow:auto;white-space:pre-wrap;font:12px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace}.registrations-table .pill{margin:2px}.pill.warn{color:#f5d65b;border-color:#6e6027}.pill.danger{color:#ff8585;border-color:#713737}.sidebar button[data-panel="registrations"]{border-left:3px solid var(--accent)}
@media(max-width:950px){.registration-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.registration-detail-grid{grid-template-columns:1fr}.registration-kpis{grid-template-columns:1fr 1fr}}
.help-summary{display:grid;gap:8px;align-content:center;min-height:180px;text-align:center}.help-summary strong{font:900 clamp(3rem,8vw,6rem)/.9 "Arial Narrow",Impact,sans-serif;color:var(--accent);font-style:italic}.help-summary span{color:var(--muted);font-weight:800}.help-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.help-step{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}.help-step>span{display:grid;place-items:center;width:48px;height:40px;background:var(--accent);color:#050505;font-weight:1000;clip-path:polygon(10% 0,100% 0,90% 100%,0 100%)}.help-step h3{margin:0 0 7px;text-transform:uppercase;font-style:italic}.help-step p{margin:0;color:var(--muted);line-height:1.55}.help-callout{display:flex;justify-content:space-between;gap:24px;align-items:center;border-left:4px solid var(--accent)}.help-callout h2{margin:7px 0}.help-callout p{margin:0;color:var(--muted)}.faq-list{display:grid;gap:10px}.faq-list details{padding:0}.faq-list summary{cursor:pointer;padding:18px 20px;font-weight:900;text-transform:uppercase}.faq-list details p{padding:0 20px 20px;margin:0;color:var(--muted);line-height:1.6}.faq-list details[open]{border-color:var(--accent)}
@media(max-width:700px){.help-steps{grid-template-columns:1fr}.help-callout{align-items:flex-start;flex-direction:column}.help-callout .btn{width:100%}}
/* Seguridad/CSP: sustituye estilos inline del panel y utilidades dinámicas. */
.admin-login-title{font:900 38px/1 'Arial Narrow',Impact,sans-serif;margin:8px 0}.table-wrap-spaced{margin-top:14px}.copy-helper{position:fixed;opacity:0;pointer-events:none}
/* Operaciones de evento: ruta aislada de la web pública. */
.sidebar-link{display:block;width:100%;text-align:left;color:#afb7a8;padding:11px 12px;border-radius:10px;font-weight:800;margin:2px 0;text-decoration:none}.sidebar-link:hover{background:rgba(171,251,2,.09);color:var(--accent)}.operations-shell{padding:28px 0 54px}.ops-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.ops-top h1{font:900 clamp(32px,5vw,48px)/.95 'Arial Narrow',Impact,sans-serif;text-transform:uppercase;margin:7px 0}.ops-context-card{margin-bottom:16px}.ops-pills{display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-height:46px}.ops-scan-notice{margin-bottom:16px}.ops-tabs{display:flex;gap:8px;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:10px}.ops-tabs button{border:1px solid var(--line);background:#080a07;color:var(--muted);border-radius:10px;padding:10px 14px;font-weight:900;letter-spacing:.03em;cursor:pointer;white-space:nowrap}.ops-tabs button.active,.ops-tabs button:hover{background:rgba(171,251,2,.09);border-color:rgba(171,251,2,.45);color:var(--accent)}.ops-panel{display:none}.ops-panel.active{display:block}.ops-work-grid{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:16px;align-items:start}.ops-work-grid-lower{margin-top:16px}.ops-empty{border:1px dashed #3b4435;border-radius:12px;padding:16px;color:var(--muted);line-height:1.5}.ops-result{border:1px solid var(--line);border-radius:12px;padding:14px;background:#090b08}.ops-person{display:grid;gap:4px}.ops-person strong{font-size:18px}.ops-person span{color:var(--accent);font:800 13px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace}.ops-person small{color:var(--muted);line-height:1.45}.ops-rifle-summary{display:grid;gap:4px;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.ops-rifle-summary span,.ops-rifle-summary small{color:var(--muted)}.ops-rifles-table{min-width:600px}.ops-issued-tag{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px;align-items:center;margin-top:16px}.ops-issued-tag>img{grid-column:2;grid-row:1/4;width:100%;max-width:230px;background:#fff;border-radius:10px;padding:10px}.ops-issued-tag .ops-code{grid-column:1;overflow-wrap:anywhere;padding:10px;border:1px dashed #4c5843;border-radius:10px;color:var(--accent);font-size:12px}.ops-issued-tag .actions{grid-column:1}.ops-session-log{display:grid;gap:10px;margin:0;padding-left:0;list-style:none}.ops-session-log li{display:grid;grid-template-columns:80px 1fr;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#090b08}.ops-session-log time{color:var(--accent);font:800 12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}.ops-session-log span{line-height:1.45}
@media(max-width:950px){.sidebar-link{min-width:max-content;width:auto}.ops-work-grid{grid-template-columns:1fr}.ops-issued-tag{grid-template-columns:1fr}.ops-issued-tag>img{grid-column:1;grid-row:auto;width:min(230px,100%)}.ops-issued-tag .ops-code,.ops-issued-tag .actions{grid-column:1}}
@media(max-width:700px){.operations-shell{padding:22px 0 40px}.ops-top{flex-direction:column}.ops-tabs{margin-left:-2px;margin-right:-2px}.ops-session-log li{grid-template-columns:1fr;gap:4px}}

.ops-camera{margin:0 0 16px;border-color:rgba(171,251,2,.45)}
.ops-camera-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(220px,.55fr);gap:18px;align-items:start}
.ops-camera-preview{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#000;min-height:260px}
.ops-camera-preview video{display:block;width:100%;min-height:260px;max-height:58vh;aspect-ratio:4/3;object-fit:cover;background:#000}
.ops-camera-guide{position:absolute;left:50%;top:50%;width:min(68%,300px);aspect-ratio:1;transform:translate(-50%,-50%);border:3px solid var(--accent);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.28),0 0 22px rgba(171,251,2,.28);pointer-events:none}
.ops-print-frame{position:fixed;right:0;bottom:0;width:1px;height:1px;border:0;opacity:.01;pointer-events:none}
@media(max-width:700px){.ops-camera-grid{grid-template-columns:1fr}.ops-camera-preview,.ops-camera-preview video{min-height:220px}}
/* Administración de permisos operativos por competencia. */
.operations-staff-selector{max-width:520px}.operations-staff-table{min-width:1120px}.operations-staff-table th:not(:first-child),.operations-staff-table td:not(:first-child){vertical-align:top}.operations-capability{display:grid;gap:6px;min-width:155px}.operations-capability label{font-size:12px;color:var(--muted);font-weight:800}.operations-capability input[type="datetime-local"]{min-width:150px;padding:8px;font-size:12px}.operations-inherited{min-width:150px;color:var(--muted);line-height:1.45}.operations-staff-table .btn{white-space:nowrap}
/* Paginación: mantiene las consultas públicas pequeñas aunque aumente el historial. */
.pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:18px}.pager .btn{min-width:120px}@media(max-width:520px){.pager{justify-content:space-between;gap:8px}.pager .btn{min-width:0;padding-left:12px;padding-right:12px}.pager .muted{font-size:12px;text-align:center}}
.offline-shell{min-height:100vh;display:grid;place-items:center;padding:28px 0}.offline-card{max-width:560px;text-align:center}
/* Noticias públicas: solo texto, para conservar la lectura accesible y evitar contenido incrustado. */
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.news-card{display:flex;min-height:260px;flex-direction:column;align-items:flex-start}.news-card h2{margin:6px 0 10px;font:900 clamp(24px,3vw,34px)/1.02 'Arial Narrow',Impact,sans-serif;text-transform:uppercase}.news-card p:not(.eyebrow){color:var(--muted);line-height:1.6;margin:0 0 18px}.news-card .btn{margin-top:auto}.news-article{max-width:880px;margin:20px auto 0;padding:clamp(24px,5vw,58px)}.news-article h1{font:900 clamp(36px,7vw,68px)/.95 'Arial Narrow',Impact,sans-serif;text-transform:uppercase;margin:8px 0 30px}.news-article-body{white-space:pre-wrap;overflow-wrap:anywhere;color:#e7e9e4;line-height:1.75;font-size:17px}.news-hero{padding-bottom:12px}@media(max-width:950px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.news-grid{grid-template-columns:1fr}.news-article-body{font-size:16px}}
.competition-banner{width:100%;max-height:170px;object-fit:cover;border-radius:8px;margin:-4px 0 12px;background:#111}
/* Conciliación privada de pagos online: el detalle y las decisiones son administrativos. */
.sidebar button[data-panel="payment-reviews"]{border-left:3px solid #68cfff}.payment-review-competition{max-width:520px}.payment-review-table{min-width:1080px}.payment-review-table .actions{min-width:130px}.payment-review-detail{margin-top:16px}.payment-review-detail h3{margin:4px 0}.payment-review-decision{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.payment-review-decision .actions{align-items:end}.payment-review-warning{margin:0 0 14px}.payment-review-status{display:grid;gap:4px}.payment-review-status strong{font-size:16px}.payment-review-status small{color:var(--muted);line-height:1.45}@media(max-width:700px){.payment-review-kpis{grid-template-columns:1fr 1fr}.payment-review-decision .form-row{grid-template-columns:1fr}}

/* Orientación administrativa: accesos y estados de trabajo, sin cambiar permisos ni acciones. */
.admin-workflow{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:16px;padding:18px 20px;border-left:4px solid var(--accent)}.admin-workflow h2{margin:5px 0 6px;font:900 24px/1 'Arial Narrow',Impact,sans-serif;text-transform:uppercase}.admin-workflow p{max-width:680px;margin:0;line-height:1.5}.admin-workflow-actions,.registration-quick-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.admin-workflow-actions{justify-content:flex-end}.admin-workflow-actions .btn{white-space:nowrap}.registration-quick-actions{margin:2px 0 0;padding:12px;border:1px solid var(--line);border-radius:11px;background:#090b08}.registration-quick-actions>span{margin-right:4px;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.registration-quick-actions .btn{padding:8px 10px}.operation-hint{margin:0;padding:12px 14px;border-left:3px solid var(--accent);border-radius:8px;background:rgba(171,251,2,.05);color:#c8d0c1;font-size:13px;line-height:1.5}.admin-panel .card.stack>.operation-hint{margin-top:2px}.sidebar button[data-panel="round-plans"],.sidebar button[data-panel="speed-challenge"]{border-left:3px solid rgba(171,251,2,.55)}.sidebar button[data-panel="speed-challenge"]{border-left-color:#79d7ff}.sidebar button:focus-visible,.sidebar-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.registrations-table tbody tr{cursor:pointer}.registrations-table tbody tr:focus-within td{background:rgba(171,251,2,.06)}
@media(min-width:951px){.sidebar{position:sticky;top:72px;align-self:start;max-height:calc(100vh - 72px);overflow-y:auto}}

/* Home simplificado y álbum editorial */
.home-actions-section { padding-top: 8px; }
.compact-head { margin-bottom: 14px; }
.home-action-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.home-action-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 13px; min-height: 92px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(135deg,#0b0e09,#080908); color: #f5f6f2; text-decoration: none; transition: border-color .2s ease,transform .2s ease,background .2s ease; }
.home-action-card:hover { transform: translateY(-2px); border-color: rgba(171,251,2,.55); background: #10150c; }
.home-action-card.is-primary { border-color: rgba(171,251,2,.6); background: linear-gradient(135deg,rgba(171,251,2,.16),#0a0d08 55%); }
.home-action-number { color: var(--accent); font: 900 13px/1 ui-monospace,SFMono-Regular,Consolas,monospace; }
.home-action-card > span:nth-child(2) { display: grid; gap: 4px; }
.home-action-card strong { font: 900 19px/1 "Arial Narrow",Impact,sans-serif; text-transform: uppercase; }
.home-action-card small { color: var(--muted); font-size: 12px; }
.home-action-card > span:last-child { color: var(--accent); font-size: 23px; }

/* Ficha pública reutilizable de cada competencia. */
.competition-detail-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 18% 20%,rgba(171,251,2,.1),transparent 34%),#050605; }
.competition-detail-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,6,5,.97) 0%,rgba(5,6,5,.9) 48%,rgba(5,6,5,.5)),var(--competition-banner); background-position: center; background-size: cover; opacity: .62; }
.competition-detail-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); gap: 34px; align-items: end; min-height: 520px; padding-top: 90px; padding-bottom: 62px; }
.competition-detail-hero h1 { max-width: 850px; margin: 14px 0 18px; font-size: clamp(48px,8vw,108px); line-height: .88; }
.competition-detail-hero p { max-width: 650px; }
.competition-detail-hero .eyebrow { display: block; }
.back-link { display: inline-block; margin-bottom: 30px; color: var(--muted); font-size: 12px; font-weight: 900; letter-spacing: .08em; text-decoration: none; }
.competition-facts { display: grid; gap: 18px; }
.competition-facts > div { display: grid; gap: 5px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.competition-facts > div:last-child { padding-bottom: 0; border-bottom: 0; }
.competition-facts small { color: var(--accent); font-weight: 900; letter-spacing: .1em; }
.competition-facts strong { font-size: 18px; }
.competition-category-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(235px,1fr)); gap: 16px; }
.competition-category-card { display: grid; align-content: start; gap: 12px; }
.competition-category-card h3,.competition-category-card p { margin: 0; }
.competition-tools .home-action-card { width: 100%; text-align: left; font: inherit; cursor: pointer; }
.home-action-card.is-disabled { opacity: .45; pointer-events: none; }
.competition-overview-card { display: grid; gap: 16px; }
.competition-overview-card p { margin: 0; color: #e8ece4; font-size: clamp(17px,2vw,21px); line-height: 1.65; }
.competition-overview-card address { white-space: pre-line; font-style: normal; line-height: 1.55; }
.competition-agenda { display: grid; gap: 10px; }
.competition-agenda-item { display: grid; grid-template-columns: minmax(180px,.35fr) minmax(0,1fr); gap: 22px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 13px; background: #080a07; }
.competition-agenda-item time { color: var(--accent); font-weight: 900; }
.competition-agenda-item h3,.competition-agenda-item p { margin: 0; }
.competition-agenda-item div { display: grid; gap: 5px; }
.competition-agenda-item small,.competition-agenda-item p { color: var(--muted); }
.competition-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.competition-gallery-grid figure { position: relative; overflow: hidden; min-height: 260px; margin: 0; border: 1px solid var(--line); border-radius: 14px; background: #0a0b09; }
.competition-gallery-grid img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.competition-gallery-grid figcaption { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: 38px 14px 14px; background: linear-gradient(transparent,rgba(0,0,0,.9)); color: #fff; font-size: 13px; }
.competition-sponsor-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 10px; }
.competition-sponsor-grid a,.competition-sponsor-grid div { display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 12px; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: #080a07; color: #fff; text-decoration: none; }
.competition-sponsor-grid a:hover { border-color: var(--accent); }
.competition-sponsor-grid span { color: var(--accent); font-size: 22px; }
.competition-sponsor-grid .competition-sponsor-card { justify-content: flex-start; }
.competition-sponsor-card img { width: 84px; height: 56px; object-fit: contain; flex: 0 0 auto; border-radius: 8px; background: #fff; padding: 5px; }
.competition-sponsor-card .competition-sponsor-copy { display: grid; gap: 4px; min-width: 0; color: #fff; font-size: inherit; }
.competition-sponsor-copy small { color: var(--accent); font-size: 11px; letter-spacing: .08em; }
.competition-sponsor-card b { margin-left: auto; color: var(--accent); font-size: 22px; }
.competition-sponsor-preview { width: 120px; height: 72px; object-fit: contain; align-self: end; border-radius: 9px; background: #fff; padding: 6px; }
.competition-faq-list { display: grid; gap: 9px; }
.competition-faq-list details { border: 1px solid var(--line); border-radius: 12px; background: #080a07; }
.competition-faq-list summary { padding: 17px 19px; cursor: pointer; color: #f4f6f1; font-weight: 900; }
.competition-faq-list p { margin: 0; padding: 0 19px 19px; color: var(--muted); line-height: 1.65; white-space: pre-line; }
.competition-content-editor { margin-top: 24px; border-color: rgba(171,251,2,.35); }
.competition-content-block { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
.competition-content-block h4 { margin: 0; font-size: 18px; }
.competition-repeat-list { display: grid; gap: 12px; }
.competition-repeat-row { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #090b08; }
.competition-repeat-row > .btn { justify-self: end; }
.competition-gallery-admin { display: grid; gap: 10px; }
.competition-gallery-admin-item { display: grid; grid-template-columns: 90px minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 11px; }
.competition-gallery-admin-item img { width: 90px; height: 72px; object-fit: cover; border-radius: 7px; }
.competition-gallery-admin-item > div { display: grid; gap: 5px; }
.competition-gallery-admin-item small { color: var(--muted); }

.home-gallery { position: relative; }
.home-gallery-viewport { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #090b08; outline: none; }
.home-gallery-viewport:focus-visible { box-shadow: 0 0 0 2px var(--accent); }
.home-gallery-track { display: flex; transition: transform .55s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.home-gallery-slide { flex: 0 0 100%; min-width: 0; }
.home-gallery-slide > a,
.home-gallery-slide > div { position: relative; display: block; min-height: clamp(310px,48vw,610px); color: #fff; text-decoration: none; }
.home-gallery-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-gallery-slide > a::after,
.home-gallery-slide > div::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent,rgba(0,0,0,.86)); pointer-events: none; }
.home-gallery-slide.is-instagram > div { min-height: clamp(610px,72vw,720px); display: grid; place-items: center; padding: 18px 72px; background: #050505; }
.home-gallery-slide.is-instagram > div::after { display: none; }
.home-instagram-embed { display: block; width: min(100%,540px); height: 660px; border: 0; border-radius: 12px; background: #fff; }
.home-gallery-caption { position: absolute; z-index: 1; left: clamp(18px,4vw,42px); right: clamp(18px,4vw,42px); bottom: clamp(18px,4vw,36px); max-width: 720px; font: 900 clamp(19px,3vw,30px)/1.05 "Arial Narrow",Impact,sans-serif; text-transform: uppercase; text-shadow: 0 2px 16px #000; }
.home-gallery-control { position: absolute; z-index: 3; top: 50%; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(0,0,0,.68); color: #fff; cursor: pointer; font-size: 33px; line-height: 1; transform: translateY(-50%); }
.home-gallery-control:hover { color: #080a07; border-color: var(--accent); background: var(--accent); }
.home-gallery-control.previous { left: 14px; }
.home-gallery-control.next { right: 14px; }
.home-gallery-footer { display: flex; align-items: center; justify-content: flex-end; gap: 12px; min-height: 42px; padding-top: 9px; }
.home-recent-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }

@media (prefers-reduced-motion:reduce) {
    .home-gallery-track,
    .home-action-card { transition: none; }
}

@media(max-width:760px) {
    .home-action-grid,
    .home-recent-grid { grid-template-columns: 1fr; }
    .home-action-card { min-height: 76px; padding: 14px; }
    .home-gallery-slide > a,
    .home-gallery-slide > div { min-height: 360px; }
    .home-gallery-slide.is-instagram > div { min-height: 650px; padding: 12px; }
    .home-instagram-embed { height: 620px; }
    .home-gallery-control { width: 42px; height: 42px; }
    .home-gallery-control.previous { left: 8px; }
    .home-gallery-control.next { right: 8px; }
    .competition-detail-hero-inner { grid-template-columns: 1fr; min-height: auto; padding-top: 56px; padding-bottom: 38px; }
    .competition-detail-hero h1 { font-size: clamp(43px,14vw,66px); }
    .competition-facts { padding: 18px; }
    .competition-agenda-item { grid-template-columns: 1fr; gap: 8px; padding: 15px; }
    .competition-gallery-grid { grid-template-columns: 1fr; }
    .competition-gallery-grid figure { min-height: 330px; }
    .competition-gallery-admin-item { grid-template-columns: 72px minmax(0,1fr); }
    .competition-gallery-admin-item img { width: 72px; height: 62px; }
    .competition-gallery-admin-item .actions { grid-column: 1/-1; }
}

/* Herramientas públicas para compartir resultados */
.result-share-menu { margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; background: #080a07; }
.result-share-menu > summary { width: max-content; margin: 12px; list-style: none; cursor: pointer; }
.result-share-menu > summary::-webkit-details-marker { display: none; }
.result-share-menu[open] > summary { color: #080a07; background: var(--accent); }
.result-share-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 12px 10px; }
.result-share-menu > small { display: block; padding: 0 12px 12px; color: var(--muted); line-height: 1.45; }
.result-share-menu > .status-line { margin: 0; padding: 0 12px 12px; }

@media(max-width:600px) {
    .result-share-menu > summary { width: calc(100% - 24px); text-align: center; }
    .result-share-actions { display: grid; grid-template-columns: 1fr; }
    .result-share-actions .btn { width: 100%; }
}
@media(max-width:700px){.admin-workflow{align-items:flex-start;flex-direction:column;gap:14px}.admin-workflow-actions{width:100%;justify-content:flex-start}.admin-workflow-actions .btn{flex:1 1 150px}.registration-quick-actions{align-items:stretch}.registration-quick-actions>span{width:100%}.registration-quick-actions .btn{flex:1 1 130px}.operation-hint{font-size:12px}}

/* Ranking oficial: escala fija, controles nativos y sin estilos inline (CSP). */
.ranking-chart{margin:24px 0;padding:20px;border:1px solid var(--line);border-radius:16px;background:#090c08}
.ranking-chart-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:18px 0}.ranking-chart-toolbar>div{min-width:0}.ranking-chart-toolbar h3{margin:0;font-size:21px;overflow-wrap:anywhere}.ranking-chart-toolbar p{margin:5px 0}.ranking-chart-toolbar label{display:grid;gap:6px;min-width:0;max-width:100%;font-size:13px}.ranking-chart-toolbar select{max-width:100%;min-width:0}.ranking-chart-help{font-size:13px;color:var(--muted)}
.ranking-chart-bars{display:grid;gap:10px}.ranking-chart-row{display:grid;grid-template-columns:36px 40px minmax(0,1fr) auto;align-items:center;gap:8px 12px;width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;color:#fff;background:#0e120b;text-align:left;cursor:pointer;font:inherit}.ranking-chart-row:hover,.ranking-chart-row[aria-pressed=true]{border-color:var(--accent);background:#17200e}.ranking-chart-row:focus-visible,.home-ranking-panel summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.ranking-chart-position{color:var(--accent);font-size:13px;font-weight:900}.ranking-chart-avatar{position:relative;display:grid;place-items:center;width:40px;height:40px;overflow:hidden;border-radius:50%;background:#26321a;color:#ddffb2;font-weight:900}.ranking-chart-avatar img{position:absolute;inset:0;object-fit:cover;width:40px;height:40px}.ranking-chart-name{min-width:0;overflow-wrap:anywhere;font-weight:800}.ranking-chart-name small,.ranking-chart-points small{display:block;color:var(--muted);font-weight:400;font-size:11px}.ranking-chart-points{text-align:right;white-space:nowrap;color:var(--accent);font-size:20px}.ranking-chart-meter{grid-column:3/-1;width:100%;height:10px;border:0;border-radius:9px;overflow:hidden;background:#26301f;appearance:none}.ranking-chart-meter::-webkit-meter-bar{height:10px;background:#26301f;border:0;border-radius:9px}.ranking-chart-meter::-webkit-meter-optimum-value{background:var(--accent);border-radius:9px}.ranking-chart-meter::-moz-meter-bar{background:var(--accent)}.is-provisional .ranking-chart-meter::-webkit-meter-optimum-value{background:#b6bfad}.is-provisional .ranking-chart-meter::-moz-meter-bar{background:#b6bfad}
.ranking-chart-detail{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:12px;overflow-wrap:anywhere}.ranking-chart-detail>div{display:grid;gap:5px}.ranking-chart-detail dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ranking-chart-detail dt{font-size:12px;color:var(--muted)}.ranking-chart-detail dd{margin:5px 0;font-weight:900;color:var(--accent)}.ranking-chart-selection>p{font-size:12px}.home-ranking-panel summary{cursor:pointer;font-size:20px;font-weight:800}.home-ranking-panel summary span{display:block;margin:6px 0;font-size:13px;font-weight:400}
@media(max-width:600px){.ranking-chart{padding:12px}.ranking-chart-toolbar{align-items:stretch}.ranking-chart-toolbar>label{flex:1 1 140px}.ranking-chart-row{grid-template-columns:25px 32px minmax(0,1fr) auto;gap:7px;padding:9px}.ranking-chart-avatar,.ranking-chart-avatar img{width:32px;height:32px}.ranking-chart-name{font-size:13px}.ranking-chart-points{font-size:17px}.ranking-chart-detail{padding:12px}.ranking-chart-detail dl{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Llave pública de Speed Challenge: resultados deportivos sin datos privados. */
.speed-results-card{overflow:hidden}.speed-results-head{align-items:flex-start}.speed-bracket-result{display:grid;gap:18px}.speed-bracket-result+.speed-bracket-result{margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}
.speed-champion{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px;border:1px solid rgba(171,251,2,.55);border-radius:14px;background:linear-gradient(115deg,rgba(171,251,2,.14),rgba(9,11,8,.96) 58%);box-shadow:0 12px 35px rgba(0,0,0,.28)}.speed-trophy{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--accent);color:#050505;font:900 28px/1 Impact,'Arial Narrow',sans-serif;box-shadow:0 0 0 7px rgba(171,251,2,.08)}.speed-champion-copy,.speed-runner-up{display:grid;gap:4px;min-width:0}.speed-champion-copy>span,.speed-runner-up>span{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.12em}.speed-champion-copy>a{width:max-content;max-width:100%;color:#fff;font:900 clamp(24px,4vw,38px)/1 Impact,'Arial Narrow',sans-serif;text-transform:uppercase;text-decoration:none}.speed-champion-copy>a:hover,.speed-champion-copy>a:focus-visible{color:var(--accent)}.speed-champion-copy small,.speed-runner-up small{color:var(--muted)}.speed-runner-up{padding-left:20px;border-left:1px solid var(--line);text-align:right}.speed-runner-up strong{font-size:17px;color:#fff}
.speed-bracket-meta{display:flex;flex-wrap:wrap;gap:8px}.speed-bracket-meta>span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#080a07;color:var(--muted);font-size:12px}.speed-bracket-meta strong{color:#e7ecdf}
.speed-bracket{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;align-items:stretch}.speed-round{display:flex;min-width:0;flex-direction:column;padding:12px;border:1px solid var(--line);border-radius:13px;background:rgba(8,10,7,.78)}.speed-round-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:3px 3px 10px;border-bottom:1px solid var(--line)}.speed-round-title span{color:var(--accent);font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.speed-round-title small{color:var(--muted)}.speed-round-matches{display:flex;flex:1;flex-direction:column;justify-content:space-around;gap:14px}
.speed-match{overflow:hidden;border:1px solid #293123;border-radius:10px;background:#050605}.speed-match-meta{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;border-bottom:1px solid #20251d;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.speed-participant{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:7px;min-height:52px;padding:8px 9px}.speed-participant+.speed-participant{border-top:1px solid #20251d}.speed-participant.is-winner{background:rgba(171,251,2,.09)}.speed-participant.is-pending{color:var(--muted)}.speed-seed{display:grid;place-items:center;width:25px;height:25px;border-radius:6px;background:#151a12;color:#cdd5c5;font-weight:900}.speed-participant-name{display:grid;gap:2px;min-width:0;color:#f2f4ef;font-size:13px;font-weight:800;line-height:1.25;text-decoration:none}.speed-participant-name small{overflow:hidden;color:var(--muted);font-size:10px;font-weight:600;text-overflow:ellipsis}.speed-participant-name:hover,.speed-participant-name:focus-visible{color:var(--accent)}.speed-winner-mark{color:var(--accent);font-weight:900}.speed-score{display:grid;place-items:center;min-width:26px;height:26px;border-radius:6px;background:var(--accent);color:#050505;font-size:15px}
@media(max-width:700px){.speed-results-card{padding:16px}.speed-results-head{gap:10px}.speed-champion{grid-template-columns:auto minmax(0,1fr);gap:14px;padding:16px}.speed-trophy{width:50px;height:50px;font-size:23px}.speed-champion-copy>a{font-size:25px}.speed-runner-up{grid-column:1/-1;padding:12px 0 0;border-top:1px solid var(--line);border-left:0;text-align:left}.speed-bracket{grid-template-columns:1fr}.speed-round{padding:10px}.speed-round-matches{gap:10px}.speed-participant{min-height:56px}.speed-bracket-meta{gap:6px}.speed-bracket-meta>span{font-size:11px}}

/* Resultados públicos: lenguaje visual compartido entre precisión y Speed Challenge. */
.result-disclosure{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#080a07}.result-disclosure>summary{display:flex;min-height:66px;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer;list-style:none;transition:background .18s ease}.result-disclosure>summary::-webkit-details-marker{display:none}.result-disclosure>summary:hover{background:rgba(171,251,2,.055)}.result-disclosure>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.result-disclosure-copy{display:grid;gap:4px}.result-disclosure-copy strong{color:var(--accent);font-size:13px;font-weight:900;letter-spacing:.08em}.result-disclosure-copy small{color:var(--muted)}.result-disclosure-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:1px solid #3b4534;border-radius:50%;color:var(--accent);font-size:23px;line-height:1;transition:transform .18s ease}.result-disclosure[open] .result-disclosure-icon{transform:rotate(180deg)}.result-disclosure-body{padding:0 14px 14px;border-top:1px solid var(--line)}.speed-bracket-disclosure .speed-bracket{margin-top:14px}
.precision-podium{display:block}.precision-champion{grid-template-columns:auto minmax(0,1fr) minmax(300px,.85fr)}.precision-podium-places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-left:20px;border-left:1px solid var(--line)}.precision-place{display:grid;min-width:0;gap:4px;padding:12px;border:1px solid #2d3528;border-radius:10px;background:rgba(5,6,5,.6)}.precision-place>span{color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.1em}.precision-place>a{overflow:hidden;color:#fff;font-size:15px;font-weight:900;text-decoration:none;text-overflow:ellipsis}.precision-place>a:hover,.precision-place>a:focus-visible{color:var(--accent)}.precision-place small{color:var(--muted)}
.precision-results-table{min-width:900px;border-collapse:separate;border-spacing:0 8px}.precision-results-table th{border-bottom:0;background:transparent;color:#adb6a6;font-size:11px;letter-spacing:.08em}.precision-results-table td{border-top:1px solid #242b20;border-bottom:1px solid #242b20;background:#080a07}.precision-results-table td:first-child{border-left:1px solid #242b20;border-radius:11px 0 0 11px}.precision-results-table td:last-child{border-right:1px solid #242b20;border-radius:0 11px 11px 0}.precision-results-table tr.is-podium td{background:#0b0e09}.precision-results-table tr.is-winner td{border-color:rgba(171,251,2,.42);background:linear-gradient(100deg,rgba(171,251,2,.085),#080a07 52%)}.precision-rank-badge{display:grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:#151a12;color:#e8ece4;font-weight:900}.is-winner .precision-rank-badge{background:var(--accent);color:#050505;box-shadow:0 0 0 5px rgba(171,251,2,.07)}.precision-shooter a{display:grid;gap:3px;color:#fff;text-decoration:none}.precision-shooter a:hover,.precision-shooter a:focus-visible{color:var(--accent)}.precision-shooter strong{font-size:14px}.precision-shooter small{color:var(--muted);font:600 10px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace}.precision-category-chip{display:inline-flex;padding:6px 8px;border:1px solid #30392a;border-radius:999px;color:#dfe5da;font-size:11px;font-weight:800}.precision-round-result{display:inline-flex;align-items:baseline;gap:4px}.precision-round-result strong{color:#f4f7f1;font-size:15px}.precision-round-result small{color:var(--muted);font-size:10px}.precision-total-score{display:inline-grid;min-width:48px;place-items:center;padding:8px 9px;border-radius:8px;background:var(--accent);color:#050505;font-size:17px;font-weight:1000}
@media(max-width:700px){.result-disclosure>summary{min-height:62px;padding:12px}.result-disclosure-copy strong{font-size:12px}.result-disclosure-copy small{font-size:11px}.result-disclosure-body{padding:0 10px 10px}.precision-champion{grid-template-columns:auto minmax(0,1fr)}.precision-podium-places{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 0 0;border-top:1px solid var(--line);border-left:0}.precision-place{padding:10px}.precision-place>a{font-size:13px}.precision-results-table{display:block;min-width:0;border-spacing:0}.precision-results-table thead{display:none}.precision-results-table tbody{display:block}.precision-results-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;margin-bottom:12px;border:1px solid #2b3326;border-radius:13px;background:#080a07}.precision-results-table tr.is-winner{border-color:rgba(171,251,2,.52);box-shadow:0 0 0 1px rgba(171,251,2,.08)}.precision-results-table td,.precision-results-table td:first-child,.precision-results-table td:last-child{display:grid;min-width:0;gap:5px;padding:10px!important;border:0;border-right:1px solid #20251d;border-bottom:1px solid #20251d;border-radius:0;background:transparent}.precision-results-table td:nth-child(even){border-right:0}.precision-results-table td::before{content:attr(data-label);color:#818b7b;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.precision-results-table td.precision-shooter{grid-column:1/-1;border-right:0}.precision-results-table td.precision-shooter a{gap:4px}.precision-results-table td.precision-shooter strong{font-size:17px}.precision-results-table td.score{border-bottom:0}.precision-rank-badge{width:36px}.precision-category-chip{width:max-content;max-width:100%}.precision-total-score{width:max-content}.precision-podium-places:empty{display:none}}
/* Auth: verification is loaded only on demand, never while browsing public content. */
.auth-security-dialog { width: min(360px, calc(100% - 32px)); box-sizing: border-box; padding: 24px; color: #f5f5f5; background: #101010; border: 1px solid #aaff00; border-radius: 12px; max-height: calc(100vh - 32px); overflow: auto; }
.auth-security-dialog::backdrop { background: rgba(0, 0, 0, .8); }
.auth-security-dialog h2 { margin: 0 0 12px; font: bold 22px/1.3 Arial, sans-serif; }
.auth-security-dialog p { font-size: 14px; line-height: 1.5; }
.auth-security-widget { min-height: 140px; margin: 18px 0; }
.pcp-action-dialog{width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow:auto;margin:auto;padding:24px;color:#f5f5f5;background:#10130d;border:1px solid var(--accent,#aaff00);border-radius:14px;box-shadow:0 24px 80px #0009}
.pcp-action-dialog::backdrop{background:rgba(0,0,0,.8)}
.pcp-action-dialog h2{margin:0 0 16px;font:700 24px/1.2 Arial,sans-serif}
.pcp-action-dialog p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;font-size:16px;margin:0 0 20px}
.pcp-action-dialog label{display:block;margin-bottom:8px}
.pcp-action-dialog textarea,.pcp-action-dialog select{width:100%;max-width:100%;box-sizing:border-box;margin-bottom:20px;font-size:16px}
.pcp-action-dialog .actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
.pcp-action-dialog .btn{min-height:44px}
@media(max-width:420px){.pcp-action-dialog{padding:18px}.pcp-action-dialog .actions .btn{flex:1 1 auto}}
.mfa-shell{max-width:760px;padding-top:150px;padding-bottom:60px;display:grid;gap:20px}
.mfa-shell h1{overflow-wrap:anywhere}
.mfa-shell .card{min-width:0}
.mfa-qr{width:260px;max-width:100%;height:auto;background:white;padding:12px;border-radius:12px}
.mfa-secret{display:block;overflow-wrap:anywhere;user-select:all;margin-block:12px}
.mfa-shell input,.mfa-shell select{max-width:100%;min-height:44px}
.mfa-shell li{overflow-wrap:anywhere;margin-block:12px}
.category-config.category-creator-card{display:block;padding:20px;border:1px solid var(--line,#303426);border-radius:16px;margin-bottom:16px;min-width:0}
.category-creator-card .cat-name{display:block;margin-bottom:16px;font-size:1.1rem}
.category-creator-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-block:16px}
.category-creator-fields>*{min-width:0}
.category-creator-fields input:not([type=checkbox]){width:100%;max-width:100%;box-sizing:border-box;min-height:44px}
.category-creator-fields .consent{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.category-creator-card summary{cursor:pointer;padding-block:12px}
.category-settings-row{border-bottom:1px solid var(--line,#303426);padding-block:20px;min-width:0}
.category-settings-row h4,.category-creator-card strong{overflow-wrap:anywhere}
#competitionPricingEditor{scroll-margin-top:110px}
.competition-banking,.competition-beneficiary,.competition-bank-account{min-width:0;min-inline-size:0}
.competition-beneficiary{margin:18px 0;padding:20px;border:1px solid var(--line,#303426);border-radius:16px}
.competition-bank-account{margin:16px 0;padding:16px;border:1px solid var(--line,#303426);border-radius:12px}
.competition-beneficiary legend{padding-inline:8px;color:var(--accent,#b8f33f);font-weight:700}
.competition-banking .category-creator-fields select{width:100%;min-width:0;box-sizing:border-box}
.competition-banking .actions{display:flex;gap:12px;flex-wrap:wrap}
.competition-banking button{white-space:normal;max-width:100%}
@media(max-width:600px){.competition-beneficiary{padding:12px}.competition-bank-account{padding:10px}}
@media(max-width:600px){.category-creator-fields{grid-template-columns:minmax(0,1fr)}.category-config.category-creator-card{padding:14px}}
@media(max-width:400px){#accountCompetitionsTitle{font-size:26px}}
