:root {
  --c10-black: #0a0a0a;
  --c10-ink: #141414;
  --c10-panel: #1c1c1c;
  --c10-panel-2: #232323;
  --c10-line: #2c2c2c;
  --c10-muted: #a3a3a3;
  --c10-white: #f5f5f5;
  --c10-red: #e50914;
  --c10-red-dark: #b00610;
  --c10-red-glow: rgba(229,9,20,.45);
  --c10-success: #2ecc71;
  --c10-warning: #f5a623;
  --font-display: "Anton", Impact, sans-serif;
  --font-condensed: "Oswald", sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --sidebar-width: 264px;
  --bottom-nav-height: 60px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--c10-black); }
body { margin: 0; overflow-x: hidden; color: var(--c10-white); background: var(--c10-black); font-family: var(--font-body); font-size: 15px; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; }
button,a,input,select,textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid #ff2d3d; outline-offset: 3px; }
::selection { color: #fff; background: var(--c10-red); }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; background: #fff; color: #000; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }
.eyebrow { display: block; color: var(--c10-red); font: 600 .72rem/1 var(--font-body); letter-spacing: .2em; margin-bottom: .65rem; }
.btn { border-radius: 4px; font-weight: 700; letter-spacing: -.01em; }
.btn-cid { color: #fff; border: 1px solid #ff1f2e; background: linear-gradient(135deg,#ff1f2e 0%,#c40711 48%,#8a040d 100%); box-shadow: 0 10px 30px rgba(229,9,20,.24),inset 0 1px rgba(255,255,255,.18); }
.btn-cid:hover, .btn-cid:focus { color: #fff; border-color: #ff3d4a; background: linear-gradient(135deg,#ff2d3d,#c40711 62%,#8a040d); box-shadow: 0 14px 36px rgba(229,9,20,.34),inset 0 1px rgba(255,255,255,.2); transform: translateY(-2px); }
.btn-glass { color: #fff; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.1); backdrop-filter: blur(12px); }
.btn-glass:hover { color: #fff; background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.35); }
.brand { display: inline-flex; align-items: center; gap: .62rem; }
.brand-mark { display: grid; place-items: center; width: 35px; height: 35px; color: #fff; background: var(--c10-red); font: 400 .85rem var(--font-display); letter-spacing: -.03em; transform: skew(-6deg); }
.brand-mark span { font-size: .62rem; margin-left: 1px; }
.brand-name { color: #fff; font: 400 1.35rem/1 var(--font-display); letter-spacing: .02em; }
.brand-name span { color: var(--c10-red); }

/* Public navigation */
.site-header { position: fixed; inset: 0 0 auto; z-index: 1000; padding: .45rem 0; transition: background .25s, box-shadow .25s; }
.site-header.scrolled { background: rgba(10,10,10,.94); box-shadow: 0 1px var(--c10-line); backdrop-filter: blur(18px); }
.site-header .navbar { --bs-navbar-toggler-border-color: transparent; }
.site-header .nav-link { color: rgba(255,255,255,.74); font-size: .88rem; font-weight: 600; }
.site-header .nav-link:hover { color: #fff; }
.navbar-toggler { color: #fff; font-size: 1.55rem; box-shadow: none !important; }
.header-actions { display: flex; align-items: center; gap: .55rem; }
.icon-button, .search-toggle { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; color: #fff; border: 0; border-radius: 50%; background: transparent; }
.icon-button:hover, .search-toggle:hover { background: rgba(255,255,255,.1); }
.global-search { position: relative; display: flex; align-items: center; height: 40px; border: 1px solid transparent; transition: .25s; }
.global-search input { width: 0; padding: 0; color: #fff; background: transparent; border: 0; outline: 0; transition: width .25s; }
.global-search.open { padding-right: .6rem; background: rgba(0,0,0,.82); border-color: rgba(255,255,255,.3); }
.global-search.open input { width: min(260px, 32vw); }
.search-results { position: absolute; display: none; top: calc(100% + .6rem); right: 0; width: 360px; max-height: 420px; overflow: auto; border: 1px solid var(--c10-line); border-radius: 8px; background: rgba(13,13,15,.98); box-shadow: 0 24px 60px #000; }
.global-search.has-results .search-results { display: block; }
.search-result { display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: .7rem; padding: .7rem; border-bottom: 1px solid var(--c10-line); }
.search-result:hover { background: rgba(255,255,255,.06); }
.search-result img { width: 46px; height: 52px; border-radius: 3px; object-fit: cover; background: radial-gradient(circle,#232323,#141414 80%); }
.search-result strong, .search-result small { display: block; }
.search-result small { color: var(--c10-muted); font-size: .7rem; }
.search-result > span:last-child { color: var(--c10-red); font: 600 .62rem var(--font-body); text-transform: uppercase; }

/* Hero */
.hero { position: relative; isolation: isolate; min-height: max(720px, 96vh); overflow: hidden; background: #030303; }
.academy-hero::before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: radial-gradient(ellipse 28% 72% at 56% 48%,rgba(180,16,34,.19),transparent 72%),linear-gradient(110deg,transparent 44%,rgba(255,255,255,.025) 50%,transparent 58%); mix-blend-mode: screen; }
.hero-art { position: absolute; inset: 0; background-position: center; background-size: cover; animation: heroReveal 1.4s ease both; }
.academy-hero-art { opacity: 0; transform: scale(1.04); transition: opacity .8s ease, transform 6.8s ease; animation: none; }
.academy-hero-art.active { opacity: 1; transform: scale(1); }
.hero-vignette { position: absolute; inset: 0; background: radial-gradient(ellipse at 72% 43%,transparent 0 30%,rgba(0,0,0,.22) 70%),linear-gradient(90deg,#030303 0%,rgba(3,3,3,.96) 24%,rgba(3,3,3,.62) 43%,rgba(3,3,3,.08) 72%),linear-gradient(0deg,var(--c10-black) 0%,transparent 34%,rgba(0,0,0,.24) 100%); }
.hero-content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; min-height: max(720px, 96vh); padding-top: 6.5rem; padding-bottom: 6rem; }
.hero-kicker { display: flex; align-items: center; gap: .65rem; margin-bottom: 1.2rem; color: #d8d8d8; font: 600 .72rem var(--font-body); letter-spacing: .15em; text-transform: uppercase; }
.live-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--c10-red); box-shadow: 0 0 0 5px rgba(229,9,20,.17); }
.live-dot::after { content: ""; position: absolute; inset: -5px; border: 1px solid var(--c10-red); border-radius: 50%; animation: pulse 1.8s infinite; }
.hero h1 { max-width: 750px; margin: 0 0 1.2rem; font: 400 clamp(4.2rem, 9.4vw, 9.6rem)/.84 var(--font-display); letter-spacing: -.02em; text-transform: uppercase; text-shadow: 0 4px 40px #000; }
.hero h1 span { color: transparent; -webkit-text-stroke: 2px var(--c10-red); text-shadow: none; }
.hero-content > p { max-width: 610px; color: #c3c3c8; font-size: clamp(1rem, 1.3vw, 1.18rem); line-height: 1.65; }
.hero .btn-lg { min-width: 190px; padding: .85rem 1.2rem; font-size: .93rem; }
.hero-event { display: flex; flex-direction: column; width: fit-content; margin-top: 2.6rem; padding: .7rem 1rem .7rem 1.1rem; border-left: 3px solid var(--c10-red); background: linear-gradient(90deg,rgba(255,255,255,.08),transparent); }
.hero-event span { color: var(--c10-red); font: 600 .62rem var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
.hero-event strong { margin: .2rem 0; font: 500 1rem var(--font-condensed); text-transform: uppercase; }
.hero-event small { color: var(--c10-muted); }
.hero-scroll { position: absolute; z-index: 3; right: 2.3rem; bottom: 2.8rem; display: flex; flex-direction: column; align-items: center; gap: .6rem; color: rgba(255,255,255,.65); font-size: .65rem; letter-spacing: .2em; }
.hero-scroll i { animation: down 1.8s ease infinite; }
.academy-hero-slide { display: none; width: min(610px,43vw); animation: academySlideIn .55s ease both; }
.academy-hero-slide.active { display: block; }
.academy-hero-slide > :not(.academy-hero-coach) { position: relative; z-index: 3; }
.academy-hero-slide h1 { max-width: 720px; color: #fff; background: linear-gradient(180deg,#fff 0%,#f5f5f3 52%,#aaaab1 100%); font-size: clamp(3.2rem,6.2vw,6.6rem); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 12px 25px rgba(0,0,0,.48)); }
.academy-hero-logo { display: grid; place-items: center; width: 78px; height: 78px; margin-bottom: 1rem; overflow: hidden; border: 2px solid var(--auto-border, rgba(255,255,255,.28)); border-radius: var(--auto-radius, 50%); clip-path: var(--auto-clip, none); background: rgba(5,5,5,.78); box-shadow: 0 12px 35px rgba(0,0,0,.4); transition: border-color .4s; }
.academy-hero-logo img { width: 100%; height: 100%; object-fit: contain; }
.academy-hero-meta { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: 1rem 0 1.4rem; color: #d0d0d4; font-size: .74rem; }
.academy-hero-meta i { margin-right: .3rem; color: var(--c10-red); }
.academy-hero-coach { position: absolute; z-index: 2; right: auto; bottom: -3rem; left: calc(100% + clamp(1rem,3vw,3.5rem)); width: min(33vw,520px); height: min(71vh,714px); pointer-events: none; }
.academy-hero-coach img { position: relative; width: 100%; height: 100%; object-fit: contain; object-position: bottom; filter: contrast(1.05) saturate(.92) drop-shadow(0 0 55px var(--hero-glow, rgba(229,9,20,.3))) drop-shadow(0 22px 34px rgba(0,0,0,.55)); transition: filter .5s; -webkit-mask-image: radial-gradient(ellipse 82% 88% at 50% 64%,#000 46%,transparent 90%); mask-image: radial-gradient(ellipse 82% 88% at 50% 64%,#000 46%,transparent 90%); }
.academy-hero-coach span { position: absolute; z-index: 2; right: 1rem; bottom: 5rem; display: grid; padding: .6rem .8rem; border: 1px solid rgba(255,255,255,.12); border-left: 2px solid var(--c10-red); background: linear-gradient(135deg,rgba(22,22,26,.9),rgba(5,5,7,.68)); box-shadow: 0 16px 40px rgba(0,0,0,.38); backdrop-filter: blur(14px); }
.academy-hero-coach small { color: var(--c10-red); font-size: .52rem; letter-spacing: .1em; text-transform: uppercase; }
.academy-hero-coach strong { font: 500 1rem var(--font-condensed); text-transform: uppercase; }
.academy-hero-nav { position: absolute; left: max(1rem,3vw); bottom: 2rem; display: flex; gap: .45rem; }
.academy-hero-nav button { width: 48px; padding: .45rem 0; color: #777; border: 0; border-bottom: 2px solid rgba(255,255,255,.2); background: transparent; font: 500 .7rem var(--font-condensed); text-align: left; transition: .25s; }
.academy-hero-nav button.active { width: 74px; color: #fff; border-color: var(--c10-red); box-shadow: 0 5px 12px -8px var(--c10-red); }
@keyframes academySlideIn { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: none; } }
@keyframes heroReveal { from { opacity: 0; transform: scale(1.05); } to { opacity: 1; transform: scale(1); } }
@keyframes pulse { 70%,100% { opacity: 0; transform: scale(1.7); } }
@keyframes down { 50% { transform: translateY(7px); } }

/* Rails and cards */
.landing-content { position: relative; z-index: 4; margin-top: -2px; overflow: hidden; background: var(--c10-black); }
.rail-section { position: relative; padding: 4.8rem 0 1rem; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.section-heading h2, .join-inner h2, .detail-body h2, .fight-card-section h2 { margin: 0; font: 500 clamp(2rem, 4vw, 3.7rem)/1 var(--font-condensed); letter-spacing: -.025em; text-transform: uppercase; }
.see-all { flex: 0 0 auto; color: #b7b7bd; font-size: .8rem; font-weight: 600; }
.see-all i { margin-left: .35rem; color: var(--c10-red); transition: transform .2s; }
.see-all:hover { color: #fff; }
.see-all:hover i { transform: translateX(4px); }
.rail-wrap { position: relative; }
.card-rail { display: flex; gap: 1rem; overflow-x: auto; overflow-y: hidden; padding-top: 1rem; padding-bottom: 2.5rem; scroll-snap-type: x proximity; scrollbar-width: none; scroll-behavior: smooth; }
.card-rail::-webkit-scrollbar { display: none; }
.rail-arrow { position: absolute; z-index: 10; top: 1rem; bottom: 2.5rem; width: 45px; color: #fff; border: 0; opacity: 0; transition: opacity .2s; background: linear-gradient(90deg, rgba(0,0,0,.9), transparent); }
.rail-wrap:hover .rail-arrow { opacity: 1; }
.rail-arrow.prev { left: 0; }
.rail-arrow.next { right: 0; background: linear-gradient(270deg, rgba(0,0,0,.9), transparent); }
.poster-card { position: relative; flex: 0 0 clamp(235px, 23vw, 340px); aspect-ratio: 4/5; overflow: hidden; border: 1px solid rgba(255,255,255,.08); border-radius: 4px; scroll-snap-align: start; background: #1c1c1c; transition: transform .3s, border-color .3s, box-shadow .3s; }
.poster-card > a { display: block; height: 100%; }
.poster-card > a > img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease, filter .4s; }
.poster-card:hover, .poster-card:focus-within { z-index: 5; border-color: rgba(229,9,20,.8); transform: translateY(-9px) scale(1.025); box-shadow: 0 24px 45px rgba(0,0,0,.55); }
.poster-card:hover > a > img { transform: scale(1.06); filter: saturate(1.12); }
.academy-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, filter .4s; }
.academy-card:hover .academy-bg { transform: scale(1.055); filter: saturate(1.12); }
.card-gradient { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.04) 24%,rgba(0,0,0,.08) 46%,rgba(0,0,0,.62) 74%,rgba(0,0,0,.95) 100%); }
.academy-badges { position: absolute; top: .7rem; right: .7rem; z-index: 3; display: flex; align-items: center; gap: .4rem; }
.academy-badges .card-badge { position: static; }
.academy-brand-badge { display: grid; place-items: center; width: 44px; height: 44px; padding: .32rem; border-radius: 50%; background: rgba(8,8,10,.6); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(6px); box-shadow: 0 8px 20px rgba(0,0,0,.45); }
.academy-brand-badge img { width: 100%; height: 100%; object-fit: contain; }
.academy-owner-float { position: absolute; right: 0; bottom: 0; z-index: 2; width: 58%; height: 78%; pointer-events: none; -webkit-mask-image: radial-gradient(ellipse 78% 82% at 66% 60%,#000 40%,transparent 84%); mask-image: radial-gradient(ellipse 78% 82% at 66% 60%,#000 40%,transparent 84%); }
.academy-owner-float img { width: 100%; height: 100%; object-fit: cover; object-position: top center; filter: drop-shadow(0 18px 30px rgba(0,0,0,.55)); }
.poster-content { position: absolute; inset: auto 1rem 1rem; z-index: 3; width: 58%; }
.poster-content h3 { margin: .4rem 0 .25rem; font: 500 1.55rem/1.1 var(--font-condensed); text-transform: uppercase; }
.poster-content p { margin: 0; color: #b0b0b5; font-size: .72rem; }
.verified { display: inline-flex; gap: .35rem; align-items: center; color: #fff; font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.verified i { color: var(--c10-red); }
.rank-number { position: absolute; top: -.5rem; right: .4rem; z-index: 0; color: rgba(255,255,255,.1); font: 400 5.5rem/.7 var(--font-display); }
.card-meta { display: flex; justify-content: space-between; gap: .5rem; margin-top: .8rem; padding-top: .65rem; color: #ddd; border-top: 1px solid rgba(255,255,255,.22); font: 500 .62rem var(--font-body); }
.card-meta span:last-child { max-width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--c10-muted); text-align: right; }
.academy-managed { display: block; margin-top: .4rem; color: #8d8d95; font-size: .54rem; }
.academy-managed i { margin-right: .25rem; color: var(--c10-red); }
.filter-chips { display: flex; gap: .5rem; overflow: auto; margin-top: .4rem; scrollbar-width: none; }
.filter-chips button { flex: 0 0 auto; padding: .45rem .9rem; color: #a7a7ad; border: 1px solid var(--c10-line); border-radius: 20px; background: transparent; font-size: .72rem; font-weight: 600; }
.filter-chips button:hover, .filter-chips button.active { color: #fff; border-color: var(--c10-red); background: var(--c10-red); }
.listing-header { padding: 7.5rem 0 2rem; }
.listing-header h1 { margin: 0; font: 400 clamp(2.6rem,6vw,4.6rem)/1 var(--font-display); text-transform: uppercase; }
.listing-header p { margin: .5rem 0 0; color: var(--c10-muted); }
.listing-filters { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; margin: 1.5rem 0 .5rem; }
.listing-filters select, .listing-filters input { min-height: 42px; padding: .55rem .8rem; color: #fff; border: 1px solid var(--c10-line); border-radius: 3px; background: var(--c10-panel); font-size: .78rem; }
.listing-filters button { min-height: 42px; padding: 0 1.1rem; }
.card-grid { display: flex; flex-wrap: wrap; gap: 1.1rem; padding: 1.5rem 0 3rem; }
.card-grid .poster-card, .card-grid .coach-card, .card-grid .event-card { flex-grow: 0; }
.listing-pagination { display: flex; justify-content: center; gap: .35rem; padding: 1rem 0 5rem; }
.listing-pagination a { display: grid; place-items: center; width: 34px; height: 34px; color: var(--c10-muted); border: 1px solid var(--c10-line); border-radius: 3px; font-size: .74rem; }
.listing-pagination a.active { color: #fff; border-color: var(--c10-red); background: var(--c10-red); }
.listing-pagination a:hover { color: #fff; border-color: var(--c10-red); }
.listing-empty { display: grid; justify-items: center; gap: .6rem; padding: 4rem 1rem; color: var(--c10-muted); text-align: center; }
.listing-empty i { font-size: 2rem; color: var(--c10-red); }
.fighter-card { flex-basis: clamp(205px, 18vw, 265px); aspect-ratio: 3/4.4; }
.fighter-card.filtered-out { display: none; }
.ranking-badge { position: absolute; top: .8rem; right: .8rem; display: grid; place-items: center; width: 47px; height: 51px; clip-path: polygon(50% 0,100% 20%,91% 82%,50% 100%,9% 82%,0 20%); color: #fff; background: var(--c10-red); font: 400 1.55rem var(--font-display); }
.ranking-badge small { margin-right: 1px; font-size: .55rem; }
.discipline-chip { display: inline-flex; margin: 0 .3rem .3rem 0; padding: .25rem .5rem; color: #fff; border: 1px solid rgba(229,9,20,.55); background: rgba(229,9,20,.18); font-size: .56rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.fighter-card .alias { color: var(--c10-red); font: 500 .84rem var(--font-condensed); }
.record { display: flex; align-items: baseline; gap: .25rem; margin: .55rem 0; }
.record strong { font: 500 1.05rem var(--font-condensed); }
.record span { margin-right: .25rem; color: #77777d; font-size: .52rem; font-weight: 700; }
.fighter-card .academy-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coaches-section { background: linear-gradient(180deg,transparent,rgba(255,255,255,.025),transparent); }
.coach-card { flex: 0 0 clamp(315px, 30vw, 440px); display: grid; grid-template-columns: 43% 1fr; gap: 1.1rem; min-height: 230px; padding: .7rem; border: 1px solid var(--c10-line); border-radius: 5px; background: var(--c10-panel); transition: .25s; }
.coach-card:hover { border-color: rgba(229,9,20,.6); background: var(--c10-panel-2); transform: translateY(-5px); }
.coach-photo { position: relative; min-height: 210px; overflow: hidden; background: radial-gradient(circle at 50% 35%,#232323,#141414 80%); }
.coach-photo img { width: 100%; height: 100%; object-fit: cover; }
.coach-photo span { position: absolute; inset: auto .5rem .5rem; padding: .35rem .45rem; color: #fff; background: rgba(0,0,0,.75); font-size: .6rem; }
.coach-card > div:last-child { align-self: center; }
.coach-card h3 { margin: .7rem 0 .2rem; font: 500 1.55rem var(--font-condensed); text-transform: uppercase; }
.coach-card p, .coach-card small { display: block; margin: 0; color: var(--c10-muted); font-size: .72rem; line-height: 1.5; }
.coach-card small { margin-top: .8rem; }
.event-card { flex: 0 0 clamp(270px, 25vw, 370px); scroll-snap-align: start; }
.event-poster { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; border-radius: 4px; background: radial-gradient(circle at 50% 40%,#232323,#141414 80%); }
.event-poster img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.event-card:hover .event-poster img { transform: scale(1.04); }
.event-access { position: absolute; top: .7rem; left: .7rem; padding: .35rem .5rem; color: #fff; background: rgba(0,0,0,.72); font-size: .6rem; text-transform: uppercase; }
.event-info { display: grid; grid-template-columns: 44px 1fr; gap: .9rem; padding: .95rem .3rem; }
.event-date { display: flex; flex-direction: column; align-items: center; padding-right: .7rem; border-right: 1px solid var(--c10-line); }
.event-date strong { color: var(--c10-red); font-size: .64rem; }
.event-date span { font: 500 1.65rem var(--font-condensed); }
.event-info h3 { margin: 0 0 .25rem; font: 500 1.25rem var(--font-condensed); text-transform: uppercase; }
.event-info p, .event-info small { display: block; margin: 0; color: var(--c10-muted); font-size: .68rem; }
.event-info small { margin-top: .35rem; color: #d0d0d4; }
.join-band { padding-top: 6rem; padding-bottom: 5rem; }
.join-inner { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 3rem; overflow: hidden; padding: clamp(2rem,5vw,4.5rem); border: 1px solid rgba(229,9,20,.25); background: radial-gradient(circle at 80%,rgba(229,9,20,.16),transparent 35%), linear-gradient(110deg,#1a1a1a,#0a0a0a); }
.join-inner::before { content: "C10"; position: absolute; right: 15%; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.05); font: 400 15rem var(--font-display); transform: skew(-8deg); }
.join-inner > * { position: relative; z-index: 1; }
.join-inner p { max-width: 680px; margin: 1rem 0 0; color: var(--c10-muted); }
.sponsors-section { padding-bottom: 6rem; text-align: center; }
.sponsor-row { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: clamp(1.5rem,5vw,5rem); margin-top: 1.6rem; }
.sponsor-row img { width: 125px; height: 52px; object-fit: contain; filter: grayscale(1); opacity: .58; transition: .2s; }
.sponsor-row a:hover img, .sponsor-row img:hover { filter: none; opacity: 1; }

/* Footer */
.site-footer { padding: 4.5rem 0 1.5rem; border-top: 1px solid var(--c10-line); background: #050505; }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(3,1fr); gap: 3rem; }
.footer-grid p { max-width: 300px; margin-top: 1.2rem; color: var(--c10-muted); }
.footer-grid h3 { margin-bottom: 1rem; color: #fff; font: 500 .9rem var(--font-condensed); text-transform: uppercase; }
.footer-grid > div > a:not(.brand) { display: block; margin: .55rem 0; color: var(--c10-muted); font-size: .76rem; }
.footer-grid > div > a:hover { color: #fff; }
.social-row { display: flex; gap: .5rem; }
.social-row a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--c10-line); border-radius: 50%; }
.social-row a:hover { border-color: var(--c10-red); background: var(--c10-red); }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 4rem; padding-top: 1.2rem; color: #5f5f65; border-top: 1px solid var(--c10-line); font-size: .65rem; }

/* Auth */
.auth-page { display: grid; grid-template-columns: minmax(360px,1.1fr) minmax(440px,.9fr); min-height: 100vh; background: #08080a; }
.auth-visual { position: relative; display: flex; align-items: flex-end; padding: 7rem 7vw; background: linear-gradient(0deg,rgba(0,0,0,.95),rgba(0,0,0,.15)), url('../img/combatid-hero.webp') center/cover; }
.auth-visual h1 { margin: 0; font: 400 clamp(4rem,8vw,8rem)/.88 var(--font-display); text-transform: uppercase; }
.auth-visual h1 em { color: var(--c10-red); font-style: normal; }
.auth-visual p { max-width: 440px; color: #b8b8bd; }
.auth-panel { display: grid; place-items: center; padding: 6rem clamp(1.5rem,5vw,5.5rem) 3rem; }
.auth-card { width: min(100%,520px); }
.auth-card h2 { margin: 0; font: 500 2.6rem var(--font-condensed); text-transform: uppercase; }
.auth-card > p { color: var(--c10-muted); }
.cid-form { display: grid; gap: 1rem; }
.cid-form label { display: grid; gap: .45rem; color: #d5d5d8; font-size: .7rem; font-weight: 600; }
.cid-form input:not([type=checkbox]):not([type=radio]), .cid-form select, .cid-form textarea { width: 100%; min-height: 46px; padding: .75rem .85rem; color: #fff; outline: none; border: 1px solid var(--c10-line); border-radius: 3px; background: #121216; transition: border-color .2s,box-shadow .2s; }
.cid-form textarea { resize: vertical; }
.cid-form input:focus, .cid-form select:focus, .cid-form textarea:focus { border-color: var(--c10-red); box-shadow: 0 0 0 3px rgba(229,9,20,.12); }
.password-field { position: relative; }
.password-field button { position: absolute; right: .55rem; top: 50%; color: var(--c10-muted); border: 0; background: none; transform: translateY(-50%); }
.form-row { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 1rem; }
.form-check-row { display: flex !important; grid-template-columns: auto 1fr; align-items: flex-start; font-weight: 400 !important; }
.field-error { color: #ff4d5a; }
.auth-switch { margin-top: 1.2rem; text-align: center; font-size: .75rem; }
.auth-switch a { color: var(--c10-red); font-weight: 700; }
.demo-credentials { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; margin-top: 2rem; padding: .7rem; border: 1px dashed var(--c10-line); color: var(--c10-muted); font-size: .65rem; }
.demo-credentials code { color: #ddd; }

/* Public details */
.detail-hero { position: relative; min-height: 600px; padding-top: 85px; background-image: var(--detail-bg); background-position: center; background-size: cover; }
.detail-overlay { position: absolute; inset: 0; background: linear-gradient(0deg,var(--c10-black),rgba(0,0,0,.15) 70%), linear-gradient(90deg,rgba(0,0,0,.9),transparent); }
.detail-content { position: relative; display: flex; align-items: flex-end; gap: 2rem; min-height: 515px; padding-bottom: 3rem; }
.detail-logo { flex: 0 0 145px; height: 145px; overflow: hidden; border: 3px solid var(--auto-border, #fff); border-radius: var(--auto-radius, 50%); clip-path: var(--auto-clip, none); background: radial-gradient(circle,#232323,#141414 80%); box-shadow: 0 12px 40px #000; transition: border-color .4s; }
.detail-logo img { width: 100%; height: 100%; object-fit: cover; }
.detail-content h1 { margin: .5rem 0; font: 400 clamp(3rem,7vw,6.8rem)/.9 var(--font-display); text-transform: uppercase; }
.detail-content p { color: #ccc; }
.detail-body { padding-top: 1.5rem; padding-bottom: 6rem; }
.detail-tabs { gap: 2.2rem; border-bottom: 1px solid var(--c10-line); }
.detail-tabs button { padding: 1rem 0; color: var(--c10-muted); border: 0; border-bottom: 2px solid transparent; background: none; font-weight: 600; font-size: .78rem; }
.detail-tabs button.active { color: #fff; border-color: var(--c10-red); }
.tab-content { padding: 3rem 0; }
.detail-copy { max-width: 800px; }
.detail-copy p { margin-top: 1rem; color: var(--c10-muted); font-size: 1rem; line-height: 1.8; }
.detail-stats { display: flex; gap: 1px; max-width: 700px; margin-top: 2.5rem; background: var(--c10-line); }
.detail-stats div { flex: 1; padding: 1.4rem; background: var(--c10-panel); }
.detail-stats strong, .detail-stats span { display: block; }
.detail-stats strong { font: 400 2.6rem var(--font-display); }
.detail-stats span { color: var(--c10-muted); font-size: .66rem; }
.mini-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(250px,1fr)); gap: 1rem; }
.mini-profile { display: flex; gap: .9rem; align-items: center; padding: .7rem; border: 1px solid var(--c10-line); background: var(--c10-panel); }
.mini-profile img { width: 65px; height: 78px; object-fit: cover; background: radial-gradient(circle,#232323,#141414 80%); }
.mini-profile span { display: grid; }
.mini-profile b { color: var(--c10-red); font: 400 1.25rem var(--font-display); }
.mini-profile small { color: var(--c10-muted); font-size: .65rem; }
.contact-card { display: grid; grid-template-columns: auto 1fr auto 1fr; align-items: center; gap: 1rem; max-width: 900px; padding: 2rem; border: 1px solid var(--c10-line); background: var(--c10-panel); }
.contact-card > i { color: var(--c10-red); font-size: 1.4rem; }
.contact-card p { margin: .25rem 0 0; color: var(--c10-muted); }
.contact-social { margin-top: 1.5rem; }
.about-gallery { margin-top: 3rem; }
.about-gallery .mini-grid { grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); }
.gallery-item { position: relative; display: grid; overflow: hidden; border: 1px solid var(--c10-line); background: var(--c10-panel); aspect-ratio: 16/10; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.gallery-item iframe { width: 100%; height: 100%; border: 0; }
.gallery-item figcaption { position: absolute; inset: auto 0 0; z-index: 2; padding: .5rem .7rem; color: #fff; background: linear-gradient(0deg,rgba(0,0,0,.85),transparent); font-size: .68rem; pointer-events: none; }
.gallery-item[data-lightbox-item] { cursor: pointer; }
.gallery-item[data-lightbox-item]:hover img { transform: scale(1.05); }
.gallery-item[data-lightbox-item]:focus-visible { outline: 2px solid var(--c10-red); outline-offset: -2px; }
.gallery-video-click-guard { position: absolute; inset: 0; z-index: 1; cursor: pointer; }
.gallery-link { display: grid; place-items: center; gap: .5rem; color: var(--c10-muted); text-align: center; }
.gallery-link i { font-size: 2rem; color: var(--c10-red); }
.gallery-link:hover { color: #fff; border-color: rgba(229,9,20,.5); }
.lightbox { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: 2rem; background: rgba(5,5,5,.94); backdrop-filter: blur(6px); }
.lightbox[hidden] { display: none; }
.lightbox-body { display: grid; justify-items: center; gap: .8rem; max-width: 100%; }
.lightbox-stage { display: grid; place-items: center; max-width: 90vw; max-height: 82vh; }
.lightbox-stage img { max-width: 90vw; max-height: 82vh; object-fit: contain; box-shadow: 0 30px 90px rgba(0,0,0,.6); }
.lightbox-stage iframe { width: min(90vw,1100px); height: min(62vh,620px); border: 0; box-shadow: 0 30px 90px rgba(0,0,0,.6); }
.lightbox-caption { max-width: 640px; color: #d8d8dc; text-align: center; font-size: .78rem; }
.lightbox-close,.lightbox-nav { position: absolute; z-index: 2; display: grid; place-items: center; color: #fff; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(20,20,20,.7); }
.lightbox-close:hover,.lightbox-nav:hover { background: var(--c10-red); border-color: var(--c10-red); }
.lightbox-close { top: 1.2rem; right: 1.2rem; width: 44px; height: 44px; font-size: 1.1rem; }
.lightbox-nav { top: 50%; width: 52px; height: 52px; font-size: 1.3rem; transform: translateY(-50%); }
.lightbox-nav.prev { left: 1rem; }
.lightbox-nav.next { right: 1rem; }
.lightbox-nav[hidden] { display: none; }
.academy-sponsors { padding-top: 2rem; border-top: 1px solid var(--c10-line); text-align: center; }
.athlete-profile { position: relative; display: grid; grid-template-columns: minmax(320px,42%) 1fr; column-gap: clamp(2.5rem,6vw,5.5rem); align-items: center; min-height: 760px; overflow: hidden; padding: 100px 8vw 0; background: radial-gradient(circle at 20% 50%,rgba(229,9,20,.16),transparent 36%),#08080a; }
.athlete-photo { align-self: end; height: 650px; }
.athlete-photo img { width: 100%; height: 100%; object-fit: contain; object-position: bottom; filter: drop-shadow(20px 10px 40px rgba(0,0,0,.8)); }
.athlete-info { position: relative; z-index: 2; max-width: 720px; padding: 3rem 0 3rem 1rem; }
.athlete-info h1 { margin: 0; font: 400 clamp(4rem,8vw,8rem)/.84 var(--font-display); text-transform: uppercase; }
.athlete-alias { color: var(--c10-red) !important; font: 500 1.6rem var(--font-condensed); }
.athlete-vitals { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin: 1.1rem 0; padding: 0; list-style: none; }
.athlete-vitals li { display: flex; align-items: center; gap: .4rem; color: #d0d0d4; font-size: .8rem; }
.athlete-vitals i { color: var(--c10-red); }
.profile-badge { position: absolute; top: 1.4rem; right: 1.4rem; z-index: 4; display: flex; align-items: center; gap: .5rem; padding: .5rem .8rem .5rem .5rem; border: 1px solid rgba(255,255,255,.15); border-radius: 30px; background: linear-gradient(135deg,rgba(22,22,26,.92),rgba(5,5,7,.78)); box-shadow: 0 12px 30px rgba(0,0,0,.4); backdrop-filter: blur(10px); }
.profile-badge img { width: 26px; height: 26px; object-fit: contain; border-radius: 50%; }
.profile-badge span { color: #fff; font-size: .68rem; font-weight: 600; letter-spacing: .02em; }
.card-badge { position: absolute; top: .6rem; right: .6rem; z-index: 4; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(0,0,0,.72); border: 1px solid rgba(255,255,255,.22); box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.card-badge img { width: 20px; height: 20px; object-fit: contain; }
.card-badge.left { right: auto; left: .6rem; }
.coach-card { position: relative; }
.athlete-info > p { color: var(--c10-muted); line-height: 1.7; }
.big-record { display: flex; margin: 2rem 0; border-block: 1px solid var(--c10-line); }
.big-record div { min-width: 105px; padding: 1.2rem; border-right: 1px solid var(--c10-line); }
.big-record strong, .big-record span { display: block; }
.big-record strong { font: 400 2.4rem var(--font-display); }
.big-record span { color: var(--c10-muted); font-size: .58rem; text-transform: uppercase; }
.big-record .rank strong { color: var(--c10-red); }
.profile-academy i { color: var(--c10-red); }
.athlete-number { position: absolute; right: -2vw; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.05); font: 400 32rem var(--font-display); }
.discipline-panels { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 1rem; margin: 2rem 0 5rem; }
.discipline-panel { display: grid; padding: 1.5rem; border: 1px solid var(--c10-line); background: var(--c10-panel); }
.discipline-panel.active { border-top: 3px solid var(--c10-red); background: linear-gradient(135deg,rgba(229,9,20,.14),var(--c10-panel)); }
.discipline-panel > span,.discipline-panel small { color: var(--c10-muted); font-size: .65rem; text-transform: uppercase; }
.discipline-panel h3 { margin: .5rem 0 0; font: 500 1.6rem var(--font-condensed); text-transform: uppercase; }
.discipline-panel p { color: var(--c10-muted); }
.discipline-panel > strong { font: 400 2.3rem var(--font-display); }
.career { max-width: 700px; }
.career > div { position: relative; display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--c10-line); }
.career > div > span { width: 9px; height: 9px; border-radius: 50%; background: var(--c10-red); }
.career small { color: var(--c10-muted); }
.event-detail-hero { position: relative; min-height: 720px; overflow: hidden; padding-top: 90px; }
.event-detail-bg { position: absolute; inset: 0; opacity: .32; filter: blur(16px); transform: scale(1.08); background-position: center; background-size: cover; }
.event-detail-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,var(--c10-black),transparent 50%),linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.25)); }
.event-detail-content { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(260px,390px) 1fr; align-items: center; gap: 4vw; min-height: 610px; }
.event-poster-large { max-height: 540px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); box-shadow: 0 25px 60px #000; }
.event-poster-large img { width: 100%; height: 540px; object-fit: cover; }
.live-label { padding: .35rem .55rem; color: #fff; background: var(--c10-red); font-size: .62rem; font-weight: 700; text-transform: uppercase; }
.event-detail-content h1 { margin: 1rem 0; font: 400 clamp(3.5rem,7vw,7rem)/.88 var(--font-display); text-transform: uppercase; }
.event-detail-content p { max-width: 700px; color: #c0c0c5; line-height: 1.7; }
.event-facts { display: flex; flex-wrap: wrap; gap: 1.3rem; margin: 1.5rem 0; }
.event-facts span { display: flex; gap: .45rem; color: #ddd; font-size: .75rem; }
.event-facts i { color: var(--c10-red); }
.fight-card-section { padding-top: 3rem; padding-bottom: 6rem; }
.fight-list { margin-top: 2rem; border-top: 1px solid var(--c10-line); }
.fight-row { display: grid; grid-template-columns: 45px 1fr 115px 1fr; align-items: center; min-height: 125px; border-bottom: 1px solid var(--c10-line); transition: .2s; }
.fight-row:hover { background: rgba(255,255,255,.025); }
.fight-order { color: #4c4c52; font: 400 2rem var(--font-display); }
.corner { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; }
.corner img { width: 75px; height: 100px; object-fit: cover; object-position: top; align-self: end; background: radial-gradient(circle at 50% 30%,#232323,#141414 80%); }
.corner span { display: grid; text-align: right; }
.corner strong { font: 500 1.15rem var(--font-condensed); text-transform: uppercase; }
.corner small { color: var(--c10-red); font-size: .55rem; text-transform: uppercase; }
.corner.blue { justify-content: flex-start; }
.corner.blue span { text-align: left; }
.corner.blue small { color: #579cff; }
.versus { display: grid; justify-items: center; }
.versus strong { font: 400 1.8rem var(--font-display); }
.versus small,.versus span { color: var(--c10-muted); font-size: .58rem; text-transform: uppercase; }
.event-organizer { display: grid; justify-items: center; margin-top: 4rem; color: var(--c10-muted); }
.event-organizer strong { color: #fff; font: 500 1.2rem var(--font-condensed); }
.cid-modal { border: 1px solid var(--c10-line); border-radius: 5px; background: #1c1c1c; box-shadow: 0 30px 90px #000; }
.cid-modal .modal-header { padding: 1.5rem; border-color: var(--c10-line); }
.cid-modal .modal-title { font: 500 1.6rem var(--font-condensed); text-transform: uppercase; }
.cid-modal .modal-body { padding: 1.5rem; }
.manual-payment { display: flex; gap: .8rem; padding: .8rem; border: 1px solid rgba(229,9,20,.3); background: rgba(229,9,20,.07); }
.manual-payment i { color: var(--c10-red); font-size: 1.7rem; }
.manual-payment p { margin: 0; color: var(--c10-muted); font-size: .68rem; }
.manual-payment strong { color: #fff; }
.form-feedback { min-height: 20px; color: var(--c10-muted); font-size: .72rem; }
.setup-page,.error-page { display: grid; place-items: center; min-height: 100vh; padding: 6rem 1rem; background: radial-gradient(circle at 50% 20%,rgba(229,9,20,.13),transparent 35%),#08080a; }
.setup-card { width: min(100%,680px); padding: clamp(1.5rem,5vw,4rem); border: 1px solid var(--c10-line); background: var(--c10-panel); }
.setup-icon { display: grid; place-items: center; width: 60px; height: 60px; margin-bottom: 1.5rem; color: var(--c10-red); border: 1px solid rgba(229,9,20,.3); font-size: 1.5rem; }
.setup-card h1,.error-page h1 { font: 500 clamp(2rem,5vw,3.5rem)/1 var(--font-condensed); text-transform: uppercase; }
.setup-card > p,.setup-card li,.error-page p { color: var(--c10-muted); line-height: 1.7; }
.setup-card code { color: #fff; }
.setup-error { display: grid; margin: 1.5rem 0; padding: 1rem; border-left: 3px solid var(--c10-red); background: rgba(0,0,0,.25); }
.setup-error span { color: var(--c10-muted); font-size: .72rem; }
.error-page { text-align: center; }
.error-page > strong { color: transparent; -webkit-text-stroke: 2px var(--c10-red); font: 400 clamp(8rem,25vw,18rem)/.8 var(--font-display); }

/* Private panels */
.panel-shell { min-height: 100vh; background: #141414; }
.panel-sidebar { position: fixed; z-index: 1100; inset: 0 auto 0 0; display: flex; flex-direction: column; width: var(--sidebar-width); border-right: 1px solid var(--c10-line); background: #08080a; }
.sidebar-head { display: flex; justify-content: space-between; align-items: center; height: 76px; padding: 0 1.25rem; border-bottom: 1px solid var(--c10-line); }
.sidebar-head button { display: none; color: #fff; border: 0; background: none; }
.role-label { display: grid; padding: 1.3rem 1.25rem 1rem; }
.role-label span { color: var(--c10-red); font: 600 .65rem var(--font-body); letter-spacing: .16em; text-transform: uppercase; }
.role-label small { color: #65656d; font-size: .62rem; }
.sidebar-nav { flex: 1; overflow-y: auto; padding: .5rem .8rem; scrollbar-width: thin; }
.sidebar-nav a { position: relative; display: flex; align-items: center; gap: .85rem; min-height: 43px; margin: .08rem 0; padding: .65rem .8rem; color: #85858d; border-radius: 3px; font-size: .71rem; font-weight: 600; }
.sidebar-nav a i { width: 20px; font-size: 1rem; text-align: center; }
.sidebar-nav a:hover { color: #fff; background: rgba(255,255,255,.045); }
.sidebar-nav a.active { color: #fff; background: linear-gradient(90deg,rgba(229,9,20,.2),rgba(229,9,20,.04)); }
.sidebar-nav a.active::before { content: ""; position: absolute; left: 0; width: 3px; height: 22px; background: var(--c10-red); }
.sidebar-nav a b { width: 5px; height: 5px; margin-left: auto; border-radius: 50%; background: var(--c10-red); }
.sidebar-foot { padding: .7rem; border-top: 1px solid var(--c10-line); }
.sidebar-foot a,.sidebar-foot button { display: flex; align-items: center; gap: .8rem; width: 100%; padding: .65rem .8rem; color: #787880; border: 0; background: none; font-size: .7rem; }
.sidebar-foot a:hover,.sidebar-foot button:hover { color: #fff; }
.panel-main { min-height: 100vh; margin-left: var(--sidebar-width); }
.panel-topbar { position: sticky; z-index: 900; top: 0; display: flex; justify-content: space-between; align-items: center; height: 76px; padding: 0 2rem; border-bottom: 1px solid var(--c10-line); background: rgba(11,11,14,.9); backdrop-filter: blur(16px); }
.panel-topbar > div { display: flex; align-items: center; }
.panel-topbar > div:first-child > div { display: grid; }
.panel-topbar > div:first-child span { color: #65656d; font-size: .58rem; text-transform: uppercase; }
.panel-topbar > div:first-child strong { font: 500 1.05rem var(--font-condensed); text-transform: uppercase; }
.sidebar-toggle { display: none; margin-right: .7rem; color: #fff; border: 0; background: none; font-size: 1.4rem; }
.topbar-actions { gap: .4rem; }
.topbar-actions > button { position: relative; display: grid; place-items: center; width: 38px; height: 38px; color: #aaaab2; border: 0; border-radius: 50%; background: transparent; }
.topbar-actions > button:hover { color: #fff; background: rgba(255,255,255,.06); }
.topbar-actions > button b { position: absolute; top: 8px; right: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--c10-red); }
.user-chip { position: relative; margin-left: .6rem; padding-left: 1rem; border-left: 1px solid var(--c10-line); }
.user-chip-trigger { display: flex; gap: .65rem; align-items: center; padding: 0; border: 0; background: transparent; cursor: pointer; }
.user-avatar { display: grid; place-items: center; overflow: hidden; width: 36px; height: 36px; color: #fff; border-radius: 50%; background: linear-gradient(135deg,var(--c10-red),#4d0208); font-weight: 800; }
.user-avatar img { width: 100%; height: 100%; object-fit: cover; }
.user-chip-trigger > div { display: grid; text-align: left; }
.user-chip-trigger strong { font-size: .7rem; }
.user-chip-trigger small { color: #75757e; font-size: .58rem; }
.user-chip-trigger > i { color: #65656d; font-size: .65rem; }
.user-menu-panel { position: absolute; z-index: 950; top: calc(100% + .8rem); right: 0; width: 240px; padding: 1rem; border: 1px solid var(--c10-line); border-radius: 6px; background: #17171a; box-shadow: 0 20px 55px rgba(0,0,0,.5); }
.user-menu-form { display: grid; gap: .7rem; }
.user-menu-form label { display: grid; gap: .3rem; color: #a3a3a3; font-size: .62rem; text-transform: uppercase; letter-spacing: .04em; }
.user-menu-form input { padding: .5rem .6rem; border: 1px solid var(--c10-line); background: #0e0e11; color: #f5f5f5; font-size: .78rem; }
.user-menu-form input[type="file"] { padding: .35rem; font-size: .68rem; }
.panel-content { padding: 2rem clamp(1rem,3vw,3rem) 4rem; }
.panel-page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 2rem; }
.panel-page-head h1 { margin: 0; font: 500 clamp(2rem,4vw,3.4rem)/1 var(--font-condensed); text-transform: uppercase; }
.panel-page-head p { margin: .5rem 0 0; color: #74747c; font-size: .75rem; }
.current-date { padding: .6rem .8rem; color: #92929a; border: 1px solid var(--c10-line); font-size: .68rem; }
.current-date i { margin-right: .5rem; color: var(--c10-red); }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: .8rem; margin-bottom: 1rem; }
.metric-card { display: flex; align-items: center; gap: 1rem; min-height: 125px; padding: 1.1rem; border: 1px solid var(--c10-line); border-radius: 4px; background: var(--c10-panel); transition: .2s; }
.metric-card:hover { border-color: rgba(229,9,20,.4); transform: translateY(-2px); }
.metric-icon { display: grid; place-items: center; flex: 0 0 46px; height: 46px; color: var(--c10-red); border: 1px solid rgba(229,9,20,.25); border-radius: 4px; background: rgba(229,9,20,.08); font-size: 1.1rem; }
.metric-card > div:last-child { display: grid; }
.metric-card span { color: #85858d; font-size: .62rem; }
.metric-card strong { font: 500 1.85rem var(--font-condensed); }
.metric-card small { color: #55555d; font-size: .55rem; }
.metric-card small i { color: var(--c10-success); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(300px,.8fr); gap: 1rem; }
.panel-card { border: 1px solid var(--c10-line); border-radius: 6px; background: linear-gradient(145deg,rgba(255,255,255,.018),transparent 32%),var(--c10-panel); box-shadow: 0 18px 55px rgba(0,0,0,.12); }
.academy-identity-editor { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: 1rem; }
.identity-preview { position: relative; min-height: 620px; overflow: hidden; padding: 2rem; background-image: var(--preview-bg); background-position: center; background-size: cover; }
.identity-preview-shade { position: absolute; inset: 0; background: linear-gradient(0deg,#08080a,transparent 70%),linear-gradient(90deg,rgba(0,0,0,.9),transparent); }
.identity-preview-logo { position: relative; z-index: 1; width: 90px; height: 90px; object-fit: contain; border-radius: 50%; background: rgba(0,0,0,.72); }
.identity-preview > div:last-child { position: absolute; z-index: 1; inset: auto 2rem 2rem; }
.identity-preview h2 { font: 500 clamp(2rem,4vw,3.5rem)/1 var(--font-condensed); text-transform: uppercase; }
.identity-preview p { color: #bbb; font-size: .72rem; line-height: 1.6; }
.identity-form-body { display: grid; gap: 1rem; padding: 1.2rem; }
.identity-form small { color: #66666e; font-size: .55rem; font-weight: 400; }
.gallery-manage { display: grid; gap: .5rem; padding: 0 1.2rem 1.2rem; }
.gallery-manage-item { display: flex; align-items: center; gap: .7rem; padding: .6rem .8rem; border: 1px solid var(--c10-line); border-radius: 4px; background: #17171b; }
.gallery-manage-item i { color: var(--c10-red); }
.gallery-manage-item span { flex: 1; color: #d5d5d8; font-size: .74rem; }
.existing-logro { align-items: center; padding: .5rem .7rem; border: 1px solid var(--c10-line); border-radius: 4px; background: #17171b; }
.existing-logro span { color: #d5d5d8; font-size: .74rem; }
.panel-card-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 74px; padding: 1rem 1.2rem; border-bottom: 1px solid var(--c10-line); }
.panel-card-head .eyebrow { margin: 0 0 .25rem; font-size: .52rem; }
.panel-card-head h2 { margin: 0; font: 500 1.15rem var(--font-condensed); text-transform: uppercase; }
.panel-card-head select { padding: .45rem .6rem; color: #9999a1; border: 1px solid var(--c10-line); background: #0d0d10; font-size: .62rem; }
.chart-period-badge { padding: .45rem .6rem; color: #9999a1; border: 1px solid var(--c10-line); background: #0d0d10; font-size: .62rem; border-radius: 4px; }
.chart-placeholder { display: grid; grid-template-columns: 30px 1fr; height: 290px; padding: 1.5rem; }
.chart-y { display: flex; flex-direction: column; justify-content: space-between; color: #4e4e55; font-size: .5rem; }
.bars { display: flex; align-items: end; gap: clamp(4px,1.3vw,18px); padding: 0 1rem; background: repeating-linear-gradient(0deg,var(--c10-line) 0 1px,transparent 1px 25%); }
.bars i { position: relative; flex: 1; height: var(--h); max-width: 26px; border-radius: 2px 2px 0 0; background: linear-gradient(0deg,#5c030a,var(--c10-red)); animation: growBar .8s ease both; transform-origin: bottom; }
.bars i:nth-child(2n) { opacity: .62; }
.bars i b { position: absolute; inset: 0; background: linear-gradient(90deg,transparent,rgba(255,255,255,.15)); }
@keyframes growBar { from { transform: scaleY(0); } }
.activity-list { padding: .5rem 1.2rem 1rem; }
.activity-list > div { display: flex; gap: .8rem; padding: .85rem 0; border-bottom: 1px solid var(--c10-line); }
.activity-list > div > i { display: grid; place-items: center; width: 28px; height: 28px; color: var(--c10-success); border-radius: 50%; background: rgba(59,213,131,.1); }
.activity-list span { display: grid; min-width: 0; }
.activity-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .68rem; }
.activity-list small { color: #686870; font-size: .56rem; }
.data-card { overflow: hidden; }
.table-tools { display: flex; gap: .45rem; }
.table-tools label { position: relative; }
.table-tools label i { position: absolute; left: .65rem; top: 50%; color: #686870; transform: translateY(-50%); }
.table-tools input { width: 220px; padding: .5rem .6rem .5rem 2rem; color: #fff; border: 1px solid var(--c10-line); border-radius: 3px; outline: none; background: #0c0c0f; font-size: .65rem; }
.table-tools button { min-width: 38px; color: #85858d; border: 1px solid var(--c10-line); background: #0c0c0f; }
.table-tools button:hover { color: #fff; border-color: rgba(229,9,20,.55); }
.cid-table { width: 100%; border-collapse: collapse; }
.cid-table th { position: sticky; z-index: 2; top: 0; padding: .75rem 1rem; color: #777780; border-bottom: 1px solid var(--c10-line); background: #0e0e11; font-size: .54rem; letter-spacing: .08em; white-space: nowrap; }
.cid-table th.sortable { cursor: pointer; user-select: none; }
.cid-table th.sortable::after { content: "↕"; margin-left: .45rem; color: #45454c; }
.cid-table th[aria-sort="ascending"]::after { content: "↑"; color: var(--c10-red); }
.cid-table th[aria-sort="descending"]::after { content: "↓"; color: var(--c10-red); }
.cid-table td { max-width: 260px; padding: .8rem 1rem; overflow: hidden; color: #c5c5ca; border-bottom: 1px solid rgba(255,255,255,.055); text-overflow: ellipsis; white-space: nowrap; font-size: .65rem; }
.cid-table tr:hover td { background: rgba(255,255,255,.025); }
.status { display: inline-flex; align-items: center; gap: .4rem; padding: .28rem .5rem; color: #b7b7bd; border: 1px solid var(--c10-line); border-radius: 15px; font-size: .55rem; text-transform: capitalize; }
.status i { width: 5px; height: 5px; border-radius: 50%; background: #81818a; }
.status-activo i,.status-activa i,.status-publicado i,.status-confirmada i,.status-verificada i,.status-aprobado i,.status-disponible i { background: var(--c10-success); box-shadow: 0 0 7px var(--c10-success); }
.status-pendiente i,.status-pendiente-pago i,.status-en-revision i { background: #f5a623; }
.status-rechazado i,.status-cancelado i,.status-suspendido i { background: var(--c10-red); }
.table-action { padding: .35rem .55rem; color: #fff; border: 1px solid var(--c10-line); border-radius: 3px; background: #19191d; font-size: .58rem; }
.table-action:hover:not(:disabled) { border-color: var(--c10-red); }
.table-action:disabled { opacity: .35; }
.table-footer { display: flex; justify-content: space-between; align-items: center; padding: .9rem 1rem; color: #66666e; font-size: .6rem; }
.table-footer nav { display: flex; gap: .25rem; }
.table-footer nav a { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--c10-line); }
.table-footer nav a.active { color: #fff; border-color: var(--c10-red); background: var(--c10-red); }
.table-no-results { display: grid; justify-items: center; gap: .45rem; padding: 2.5rem 1rem; color: #686870; font-size: .68rem; }
.table-no-results[hidden] { display: none; }
.table-no-results i { color: var(--c10-red); font-size: 1.4rem; }
.empty-state { display: grid; justify-items: center; padding: 4rem 1rem; color: #686870; text-align: center; }
.empty-state i { font-size: 2rem; }
.empty-state h3 { margin: .7rem 0 .2rem; color: #ddd; font: 500 1.2rem var(--font-condensed); text-transform: uppercase; }
.empty-state p { font-size: .7rem; }
.matchmaking-lab { display: grid; grid-template-columns: .8fr 1fr 1.25fr; gap: 1rem; margin-bottom: 1rem; }
.match-copy,.match-controls,.roulette-stage { min-height: 430px; padding: 1.5rem; border: 1px solid var(--c10-line); background: var(--c10-panel); }
.match-copy { background: radial-gradient(circle at 0 0,rgba(229,9,20,.18),transparent 45%),var(--c10-panel); }
.match-copy h2 { margin: 0; font: 500 2.2rem/1 var(--font-condensed); text-transform: uppercase; }
.match-copy > p { color: #83838b; font-size: .72rem; line-height: 1.7; }
.match-rule { display: flex; gap: .7rem; align-items: center; margin-top: 2rem; padding: .8rem; border: 1px solid rgba(59,213,131,.2); background: rgba(59,213,131,.05); }
.match-rule > i { color: var(--c10-success); font-size: 1.2rem; }
.match-rule span { display: grid; }
.match-rule strong { font-size: .65rem; }
.match-rule small { color: #777780; font-size: .55rem; }
.mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.mode-switch input { position: absolute; opacity: 0; }
.mode-switch label > span { display: grid; min-height: 85px; padding: .7rem; border: 1px solid var(--c10-line); cursor: pointer; }
.mode-switch input:checked + span { border-color: var(--c10-red); background: rgba(229,9,20,.08); }
.mode-switch i { color: var(--c10-red); }
.mode-switch small { color: #66666e; font-size: .52rem; }
.roulette-stage { position: relative; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle,rgba(229,9,20,.09),transparent 52%),#0e0e11; }
.roulette-stage::before,.roulette-stage::after { content: ""; position: absolute; left: 0; right: 0; z-index: 2; height: 80px; pointer-events: none; }
.roulette-stage::before { top: 0; background: linear-gradient(#0e0e11,transparent); }
.roulette-stage::after { bottom: 0; background: linear-gradient(transparent,#0e0e11); }
.roulette-idle { display: grid; justify-items: center; max-width: 250px; text-align: center; }
.roulette-idle > span { display: grid; place-items: center; width: 78px; height: 78px; margin-bottom: 1rem; color: var(--c10-red); border: 1px solid rgba(229,9,20,.4); border-radius: 50%; font-size: 1.8rem; box-shadow: 0 0 40px rgba(229,9,20,.12); }
.roulette-idle small { margin-top: .4rem; color: #6d6d75; font-size: .6rem; }
.roulette-head { display: none; align-items: center; justify-content: space-between; width: 100%; margin-bottom: .6rem; color: #83838b; font-size: .58rem; text-transform: uppercase; letter-spacing: .06em; }
.roulette-head strong { color: #d5d5d8; letter-spacing: .02em; }
.roulette-head .pulse { color: var(--c10-red); animation: roulettePulse .7s infinite alternate; }
.roulette-viewport { display: none; position: relative; width: 100%; height: 380px; overflow: hidden; }
.roulette-viewport::before,.roulette-viewport::after { content: ""; position: absolute; left: 0; right: 0; z-index: 3; height: 80px; pointer-events: none; }
.roulette-viewport::before { top: 0; background: linear-gradient(#0e0e11,transparent); }
.roulette-viewport::after { bottom: 0; background: linear-gradient(transparent,#0e0e11); }
.roulette-selector { position: absolute; z-index: 4; left: 0; right: 0; top: 50%; height: 92px; transform: translateY(-50%); border-top: 1px solid rgba(229,9,20,.85); border-bottom: 1px solid rgba(229,9,20,.85); background: rgba(229,9,20,.06); pointer-events: none; }
.roulette-selector::before { content: ""; position: absolute; left: 0; top: 35px; border: 10px solid transparent; border-left-color: var(--c10-red); }
.roulette-track { position: absolute; left: 0; right: 0; top: 0; width: 100%; will-change: transform; }
.roulette-track .empty-track { display: grid; place-items: center; height: 380px; padding: 1rem; color: #6d6d75; font-size: .68rem; text-align: center; }
.opponent-row { display: grid; grid-template-columns: 54px 1fr 92px 58px; align-items: center; gap: .8rem; height: 92px; padding: 0 .3rem; border-bottom: 1px solid var(--c10-line); }
.opponent-row img { width: 50px; height: 60px; object-fit: cover; border-radius: 2px; }
.opponent-row .opponent-name { min-width: 0; }
.opponent-row .opponent-name strong { display: block; overflow: hidden; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.opponent-row .opponent-name small { display: block; margin-top: .2rem; color: #777780; font-size: .56rem; }
.opponent-row .opponent-weight { text-align: right; }
.opponent-row .opponent-weight strong { display: block; font-size: .74rem; }
.opponent-row .opponent-weight small { color: #777780; font-size: .52rem; }
.opponent-row .opponent-score { text-align: center; }
.opponent-row .opponent-score b { display: block; color: var(--c10-success); font-size: .78rem; }
.opponent-row .opponent-score small { color: #777780; font-size: .48rem; }
.roulette-card { display: grid; grid-template-columns: 62px 1fr auto; align-items: center; gap: .7rem; width: 100%; margin: .4rem 0; padding: .6rem; border: 1px solid var(--c10-line); background: #232323; }
.roulette-card.selected { border-color: var(--c10-red); box-shadow: 0 0 25px rgba(229,9,20,.2); }
.roulette-card img { width: 62px; height: 72px; object-fit: cover; }
.roulette-card span { display: grid; }
.roulette-card small { color: #777780; font-size: .55rem; }
.roulette-card b { color: var(--c10-red); font: 400 1.5rem var(--font-display); }
.roulette-results { display: none; width: 100%; max-height: 380px; overflow: auto; }
.roulette-detail { display: none; width: 100%; max-height: 500px; overflow: auto; }
.detail-photo { position: relative; height: 190px; margin-bottom: 1rem; overflow: hidden; border-radius: 3px; background: #0e0e11; }
.detail-photo img { width: 100%; height: 100%; object-fit: cover; }
.detail-photo::after { content: ""; position: absolute; inset: auto 0 0; height: 45%; background: linear-gradient(transparent,rgba(0,0,0,.85)); }
.detail-rank { position: absolute; top: .7rem; right: .7rem; z-index: 2; padding: .35rem .55rem; border: 1px solid var(--c10-line); border-radius: 3px; background: rgba(10,10,10,.82); font-size: .56rem; letter-spacing: .03em; }
.detail-name h3 { margin: 0; font: 400 1.7rem var(--font-display); text-transform: uppercase; }
.detail-name p { margin: .35rem 0 1rem; color: #83838b; font-size: .68rem; }
.detail-compat { margin-bottom: 1rem; padding: .8rem; border: 1px solid var(--c10-line); background: #1c1c1c; }
.detail-compat-row { display: flex; justify-content: space-between; margin-bottom: .5rem; font-size: .62rem; }
.detail-compat-row b { color: var(--c10-success); }
.detail-bar { height: 6px; overflow: hidden; border-radius: 8px; background: #2c2c2c; }
.detail-bar i { display: block; width: 0; height: 100%; border-radius: 8px; background: linear-gradient(90deg,var(--c10-red),var(--c10-warning),var(--c10-success)); transition: width 1s ease; }
.detail-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; margin-bottom: 1rem; }
.detail-stats > div { padding: .6rem .3rem; border: 1px solid var(--c10-line); background: #1c1c1c; text-align: center; }
.detail-stats b { display: block; font-size: .8rem; }
.detail-stats small { color: #777780; font-size: .5rem; }
.detail-reasons { padding-top: .8rem; border-top: 1px solid var(--c10-line); }
.detail-reasons h4 { margin: 0 0 .6rem; color: #a8a8af; font-size: .6rem; letter-spacing: .04em; text-transform: uppercase; }
.detail-reason { display: flex; gap: .5rem; margin: .45rem 0; color: #c0c0c8; font-size: .65rem; }
.detail-reason::before { content: "✓"; color: var(--c10-success); font-weight: 700; }
.detail-other { margin-top: 1rem; }
.detail-other > small { display: block; margin-bottom: .5rem; color: #6d6d75; font-size: .55rem; text-transform: uppercase; letter-spacing: .05em; }
@keyframes roulettePulse { to { opacity: .4; } }
.check-grid { display: flex; flex-wrap: wrap; gap: .5rem; }
.check-grid label { display: flex; align-items: center; padding: .45rem .6rem; border: 1px solid var(--c10-line); font-weight: 400; }
.cid-form fieldset { padding: 1rem; border: 1px solid var(--c10-line); }
.cid-form legend { float: none; width: auto; padding: 0 .3rem; color: #d5d5d8; font-size: .7rem; font-weight: 600; }
.cid-form [data-academy-fields] { display: none; gap: 1rem; }
.cid-form [data-academy-fields].is-visible { display: grid; }
.cid-form [data-academy-fields] small { color: var(--c10-muted); font-size: .68rem; font-weight: 400; }
.sidebar-scrim { display: none; }
.cid-toast { color: #fff; border: 1px solid var(--c10-line); background: #19191d; box-shadow: 0 15px 50px #000; }
.cid-swal { border: 1px solid rgba(255,255,255,.12); border-radius: 8px; box-shadow: 0 30px 90px rgba(0,0,0,.72); }
.cid-swal .swal2-title { font: 500 1.65rem var(--font-condensed); text-transform: uppercase; }
.cid-swal .swal2-html-container { color: #a8a8af; font-size: .8rem; line-height: 1.6; }
.cid-swal-toast { border: 1px solid rgba(255,255,255,.12); box-shadow: 0 18px 60px rgba(0,0,0,.6); }

@media (max-width: 1100px) {
  :root { --sidebar-width: 235px; }
  .academy-hero-slide { width: min(570px,51vw); }
  .academy-hero-slide h1 { font-size: clamp(3rem,5.6vw,5.4rem); }
  .academy-hero-coach { left: calc(100% - 1.5rem); width: min(37vw,488px); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .matchmaking-lab { grid-template-columns: 1fr 1fr; }
  .roulette-stage { grid-column: 1/-1; min-height: 330px; }
  .footer-grid { grid-template-columns: 1.5fr repeat(3,1fr); }
}
@media (max-width: 991.98px) {
  .site-header { padding-top: max(.45rem,env(safe-area-inset-top)); background: rgba(10,10,10,.94); }
  .site-header .navbar-collapse { margin-top: .6rem; padding: 1rem; border: 1px solid var(--c10-line); background: #141414; }
  .header-actions { align-items: stretch; flex-wrap: wrap; margin-top: .7rem; }
  .global-search { flex: 1 0 100%; border-color: var(--c10-line); }
  .global-search input,.global-search.open input { flex: 1; width: auto; }
  .search-results { right: auto; left: 0; width: min(90vw,360px); }
  .academy-hero-slide { width: min(560px,58vw); }
  .academy-hero-coach { left: calc(100% - 2rem); width: min(41vw,452px); }
  .auth-page { grid-template-columns: 1fr; }
  .auth-visual { display: none; }
  .panel-sidebar { transform: translateX(-101%); transition: transform .25s; }
  .panel-sidebar.open { transform: none; }
  .panel-sidebar.open + .sidebar-scrim { position: fixed; z-index: 1050; inset: 0; display: block; background: rgba(0,0,0,.7); }
  .sidebar-head button,.sidebar-toggle { display: block; }
  .panel-main { margin-left: 0; }
  .user-chip-trigger > div,.user-chip-trigger > i { display: none; }
  .user-menu-panel { right: -1rem; }
  .academy-identity-editor { grid-template-columns: 1fr; }
  .identity-preview { min-height: 430px; }
}
@media (max-width: 767.98px) {
  .hero { min-height: 760px; }
  .hero-art { background-position: 68% center; }
  .academy-hero-art { opacity: 0; }
  .academy-hero-art.active { opacity: .76; }
  .hero-vignette { background: linear-gradient(0deg,var(--c10-black) 0%,rgba(0,0,0,.34) 58%,rgba(0,0,0,.55) 100%),linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.2) 80%); }
  .hero-content { justify-content: flex-end; min-height: 760px; padding-top: 6rem; padding-bottom: 5.5rem; }
  .hero h1 { font-size: clamp(3.7rem,18vw,6rem); }
  .hero h1 span { -webkit-text-stroke-width: 1px; }
  .hero-content > p { font-size: .9rem; }
  .hero .btn-lg { flex: 1; min-width: 150px; font-size: .78rem; }
  .academy-hero-slide { position: relative; width: 100%; }
  .academy-hero-slide.active { display: flex; flex-direction: column; }
  .hero-kicker { order: 1; padding-right: 3.2rem; }
  .academy-hero-slide .academy-hero-logo { position: absolute; top: 0; right: 0; z-index: 4; width: 46px; height: 46px; margin-bottom: 0; }
  .academy-hero-slide h1 { order: 2; font-size: clamp(2.8rem,12.5vw,4.2rem); }
  .academy-hero-slide > p { order: 3; }
  /* Igual que en escritorio: la foto flota libre con su resplandor propio,
     sin recuadro ni recorte, para que se vea igual de dramática en móvil. */
  .academy-hero-coach { order: 4; position: relative; inset: auto; left: auto; right: auto; bottom: auto; width: 100%; height: 340px; margin: .2rem 0 1.1rem; opacity: 1; pointer-events: auto; }
  .academy-hero-coach img { position: static; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
  .academy-hero-coach span { position: absolute; left: .5rem; bottom: 0; display: grid; padding: .5rem .65rem; }
  .academy-hero-meta { order: 5; }
  .hero-cta { order: 6; }
  .academy-hero-nav { bottom: 1.2rem; }
  .hero-event,.hero-scroll { display: none; }
  .rail-section { padding-top: 3.5rem; }
  .section-heading { align-items: flex-end; }
  .section-heading h2 { font-size: 2rem; }
  .see-all { font-size: 0; }
  .see-all i { font-size: 1rem; }
  .poster-card { flex-basis: 76vw; }
  .fighter-card { flex-basis: 62vw; }
  .coach-card { flex-basis: 88vw; }
  .event-card { flex-basis: 82vw; }
  .rail-arrow { display: none; }
  .join-inner { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1/-1; }
  .footer-bottom { gap: .6rem; flex-direction: column; }
  .detail-hero { min-height: 520px; }
  .detail-content { min-height: 440px; align-items: flex-end; gap: 1rem; }
  .detail-logo { flex-basis: 82px; height: 82px; }
  .detail-content h1 { font-size: 2.8rem; }
  .detail-tabs { gap: 1.2rem; overflow: auto; flex-wrap: nowrap; }
  .detail-tabs li { flex: 0 0 auto; }
  .detail-stats { flex-direction: column; }
  .contact-card { grid-template-columns: auto 1fr; }
  .athlete-profile { grid-template-columns: 1fr; min-height: 850px; padding: 100px 1rem 0; }
  .athlete-photo { grid-row: 2; height: 430px; }
  .athlete-info { padding-bottom: 0; }
  .athlete-info h1 { font-size: 4rem; }
  .athlete-number { right: -8vw; font-size: 16rem; }
  .big-record { overflow: auto; }
  .big-record div { min-width: 90px; }
  .event-detail-hero { min-height: auto; padding: 120px 0 60px; }
  .event-detail-content { grid-template-columns: 1fr; min-height: auto; }
  .event-poster-large { display: none; }
  .event-detail-content h1 { font-size: 3.8rem; }
  .fight-row { grid-template-columns: 30px 1fr 45px 1fr; min-height: 100px; }
  .corner { gap: .4rem; }
  .corner img { width: 45px; height: 78px; }
  .corner strong { font-size: .75rem; }
  .corner small,.versus span { display: none; }
  .versus strong { font-size: 1.2rem; }
  .panel-topbar { padding: 0 1rem; }
  .panel-content { padding: 1.3rem .8rem 3rem; }
  .panel-page-head { align-items: flex-start; flex-direction: column; }
  .panel-card-head { align-items: stretch; flex-direction: column; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .metric-card { min-height: 105px; padding: .8rem; }
  .metric-icon { flex-basis: 38px; height: 38px; }
  .metric-card strong { font-size: 1.35rem; }
  .dashboard-grid,.matchmaking-lab { grid-template-columns: 1fr; }
  .roulette-stage { grid-column: auto; }
  .match-copy,.match-controls,.roulette-stage { min-height: auto; }
  .roulette-viewport,.roulette-track .empty-track { height: 300px; }
  .opponent-row { grid-template-columns: 46px 1fr 68px; height: 78px; }
  .opponent-row .opponent-score { display: none; }
  .table-tools { width: 100%; }
  .table-tools label { display: block; flex: 1; }
  .table-tools input { width: 100%; min-height: 42px; }
  .cid-table thead { display: none; }
  .cid-table,.cid-table tbody,.cid-table tr,.cid-table td { display: block; width: 100%; }
  .cid-table tr { padding: .65rem; border-bottom: 1px solid var(--c10-line); }
  .cid-table td { display: flex; justify-content: space-between; max-width: none; padding: .35rem; border: 0; white-space: normal; }
  .cid-table td::before { content: attr(data-label); color: #66666e; font-size: .55rem; text-transform: uppercase; }
  .cid-table td:not([data-label])::before { content: "Acciones"; color: #66666e; font-size: .55rem; text-transform: uppercase; }
  .user-chip { border: 0; padding: 0; }
}
@media (max-width: 480px) {
  .hero { min-height: 720px; }
  .hero-content { min-height: 720px; padding-right: 1rem !important; padding-left: 1rem !important; }
  .hero-kicker { margin-bottom: .75rem; font-size: .61rem; }
  .academy-hero-slide h1 { margin-bottom: .75rem; font-size: clamp(2.4rem,12vw,3.6rem); line-height: .88; }
  .academy-hero-slide > p { display: -webkit-box; overflow: hidden; font-size: .78rem; line-height: 1.45; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
  .academy-hero-meta { gap: .35rem .75rem; margin: .65rem 0 1rem; font-size: .62rem; }
  .academy-hero-meta span:last-child { flex-basis: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .hero .btn-lg { flex-basis: 100%; min-height: 46px; padding: .65rem .85rem; }
  .academy-hero-coach { height: 200px; }
  .academy-hero-nav { left: 1rem; gap: .25rem; }
  .academy-hero-nav button { width: 36px; }
  .academy-hero-nav button.active { width: 54px; }
  .metric-grid { grid-template-columns: 1fr; }
  .topbar-actions > button:first-child { display: none; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > div:first-child { grid-column: auto; }
  .form-row { grid-template-columns: 1fr; }
  .identity-preview { min-height: 340px; padding: 1.2rem; }
  .identity-preview > div:last-child { inset: auto 1.2rem 1.2rem; }
  .cid-swal { width: calc(100% - 1.5rem); padding: .85rem; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.install-banner { position: fixed; left: .75rem; right: .75rem; bottom: .75rem; z-index: 1100; display: flex; align-items: center; gap: .7rem; padding: .8rem .9rem; border: 1px solid var(--c10-line); border-left: 3px solid var(--c10-red); border-radius: 12px; background: linear-gradient(135deg, rgba(28,28,28,.97), rgba(10,10,10,.97)); box-shadow: 0 16px 40px rgba(0,0,0,.45); backdrop-filter: blur(14px); animation: install-banner-in .3s ease; }
.install-banner > i:first-child { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--c10-red); color: #fff; font-size: 1.1rem; }
.install-banner div { flex: 1; min-width: 0; }
.install-banner strong { display: block; font: 600 .86rem var(--font-body); color: var(--c10-white); }
.install-banner small { display: block; color: var(--c10-muted); font-size: .74rem; line-height: 1.3; margin-top: .1rem; }
.install-banner [data-install-action] { flex: none; }
.install-banner [data-install-dismiss] { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: var(--c10-muted); }
.install-banner [data-install-dismiss]:hover { background: var(--c10-panel-2); color: var(--c10-white); }
@keyframes install-banner-in { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@media (max-width: 480px) {
  .install-banner { flex-wrap: wrap; }
  .install-banner div { order: 1; flex-basis: 100%; }
}

/* Navegación móvil estilo app: oculta en escritorio, breakpoint 768px por CSS (no UA). */
.bottom-nav { display: none; }
@media (max-width: 768px) {
  #mainNav .navbar-nav { display: none; }
  body.public-shell { padding-bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom)); }
  /* El banner de instalación PWA flota más arriba para no tapar la barra ni ser tapado por ella. */
  body.public-shell .install-banner { bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 1rem); }

  .bottom-nav {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 1030;
    display: flex;
    height: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    background: rgba(10,10,10,.97);
    border-top: 1px solid var(--c10-line);
    backdrop-filter: blur(14px);
  }
  .bottom-nav a {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .2rem;
    color: var(--c10-muted);
    font: 500 .62rem var(--font-body);
    text-decoration: none;
    transition: color .15s;
  }
  .bottom-nav a i { font-size: 1.2rem; line-height: 1; }
  .bottom-nav a.active { color: var(--c10-red); }
}
