@font-face{font-family:Montserrat;src:url('../fonts/montserrat-italic.woff2') format('woff2');font-style:italic;font-weight:100 900;font-display:swap}
@font-face{font-family:Barlow;src:url('../fonts/Barlow-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url('../fonts/Barlow-SemiBold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Barlow;src:url('../fonts/Barlow-Bold.woff2') format('woff2');font-style:normal;font-weight:700 900;font-display:swap}
:root{--visual-body:Barlow,Arial,Helvetica,sans-serif;--visual-title:Montserrat,Arial,Helvetica,sans-serif;--bg:#000;--panel:#101010;--panel2:#161616;--surface:#101010;--surface2:#161616;--text:#f5f5f5;--ink:#f5f5f5;--muted:#b8b8b8;--line:#383838}
.news-card h2{font-size:clamp(1.25rem,1.8vw,1.5rem);line-height:1.25;letter-spacing:-.02em;overflow-wrap:anywhere;max-width:100%}
.news-article h1{font-size:clamp(1.65rem,3.5vw,2.5rem);line-height:1.22;letter-spacing:-.025em;overflow-wrap:anywhere;max-width:100%;margin-bottom:1.25rem}
.news-card,.news-article{min-width:0}.news-card p:not(.eyebrow){font-size:1rem}.news-article{padding:clamp(1rem,3vw,2.5rem)}
.news-cover{width:100%;aspect-ratio:16/9;object-fit:contain;background:#050505;border-radius:.5rem;margin-bottom:1rem}
.news-article-photo{margin:0 0 1.5rem}.news-article-photo img{display:block;width:100%;height:auto;max-height:32rem;object-fit:contain;background:#050505;border-radius:.5rem}
.news-photo-editor{min-width:0;border:1px solid var(--line);border-radius:.75rem;padding:1rem;display:grid;gap:.8rem}.news-photo-preview{display:block;max-width:100%;width:30rem;height:auto;max-height:18rem;object-fit:contain}.news-photo-preview.hidden{display:none}
@media(max-width:520px){
 .news-article h1{font-size:1.375rem;line-height:1.25}
 #availabilityPanel>.section-heading{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem}
 #availabilityPanel>.section-heading>div{flex:1 1 16rem;min-width:0}
 #availabilityPanel #refreshBtn{flex:0 0 auto;white-space:nowrap;word-break:normal;overflow-wrap:normal;min-height:44px}
 #resultsPager:not(.hidden){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem}
 #resultsPager #pageLabel{grid-column:1/-1;grid-row:1;text-align:center;min-width:0;font-size:.875rem;overflow-wrap:anywhere}
 #resultsPager .btn{min-width:0;min-height:44px;width:100%;padding-inline:.5rem;font-size:.875rem;white-space:nowrap;overflow-wrap:normal;word-break:normal}
}
body,button,input,select,textarea,table,.nav,.sidebar{font-family:var(--visual-body)!important;font-style:normal;line-height:1.5}
body{font-synthesis:none}
body :where(p,span,strong,b,small,a,summary,legend,label,th,td,li,figcaption){font-family:var(--visual-body)!important;font-style:normal}
h1,h2,h3,h4,h5,h6,.admin-login-title{font-family:var(--visual-title)!important;font-style:italic!important;font-weight:800!important;line-height:1.15;letter-spacing:-.035em;overflow-wrap:break-word}
:is(h1,h2,h3,h4,h5,h6) :is(span,strong,b,a,small){font-family:var(--visual-title)!important;font-style:italic!important}
h1{font-size:clamp(2rem,5.3vw,4.375rem)}h2{font-size:clamp(1.5625rem,2.8vw,2.25rem)}h3{font-size:1.5rem}
.data-table :is(strong,small,span,a),svg text{font-family:var(--visual-body)!important;font-style:normal}
.nav a,.btn,.sidebar button,.sidebar summary,label,th{font-family:var(--visual-body)!important;font-style:normal;font-weight:700;letter-spacing:.025em}
.speed-champion-copy>a,.countdown-event{font-family:var(--visual-title)!important;font-style:italic;font-weight:800;line-height:1.2;font-size:clamp(1.5rem,3vw,2.125rem)}
.speed-trophy,.kpi strong,.countdown-grid b{font-family:var(--visual-body)!important;font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
.hero>div,.admin-main,.section-head>div,.home-action-card>span,.countdown-grid>div{min-width:0}
.hero h1{max-width:100%;padding-right:.08em}.hero-card strong{overflow-wrap:break-word}
.admin-top h1{font-size:clamp(1.8125rem,4vw,2.8125rem)}.admin-top>div{min-width:0;max-width:100%}.admin-top h1{overflow-wrap:anywhere}
.precision-podium-places{min-width:0;width:100%}.precision-place>*,.speed-champion-copy>*{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.section-head{flex-wrap:wrap}.home-action-card strong,.home-action-card small{white-space:normal;overflow-wrap:anywhere}
.countdown-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.btn{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.admin-main input,.admin-main select{min-width:0;max-width:100%}.sidebar{max-width:100%;min-width:0}
.registration-summary-kpis .kpi--amount strong{overflow-wrap:anywhere}
@media screen{
 body{background:#000;color:var(--text)}
 .card,.panel,.hero-card,.kpi,.form-section,.registration-progress,.speed-champion,.precision-champion,.precision-place{background:#101010}
 .topbar,.site-header,.registration-header{background:#000}
 body:before{background:none}
 .btn.primary,.btn-primary,button.primary{color:#101408}
 :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent,#abfb02);outline-offset:3px}
}
@media(max-width:700px){
 h1{font-size:clamp(1.625rem,7.5vw,2.625rem)}h2{font-size:1.625rem}
 .hero h1{font-size:clamp(1.4375rem,7.3vw,2.125rem)}.hero{gap:25px}
 .precision-champion,.precision-podium-places{grid-template-columns:minmax(0,1fr)}
 .speed-champion-copy>a{width:auto;font-size:1.5rem}.speed-champion{padding:16px}
 .countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-action-card{grid-template-columns:minmax(0,1fr);gap:10px}
 .registration-summary-kpis .kpi--amount{grid-column:1/-1}.registration-quick-actions{min-width:0;flex-wrap:wrap}.registration-quick-actions span{white-space:normal}
 .admin-main .card{min-width:0}.section-head h2{overflow-wrap:anywhere}.admin-top{align-items:flex-start;flex-wrap:wrap}.admin-top h1{font-size:1.875rem}
}

/* Navegación pública e Inscripción comparten un espacio estable desde el primer render. */
@media(min-width:1001px){
  .topbar .nav{min-height:44px}
  .topbar .pwa-install-btn,.registration-topbar .pwa-install-btn{display:inline-flex;align-items:center;justify-content:center;min-width:112px;min-height:38px}
  .topbar .pwa-install-btn.hidden,.registration-topbar .pwa-install-btn.hidden{display:inline-flex!important;visibility:hidden;pointer-events:none}
  .topbar [data-account-link],.registration-topbar .registration-nav>a[href="/cuenta/"]{display:inline-flex;align-items:center;justify-content:center;min-width:94px;text-align:center}
}
@media(max-width:1000px){
  .topbar .pwa-install-btn.hidden,.registration-topbar .pwa-install-btn.hidden{display:none!important}
}
/* Black Jack keeps its controls and results separate from precision and Speed. */
.black-jack-attempts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.black-jack-admin label{display:grid;gap:6px;min-width:0}
.black-jack-admin .actions{display:flex;flex-wrap:wrap;gap:10px}
.black-jack-admin pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem;overflow:auto}
#blackJackSection small{display:block}
@media(max-width:520px){.black-jack-admin .form-grid{grid-template-columns:1fr}.black-jack-admin button,#blackJackSection button{min-height:44px;white-space:normal;max-width:100%}}
/* Joint visual update: keep authentication, permissions and data controls intact. */
.nav-group{position:relative}
.nav-group>summary{list-style:none;cursor:pointer;color:var(--muted);font:700 13px/1.4 Barlow,Arial,sans-serif;padding:10px;border-radius:10px;min-height:44px;display:flex;align-items:center;gap:8px}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::after{content:'⌄';color:var(--accent)}
.nav-group>summary.active,.nav-group[open]>summary{color:var(--accent);background:#19220d}
.nav-group-links{position:absolute;top:100%;right:0;min-width:180px;padding:8px;display:grid;gap:4px;border:1px solid var(--line);border-radius:12px;background:#101010;box-shadow:0 14px 35px #0009}
.nav-group-links>a{display:flex;align-items:center;min-height:44px;white-space:nowrap}
.nav-group-links>a[hidden]{display:none!important}
.nav-mobile-links{display:none}
.nav-mobile-links>a[hidden]{display:none!important}
@media(min-width:1001px){
  .topbar .nav-static .nav-mobile-links{display:none!important}
}
.admin-shell{grid-template-columns:200px minmax(0,1fr)}
.sidebar-compact{padding:16px 8px}
.sidebar-compact .sidebar-group-toggle{padding:10px;min-height:44px}
.sidebar-compact .sidebar-group-items button{padding:10px;min-height:44px}
.shooters-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.shooters-shortcuts a{padding:10px 14px;border:1px solid var(--line);border-radius:10px;color:var(--text);font-weight:600;min-height:44px}
.shooters-shortcuts a:hover{border-color:var(--accent);color:var(--accent)}
.shooters-workspaces{align-items:start}
.shooters-workspaces>.card{min-width:0}
.shooters-workspaces h3{font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.25}
.shooters-workspaces p{margin-top:0}
#shooterPhotoReview{grid-column:1/-1}
#shooterRegistration,#shooterListImport,#shooterPhotoReview,#shooterHistoryLink,#shooterDirectory{scroll-margin-top:100px}
[data-photo-history-host]:not(:empty){padding:16px 0 0;border-top:1px solid var(--line);margin-top:12px}
[data-photo-history-host] input,[data-photo-history-host] select{width:100%;min-width:0}
.news-share{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.news-share .status-line,.news-share-manual{flex-basis:100%;margin:0}
.news-share-manual input{width:100%}
.news-share [hidden],#homeGalleryOpen[hidden],.home-gallery-coverflow img[hidden]{display:none!important}
.home-gallery-coverflow .home-gallery-viewport{position:relative;overflow:hidden;perspective:1100px;border:0;background:radial-gradient(ellipse at center,#19210e 0,#000 70%);padding:22px 0;touch-action:pan-y pinch-zoom}
.home-gallery-coverflow .home-gallery-track{position:relative;display:block;height:clamp(270px,43vw,560px);transform:none!important;will-change:auto;transition:none}
.home-gallery-coverflow .home-gallery-slide{position:absolute;top:0;left:17%;width:66%;height:100%;transition:transform .45s ease,opacity .45s ease;transform-origin:center;opacity:0;pointer-events:none;border:1px solid #465033;border-radius:18px;overflow:hidden;box-shadow:0 12px 32px #0009;background:#101010}
.home-gallery-coverflow .home-gallery-slide[data-position=current]{transform:translateX(0);z-index:3;opacity:1;pointer-events:auto;border-color:#ABFB0266}
.home-gallery-coverflow .home-gallery-slide[data-position=previous]{transform:translateX(-68%) scale(.78) rotateY(20deg);z-index:2;opacity:.65;pointer-events:auto}
.home-gallery-coverflow .home-gallery-slide[data-position=next]{transform:translateX(68%) scale(.78) rotateY(-20deg);z-index:2;opacity:.65;pointer-events:auto}
.home-gallery-coverflow .home-gallery-slide>div{height:100%;min-height:0;position:relative}
.home-gallery-coverflow .home-gallery-slide img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}
.home-gallery-coverflow .home-gallery-slide video{width:100%;height:100%;object-fit:contain;background:#080808}
.home-gallery-coverflow .home-gallery-slide>.home-gallery-unavailable{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;text-align:center;padding:1rem}
.home-gallery-coverflow .home-gallery-select{position:absolute;inset:0;width:100%;border:0;background:transparent;cursor:pointer;z-index:4}
.home-gallery-coverflow .home-gallery-select[hidden]{display:none}
.home-gallery-coverflow .home-gallery-caption{font-size:clamp(.9rem,1.5vw,1.125rem);line-height:1.35;left:18px;right:18px;bottom:16px;z-index:2;text-shadow:0 2px 6px #000}
.home-gallery-coverflow .home-gallery-control{z-index:5;background:#13170bed;border-color:#ABFB0280;top:50%}
.home-gallery-coverflow .home-gallery-control.previous{left:8px}
.home-gallery-coverflow .home-gallery-control.next{right:8px}
.home-gallery-footer{flex-wrap:wrap;gap:12px}
.home-gallery-dots{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
.home-gallery-dots button{width:32px;height:44px;border:0;background:transparent;cursor:pointer;position:relative}
.home-gallery-dots button::after{content:'';position:absolute;left:12px;top:18px;width:8px;height:8px;border-radius:50%;background:#6b6b6b}
.home-gallery-dots button[aria-current=true]::after{background:var(--accent);box-shadow:0 0 8px #ABFB0266}
.home-gallery-coverflow .has-instagram .home-gallery-track{height:690px}
.home-gallery-coverflow .is-instagram>div{padding:12px;background:#101010;display:grid;place-items:center}
.home-gallery-coverflow .home-instagram-embed{height:660px;max-width:100%}
.home-gallery-unavailable{padding:25px;color:var(--muted)}
@media(max-width:1000px){
  .topbar-inner{min-height:64px}
  .menu-btn{display:block;min-width:44px;min-height:44px}
  .topbar .nav{display:none;position:absolute;top:64px;left:0;right:0;background:#080808;padding:12px 14px;border-bottom:1px solid var(--line);max-height:calc(100dvh - 64px);overflow-y:auto;align-items:stretch}
  .topbar .nav.open{display:flex;flex-direction:column}
  .topbar .nav a,.nav-group>summary{min-height:44px}
  .nav-group-links{position:static;box-shadow:none;margin-top:4px;min-width:0}
  .admin-shell{grid-template-columns:minmax(0,1fr)}
  .sidebar-compact{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;overflow:visible;border-right:0;border-bottom:1px solid var(--line)}
  .sidebar-compact .sidebar-overview{grid-column:1/-1}
  .sidebar-compact .sidebar-group{min-width:0;margin:0}
  .sidebar-compact .sidebar-group-toggle{white-space:normal}
  .sidebar-compact button{min-width:0;width:100%;white-space:normal}
}
@media(max-width:520px){
  .shooters-shortcuts{gap:6px}.shooters-shortcuts a{flex:1 1 40%;font-size:.9rem;padding:10px}
  .home-gallery-coverflow .home-gallery-slide{left:12%;width:76%;border-radius:12px}
  .home-gallery-coverflow .home-gallery-control{width:44px;height:44px}
  .home-gallery-coverflow .home-gallery-control.previous{left:0}.home-gallery-coverflow .home-gallery-control.next{right:0}
  .home-gallery-coverflow .home-gallery-caption{left:12px;right:12px;bottom:12px}
  .home-gallery-coverflow .has-instagram .home-gallery-track{height:650px}
  .home-gallery-coverflow .home-instagram-embed{height:620px}
  .home-gallery-coverflow .is-instagram>div{padding:0}
  .news-share>.btn{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){.home-gallery-coverflow .home-gallery-slide{transition:none}}

/* Escala editorial compartida: títulos deportivos legibles sin dominar la lectura. */
:root{--visual-title-xl:clamp(1.875rem,4vw,3.5rem);--visual-title-lg:clamp(1.375rem,2.3vw,2rem);--visual-title-md:clamp(1.125rem,1.6vw,1.375rem)}
h1{font-size:var(--visual-title-xl);line-height:1.08;letter-spacing:-.03em}
h2{font-size:var(--visual-title-lg);line-height:1.16;letter-spacing:-.026em}
h3{font-size:var(--visual-title-md);line-height:1.22;letter-spacing:-.02em}
.hero h1{font-size:clamp(2rem,4.7vw,4rem);line-height:1.02;margin-bottom:14px}
.hero p{font-size:clamp(1rem,1.3vw,1.0625rem);line-height:1.55}
.hero.hero-compact{grid-template-columns:minmax(0,1fr);padding-bottom:22px}
.hero-card{padding:clamp(1rem,2vw,1.25rem)}
.hero-card strong{font-size:clamp(1.625rem,2.4vw,2rem)}
.section{padding:20px 0 32px}.section-head{gap:14px;margin-bottom:14px}.section-head h2{margin:4px 0}
.portal-card{min-height:190px;padding:20px}.portal-card h3{font-size:clamp(1.125rem,1.7vw,1.375rem);margin:26px 0 8px}
.competition-detail-hero h1{font-size:clamp(2.25rem,5.8vw,4.6rem);line-height:.95}
.help-summary strong{font-size:clamp(2.5rem,6vw,4.5rem);line-height:.95}
.ops-top h1,.admin-top h1,.admin-head h1{font-size:clamp(1.75rem,3.1vw,2.5rem);line-height:1.04}

/* Resultados: más posiciones visibles y medallas integradas en la fila. */
.precision-results-table{border-spacing:0 4px}
.precision-results-table th{padding:8px 10px}
.precision-results-table td{padding:8px 10px}
.precision-rank-badge{display:inline-flex;align-items:center;justify-content:flex-start;min-width:0;height:auto;padding:0;border-radius:0;background:transparent;color:inherit;font-size:1.25rem;line-height:1}
.is-winner .precision-rank-badge{background:transparent;color:inherit;box-shadow:none}
.precision-shooter a{gap:1px}.precision-shooter strong{font-size:13px;line-height:1.2}.precision-shooter small{line-height:1.15}
.precision-category-chip{padding:4px 7px}.precision-round-result{gap:3px}.precision-round-result strong{font-size:14px}.precision-total-score{min-width:42px;padding:6px 8px;font-size:15px}

@media(max-width:700px){
  h1{font-size:clamp(1.625rem,6.8vw,2.375rem)}h2{font-size:clamp(1.3125rem,5.2vw,1.625rem)}h3{font-size:1.125rem}
  .hero h1{font-size:clamp(1.625rem,7vw,2.25rem)}.hero p{font-size:1rem}
  .section{padding:16px 0 26px}.section-head{margin-bottom:12px}
  .competition-detail-hero h1{font-size:clamp(2rem,10.5vw,3.25rem)}
  .precision-results-table tr{margin-bottom:8px;border-radius:10px}
  .precision-results-table td,.precision-results-table td:first-child,.precision-results-table td:last-child{gap:3px;padding:8px!important}
  .precision-results-table td.precision-shooter strong{font-size:15px}.precision-results-table td.precision-shooter a{gap:2px}
  .precision-rank-badge{width:auto;font-size:1.1875rem}.precision-total-score{padding:5px 7px}
}
/* Entrada y custodia keeps the same administrative shell and folded navigation. */
.operations-admin-shell .operations-workspace{min-width:0}
.operations-admin-shell .sidebar-link.active{background:rgba(171,251,2,.09);color:var(--accent)}
.operations-admin-shell .sidebar-group-items .sidebar-link{padding-left:16px;font-size:13px;min-width:0;width:100%}
.operations-admin-shell .sidebar-link{white-space:normal;min-width:0;width:100%}
.operations-admin-shell .ops-top h1{font-family:var(--visual-title);font-style:italic;font-weight:900}

[id="aboutHistoryCopy"]{white-space:pre-line}
