
:root {
  --font-main: "__Khand_71c2e1", "Khand", "Arial Narrow", "Roboto Condensed", system-ui, sans-serif;
  --black: #050606;
  --black-2: #0a0b0b;
  --panel: #111313;
  --panel-2: #171919;
  --panel-3: #1d2020;
  --gold: #dba638;
  --gold-bright: #f5c85b;
  --gold-soft: rgba(219, 166, 56, .16);
  --red: #8f1d18;
  --green: #0f6037;
  --cream: #f4efe2;
  --white: #ffffff;
  --muted: #9ea3a0;
  --line: rgba(255,255,255,.09);
  --line-gold: rgba(219,166,56,.28);
  --success: #66c68c;
  --danger: #ef6b62;
  --shadow: 0 18px 60px rgba(0,0,0,.35);
  --radius: 18px;
  --max: 1240px;
}

* { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%; scroll-behavior: smooth; background: var(--black); color-scheme: dark; }
body {
  margin: 0;
  min-width: 320px;
  background:
    radial-gradient(circle at 12% 8%, rgba(143,29,24,.10), transparent 25rem),
    radial-gradient(circle at 88% 10%, rgba(15,96,55,.10), transparent 27rem),
    var(--black);
  color: var(--cream);
  font-family: var(--font-main);
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 3px; }

.site-shell { min-height: 100vh; display: flex; flex-direction: column; overflow: hidden; }
.site-header {
  position: relative;
  z-index: 20;
  background: rgba(5,6,6,.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
}
.header-inner {
  width: min(var(--max), calc(100% - 40px));
  min-height: 92px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand { display: inline-flex; align-items: center; gap: 14px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
.brand-logo { width: 66px; height: 66px; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(0,0,0,.45)); }
.brand-copy { display: grid; gap: 4px; }
.brand-copy strong { font-family: var(--font-main); letter-spacing: .11em; font-size: 1.06rem; color: var(--white); }
.brand-copy small { color: var(--gold); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.session-box { display: flex; align-items: center; gap: 10px; }
.user-chip { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); background: rgba(255,255,255,.035); border-radius: 999px; color: var(--cream); padding: 6px 12px 6px 7px; }
.user-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(145deg, var(--gold-bright), #7e5412); color: #090909; font-weight: 900; font-size: .75rem; border: 1px solid rgba(255,255,255,.3); }
.user-avatar.large { width: 74px; height: 74px; font-size: 1.1rem; flex: 0 0 auto; }
.user-chip-copy { display: grid; text-align: left; gap: 1px; max-width: 170px; }
.user-chip-copy strong { font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-chip-copy small { color: var(--gold); font-size: .7rem; }

.nav-shell { position: sticky; top: 0; z-index: 15; background: rgba(9,10,10,.97); border-bottom: 1px solid var(--line); box-shadow: 0 7px 25px rgba(0,0,0,.16); backdrop-filter: blur(15px); }
.main-nav { width: min(var(--max), calc(100% - 40px)); margin: 0 auto; display: flex; align-items: stretch; min-height: 60px; overflow-x: auto; scrollbar-width: none; }
.main-nav::-webkit-scrollbar { display: none; }
.nav-item { position: relative; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 18px; min-height: 60px; border: 0; background: transparent; color: #b9bcba; font-weight: 700; font-size: .79rem; letter-spacing: .015em; white-space: nowrap; transition: color .2s ease, background .2s ease; }
.nav-item:hover { color: var(--white); background: rgba(255,255,255,.025); }
.nav-item[aria-current="page"] { color: var(--gold-bright); }
.nav-item[aria-current="page"]::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--red), var(--gold-bright), var(--green)); border-radius: 8px 8px 0 0; }
.icon { width: 18px; height: 18px; display: inline-grid; place-items: center; flex: 0 0 auto; }
.icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.site-main { flex: 1; }
.content-section, .page-section { width: min(var(--max), calc(100% - 40px)); margin: 0 auto; }
.page-section { padding: 66px 0 80px; }
.hero-section {
  min-height: 590px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  align-items: center;
  width: min(var(--max), calc(100% - 40px));
  margin: 0 auto;
  position: relative;
  isolation: isolate;
}
.hero-section::before { content: ""; position: absolute; inset: 0 50% 0 -50vw; z-index: -1; background: linear-gradient(115deg, rgba(143,29,24,.12), transparent 55%); border-right: 1px solid rgba(219,166,56,.08); }
.hero-copy { padding: 76px 0; position: relative; z-index: 2; }
.eyebrow { color: var(--gold); font-size: .72rem; letter-spacing: .18em; font-weight: 900; text-transform: uppercase; }
.hero-copy h2 { margin: 15px 0 18px; max-width: 700px; font-family: var(--font-main); font-weight: 500; font-size: clamp(3rem, 6vw, 5.65rem); line-height: .92; letter-spacing: -.045em; color: var(--white); }
.hero-copy h2 em { display: block; color: var(--gold-bright); font-style: normal; }
.hero-copy > p { max-width: 620px; margin: 0; color: #b7bbb8; line-height: 1.75; font-size: 1rem; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.hero-domain { margin-top: 34px; display: flex; align-items: center; gap: 9px; color: #7e8580; font-size: .7rem; letter-spacing: .14em; font-weight: 800; }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(15,96,55,.14); }
.hero-crest-wrap { min-height: 520px; position: relative; display: grid; place-items: center; }
.hero-crest { position: relative; z-index: 2; width: min(430px, 88%); max-height: 500px; object-fit: contain; filter: drop-shadow(0 30px 30px rgba(0,0,0,.55)); animation: crestFloat 7s ease-in-out infinite; }
.hero-glow { position: absolute; width: 450px; height: 450px; border-radius: 50%; background: radial-gradient(circle, rgba(219,166,56,.17) 0, rgba(143,29,24,.08) 35%, rgba(15,96,55,.07) 55%, transparent 72%); filter: blur(8px); }
.hero-crest-wrap::before, .hero-crest-wrap::after { content: ""; position: absolute; border: 1px solid rgba(219,166,56,.12); border-radius: 50%; }
.hero-crest-wrap::before { width: 410px; height: 410px; }
.hero-crest-wrap::after { width: 520px; height: 520px; border-color: rgba(255,255,255,.045); }
@keyframes crestFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

.btn { min-height: 42px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 16px; font-weight: 850; font-size: .8rem; transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease; color: var(--cream); background: rgba(255,255,255,.035); }
.btn:hover { transform: translateY(-1px); border-color: rgba(255,255,255,.2); }
.btn-primary { color: #0a0906; border-color: #f1c65c; background: linear-gradient(135deg, #f8d06a, #bd8324); box-shadow: 0 8px 25px rgba(219,166,56,.16); }
.btn-primary:hover { background: linear-gradient(135deg, #ffe28d, #d79a31); }
.btn-ghost { background: transparent; }
.btn-ghost-light { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.13); }
.btn-header { background: transparent; border-color: var(--line); color: #b5bab6; }
.btn-icon-label { display: inline-flex; align-items: center; justify-content: center; gap: 9px; }
.btn-small { min-height: 34px; padding: 7px 11px; font-size: .72rem; }
.btn-danger { color: #ffaaa4; border-color: rgba(239,107,98,.28); background: rgba(239,107,98,.06); }
.text-link { display: inline-flex; align-items: center; gap: 7px; background: none; border: 0; color: var(--gold); padding: 8px 0; font-size: .76rem; font-weight: 850; }
.text-link .icon { width: 15px; }

.home-match-section { padding: 48px 0 8px; }
.content-section + .content-section { margin-top: 62px; }
.section-title-row { display: flex; justify-content: space-between; align-items: end; gap: 22px; margin-bottom: 22px; }
.section-title-row.compact { margin-bottom: 18px; }
.section-title-row h3 { margin: 6px 0 0; font-family: var(--font-main); font-weight: 500; font-size: clamp(1.6rem, 3vw, 2.35rem); color: var(--white); }
.match-card { border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(140deg, rgba(255,255,255,.045), rgba(255,255,255,.018)); padding: 25px; box-shadow: var(--shadow); overflow: hidden; position: relative; }
.match-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(var(--red), var(--gold), var(--green)); }
.match-card.featured { padding: 28px 34px; }
.match-topline { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 25px; }
.competition-pill { display: inline-flex; align-items: center; gap: 7px; color: #c9c9c4; font-size: .72rem; font-weight: 800; }
.competition-pill .icon { width: 15px; color: var(--gold); }
.status-pill { display: inline-flex; align-items: center; min-height: 26px; border-radius: 999px; padding: 4px 9px; background: rgba(255,255,255,.07); color: #bfc2c0; font-size: .64rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; border: 1px solid rgba(255,255,255,.06); }
.status-pill.upcoming { color: #f0c65d; background: rgba(219,166,56,.08); border-color: rgba(219,166,56,.22); }
.status-pill.played { color: #89d9a6; background: rgba(15,96,55,.11); border-color: rgba(102,198,140,.18); }
.match-scoreboard { display: grid; grid-template-columns: 1fr 130px 1fr; gap: 24px; align-items: center; }
.match-team { min-width: 0; display: flex; align-items: center; gap: 14px; }
.match-team.away { flex-direction: row-reverse; text-align: right; }
.match-team img, .opponent-badge { width: 74px; height: 74px; flex: 0 0 74px; object-fit: contain; }
.opponent-badge { display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: rgba(255,255,255,.04); color: #858b87; font-family: var(--font-main); font-size: 1.1rem; }
.match-team strong { font-family: var(--font-main); font-size: clamp(1.05rem, 2vw, 1.5rem); font-weight: 500; color: var(--white); }
.score-box { text-align: center; display: grid; gap: 5px; }
.score-box > strong { display: flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-main); font-size: 2.35rem; color: var(--white); line-height: 1; }
.score-box > strong span { color: var(--gold); font-size: 1.25rem; }
.score-box > small { color: var(--muted); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.match-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 24px; padding-top: 24px; margin-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.match-meta span { display: inline-flex; align-items: center; gap: 7px; }
.match-meta .icon { width: 14px; color: var(--gold); }

.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.summary-card { position: relative; min-height: 170px; border: 1px solid var(--line); border-radius: 14px; padding: 22px; display: flex; flex-direction: column; background: var(--panel); overflow: hidden; }
.summary-card::after { content: ""; position: absolute; right: -32px; bottom: -45px; width: 120px; height: 120px; border-radius: 50%; border: 1px solid rgba(255,255,255,.035); }
.summary-card.accent-gold { border-color: var(--line-gold); background: linear-gradient(145deg, rgba(219,166,56,.09), var(--panel)); }
.summary-card > span:not(.icon) { color: var(--muted); font-size: .7rem; font-weight: 750; margin-top: auto; margin-bottom: 7px; }
.summary-card > strong { color: var(--white); font-family: var(--font-main); font-size: 1.25rem; font-weight: 500; line-height: 1.15; }
.summary-card > small { color: var(--gold); margin-top: 7px; font-size: .72rem; }
.summary-icon { width: 25px; height: 25px; color: var(--gold); }
.two-column-home { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding-bottom: 76px; }
.home-panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 23px; background: var(--panel); min-width: 0; }
.compact-match { box-shadow: none; background: rgba(0,0,0,.13); padding: 18px; }
.compact-match .match-topline { margin-bottom: 18px; }
.compact-match .match-team img, .compact-match .opponent-badge { width: 48px; height: 48px; flex-basis: 48px; }
.compact-match .match-scoreboard { grid-template-columns: 1fr 82px 1fr; gap: 12px; }
.compact-match .match-team strong { font-size: .9rem; }
.compact-match .score-box > strong { font-size: 1.65rem; }
.compact-match .match-meta { justify-content: flex-start; gap: 12px; margin-top: 18px; padding-top: 18px; }
.mini-news-list { display: grid; }
.mini-news { width: 100%; display: grid; grid-template-columns: 34px 1fr 18px; gap: 13px; align-items: center; text-align: left; padding: 14px 0; border: 0; border-top: 1px solid var(--line); background: transparent; color: inherit; }
.mini-news:first-child { border-top: 0; padding-top: 0; }
.mini-news-index { color: var(--gold); font-family: var(--font-main); font-size: 1.2rem; }
.mini-news > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.mini-news small { color: #707773; font-size: .64rem; text-transform: uppercase; }
.mini-news strong { color: var(--white); font-size: .84rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-news em { color: var(--muted); font-size: .72rem; font-style: normal; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-news .icon { width: 15px; color: var(--gold); }

.page-heading { max-width: 760px; margin-bottom: 36px; }
.page-heading h2 { margin: 8px 0 12px; font-family: var(--font-main); font-size: clamp(2.4rem, 5vw, 4.3rem); font-weight: 500; letter-spacing: -.035em; color: var(--white); }
.page-heading p { margin: 0; color: var(--muted); line-height: 1.7; max-width: 680px; }
.toolbar { display: flex; align-items: center; justify-content: flex-end; margin-bottom: 22px; }
.filter-control { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: .73rem; font-weight: 750; }
.filter-control select { min-width: 180px; }
.competition-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.competition-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; background: linear-gradient(155deg, rgba(255,255,255,.038), rgba(255,255,255,.015)); min-height: 320px; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.competition-card::after { content: ""; position: absolute; width: 150px; height: 150px; border: 1px solid rgba(219,166,56,.055); border-radius: 50%; right: -60px; top: -60px; }
.competition-card-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.competition-year { color: var(--gold); font-weight: 900; font-size: .77rem; letter-spacing: .12em; }
.competition-icon { width: 50px; height: 50px; margin: 27px 0 17px; display: grid; place-items: center; border-radius: 14px; color: var(--gold); background: var(--gold-soft); border: 1px solid var(--line-gold); }
.competition-icon .icon { width: 26px; height: 26px; }
.competition-card h3 { margin: 0; color: var(--white); font-family: var(--font-main); font-size: 1.45rem; font-weight: 500; }
.competition-card > p { color: var(--muted); line-height: 1.55; font-size: .79rem; margin: 10px 0 22px; flex: 1; }
.competition-card dl { margin: 0; padding-top: 15px; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.competition-card dl div { display: grid; gap: 4px; min-width: 0; }
.competition-card dt { color: #747a76; font-size: .61rem; text-transform: uppercase; }
.competition-card dd { margin: 0; color: #d4d5d2; font-size: .7rem; overflow-wrap: anywhere; }

.calendar-block + .calendar-block { margin-top: 54px; }
.count-badge { display: grid; place-items: center; min-width: 36px; height: 30px; border-radius: 999px; background: var(--gold-soft); color: var(--gold); font-size: .72rem; font-weight: 900; border: 1px solid var(--line-gold); }
.matches-grid { display: grid; gap: 14px; }
.list-match { box-shadow: none; }
.list-match .match-team img, .list-match .opponent-badge { width: 58px; height: 58px; flex-basis: 58px; }
.list-match .match-scoreboard { grid-template-columns: 1fr 100px 1fr; }

.squad-group + .squad-group { margin-top: 46px; }
.players-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.player-card { min-height: 350px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); overflow: hidden; transition: transform .2s ease, border-color .2s ease; }
.player-card:hover { transform: translateY(-3px); border-color: var(--line-gold); }
.player-card-head { height: 185px; position: relative; display: grid; place-items: end center; overflow: hidden; background: radial-gradient(circle at 50% 100%, rgba(219,166,56,.16), transparent 60%), linear-gradient(145deg, #181b1a, #0b0c0c); }
.player-card-head::before { content: "RM"; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-family: var(--font-main); font-size: 6.2rem; color: rgba(255,255,255,.025); }
.shirt-number { position: absolute; z-index: 2; top: 15px; left: 17px; color: var(--gold-bright); font-family: var(--font-main); font-size: 2.1rem; line-height: 1; }
.player-silhouette { width: 116px; height: 140px; display: grid; place-items: center; color: rgba(240,232,210,.16); border: 1px solid rgba(255,255,255,.035); border-radius: 56% 56% 10px 10px; border-bottom: 0; background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)); }
.player-silhouette .icon { width: 70px; height: 70px; stroke-width: 1; }
.player-card-body { padding: 19px; }
.player-card-body > small { color: var(--gold); text-transform: uppercase; letter-spacing: .12em; font-size: .62rem; font-weight: 850; }
.player-card-body h3 { margin: 7px 0 5px; color: var(--white); font-family: var(--font-main); font-weight: 400; font-size: 1.35rem; }
.player-card-body h3 strong { display: block; font-weight: 600; }
.player-card-body > p { margin: 0; color: var(--muted); font-size: .75rem; }
.player-meta { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 8px; color: #7e8581; font-size: .66rem; }

.stats-overview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.stats-overview article { border: 1px solid var(--line); background: var(--panel); border-radius: 13px; padding: 18px; display: grid; gap: 5px; }
.stats-overview span { color: var(--muted); font-size: .68rem; }
.stats-overview strong { color: var(--gold-bright); font-family: var(--font-main); font-size: 1.75rem; font-weight: 500; }
.table-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); overflow: hidden; }
.table-wrap { overflow-x: auto; width: 100%; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th { padding: 13px 15px; text-align: left; color: #777e79; font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; background: rgba(0,0,0,.22); border-bottom: 1px solid var(--line); }
td { padding: 14px 15px; color: #c4c7c4; font-size: .75rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: rgba(255,255,255,.016); }
.table-player { display: flex; align-items: center; gap: 9px; color: var(--white); }
.mini-shirt { min-width: 28px; height: 28px; display: grid; place-items: center; border-radius: 7px; background: var(--gold-soft); color: var(--gold); font-size: .65rem; font-weight: 900; }
.rank-number { color: #6d736f; }
.stat-highlight { color: var(--gold-bright); }

.news-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.news-card { min-width: 0; display: grid; grid-template-columns: 180px 1fr; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--panel); }
.news-card.featured-news { grid-column: 1 / -1; grid-template-columns: minmax(260px, .75fr) 1.25fr; }
.news-visual { position: relative; min-height: 250px; display: grid; place-items: center; background: linear-gradient(145deg, rgba(143,29,24,.16), rgba(9,10,10,.6) 50%, rgba(15,96,55,.14)); overflow: hidden; }
.news-visual::before { content: ""; position: absolute; inset: 12%; border: 1px solid rgba(219,166,56,.1); transform: rotate(7deg); }
.news-visual img { position: relative; z-index: 2; width: 105px; opacity: .78; filter: drop-shadow(0 12px 20px rgba(0,0,0,.4)); }
.featured-news .news-visual img { width: 160px; }
.news-monogram { position: absolute; font-family: var(--font-main); font-size: 8rem; color: rgba(255,255,255,.025); }
.news-content { padding: 23px; min-width: 0; display: flex; flex-direction: column; }
.news-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--gold); font-size: .6rem; font-weight: 850; letter-spacing: .08em; }
.news-meta time { color: #727975; }
.news-content h3 { margin: 12px 0 10px; color: var(--white); font-family: var(--font-main); font-size: 1.45rem; font-weight: 500; line-height: 1.1; }
.featured-news .news-content h3 { font-size: clamp(1.8rem,3vw,2.7rem); }
.news-summary { margin: 0; color: #c2c5c2; font-weight: 700; font-size: .8rem; line-height: 1.5; }
.news-body { margin: 11px 0 18px; color: var(--muted); font-size: .76rem; line-height: 1.55; flex: 1; }
.news-content > small { color: #6f7571; font-size: .65rem; }

.profile-hero { position: relative; overflow: hidden; min-height: 265px; display: flex; align-items: center; gap: 24px; border: 1px solid var(--line-gold); border-radius: var(--radius); padding: 30px; background: linear-gradient(120deg, rgba(219,166,56,.08), var(--panel) 48%, rgba(15,96,55,.06)); }
.profile-hero > img { position: absolute; right: 2%; bottom: -48%; width: 260px; opacity: .08; }
.profile-avatar { width: 130px; height: 160px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 60px 60px 14px 14px; background: linear-gradient(145deg, rgba(219,166,56,.22), rgba(255,255,255,.02)); border: 1px solid var(--line-gold); }
.profile-avatar span { color: var(--gold-bright); font-family: var(--font-main); font-size: 4rem; }
.profile-main { position: relative; z-index: 2; }
.profile-main h3 { margin: 7px 0; color: var(--white); font-family: var(--font-main); font-size: clamp(2rem,4vw,3.2rem); font-weight: 400; }
.profile-main h3 strong { font-weight: 600; }
.profile-main > p { color: var(--muted); }
.profile-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.profile-tags span { border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; color: #b3b8b4; font-size: .68rem; background: rgba(255,255,255,.03); }
.profile-stat-grid { margin-top: 15px; display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.profile-stat-grid article { display: grid; gap: 6px; padding: 20px; border: 1px solid var(--line); border-radius: 13px; background: var(--panel); }
.profile-stat-grid span { color: var(--muted); font-size: .68rem; }
.profile-stat-grid strong { color: var(--gold-bright); font-family: var(--font-main); font-size: 2rem; font-weight: 500; }
.account-card { display: flex; align-items: center; gap: 18px; max-width: 600px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); padding: 24px; }
.account-card h3 { margin: 7px 0; color: var(--white); font-family: var(--font-main); font-size: 1.7rem; font-weight: 500; }
.account-card p { margin: 0; color: var(--muted); }

.admin-banner { display: flex; align-items: flex-start; gap: 14px; border: 1px solid rgba(102,198,140,.16); background: rgba(15,96,55,.07); border-radius: 13px; padding: 16px 18px; margin-bottom: 26px; }
.admin-banner .icon { color: var(--success); margin-top: 2px; }
.admin-banner strong { color: #d7e9dc; font-size: .8rem; }
.admin-banner p { margin: 4px 0 0; color: #86998b; font-size: .72rem; }
.manager-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); overflow: hidden; margin-top: 18px; }
.manager-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px; border-bottom: 1px solid var(--line); }
.manager-header h3 { margin: 5px 0 2px; color: var(--white); font-family: var(--font-main); font-weight: 500; font-size: 1.5rem; }
.manager-header small { color: var(--muted); font-size: .65rem; }
.manager-table { min-width: 900px; }
.action-buttons { display: flex; gap: 6px; }
.manager-balance { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px 20px; background: rgba(219,166,56,.055); border-bottom: 1px solid var(--line); }
.manager-balance span { color: var(--muted); font-size: .7rem; }
.manager-balance strong { color: var(--gold-bright); font-family: var(--font-main); font-size: 1.4rem; font-weight: 500; }
.status-dot { display: inline-flex; align-items: center; gap: 6px; }
.status-dot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #6d716e; }
.status-dot.active::before { background: var(--success); }

.notice { width: min(var(--max), calc(100% - 40px)); margin: 20px auto 0; padding: 12px 15px; border-radius: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: .77rem; border: 1px solid rgba(102,198,140,.18); background: rgba(15,96,55,.1); color: #cce5d5; }
.notice.error { border-color: rgba(239,107,98,.24); background: rgba(143,29,24,.11); color: #ffc5c0; }
.notice button { border: 0; background: transparent; color: inherit; font-size: 1.2rem; }
.empty-state { border: 1px dashed rgba(255,255,255,.13); border-radius: 13px; padding: 24px; color: var(--muted); text-align: center; background: rgba(255,255,255,.015); }
.loading-screen { min-height: 500px; display: grid; place-items: center; align-content: center; gap: 16px; color: var(--muted); }
.loading-screen img { width: 120px; animation: crestPulse 1.6s ease-in-out infinite; }
.loading-screen p { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.loader-line { width: 150px; height: 2px; background: rgba(255,255,255,.06); overflow: hidden; border-radius: 10px; }
.loader-line span { display: block; width: 45%; height: 100%; background: var(--gold); animation: loader 1.1s ease-in-out infinite; }
@keyframes loader { from { transform: translateX(-110%); } to { transform: translateX(330%); } }
@keyframes crestPulse { 50% { transform: scale(.96); opacity: .72; } }

.sponsors { border-top: 1px solid var(--line); background: #0b0c0c; padding: 54px 0; }
.section-container { width: min(var(--max), calc(100% - 40px)); margin: 0 auto; }
.sponsors h2 { margin: 7px 0 22px; color: var(--white); font-family: var(--font-main); font-weight: 500; font-size: 2rem; }
.sponsors-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.sponsor-item { display: flex; align-items: center; gap: 12px; min-height: 78px; border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: rgba(255,255,255,.018); transition: border-color .2s ease, transform .2s ease; }
.sponsor-item:hover { border-color: var(--line-gold); transform: translateY(-2px); }
.sponsor-mark { width: 44px; height: 44px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; background: rgba(219,166,56,.09); border: 1px solid var(--line-gold); color: var(--gold); font-family: var(--font-main); font-weight: 700; }
.sponsor-item > span:last-child { display: grid; gap: 3px; min-width: 0; }
.sponsor-item strong { color: #e6e4dc; font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sponsor-item small { color: #747a76; font-size: .63rem; }
.site-footer { position: relative; background: #050606; border-top: 1px solid rgba(219,166,56,.12); }
.footer-inner { width: min(var(--max), calc(100% - 40px)); min-height: 220px; margin: 0 auto; display: grid; grid-template-columns: 1.2fr 1fr .8fr; align-items: center; gap: 35px; padding: 42px 0; }
.footer-brand { display: flex; align-items: center; gap: 14px; }
.footer-brand img { width: 82px; height: 82px; object-fit: contain; }
.footer-brand > div { display: grid; gap: 5px; }
.footer-brand strong { color: var(--white); font-family: var(--font-main); letter-spacing: .08em; }
.footer-brand span, .footer-domain span { color: #6e7470; font-size: .68rem; }
.footer-links > strong { color: var(--gold); display: block; margin-bottom: 10px; text-transform: uppercase; letter-spacing: .12em; font-size: .66rem; }
.social-list { display: flex; flex-wrap: wrap; gap: 7px; }
.social-list a { display: grid; gap: 1px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.018); }
.social-list a span { color: #cccfc9; font-size: .68rem; font-weight: 800; }
.social-list a small { color: #656b67; font-size: .58rem; }
.footer-domain { text-align: right; display: grid; gap: 6px; }
.footer-domain strong { color: var(--gold-bright); font-family: var(--font-main); font-size: 1.2rem; }
.footer-stripe { display: grid; grid-template-columns: 1fr 1.2fr 1fr; height: 4px; }
.footer-stripe span:nth-child(1) { background: var(--red); }
.footer-stripe span:nth-child(2) { background: var(--gold); }
.footer-stripe span:nth-child(3) { background: var(--green); }

.modal-shell { width: min(560px, calc(100% - 28px)); max-height: calc(100vh - 28px); overflow: auto; padding: 0; border: 1px solid var(--line-gold); border-radius: 18px; background: #0d0f0e; color: var(--cream); box-shadow: 0 28px 100px rgba(0,0,0,.72); }
.modal-shell::backdrop { background: rgba(0,0,0,.76); backdrop-filter: blur(5px); }
.modal-form { padding: 26px; display: grid; gap: 15px; }
.modal-brand { display: flex; gap: 16px; align-items: center; padding-bottom: 17px; margin-bottom: 3px; border-bottom: 1px solid var(--line); }
.modal-brand img { width: 78px; height: 78px; object-fit: contain; }
.modal-brand h2, .modal-form > h2 { margin: 5px 0 3px; color: var(--white); font-family: var(--font-main); font-size: 1.8rem; font-weight: 500; }
.modal-brand p { margin: 0; color: var(--muted); font-size: .72rem; }
.field-label, .modal-form > label { display: grid; gap: 7px; color: #a8ada9; font-size: .7rem; font-weight: 750; }
input, select, textarea { width: 100%; min-height: 44px; border: 1px solid rgba(255,255,255,.12); border-radius: 9px; padding: 10px 12px; background: #151716; color: var(--cream); transition: border-color .2s ease, box-shadow .2s ease; }
input:focus, select:focus, textarea:focus { border-color: var(--line-gold); box-shadow: 0 0 0 3px rgba(219,166,56,.07); outline: none; }
textarea { min-height: 115px; resize: vertical; }
input[type="checkbox"] { width: 19px; min-height: 19px; accent-color: var(--gold); justify-self: start; }
.button-row { display: flex; gap: 9px; flex-wrap: wrap; }
.modal-actions { margin-top: 2px; }
.modal-actions .btn { flex: 1; }
.form-error, #editor-error { min-height: 1em; margin: 0; color: #ff9d96; font-size: .7rem; }
.editor-modal { width: min(680px, calc(100% - 28px)); }
.editor-modal .modal-form { grid-template-columns: repeat(2, minmax(0,1fr)); }
.editor-modal .modal-form > h2,
.editor-modal .modal-form > input[type="hidden"],
.editor-modal .modal-form > p,
.editor-modal .modal-form > .button-row { grid-column: 1 / -1; }
.editor-modal .modal-form > label:has(textarea) { grid-column: 1 / -1; }

@media (max-width: 1050px) {
  .hero-section { grid-template-columns: 1fr .72fr; min-height: 540px; }
  .hero-crest-wrap { min-height: 430px; }
  .hero-crest { width: min(350px, 95%); }
  .hero-glow { width: 360px; height: 360px; }
  .hero-crest-wrap::before { width: 330px; height: 330px; }
  .hero-crest-wrap::after { width: 410px; height: 410px; }
  .summary-grid, .stats-overview, .profile-stat-grid { grid-template-columns: repeat(2,1fr); }
  .players-grid { grid-template-columns: repeat(3,1fr); }
  .competition-grid { grid-template-columns: repeat(2,1fr); }
  .news-grid { grid-template-columns: 1fr; }
  .news-card, .news-card.featured-news { grid-column: auto; grid-template-columns: 220px 1fr; }
  .sponsors-list { grid-template-columns: repeat(2,1fr); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-domain { grid-column: 1/-1; text-align: left; padding-top: 18px; border-top: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .header-inner { width: min(100% - 24px, var(--max)); min-height: 75px; }
  .brand-logo { width: 50px; height: 50px; }
  .brand-copy strong { font-size: .82rem; }
  .brand-copy small { font-size: .59rem; }
  .user-chip-copy, .btn-header span { display: none; }
  .user-chip { padding: 5px; border-radius: 50%; }
  .btn-header { width: 42px; padding: 0; }
  .main-nav { width: 100%; padding: 0 8px; min-height: 55px; }
  .nav-item { min-height: 55px; padding: 0 12px; gap: 6px; font-size: .68rem; }
  .nav-item .icon { width: 16px; }
  .content-section, .page-section, .section-container, .notice { width: calc(100% - 24px); }
  .page-section { padding: 44px 0 58px; }
  .hero-section { width: calc(100% - 24px); min-height: auto; grid-template-columns: 1fr; text-align: center; }
  .hero-section::before { inset: 0 -20vw; background: radial-gradient(circle at 50% 10%, rgba(219,166,56,.08), transparent 60%); border: 0; }
  .hero-copy { padding: 46px 0 12px; }
  .hero-copy h2 { margin-left: auto; margin-right: auto; font-size: clamp(3.1rem, 15vw, 4.6rem); }
  .hero-copy > p { margin: 0 auto; }
  .hero-actions, .hero-domain { justify-content: center; }
  .hero-crest-wrap { min-height: 330px; }
  .hero-crest { width: 260px; max-height: 300px; }
  .hero-glow { width: 290px; height: 290px; }
  .hero-crest-wrap::before { width: 270px; height: 270px; }
  .hero-crest-wrap::after { width: 320px; height: 320px; }
  .home-match-section { padding-top: 35px; }
  .content-section + .content-section { margin-top: 42px; }
  .section-title-row { align-items: flex-start; }
  .section-title-row h3 { font-size: 1.65rem; }
  .match-card.featured, .match-card { padding: 18px; }
  .match-scoreboard, .list-match .match-scoreboard { grid-template-columns: 1fr 74px 1fr; gap: 8px; }
  .match-team, .match-team.away { flex-direction: column; text-align: center; gap: 8px; }
  .match-team img, .opponent-badge, .list-match .match-team img, .list-match .opponent-badge { width: 52px; height: 52px; flex-basis: 52px; }
  .match-team strong { font-size: .8rem; }
  .score-box > strong { font-size: 1.75rem; }
  .match-meta { justify-content: flex-start; gap: 10px 16px; }
  .summary-grid { grid-template-columns: 1fr 1fr; }
  .summary-card { min-height: 145px; padding: 17px; }
  .two-column-home { grid-template-columns: 1fr; padding-bottom: 52px; }
  .compact-match .match-scoreboard { grid-template-columns: 1fr 68px 1fr; }
  .competition-grid { grid-template-columns: 1fr; }
  .competition-card { min-height: 290px; }
  .players-grid { grid-template-columns: repeat(2,1fr); }
  .player-card { min-height: 315px; }
  .player-card-head { height: 160px; }
  .stats-overview, .profile-stat-grid { grid-template-columns: repeat(2,1fr); }
  .news-card, .news-card.featured-news { grid-template-columns: 1fr; }
  .news-visual, .featured-news .news-visual { min-height: 190px; }
  .news-card .news-body { display: none; }
  .profile-hero { padding: 22px; min-height: 220px; }
  .profile-avatar { width: 90px; height: 120px; }
  .profile-avatar span { font-size: 3rem; }
  .profile-hero > img { width: 180px; }
  .sponsors-list { grid-template-columns: 1fr 1fr; }
  .footer-inner { grid-template-columns: 1fr; min-height: 0; padding: 34px 0; }
  .footer-domain { grid-column: auto; }
  .modal-form { padding: 20px; }
  .editor-modal .modal-form { grid-template-columns: 1fr; }
  .editor-modal .modal-form > label { grid-column: 1 / -1; }
}

@media (max-width: 480px) {
  .brand-copy small { display: none; }
  .brand-copy strong { font-size: .74rem; letter-spacing: .08em; }
  .session-box .btn-primary { min-height: 40px; padding: 8px 10px; }
  .session-box .btn-primary span { display: none; }
  .session-box .btn-primary { width: 42px; }
  .nav-item { flex-direction: column; min-width: 72px; padding: 6px 9px; font-size: .58rem; line-height: 1; }
  .nav-item[aria-current="page"]::after { left: 10px; right: 10px; }
  .hero-copy { padding-top: 38px; }
  .hero-copy > p { font-size: .88rem; }
  .hero-actions .btn { flex: 1 1 100%; }
  .hero-crest-wrap { min-height: 290px; }
  .hero-crest { width: 225px; }
  .hero-glow { width: 245px; height: 245px; }
  .hero-crest-wrap::before { width: 225px; height: 225px; }
  .hero-crest-wrap::after { width: 270px; height: 270px; }
  .section-title-row { gap: 12px; }
  .section-title-row .text-link { font-size: 0; }
  .section-title-row .text-link .icon { width: 18px; height: 18px; }
  .match-topline { align-items: flex-start; }
  .competition-pill { max-width: 70%; }
  .match-scoreboard, .list-match .match-scoreboard { grid-template-columns: 1fr 54px 1fr; }
  .match-team img, .opponent-badge, .list-match .match-team img, .list-match .opponent-badge { width: 44px; height: 44px; flex-basis: 44px; }
  .score-box > strong { font-size: 1.42rem; gap: 5px; }
  .summary-grid { grid-template-columns: 1fr; }
  .summary-card { min-height: 125px; }
  .competition-card dl { grid-template-columns: 1fr 1fr; }
  .players-grid { grid-template-columns: 1fr; }
  .player-card { min-height: 300px; }
  .stats-overview, .profile-stat-grid { grid-template-columns: 1fr 1fr; }
  .stats-overview article, .profile-stat-grid article { padding: 15px; }
  .page-heading h2 { font-size: 2.45rem; }
  .profile-hero { align-items: flex-start; flex-direction: column; }
  .profile-main h3 { font-size: 2rem; }
  .profile-avatar { width: 74px; height: 90px; border-radius: 35px 35px 10px 10px; }
  .profile-avatar span { font-size: 2rem; }
  .sponsors-list { grid-template-columns: 1fr; }
  .footer-brand img { width: 68px; height: 68px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* =========================================================
   ESCALA TIPOGRÁFICA AMPLIADA — REAL MAGNATES FC
   Se aplica a escritorio y móvil manteniendo la jerarquía.
   ========================================================= */
html {
  font-size: 18px;
}

body {
  font-size: 1rem;
  line-height: 1.55;
}

/* Elementos de lectura y navegación */
.brand-copy strong { font-size: 1.18rem; }
.brand-copy small { font-size: .82rem; }
.user-chip-copy strong { font-size: .94rem; }
.user-chip-copy small { font-size: .8rem; }
.nav-item { font-size: .91rem; }
.eyebrow { font-size: .84rem; }
.hero-copy > p { font-size: 1.1rem; }
.hero-domain { font-size: .8rem; }
.btn { font-size: .92rem; }
.btn-small { font-size: .82rem; }
.text-link { font-size: .88rem; }
.competition-pill { font-size: .84rem; }
.status-pill { font-size: .75rem; }
.score-box > small { font-size: .76rem; }
.match-meta { font-size: .84rem; }
.summary-card > span:not(.icon) { font-size: .82rem; }
.summary-card > small { font-size: .82rem; }
.mini-news small { font-size: .75rem; }
.mini-news strong { font-size: .96rem; }
.mini-news em { font-size: .84rem; }
.filter-control { font-size: .85rem; }
.competition-year { font-size: .89rem; }
.competition-card > p { font-size: .91rem; }
.competition-card dt { font-size: .73rem; }
.competition-card dd { font-size: .82rem; }
.count-badge { font-size: .84rem; }
.player-card-body > small { font-size: .74rem; }
.player-card-body > p { font-size: .87rem; }
.player-meta { font-size: .78rem; }
.stats-overview span { font-size: .8rem; }
th { font-size: .74rem; }
td { font-size: .87rem; }
.mini-shirt { font-size: .77rem; }
.news-meta { font-size: .72rem; }
.news-summary { font-size: .92rem; }
.news-body { font-size: .88rem; }
.news-content > small { font-size: .77rem; }
.profile-tags span { font-size: .8rem; }
.profile-stat-grid span { font-size: .8rem; }
.admin-banner strong { font-size: .92rem; }
.admin-banner p { font-size: .84rem; }
.manager-header small { font-size: .77rem; }
.manager-balance span { font-size: .82rem; }
.notice { font-size: .89rem; }
.loading-screen p { font-size: .84rem; }
.sponsor-item strong { font-size: .88rem; }
.sponsor-item small { font-size: .75rem; }
.footer-brand span,
.footer-domain span { font-size: .8rem; }
.footer-links > strong { font-size: .78rem; }
.social-list a span { font-size: .8rem; }
.social-list a small { font-size: .7rem; }
.modal-brand p { font-size: .84rem; }
.field-label,
.modal-form > label { font-size: .82rem; }
.form-error,
#editor-error { font-size: .82rem; }

/* Formularios más cómodos para escribir/leer */
input,
select,
textarea {
  font-size: 1rem;
}

@media (max-width: 760px) {
  html { font-size: 17.5px; }

  .brand-copy strong { font-size: 1rem; }
  .brand-copy small { font-size: .72rem; }
  .nav-item { font-size: .78rem; }
  .hero-copy > p { font-size: 1.05rem; line-height: 1.65; }
  .section-title-row h3 { font-size: 1.9rem; }
  .match-team strong { font-size: .94rem; }
  .score-box > strong { font-size: 1.9rem; }
  .competition-card > p { font-size: .94rem; }
  .player-card-body > p { font-size: .92rem; }
  td { font-size: .9rem; }
  th { font-size: .76rem; }
  .news-summary { font-size: .96rem; }
  .field-label,
  .modal-form > label { font-size: .86rem; }
}

@media (max-width: 480px) {
  html { font-size: 17px; }

  .brand-copy strong { font-size: .92rem; }
  .nav-item {
    font-size: .7rem;
    line-height: 1.12;
  }
  .hero-copy > p { font-size: 1rem; }
  .match-team strong { font-size: .9rem; }
  .score-box > strong { font-size: 1.62rem; }
  .competition-pill { font-size: .78rem; }
  .status-pill { font-size: .72rem; }
  .summary-card > span:not(.icon) { font-size: .86rem; }
  .summary-card > small { font-size: .85rem; }
  .player-card-body > small { font-size: .76rem; }
  .player-meta { font-size: .8rem; }
  .stats-overview span,
  .profile-stat-grid span { font-size: .82rem; }
  .news-meta { font-size: .74rem; }
  .news-summary { font-size: .95rem; }
  .footer-brand span,
  .footer-domain span,
  .social-list a span { font-size: .82rem; }
  .social-list a small { font-size: .72rem; }
}

/* Vistas previas de perfiles: permiten revisar Admin/Tesorero/Jugador sin API. */
.notice.warning { border-color: rgba(219,166,56,.45); background: rgba(219,166,56,.11); color: #f4d98d; }
.btn:disabled, button:disabled { cursor: not-allowed; opacity: .48; transform: none !important; }

@media (max-width: 760px) {
}

/* =========================================================
   RMFC v2 · Roles, pagos, citaciones y administración
   ========================================================= */
.global-notice{width:min(var(--max),calc(100% - 40px));margin:18px auto 0;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:1rem}.global-notice.warning{border-color:rgba(219,166,56,.35);background:rgba(219,166,56,.08)}.global-notice.error{border-color:rgba(239,107,98,.35);background:rgba(239,107,98,.08)}.global-notice button{border:0;background:none;color:var(--cream);font-size:1.4rem}
.login-role-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.login-role{min-height:45px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03);color:var(--muted);font-weight:700}.login-role.active{color:#080706;background:linear-gradient(135deg,var(--gold-bright),#bd8324);border-color:var(--gold-bright)}
.mobile-session-btn{white-space:nowrap;min-width:max-content}
.section-gap{margin-top:54px}.competition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.competition-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.competition-card-head{display:flex;justify-content:space-between;align-items:start;gap:16px}.competition-card h3{font-size:1.8rem;margin:4px 0 18px}.info-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px}.info-list div{padding:12px;background:rgba(255,255,255,.03);border-radius:10px}.info-list dt{font-size:.78rem;color:var(--muted)}.info-list dd{margin:4px 0 0;font-weight:700}.standings-inline{margin-top:16px}.matches-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.squad-group+.squad-group{margin-top:42px}.players-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.player-card{position:relative;min-height:160px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;display:flex;align-items:end}.player-card h3{font-size:1.45rem;margin:5px 0}.player-number{position:absolute;right:15px;top:5px;font-size:5rem;line-height:1;color:rgba(219,166,56,.12);font-weight:700}.player-meta{display:flex;gap:10px;color:var(--muted);font-size:.88rem}.news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.news-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.news-card h3{font-size:1.7rem;margin:8px 0}.news-card p,.news-body{line-height:1.65;color:#c3c6c4}.news-body{padding-top:12px;border-top:1px solid var(--line)}.mini-news{display:grid;gap:3px;padding:12px 0;border-bottom:1px solid var(--line)}.mini-news span{color:var(--muted);font-size:.86rem}
.profile-top{display:flex;justify-content:space-between;gap:24px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:32px}.profile-identity{display:flex;align-items:center;gap:16px}.profile-identity h3{font-size:2rem;margin:0 0 8px}.profile-badges{display:flex;gap:8px}.profile-facts{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:10px;margin:0}.profile-facts div{padding:10px 14px;border:1px solid var(--line);border-radius:10px}.profile-facts dt{font-size:.78rem;color:var(--muted)}.profile-facts dd{margin:4px 0 0;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:grid;gap:7px}.metric-card span{color:var(--muted)}.metric-card strong{font-size:2rem;color:var(--gold-bright)}.membership-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.membership-card{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:grid;gap:5px}.membership-card span{color:var(--muted)}.membership-card .status-pill{width:max-content;margin-top:6px}.debt-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.debt-summary.blocked{border-color:rgba(239,107,98,.35)}.debt-summary>div{display:grid;gap:4px}.debt-summary span,.debt-summary small{color:var(--muted)}.debt-summary strong{font-size:1.35rem}.player-upcoming-grid{display:grid;gap:18px}.signup-card{padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.signup-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.signup-head h3{font-size:1.7rem;margin:3px 0 15px}.signup-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.signup-actions span{font-size:.84rem;color:var(--muted)}.signup-list{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.signup-list summary{cursor:pointer;color:var(--gold)}.signup-list ol{columns:2;margin-bottom:0}.rule-alert{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(239,107,98,.08);border:1px solid rgba(239,107,98,.2);color:#ffc0bc}.history-group+.history-group{margin-top:22px}.history-group h4{font-size:1.3rem;margin:0 0 10px}.status-pill.danger{background:rgba(239,107,98,.12);border-color:rgba(239,107,98,.25);color:#ffaaa4}
.admin-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;margin-bottom:22px;scrollbar-width:none}.admin-tab{flex:0 0 auto;min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--muted);font-weight:700}.admin-tab.active{color:#080706;border-color:var(--gold);background:var(--gold-bright)}.admin-block{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--panel)}.admin-callout{padding:14px;border:1px solid var(--line-gold);border-radius:10px;background:var(--gold-soft);margin-bottom:14px}.tiny-logo{width:44px;height:44px;object-fit:contain}.action-cell{display:flex;gap:6px;flex-wrap:wrap}.squad-period{padding:16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}.squad-period+.squad-period{margin-top:12px}.squad-period-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.squad-period-head>div{display:grid;gap:2px}.squad-period-head span{color:var(--muted)}.member-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.member-chips span{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line)}.card-list{display:grid;gap:8px}.list-action{display:grid;gap:3px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025);color:var(--cream)}.list-action span{color:var(--muted)}.candidate-row{display:grid;gap:5px;padding:14px;border-bottom:1px solid var(--line)}
.stats-entry-table{grid-column:1/-1;overflow-x:auto;border:1px solid var(--line);border-radius:10px}.stats-entry-head,.stats-entry-row{min-width:980px;display:grid;grid-template-columns:180px 42px repeat(9,70px);gap:5px;align-items:center;padding:8px}.stats-entry-head{background:rgba(255,255,255,.05);color:var(--muted);font-size:.78rem}.stats-entry-row{border-top:1px solid var(--line)}.stats-entry-row input[type="number"]{width:64px;padding:7px}.stats-entry-row input[type="checkbox"]{width:18px;height:18px}
.payment-request-grid{display:grid;gap:10px}.payment-request{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.payment-request>div:first-child{display:grid;gap:3px}.payment-request span,.payment-request small{color:var(--muted)}.request-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.payment-methods{display:flex;gap:14px;grid-column:1/-1}.payment-methods label,.check-row{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}.paste-zone{grid-column:1/-1;min-height:90px;border:1px dashed var(--line-gold);border-radius:10px;display:grid;place-items:center;text-align:center;padding:16px;color:var(--muted)}.paste-zone.ready{border-style:solid;color:var(--success);background:rgba(102,198,140,.06)}
.sponsors-section{padding:44px 0;background:#090a0a;border-top:1px solid var(--line)}.sponsors-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sponsor-card{min-height:100px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);display:grid;place-items:center;padding:16px}.sponsor-card img{max-height:65px;object-fit:contain}.site-footer{border-top:1px solid var(--line);padding:30px 0;background:#050606}.footer-inner{width:min(var(--max),calc(100% - 40px));margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:22px}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand img{width:46px}.social-row{display:flex;gap:15px;flex-wrap:wrap}.social-row a{display:grid;gap:1px}.social-row span{font-size:.78rem;color:var(--muted)}
.registration-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:var(--black)}.registration-shell{width:min(760px,100%);padding:28px;border:1px solid var(--line-gold);border-radius:20px;background:var(--panel);box-shadow:var(--shadow)}.registration-shell>img{width:100px;margin:0 auto 12px}.registration-shell h1{text-align:center;font-size:2.3rem}.registration-info{display:grid;gap:4px;text-align:center;padding:14px;margin:16px 0;border:1px solid var(--line);border-radius:10px}.registration-info span{color:var(--muted)}.registration-form{display:grid;gap:14px;margin-top:16px}.new-player-fields,.existing-player-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.registration-form label{display:grid;gap:5px}.success-panel{display:grid;gap:18px;text-align:center;padding:30px}
.empty-state{padding:22px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:680px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}td small{color:var(--muted)}
.modal-form input,.modal-form select,.modal-form textarea,.registration-form input,.registration-form select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;background:#090b0a;color:var(--cream);padding:10px 12px}.modal-form textarea{min-height:110px;resize:vertical}.form-error{color:#ffaaa4;margin:0;grid-column:1/-1}.editor-modal{width:min(920px,calc(100% - 28px))}

@media(max-width:900px){.competition-grid,.matches-grid,.news-grid{grid-template-columns:1fr}.players-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid,.debt-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.membership-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-top{flex-direction:column}.sponsors-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{flex-direction:column;text-align:center}.social-row{justify-content:center}}
@media(max-width:760px){
  .header-inner{width:calc(100% - 22px);min-height:76px;gap:8px}.brand-logo{width:52px;height:52px}.brand-copy strong{font-size:.94rem}.brand-copy small{font-size:.68rem}.session-box{gap:6px}.user-chip{padding:5px}.user-chip-copy{display:none}.mobile-session-btn,.btn-header.mobile-session-btn{width:auto!important;min-width:auto!important;min-height:40px!important;padding:8px 12px!important;font-size:.9rem!important;display:inline-flex!important}.btn-primary.mobile-session-btn{padding-inline:13px!important}.main-nav{padding-inline:4px}.nav-item{font-size:.78rem!important;min-width:auto!important;flex-direction:row!important;padding:0 11px!important}.page-section{padding-top:42px}.page-heading{margin-bottom:24px}.page-heading h2{font-size:2.7rem!important}.hero-section{min-height:auto;grid-template-columns:1fr}.hero-copy{padding:48px 0 18px}.hero-crest-wrap{min-height:320px}.hero-crest{max-height:310px}.summary-grid{grid-template-columns:repeat(2,1fr)}.two-column-home{grid-template-columns:1fr}.match-scoreboard{grid-template-columns:1fr 76px 1fr;gap:9px}.match-card{padding:17px}.match-team strong{font-size:1rem}.score-box>strong{font-size:1.65rem}.info-list{grid-template-columns:1fr}.signup-list ol{columns:1}.squad-period-head,.payment-request{align-items:stretch;flex-direction:column}.request-actions{justify-content:flex-start}.editor-modal .modal-form{grid-template-columns:1fr}.editor-modal .modal-form>*{grid-column:1/-1}.new-player-fields,.existing-player-fields{grid-template-columns:1fr}
}
@media(max-width:480px){
  body{font-size:17px}.brand-copy strong{font-size:.83rem;letter-spacing:.06em}.brand-copy small{display:none}.mobile-session-btn,.btn-header.mobile-session-btn{font-size:.84rem!important;padding:7px 10px!important}.login-modal{width:calc(100% - 18px)}.modal-form{padding:17px!important}.modal-brand img{width:62px;height:62px}.login-role{font-size:.88rem;padding:6px}.page-heading h2{font-size:2.35rem!important}.metric-grid,.debt-summary,.membership-grid,.players-grid,.summary-grid{grid-template-columns:1fr}.player-card{min-height:130px}.profile-facts{grid-template-columns:1fr}.signup-actions{align-items:stretch;flex-direction:column}.signup-actions .btn{width:100%}.sponsors-grid{grid-template-columns:1fr 1fr}.global-notice{width:calc(100% - 18px);font-size:.9rem}.hero-copy h2{font-size:3rem}.hero-actions .btn{flex:1}.section-title-row{align-items:center}.section-title-row h3{font-size:1.65rem}.admin-block{padding:14px}.payment-methods{flex-direction:column}.registration-page{padding:14px}.registration-shell{padding:18px}
}

/* Ajustes RMFC v3: competencias, noticias, calendario y perfil jugador */
.competition-brand{display:flex;align-items:center;gap:16px;min-width:0}.league-logo-wrap{width:76px;height:76px;flex:0 0 76px;border:1px solid var(--line-gold);border-radius:14px;background:rgba(255,255,255,.025);display:grid;place-items:center;overflow:hidden}.league-logo{width:100%;height:100%;object-fit:contain;padding:7px}.league-logo-placeholder{font-size:1.35rem;font-weight:800;color:var(--gold-bright)}.competition-public-info{grid-template-columns:repeat(2,minmax(0,1fr))!important}.competition-card-head{align-items:center}

.home-player-signup{padding-top:12px}.home-signup-grid .signup-card{border-color:var(--line-gold);box-shadow:0 14px 40px rgba(0,0,0,.24)}
.home-news-section{padding-bottom:56px}.home-news-carousel{display:flex;gap:18px;overflow-x:auto;padding:4px 2px 16px;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:thin}.home-news-card{flex:0 0 min(390px,82vw);scroll-snap-align:start}
.news-story-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden;display:flex;flex-direction:column;min-width:0}.news-story-image{height:210px;background:#070808;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--line)}.news-story-image img{width:100%;height:100%;object-fit:cover}.news-story-content{padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}.news-meta-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted);font-size:.85rem}.news-category{display:inline-flex;padding:4px 9px;border:1px solid var(--line-gold);border-radius:999px;color:var(--gold-bright);background:var(--gold-soft);font-weight:700}.news-story-card h3{font-size:1.65rem;line-height:1.05;margin:0}.news-story-summary{margin:0;color:#c3c6c4;line-height:1.45}.news-story-body{display:none;width:100%;padding-top:12px;border-top:1px solid var(--line);color:#c3c6c4;line-height:1.55;white-space:pre-line}.news-story-card.expanded .news-story-body{display:block}.news-more-btn{margin-top:auto}.news-grid .news-story-image{height:250px}

.calendar-carousel{width:min(920px,100%);margin:0 auto;display:grid;gap:12px}.calendar-viewport{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:14px}.calendar-viewport .match-card{min-height:190px}.calendar-arrow{width:100%;min-height:42px;border:1px solid var(--line-gold);border-radius:10px;background:var(--panel);color:var(--gold-bright);font-size:1.1rem;cursor:pointer}.calendar-arrow:disabled{opacity:.28;cursor:not-allowed}.calendar-counter{text-align:center;color:var(--muted);font-size:.9rem}

@media(max-width:760px){
  .competition-brand{align-items:flex-start}.league-logo-wrap{width:64px;height:64px;flex-basis:64px}.competition-card-head{align-items:flex-start}.competition-public-info{grid-template-columns:1fr 1fr!important}
  .home-news-card{flex-basis:86vw}.news-story-image{height:185px}.news-story-card h3{font-size:1.5rem}.news-story-content{padding:17px}.calendar-viewport .match-card{min-height:0}.calendar-carousel{gap:9px}
}
@media(max-width:480px){
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.metric-card{padding:14px 12px}.metric-card strong{font-size:1.7rem}.metric-card span{font-size:.9rem;line-height:1.1}.debt-summary,.membership-grid,.players-grid,.summary-grid{grid-template-columns:1fr}
  .competition-public-info{grid-template-columns:1fr!important}.league-logo-wrap{width:58px;height:58px;flex-basis:58px}.competition-card h3{font-size:1.55rem}.home-news-card{flex-basis:90vw}.news-meta-row{align-items:flex-start;flex-direction:column}.news-story-image{height:175px}.calendar-arrow{min-height:46px}
}

/* Competition detail and general stats enhancements */
.competition-button { width: 100%; text-align: left; cursor: pointer; }
.competition-button .competition-open-indicator { margin-top: 6px; display: inline-flex; }
.competition-detail-header { display: grid; gap: 18px; margin-bottom: 18px; }
.competition-detail-title { display: flex; align-items: center; gap: 18px; }
.competition-detail-title h2 { margin: 6px 0 8px; }
.competition-detail-meta { display: flex; flex-wrap: wrap; gap: 10px; color: var(--muted); }
.league-logo-wrap.detail { width: 88px; height: 88px; flex-basis: 88px; }
.league-fixture-grid { display: grid; gap: 16px; }
.competition-players-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bracket-board { display: grid; grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: 18px; overflow-x: auto; padding-bottom: 8px; }
.bracket-round { display: grid; gap: 14px; align-content: start; min-width: 220px; }
.bracket-round h4 { margin: 0; font-size: 1.1rem; color: var(--gold-bright); }
.bracket-match { position: relative; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); display: grid; gap: 10px; }
.bracket-match::after { content: ''; position: absolute; right: -10px; top: 50%; width: 10px; height: 2px; background: rgba(219,166,56,.35); }
.bracket-round:last-child .bracket-match::after { display: none; }
.bracket-match-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: .85rem; }
.bracket-team-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.03); }
.bracket-team-row strong { font-size: 1rem; }
.bracket-team-row span { min-width: 24px; text-align: right; font-weight: 700; color: var(--gold-bright); }
.stats-toolbar { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)) minmax(220px, 1.35fr); gap: 14px; margin-bottom: 18px; align-items: end; }
.stats-toolbar label { display: grid; gap: 8px; }
.stats-player-search label { display: grid; gap: 8px; }
.stats-search-control { display: block; }
.stats-search-control input { width: 100%; min-width: 0; }
.stats-search-mobile { display: none; margin: 0 0 12px; }
.stats-club-table tr[data-stats-player-row] { transition: background .25s ease, box-shadow .25s ease; }
.stats-club-table tr.stats-player-found td { background: rgba(219,166,56,.16); box-shadow: inset 0 1px 0 rgba(219,166,56,.35), inset 0 -1px 0 rgba(219,166,56,.35); }
.stats-club-table tr.stats-player-found td:first-child { box-shadow: inset 4px 0 0 var(--gold), inset 0 1px 0 rgba(219,166,56,.35), inset 0 -1px 0 rgba(219,166,56,.35); }
.stats-highlight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.highlight-stat-card { border: 1px solid var(--line); border-radius: 16px; background: var(--panel); padding: 18px; display: grid; gap: 8px; }
.highlight-stat-card span { font-size: .82rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.highlight-stat-card strong { font-size: 1.28rem; }
.highlight-stat-card small { color: var(--muted); font-size: .95rem; }
.highlight-stat-card b { font-size: 1.05rem; color: var(--gold-bright); }
@media (max-width: 900px) {
  .competition-players-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-toolbar { grid-template-columns: 1fr; }
  .stats-search-desktop { display: none; }
  .stats-search-mobile { display: block; }
  .bracket-board { grid-template-columns: repeat(4, minmax(200px, 1fr)); }
}
@media (max-width: 640px) {
  .competition-detail-title { align-items: flex-start; }
  .league-logo-wrap.detail { width: 70px; height: 70px; flex-basis: 70px; }
  .competition-players-grid { grid-template-columns: 1fr; }
  .stats-highlight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .highlight-stat-card { padding: 16px; }
  .highlight-stat-card strong { font-size: 1.08rem; }
  .highlight-stat-card b { font-size: .98rem; }
}

/* Internal navigation for competition detail */
.league-detail-tabs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 4px 0 12px;
  margin: 8px 0 22px;
  border-bottom: 1px solid var(--line);
  scrollbar-width: thin;
}
.league-detail-tab {
  flex: 0 0 auto;
  min-height: 46px;
  padding: 10px 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  color: var(--text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.league-detail-tab:hover,
.league-detail-tab[aria-current="page"] {
  border-color: var(--gold-bright);
  color: var(--gold-bright);
  background: rgba(219,166,56,.08);
}
.league-detail-panel { min-height: 220px; }
.home-player-signup { margin-top: 0; }

@media (max-width: 640px) {
  .league-detail-tabs {
    margin-inline: -2px;
    padding-bottom: 10px;
  }
  .league-detail-tab {
    min-height: 44px;
    padding: 9px 14px;
    font-size: 1rem;
  }
}

/* Team identity in match cards, standings and knockout rounds */
.team-logo-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line-gold);
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  color: var(--gold-bright);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .02em;
}
.team-logo-mark img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.match-team { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; min-width: 0; text-align: center; }
.match-team.away { align-items: center; text-align: center; }
.match-team-logo { width: 58px; height: 58px; flex-basis: 58px; font-size: .8rem; }
.table-team-cell { display: flex; align-items: center; gap: 10px; min-width: 150px; }
.table-team-logo { width: 34px; height: 34px; flex-basis: 34px; font-size: .62rem; }
.bracket-team-name { min-width: 0; display: flex; align-items: center; gap: 8px; }
.bracket-team-name strong { overflow: hidden; text-overflow: ellipsis; }
.bracket-team-logo { width: 30px; height: 30px; flex-basis: 30px; font-size: .55rem; }

/* Club statistics: maximum 10 visible rows with pagination */
.stats-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding-top: 18px;
}
.stats-pagination > span { color: var(--muted); text-align: center; }
.stats-pagination.single { justify-content: flex-end; }
.stats-pagination .btn:disabled { opacity: .35; cursor: not-allowed; transform: none; }

/* Navigation state: only the actual selected item remains highlighted. */
.nav-item.is-active,
.nav-item[aria-current="page"] { color: var(--gold-bright); }
.league-detail-tab.is-active,
.league-detail-tab[aria-current="page"] {
  border-color: var(--gold-bright);
  color: var(--gold-bright);
  background: rgba(219,166,56,.08);
}
.admin-tab.is-active,
.admin-tab[aria-current="page"] { color: #080706; border-color: var(--gold); background: var(--gold-bright); }

/* Avoid sticky :hover states after tapping navigation controls on touch devices. */
@media (hover: none), (pointer: coarse) {
  .nav-item:hover:not(.is-active) { color: #b9bcba; background: transparent; }
  .nav-item.is-active:hover,
  .nav-item[aria-current="page"]:hover { color: var(--gold-bright); background: transparent; }
  .league-detail-tab:hover:not(.is-active) {
    border-color: var(--line);
    color: var(--text);
    background: var(--panel);
  }
  .league-detail-tab.is-active:hover,
  .league-detail-tab[aria-current="page"]:hover {
    border-color: var(--gold-bright);
    color: var(--gold-bright);
    background: rgba(219,166,56,.08);
  }
}

@media (max-width: 640px) {
  .match-team-logo { width: 48px; height: 48px; flex-basis: 48px; }
  .table-team-logo { width: 31px; height: 31px; flex-basis: 31px; }
  .stats-pagination { justify-content: space-between; gap: 10px; }
  .stats-pagination .btn { flex: 1 1 120px; }
  .stats-pagination > span { order: -1; flex: 1 0 100%; }
}
.league-detail-tab:hover:not(.is-active) {
  border-color: rgba(255,255,255,.2);
  color: var(--white);
  background: rgba(255,255,255,.035);
}
@media (hover: none), (pointer: coarse) {
  .league-detail-tab:hover:not(.is-active) {
    border-color: var(--line);
    color: var(--text);
    background: var(--panel);
  }
}

/* RMFC update: larger crests, robust navigation and horizontal News carousel */
.nav-item {
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
}
.nav-item.is-active::after,
.nav-item[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--red), var(--gold-bright), var(--green));
  border-radius: 8px 8px 0 0;
}

/* Larger team and league crests */
.team-logo-mark {
  width: 54px;
  height: 54px;
  flex-basis: 54px;
}
.match-team-logo {
  width: 84px;
  height: 84px;
  flex-basis: 84px;
  font-size: 1rem;
}
.compact-match .match-team-logo {
  width: 70px;
  height: 70px;
  flex-basis: 70px;
}
.table-team-logo {
  width: 48px;
  height: 48px;
  flex-basis: 48px;
  font-size: .75rem;
}
.bracket-team-logo {
  width: 44px;
  height: 44px;
  flex-basis: 44px;
  font-size: .68rem;
}
.table-team-cell { gap: 13px; min-width: 185px; }
.bracket-team-name { gap: 11px; }
.league-logo-wrap {
  width: 92px;
  height: 92px;
  flex-basis: 92px;
}
.league-logo-wrap.detail {
  width: 112px;
  height: 112px;
  flex-basis: 112px;
}

/* Full News page: horizontal carousel */
.news-page-carousel {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.news-page-track {
  display: flex;
  gap: 18px;
  min-width: 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  padding: 4px 2px 16px;
}
.news-page-track .news-story-card {
  flex: 0 0 min(390px, 82vw);
  scroll-snap-align: start;
}
.news-page-track .news-story-image { height: 250px; }
.news-carousel-arrow {
  width: 48px;
  height: 58px;
  border: 1px solid var(--line-gold);
  border-radius: 12px;
  background: var(--panel);
  color: var(--gold-bright);
  font-family: var(--font-main);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  touch-action: manipulation;
}
.news-carousel-arrow:hover { border-color: var(--gold-bright); background: rgba(219,166,56,.08); }

@media (max-width: 640px) {
  .match-team-logo {
    width: 68px;
    height: 68px;
    flex-basis: 68px;
  }
  .compact-match .match-team-logo {
    width: 60px;
    height: 60px;
    flex-basis: 60px;
  }
  .table-team-logo {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }
  .bracket-team-logo {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
  .league-logo-wrap {
    width: 76px;
    height: 76px;
    flex-basis: 76px;
  }
  .league-logo-wrap.detail {
    width: 86px;
    height: 86px;
    flex-basis: 86px;
  }
  .news-page-carousel {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    gap: 8px;
  }
  .news-carousel-arrow {
    width: 38px;
    height: 52px;
    font-size: 1.65rem;
  }
  .news-page-track .news-story-card { flex-basis: 88vw; }
  .news-page-track .news-story-image { height: 205px; }
}

/* RMFC mobile/news/navigation patch */
.match-team-logo {
  width: 104px;
  height: 104px;
  flex-basis: 104px;
}
.compact-match .match-team-logo {
  width: 88px;
  height: 88px;
  flex-basis: 88px;
}
.table-team-logo {
  width: 58px;
  height: 58px;
  flex-basis: 58px;
}
.bracket-team-logo {
  width: 52px;
  height: 52px;
  flex-basis: 52px;
}
.league-logo-wrap {
  width: 110px;
  height: 110px;
  flex-basis: 110px;
}
.league-logo-wrap.detail {
  width: 132px;
  height: 132px;
  flex-basis: 132px;
}

@media (max-width: 640px) {
  .news-page-carousel {
    display: block;
  }
  .news-carousel-arrow {
    display: none !important;
  }
  .news-page-track {
    width: 100%;
    padding-inline: 0;
    -webkit-overflow-scrolling: touch;
  }
  .news-page-track .news-story-card {
    flex-basis: 88vw;
  }
  .match-team-logo {
    width: 84px;
    height: 84px;
    flex-basis: 84px;
  }
  .compact-match .match-team-logo {
    width: 74px;
    height: 74px;
    flex-basis: 74px;
  }
  .table-team-logo {
    width: 50px;
    height: 50px;
    flex-basis: 50px;
  }
  .bracket-team-logo {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }
  .league-logo-wrap {
    width: 88px;
    height: 88px;
    flex-basis: 88px;
  }
  .league-logo-wrap.detail {
    width: 102px;
    height: 102px;
    flex-basis: 102px;
  }
}

/* Competition card simplification */
.competition-period {
  margin: 10px 0 18px;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 600;
}

/* RMFC: mobile table density without reducing the table width */
@media (max-width: 760px) {
  .table-scroll table {
    min-width: 680px;
  }
  .table-scroll th,
  .table-scroll td {
    padding-left: 6px;
    padding-right: 6px;
  }
  .table-team-cell,
  .bracket-team-name,
  .action-cell {
    gap: 5px;
  }
  .table-scroll th {
    letter-spacing: .025em;
  }
}

/* Match public actions, summary, callups and gallery */
.match-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding-top: 16px; margin-top: 14px; border-top: 1px solid var(--line); }
.match-actions .btn { min-width: 118px; }
.match-viewer-modal { width: min(980px, calc(100% - 28px)); }
.match-viewer-content { padding: 24px; }
.match-viewer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.match-viewer-head h2 { margin: 4px 0 0; }
.viewer-close { width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid var(--line); border-radius: 50%; background: rgba(255,255,255,.03); color: var(--cream); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.match-viewer-body { margin-top: 24px; }
.cited-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.cited-player { display: flex; align-items: center; gap: 14px; min-height: 82px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.cited-player div { display: grid; gap: 2px; }
.cited-player small { color: var(--muted); }
.cited-number { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line-gold); color: var(--gold-bright); font-weight: 800; }
.match-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.match-summary-panel { padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--panel); }
.match-summary-panel h3 { margin: 0 0 14px; }
.match-event-list { display: grid; gap: 8px; }
.match-event-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.03); }
.match-event-row div { display: grid; }
.match-event-row span { color: var(--muted); font-size: .85rem; }
.match-event-row b { color: var(--gold-bright); font-size: 1.2rem; }
.match-detail-empty, .muted-text { color: var(--muted); }
.compact-gap { margin-top: 28px; }
.match-mvp-list { display: flex; gap: 10px; flex-wrap: wrap; }
.match-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.match-gallery-item { display: block; aspect-ratio: 4 / 3; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--panel); }
.match-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease; }
@media (hover:hover) { .match-gallery-item:hover img { transform: scale(1.025); } }
.transmission-panel { min-height: 180px; display: grid; place-items: center; align-content: center; gap: 18px; text-align: center; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); padding: 28px; }
.transmission-panel p { margin: 0; color: var(--muted); }
@media (max-width: 760px) {
  .match-viewer-content { padding: 18px; }
  .cited-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .match-summary-grid { grid-template-columns: 1fr; }
  .match-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .match-actions { gap: 8px; }
  .match-actions .btn { min-width: 0; flex: 1 1 calc(33.333% - 8px); padding-inline: 9px; }
}
@media (max-width: 480px) {
  .cited-grid { grid-template-columns: 1fr; }
  .match-gallery-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .match-viewer-head { gap: 10px; }
}

/* Match summary visual hierarchy */
.match-viewer-body.summary-mode { margin-top: 0; }
.match-summary-scoreboard {
  overflow: hidden;
  border: 1px solid var(--line-gold);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(219,166,56,.08), rgba(255,255,255,.025));
  box-shadow: 0 18px 46px rgba(0,0,0,.16);
}
.summary-score-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}
.summary-score-main {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(150px,.75fr) minmax(0,1fr);
  align-items: center;
  gap: 20px;
  padding: 28px 22px 30px;
}
.summary-team {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 12px;
  text-align: center;
}
.summary-team strong { font-size: 1.35rem; line-height: 1.15; }
.summary-team-logo { width: 104px; height: 104px; flex-basis: 104px; font-size: 1rem; }
.summary-final-score { display: grid; justify-items: center; gap: 6px; text-align: center; }
.summary-final-score small { color: var(--muted); letter-spacing: .08em; }
.summary-final-score > strong { display: flex; align-items: center; gap: 14px; font-size: clamp(2.6rem, 6vw, 4.8rem); line-height: .95; color: var(--cream); }
.summary-final-score > strong span { color: var(--gold-bright); font-weight: 400; }
.summary-final-score time { color: var(--muted); font-size: .95rem; }
.summary-overview-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
  margin-top: 16px;
}
.summary-overview-card {
  min-height: 104px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel);
  display: grid;
  align-content: center;
  gap: 5px;
}
.summary-overview-card span { color: var(--muted); font-size: .88rem; }
.summary-overview-card strong { font-size: 1.5rem; }
.summary-overview-card.featured { border-color: var(--line-gold); background: rgba(219,166,56,.07); }
.summary-overview-card.featured strong { color: var(--gold-bright); font-size: 1.12rem; }
.summary-events-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
  margin-top: 22px;
}
.summary-panel-title { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.summary-panel-title h3 { margin: 0; }
.summary-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  border: 1px solid var(--line-gold);
  color: var(--gold-bright);
  font-weight: 800;
}
.discipline-count { display: flex; align-items: center; gap: 8px; }
.card-icon { width: 12px; height: 18px; border-radius: 2px; display: inline-block; transform: rotate(4deg); }
.card-icon.yellow { background: #f0c419; }
.card-icon.red { background: #c8362e; }
.summary-player-detail { margin-top: 26px; }
.summary-player-detail .compact-gap { margin: 0 0 12px; }

/* League squad grouped by football position */
.competition-squad-groups { display: grid; gap: 30px; }
.competition-squad-group { display: grid; gap: 13px; }
.position-group-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--line);
}
.position-group-heading span { font-size: 1.3rem; font-weight: 700; color: var(--cream); }
.position-group-heading b {
  min-width: 34px;
  height: 30px;
  padding: 0 9px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(219,166,56,.1);
  color: var(--gold-bright);
}

@media (max-width: 760px) {
  .summary-score-main { grid-template-columns: 1fr auto 1fr; gap: 10px; padding: 22px 12px; }
  .summary-team-logo { width: 82px; height: 82px; flex-basis: 82px; }
  .summary-team strong { font-size: 1.05rem; }
  .summary-final-score > strong { gap: 8px; font-size: clamp(2.2rem, 10vw, 3.2rem); }
  .summary-overview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .summary-events-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .summary-score-top { align-items: flex-start; flex-direction: column; }
  .summary-score-main { grid-template-columns: 1fr auto 1fr; }
  .summary-team-logo { width: 70px; height: 70px; flex-basis: 70px; }
  .summary-team strong { font-size: .95rem; }
  .summary-overview-card { min-height: 92px; padding: 13px; }
  .summary-overview-card strong { font-size: 1.25rem; }
}

/* Mobile match summary refinement */
.summary-mobile-performance { display: none; }
@media (max-width: 760px) {
  .match-viewer-modal {
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
  }
  .match-viewer-content {
    min-height: 100dvh;
    padding: 0 14px 28px;
  }
  .match-viewer-head {
    position: sticky;
    top: 0;
    z-index: 20;
    align-items: center;
    margin: 0 -14px 14px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--line);
    background: rgba(12,14,13,.96);
    backdrop-filter: blur(12px);
  }
  .match-viewer-head .eyebrow { font-size: .72rem; }
  .match-viewer-head h2 { margin-top: 1px; font-size: 1.65rem; line-height: 1; }
  .viewer-close {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    font-size: 1.45rem;
    background: rgba(255,255,255,.06);
  }
  .match-viewer-body.summary-mode { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .match-summary-scoreboard { border-radius: 16px; }
  .summary-score-top {
    padding: 10px 12px;
    gap: 8px;
    flex-direction: row;
    align-items: center;
    font-size: .82rem;
  }
  .summary-score-top > span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .summary-score-main {
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    gap: 7px;
    padding: 18px 9px 20px;
  }
  .summary-team { gap: 8px; }
  .summary-team-logo {
    width: 78px;
    height: 78px;
    flex-basis: 78px;
  }
  .summary-team strong {
    width: 100%;
    min-height: 2.25em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: 1rem;
    line-height: 1.05;
  }
  .summary-final-score { gap: 5px; }
  .summary-final-score small { font-size: .68rem; letter-spacing: .05em; }
  .summary-final-score > strong { gap: 5px; font-size: clamp(2.15rem, 11vw, 3rem); }
  .summary-final-score time { max-width: 106px; font-size: .75rem; line-height: 1.15; }
  .summary-overview-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 9px;
    margin-top: 10px;
  }
  .summary-overview-card {
    min-height: 84px;
    padding: 12px;
    border-radius: 12px;
  }
  .summary-overview-card span { font-size: .78rem; line-height: 1.05; }
  .summary-overview-card strong { font-size: 1.32rem; }
  .summary-overview-card.featured strong { font-size: 1rem; line-height: 1.08; }
  .summary-events-grid { gap: 10px; margin-top: 14px; }
  .match-summary-panel { padding: 13px; border-radius: 13px; }
  .summary-panel-title { margin-bottom: 9px; gap: 8px; }
  .summary-panel-title h3 { font-size: 1.25rem; }
  .summary-icon { width: 30px; height: 30px; flex-basis: 30px; border-radius: 8px; font-size: .9rem; }
  .match-event-list { gap: 6px; }
  .match-event-row { gap: 8px; padding: 9px 10px; }
  .match-event-row strong { font-size: .98rem; line-height: 1.05; }
  .match-event-row span { font-size: .76rem; }
  .match-event-row b { font-size: 1.1rem; }
  .summary-player-detail { margin-top: 18px; }
  .summary-player-detail .compact-gap { margin-bottom: 9px; }
  .summary-player-detail .compact-gap h3 { font-size: 1.4rem; }
  .summary-desktop-performance { display: none; }
  .summary-mobile-performance { display: grid; gap: 10px; }
  .summary-mobile-player {
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel);
  }
  .summary-mobile-player-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--line);
  }
  .summary-mobile-player-head > div { min-width: 0; display: grid; gap: 2px; }
  .summary-mobile-player-head strong { font-size: 1.08rem; line-height: 1.05; }
  .summary-mobile-player-head span:not(.summary-mobile-mvp) { color: var(--muted); font-size: .8rem; }
  .summary-mobile-mvp {
    flex: 0 0 auto;
    padding: 5px 8px;
    border: 1px solid var(--line-gold);
    border-radius: 999px;
    color: var(--gold-bright);
    background: rgba(219,166,56,.08);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .05em;
  }
  .summary-mobile-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 6px;
  }
  .summary-mobile-metrics > div {
    min-width: 0;
    padding: 8px 4px;
    border-radius: 9px;
    background: rgba(255,255,255,.035);
    text-align: center;
    display: grid;
    gap: 2px;
  }
  .summary-mobile-metrics span { color: var(--muted); font-size: .68rem; line-height: 1; }
  .summary-mobile-metrics b { color: var(--cream); font-size: 1rem; line-height: 1; }
}
@media (max-width: 430px) {
  .match-viewer-content { padding-inline: 10px; }
  .match-viewer-head { margin-inline: -10px; padding-inline: 10px; }
  .summary-score-main { padding-inline: 6px; gap: 4px; }
  .summary-team-logo { width: 68px; height: 68px; flex-basis: 68px; }
  .summary-team strong { font-size: .9rem; }
  .summary-final-score > strong { font-size: clamp(2rem, 10vw, 2.65rem); }
  .summary-final-score time { max-width: 92px; font-size: .7rem; }
  .summary-overview-card { min-height: 78px; padding: 10px; }
  .summary-overview-card span { font-size: .72rem; }
  .summary-overview-card strong { font-size: 1.2rem; }
  .summary-mobile-metrics { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 5px; }
  .summary-mobile-metrics > div { padding: 7px 2px; }
  .summary-mobile-metrics span { font-size: .63rem; }
  .summary-mobile-metrics b { font-size: .95rem; }
}

/* Citados agrupados por posición */
.cited-position-groups { display: grid; gap: 24px; }
.cited-position-group { display: grid; gap: 12px; }
.cited-position-group .position-group-heading { margin-bottom: 0; }
@media (max-width: 640px) {
  .cited-position-groups { gap: 20px; }
  .cited-position-group { gap: 10px; }
}

/* v0.4.3 — pantalla de carga y portada de noticias */
body.startup-loading { overflow: hidden; }
.startup-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 50% 35%, rgba(219,166,56,.13), transparent 28rem),
    radial-gradient(circle at 18% 85%, rgba(143,29,24,.12), transparent 24rem),
    radial-gradient(circle at 82% 85%, rgba(15,96,55,.12), transparent 24rem),
    #050606;
  opacity: 1;
  visibility: visible;
  transition: opacity .46s ease, visibility .46s ease;
}
.startup-loader.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.startup-loader-inner {
  width: min(720px, 92vw);
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  align-items: center;
  gap: 36px;
}
.startup-loader-crest {
  width: 190px;
  height: 190px;
  object-fit: contain;
  filter: drop-shadow(0 24px 34px rgba(0,0,0,.62));
  animation: startupCrest 3s cubic-bezier(.2,.7,.2,1) both;
}
.startup-loader-copy { min-width: 0; }
.startup-loader-club {
  display: block;
  margin-bottom: 10px;
  color: var(--gold);
  font-weight: 700;
  font-size: .92rem;
  letter-spacing: .2em;
  opacity: 0;
  animation: startupFade .55s ease .12s forwards;
}
.startup-slogan {
  display: grid;
  color: var(--white);
  font-weight: 600;
  font-size: clamp(2.9rem, 8vw, 5.9rem);
  line-height: .82;
  letter-spacing: -.045em;
}
.startup-slogan span { display: block; opacity: 0; transform: translateY(28px); }
.startup-slogan span:nth-child(1) { animation: startupWord .56s cubic-bezier(.2,.75,.2,1) .28s forwards; }
.startup-slogan span:nth-child(2) { color: var(--gold-bright); animation: startupWord .56s cubic-bezier(.2,.75,.2,1) .63s forwards; }
.startup-slogan span:nth-child(3) { animation: startupWord .56s cubic-bezier(.2,.75,.2,1) .98s forwards; }
.startup-progress {
  height: 3px;
  margin-top: 28px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}
.startup-progress span {
  display: block;
  width: 100%;
  height: 100%;
  transform-origin: left center;
  transform: scaleX(0);
  background: linear-gradient(90deg, var(--red), var(--gold-bright), var(--green));
  animation: startupProgress 3s linear forwards;
}
@keyframes startupWord { to { opacity: 1; transform: translateY(0); } }
@keyframes startupFade { to { opacity: 1; } }
@keyframes startupProgress { to { transform: scaleX(1); } }
@keyframes startupCrest {
  0% { opacity: 0; transform: scale(.8) rotate(-3deg); }
  18% { opacity: 1; transform: scale(1.04) rotate(0); }
  55%, 100% { opacity: 1; transform: scale(1) rotate(0); }
}

.hero-news-section {
  width: min(var(--max), calc(100% - 40px));
  margin: 0 auto;
  min-height: 545px;
  padding: 64px 0 44px;
  display: grid;
  align-content: center;
  position: relative;
}
.hero-news-section::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 -50vw;
  background:
    radial-gradient(circle at 12% 20%, rgba(143,29,24,.09), transparent 26rem),
    radial-gradient(circle at 86% 15%, rgba(15,96,55,.08), transparent 28rem);
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.hero-news-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.hero-news-head h2 {
  margin: 4px 0 0;
  color: var(--white);
  font-weight: 500;
  font-size: clamp(2.3rem, 5vw, 4rem);
  line-height: .95;
}
.hero-news-carousel {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  padding: 3px 2px 18px;
  scroll-snap-type: x mandatory;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(219,166,56,.45) rgba(255,255,255,.04);
}
.hero-news-carousel .home-news-card {
  flex: 0 0 min(430px, 36vw);
  min-width: 330px;
  scroll-snap-align: start;
}
.hero-news-carousel .news-story-image { height: 230px; }
.hero-news-carousel .news-story-content { min-height: 230px; }
.home-player-signup { margin-top: 56px; }
.hero-news-section + .home-player-signup { margin-top: 56px; }
.hero-news-section + .home-match-section { padding-top: 56px; }

@media (max-width: 900px) {
  .startup-loader-inner { grid-template-columns: 150px minmax(0, 1fr); gap: 26px; }
  .startup-loader-crest { width: 150px; height: 150px; }
  .hero-news-section { min-height: 500px; padding-top: 48px; }
  .hero-news-carousel .home-news-card { flex-basis: min(390px, 72vw); min-width: 310px; }
}
@media (max-width: 640px) {
  .startup-loader { padding: 20px; }
  .startup-loader-inner { width: min(430px, 92vw); grid-template-columns: 1fr; justify-items: center; gap: 20px; text-align: center; }
  .startup-loader-crest { width: 132px; height: 132px; }
  .startup-loader-club { font-size: .8rem; }
  .startup-slogan { font-size: clamp(2.7rem, 15vw, 4.5rem); line-height: .83; }
  .startup-progress { margin-top: 24px; }
  .hero-news-section { width: calc(100% - 24px); min-height: auto; padding: 42px 0 22px; }
  .hero-news-head { align-items: center; margin-bottom: 18px; }
  .hero-news-head h2 { font-size: 2.55rem; }
  .hero-news-head .btn { min-height: 38px; padding: 8px 11px; white-space: nowrap; }
  .hero-news-carousel { gap: 14px; padding-bottom: 14px; }
  .hero-news-carousel .home-news-card { flex: 0 0 88vw; min-width: 0; }
  .hero-news-carousel .news-story-image { height: 205px; }
  .hero-news-carousel .news-story-content { min-height: 0; }
  .home-player-signup { margin-top: 44px; }
  .hero-news-section + .home-match-section { padding-top: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .startup-loader-crest, .startup-loader-club, .startup-slogan span, .startup-progress span { animation-timing-function: linear; }
}

/* Plantel: fotografía principal y tabla de posiciones compacta */
.player-photo-card {
  min-height: 0 !important;
  padding: 0 !important;
  display: grid !important;
  align-items: stretch !important;
  background: var(--panel);
}
.player-photo-frame {
  width: 100%;
  aspect-ratio: 4 / 5;
  min-height: 230px;
  overflow: hidden;
  background: radial-gradient(circle at 50% 35%, rgba(219,166,56,.12), transparent 40%), linear-gradient(145deg,#181b1a,#090a0a);
  display: grid;
  place-items: center;
  border-bottom: 1px solid var(--line);
}
.player-photo-frame > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.player-silhouette {
  width: 72%;
  height: 78%;
  position: relative;
  display: block;
  opacity: .58;
}
.silhouette-head {
  position: absolute;
  left: 50%;
  top: 10%;
  width: 34%;
  aspect-ratio: 1;
  transform: translateX(-50%);
  border-radius: 50%;
  background: linear-gradient(180deg, rgba(214,216,214,.8), rgba(118,122,120,.72));
}
.silhouette-body {
  position: absolute;
  left: 50%;
  bottom: 3%;
  width: 78%;
  height: 54%;
  transform: translateX(-50%);
  border-radius: 48% 48% 12% 12% / 35% 35% 10% 10%;
  background: linear-gradient(180deg, rgba(190,193,191,.78), rgba(78,82,80,.68));
}
.player-card-info { padding: 18px 18px 20px; }
.player-card-info h3 { margin: 0 0 8px; font-size: 1.45rem; line-height: 1.05; }
.player-card-info .player-meta { margin-top: 0; }
.competition-player-card .player-photo-frame { min-height: 210px; }
.admin-player-cell { display: flex; align-items: center; gap: 10px; min-width: 190px; }
.admin-player-photo { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 50%; overflow: hidden; border: 1px solid var(--line); background: #111; display: grid; place-items: center; }
.admin-player-photo > img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.admin-player-photo .player-silhouette { width: 72%; height: 78%; }
.player-photo-editor { display: flex; align-items: center; gap: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.025); }
.sponsor-logo-preview { width: 92px; height: 92px; flex: 0 0 92px; object-fit: contain; border-radius: 50%; border: 1px solid var(--line); background: #111; padding: 8px; }
.player-photo-editor > div:last-child { display: grid; gap: 2px; }
.player-photo-editor span { color: var(--muted); }
.player-photo-preview { width: 92px; height: 112px; flex: 0 0 92px; overflow: hidden; border-radius: 12px; border: 1px solid var(--line); background: #111; display: grid; place-items: center; }
.player-photo-preview > img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.player-photo-preview .player-silhouette { width: 76%; height: 80%; }
.standings-inline table { width: min(100%, 720px); min-width: 540px; table-layout: auto; }
.standings-inline th,
.standings-inline td { padding-left: 8px; padding-right: 8px; }
.standings-inline th:first-child,
.standings-inline td:first-child { width: 36px; }
.standings-inline th:nth-child(n+3),
.standings-inline td:nth-child(n+3) { width: 54px; text-align: center; }
.standings-inline .table-team-cell { min-width: 0; gap: 8px; }
@media (max-width: 640px) {
  .player-photo-frame { min-height: 0; aspect-ratio: 4 / 4.7; }
  .competition-player-card .player-photo-frame { min-height: 0; }
  .player-card-info { padding: 15px 14px 17px; }
  .player-card-info h3 { font-size: 1.3rem; }
  .standings-inline table { min-width: 470px; width: 470px; }
  .standings-inline th,
  .standings-inline td { padding-left: 5px !important; padding-right: 5px !important; }
  .standings-inline th:first-child,
  .standings-inline td:first-child { width: 28px; }
  .standings-inline th:nth-child(n+3),
  .standings-inline td:nth-child(n+3) { width: 46px; }
  .standings-inline .table-team-cell { gap: 5px !important; }
}

/* 2026-08: news image framing + player month publication */
.news-story-image img,
.news-grid .news-story-image img,
.news-page-track .news-story-image img,
.hero-news-carousel .news-story-image img {
  object-fit: contain !important;
  object-position: center center;
}
.news-story-image { background: #070808; }
.player-month-public-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.player-month-public-card { padding:14px; border:1px solid var(--line); border-radius:14px; background:var(--panel); display:grid; gap:10px; text-align:center; }
.player-month-photo { aspect-ratio:1/1; width:100%; max-width:180px; margin:0 auto; overflow:hidden; border-radius:12px; background:rgba(255,255,255,.03); }
.player-month-photo img { width:100%; height:100%; object-fit:cover; }
.candidate-row small { display:block; color:var(--muted); margin-top:3px; }
@media(max-width:700px){
  .player-month-public-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}


/* v0.5.0: administración, tesorería automática y Jugador del Mes */
.treasury-auto-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.treasury-auto-summary article{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);display:grid;gap:6px}
.treasury-auto-summary span{color:var(--muted);font-size:.86rem;text-transform:uppercase;letter-spacing:.05em}
.treasury-auto-summary strong{font-size:1.45rem;color:var(--cream)}
.treasury-auto-summary small{color:var(--muted)}
.treasury-balance-table table{min-width:1120px}
.player-month-carousel-shell{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px;margin-top:16px}
.player-month-carousel-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}
.player-month-carousel-track::-webkit-scrollbar{display:none}
.player-month-slide{flex:0 0 100%;scroll-snap-align:start;min-height:390px;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:22px;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:24px;align-items:center}
.player-month-carousel-photo{width:min(300px,100%);aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.03);margin:auto}
.player-month-carousel-photo img{width:100%;height:100%;object-fit:cover}
.player-month-slide-copy{display:grid;gap:12px}
.player-month-slide-copy h4,.vote-final-panel h4{margin:0;font-size:2rem}
.player-month-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.player-month-stat-grid div{padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);display:grid;gap:2px}
.player-month-stat-grid span{color:var(--muted);font-size:.85rem}
.player-month-stat-grid strong{font-size:1.45rem;color:var(--gold-bright)}
.player-month-arrow{width:48px;height:48px;border:1px solid var(--line-gold);border-radius:50%;background:var(--panel);color:var(--gold-bright);font-size:1.8rem;cursor:pointer}
.player-month-vote-slide{display:block;padding:24px}
.vote-final-panel{min-height:340px;display:grid;align-content:center;gap:16px;max-width:760px;margin:auto}
.vote-final-panel p,.vote-final-panel small{color:var(--muted)}
.vote-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vote-option{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);cursor:pointer}
.vote-option:has(input:checked){border-color:var(--gold);background:var(--gold-soft)}
.vote-option.disabled{opacity:.55;cursor:not-allowed}
.vote-option-photo{width:50px;height:50px;flex:0 0 50px;border-radius:50%;overflow:hidden;background:rgba(255,255,255,.04)}
.vote-option-photo img{width:100%;height:100%;object-fit:cover}
.vote-result-block{display:grid;gap:8px;margin-top:8px}
.vote-result-block>div:first-child{display:flex;justify-content:space-between;gap:10px}
.vote-result-bar{height:10px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.vote-result-bar i{display:block;height:100%;background:var(--gold-bright);border-radius:inherit}
.vote-winner{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:var(--gold-soft);color:var(--gold-bright);font-weight:700}
.vote-total{text-align:center;color:var(--muted);margin-top:12px}
@media(max-width:900px){.treasury-auto-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.player-month-slide{grid-template-columns:1fr;min-height:0}.player-month-carousel-photo{width:min(240px,75vw)}}
@media(max-width:640px){.treasury-auto-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.treasury-auto-summary article{padding:13px}.treasury-auto-summary strong{font-size:1.2rem}.player-month-carousel-shell{grid-template-columns:1fr}.player-month-arrow{display:none}.player-month-slide{padding:16px;gap:16px}.player-month-carousel-photo{width:min(220px,68vw)}.player-month-slide-copy h4,.vote-final-panel h4{font-size:1.55rem}.vote-options{grid-template-columns:1fr}.player-month-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.player-month-stat-grid div{padding:11px}}

.signup-fee-note{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;padding:13px 15px;margin-top:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}
.signup-fee-note>span:first-child{color:var(--muted)}.signup-fee-note>strong{font-size:1.15rem;color:var(--gold-bright)}.signup-fee-note b{color:var(--text)}.signup-fee-note small{flex-basis:100%;color:var(--muted);line-height:1.35}
@media(max-width:640px){.signup-fee-note{display:grid;grid-template-columns:auto 1fr;gap:5px 10px}.signup-fee-note>span:nth-of-type(2),.signup-fee-note small{grid-column:1/-1}.signup-fee-note>strong{text-align:right}}

/* Player of the month teaser / modal */
.player-month-teaser{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;border:1px solid var(--line-gold);border-radius:18px;background:linear-gradient(135deg,rgba(219,166,56,.10),rgba(255,255,255,.025));margin-bottom:22px}
.player-month-teaser-copy{display:grid;gap:6px;min-width:0}.player-month-teaser-copy h3{margin:0;font-size:2rem}.player-month-teaser-copy p{margin:0;color:var(--muted);line-height:1.45}.player-month-vote-cta{min-width:150px;justify-content:center;font-size:1.05rem}
.player-month-countdown{display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:8px;flex:0 0 auto}.player-month-countdown>div{min-width:64px;padding:10px 8px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.22);display:grid;text-align:center;gap:2px}.player-month-countdown strong{font-size:1.45rem;color:var(--gold-bright);line-height:1}.player-month-countdown span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.player-month-dialog{width:min(980px,calc(100vw - 28px));max-width:980px;padding:0;border:1px solid var(--line-gold);background:var(--bg);color:var(--text);border-radius:20px}.player-month-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}.player-month-dialog-content{padding:22px;max-height:92vh;overflow:auto}.player-month-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px;position:sticky;top:-22px;z-index:5;padding:18px 0 12px;background:linear-gradient(to bottom,var(--bg) 78%,transparent)}.player-month-dialog-head h2{margin:4px 0 0}.player-month-dialog .player-month-public{padding:0;background:transparent;border:0}.player-month-dialog .section-title-row{display:none}.vote-final-panel.needs-selection{outline:2px solid rgba(219,166,56,.7);outline-offset:4px}
@media(max-width:700px){.player-month-teaser{align-items:stretch;flex-direction:column;padding:18px}.player-month-teaser-copy h3{font-size:1.65rem}.player-month-vote-cta{width:100%}.player-month-countdown{width:100%;grid-template-columns:repeat(4,minmax(0,1fr))}.player-month-countdown>div{min-width:0;padding:9px 4px}.player-month-countdown strong{font-size:1.25rem}.player-month-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;border-left:0;border-right:0}.player-month-dialog-content{max-height:100dvh;padding:16px}.player-month-dialog-head{top:-16px;padding-top:16px}}

/* v0.5.3 — Player of the Month live voting + compact standings */
.player-month-teaser{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:26px 28px;
  border:1px solid rgba(219,166,56,.55);
  border-radius:22px;
  background:
    radial-gradient(circle at 85% 15%,rgba(219,166,56,.16),transparent 34%),
    linear-gradient(135deg,rgba(255,255,255,.035),rgba(0,0,0,.22));
  box-shadow:0 18px 50px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.03);
}
.player-month-teaser::after{
  content:'';
  position:absolute;
  inset:auto -70px -95px auto;
  width:210px;
  height:210px;
  border:1px solid rgba(219,166,56,.13);
  border-radius:50%;
  pointer-events:none;
}
.player-month-teaser-main{display:flex;align-items:center;gap:18px;min-width:0;position:relative;z-index:1}
.player-month-teaser-side{display:grid;justify-items:end;gap:12px;position:relative;z-index:1}
.player-month-teaser-emblem{width:86px;height:86px;flex:0 0 86px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.28);border:1px solid rgba(219,166,56,.35);box-shadow:0 10px 26px rgba(0,0,0,.24)}
.player-month-teaser-emblem img{width:72px;height:72px;object-fit:contain}
.player-month-preview-stack{display:flex;align-items:center;justify-content:flex-end;padding-right:8px}
.player-month-preview-photo{width:52px;height:52px;flex:0 0 52px;border-radius:50%;overflow:hidden;border:3px solid var(--bg);background:var(--panel);margin-right:-10px;box-shadow:0 5px 14px rgba(0,0,0,.3)}
.player-month-preview-photo:last-child{margin-right:0}
.player-month-preview-photo img{width:100%;height:100%;object-fit:cover}
.player-month-preview-photo .player-silhouette{transform:scale(.72)}
.player-month-live-badge{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:6px 10px;border-radius:999px;background:rgba(198,44,44,.13);border:1px solid rgba(198,44,44,.32);color:#f3b6b6;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.player-month-live-badge i,.live-dot{width:8px;height:8px;border-radius:50%;background:#e14c4c;box-shadow:0 0 0 0 rgba(225,76,76,.6);animation:rmfcLivePulse 1.6s infinite}
@keyframes rmfcLivePulse{0%{box-shadow:0 0 0 0 rgba(225,76,76,.55)}70%{box-shadow:0 0 0 8px rgba(225,76,76,0)}100%{box-shadow:0 0 0 0 rgba(225,76,76,0)}}
.player-month-live-total{color:var(--muted);font-size:.84rem}
.player-month-dialog .player-month-public{padding-top:2px}
.player-month-carousel-track{scroll-behavior:smooth}
.player-month-slide{position:relative;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(0,0,0,.16))}
.player-month-slide-kicker{position:absolute;top:14px;right:16px;padding:5px 9px;border-radius:999px;background:rgba(219,166,56,.11);border:1px solid rgba(219,166,56,.25);color:var(--gold-bright);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.vote-result-block{padding:12px;border:1px solid rgba(219,166,56,.22);border-radius:13px;background:rgba(219,166,56,.045)}
.vote-total.live{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-radius:999px;width:max-content;max-width:100%;margin:14px auto 0;background:rgba(255,255,255,.035);border:1px solid var(--line)}
.vote-total.live small{width:100%;text-align:center;color:var(--muted)}

/* Tabla de posiciones: equipo inmediatamente junto a PJ */
.standings-inline table{width:max-content!important;min-width:0!important;max-width:100%;table-layout:auto!important}
.standings-inline th,.standings-inline td{padding-left:6px!important;padding-right:6px!important}
.standings-inline th:nth-child(2),.standings-inline td:nth-child(2){width:1%;white-space:nowrap;padding-right:2px!important}
.standings-inline th:nth-child(3),.standings-inline td:nth-child(3){padding-left:2px!important;width:44px!important}
.standings-inline th:nth-child(4),.standings-inline td:nth-child(4),.standings-inline th:nth-child(5),.standings-inline td:nth-child(5){width:44px!important}
.standings-inline .table-team-cell{min-width:0!important;width:max-content;gap:5px!important}

@media(max-width:700px){
  .player-month-teaser{padding:18px;gap:16px}
  .player-month-teaser-main{align-items:flex-start}
  .player-month-teaser-emblem{width:68px;height:68px;flex-basis:68px}
  .player-month-teaser-emblem img{width:56px;height:56px}
  .player-month-teaser-side{width:100%;justify-items:stretch}
  .player-month-preview-stack{justify-content:flex-start;padding-left:8px}
  .player-month-preview-photo{width:46px;height:46px;flex-basis:46px}
  .player-month-vote-cta{width:100%}
  .player-month-slide-kicker{top:10px;right:10px;font-size:.68rem}
  .standings-inline table{width:max-content!important;min-width:0!important}
  .standings-inline th,.standings-inline td{padding-left:4px!important;padding-right:4px!important}
  .standings-inline th:nth-child(2),.standings-inline td:nth-child(2){padding-right:1px!important}
  .standings-inline th:nth-child(3),.standings-inline td:nth-child(3){padding-left:1px!important;width:40px!important}
  .standings-inline th:nth-child(4),.standings-inline td:nth-child(4),.standings-inline th:nth-child(5),.standings-inline td:nth-child(5){width:40px!important}
}

/* RMFC v0.5.4: patrocinadores circulares y previsualización de equipos */
.sponsors-grid {
  align-items: center;
}
.sponsor-card {
  width: 132px;
  height: 132px;
  min-height: 0;
  aspect-ratio: 1 / 1;
  justify-self: center;
  border-radius: 50%;
  padding: 14px;
  overflow: hidden;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.sponsor-card:hover {
  transform: translateY(-3px);
  border-color: var(--line-gold);
  box-shadow: 0 10px 28px rgba(0,0,0,.28);
}
.sponsor-card img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  border-radius: 50%;
}
.team-logo-preview-box {
  grid-column: 1 / -1;
  min-height: 190px;
  border: 1px dashed var(--line-gold);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  padding: 18px;
  text-align: center;
  color: var(--muted);
}
.team-logo-preview-box.ready {
  border-style: solid;
  background: var(--gold-soft);
}
.team-logo-preview-box > img {
  width: 128px;
  height: 128px;
  object-fit: contain;
  border-radius: 18px;
  background: #090a0a;
  padding: 10px;
  border: 1px solid var(--line);
}
.team-logo-preview-box .team-logo-mark.team-admin-preview-logo {
  width: 128px;
  height: 128px;
  font-size: 1.8rem;
}
.team-logo-preview-box > strong {
  color: var(--cream);
  font-size: 1.15rem;
}
.team-logo-preview-box > span:not(.team-logo-mark) {
  font-size: .9rem;
}
@media(max-width:760px) {
  .sponsor-card { width: 112px; height: 112px; padding: 12px; }
  .team-logo-preview-box { min-height: 165px; }
  .team-logo-preview-box > img,
  .team-logo-preview-box .team-logo-mark.team-admin-preview-logo { width: 108px; height: 108px; }
}

/* RMFC v0.5.6 — votación sin scrollbars visibles y selección optimizada */
.player-month-dialog,
.player-month-dialog-content,
.player-month-public,
.player-month-carousel-shell,
.player-month-carousel-track {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.player-month-dialog::-webkit-scrollbar,
.player-month-dialog-content::-webkit-scrollbar,
.player-month-public::-webkit-scrollbar,
.player-month-carousel-shell::-webkit-scrollbar,
.player-month-carousel-track::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.player-month-dialog-content {
  overflow-y: auto;
  overflow-x: hidden;
}
.player-month-carousel-track {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  touch-action: pan-x;
}
.player-month-slide {
  min-height: 0;
  height: min(560px, calc(92vh - 150px));
  overflow: hidden;
}
.player-month-carousel-photo {
  max-height: 390px;
}
.player-month-vote-slide {
  display: grid;
  align-items: center;
}
.vote-final-panel {
  width: min(760px, 100%);
  min-height: 0;
  max-height: 100%;
  gap: 14px;
}
.vote-final-heading {
  display: grid;
  gap: 5px;
  text-align: center;
}
.vote-final-heading h4,
.vote-final-heading p {
  margin: 0;
}
.vote-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.vote-option {
  position: relative;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 11px;
  min-height: 78px;
  padding: 9px 11px;
  overflow: hidden;
}
.vote-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.vote-option-photo {
  width: 58px;
  height: 58px;
  flex: none;
}
.vote-option-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.vote-option-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1.04rem;
}
.vote-option-copy small {
  color: var(--muted);
  font-size: .84rem;
}
.vote-choice-mark {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--line);
  color: transparent;
  font-weight: 800;
  transition: .16s ease;
}
.vote-option:has(input:checked) .vote-choice-mark {
  color: var(--bg);
  background: var(--gold-bright);
  border-color: var(--gold-bright);
}
.vote-option:has(input:checked) {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
}
.vote-submit-zone {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.025);
}
.vote-selection-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.vote-selection-copy span {
  color: var(--muted);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.vote-selection-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vote-submit-btn {
  min-width: 160px;
  justify-content: center;
}
.vote-device-note {
  display: block;
  text-align: center;
  color: var(--muted);
}

@media(max-width:700px){
  .player-month-dialog-content {
    height: 100dvh;
    max-height: 100dvh;
    overflow-y: auto;
    padding: 12px;
  }
  .player-month-dialog-head {
    top: -12px;
    margin-bottom: 4px;
    padding: 12px 0 8px;
  }
  .player-month-dialog-head h2 {
    font-size: 1.5rem;
  }
  .player-month-dialog .player-month-public {
    height: calc(100dvh - 82px);
    display: grid;
    align-content: start;
  }
  .player-month-carousel-shell {
    height: 100%;
    min-height: 0;
  }
  .player-month-carousel-track {
    height: 100%;
  }
  .player-month-slide {
    height: calc(100dvh - 105px);
    max-height: 680px;
    padding: 12px;
    gap: 10px;
    align-content: center;
  }
  .player-month-carousel-photo {
    width: min(178px, 50vw);
    max-height: 220px;
  }
  .player-month-slide-copy {
    gap: 8px;
  }
  .player-month-slide-copy h4 {
    font-size: 1.35rem;
    text-align: center;
  }
  .player-month-slide-copy > .eyebrow {
    text-align: center;
  }
  .player-month-stat-grid {
    gap: 7px;
  }
  .player-month-stat-grid div {
    padding: 8px;
  }
  .player-month-stat-grid strong {
    font-size: 1.15rem;
  }
  .player-month-vote-slide {
    padding: 10px;
    align-content: center;
  }
  .vote-final-panel {
    width: 100%;
    gap: 9px;
    align-content: center;
  }
  .vote-final-heading {
    gap: 3px;
  }
  .vote-final-heading h4 {
    font-size: 1.35rem;
  }
  .vote-final-heading p {
    font-size: .88rem;
  }
  .vote-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }
  .vote-option {
    grid-template-columns: 46px minmax(0, 1fr) 22px;
    min-height: 64px;
    gap: 7px;
    padding: 7px;
  }
  .vote-option-photo {
    width: 46px;
    height: 46px;
  }
  .vote-option-copy strong {
    font-size: .88rem;
    white-space: normal;
    line-height: 1.05;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .vote-option-copy small {
    font-size: .72rem;
  }
  .vote-choice-mark {
    width: 22px;
    height: 22px;
    font-size: .78rem;
  }
  .vote-submit-zone {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 9px;
  }
  .vote-selection-copy {
    text-align: center;
  }
  .vote-submit-btn {
    width: 100%;
    min-width: 0;
  }
  .vote-device-note {
    font-size: .72rem;
    line-height: 1.2;
  }
}

@media(max-width:390px){
  .vote-options { gap: 5px; }
  .vote-option {
    grid-template-columns: 40px minmax(0,1fr) 20px;
    padding: 6px;
  }
  .vote-option-photo { width: 40px; height: 40px; }
  .vote-option-copy strong { font-size: .82rem; }
  .vote-option-copy small { display: none; }
  .player-month-carousel-photo { width: min(150px, 44vw); }
}


/* RMFC v0.5.7: tabla de posiciones ultra compacta */
.standings-inline th:nth-child(2),
.standings-inline td:nth-child(2){
  padding-right:0!important;
}
.standings-inline th:nth-child(3),
.standings-inline td:nth-child(3){
  padding-left:0!important;
  padding-right:4px!important;
  width:34px!important;
}
.standings-inline .table-team-cell{
  margin-right:0!important;
}
@media(max-width:700px){
  .standings-inline th:nth-child(2),
  .standings-inline td:nth-child(2){padding-right:0!important}
  .standings-inline th:nth-child(3),
  .standings-inline td:nth-child(3){padding-left:0!important;padding-right:2px!important;width:30px!important}
}


/* RMFC v0.5.8 — compact league tables + mobile RUT */
.competition-stats-table table{
  width:max-content!important;
  min-width:0!important;
  table-layout:auto!important;
}
.competition-stats-table th,
.competition-stats-table td{
  white-space:nowrap;
  padding-left:6px!important;
  padding-right:6px!important;
}
.competition-stats-table th:first-child,
.competition-stats-table td:first-child{
  width:1%!important;
  padding-right:1px!important;
}
.competition-stats-table th:nth-child(2),
.competition-stats-table td:nth-child(2){
  width:32px!important;
  padding-left:1px!important;
  padding-right:4px!important;
  text-align:center;
}
.competition-stats-table th:nth-child(n+3),
.competition-stats-table td:nth-child(n+3){
  width:40px!important;
  text-align:center;
}

.standings-inline table{
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  table-layout:auto!important;
}
.standings-inline th,
.standings-inline td{
  white-space:nowrap;
  padding-left:4px!important;
  padding-right:4px!important;
}
.standings-inline th:first-child,
.standings-inline td:first-child{
  width:30px!important;
  text-align:center;
}
.standings-inline th:nth-child(2),
.standings-inline td:nth-child(2){
  width:1%!important;
  padding-right:0!important;
}
.standings-inline th:nth-child(3),
.standings-inline td:nth-child(3){
  width:30px!important;
  padding-left:0!important;
  padding-right:2px!important;
  text-align:center;
}
.standings-inline th:nth-child(n+4),
.standings-inline td:nth-child(n+4){
  width:34px!important;
  text-align:center;
}
.standings-inline .table-team-cell{
  width:max-content!important;
  min-width:0!important;
  gap:4px!important;
  margin-right:0!important;
}
.rut-nowrap{
  display:inline-block;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}

@media(max-width:700px){
  .competition-stats-table th,
  .competition-stats-table td{
    padding-left:4px!important;
    padding-right:4px!important;
  }
  .competition-stats-table th:first-child,
  .competition-stats-table td:first-child{padding-right:0!important}
  .competition-stats-table th:nth-child(2),
  .competition-stats-table td:nth-child(2){width:28px!important;padding-left:0!important;padding-right:2px!important}
  .competition-stats-table th:nth-child(n+3),
  .competition-stats-table td:nth-child(n+3){width:34px!important}

  .standings-inline th,
  .standings-inline td{padding-left:3px!important;padding-right:3px!important}
  .standings-inline th:nth-child(2),
  .standings-inline td:nth-child(2){padding-right:0!important}
  .standings-inline th:nth-child(3),
  .standings-inline td:nth-child(3){width:27px!important;padding-left:0!important;padding-right:1px!important}
  .standings-inline th:nth-child(n+4),
  .standings-inline td:nth-child(n+4){width:31px!important}
  .standings-inline .table-team-cell{gap:3px!important}

  .profile-rut-fact{
    grid-column:1 / -1;
  }
  .profile-rut-fact dd,
  .rut-nowrap{
    white-space:nowrap!important;
  }
}

/* RMFC v0.5.9 — separación del cuadro de votación y candidatos sin silueta */
.player-month-teaser {
  margin-top: 12px;
}
.player-month-slide-no-photo {
  grid-template-columns: minmax(0, 1fr);
}
.player-month-slide-no-photo .player-month-slide-copy {
  width: min(620px, 100%);
  margin-inline: auto;
}
.vote-option.no-photo {
  grid-template-columns: minmax(0, 1fr) 28px;
}
@media (max-width: 700px) {
  .player-month-teaser {
    margin-top: 9px;
  }
}

/* RMFC v0.6.0 — desktop full-width layout + compact squads */
@media (min-width: 1100px) {
  :root { --max: 1480px; }

  /* Las tablas aprovechan todo el ancho de la sección en navegador. */
  .table-scroll,
  .table-wrap,
  .competition-stats-table,
  .standings-inline {
    width: 100% !important;
    max-width: none !important;
  }
  .table-scroll > table,
  .table-wrap > table,
  .competition-stats-table > table,
  .standings-inline > table {
    width: 100% !important;
    max-width: none !important;
  }

  /* Tabla de posiciones: ancho completo manteniendo Equipo → PJ compacto. */
  .standings-inline table {
    min-width: 100% !important;
    table-layout: fixed !important;
  }
  .standings-inline th:first-child,
  .standings-inline td:first-child { width: 3% !important; }
  .standings-inline th:nth-child(2),
  .standings-inline td:nth-child(2) {
    width: 14% !important;
    padding-right: 2px !important;
  }
  .standings-inline th:nth-child(3),
  .standings-inline td:nth-child(3) {
    width: 8.5% !important;
    padding-left: 2px !important;
  }
  .standings-inline th:nth-child(n+4),
  .standings-inline td:nth-child(n+4) { width: 9.3% !important; }
  .standings-inline .table-team-cell {
    width: 100% !important;
    min-width: 0 !important;
    gap: 5px !important;
  }
  .standings-inline .table-team-cell strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Estadísticas de liga: ancho completo sin convertir Jugador en una columna gigante. */
  .competition-stats-table table {
    min-width: 100% !important;
    table-layout: fixed !important;
  }
  .competition-stats-table th:first-child,
  .competition-stats-table td:first-child {
    width: 15% !important;
    padding-right: 3px !important;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .competition-stats-table th:nth-child(2),
  .competition-stats-table td:nth-child(2) {
    width: 7.5% !important;
    padding-left: 3px !important;
  }
  .competition-stats-table th:nth-child(n+3),
  .competition-stats-table td:nth-child(n+3) { width: 7.75% !important; }
}

/* Plantel del detalle de liga: sin fotografías y siempre en dos columnas. */
.competition-players-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px;
}
.competition-player-compact-card {
  min-width: 0;
  min-height: 104px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  display: flex;
  align-items: center;
  transition: transform .18s ease, border-color .18s ease;
}
.competition-player-compact-card:hover {
  transform: translateY(-2px);
  border-color: var(--line-gold);
}
.competition-player-copy { width: 100%; min-width: 0; }
.competition-player-copy h3 {
  margin: 0 0 10px;
  color: var(--white);
  font-size: 1.45rem;
  line-height: 1.05;
}
.competition-player-compact-card .player-meta {
  margin-top: 0;
  padding-top: 10px;
}

/* Plantel general: fotografía más pequeña y tarjeta horizontal en navegador. */
.general-player-card {
  grid-template-columns: 132px minmax(0, 1fr) !important;
  min-height: 168px !important;
}
.general-player-card .player-photo-frame {
  width: 132px;
  height: 168px;
  min-height: 0;
  aspect-ratio: auto;
  border-bottom: 0;
  border-right: 1px solid var(--line);
}
.general-player-card .player-card-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 18px;
}
.general-player-card .player-card-info h3 {
  font-size: 1.35rem;
  overflow-wrap: anywhere;
}
.general-player-card .player-meta {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 7px 12px;
}

@media (min-width: 1100px) {
  .general-players-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
  }
}

@media (max-width: 1099px) {
  .general-player-card {
    grid-template-columns: 116px minmax(0, 1fr) !important;
    min-height: 148px !important;
  }
  .general-player-card .player-photo-frame {
    width: 116px;
    height: 148px;
  }
}

@media (max-width: 700px) {
  .competition-players-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px;
  }
  .competition-player-compact-card {
    min-height: 92px;
    padding: 13px 12px;
  }
  .competition-player-copy h3 {
    margin-bottom: 7px;
    font-size: 1.15rem;
    overflow-wrap: anywhere;
  }
  .competition-player-compact-card .player-meta {
    padding-top: 7px;
    gap: 5px;
    flex-wrap: wrap;
  }

  .general-player-card {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    min-height: 124px !important;
  }
  .general-player-card .player-photo-frame {
    width: 96px;
    height: 124px;
  }
  .general-player-card .player-card-info { padding: 13px; }
  .general-player-card .player-card-info h3 { font-size: 1.2rem; }
}


/* RMFC v0.6.1 — navegación centrada + carrusel de noticias de 2 columnas en escritorio */
@media (min-width: 901px) {
  .main-nav {
    justify-content: center;
  }

  .home-news-carousel-shell {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    align-items: center;
    gap: 14px;
    min-width: 0;
  }

  .hero-news-carousel,
  .news-page-track {
    min-width: 0;
    scrollbar-width: none;
  }
  .hero-news-carousel::-webkit-scrollbar,
  .news-page-track::-webkit-scrollbar {
    display: none;
  }

  .hero-news-carousel .home-news-card {
    flex: 0 0 calc((100% - 20px) / 2);
    min-width: 0;
  }

  .news-page-track .news-story-card {
    flex: 0 0 calc((100% - 18px) / 2);
    min-width: 0;
  }
}

@media (max-width: 900px) {
  .main-nav {
    justify-content: flex-start;
  }
  .home-news-carousel-shell {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 9px;
    min-width: 0;
  }
}

@media (max-width: 640px) {
  .home-news-carousel-shell {
    display: block;
  }
  .home-news-carousel-shell .news-carousel-arrow {
    display: none !important;
  }
}

/* RMFC v0.6.2 — filtros Liga/Periodo y carga masiva de resultados por instancia */
.admin-filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 14px;
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
}
.admin-filter-results { grid-template-columns: repeat(3, minmax(190px, 1fr)); }
.admin-filter-grid label { margin: 0; }
.admin-filter-grid label > span {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: .92rem;
}
.batch-results-list { display: grid; gap: 16px; margin-top: 16px; }
.batch-result-row {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
}
.batch-result-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 12px;
}
.batch-result-title strong { color: var(--gold); font-size: 1.15rem; }
.batch-result-title span { color: var(--muted); font-size: .88rem; }
.batch-result-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}
.batch-result-grid label[data-shootout-field] { grid-column: 1 / -1; }
@media (max-width: 760px) {
  .admin-filter-grid,
  .admin-filter-results { grid-template-columns: 1fr; padding: 13px; gap: 11px; }
  .batch-result-grid { grid-template-columns: 1fr; }
  .batch-result-grid label[data-shootout-field] { grid-column: auto; }
  .batch-result-title { align-items: flex-start; flex-direction: column; gap: 3px; }
}

/* RMFC v0.6.4 · ingreso simplificado de estadísticas de partido */
.match-stats-intro{grid-column:1/-1}.match-result-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.match-result-grid label{display:grid;gap:6px;align-content:start}.match-mvp-panel{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);align-items:end;gap:18px;padding:18px;border:1px solid var(--line-gold);border-radius:14px;background:linear-gradient(135deg,rgba(219,166,56,.1),rgba(255,255,255,.025))}.match-mvp-panel h3{margin:2px 0 4px;font-size:1.55rem}.match-mvp-panel p{margin:0;color:var(--muted);line-height:1.35}.match-mvp-panel label{display:grid;gap:6px}.match-stats-sections{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.match-stat-section{min-width:0;padding:16px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.025);display:grid;align-content:start;gap:12px}.match-stat-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.match-stat-section-head h3{margin:0;font-size:1.15rem}.match-stat-section-head p{margin:4px 0 0;color:var(--muted);font-size:.83rem;line-height:1.3}.match-stat-section-head .btn{flex:0 0 auto}.match-stat-list{display:grid;gap:9px}.match-stat-list:empty::after{content:'Sin registros';display:block;padding:10px 12px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:.86rem;text-align:center}.match-stat-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,130px) 34px;gap:8px;align-items:end;padding:10px;border:1px solid rgba(255,255,255,.075);border-radius:10px;background:rgba(0,0,0,.14)}.match-stat-row:has([data-stat-value="shootoutsScored"]){grid-template-columns:minmax(0,1fr) 105px 105px 34px}.match-stat-row label{display:grid;gap:4px;min-width:0}.match-stat-row label span{color:var(--muted);font-size:.76rem}.match-stat-row input,.match-stat-row select{min-height:40px!important;padding:8px 10px!important}.match-stat-row-note{align-self:center;color:var(--muted);font-size:.82rem;line-height:1.2}.match-stat-remove{width:34px;height:40px;border:1px solid rgba(239,107,98,.28);border-radius:8px;background:rgba(239,107,98,.07);color:#ffaaa4;font-size:1.3rem;line-height:1;cursor:pointer}.match-stat-remove:hover{border-color:rgba(239,107,98,.65);background:rgba(239,107,98,.13)}.match-media-section{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.02)}.match-media-section h3{grid-column:1/-1;margin:0 0 2px}.match-media-section .admin-callout,.match-media-section .check-row{grid-column:1/-1}.editor-modal:has(input[name="matchId"]){width:min(1180px,calc(100% - 28px))}
@media(max-width:980px){.match-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.match-stats-sections{grid-template-columns:1fr}.match-mvp-panel{grid-template-columns:1fr}.match-media-section{grid-template-columns:1fr}.match-media-section>*{grid-column:1/-1!important}}
@media(max-width:620px){.match-result-grid{grid-template-columns:1fr}.match-stat-section{padding:13px}.match-stat-section-head{align-items:stretch;flex-direction:column}.match-stat-section-head .btn{width:100%}.match-stat-row,.match-stat-row:has([data-stat-value="shootoutsScored"]){grid-template-columns:minmax(0,1fr) 88px 34px}.match-stat-row:has([data-stat-value="shootoutsScored"]) label:nth-of-type(3){grid-column:1/3}.match-stat-row-note{grid-column:1/3}.match-stat-remove{grid-column:3;grid-row:1/3;align-self:center}.match-mvp-panel{padding:14px}}

/* RMFC v0.6.6 · seguridad de contraseña y creación administrativa de jugadores */
.password-field {
  position: relative;
  display: block;
  width: 100%;
}
.password-field input {
  padding-right: 50px !important;
}
.password-toggle {
  position: absolute;
  top: 50%;
  right: 7px;
  width: 36px;
  height: 36px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #aeb4af;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}
.password-toggle:hover,
.password-toggle:focus-visible {
  background: rgba(219,166,56,.09);
  color: var(--gold-bright);
  outline: none;
}
.password-eye {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.password-eye-closed { display: none; }
.password-toggle.is-visible .password-eye-open { display: none; }
.password-toggle.is-visible .password-eye-closed { display: block; }
.password-change-modal { width: min(540px, calc(100% - 28px)); }
.password-change-modal .modal-form { gap: 16px; }
.password-change-callout { margin: 0; }
.password-help { color: var(--muted); font-size: .78rem; line-height: 1.45; }
.password-change-brand h2 { line-height: 1.05; }
@media (max-width: 640px) {
  .password-change-modal { width: calc(100% - 18px); }
  .password-change-modal .modal-form { padding: 18px !important; }
  .password-change-brand img { width: 58px; height: 58px; }
  .password-change-brand h2 { font-size: 1.55rem; }
}

/* Acceso automático por identificador */
.login-auto-role-note{padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);color:var(--muted);font-size:.92rem;line-height:1.4;text-align:center}


/* Competencias: una liga recién creada se publica aunque todavía no tenga periodo. */
.competition-pending {
  cursor: default;
  width: 100%;
}
.competition-pending-label {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid rgba(212, 175, 55, .3);
  border-radius: 999px;
  color: var(--gold, #d4af37);
  background: rgba(212, 175, 55, .07);
  font-weight: 700;
}


/* RMFC v0.7.6 · cabecera persistente y refinamiento visual charcoal */
:root {
  --black: #111513;
  --black-2: #171c19;
  --panel: #202623;
  --panel-2: #272e2a;
  --panel-3: #303833;
  --muted: #afb6b1;
  --line: rgba(255,255,255,.12);
  --line-gold: rgba(219,166,56,.34);
  --shadow: 0 16px 42px rgba(0,0,0,.22);
}

html {
  background: #111513;
}

body {
  background:
    radial-gradient(circle at 8% 4%, rgba(143,29,24,.12), transparent 31rem),
    radial-gradient(circle at 92% 8%, rgba(15,96,55,.12), transparent 33rem),
    radial-gradient(circle at 50% 48%, rgba(219,166,56,.035), transparent 40rem),
    linear-gradient(180deg, #171c19 0%, #121614 47%, #181d1a 100%);
  background-attachment: fixed;
}

/* overflow-x:clip evita scroll lateral sin romper position:sticky. */
.site-shell {
  overflow: visible;
  overflow-x: clip;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(18,22,20,.96);
  border-bottom-color: rgba(255,255,255,.11);
  box-shadow: 0 8px 26px rgba(0,0,0,.18);
}

.nav-shell {
  position: sticky;
  top: 92px;
  z-index: 59;
  background: rgba(27,32,29,.97);
  border-bottom-color: rgba(219,166,56,.16);
  box-shadow: 0 9px 28px rgba(0,0,0,.18);
}

.nav-item:hover {
  background: rgba(255,255,255,.055);
}

.site-main {
  background:
    linear-gradient(180deg, rgba(255,255,255,.018), transparent 14rem),
    radial-gradient(circle at 18% 32%, rgba(255,255,255,.025), transparent 24rem),
    radial-gradient(circle at 84% 66%, rgba(219,166,56,.035), transparent 27rem);
}

/* Superficies más legibles: se mantiene la identidad oscura, sin grandes bloques negros. */
.home-panel,
.summary-card,
.match-card,
.competition-card,
.player-card,
.general-player-card,
.competition-player-compact-card,
.table-card,
.news-card,
.news-story-card,
.profile-top,
.profile-hero,
.profile-stat-grid article,
.account-card,
.manager-card,
.metric-card,
.membership-card,
.debt-summary,
.signup-card,
.admin-block,
.payment-request,
.registration-shell,
.stats-overview article,
.player-month-public,
.player-month-slide {
  background-color: var(--panel);
  box-shadow: 0 10px 30px rgba(0,0,0,.13);
}

.competition-card,
.news-story-card,
.match-card,
.profile-top,
.admin-block,
.table-card {
  border-color: rgba(255,255,255,.13);
}

.info-list div,
.profile-facts div,
.squad-period,
.list-action,
.admin-filter-grid,
.batch-result-row,
.match-stat-section,
.match-media-section,
.social-row a,
.sponsor-card {
  background: rgba(255,255,255,.045);
}

.table-scroll,
.table-wrap,
.stats-entry-table {
  border-radius: 14px;
}

table {
  background: rgba(31,37,34,.72);
}

th {
  background: var(--panel-3) !important;
  color: #c3c9c5;
  border-bottom-color: rgba(255,255,255,.13);
}

tbody tr:nth-child(even) td {
  background: rgba(255,255,255,.018);
}

tbody tr:hover td {
  background: rgba(219,166,56,.035);
}

input,
select,
textarea,
.modal-form input,
.modal-form select,
.modal-form textarea,
.registration-form input,
.registration-form select {
  background: #202623;
  border-color: rgba(255,255,255,.14);
}

.modal-shell,
.player-month-dialog {
  background: #1c211e;
}

.sponsors,
.sponsors-section {
  background: #1a1f1c;
  border-top-color: rgba(219,166,56,.15);
}

.sponsor-card {
  border-color: rgba(255,255,255,.12);
}

.site-footer {
  background: #141815;
  border-top-color: rgba(219,166,56,.18);
}

.footer-inner {
  min-height: 0;
  padding-top: 32px;
  padding-bottom: 32px;
}

.social-row {
  justify-content: flex-end;
}

.social-row a {
  min-width: 118px;
  padding: 10px 13px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 11px;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.social-row a:hover {
  transform: translateY(-1px);
  border-color: var(--line-gold);
  background: rgba(219,166,56,.07);
}

.social-row a strong {
  color: var(--gold-bright);
}

.social-row a span {
  color: #bcc3be;
}

@media (max-width: 900px) {
  .nav-shell { top: 76px; }
  .footer-inner { padding-top: 26px; padding-bottom: 26px; }
  .social-row { justify-content: center; }
}

@media (max-width: 640px) {
  .site-header { box-shadow: 0 6px 18px rgba(0,0,0,.2); }
  .nav-shell { top: 76px; }

  /* Redes compactas en móvil: conserva tipografía y contenido; reduce solo el espacio del contenedor. */
  .footer-inner {
    gap: 8px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .social-row {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    margin: 0;
  }
  .social-row a {
    min-width: 0;
    padding: 7px 9px;
    border-radius: 8px;
    gap: 1px;
  }
  .social-row a strong,
  .social-row a span {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }
}

/* v0.7.13 · Redes móviles en una sola fila con separadores y sin apariencia de botón. */
.footer-inner.footer-socials-only {
  justify-content: center;
}
.footer-inner.footer-socials-only .social-row {
  justify-content: center;
}

@media (max-width: 640px) {
  .site-footer {
    padding-top: 0;
    padding-bottom: 0;
  }

  .footer-inner.footer-socials-only {
    width: calc(100% - 24px);
    padding-top: 7px;
    padding-bottom: 7px;
  }

  .footer-inner.footer-socials-only .social-row {
    width: min(100%, 330px);
    margin-inline: auto;
    gap: 3px;
  }

  .footer-inner.footer-socials-only .social-row a {
    padding: 5px 7px;
    border-radius: 7px;
  }
}

/* v0.7.13 · En móvil las redes son enlaces planos en una sola fila. */
@media (max-width: 640px) {
  .footer-inner.footer-socials-only {
    width: 100%;
    padding: 8px 10px;
    overflow: hidden;
  }

  .footer-inner.footer-socials-only .social-row {
    width: 100%;
    max-width: none;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0;
    margin: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .footer-inner.footer-socials-only .social-row::-webkit-scrollbar {
    display: none;
  }

  .footer-inner.footer-socials-only .social-row a {
    flex: 0 0 auto;
    min-width: max-content;
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 0 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    white-space: nowrap;
    transform: none;
  }

  .footer-inner.footer-socials-only .social-row a + a {
    border-left: 1px solid rgba(219,166,56,.45);
  }

  .footer-inner.footer-socials-only .social-row a:first-child {
    padding-left: 2px;
  }

  .footer-inner.footer-socials-only .social-row a:last-child {
    padding-right: 2px;
  }

  .footer-inner.footer-socials-only .social-row a:hover,
  .footer-inner.footer-socials-only .social-row a:active,
  .footer-inner.footer-socials-only .social-row a:focus-visible {
    background: transparent;
    border-radius: 0;
    transform: none;
  }

  .footer-inner.footer-socials-only .social-row a strong,
  .footer-inner.footer-socials-only .social-row a span {
    white-space: nowrap;
  }
}

/* v0.7.14 · Cabecera: nombre visible REAL MAGNATES FÚTBOL CLUB. */

/* v0.7.15 · Redes: bloque profesional, separadores en escritorio y más aire vertical en móvil. */
.footer-inner.footer-socials-only {
  position: relative;
  width: min(980px, calc(100% - 40px));
  min-height: 0;
  margin: 22px auto;
  padding: 14px 20px;
  border: 1px solid rgba(255,255,255,.09);
  border-top-color: rgba(219,166,56,.34);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  box-shadow: 0 12px 34px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.025);
  overflow: hidden;
}

.footer-inner.footer-socials-only::before {
  content: "";
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(219,166,56,.7), transparent);
  pointer-events: none;
}

.footer-inner.footer-socials-only .social-row {
  width: 100%;
  max-width: none;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 0;
  margin: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.footer-inner.footer-socials-only .social-row::-webkit-scrollbar {
  display: none;
}

.footer-inner.footer-socials-only .social-row a {
  flex: 0 0 auto;
  min-width: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 5px 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  white-space: nowrap;
  transform: none;
  transition: opacity .18s ease;
}

.footer-inner.footer-socials-only .social-row a + a {
  border-left: 1px solid rgba(219,166,56,.42);
}

.footer-inner.footer-socials-only .social-row a:hover,
.footer-inner.footer-socials-only .social-row a:active,
.footer-inner.footer-socials-only .social-row a:focus-visible {
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  opacity: .9;
}

.footer-inner.footer-socials-only .social-row a strong,
.footer-inner.footer-socials-only .social-row a span {
  white-space: nowrap;
}

@media (max-width: 640px) {
  .site-footer {
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .footer-inner.footer-socials-only {
    width: calc(100% - 24px);
    margin: 0 auto;
    padding: 14px 12px;
    border-radius: 12px;
    overflow: hidden;
  }

  .footer-inner.footer-socials-only .social-row {
    justify-content: flex-start;
    overflow-x: auto;
  }

  .footer-inner.footer-socials-only .social-row a {
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 12px;
    padding-right: 12px;
  }

  .footer-inner.footer-socials-only .social-row a:first-child {
    padding-left: 4px;
  }

  .footer-inner.footer-socials-only .social-row a:last-child {
    padding-right: 4px;
  }
}


/* v0.7.16 · Redes: plataforma arriba y cuenta/nombre del equipo debajo. */
.footer-inner.footer-socials-only .social-row a {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  justify-items: center;
  gap: 3px;
  text-align: center;
  line-height: 1.12;
}

.footer-inner.footer-socials-only .social-row a strong {
  display: block;
  color: var(--gold-bright);
  font-weight: 800;
  letter-spacing: .045em;
}

.footer-inner.footer-socials-only .social-row a span {
  display: block;
  color: var(--muted);
  font-weight: 600;
}

@media (max-width: 640px) {
  .footer-inner.footer-socials-only .social-row a {
    gap: 4px;
    padding-top: 7px;
    padding-bottom: 7px;
  }
}

/* v0.7.19 · Inscripción total de liga, divisor por jugadores y cuotas condicionales. */
.registration-due-dates{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
.registration-due-dates>.admin-callout{grid-column:1/-1;margin:0 0 2px}
.registration-due-dates>label{display:grid;gap:7px;color:#a8ada9;font-size:.7rem;font-weight:750}
.period-due-summary{display:grid;gap:4px;min-width:150px}
.period-due-summary span{display:flex;align-items:center;justify-content:space-between;gap:9px;white-space:nowrap;color:var(--muted);font-size:.78rem}
.period-due-summary strong{color:var(--cream);font-weight:800}
.registration-schedule{list-style:none;margin:9px auto 0;padding:0;display:grid;gap:6px;width:min(430px,100%)}
.registration-schedule li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border-top:1px solid var(--line);font-size:.82rem}
.registration-schedule li strong{color:var(--gold-bright)}
.registration-schedule li span{color:var(--cream)}
@media (max-width:700px){
  .registration-due-dates{grid-template-columns:1fr;padding:12px}
  .registration-schedule li{align-items:flex-start;flex-direction:column;gap:2px}
}

/* v0.7.20: identidad vertical de equipos + catálogo de amistosos */
@media (min-width: 901px) {
  .match-card .match-team,
  .league-fixture-grid .match-team,
  .calendar-viewport .match-team {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center;
    text-align: center !important;
    gap: 10px;
  }
  .match-card .match-team strong,
  .league-fixture-grid .match-team strong,
  .calendar-viewport .match-team strong {
    display: block;
    width: 100%;
    text-align: center;
  }
}
.match-team-policy { grid-column: 1 / -1; }
.match-new-team-fields {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  padding: 14px;
  border: 1px dashed rgba(219,166,56,.42);
  border-radius: 12px;
  background: rgba(219,166,56,.045);
}
.match-new-team-fields[hidden] { display: none !important; }

/* v0.7.21 · Evita zoom automático al escribir o abrir controles en móvil.
   Mantiene pinch-zoom/manual disponible: no limita maximum-scale ni user-scalable. */
@media (max-width: 900px) {
  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  input,
  select,
  textarea,
  [contenteditable="true"],
  .modal-form input,
  .modal-form select,
  .modal-form textarea,
  .registration-form input,
  .registration-form select,
  .registration-form textarea,
  .filter-control input,
  .filter-control select,
  .stats-toolbar input,
  .stats-toolbar select,
  .password-field input,
  .editor-modal input,
  .editor-modal select,
  .editor-modal textarea {
    font-size: 16px !important;
    touch-action: manipulation;
  }

  input::placeholder,
  textarea::placeholder {
    font-size: 16px;
  }

  /* Los controles no textuales mantienen su tamaño visual propio. */
  input[type="checkbox"],
  input[type="radio"],
  input[type="range"],
  input[type="color"] {
    touch-action: manipulation;
  }

  .match-new-team-fields { grid-template-columns: 1fr; }
}

/* v0.7.22 · Periodos agrupados, desplegables progresivos y fixture vertical. */
.competition-period-selector {
  display: inline-grid;
  grid-template-columns: auto minmax(170px, 260px);
  align-items: center;
  gap: 9px;
  color: var(--muted);
  font-size: .82rem;
}
.competition-period-selector > span {
  font-weight: 800;
  color: var(--cream);
}
.competition-period-selector select {
  min-height: 38px;
  padding: 7px 34px 7px 10px;
  border: 1px solid rgba(219,166,56,.34);
  border-radius: 9px;
  background-color: rgba(255,255,255,.045);
  color: var(--cream);
  cursor: pointer;
}
.competition-period-selector select:focus,
.modal-form select:focus,
.admin-filter-grid select:focus,
.stats-toolbar select:focus {
  outline: 2px solid rgba(219,166,56,.35);
  outline-offset: 2px;
  border-color: var(--gold);
}
.modal-form select:disabled {
  opacity: .55;
  cursor: not-allowed;
}
[data-modal-title]:focus { outline: none; }
.league-fixture-carousel { margin-top: 2px; }
.league-fixture-carousel .league-fixture-grid { display: grid; grid-template-rows: repeat(3,minmax(0,1fr)); gap: 14px; }

@media (max-width: 700px) {
  .competition-detail-copy { width: 100%; min-width: 0; }
  .competition-detail-meta { align-items: flex-start; flex-direction: column; }
  .competition-period-selector {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 5px;
  }
  .competition-period-selector select { width: 100%; min-height: 44px; }
  .league-fixture-carousel .league-fixture-grid { gap: 9px; }
}

/* v0.7.23 · Paginación universal de tablas y gestión de fase eliminatoria. */
table tbody tr[hidden] { display: none !important; }
.table-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 12px 0 2px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(255,255,255,.025);
}
.table-pagination > span {
  min-width: 170px;
  text-align: center;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 650;
}
.table-pagination > span strong { color: var(--cream); }
.table-pagination button:disabled { opacity: .38; cursor: default; }

.knockout-round-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 16px;
}
.knockout-editor-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255,255,255,.025);
  color: var(--muted);
}
.knockout-admin-row { position: relative; }
.knockout-delete-round { margin-top: 14px; }
.bracket-result-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 12px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .75rem;
}
.bracket-result-meta strong { color: var(--cream); }

@media (max-width: 640px) {
  .table-pagination {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 9px;
  }
  .table-pagination > span {
    grid-column: 1 / -1;
    grid-row: 1;
    min-width: 0;
  }
  .table-pagination button { width: 100%; }
  .knockout-round-actions {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .knockout-round-actions .btn { width: 100%; }
  .knockout-editor-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .knockout-editor-toolbar .btn { width: 100%; }
}

/* v0.7.24 · Fase eliminatoria en Copa Oro y Copa Plata */
.knockout-cups { display: grid; gap: 28px; }
.knockout-cup-section {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 20px;
  background: rgba(255,255,255,.018);
}
.knockout-cup-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.knockout-cup-heading h3 { margin: 0; font-size: 1.45rem; }
.knockout-cup-oro .knockout-cup-heading h3 { color: var(--gold-bright); }
.knockout-cup-plata .knockout-cup-heading h3 { color: #d8dde3; }
.knockout-selected-cup {
  display: inline-flex;
  align-items: center;
  margin: 14px 0 4px;
  padding: 7px 12px;
  border-left: 3px solid var(--gold);
  background: rgba(255,255,255,.025);
  border-radius: 0 8px 8px 0;
}
@media (max-width: 640px) {
  .knockout-cups { gap: 20px; }
  .knockout-cup-section { padding: 14px; border-radius: 14px; }
  .knockout-cup-heading { align-items: flex-start; flex-direction: column; gap: 3px; margin-bottom: 14px; }
}


/* v0.7.25 · Eliminatorias progresivas, shoot-out y vista móvil por instancia */
.knockout-stage-tabs { display: none; align-items: center; gap: 8px; overflow-x: auto; scrollbar-width: thin; padding: 2px 0 14px; }
.knockout-stage-tab { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.025); color: var(--muted); padding: 8px 13px; font: inherit; font-size: .78rem; font-weight: 750; cursor: pointer; }
.knockout-stage-tab.is-active { border-color: rgba(219,166,56,.58); background: rgba(219,166,56,.12); color: var(--cream); }
.bracket-board { grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); align-items: start; }
.bracket-round { padding: 12px; border: 1px solid rgba(255,255,255,.055); border-radius: 15px; background: rgba(0,0,0,.12); }
.bracket-round h4 { padding: 0 2px 8px; border-bottom: 1px solid rgba(219,166,56,.16); }
.bracket-match { overflow: visible; border-color: rgba(255,255,255,.09); background: linear-gradient(145deg, rgba(255,255,255,.042), rgba(255,255,255,.018)); box-shadow: 0 10px 26px rgba(0,0,0,.14); }
.bracket-team-row { border: 1px solid transparent; transition: opacity .2s ease, filter .2s ease, border-color .2s ease, background .2s ease; }
.bracket-team-row.is-winner { border-color: rgba(219,166,56,.48); background: rgba(219,166,56,.105); box-shadow: inset 3px 0 0 rgba(219,166,56,.76); }
.bracket-team-row.is-winner .bracket-team-name strong { color: var(--cream); }
.bracket-team-row.is-eliminated { opacity: .43; filter: grayscale(.72); }
.bracket-score { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 4px; white-space: nowrap; }
.bracket-score strong { color: var(--gold-bright); font-size: 1.05rem; }
.bracket-score small { color: var(--cream); font-size: .76rem; font-weight: 800; }
.knockout-cup-finished { display: inline-flex; padding: 5px 9px; border-radius: 999px; border: 1px solid rgba(219,166,56,.3); color: var(--muted); font-size: .7rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.knockout-champion { display: grid; justify-items: center; gap: 10px; margin-top: 18px; padding: 18px; border: 1px solid rgba(219,166,56,.34); border-radius: 16px; background: radial-gradient(circle at 50% 0%, rgba(219,166,56,.13), transparent 66%), rgba(255,255,255,.02); text-align: center; }
.knockout-champion.is-silver { border-color: rgba(216,221,227,.3); background: radial-gradient(circle at 50% 0%, rgba(216,221,227,.1), transparent 66%), rgba(255,255,255,.02); }
.knockout-champion-kicker { color: var(--gold-bright); font-size: .72rem; font-weight: 850; letter-spacing: .13em; }
.knockout-champion.is-silver .knockout-champion-kicker { color: #d8dde3; }
.knockout-champion-team { display: flex; align-items: center; justify-content: center; gap: 12px; }
.knockout-champion-team strong { font-size: 1.28rem; }
.knockout-champion-logo { width: 48px; height: 48px; flex-basis: 48px; }
.knockout-shootout-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 12px; border: 1px solid rgba(219,166,56,.22); border-radius: 12px; background: rgba(219,166,56,.05); }
.knockout-shootout-fields[hidden] { display: none !important; }
.knockout-shootout-title { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.knockout-shootout-title span { color: var(--muted); font-size: .75rem; }
.knockout-progression-callout { border-left-color: rgba(219,166,56,.58); }
.knockout-round-actions .btn:disabled { opacity: .34; cursor: not-allowed; }
@media (max-width: 640px) {
  .knockout-stage-tabs { display: flex; }
  .knockout-cup-section { overflow: hidden; padding: 16px; }
  .knockout-cup-heading { margin-bottom: 12px; }
  .bracket-board { display: block; overflow: visible; padding: 0; }
  .bracket-round { display: none; min-width: 0; width: 100%; padding: 10px; gap: 11px; }
  .bracket-round.is-mobile-active { display: grid; }
  .bracket-match { width: 100%; min-width: 0; padding: 13px; border-radius: 13px; }
  .bracket-match::after { display: none; }
  .bracket-match-head { align-items: flex-start; }
  .bracket-team-row { min-width: 0; padding: 10px; gap: 8px; }
  .bracket-team-name { min-width: 0; flex: 1 1 auto; }
  .bracket-team-name strong { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.05; }
  .bracket-score { flex: 0 0 auto; min-width: 42px; }
  .bracket-result-meta { align-items: flex-start; flex-direction: column; }
  .knockout-champion { margin-top: 14px; padding: 15px 12px; }
  .knockout-champion-team strong { font-size: 1.12rem; }
  .knockout-shootout-fields { grid-template-columns: 1fr; }
  .knockout-shootout-title { grid-column: auto; align-items: flex-start; flex-direction: column; gap: 2px; }
}

/* v0.7.26 · Selector Copa Oro/Plata y campeón únicamente en la Final */
.knockout-cup-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-width: 520px;
  margin: 0 auto 18px;
  padding: 5px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  background: rgba(0,0,0,.18);
}
.knockout-cup-tab {
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-weight: 800;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.knockout-cup-tab:hover { color: var(--cream); background: rgba(255,255,255,.035); }
.knockout-cup-tab.is-active.is-gold {
  color: var(--cream);
  border-color: rgba(219,166,56,.5);
  background: linear-gradient(180deg, rgba(219,166,56,.18), rgba(219,166,56,.08));
  box-shadow: inset 0 0 0 1px rgba(219,166,56,.08), 0 6px 18px rgba(0,0,0,.15);
}
.knockout-cup-tab.is-active.is-silver {
  color: var(--cream);
  border-color: rgba(216,221,227,.38);
  background: linear-gradient(180deg, rgba(216,221,227,.13), rgba(216,221,227,.055));
  box-shadow: inset 0 0 0 1px rgba(216,221,227,.06), 0 6px 18px rgba(0,0,0,.15);
}
.bracket-round .knockout-champion {
  margin-top: 4px;
  align-self: stretch;
}
@media (max-width: 640px) {
  .knockout-cup-tabs {
    width: 100%;
    max-width: none;
    gap: 6px;
    margin-bottom: 14px;
    padding: 4px;
  }
  .knockout-cup-tab { min-height: 40px; font-size: .86rem; }
  .bracket-round .knockout-champion { margin-top: 2px; }
}


/* v0.7.27 · Eliminatoria en escritorio con formato de llave unidireccional */
@media (min-width: 641px) {
  .bracket-board {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 24px;
    align-items: start;
    overflow-x: auto;
    padding: 4px 0 6px;
  }
  .bracket-round {
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    gap: 26px;
    min-width: 0;
  }
  .bracket-round h4 {
    margin: 0;
    padding: 0 0 4px;
    border: none;
    color: var(--muted);
    font-size: .8rem;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .bracket-match {
    position: relative;
    padding: 0 28px 0 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    gap: 10px;
    min-width: 0;
  }
  .bracket-match::before {
    content: '';
    position: absolute;
    right: 12px;
    top: 33px;
    bottom: 33px;
    width: 2px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(219,166,56,.15), rgba(219,166,56,.4), rgba(219,166,56,.15));
  }
  .bracket-match::after {
    content: '';
    position: absolute;
    right: -10px;
    top: 50%;
    width: 22px;
    height: 2px;
    border-radius: 999px;
    background: rgba(219,166,56,.34);
    transform: translateY(-50%);
    display: block;
  }
  .bracket-round:last-child .bracket-match::after { display: none; }
  .bracket-round:last-child .bracket-match::before { right: 4px; }
  .bracket-match-head {
    padding-left: 2px;
    justify-content: flex-start;
    gap: 10px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .bracket-team-row {
    position: relative;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    background: linear-gradient(165deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
    box-shadow: 0 10px 24px rgba(0,0,0,.14);
  }
  .bracket-team-row + .bracket-team-row { margin-top: 8px; }
  .bracket-team-name { gap: 10px; }
  .bracket-team-name strong { font-size: .98rem; line-height: 1.15; }
  .bracket-team-logo { width: 34px; height: 34px; flex-basis: 34px; }
  .bracket-score strong { font-size: 1.08rem; }
  .bracket-score small { font-size: .78rem; }
  .bracket-result-meta {
    margin-top: 2px;
    padding-left: 2px;
    gap: 3px;
  }
  .bracket-round .knockout-champion {
    margin-top: 10px;
    justify-self: stretch;
  }
}

/* v0.7.28 · Eliminatoria de escritorio con visual tipo llave y solo cajas de equipos */
@media (min-width: 641px) {
  .knockout-cup-section {
    overflow: visible;
  }
  .bracket-board {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 22px;
    align-items: start;
    overflow-x: auto;
    padding: 8px 6px 16px;
  }
  .bracket-round {
    min-width: 220px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    gap: 24px;
    align-content: start;
  }
  .bracket-round h4 {
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    text-align: center;
    font-size: .95rem;
    letter-spacing: .11em;
    text-transform: uppercase;
  }
  .bracket-match {
    position: relative;
    padding: 0 20px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    gap: 10px;
    overflow: visible;
  }
  .bracket-match-head,
  .bracket-result-meta {
    display: none;
  }
  .bracket-match::before {
    content: '';
    position: absolute;
    right: 8px;
    top: 50%;
    width: 1px;
    height: calc(100% - 42px);
    transform: translateY(-50%);
    background: linear-gradient(180deg, rgba(219,166,56,.14), rgba(219,166,56,.5), rgba(219,166,56,.14));
  }
  .bracket-match::after {
    content: '';
    position: absolute;
    right: -14px;
    top: 50%;
    width: 14px;
    height: 2px;
    transform: translateY(-50%);
    background: rgba(219,166,56,.45);
  }
  .bracket-round:last-child .bracket-match::after {
    display: none;
  }
  .bracket-team-row {
    position: relative;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid rgba(219,166,56,.22);
    border-radius: 12px;
    background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
    box-shadow: 0 6px 18px rgba(0,0,0,.12);
  }
  .bracket-team-row::after {
    content: '';
    position: absolute;
    right: -9px;
    top: 50%;
    width: 9px;
    height: 2px;
    transform: translateY(-50%);
    background: rgba(219,166,56,.42);
  }
  .bracket-round:last-child .bracket-team-row::after {
    display: none;
  }
  .bracket-team-row.is-winner {
    border-color: rgba(219,166,56,.62);
    background: linear-gradient(145deg, rgba(219,166,56,.17), rgba(219,166,56,.05));
    box-shadow: 0 10px 24px rgba(0,0,0,.16), inset 3px 0 0 rgba(219,166,56,.86);
  }
  .bracket-team-row.is-eliminated {
    opacity: .36;
    filter: grayscale(.88);
  }
  .bracket-team-name strong {
    font-size: .96rem;
    line-height: 1.08;
  }
  .bracket-score {
    min-width: 52px;
    gap: 3px;
  }
  .bracket-score strong {
    font-size: 1.08rem;
  }
  .bracket-score small {
    font-size: .74rem;
  }
  .bracket-round:nth-child(2) {
    margin-top: 54px;
    gap: 64px;
  }
  .bracket-round:nth-child(3) {
    margin-top: 122px;
    gap: 144px;
  }
  .bracket-round:nth-child(4) {
    margin-top: 226px;
    gap: 0;
    align-self: center;
  }
  .bracket-round:nth-child(5) {
    margin-top: 226px;
    gap: 0;
    align-self: center;
  }
}

/* v0.7.30 · Alineación matemática de cada ronda entre las dos llaves anteriores */
@media (min-width: 641px) {
  .bracket-board {
    align-items: stretch;
    column-gap: 30px;
  }
  .bracket-round {
    display: grid;
    grid-template-rows: auto 1fr;
    margin-top: 0 !important;
    gap: 0 !important;
    align-self: stretch !important;
  }
  .bracket-round h4 {
    margin: 0 0 14px;
  }
  .bracket-round-matches {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    min-height: calc(var(--bracket-max-matches, 1) * 142px);
    gap: 0;
  }
  .bracket-match {
    flex: 0 0 auto;
    width: 100%;
  }
}

@media (max-width: 640px) {
  .bracket-round-matches {
    display: grid;
    gap: 11px;
    min-height: 0;
  }
}

/* v0.7.32 · Bloqueo de fondo en modales móviles y edición segura de resultados */
html.modal-open,
body.modal-open {
  overscroll-behavior: none;
}
body.modal-open {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
}
.modal-shell {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.batch-result-title > div {
  display: grid;
  gap: 2px;
}
.batch-result-title .btn-danger {
  flex: 0 0 auto;
}
@media (max-width: 760px) {
  .modal-shell {
    max-height: calc(100dvh - 16px);
    overscroll-behavior-y: contain;
  }
  .batch-result-title {
    gap: 10px;
  }
  .batch-result-title .btn-danger {
    width: 100%;
  }
}


/* v0.7.33 · Calidad de sitio: recursos locales, enlaces seguros y tabla de posiciones completa */
.social-static { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; }

/* v0.7.34 · Revisión integral responsive móvil: evita cortes, solapes y desbordes. */
@media (max-width: 760px) {
  html, body { max-width: 100%; }
  body { font-size: 15px; overflow-x: clip; }

  .header-inner {
    width: calc(100% - 18px);
    min-height: 72px;
    gap: 6px;
  }
  .brand {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 104px);
    gap: 8px;
  }
  .brand-logo { width: 44px; height: 44px; flex: 0 0 44px; }
  .brand-copy { min-width: 0; gap: 2px; }
  .brand-copy strong {
    display: block;
    max-width: 100%;
    font-size: .78rem !important;
    line-height: 1.05;
    letter-spacing: .045em !important;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .brand-copy small { display: none; }
  .session-box { flex: 0 0 auto; min-width: 0; gap: 5px; }
  .user-chip { flex: 0 0 auto; }
  .mobile-session-btn,
  .btn-header.mobile-session-btn {
    min-height: 38px !important;
    padding: 7px 9px !important;
    font-size: .78rem !important;
    line-height: 1 !important;
  }
  .site-header { min-height: 72px; }
  .nav-shell { top: 72px !important; }
  .main-nav { min-height: 50px; padding-inline: 6px; }
  .nav-item {
    min-height: 50px !important;
    padding: 0 10px !important;
    gap: 5px !important;
    font-size: .7rem !important;
    line-height: 1.05;
  }
  .nav-item .icon { width: 15px; height: 15px; }

  .content-section,
  .page-section,
  .section-container,
  .notice,
  .global-notice {
    width: calc(100% - 20px) !important;
    max-width: 100%;
  }
  .page-section { padding: 36px 0 52px; }
  .page-heading { max-width: 100%; margin-bottom: 22px; }
  .page-heading h2 {
    max-width: 100%;
    margin-top: 5px;
    font-size: clamp(1.95rem, 10vw, 2.6rem) !important;
    line-height: .98;
    letter-spacing: -.025em;
    overflow-wrap: anywhere;
  }
  .page-heading p { font-size: .92rem; line-height: 1.5; }
  .eyebrow { font-size: .67rem; letter-spacing: .13em; }

  .section-title-row,
  .section-title-row.compact {
    width: 100%;
    align-items: flex-start !important;
    flex-wrap: wrap;
    gap: 8px 12px;
  }
  .section-title-row > *,
  .section-title-row h3 { min-width: 0; max-width: 100%; }
  .section-title-row h3 {
    font-size: clamp(1.35rem, 7vw, 1.7rem) !important;
    line-height: 1.05;
    overflow-wrap: anywhere;
  }

  .toolbar,
  .filter-control {
    width: 100%;
    max-width: 100%;
  }
  .toolbar { justify-content: stretch; }
  .filter-control {
    align-items: stretch;
    flex-direction: column;
    gap: 6px;
  }
  .filter-control select,
  .filter-control input { min-width: 0; width: 100%; }

  .btn {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
    line-height: 1.15;
  }
  .button-row,
  .request-actions,
  .signup-actions,
  .knockout-round-actions {
    max-width: 100%;
  }
  .status-pill,
  .competition-pill,
  .news-category {
    max-width: 100%;
    white-space: normal;
    text-align: center;
    line-height: 1.15;
  }

  .competition-card,
  .match-card,
  .signup-card,
  .membership-card,
  .metric-card,
  .summary-card,
  .admin-block,
  .admin-banner,
  .squad-period,
  .news-story-card,
  .home-panel,
  .profile-top,
  .profile-hero,
  .registration-shell,
  .match-stat-section,
  .match-mvp-panel,
  .match-media-section {
    min-width: 0;
    max-width: 100%;
  }
  .competition-card,
  .match-card,
  .signup-card,
  .admin-block,
  .home-panel { padding: 14px; }

  .competition-card-head,
  .signup-head,
  .squad-period-head,
  .payment-request,
  .match-topline,
  .admin-banner {
    min-width: 0;
    flex-wrap: wrap;
  }
  .competition-card-head > *,
  .signup-head > *,
  .squad-period-head > *,
  .payment-request > *,
  .match-topline > *,
  .admin-banner > * { min-width: 0; }

  .competition-brand,
  .competition-detail-title,
  .profile-identity,
  .table-team-cell,
  .bracket-team-name {
    min-width: 0;
  }
  .competition-brand h3,
  .competition-detail-title h2,
  .profile-identity h3,
  .profile-main h3,
  .signup-head h3,
  .news-story-card h3,
  .player-card-info h3,
  .competition-player-copy h3,
  .bracket-team-name strong {
    max-width: 100%;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .competition-card h3 { font-size: 1.35rem; line-height: 1.05; }
  .news-story-card h3 { font-size: 1.35rem; line-height: 1.08; }

  .competition-detail-title { align-items: flex-start; gap: 11px; }
  .league-logo-wrap.detail { width: 58px; height: 58px; flex-basis: 58px; }
  .competition-detail-title h2 { font-size: 1.6rem; line-height: 1.02; }
  .competition-detail-meta { width: 100%; min-width: 0; gap: 6px; }

  .admin-tabs,
  .league-detail-tabs,
  .knockout-cup-tabs,
  .knockout-stage-tabs {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .admin-tab,
  .league-detail-tab,
  .knockout-cup-tab,
  .knockout-stage-tab { flex: 0 0 auto; white-space: nowrap; }

  .admin-filter-grid,
  .admin-filter-results,
  .stats-toolbar,
  .match-result-grid,
  .registration-due-dates,
  .new-player-fields,
  .existing-player-fields,
  .match-media-section,
  .match-stats-sections {
    min-width: 0;
    grid-template-columns: 1fr !important;
  }
  .admin-filter-grid label,
  .stats-toolbar label,
  .modal-form label,
  .registration-form label { min-width: 0; }

  .modal-shell,
  .editor-modal,
  .login-modal {
    width: calc(100vw - 12px) !important;
    max-width: calc(100vw - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
    border-radius: 13px;
  }
  .modal-form { padding: 14px !important; gap: 10px; }
  .modal-brand { gap: 10px; }
  .modal-brand img { width: 52px; height: 52px; flex: 0 0 52px; }
  .modal-brand > div { min-width: 0; }
  .modal-brand h2,
  .modal-form > h2 {
    max-width: 100%;
    font-size: 1.45rem;
    line-height: 1.05;
    overflow-wrap: anywhere;
  }

  .table-scroll,
  .table-wrap,
  .competition-stats-table,
  .standings-inline,
  .treasury-balance-table {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  th { font-size: .7rem; line-height: 1.1; }
  td { font-size: .78rem; line-height: 1.2; }

  .match-scoreboard,
  .list-match .match-scoreboard,
  .compact-match .match-scoreboard {
    grid-template-columns: minmax(0,1fr) 68px minmax(0,1fr);
    gap: 6px;
  }
  .match-team,
  .match-team.away { min-width: 0; }
  .match-team strong {
    max-width: 100%;
    font-size: .78rem;
    line-height: 1.05;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .match-team img,
  .opponent-badge,
  .list-match .match-team img,
  .list-match .opponent-badge { width: 46px; height: 46px; flex-basis: 46px; }
  .score-box > strong { font-size: 1.5rem; }
  .match-meta { flex-wrap: wrap; }

  .profile-top { padding: 14px; }
  .profile-identity { width: 100%; align-items: flex-start; }
  .profile-identity > div { min-width: 0; }
  .profile-identity h3 { font-size: 1.55rem; line-height: 1.05; }
  .profile-facts { width: 100%; grid-template-columns: 1fr; }
  .profile-facts dd { overflow-wrap: anywhere; }

  .metric-card strong,
  .debt-summary strong { font-size: 1.3rem; }
  .metric-card span,
  .debt-summary span,
  .debt-summary small { font-size: .78rem; line-height: 1.15; }

  .registration-page { padding: 8px; }
  .registration-shell { padding: 15px; border-radius: 14px; }
  .registration-shell h1 {
    font-size: 1.75rem;
    line-height: 1.03;
    overflow-wrap: anywhere;
  }

  .knockout-cup-section { padding: 12px; }
  .knockout-cup-heading h3 { font-size: 1.25rem; }
  .bracket-round { padding: 8px; }
  .bracket-match { padding: 10px; }
  .bracket-team-row { padding: 9px 8px; gap: 6px; }
  .bracket-team-logo { width: 28px; height: 28px; flex-basis: 28px; }
  .bracket-team-name { gap: 6px; }
  .bracket-team-name strong { font-size: .84rem; line-height: 1.05; }
  .bracket-score { min-width: 36px; }
  .bracket-score strong { font-size: .95rem; }

  .player-month-dialog-head { gap: 10px; }
  .player-month-dialog-head > div { min-width: 0; }
  .player-month-dialog-head h2 {
    font-size: 1.5rem;
    line-height: 1.05;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 430px) {
  body { font-size: 14.5px !important; }
  .header-inner { width: calc(100% - 12px); gap: 4px; }
  .brand { max-width: calc(100% - 92px); gap: 6px; }
  .brand-logo { width: 40px; height: 40px; flex-basis: 40px; }
  .brand-copy strong { font-size: .7rem !important; letter-spacing: .025em !important; }
  .mobile-session-btn,
  .btn-header.mobile-session-btn { padding-inline: 7px !important; font-size: .72rem !important; }

  .content-section,
  .page-section,
  .section-container,
  .notice,
  .global-notice { width: calc(100% - 14px) !important; }
  .page-section { padding-top: 30px; }
  .page-heading h2 { font-size: clamp(1.75rem, 9vw, 2.2rem) !important; }

  .button-row,
  .request-actions,
  .signup-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .button-row .btn,
  .request-actions .btn,
  .signup-actions .btn { width: 100%; }

  .metric-grid,
  .debt-summary,
  .membership-grid,
  .summary-grid,
  .stats-overview,
  .profile-stat-grid,
  .treasury-auto-summary { grid-template-columns: 1fr !important; }

  .match-scoreboard,
  .list-match .match-scoreboard,
  .compact-match .match-scoreboard {
    grid-template-columns: minmax(0,1fr) 58px minmax(0,1fr);
    gap: 4px;
  }
  .match-team img,
  .opponent-badge,
  .list-match .match-team img,
  .list-match .opponent-badge { width: 40px; height: 40px; flex-basis: 40px; }
  .match-team strong { font-size: .7rem; }
  .score-box > strong { font-size: 1.3rem; }

  .summary-mobile-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .player-month-countdown { grid-template-columns: repeat(2, minmax(0,1fr)); }

  .match-stat-row,
  .match-stat-row:has([data-stat-value="shootoutsScored"]) {
    grid-template-columns: minmax(0,1fr) 34px !important;
    gap: 7px;
  }
  .match-stat-row > label,
  .match-stat-row:has([data-stat-value="shootoutsScored"]) > label {
    grid-column: 1 !important;
  }
  .match-stat-row-note { grid-column: 1 !important; }
  .match-stat-remove {
    grid-column: 2 !important;
    grid-row: 1 / span 5 !important;
    align-self: center;
  }

  .player-photo-editor { align-items: flex-start; flex-direction: column; }
  .player-photo-preview,
  .sponsor-logo-preview { flex-basis: auto; }

  .table-pagination {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    padding: 8px;
  }
  .table-pagination > span {
    grid-column: 1 / -1;
    grid-row: 1;
    min-width: 0;
  }
  .table-pagination .btn { width: 100%; }
}


/* v0.7.38 · Calendario móvil: marcador compacto en una fila y fecha/hora separadas */
.match-score-line {
  white-space: nowrap;
}
.match-score-line .match-score-reg {
  color: var(--white);
  font-size: 1em;
  line-height: 1;
}
.match-score-line .match-score-shootout {
  color: var(--gold-bright);
  font-size: .48em;
  font-weight: 850;
  line-height: 1;
}
.match-score-line .match-score-separator {
  color: var(--gold);
  font-size: .58em;
  line-height: 1;
}
.match-score-line .match-score-home { order: 1; }
.match-score-line .match-score-home-so { order: 2; }
.match-score-line .match-score-separator { order: 3; }
.match-score-line .match-score-away { order: 4; }
.match-score-line .match-score-away-so { order: 5; }
.match-score-line .match-score-vs {
  color: var(--white);
  font-size: 1em;
}
.match-datetime {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 3px 7px;
}
.match-datetime .match-date,
.match-datetime .match-time {
  display: inline-block;
}

@media (max-width: 640px) {
  .match-scoreboard,
  .list-match .match-scoreboard,
  .compact-match .match-scoreboard {
    grid-template-columns: minmax(0, 1fr) minmax(104px, 112px) minmax(0, 1fr) !important;
    gap: 5px !important;
  }
  .match-team,
  .match-team.away,
  .list-match .match-team,
  .list-match .match-team.away,
  .calendar-viewport .match-team,
  .calendar-viewport .match-team.away {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center;
    text-align: center !important;
    gap: 5px !important;
  }
  .match-team img,
  .opponent-badge,
  .list-match .match-team img,
  .list-match .opponent-badge,
  .calendar-viewport .match-team img,
  .calendar-viewport .opponent-badge {
    width: 48px !important;
    height: 48px !important;
    flex-basis: 48px !important;
  }
  .match-team strong,
  .list-match .match-team strong,
  .calendar-viewport .match-team strong {
    width: 100%;
    max-width: 100%;
    font-size: .72rem !important;
    line-height: 1.02 !important;
    text-align: center !important;
    overflow-wrap: anywhere;
  }
  .score-box > strong.match-score-line {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 100%;
    font-size: 1.48rem !important;
  }
  .match-score-line .match-score-home-so { order: 1; }
  .match-score-line .match-score-home { order: 2; }
  .match-score-line .match-score-separator { order: 3; }
  .match-score-line .match-score-away { order: 4; }
  .match-score-line .match-score-away-so { order: 5; }
  .match-score-line .match-score-shootout {
    font-size: .46em !important;
  }
  .match-score-line .match-score-separator {
    font-size: .58em !important;
    margin-inline: 1px;
  }
  .score-box > small.match-datetime {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 1px;
    margin-top: 2px;
    font-size: .6rem !important;
    line-height: 1.15;
    letter-spacing: .045em;
    white-space: nowrap;
  }
  .match-date,
  .match-time { display: block !important; }
}

@media (max-width: 430px) {
  .match-scoreboard,
  .list-match .match-scoreboard,
  .compact-match .match-scoreboard {
    grid-template-columns: minmax(0, 1fr) 102px minmax(0, 1fr) !important;
  }
  .match-team img,
  .opponent-badge,
  .list-match .match-team img,
  .list-match .opponent-badge,
  .calendar-viewport .match-team img,
  .calendar-viewport .opponent-badge {
    width: 46px !important;
    height: 46px !important;
    flex-basis: 46px !important;
  }
  .match-team strong,
  .list-match .match-team strong,
  .calendar-viewport .match-team strong {
    font-size: .64rem !important;
  }
  .score-box > strong.match-score-line {
    font-size: 1.35rem !important;
    gap: 2px;
  }
  .score-box > small.match-datetime {
    font-size: .56rem !important;
  }
}

/* Ajuste fino v0.7.38: formato móvil exacto (x)X : X (x) */
@media (max-width: 640px) {
  .score-box > strong.match-score-line { gap: 0 !important; }
  .match-score-line .match-score-home-so { margin-right: 0; }
  .match-score-line .match-score-separator { margin-inline: 5px !important; }
  .match-score-line .match-score-away-so { margin-left: 4px; }
}


/* v0.7.38 · Escudos móviles más visibles y shoot-out ordenado en escritorio */
@media (max-width: 640px) {
  /* Mantiene el círculo actual y hace que el escudo use casi toda su superficie. */
  .match-team-logo img,
  .match-team .match-team-logo img,
  .list-match .match-team-logo img,
  .calendar-viewport .match-team-logo img,
  .compact-match .match-team-logo img {
    width: calc(100% - 4px) !important;
    height: calc(100% - 4px) !important;
    max-width: none !important;
    max-height: none !important;
    flex-basis: auto !important;
    padding: 2px !important;
    object-fit: contain !important;
  }
}

@media (min-width: 641px) {
  /* Marcador desktop: (SO) resultado local : resultado visita (SO). */
  .match-score-line .match-score-home-so { order: 1; margin-right: .24em; }
  .match-score-line .match-score-home { order: 2; }
  .match-score-line .match-score-separator { order: 3; margin-inline: .28em; }
  .match-score-line .match-score-away { order: 4; }
  .match-score-line .match-score-away-so { order: 5; margin-left: .24em; }
  .score-box > strong.match-score-line { gap: 0; }
}

/* RMFC v0.7.39 · filtros de calendario/estadísticas, W.O. y estado bajo logo */
.admin-match-filter-grid {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  margin-bottom: 10px;
}
.admin-filter-summary {
  margin: 0 0 14px;
  color: var(--muted);
  font-size: .9rem;
  text-align: right;
}
.admin-match-stat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--cream) !important;
}
.admin-match-stat-head .status-pill { flex: 0 0 auto; }
.admin-match-pagination { margin-top: 16px; }

.competition-logo-stack {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 8px;
  flex: 0 0 auto;
}
.competition-logo-stack .status-pill {
  max-width: 100%;
  text-align: center;
  white-space: nowrap;
}

.match-wo-label,
.summary-wo-label {
  display: block;
  color: var(--gold-bright);
  font-family: var(--font-main);
  font-weight: 900;
  letter-spacing: .16em;
  line-height: 1;
  text-transform: uppercase;
}
.match-wo-label { font-size: .82rem; margin-bottom: 1px; }
.summary-wo-label { font-size: .9rem; margin: 2px 0 1px; }

@media (max-width: 760px) {
  .admin-match-filter-grid { grid-template-columns: 1fr; }
  .admin-filter-summary { text-align: left; }
  .admin-match-stat-head { align-items: flex-start; flex-direction: column; gap: 6px; }
  .match-wo-label { font-size: .74rem; }
  .competition-logo-stack { gap: 6px; }
  .competition-logo-stack .status-pill { font-size: .68rem; }
}

/* RMFC v0.7.42 · formulario público de inscripción */
.registration-shell{width:min(820px,100%)}
.registration-mode-picker{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
.registration-league-info{display:flex;align-items:center;justify-content:flex-start;gap:14px;text-align:left;padding:16px 18px;margin:18px 0;background:linear-gradient(135deg,rgba(219,166,56,.09),rgba(255,255,255,.025));border-color:var(--line-gold)}
.registration-league-logo{width:68px;height:68px;flex:0 0 68px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:#090b0a;overflow:hidden}
.registration-league-logo img{width:100%;height:100%;object-fit:contain;padding:7px}
.registration-league-logo span{font-weight:800;color:var(--gold-bright);font-size:1.05rem}
.registration-league-copy{display:grid;gap:3px;min-width:0}
.registration-league-copy small{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.registration-league-copy strong{font-size:1.35rem;line-height:1.05}
.registration-league-copy span{color:var(--muted)}
.registration-load-error{color:#ffaaa4;text-align:center;width:100%}
.registration-section-title{grid-column:1/-1;display:grid;gap:3px;padding:4px 0 9px;border-bottom:1px solid var(--line)}
.registration-section-title strong{font-size:1.2rem;color:var(--gold-bright)}
.registration-section-title span{color:var(--muted);font-size:.9rem}
.registration-form label>small{color:var(--muted);font-size:.78rem;line-height:1.25}
.registration-phone-control{display:grid;grid-template-columns:minmax(185px,.8fr) minmax(180px,1.2fr);gap:8px}
.registration-phone-control select,.registration-phone-control input{min-width:0}
.registration-password-label{grid-column:1/-1}
.registration-submit{min-height:48px;margin-top:2px}
.existing-player-fields .registration-section-title{margin-bottom:2px}
.registration-form .existing-player-fields label{align-content:start}
.success-panel span{color:var(--muted)}
@media(max-width:760px){
  .registration-shell{width:min(600px,100%)}
  .registration-league-info{padding:13px;gap:11px}
  .registration-league-logo{width:58px;height:58px;flex-basis:58px}
  .registration-league-copy strong{font-size:1.18rem}
  .registration-phone-control{grid-template-columns:1fr}
  .registration-section-title{margin-top:2px}
}
@media(max-width:430px){
  .registration-mode-picker{gap:6px}
  .registration-mode-picker .login-role{font-size:.82rem;padding-inline:7px}
  .registration-league-info{align-items:flex-start}
  .registration-league-logo{width:50px;height:50px;flex-basis:50px;border-radius:11px}
  .registration-league-copy strong{font-size:1.06rem}
  .registration-league-copy span{font-size:.86rem}
}

/* v0.7.45: formularios de inscripción completamente separados por modalidad */
.registration-mode-form[hidden]{display:none!important}


/* v0.7.45 · Acceso por RUT, campos de fecha alineados y menú de perfil móvil */
input[type="date"],
input[type="datetime-local"],
input[type="month"],
.modal-form input[type="date"],
.modal-form input[type="datetime-local"],
.modal-form input[type="month"],
.registration-form input[type="date"],
.registration-form input[type="datetime-local"],
.registration-form input[type="month"] {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  inline-size: 100% !important;
  box-sizing: border-box;
}
.modal-form > label,
.field-label,
.registration-form label,
.admin-filter-grid label,
.registration-due-dates > label {
  min-width: 0;
  max-width: 100%;
}
.header-login-btn {
  min-width: 142px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 9px 15px;
  white-space: nowrap;
  line-height: 1;
}
.header-login-icon { width: 18px; height: 18px; display: inline-grid; place-items: center; flex: 0 0 18px; }
.header-login-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.header-login-text { display: inline-block; transform: translateY(.5px); }
.profile-menu { position: relative; flex: 0 0 auto; }
.profile-menu-trigger { cursor: pointer; font: inherit; }
.profile-menu-trigger:hover { border-color: rgba(219,166,56,.35); background: rgba(255,255,255,.055); }
.profile-menu-chevron { width: 16px; height: 16px; display: inline-grid; place-items: center; color: var(--muted); transition: transform .18s ease; }
.profile-menu-chevron svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.profile-menu-trigger[aria-expanded="true"] .profile-menu-chevron { transform: rotate(180deg); }
.profile-menu-popover { position: absolute; z-index: 60; top: calc(100% + 9px); right: 0; width: 190px; padding: 7px; border: 1px solid var(--line); border-radius: 12px; background: #171b19; box-shadow: 0 18px 45px rgba(0,0,0,.45); }
.profile-menu-popover[hidden] { display: none !important; }
.profile-menu-popover button { width: 100%; min-height: 40px; display: flex; align-items: center; border: 0; border-radius: 8px; padding: 9px 11px; background: transparent; color: var(--cream); text-align: left; font-weight: 750; font-size: .83rem; }
.profile-menu-popover button:hover { background: rgba(255,255,255,.055); }
.profile-menu-popover .profile-menu-logout { margin-top: 4px; border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; color: #ffaaa4; }
.account-settings-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.account-settings-card h3 { margin: 5px 0 8px; font-size: 1.7rem; }
.account-settings-card p { margin: 0; color: var(--muted); line-height: 1.5; }
@media (max-width: 760px) {
  .main-nav .nav-item[data-section="perfil"] { display: none !important; }
  .desktop-logout-btn { display: none !important; }
  .profile-menu-trigger.user-chip { width: 46px; height: 46px; min-width: 46px; padding: 4px !important; justify-content: center; border-radius: 50%; }
  .profile-menu-trigger .user-avatar { width: 36px; height: 36px; flex: 0 0 36px; }
  .profile-menu-trigger .user-chip-copy, .profile-menu-trigger .profile-menu-chevron { display: none !important; }
  .profile-menu-popover { top: calc(100% + 8px); right: 0; width: min(210px, calc(100vw - 24px)); }
  .header-login-btn { min-width: 126px !important; min-height: 40px !important; padding: 7px 10px !important; gap: 7px; font-size: .78rem !important; }
  .header-login-btn .header-login-text { display: inline-block !important; }
  .header-login-btn .header-login-icon { display: inline-grid !important; }
  .header-login-icon, .header-login-icon svg { width: 16px; height: 16px; flex-basis: 16px; }
  .brand { max-width: calc(100% - 136px) !important; }
  .account-settings-card { align-items: stretch; flex-direction: column; padding: 17px; gap: 16px; }
  .account-settings-card .btn { width: 100%; }
}
@media (max-width: 430px) {
  .header-login-btn { min-width: 118px !important; padding-inline: 8px !important; font-size: .72rem !important; }
  .brand { max-width: calc(100% - 126px) !important; }
}

/* v0.7.48 - Ajustes responsive de Mi perfil del jugador */
.player-profile-page .profile-top,
.player-profile-page .debt-summary,
.player-profile-page .membership-grid,
.player-profile-page .metric-grid,
.player-profile-page .table-scroll {
  min-width: 0;
  max-width: 100%;
}
.player-profile-page .profile-section-title {
  margin-bottom: 12px;
}
.player-profile-page .profile-section-title h3 {
  margin-bottom: 0;
}
.profile-payment-table {
  min-width: 820px;
}
.profile-payment-table th:last-child,
.profile-payment-table td:last-child {
  width: 150px;
  min-width: 150px;
  text-align: center;
}
.profile-payment-concept {
  min-width: 210px;
  line-height: 1.3;
}
.profile-payment-amount {
  white-space: nowrap;
  font-weight: 800;
}
.profile-payment-action,
.profile-history-action {
  white-space: nowrap;
}
.profile-payment-btn,
.profile-history-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 126px;
  min-height: 38px;
  padding-inline: 14px;
  white-space: nowrap;
  text-align: center;
}
.profile-history-btn { min-width: 108px; }
.profile-payment-done {
  display: inline-block;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.2;
  white-space: normal;
}
.profile-history-leagues {
  display: grid;
  gap: 10px;
}
.profile-history-league {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel);
}
.profile-history-league-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-height: 52px;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
  font: inherit;
  user-select: none;
}
.profile-history-league-toggle::-webkit-details-marker { display: none; }
.profile-history-league-toggle::marker { display: none; content: ''; }
.profile-history-league-toggle:hover { background: rgba(255,255,255,.035); }
.profile-history-league-name {
  min-width: 0;
  font-weight: 850;
  font-size: 1rem;
  overflow-wrap: anywhere;
}
.profile-history-league-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 750;
  white-space: nowrap;
}
.profile-history-chevron {
  display: inline-block;
  font-size: 1.1rem;
  line-height: 1;
  transition: transform .18s ease;
}
.profile-history-league[open] .profile-history-chevron { transform: rotate(180deg); }
.profile-history-league[open] .profile-history-league-toggle { border-bottom: 1px solid var(--line); }
.profile-history-league-content { padding: 10px 12px 12px; }
.profile-history-table {
  min-width: 860px;
}
.profile-history-match {
  min-width: 230px;
  line-height: 1.3;
}
.player-profile-page .membership-card,
.player-profile-page .metric-card,
.player-profile-page .debt-summary > div,
.player-profile-page .profile-facts > div {
  min-width: 0;
}

@media (max-width: 620px) {
  .profile-history-league-toggle {
    min-height: 50px;
    padding: 12px 13px;
    gap: 10px;
  }
  .profile-history-league-name { font-size: .94rem; }
  .profile-history-league-meta { font-size: .72rem; }
  .profile-history-league-content { padding: 10px; }

  .player-profile-page .profile-top {
    gap: 16px;
    margin-bottom: 24px;
  }
  .player-profile-page .profile-identity {
    gap: 12px;
  }
  .player-profile-page .user-avatar.large {
    flex: 0 0 auto;
  }
  .player-profile-page .debt-summary {
    gap: 9px;
    padding: 11px;
  }
  .player-profile-page .debt-summary > div,
  .player-profile-page .membership-card,
  .player-profile-page .metric-card {
    padding: 13px 14px;
  }
  .player-profile-page .section-gap {
    margin-top: 28px;
  }

  .profile-payment-scroll,
  .profile-history-scroll {
    overflow: visible;
  }
  .profile-payment-table,
  .profile-history-table {
    display: block;
    width: 100%;
    min-width: 0 !important;
  }
  .profile-payment-table thead,
  .profile-history-table thead {
    display: none;
  }
  .profile-payment-table tbody,
  .profile-history-table tbody {
    display: grid;
    gap: 11px;
    width: 100%;
  }
  .profile-payment-table tbody tr,
  .profile-history-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0 12px;
    width: 100%;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--panel);
  }
  .profile-payment-table tbody td,
  .profile-history-table tbody td {
    display: grid;
    align-content: start;
    gap: 4px;
    min-width: 0;
    width: auto !important;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255,255,255,.065);
    text-align: left !important;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .profile-payment-table tbody td::before,
  .profile-history-table tbody td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .055em;
    line-height: 1.1;
    text-transform: uppercase;
  }
  .profile-payment-table .profile-payment-concept,
  .profile-history-table .profile-history-match {
    grid-column: 1 / -1;
    min-width: 0;
    font-weight: 750;
  }
  .profile-payment-table .profile-payment-action,
  .profile-history-table .profile-history-action {
    grid-column: 1 / -1;
    padding-bottom: 0;
    border-bottom: 0;
  }
  .profile-payment-table tbody td:nth-last-child(2),
  .profile-history-table tbody td:nth-last-child(2) {
    border-bottom: 0;
  }
  .profile-payment-btn,
  .profile-history-btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    margin-top: 2px;
    font-size: .88rem;
  }
  .profile-payment-done {
    padding-top: 2px;
  }
}

@media (max-width: 380px) {
  .profile-payment-table tbody tr,
  .profile-history-table tbody tr {
    grid-template-columns: 1fr;
  }
  .profile-payment-table .profile-payment-concept,
  .profile-payment-table .profile-payment-action,
  .profile-history-table .profile-history-match,
  .profile-history-table .profile-history-action {
    grid-column: 1;
  }
  .profile-payment-table tbody td:nth-last-child(2),
  .profile-history-table tbody td:nth-last-child(2) {
    border-bottom: 1px solid rgba(255,255,255,.065);
  }
}
@media (max-width: 620px) {
  .profile-payment-table tbody tr:has(.empty-state) { grid-template-columns: 1fr; padding: 0; background: transparent; border: 0; }
  .profile-payment-table tbody tr:has(.empty-state) td { grid-column: 1; padding: 0; border: 0; }
  .profile-payment-table tbody tr:has(.empty-state) td::before { display: none; }
}

/* RMFC v0.7.49 · colores de estado de liga: Próximamente amarillo, En curso verde, Finalizado/a rojo */

/* RMFC v0.7.50 · controles de fecha alineados en móvil, incluido WebKit/iOS */
@media (max-width: 900px) {
  input:is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
    -webkit-appearance: none;
    appearance: none;
    display: block;
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    min-height: 44px;
    height: 44px;
    padding: 10px 12px;
    overflow: hidden;
  }

  input:is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"])::-webkit-date-and-time-value {
    width: 100%;
    min-width: 0;
    margin: 0;
    text-align: left;
  }

  input:is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"])::-webkit-datetime-edit {
    min-width: 0;
    padding: 0;
  }

  input:is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"])::-webkit-calendar-picker-indicator {
    flex: 0 0 auto;
    margin: 0 0 0 6px;
  }

  .modal-form > *,
  .registration-form > *,
  .admin-filter-grid > *,
  .registration-due-dates > *,
  .match-result-grid > *,
  .new-player-fields > *,
  .existing-player-fields > *,
  .match-media-section > * {
    min-width: 0 !important;
    max-width: 100%;
  }
}

/* RMFC v0.7.51 · estados de liga también coloreados en Mi perfil → Ligas inscritas */


/* RMFC v0.7.52 · gestión de citados y dorsal específico por partido */
.admin-callup-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:4px 0 12px;
  color:var(--muted);
}
.admin-callup-list {
  display:grid;
  gap:10px;
}
.admin-callup-player {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,190px);
  align-items:center;
  gap:16px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.02);
  transition:border-color .18s ease, background .18s ease;
}
.admin-callup-player.is-cited {
  border-color:var(--line-gold);
  background:var(--gold-soft);
}
.admin-callup-select {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  margin:0;
  cursor:pointer;
}
.admin-callup-select input {
  flex:0 0 auto;
  width:20px;
  height:20px;
}
.admin-callup-player-copy {
  display:grid;
  gap:2px;
  min-width:0;
}
.admin-callup-player-copy strong {
  overflow-wrap:anywhere;
}
.admin-callup-player-copy small {
  color:var(--muted);
}
.admin-callup-number {
  display:grid;
  gap:5px;
  margin:0;
}
.admin-callup-number span {
  color:var(--muted);
  font-size:.88rem;
}
.admin-callup-number input {
  width:100%;
  min-width:0;
}
.admin-callup-number input:disabled {
  opacity:.45;
}

@media (max-width: 620px) {
  .admin-callup-toolbar {
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .admin-callup-player {
    grid-template-columns:1fr;
    gap:10px;
  }
  .admin-callup-number {
    padding-left:32px;
  }
}

/* RMFC v0.7.53 · buscador de jugadores en Administración */
.admin-player-search {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
}
.admin-player-search label {
  display: grid;
  gap: 7px;
  width: min(520px, 100%);
  margin: 0;
}
.admin-player-search label > span {
  color: var(--muted);
  font-size: .92rem;
}
.admin-player-search input {
  width: 100%;
  min-width: 0;
}
.admin-player-search small {
  flex: 0 0 auto;
  color: var(--muted);
  padding-bottom: 11px;
}
@media (max-width: 640px) {
  .admin-player-search {
    display: grid;
    align-items: stretch;
    gap: 8px;
    padding: 12px;
  }
  .admin-player-search label { width: 100%; }
  .admin-player-search small { padding-bottom: 0; }
}

/* RMFC v0.7.57 · orden y estado de carga en Estadísticas de partido */
.admin-stats-filter-grid {
  grid-template-columns: repeat(5, minmax(150px, 1fr));
}
.admin-match-stat-badges {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
}
.admin-match-stat-badges .status-pill { flex: 0 0 auto; }
@media (max-width: 1180px) {
  .admin-stats-filter-grid { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
}
@media (max-width: 760px) {
  .admin-stats-filter-grid { grid-template-columns: 1fr; }
  .admin-match-stat-badges { justify-content: flex-start; }
}

/* RMFC v0.7.57 - Tipografia editorial de noticias */
.news-story-summary,
.news-story-body,
.news-card p,
.news-body {
  text-align: justify;
  text-align-last: left;
  text-indent: 1.7em;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

@media (max-width: 700px) {
  .news-story-summary,
  .news-story-body,
  .news-card p,
  .news-body {
    text-indent: 1.35em;
  }
}

/* v0.7.61 · Inscripción compacta y carrusel de próximos partidos */
.home-player-signup .section-title-row,
.home-signup-grid{
  width:min(760px,100%);
  margin-left:auto;
  margin-right:auto;
}
.home-player-signup .section-title-row{margin-bottom:12px}
.signup-carousel-shell{display:grid;gap:10px;min-width:0}
.signup-carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-height:36px}
.signup-carousel-controls>span{min-width:62px;text-align:center;color:var(--muted);font-size:.82rem}
.signup-carousel-controls>span strong{color:var(--text)}
.signup-carousel-arrow{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--gold-bright);font:inherit;font-size:1.35rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.2s ease}
.signup-carousel-arrow:hover:not(:disabled){border-color:var(--gold);transform:translateY(-1px)}
.signup-carousel-arrow:disabled{opacity:.32;cursor:not-allowed}
.signup-card.signup-card-compact{padding:14px 16px;border-radius:14px}
.signup-card-compact .signup-head{align-items:center;margin-bottom:10px}
.signup-card-compact .signup-heading-copy{min-width:0}
.signup-card-compact .signup-head h3{font-size:1.25rem;margin:2px 0 0;line-height:1.05}
.signup-status-stack{display:grid;justify-items:end;gap:3px;flex:0 0 auto}
.signup-status-stack small{font-size:.72rem;color:var(--muted);white-space:nowrap}
.signup-match-summary{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}
.signup-team{min-width:0;display:flex;align-items:center;gap:9px}
.signup-team.away{flex-direction:row-reverse;text-align:right}
.signup-team strong{min-width:0;font-size:.92rem;line-height:1.05;overflow-wrap:anywhere}
.signup-team-logo{width:42px;height:42px;flex:0 0 42px;object-fit:contain}
.signup-match-center{display:grid;justify-items:center;text-align:center;gap:1px}
.signup-match-center>span{font-weight:800;color:var(--gold-bright);font-size:1.05rem}
.signup-match-center>strong{font-size:.75rem;line-height:1.05}
.signup-match-center>small{font-size:.72rem;color:var(--muted)}
.signup-card-compact .signup-actions{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-top:10px}
.signup-card-compact .signup-actions .btn{min-width:128px}
.signup-card-compact .signup-actions span{line-height:1.25}
.signup-card-compact .signup-list{margin-top:10px;padding-top:9px}
.signup-card-compact .signup-list summary{font-size:.84rem}
.signup-carousel-note{display:block;text-align:center;color:var(--muted);font-size:.76rem;line-height:1.25;padding:0 10px}

@media(max-width:640px){
  .home-player-signup .section-title-row,.home-signup-grid{width:100%}
  .signup-carousel-controls{justify-content:center}
  .signup-card.signup-card-compact{padding:12px}
  .signup-card-compact .signup-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .signup-card-compact .signup-head .eyebrow{font-size:.68rem;line-height:1.1}
  .signup-card-compact .signup-head h3{font-size:1.08rem}
  .signup-match-summary{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:6px;padding:10px 8px}
  .signup-team{display:grid;justify-items:center;text-align:center;gap:5px}
  .signup-team.away{display:grid;text-align:center}
  .signup-team-logo{width:38px;height:38px;flex-basis:38px}
  .signup-team strong{font-size:.76rem}
  .signup-match-center>strong{font-size:.68rem}
  .signup-match-center>small{font-size:.66rem}
  .signup-card-compact .signup-actions{grid-template-columns:1fr;gap:6px}
  .signup-card-compact .signup-actions .btn{width:100%;min-width:0}
  .signup-card-compact .signup-actions span{text-align:center;font-size:.74rem}
}


/* v0.7.61 · inscripción: fecha/hora, posición, cupo 11 y listado en vivo */
.signup-match-datetime{display:flex;align-items:baseline;justify-content:center;gap:6px;white-space:nowrap}
.signup-match-datetime>strong{font-size:.75rem;line-height:1.05}
.signup-match-datetime>small{font-size:.72rem;color:var(--muted);white-space:nowrap}
.signup-player-position{margin-top:9px;padding:7px 10px;border-radius:9px;background:rgba(255,255,255,.035);border:1px solid var(--line);font-size:.82rem;color:var(--muted);text-align:center}
.signup-player-position.is-signed{color:var(--text);border-color:rgba(75,190,120,.34);background:rgba(75,190,120,.08)}
.signup-live-list{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.signup-live-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.signup-live-list-head>strong{font-size:.84rem}
.signup-live-list-head>span{font-size:.72rem;color:var(--muted);white-space:nowrap}
.signup-live-list-head i{display:inline-block;width:7px;height:7px;border-radius:999px;background:currentColor;margin-right:3px;animation:signup-live-pulse 1.8s ease-in-out infinite}
.signup-live-list ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px}
.signup-live-list li{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.025);font-size:.78rem}
.signup-live-list li>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.signup-live-list li>small{flex:0 0 auto;color:var(--gold-bright);font-size:.68rem;white-space:nowrap}
.signup-live-list li.signup-live-empty{grid-column:1/-1;justify-content:center;color:var(--muted)}
@keyframes signup-live-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:640px){
  .signup-match-datetime{gap:4px}
  .signup-match-datetime>strong{font-size:.66rem}
  .signup-match-datetime>small{font-size:.64rem}
  .signup-player-position{font-size:.76rem;padding:6px 8px}
  .signup-live-list ul{grid-template-columns:1fr}
  .signup-live-list-head{align-items:flex-start}
  .signup-live-list-head>span{font-size:.68rem}
}
\n\n/* v0.7.62 · enfrentamiento más amplio, fecha y hora en filas separadas */
.home-player-signup .section-title-row,
.home-signup-grid{
  width:min(900px,100%);
}
.signup-match-summary{
  grid-template-columns:minmax(0,1fr) 116px minmax(0,1fr);
  gap:18px;
  padding:16px 18px;
}
.signup-team{gap:12px}
.signup-team strong{font-size:1.05rem;line-height:1.12}
.signup-team-logo{width:52px;height:52px;flex:0 0 52px}
.signup-match-center{gap:5px}
.signup-match-center>span{font-size:1.2rem}
.signup-match-datetime{
  display:grid;
  grid-template-columns:1fr;
  justify-items:center;
  gap:3px;
  white-space:normal;
}
.signup-match-datetime>strong{
  display:block;
  width:100%;
  font-size:.8rem;
  line-height:1.1;
  white-space:nowrap;
}
.signup-match-datetime>small{
  display:block;
  width:100%;
  font-size:.76rem;
  line-height:1.1;
  white-space:nowrap;
}
@media(max-width:640px){
  .signup-match-summary{
    grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);
    gap:8px;
    padding:13px 9px;
  }
  .signup-team-logo{width:44px;height:44px;flex-basis:44px}
  .signup-team strong{font-size:.82rem}
  .signup-match-center{gap:4px}
  .signup-match-center>span{font-size:1.08rem}
  .signup-match-datetime{gap:2px}
  .signup-match-datetime>strong{font-size:.7rem}
  .signup-match-datetime>small{font-size:.68rem}
}

/* RMFC v0.7.63 · administración Jugador del Mes */
.candidate-row-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.candidate-row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
@media (max-width: 700px){
  .candidate-row-main{align-items:flex-start}
  .candidate-row-actions .btn{flex:1 1 120px}
}

/* RMFC v0.7.64 · Configuración de contacto y notificaciones por correo */
.account-settings-page { display: grid; gap: 18px; }
.account-settings-contact { align-items: stretch; flex-direction: column; gap: 22px; }
.account-settings-main { width: 100%; }
.account-settings-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.account-settings-fields label { min-width: 0; display: grid; gap: 7px; font-weight: 700; }
.account-settings-fields input { width: 100%; min-width: 0; }
.account-notification-setting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.account-notification-copy { min-width: 0; max-width: 760px; }
.account-notification-copy h3 { margin-top: 5px; }
.settings-service-warning { margin-top: 10px !important; font-size: .88rem; }
.settings-switch {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  cursor: pointer;
  user-select: none;
}
.settings-switch input { position: absolute; opacity: 0; pointer-events: none; }
.settings-switch-track {
  width: 52px;
  height: 29px;
  padding: 3px;
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  transition: background .18s ease, border-color .18s ease;
}
.settings-switch-track span {
  width: 21px;
  height: 21px;
  display: block;
  border-radius: 50%;
  background: var(--muted);
  transform: translateX(0);
  transition: transform .18s ease, background .18s ease;
}
.settings-switch input:checked + .settings-switch-track { border-color: rgba(219,166,56,.6); background: rgba(219,166,56,.2); }
.settings-switch input:checked + .settings-switch-track span { transform: translateX(23px); background: var(--gold); }
.settings-switch input:focus-visible + .settings-switch-track { outline: 2px solid var(--gold); outline-offset: 3px; }
.account-settings-actions { display: flex; justify-content: flex-end; padding-top: 2px; }

@media (max-width: 760px) {
  .account-settings-fields { grid-template-columns: 1fr; }
  .account-notification-setting { align-items: stretch; flex-direction: column; gap: 15px; }
  .settings-switch { justify-content: space-between; width: 100%; padding: 4px 0; }
  .account-settings-actions .btn { width: 100%; }
}

/* v0.7.66 · pagos: pendientes separados, historial y deuda completa */
.profile-payment-heading{align-items:flex-end;gap:14px;flex-wrap:wrap}.profile-payment-heading>div{display:grid;gap:3px}.profile-payment-heading small{color:var(--muted)}
.profile-payment-history,.treasury-payment-history{margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.profile-payment-history-toggle{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;font-weight:700}.profile-payment-history-toggle::-webkit-details-marker{display:none}.profile-payment-history-toggle::marker{display:none;content:''}.profile-payment-history-toggle>span:last-child{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.86rem;font-weight:600}.profile-payment-history[open] .profile-history-chevron,.treasury-payment-history[open] .profile-history-chevron{transform:rotate(180deg)}.profile-payment-history-content,.treasury-payment-history-content{padding:0 12px 12px;border-top:1px solid var(--line)}
.full-payment-detail{grid-column:1/-1;width:100%}.full-payment-detail table tfoot td,.treasury-request-detail table tfoot td{border-top:1px solid var(--line);padding-top:10px}.full-payment-detail table tfoot td:last-child,.treasury-request-detail table tfoot td:last-child{text-align:right}
.payment-request-group{align-items:flex-start}.payment-request-main{min-width:0;flex:1}.treasury-request-detail{margin-top:8px}.treasury-request-detail>summary{cursor:pointer;font-weight:700;color:var(--text);width:max-content;max-width:100%}.treasury-request-detail .table-scroll{margin-top:8px}.treasury-request-detail table{min-width:480px}.treasury-payment-history{margin-top:14px}.treasury-payment-history-content{padding-top:12px}
@media(max-width:720px){.profile-payment-heading{align-items:stretch}.profile-payment-heading .btn{width:100%}.profile-payment-history-toggle{padding:12px;align-items:flex-start}.profile-payment-history-toggle>span:last-child{text-align:right}.treasury-request-detail table{min-width:420px}.payment-request-group .request-actions{width:100%}.payment-request-group .request-actions .btn{flex:1}}

/* v0.7.67 · método de pago alineado en móvil */
.payment-methods{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
}
.payment-methods label{
  width:100%;
  min-width:0;
  min-height:46px;
  box-sizing:border-box;
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:9px!important;
  margin:0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#202623;
  color:var(--cream);
  font-size:1rem;
  line-height:1.2;
  font-weight:700;
  cursor:pointer;
}
.modal-form .payment-methods input[type="radio"]{
  appearance:auto;
  -webkit-appearance:radio;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  max-width:18px!important;
  padding:0!important;
  margin:0!important;
  flex:0 0 18px;
  accent-color:var(--gold-bright);
}
.payment-methods label:has(input[type="radio"]:checked){
  border-color:var(--gold-bright);
  background:var(--gold-soft);
}
@media(max-width:480px){
  .payment-methods{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .payment-methods label{
    min-height:46px;
    padding:10px;
    font-size:.94rem;
  }
}


/* v0.7.68 · comprobante según método de pago */
[data-payment-receipt-field][hidden]{display:none!important;}
@media(max-width:720px){
  .modal-form .paste-zone[data-payment-receipt-field]{display:none!important;}
}

/* v0.7.70 · Filtro de Plantel por liga. */
.squad-filter-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 28px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel);
}
.squad-filter-toolbar label {
  display: grid;
  gap: 7px;
  min-width: min(100%, 280px);
  color: var(--muted);
  font-size: .86rem;
  font-weight: 700;
}
.squad-filter-toolbar label > span { color: var(--cream); }
.squad-filter-toolbar select {
  width: 100%;
  min-height: 44px;
  padding: 9px 36px 9px 12px;
  border: 1px solid rgba(219,166,56,.34);
  border-radius: 10px;
  background-color: rgba(255,255,255,.045);
  color: var(--cream);
  font: inherit;
  cursor: pointer;
}
.squad-filter-toolbar select:focus {
  outline: 2px solid rgba(219,166,56,.35);
  outline-offset: 2px;
  border-color: var(--gold);
}
.squad-filter-context {
  display: grid;
  gap: 2px;
  text-align: right;
}
.squad-filter-context strong { color: var(--cream); }
.squad-filter-context span { color: var(--muted); font-size: .86rem; }
@media (max-width: 700px) {
  .squad-filter-toolbar {
    align-items: stretch;
    flex-direction: column;
    padding: 14px;
    margin-bottom: 22px;
  }
  .squad-filter-toolbar label { min-width: 0; width: 100%; }
  .squad-filter-toolbar select { min-height: 48px; font-size: 16px; }
  .squad-filter-context { text-align: left; }
}


/* v0.7.73 · datos de transferencia */
.profile-payment-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.transfer-settings-card{margin-top:0}
.transfer-settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.transfer-settings-fields label{display:grid;gap:7px;min-width:0;font-weight:700}
.transfer-settings-fields input{width:100%;min-width:0}
.transfer-detail-card{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.025);grid-column:1/-1;width:100%}
.transfer-detail-row{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:16px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.transfer-detail-row:last-child{border-bottom:0}.transfer-detail-row span{color:var(--muted);font-weight:600}.transfer-detail-row strong{overflow-wrap:anywhere;text-align:right}
.transfer-detail-note{grid-column:1/-1;margin:4px 0 0;color:var(--muted);line-height:1.5}
@media(max-width:760px){.profile-payment-header-actions{display:grid;grid-template-columns:1fr;width:100%}.profile-payment-header-actions .btn{width:100%}.transfer-settings-fields{grid-template-columns:1fr}.transfer-detail-row{grid-template-columns:1fr;gap:3px}.transfer-detail-row strong{text-align:left}.transfer-detail-note{font-size:.92rem}}


/* Galería: visor dentro de la página */
.match-gallery-item { padding: 0; cursor: zoom-in; font: inherit; color: inherit; }
.gallery-lightbox[hidden] { display: none !important; }
.gallery-lightbox { position: fixed; inset: 0; z-index: 3000; display: grid; grid-template-columns: minmax(52px, 88px) minmax(0, 1fr) minmax(52px, 88px); align-items: center; background: rgba(0,0,0,.92); padding: max(18px, env(safe-area-inset-top)) 12px max(18px, env(safe-area-inset-bottom)); }
.gallery-lightbox-stage { margin: 0; min-width: 0; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.gallery-lightbox-stage img { display: block; max-width: 100%; max-height: calc(100vh - 86px); width: auto; height: auto; object-fit: contain; border-radius: 10px; box-shadow: 0 16px 50px rgba(0,0,0,.35); }
.gallery-lightbox-counter { color: #fff; font-weight: 700; font-size: .95rem; letter-spacing: .04em; }
.gallery-lightbox-close, .gallery-lightbox-nav { border: 0; color: #fff; background: rgba(255,255,255,.12); cursor: pointer; display: grid; place-items: center; }
.gallery-lightbox-close { position: absolute; top: max(12px, env(safe-area-inset-top)); right: 14px; width: 44px; height: 44px; border-radius: 999px; font-size: 2rem; line-height: 1; z-index: 2; }
.gallery-lightbox-nav { width: 52px; height: 64px; justify-self: center; border-radius: 12px; font-size: 2.5rem; line-height: 1; }
.gallery-lightbox-nav[hidden] { visibility: hidden; }
@media (hover:hover) { .gallery-lightbox-close:hover, .gallery-lightbox-nav:hover { background: rgba(255,255,255,.22); } }
@media (max-width: 640px) {
  .gallery-lightbox { grid-template-columns: 44px minmax(0,1fr) 44px; padding-inline: 4px; }
  .gallery-lightbox-stage img { max-height: calc(100vh - 104px); border-radius: 6px; }
  .gallery-lightbox-nav { width: 40px; height: 56px; border-radius: 10px; font-size: 2rem; }
  .gallery-lightbox-close { width: 40px; height: 40px; right: 8px; }
}

/* v0.7.80 · eventos de pago, selección manual y tesorería por liga */
.profile-payment-events{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}
.profile-payment-event{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(255,255,255,.025)}
.profile-payment-event.is-enrolled{border-color:rgba(62,175,99,.35);background:rgba(62,175,99,.06)}
.profile-payment-event h4{margin:4px 0 6px;font-size:1.08rem}.profile-payment-event p{margin:0;color:var(--muted);line-height:1.45}
.payment-event-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.payment-event-meta strong{font-size:1.05rem}.payment-event-meta span{color:var(--muted)}
.payment-event-dates{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:9px}.payment-event-dates span{font-size:.86rem;color:var(--muted)}
.payment-selection-list{display:grid;gap:9px;max-height:340px;overflow:auto;padding-right:3px}
.payment-select-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:11px;padding:12px;cursor:pointer;background:rgba(255,255,255,.025)}
.payment-select-row:has(input:checked){border-color:rgba(219,166,56,.55);background:rgba(219,166,56,.08)}
.payment-select-row input{width:18px;height:18px}.payment-select-row span{display:grid;gap:2px}.payment-select-row small{color:var(--muted)}.payment-select-row b{white-space:nowrap}
.payment-selection-total{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.payment-selection-total strong{font-size:1.2rem}
.payment-event-due-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.payment-event-due-grid label[hidden]{display:none!important}
.treasury-debt-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:thin}
.treasury-debt-tab{white-space:nowrap}.treasury-debt-tab.active{border-color:var(--gold);color:var(--cream);background:rgba(219,166,56,.12)}.treasury-debt-tab span{opacity:.7;margin-left:4px}
.payment-request-main small{display:block}.treasury-request-detail td small{display:block;margin-top:3px;color:var(--muted)}
@media(max-width:760px){.profile-payment-events{grid-template-columns:1fr}.profile-payment-event{flex-direction:column}.profile-payment-event>div:last-child,.profile-payment-event>div:last-child .btn{width:100%}.payment-event-due-grid{grid-template-columns:1fr}.payment-select-row{grid-template-columns:auto minmax(0,1fr)}.payment-select-row b{grid-column:2}.treasury-debt-tabs{margin-inline:-2px}}

/* v0.7.81 - gestión manual de eventos de pago privados */
.payment-event-player-list{display:grid;gap:8px;max-height:52vh;overflow:auto;padding:4px 2px}
.payment-event-player-row{align-items:flex-start}
.payment-event-player-row span{display:grid;gap:2px}
.payment-event-player-row small{color:var(--muted)}

/* v0.7.82 · selectores de jugadores compactos y sin desborde en móvil */
.payment-event-player-list{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
}
.payment-event-player-row{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.02);
}
.payment-event-player-row:has(input:checked){
  border-color:var(--line-gold);
  background:var(--gold-soft);
}
.payment-event-player-row>input{
  flex:0 0 auto;
  width:18px!important;
  height:18px!important;
  min-height:18px!important;
  margin:1px 0 0!important;
  padding:0!important;
}
.payment-event-player-row>span{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.payment-event-player-row strong,
.payment-event-player-row small{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}

@media(max-width:760px){
  .editor-modal:has(.payment-event-player-list){
    width:calc(100vw - 18px)!important;
    max-width:calc(100vw - 18px)!important;
    overflow-x:hidden!important;
  }
  .editor-modal:has(.payment-event-player-list) .modal-form{
    width:100%;
    min-width:0;
    max-width:100%;
    overflow-x:hidden;
    padding:12px!important;
    gap:8px!important;
  }
  .editor-modal:has(.payment-event-player-list) .admin-callout{
    margin-bottom:6px;
    padding:9px 10px;
    font-size:.78rem;
    line-height:1.3;
  }
  .payment-event-player-list{
    gap:5px;
    max-height:55dvh;
    padding:0 2px 0 0;
  }
  .payment-event-player-row{
    display:grid!important;
    grid-template-columns:18px minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
    padding:7px 8px;
    margin:0!important;
  }
  .payment-event-player-row>input{
    width:17px!important;
    height:17px!important;
    min-height:17px!important;
    margin:0!important;
  }
  .payment-event-player-row>span{
    display:grid!important;
    gap:1px!important;
    line-height:1.15;
  }
  .payment-event-player-row strong{
    font-size:.86rem;
    line-height:1.12;
  }
  .payment-event-player-row small{
    font-size:.69rem;
    line-height:1.18;
  }
  .editor-modal:has(.payment-event-player-list) .modal-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%;
  }
  .editor-modal:has(.payment-event-player-list) .modal-actions .btn{
    width:100%;
    min-width:0;
    min-height:38px;
    padding:7px 9px;
    font-size:.78rem;
  }

  /* El selector de citados usa la misma densidad visual en teléfonos. */
  .admin-callup-list{
    min-width:0;
    max-width:100%;
    overflow-x:hidden;
    gap:6px;
  }
  .admin-callup-player{
    width:100%;
    max-width:100%;
    min-width:0;
    padding:8px 9px;
    gap:7px;
  }
  .admin-callup-select{
    gap:8px;
    min-width:0;
  }
  .admin-callup-select input{
    width:17px!important;
    height:17px!important;
    min-height:17px!important;
  }
  .admin-callup-player-copy strong{
    font-size:.86rem;
    line-height:1.12;
  }
  .admin-callup-player-copy small{
    font-size:.69rem;
    line-height:1.18;
    overflow-wrap:anywhere;
  }
  .admin-callup-number{
    padding-left:25px;
    min-width:0;
  }
  .admin-callup-number input{
    min-width:0;
    min-height:38px!important;
    padding:7px 9px!important;
  }
}
\n\n/* v0.7.83 · acciones compactas en tablas admin: no cortar palabras dentro de botones */\n.admin-block .action-cell,\n.admin-block .admin-table-actions{\n  align-items:center;\n  gap:5px;\n}\n.admin-block .action-cell .btn,\n.admin-block td > .btn,\n.admin-block td .btn-small,\n.manager-table .btn,\n.treasury-balance-table .btn{\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  width:auto;\n  max-width:none;\n  min-width:max-content;\n  white-space:nowrap;\n  overflow-wrap:normal;\n  word-break:keep-all;\n  hyphens:none;\n  line-height:1.05;\n}\n.admin-block .action-cell .btn-small,\n.admin-block td .btn-small{\n  min-height:31px;\n  padding:6px 8px;\n  font-size:.76rem;\n}\n\n@media(max-width:760px){\n  .admin-block .table-scroll th,\n  .admin-block .table-scroll td{\n    padding-left:5px;\n    padding-right:5px;\n  }\n  .admin-block .action-cell,\n  .admin-block .admin-table-actions{\n    min-width:86px;\n    max-width:150px;\n    display:flex;\n    flex-wrap:wrap;\n    align-content:center;\n    gap:4px;\n  }\n  .admin-block .action-cell .btn,\n  .admin-block td > .btn,\n  .admin-block td .btn-small,\n  .manager-table .btn,\n  .treasury-balance-table .btn{\n    min-width:max-content!important;\n    width:auto!important;\n    max-width:none!important;\n    white-space:nowrap!important;\n    overflow-wrap:normal!important;\n    word-break:keep-all!important;\n    padding:5px 7px;\n    font-size:.7rem;\n  }\n  .admin-block .admin-table-actions{\n    min-width:108px;\n  }\n}\n

/* v0.7.85 · correo de notificaciones de Tesorería separado del acceso */
.treasurer-notification-email{display:grid;gap:6px;margin-top:14px;max-width:440px;font-weight:700}
.treasurer-notification-email input{width:100%;min-width:0}
.settings-field-help{margin:7px 0 0;color:var(--muted,#6b7280);font-size:.92em;line-height:1.35}
.account-settings-fields input[readonly]{background:rgba(127,127,127,.08);cursor:not-allowed;opacity:.82}

/* Tesorería: desglose visible de deuda por eventos */
.treasury-event-debt-total{display:flex;flex-direction:column;gap:5px;min-width:150px}
.treasury-event-debt-list{display:flex;flex-direction:column;gap:5px}
.treasury-event-debt-item{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:1px;padding-top:5px;border-top:1px solid rgba(255,255,255,.08)}
.treasury-event-debt-item span{min-width:0;overflow-wrap:break-word;word-break:normal;font-size:.88em;line-height:1.15}
.treasury-event-debt-item strong{white-space:nowrap;font-size:.9em}
.treasury-event-debt-item small{grid-column:1/-1;opacity:.72;line-height:1.1}
@media(max-width:760px){
  .treasury-event-debt-total{min-width:125px}
  .treasury-event-debt-item{grid-template-columns:minmax(0,1fr);gap:2px}
  .treasury-event-debt-item strong,.treasury-event-debt-item small{grid-column:1;white-space:normal}
}

/* v0.7.88 · Recomendaciones estadísticas para Jugador del Mes */
.player-month-recommendations{margin:12px 0 18px;padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025)}
.player-month-recommendations-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.player-month-recommendations-head h3{margin:2px 0 0;font-size:1.05rem}
.player-month-recommendation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.player-month-recommendation-card{display:flex;gap:10px;min-width:0;padding:11px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.player-month-recommendation-rank{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;font-weight:800;background:var(--surface-strong)}
.player-month-recommendation-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.player-month-recommendation-copy>strong{font-size:1rem;line-height:1.08}
.player-month-recommendation-copy>small,.player-month-methodology{opacity:.76}
.player-month-recommendation-copy p{margin:3px 0 0;font-size:.88rem;line-height:1.25}
.player-month-recommendation-stats{display:flex;flex-wrap:wrap;gap:5px 9px;margin-top:5px;font-size:.82rem}
.player-month-recommendation-stats span{white-space:nowrap}
.player-month-methodology{display:block;margin:0 0 10px;line-height:1.3}
@media (max-width:700px){
  .player-month-recommendations{padding:11px;margin-inline:0}
  .player-month-recommendations-head{align-items:stretch;flex-direction:column}
  .player-month-recommendations-head .btn{align-self:flex-start}
  .player-month-recommendation-grid{grid-template-columns:1fr}
  .player-month-recommendation-card{width:100%;box-sizing:border-box}
}

/* v0.7.89 · Próximos cumpleaños exclusivos del Admin */
.admin-birthday-section{overflow:hidden}
.admin-birthday-count{font-size:.82rem;font-weight:800;opacity:.72;white-space:nowrap}
.admin-birthday-carousel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0}
.admin-birthday-card{display:flex;align-items:center;gap:12px;min-width:0;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.admin-birthday-photo{flex:0 0 62px;width:62px;height:62px;border-radius:50%;object-fit:cover;overflow:hidden}
.admin-birthday-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-birthday-copy>span{font-size:.78rem;opacity:.72;text-transform:capitalize}
.admin-birthday-copy>strong{font-size:1rem;line-height:1.08;overflow-wrap:break-word}
.admin-birthday-copy>small{opacity:.7}
.admin-birthday-copy>b{margin-top:4px;font-size:.86rem}
@media(max-width:760px){
  .admin-birthday-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;gap:10px;padding:1px 2px 8px;scrollbar-width:none}
  .admin-birthday-carousel::-webkit-scrollbar{display:none}
  .admin-birthday-card{flex:0 0 min(84vw,310px);scroll-snap-align:start;padding:11px}
  .admin-birthday-photo{flex-basis:54px;width:54px;height:54px}
}


/* v0.7.91 · botones Admin siempre horizontales y ajustados al texto */
.admin-block .btn,
body:has(.admin-tabs) .modal-form .btn,
body:has(.admin-tabs) .button-row .btn,
body:has(.admin-tabs) .candidate-row-actions .btn {
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:max-content!important;
  min-width:max-content!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:keep-all!important;
  hyphens:none!important;
}
.admin-block .button-row,
.admin-block .action-cell,
.admin-block .candidate-row-actions,
.admin-block .admin-table-actions,
body:has(.admin-tabs) .modal-actions {
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:center!important;
  gap:7px!important;
}
@media(max-width:760px){
  .admin-block .btn,
  body:has(.admin-tabs) .modal-form .btn,
  body:has(.admin-tabs) .button-row .btn,
  body:has(.admin-tabs) .candidate-row-actions .btn {
    flex:0 0 auto!important;
    width:max-content!important;
    min-width:max-content!important;
    white-space:nowrap!important;
  }
}

/* v0.7.92 · Jugador del Mes: estadísticas compactas y separación de selectores */
.player-month-recommendations {
  height: auto !important;
  min-height: 0 !important;
  align-self: flex-start;
  margin-bottom: 24px;
}
.player-month-recommendation-grid {
  align-items: start;
  grid-auto-rows: max-content;
}
.player-month-recommendation-card {
  align-self: start;
  height: auto !important;
  min-height: 0 !important;
}
.player-month-recommendation-copy {
  justify-content: flex-start;
}
.player-month-recommendations + label {
  margin-top: 8px;
}
@media(max-width:700px){
  .player-month-recommendations {
    margin-bottom: 20px;
  }
  .player-month-recommendation-card {
    padding-block: 10px;
  }
  .player-month-recommendations + label {
    margin-top: 6px;
  }
}


/* v0.7.93 · Jugador del Mes: modal móvil completo + fotografía 4:5 por candidato */
.player-month-carousel-photo{
  position:relative;
  aspect-ratio:4/5;
  border-radius:20px;
  padding:3px;
  overflow:hidden;
  background:linear-gradient(145deg,var(--gold-bright),rgba(219,166,56,.18) 34%,rgba(255,255,255,.09) 56%,var(--gold));
  box-shadow:0 16px 34px rgba(0,0,0,.28),0 0 0 1px rgba(219,166,56,.22);
}
.player-month-carousel-photo::before{
  content:"";position:absolute;inset:8px;z-index:1;pointer-events:none;border:1px solid rgba(255,222,140,.34);border-radius:14px;
}
.player-month-carousel-photo img{position:relative;z-index:0;border-radius:16px;display:block;}
.player-month-admin-candidates{display:grid;gap:16px;margin-top:8px;}
.player-month-admin-candidate{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.018);}
.player-month-admin-photo-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center;}
.player-month-admin-photo-preview{width:112px;aspect-ratio:4/5;border:2px dashed rgba(219,166,56,.5);border-radius:14px;display:grid;place-items:center;overflow:hidden;background:rgba(0,0,0,.22);color:var(--gold-bright);font-weight:800;letter-spacing:.08em;}
.player-month-admin-photo-preview.has-photo{border-style:solid;padding:2px;background:linear-gradient(145deg,var(--gold-bright),rgba(219,166,56,.18),var(--gold));}
.player-month-admin-photo-preview img{width:100%;height:100%;object-fit:cover;border-radius:10px;display:block;}
@media(max-width:700px){
  .player-month-dialog{box-sizing:border-box;width:100dvw!important;max-width:100dvw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;border-radius:0!important;}
  .player-month-dialog-content{box-sizing:border-box;width:100%;height:100dvh;max-height:100dvh;padding:10px 10px max(12px,env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;}
  .player-month-dialog-head{box-sizing:border-box;width:100%;top:-10px;padding:12px 4px 10px;margin-bottom:4px;}
  .player-month-dialog .player-month-public{box-sizing:border-box;width:100%;height:auto;min-height:calc(100dvh - 88px);display:block;overflow:hidden;}
  .player-month-carousel-shell{box-sizing:border-box;width:100%;height:auto;min-height:0;margin-top:8px;display:block;overflow:hidden;}
  .player-month-carousel-track{box-sizing:border-box;width:100%;height:auto;gap:0;overflow-x:auto;overflow-y:visible;scroll-padding-inline:0;}
  .player-month-slide{box-sizing:border-box;flex:0 0 100%;width:100%;max-width:100%;height:auto!important;max-height:none!important;min-height:calc(100dvh - 112px);padding:14px 12px 18px;gap:12px;grid-template-columns:minmax(0,1fr);align-content:start;align-items:start;overflow:hidden;border-radius:16px;}
  .player-month-slide-kicker{justify-self:end;max-width:100%;white-space:nowrap;}
  .player-month-carousel-photo{box-sizing:border-box;width:min(62vw,240px)!important;max-width:100%;max-height:none!important;margin:8px auto 2px;}
  .player-month-slide-copy{box-sizing:border-box;width:100%;min-width:0;gap:8px;}
  .player-month-slide-copy h4{max-width:100%;overflow-wrap:anywhere;}
  .player-month-stat-grid{box-sizing:border-box;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .player-month-stat-grid div{box-sizing:border-box;min-width:0;padding:10px;}
  .player-month-vote-slide{min-height:calc(100dvh - 112px);}
  .vote-final-panel{box-sizing:border-box;width:100%;max-width:100%;max-height:none;padding:0;}
  .vote-options,.vote-submit-zone{box-sizing:border-box;width:100%;max-width:100%;}
  .player-month-admin-photo-row{grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:start;}
  .player-month-admin-photo-preview{width:88px;}
}

/* v0.7.95 · Jugador del Mes: margen inferior móvil reforzado */
@media (max-width:700px) {
  .player-month-dialog {
    width:100%!important;
    max-width:100%!important;
    height:100svh!important;
    max-height:100svh!important;
    margin:0!important;
    inset:0!important;
    border-radius:0!important;
    overflow:hidden!important;
  }
  .player-month-dialog-content {
    width:100%;
    height:100%;
    max-height:100%;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    padding:12px 14px max(72px,calc(env(safe-area-inset-bottom) + 56px));
    overscroll-behavior:contain;
  }
  .player-month-dialog-head {
    position:sticky;
    top:0;
    z-index:20;
    width:100%;
    margin:0 0 10px;
    padding:10px 0 12px;
    background:linear-gradient(180deg,var(--bg) 80%,rgba(0,0,0,0));
  }
  .player-month-dialog .player-month-public {
    width:100%;
    height:auto;
    min-height:0;
    padding-bottom:32px;
    overflow:visible;
  }
  .player-month-carousel-shell {
    width:100%;
    height:auto;
    min-height:0;
    margin-top:8px;
    overflow:hidden;
  }
  .player-month-carousel-track {
    width:100%;
    height:auto;
    min-height:0;
    align-items:flex-start;
    overflow-x:auto;
    overflow-y:visible;
  }
  .player-month-slide {
    flex:0 0 100%;
    width:100%;
    max-width:100%;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:14px 12px 44px;
    gap:10px;
    align-content:start;
    align-items:start;
    overflow:hidden;
  }
  .player-month-slide-kicker {
    position:static!important;
    top:auto!important;
    right:auto!important;
    justify-self:end;
    align-self:start;
    margin:0 0 2px auto;
    max-width:100%;
    white-space:nowrap;
  }
  .player-month-carousel-photo {
    width:min(56vw,218px)!important;
    max-width:78%!important;
    height:auto!important;
    max-height:none!important;
    margin:0 auto 4px!important;
  }
  .player-month-slide-copy {
    width:100%;
    min-width:0;
    gap:7px;
  }
  .player-month-slide-copy > .eyebrow {
    margin-top:2px;
    text-align:center;
  }
  .player-month-slide-copy h4 {
    margin:0 0 4px;
    font-size:1.28rem;
    line-height:1.08;
    text-align:center;
    overflow-wrap:normal;
    word-break:normal;
  }
  .player-month-stat-grid {
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-bottom:2px;
  }
  .player-month-stat-grid div {
    min-width:0;
    padding:9px 10px;
  }
  .player-month-vote-slide {
    min-height:0!important;
    padding-bottom:46px;
  }
  .vote-final-panel {
    min-height:0;
    max-height:none;
  }
}

@media (max-width:390px) {
  .player-month-dialog-content { padding-inline:10px; }
  .player-month-carousel-photo { width:min(52vw,190px)!important; }
  .player-month-slide { padding-inline:10px; }
  .player-month-stat-grid div { padding:8px 9px; }
}

/* v0.7.96 · Jugador del Mes: respiración inferior visible en Safari móvil */
@media (max-width:700px) {
  .player-month-dialog-content {
    padding-bottom:max(104px,calc(env(safe-area-inset-bottom) + 88px))!important;
    scroll-padding-bottom:max(104px,calc(env(safe-area-inset-bottom) + 88px));
  }
  .player-month-dialog .player-month-public {
    padding-bottom:max(72px,calc(env(safe-area-inset-bottom) + 56px))!important;
  }
  .player-month-carousel-track {
    padding-bottom:16px;
  }
  .player-month-slide,
  .player-month-vote-slide {
    padding-bottom:max(92px,calc(env(safe-area-inset-bottom) + 72px))!important;
  }
  .player-month-slide::after {
    content:"";
    display:block;
    width:100%;
    height:28px;
    grid-column:1 / -1;
  }
}

/* En teléfonos con poca altura útil, compacta el candidato para que el aire inferior sea visible sin tapar contenido. */
@media (max-width:700px) and (max-height:850px) {
  .player-month-dialog-content { padding-top:8px; }
  .player-month-dialog-head { margin-bottom:6px; padding-top:7px; padding-bottom:8px; }
  .player-month-carousel-shell { margin-top:4px; }
  .player-month-slide { padding-top:10px; gap:7px; }
  .player-month-slide-kicker { margin-bottom:0; }
  .player-month-carousel-photo {
    width:min(46vw,176px)!important;
    max-width:68%!important;
    margin-bottom:2px!important;
  }
  .player-month-slide-copy { gap:5px; }
  .player-month-slide-copy h4 { font-size:1.18rem; margin-bottom:2px; }
  .player-month-stat-grid { gap:6px; margin-top:2px; }
  .player-month-stat-grid div { padding:7px 9px; }
}

@media (max-width:390px) and (max-height:850px) {
  .player-month-carousel-photo { width:min(44vw,164px)!important; }
}

/* v0.7.97 · Jugador del Mes: margen exterior real bajo la tarjeta móvil */
@media (max-width:700px) {
  .player-month-carousel-shell {
    box-sizing:border-box;
    padding-bottom:max(42px,calc(env(safe-area-inset-bottom) + 28px))!important;
  }
  .player-month-carousel-track {
    box-sizing:border-box;
    padding-bottom:0!important;
  }
  .player-month-slide,
  .player-month-vote-slide {
    box-sizing:border-box;
    margin-bottom:max(34px,calc(env(safe-area-inset-bottom) + 22px))!important;
  }
  .player-month-dialog .player-month-public {
    box-sizing:border-box;
    padding-bottom:max(34px,calc(env(safe-area-inset-bottom) + 22px))!important;
  }
}

@media (max-width:700px) and (max-height:850px) {
  .player-month-carousel-shell {
    padding-bottom:max(34px,calc(env(safe-area-inset-bottom) + 22px))!important;
  }
  .player-month-slide,
  .player-month-vote-slide {
    margin-bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px))!important;
  }
}

/* v0.7.98 · Jugador del Mes: layout móvil consistente Safari/Chrome */
@media (max-width:700px) {
  .player-month-dialog {
    width:100%!important;
    max-width:100%!important;
    height:100vh!important;
    max-height:100vh!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    inset:0!important;
    border-radius:0!important;
    overflow:hidden!important;
  }
  @supports not (height: 100dvh) {
    .player-month-dialog {
      height:100svh!important;
      max-height:100svh!important;
    }
  }

  .player-month-dialog-content {
    box-sizing:border-box;
    width:100%;
    height:100%;
    min-height:0;
    max-height:100%;
    overflow-y:auto;
    overflow-x:hidden;
    padding:10px 12px max(28px,calc(env(safe-area-inset-bottom) + 18px))!important;
    scroll-padding-bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px));
    -webkit-overflow-scrolling:touch;
  }

  .player-month-dialog-head {
    position:sticky;
    top:0;
    z-index:20;
    margin:0 0 10px;
    padding:10px 0 12px;
  }

  .player-month-dialog .player-month-public {
    box-sizing:border-box;
    width:100%;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    overflow:visible!important;
  }

  .player-month-carousel-shell {
    box-sizing:border-box;
    width:100%;
    min-height:0!important;
    height:auto!important;
    margin:6px 0 0!important;
    padding:0 0 max(28px,calc(env(safe-area-inset-bottom) + 18px))!important;
    overflow:hidden;
  }

  .player-month-carousel-track {
    box-sizing:border-box;
    width:100%;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    align-items:flex-start!important;
    overflow-x:auto;
    overflow-y:visible;
  }

  .player-month-slide,
  .player-month-vote-slide {
    box-sizing:border-box;
    flex:0 0 100%;
    width:100%;
    max-width:100%;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:14px 12px 18px!important;
    gap:9px;
    align-content:start;
    align-items:start;
    overflow:hidden;
    border-radius:16px;
  }

  .player-month-slide::after { content:none!important; display:none!important; }

  .player-month-slide-kicker {
    position:static!important;
    justify-self:end;
    align-self:start;
    margin:0 0 2px auto!important;
    max-width:100%;
    white-space:nowrap;
  }

  .player-month-carousel-photo {
    box-sizing:border-box;
    width:clamp(168px,50vw,210px)!important;
    max-width:70%!important;
    height:auto!important;
    margin:0 auto 3px!important;
  }

  .player-month-slide-copy {
    box-sizing:border-box;
    width:100%;
    min-width:0;
    gap:6px;
  }

  .player-month-slide-copy > .eyebrow { margin-top:1px; text-align:center; }
  .player-month-slide-copy h4 { margin:0 0 3px; text-align:center; }

  .player-month-stat-grid {
    box-sizing:border-box;
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin:0!important;
  }

  .player-month-stat-grid div { box-sizing:border-box; min-width:0; padding:9px 10px; }
}

@media (max-width:700px) and (max-height:760px) {
  .player-month-dialog-head { margin-bottom:6px; padding-top:7px; padding-bottom:8px; }
  .player-month-carousel-photo { width:clamp(150px,43vw,176px)!important; max-width:62%!important; }
  .player-month-slide,.player-month-vote-slide { padding-top:10px!important; padding-bottom:14px!important; gap:6px; }
  .player-month-slide-copy { gap:4px; }
  .player-month-slide-copy h4 { font-size:1.16rem; }
  .player-month-stat-grid { gap:6px; }
  .player-month-stat-grid div { padding:7px 9px; }
}

/* v0.7.99 · Jugador del Mes: pantalla final de votación móvil a ancho/alto útil */
@media (max-width:700px) {
  .player-month-vote-slide {
    box-sizing:border-box;
    min-height:calc(100dvh - 104px)!important;
    height:auto!important;
    padding:14px 12px max(26px,calc(env(safe-area-inset-bottom) + 18px))!important;
    display:flex!important;
    align-items:stretch!important;
    overflow:visible!important;
  }

  .player-month-vote-slide .vote-final-panel {
    box-sizing:border-box;
    width:100%!important;
    max-width:none!important;
    min-height:calc(100dvh - 144px)!important;
    margin:0!important;
    padding:18px 16px!important;
    display:flex!important;
    flex-direction:column;
    justify-content:center;
    gap:16px!important;
    border:0;
  }

  .vote-final-heading {
    width:100%;
    gap:6px!important;
    padding:0 2px;
  }
  .vote-final-heading .eyebrow { font-size:.82rem; }
  .vote-final-heading h4 {
    font-size:clamp(1.45rem,6vw,1.9rem)!important;
    line-height:1.08;
    text-wrap:balance;
  }
  .vote-final-heading p {
    font-size:clamp(.92rem,3.8vw,1.05rem)!important;
    line-height:1.35;
    text-wrap:pretty;
  }

  .vote-options {
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }

  .vote-option {
    box-sizing:border-box;
    position:relative;
    width:100%;
    min-width:0;
    min-height:86px!important;
    padding:11px 40px 11px 10px!important;
    display:grid!important;
    grid-template-columns:54px minmax(0,1fr)!important;
    align-items:center;
    gap:10px!important;
    overflow:visible!important;
  }
  .vote-option-photo {
    width:54px!important;
    height:54px!important;
  }
  .vote-option-copy {
    min-width:0;
    overflow:visible;
  }
  .vote-option-copy strong {
    display:block!important;
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    -webkit-line-clamp:unset!important;
    -webkit-box-orient:initial!important;
    font-size:clamp(.92rem,3.7vw,1.08rem)!important;
    line-height:1.08!important;
    overflow-wrap:normal;
    word-break:normal;
  }
  .vote-option-copy small {
    display:block!important;
    margin-top:4px;
    font-size:clamp(.76rem,3vw,.9rem)!important;
    line-height:1.15;
    white-space:normal;
  }
  .vote-choice-mark {
    position:absolute!important;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    width:26px!important;
    height:26px!important;
  }

  .vote-submit-zone {
    width:100%!important;
    padding:14px!important;
    gap:10px!important;
    margin-top:2px;
  }
  .vote-selection-copy span { font-size:.82rem; }
  .vote-selection-copy strong {
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:1.02rem;
    line-height:1.2;
  }
  .vote-submit-btn {
    min-height:50px;
    font-size:1.05rem;
  }
  .vote-device-note {
    padding:0 8px;
    font-size:.82rem!important;
    line-height:1.32!important;
  }
}

/* En teléfonos realmente angostos prioriza legibilidad sobre la cuadrícula 2x2. */
@media (max-width:380px) {
  .player-month-vote-slide .vote-final-panel {
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .vote-options {
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .vote-option {
    min-height:72px!important;
  }
}

/* En móviles altos, distribuye mejor el contenido sin generar un vacío inferior. */
@media (max-width:700px) and (min-height:780px) {
  .player-month-vote-slide .vote-final-panel {
    justify-content:space-evenly;
  }
}

/* v0.7.100 · Jugador del Mes: selección final móvil estable en Chrome/Safari */
@media (max-width:700px) {
  .player-month-vote-slide {
    width:100%!important;
    min-height:auto!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }

  .player-month-vote-slide .vote-final-panel {
    width:100%!important;
    min-height:auto!important;
    padding:16px 12px 18px!important;
    justify-content:flex-start!important;
    gap:14px!important;
  }

  .vote-final-heading {
    max-width:100%!important;
    padding:0!important;
  }

  .vote-options {
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    gap:9px!important;
  }

  .vote-option {
    width:100%!important;
    max-width:none!important;
    min-height:74px!important;
    padding:10px 48px 10px 10px!important;
    grid-template-columns:58px minmax(0,1fr)!important;
    gap:12px!important;
    overflow:hidden!important;
  }

  .vote-option-photo {
    width:58px!important;
    height:58px!important;
    flex:0 0 58px!important;
  }

  .vote-option-copy {
    width:100%!important;
    min-width:0!important;
    padding-right:2px;
  }

  .vote-option-copy strong {
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(1rem,4.5vw,1.16rem)!important;
    line-height:1.08!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
  }

  .vote-option-copy small {
    font-size:clamp(.82rem,3.5vw,.98rem)!important;
    line-height:1.15!important;
    margin-top:4px!important;
  }

  .vote-choice-mark {
    right:12px!important;
    width:28px!important;
    height:28px!important;
  }

  .vote-submit-zone {
    width:100%!important;
    max-width:none!important;
    margin-top:3px!important;
    padding:14px 12px!important;
  }

  .vote-submit-btn {
    width:100%!important;
    min-height:52px!important;
  }

  .vote-device-note {
    margin:0!important;
    padding:0 4px 4px!important;
    white-space:normal!important;
  }
}

@media (max-width:700px) and (min-height:760px) {
  .player-month-vote-slide .vote-final-panel {
    justify-content:flex-start!important;
  }
}

/* v0.7.101 · Jugador del Mes: corrige desplazamiento lateral del paso final en móvil */
@media (max-width:700px) {
  .player-month-vote-slide {
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:100%!important;
    padding:10px 10px max(24px,calc(env(safe-area-inset-bottom) + 16px))!important;
    gap:10px!important;
  }

  .player-month-vote-slide > .player-month-slide-kicker {
    align-self:flex-start!important;
    justify-self:auto!important;
    width:auto!important;
    max-width:100%!important;
    margin:0 0 2px 0!important;
    flex:0 0 auto!important;
  }

  .player-month-vote-slide .vote-final-panel {
    flex:0 0 auto!important;
    align-self:stretch!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:14px 12px 16px!important;
    gap:12px!important;
  }

  .vote-final-heading,
  .vote-options,
  .vote-submit-zone,
  .vote-device-note {
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .vote-final-heading {
    text-align:left!important;
    padding:0 2px!important;
  }

  .vote-final-heading h4,
  .vote-final-heading p {
    text-align:left!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .vote-option {
    grid-template-columns:64px minmax(0,1fr)!important;
    min-height:82px!important;
    padding:10px 50px 10px 12px!important;
    gap:12px!important;
  }

  .vote-option-photo {
    width:64px!important;
    height:64px!important;
  }

  .vote-option-copy strong {
    font-size:clamp(1rem,4.6vw,1.2rem)!important;
    line-height:1.08!important;
  }

  .vote-option-copy small {
    font-size:clamp(.84rem,3.6vw,1rem)!important;
  }

  .vote-submit-zone {
    padding:14px!important;
  }

  .vote-device-note {
    padding:0 2px 4px!important;
    text-align:center!important;
  }
}


/* v0.7.102 · Paso final compacto: solo instrucción y confirmación visible antes */
@media (max-width:700px) {
  .player-month-vote-slide .vote-final-panel {
    padding-top:10px!important;
    gap:9px!important;
  }
  .vote-final-heading {
    padding:0 2px 2px!important;
    margin:0!important;
  }
  .vote-final-heading p {
    margin:0!important;
    font-size:clamp(.98rem,4vw,1.08rem)!important;
    line-height:1.3!important;
  }
  .vote-options {
    gap:8px!important;
  }
  .vote-option {
    min-height:76px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }
  .vote-option-photo {
    width:58px!important;
    height:58px!important;
  }
  .vote-option {
    grid-template-columns:58px minmax(0,1fr)!important;
  }
  .vote-submit-zone {
    margin-top:2px!important;
    padding:12px!important;
  }
}

/* v0.7.103 · Jugador del Mes: resultados fijos y actualización en vivo solo numérica */
.player-month-results-view {
  width:100%;
  min-height:0;
  display:block;
  overflow:visible;
}
.player-month-results-view .vote-results-final-panel {
  width:min(780px,100%);
  max-width:780px;
  min-height:0;
  margin:0 auto;
  padding:20px;
  display:grid;
  align-content:start;
  gap:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(0,0,0,.16));
}
.player-month-results-view .vote-final-heading {
  text-align:center;
  gap:6px;
}
.player-month-results-view .vote-final-heading small {
  color:var(--muted);
}
.vote-live-results-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.vote-live-result {
  min-width:0;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.025);
}
.vote-live-result .vote-option-photo {
  width:58px;
  height:58px;
  margin:0;
}
.vote-live-result-main {
  min-width:0;
  display:grid;
  gap:8px;
}
.vote-live-result-head {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
}
.vote-live-result .vote-option-copy strong {
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:break-word;
}
.vote-live-result-numbers {
  display:grid;
  justify-items:end;
  gap:1px;
  white-space:nowrap;
}
.vote-live-result-numbers strong {
  color:var(--gold-bright);
  font-size:1.05rem;
}
.vote-live-result-numbers span {
  color:var(--muted);
  font-size:.86rem;
}
.vote-live-result .vote-result-bar {
  margin:0;
}
.player-month-results-view .vote-total {
  margin:2px auto 0;
}
.player-month-live-total strong {
  color:var(--gold-bright);
}

@media(max-width:700px) {
  .player-month-dialog .player-month-results-view {
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    padding:0 0 max(24px,calc(env(safe-area-inset-bottom) + 16px));
  }
  .player-month-results-view .vote-results-final-panel {
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:14px 12px 18px!important;
    gap:12px!important;
    display:grid!important;
    justify-content:stretch!important;
    border-radius:16px;
  }
  .player-month-results-view .vote-final-heading {
    padding:0 2px!important;
    text-align:left!important;
  }
  .player-month-results-view .vote-final-heading h4,
  .player-month-results-view .vote-final-heading p,
  .player-month-results-view .vote-final-heading small {
    text-align:left!important;
  }
  .player-month-results-view .vote-final-heading h4 {
    font-size:clamp(1.35rem,5.6vw,1.75rem)!important;
  }
  .vote-live-results-list {
    grid-template-columns:1fr;
    gap:8px;
  }
  .vote-live-result {
    width:100%;
    min-height:78px;
    grid-template-columns:58px minmax(0,1fr);
    padding:10px 11px;
    gap:11px;
  }
  .vote-live-result .vote-option-photo {
    width:58px!important;
    height:58px!important;
  }
  .vote-live-result-head {
    gap:8px;
  }
  .vote-live-result .vote-option-copy strong {
    font-size:clamp(1rem,4.3vw,1.15rem)!important;
    line-height:1.08!important;
  }
  .vote-live-result .vote-option-copy small {
    display:block!important;
    font-size:clamp(.8rem,3.3vw,.94rem)!important;
  }
  .vote-live-result-numbers strong {
    font-size:.98rem;
  }
  .vote-live-result-numbers span {
    font-size:.8rem;
  }
  .player-month-results-view .vote-total.live {
    width:100%;
    margin:2px 0 0;
    border-radius:14px;
  }
}

@media(max-width:380px) {
  .vote-live-result {
    grid-template-columns:50px minmax(0,1fr);
    gap:9px;
    padding:9px;
  }
  .vote-live-result .vote-option-photo {
    width:50px!important;
    height:50px!important;
  }
  .vote-live-result-head {
    grid-template-columns:minmax(0,1fr);
  }
  .vote-live-result-numbers {
    grid-template-columns:auto auto;
    justify-content:start;
    justify-items:start;
    gap:8px;
  }
}

/* v0.7.104 · Jugador del Mes: huella de dispositivo para reforzar un voto por equipo. */


/* v0.7.105 · Jugador del Mes: distribución de elementos corregida en vista PC */
@media (min-width:701px) {
  .player-month-dialog {
    width:min(1100px, calc(100vw - 36px));
    max-width:1100px;
  }

  .player-month-dialog-content {
    padding:24px 28px 28px;
  }

  .player-month-vote-slide {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:26px 24px;
  }

  .player-month-vote-slide .vote-final-panel {
    width:min(900px, 100%);
    min-height:0;
    margin:0 auto;
    padding:28px 28px 24px;
    display:grid;
    align-content:start;
    gap:18px;
    border:1px solid var(--line);
    border-radius:22px;
    background:linear-gradient(145deg, rgba(255,255,255,.035), rgba(0,0,0,.18));
    box-shadow:inset 0 1px rgba(255,255,255,.03);
  }

  .player-month-vote-slide .vote-final-heading {
    max-width:680px;
    margin:0 auto;
    text-align:center;
  }

  .player-month-vote-slide .vote-final-heading p {
    font-size:1.02rem;
    line-height:1.45;
  }

  .player-month-vote-slide .vote-options,
  .player-month-vote-slide .vote-submit-zone,
  .player-month-vote-slide .vote-device-note {
    width:min(760px, 100%);
    margin-left:auto;
    margin-right:auto;
  }

  .player-month-vote-slide .vote-options {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
  }

  .player-month-vote-slide .vote-option {
    display:grid;
    grid-template-columns:64px minmax(0, 1fr) 28px;
    align-items:center;
    gap:14px;
    min-height:92px;
    padding:12px 14px;
  }

  .player-month-vote-slide .vote-option-photo {
    width:64px;
    height:64px;
    flex:0 0 64px;
  }

  .player-month-vote-slide .vote-option-copy {
    min-width:0;
    gap:3px;
  }

  .player-month-vote-slide .vote-option-copy strong {
    font-size:1.08rem;
    line-height:1.12;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }

  .player-month-vote-slide .vote-option-copy small {
    font-size:.9rem;
    line-height:1.2;
  }

  .player-month-vote-slide .vote-choice-mark {
    justify-self:end;
  }

  .player-month-vote-slide .vote-submit-zone {
    grid-template-columns:minmax(0, 1fr) auto;
    gap:16px;
    padding:14px 16px;
    align-items:center;
  }

  .player-month-vote-slide .vote-selection-copy {
    text-align:left;
  }

  .player-month-vote-slide .vote-selection-copy strong {
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.2;
  }

  .player-month-vote-slide .vote-submit-btn {
    min-width:220px;
    min-height:56px;
    font-size:1.1rem;
  }

  .player-month-vote-slide .vote-device-note {
    text-align:center;
    line-height:1.35;
  }
}


/* v0.7.106 · Jugador del Mes: elimina cuadros redundantes en vista PC */
@media (min-width:701px) {
  .player-month-vote-slide {
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    padding:10px 0 0 !important;
  }

  .player-month-vote-slide .vote-final-panel {
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    width:min(900px, 100%) !important;
    padding:0 !important;
  }

  .player-month-vote-slide .vote-final-heading,
  .player-month-vote-slide .vote-options,
  .player-month-vote-slide .vote-submit-zone,
  .player-month-vote-slide .vote-device-note {
    width:min(760px, 100%);
    margin-left:auto;
    margin-right:auto;
  }
}


/* v0.7.107 · Jugador del Mes: Google OIDC como identidad principal de votación */
.vote-google-gate{
  width:min(620px,100%);
  margin:auto;
  padding:34px 28px;
  display:grid;
  justify-items:center;
  gap:12px;
  text-align:center;
}
.vote-google-gate h4{margin:0;font-size:clamp(1.7rem,3vw,2.25rem)}
.vote-google-gate p{margin:0;max-width:540px;line-height:1.5;color:var(--muted)}
.vote-google-gate small{max-width:560px;line-height:1.4;color:var(--muted)}
.google-vote-button{min-height:44px;margin:8px 0 4px;display:grid;place-items:center}
.vote-google-verified{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;margin:6px auto 0;padding:6px 11px;border:1px solid rgba(72,170,111,.34);border-radius:999px;background:rgba(72,170,111,.1);color:#9fdeb7;font-size:.82rem;font-weight:800}
@media(max-width:700px){
  .vote-google-gate{padding:22px 10px;gap:10px}
  .vote-google-gate h4{font-size:1.65rem}
  .vote-google-gate p{font-size:.95rem}
  .vote-google-gate small{font-size:.78rem}
  .google-vote-button{width:100%;overflow:hidden}
}


/* v0.7.108 · Enlaces legales públicos requeridos por Google OAuth */
.footer-inner.footer-socials-only {
  flex-wrap:wrap;
}
.footer-legal-links {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding-top:14px;
  margin-top:4px;
  border-top:1px solid rgba(255,255,255,.06);
  color:var(--muted);
  font-size:.82rem;
}
.footer-legal-links a {
  color:var(--muted);
  text-decoration:none;
  transition:color .18s ease;
}
.footer-legal-links a:hover,.footer-legal-links a:focus-visible { color:var(--gold-bright); }
@media(max-width:700px){
  .footer-legal-links { flex-wrap:wrap; gap:6px 9px; padding-inline:8px; }
}


/* v0.7.109 · Normalización controlada de Inicio: móvil Chrome/Safari + escritorio */
/* Noticias: proporción visual única 3:2 en los bloques tratados. */
.hero-news-carousel .news-story-image,
.home-news-card .news-story-image,
.news-grid .news-story-image,
.news-page-track .news-story-image {
  aspect-ratio:3 / 2;
  height:auto!important;
  min-height:0;
}
.hero-news-carousel .news-story-image img,
.home-news-card .news-story-image img,
.news-grid .news-story-image img,
.news-page-track .news-story-image img {
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Inicio: espacios responden al contenido real, sin alturas reservadas. */
.home-player-signup,
.admin-birthday-section,
.player-month-teaser,
.hero-news-section,
.home-match-section {
  box-sizing:border-box;
}
.hero-news-section {
  min-height:0!important;
  align-content:start;
  padding-top:38px;
  padding-bottom:30px;
}
.home-player-signup {
  margin-top:26px!important;
}
.admin-birthday-section {
  margin-top:26px;
}
.player-month-teaser {
  margin-top:26px;
  margin-bottom:0;
}
.hero-news-section + .home-match-section {
  padding-top:28px!important;
}

/* Anotarse: jerarquía compacta y escudos más visibles. */
.home-player-signup .section-title-row {
  margin-bottom:10px;
}
.signup-carousel-shell {
  gap:8px;
}
.signup-card.signup-card-compact {
  padding:14px;
}
.signup-match-summary {
  padding:14px 16px;
}
.signup-team-logo {
  width:58px;
  height:58px;
  flex:0 0 58px;
}
.signup-live-list {
  margin-top:9px;
  padding-top:8px;
}
.signup-live-list ul {
  align-items:start;
}

/* Jugador del mes: candidatos siempre conservan 4:5. */
.player-month-preview-photo,
.player-month-carousel-photo,
.vote-option-photo,
.vote-live-result .vote-option-photo {
  overflow:hidden;
}
.player-month-carousel-photo {
  aspect-ratio:4 / 5;
  height:auto;
}
.player-month-carousel-photo img,
.vote-option-photo img,
.vote-live-result .vote-option-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
}

@media (max-width:700px) {
  .home-player-signup,
  .admin-birthday-section,
  .player-month-teaser {
    margin-top:18px!important;
  }
  .hero-news-section {
    width:calc(100% - 24px);
    padding:28px 0 18px!important;
  }
  .hero-news-head {
    margin-bottom:14px;
  }
  .hero-news-carousel {
    gap:12px;
    padding-bottom:10px;
  }
  .hero-news-section + .home-match-section {
    padding-top:20px!important;
  }

  .home-player-signup .section-title-row {
    margin-bottom:8px;
  }
  .signup-carousel-controls {
    min-height:32px;
    gap:7px;
  }
  .signup-carousel-arrow {
    width:32px;
    height:32px;
  }
  .signup-card.signup-card-compact {
    padding:10px;
  }
  .signup-card-compact .signup-head {
    margin-bottom:7px;
  }
  .signup-match-summary {
    grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr)!important;
    gap:6px!important;
    padding:11px 7px!important;
  }
  .signup-team {
    gap:5px;
  }
  .signup-team-logo {
    width:58px!important;
    height:58px!important;
    flex-basis:58px!important;
  }
  .signup-team strong {
    font-size:.78rem;
    line-height:1.08;
  }
  .signup-match-center {
    gap:3px;
  }
  .signup-match-center>span {
    font-size:1.06rem;
  }
  .signup-card-compact .signup-actions {
    margin-top:8px;
    gap:5px;
  }
  .signup-live-list {
    margin-top:8px;
    padding-top:7px;
  }
  .signup-live-list-head {
    margin-bottom:6px;
  }
  .signup-live-list ul {
    gap:4px;
  }
  .signup-live-list li {
    padding:6px 8px;
    min-height:32px;
  }

  .player-month-teaser {
    padding:15px!important;
    gap:12px!important;
  }
  .player-month-teaser-main {
    gap:12px;
  }
  .player-month-teaser-side {
    gap:9px;
  }
}

/* Teléfonos estrechos: conserva escudo protagonista sin comprimir VS/fecha. */
@media (max-width:390px) {
  .signup-match-summary {
    grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr)!important;
    padding-inline:5px!important;
  }
  .signup-team-logo {
    width:54px!important;
    height:54px!important;
    flex-basis:54px!important;
  }
  .signup-team strong {
    font-size:.73rem;
  }
}


/* v0.7.110 · Jugador del Mes: modal normalizado, sin scroll en PC y viewport real en móvil */
:root{
  --vote-surface:#101212;
  --vote-surface-soft:#141716;
  --vote-line:rgba(255,255,255,.105);
  --vote-line-gold:rgba(219,166,56,.34);
}

/* Superficie visual única: evita cambios de tono entre cajas anidadas. */
.player-month-dialog,
.player-month-dialog-content,
.player-month-dialog .player-month-public,
.player-month-carousel-shell,
.player-month-carousel-track,
.player-month-slide,
.player-month-vote-slide,
.player-month-vote-slide .vote-final-panel,
.player-month-vote-slide .vote-google-panel{
  background:var(--vote-surface)!important;
}
.player-month-dialog .player-month-public,
.player-month-carousel-shell,
.player-month-carousel-track,
.player-month-vote-slide,
.player-month-vote-slide .vote-final-panel,
.player-month-vote-slide .vote-google-panel{
  border-color:transparent!important;
  box-shadow:none!important;
}
.player-month-slide{
  border-color:var(--vote-line)!important;
}
.player-month-slide-kicker{
  background:rgba(219,166,56,.09)!important;
  border-color:var(--vote-line-gold)!important;
}
.vote-option,
.vote-submit-zone,
.vote-live-result{
  background:var(--vote-surface-soft)!important;
  border-color:var(--vote-line)!important;
}
.vote-option:hover{
  border-color:var(--vote-line-gold)!important;
  background:#171a19!important;
}
.vote-option:has(input:checked){
  border-color:rgba(219,166,56,.72)!important;
  background:rgba(219,166,56,.09)!important;
}

/* Escritorio: todo el flujo cabe en el viewport, sin scrollbar del modal. */
@media (min-width:701px){
  .player-month-dialog{
    box-sizing:border-box;
    width:min(1080px,calc(100vw - 44px))!important;
    max-width:1080px!important;
    height:min(760px,calc(100dvh - 34px))!important;
    max-height:calc(100dvh - 34px)!important;
    margin:auto!important;
    overflow:hidden!important;
    border-radius:20px!important;
  }
  .player-month-dialog-content{
    box-sizing:border-box;
    width:100%;
    height:100%;
    max-height:none!important;
    padding:18px 24px 22px!important;
    display:flex;
    flex-direction:column;
    overflow:hidden!important;
  }
  .player-month-dialog-head{
    position:relative!important;
    top:auto!important;
    flex:0 0 auto;
    margin:0 0 10px!important;
    padding:4px 0 10px!important;
    background:var(--vote-surface)!important;
  }
  .player-month-dialog-head h2{
    font-size:clamp(1.55rem,2vw,2rem);
    line-height:1.05;
  }
  .player-month-dialog .player-month-public{
    flex:1 1 auto;
    min-height:0!important;
    width:100%!important;
    display:flex!important;
    flex-direction:column;
    padding:0!important;
    overflow:hidden!important;
  }
  .player-month-carousel-shell{
    flex:1 1 auto;
    min-height:0!important;
    height:100%!important;
    margin:0!important;
    grid-template-columns:44px minmax(0,1fr) 44px!important;
    gap:10px!important;
    overflow:hidden!important;
  }
  .player-month-carousel-track{
    height:100%!important;
    min-height:0!important;
    align-items:stretch!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
  .player-month-slide{
    box-sizing:border-box;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    padding:18px 22px!important;
    grid-template-columns:minmax(190px,.76fr) minmax(0,1.24fr)!important;
    gap:24px!important;
    overflow:hidden!important;
    border-radius:16px!important;
  }
  .player-month-carousel-photo{
    width:auto!important;
    height:min(430px,calc(100dvh - 230px))!important;
    max-height:100%!important;
    aspect-ratio:4/5!important;
    margin:auto!important;
  }
  .player-month-slide-copy{
    align-content:center;
    gap:10px!important;
  }
  .player-month-slide-copy h4{
    font-size:clamp(1.65rem,2.4vw,2.15rem)!important;
    line-height:1.05;
  }
  .player-month-stat-grid{
    gap:9px!important;
  }
  .player-month-stat-grid div{
    padding:11px 13px!important;
  }
  .player-month-stat-grid strong{
    font-size:1.28rem!important;
  }
  .player-month-arrow{
    width:44px!important;
    height:44px!important;
  }
  .player-month-vote-slide{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:12px 18px!important;
  }
  .player-month-vote-slide>.player-month-slide-kicker{
    top:12px!important;
    right:14px!important;
  }
  .player-month-vote-slide .vote-final-panel{
    width:min(780px,100%)!important;
    max-width:780px!important;
    max-height:100%!important;
    min-height:0!important;
    padding:0!important;
    gap:12px!important;
    align-content:center!important;
    overflow:hidden!important;
  }
  .player-month-vote-slide .vote-final-heading{
    width:100%!important;
    max-width:680px!important;
  }
  .player-month-vote-slide .vote-options{
    width:100%!important;
    max-width:740px!important;
    gap:10px 12px!important;
  }
  .player-month-vote-slide .vote-option{
    min-height:76px!important;
    grid-template-columns:54px minmax(0,1fr) 26px!important;
    gap:11px!important;
    padding:9px 11px!important;
    border-radius:12px!important;
  }
  .player-month-vote-slide .vote-option-photo{
    width:54px!important;
    height:54px!important;
  }
  .player-month-vote-slide .vote-option-copy strong{
    font-size:1rem!important;
  }
  .player-month-vote-slide .vote-option-copy small{
    font-size:.82rem!important;
  }
  .player-month-vote-slide .vote-submit-zone{
    width:100%!important;
    max-width:740px!important;
    padding:10px 12px!important;
    border-radius:12px!important;
  }
  .player-month-vote-slide .vote-submit-btn{
    min-width:190px!important;
    min-height:46px!important;
    font-size:.98rem!important;
  }
  .player-month-vote-slide .vote-device-note{
    width:100%!important;
    max-width:700px!important;
    font-size:.76rem!important;
    line-height:1.25!important;
  }
  .vote-results-final-panel{
    height:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
    align-content:center!important;
  }
  .vote-live-results-list{
    gap:8px!important;
  }
  .vote-live-result{
    padding:9px 11px!important;
  }
}

/* Google: una sola tarjeta limpia, jerarquía clara y botón oficial bien integrado. */
.vote-google-gate{
  box-sizing:border-box;
  width:min(600px,100%)!important;
  margin:auto!important;
  padding:26px 28px!important;
  gap:11px!important;
  border:1px solid var(--vote-line)!important;
  border-radius:18px!important;
  background:linear-gradient(145deg,#141716,#101212)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.18)!important;
}
.vote-google-gate::before{
  content:'✓';
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid var(--vote-line-gold);
  background:rgba(219,166,56,.08);
  color:var(--gold-bright);
  font-weight:900;
  font-size:1.1rem;
}
.vote-google-gate .eyebrow{
  margin-top:1px;
}
.vote-google-gate h4{
  font-size:clamp(1.55rem,2.5vw,2rem)!important;
  line-height:1.05;
}
.vote-google-gate p{
  max-width:500px!important;
  font-size:.98rem;
  line-height:1.42!important;
}
.google-vote-button{
  width:100%;
  min-height:48px!important;
  margin:4px 0 2px!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  overflow:visible!important;
}
.google-vote-button>div{
  max-width:100%!important;
}
.vote-google-gate small{
  max-width:510px!important;
  font-size:.78rem;
  line-height:1.32!important;
}

/* Móvil Chrome/Safari: usa el viewport visible y no deja bandas/espacios residuales. */
@media (max-width:700px){
  .player-month-dialog{
    box-sizing:border-box!important;
    inset:0!important;
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    background:var(--vote-surface)!important;
  }
  @supports not (height:100dvh){
    .player-month-dialog{height:100svh!important;max-height:100svh!important}
  }
  .player-month-dialog-content{
    box-sizing:border-box!important;
    width:100%!important;
    height:100%!important;
    max-height:100%!important;
    min-height:0!important;
    padding:max(8px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom))!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    background:var(--vote-surface)!important;
  }
  .player-month-dialog-head{
    position:relative!important;
    top:auto!important;
    flex:0 0 auto!important;
    margin:0 0 6px!important;
    padding:6px 2px 8px!important;
    background:var(--vote-surface)!important;
  }
  .player-month-dialog-head h2{
    font-size:clamp(1.3rem,6vw,1.58rem)!important;
  }
  .player-month-dialog .player-month-public{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  .player-month-carousel-shell{
    flex:1 1 auto!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  .player-month-carousel-track{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    padding:0!important;
    align-items:stretch!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
  .player-month-slide,
  .player-month-vote-slide{
    box-sizing:border-box!important;
    flex:0 0 100%!important;
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:10px 10px 12px!important;
    gap:7px!important;
    overflow:hidden!important;
    border-radius:14px!important;
  }
  .player-month-slide-kicker{
    position:static!important;
    justify-self:end!important;
    align-self:flex-end!important;
    margin:0 0 1px auto!important;
    padding:4px 8px!important;
    font-size:.66rem!important;
  }
  .player-month-carousel-photo{
    width:auto!important;
    height:min(34dvh,240px)!important;
    max-width:62vw!important;
    max-height:240px!important;
    aspect-ratio:4/5!important;
    margin:0 auto 2px!important;
  }
  .player-month-slide-copy{
    width:100%!important;
    gap:5px!important;
  }
  .player-month-slide-copy h4{
    font-size:clamp(1.16rem,5.2vw,1.4rem)!important;
    margin:0!important;
  }
  .player-month-stat-grid{
    gap:6px!important;
  }
  .player-month-stat-grid div{
    padding:7px 8px!important;
  }
  .player-month-stat-grid strong{
    font-size:1.06rem!important;
  }
  .player-month-vote-slide{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:center!important;
  }
  .player-month-vote-slide .vote-final-panel{
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    max-height:100%!important;
    margin:0!important;
    padding:0!important;
    gap:8px!important;
    overflow:hidden!important;
  }
  .vote-google-gate{
    width:100%!important;
    max-width:520px!important;
    padding:18px 14px!important;
    gap:8px!important;
    border-radius:16px!important;
  }
  .vote-google-gate::before{
    width:36px;
    height:36px;
    font-size:1rem;
  }
  .vote-google-gate h4{
    font-size:clamp(1.35rem,6.5vw,1.62rem)!important;
  }
  .vote-google-gate p{
    font-size:.9rem!important;
    line-height:1.33!important;
  }
  .vote-google-gate small{
    font-size:.72rem!important;
    line-height:1.25!important;
  }
  .google-vote-button{
    min-height:44px!important;
    margin:3px 0!important;
  }
  .player-month-vote-slide .vote-options{
    width:100%!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  .player-month-vote-slide .vote-option{
    min-height:62px!important;
    grid-template-columns:48px minmax(0,1fr)!important;
    padding:7px 42px 7px 8px!important;
    gap:9px!important;
    border-radius:11px!important;
  }
  .player-month-vote-slide .vote-option-photo{
    width:48px!important;
    height:48px!important;
  }
  .player-month-vote-slide .vote-option-copy strong{
    font-size:.94rem!important;
    line-height:1.05!important;
  }
  .player-month-vote-slide .vote-option-copy small{
    font-size:.76rem!important;
  }
  .player-month-vote-slide .vote-choice-mark{
    right:9px!important;
    width:24px!important;
    height:24px!important;
  }
  .player-month-vote-slide .vote-submit-zone{
    width:100%!important;
    padding:9px!important;
    gap:6px!important;
    border-radius:11px!important;
  }
  .player-month-vote-slide .vote-submit-btn{
    min-height:44px!important;
  }
  .player-month-vote-slide .vote-device-note{
    width:100%!important;
    padding:0 2px!important;
    font-size:.68rem!important;
    line-height:1.2!important;
  }
}

/* Pantallas móviles de baja altura: prioriza que todo permanezca dentro del navegador. */
@media (max-width:700px) and (max-height:760px){
  .player-month-dialog-head{margin-bottom:3px!important;padding-top:3px!important;padding-bottom:5px!important}
  .player-month-carousel-photo{height:min(27dvh,175px)!important;max-height:175px!important}
  .player-month-slide,.player-month-vote-slide{padding-top:7px!important;padding-bottom:8px!important;gap:5px!important}
  .player-month-stat-grid div{padding:5px 7px!important}
  .vote-google-gate{padding:12px 11px!important;gap:6px!important}
  .vote-google-gate::before{width:30px;height:30px}
  .vote-google-gate h4{font-size:1.28rem!important}
  .vote-google-gate p{font-size:.82rem!important}
  .vote-google-gate small{font-size:.66rem!important}
  .player-month-vote-slide .vote-option{min-height:56px!important}
  .player-month-vote-slide .vote-option-photo{width:42px!important;height:42px!important}
  .player-month-vote-slide .vote-option{grid-template-columns:42px minmax(0,1fr)!important}
}


/* v0.7.111 · Jugador del Mes: candidatos aprovechan todo el espacio disponible */
@media (min-width:701px){
  .player-month-slide:not(.player-month-vote-slide){
    grid-template-columns:minmax(260px,.92fr) minmax(0,1.08fr)!important;
    grid-template-rows:1fr!important;
    align-items:stretch!important;
    padding:16px 18px!important;
    gap:22px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-carousel-photo{
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    min-height:0!important;
    aspect-ratio:4/5!important;
    align-self:stretch!important;
    margin:0!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-carousel-photo img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-slide-copy{
    min-height:0!important;
    height:100%!important;
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr)!important;
    align-content:stretch!important;
    gap:10px!important;
    padding:8px 0!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-slide-copy>.eyebrow{
    align-self:end!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-slide-copy h4{
    margin:0!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid{
    min-height:0!important;
    height:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    align-self:stretch!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid div{
    min-height:0!important;
    height:100%!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:flex-start!important;
    padding:14px 16px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid span{
    font-size:.86rem!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid strong{
    margin-top:3px!important;
    font-size:clamp(1.45rem,2vw,1.85rem)!important;
    line-height:1!important;
  }
}

@media (max-width:700px){
  .player-month-slide:not(.player-month-vote-slide){
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(0,1.25fr) auto minmax(0,.9fr)!important;
    align-content:stretch!important;
    align-items:stretch!important;
    padding:8px 10px 10px!important;
    gap:6px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-slide-kicker{
    grid-row:1!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-carousel-photo{
    grid-row:2!important;
    width:auto!important;
    height:100%!important;
    max-width:72vw!important;
    max-height:none!important;
    min-height:0!important;
    aspect-ratio:4/5!important;
    align-self:stretch!important;
    justify-self:center!important;
    margin:0 auto!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-carousel-photo img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-slide-copy{
    grid-row:3 / 5!important;
    min-height:0!important;
    height:100%!important;
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr)!important;
    gap:5px!important;
    align-content:stretch!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid{
    min-height:0!important;
    height:100%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid div{
    min-height:0!important;
    height:100%!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:7px 9px!important;
  }
}

@media (max-width:700px) and (max-height:760px){
  .player-month-slide:not(.player-month-vote-slide){
    grid-template-rows:auto minmax(0,1fr) auto minmax(0,.78fr)!important;
  }
  .player-month-slide:not(.player-month-vote-slide) .player-month-carousel-photo{
    max-width:58vw!important;
  }
}


/* v0.7.112 · Jugador del Mes: verificación Google ocupa todo el cuadro y selección sin nota inferior */
.player-month-vote-slide .vote-google-panel{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:stretch!important;
}
.player-month-vote-slide .vote-google-gate{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:clamp(20px,3vw,36px)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:clamp(10px,1.6vh,16px)!important;
  border:0!important;
  border-radius:14px!important;
  background:var(--vote-surface)!important;
  box-shadow:none!important;
}
.player-month-vote-slide .vote-google-gate p,
.player-month-vote-slide .vote-google-gate small{
  width:min(620px,100%)!important;
  max-width:620px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.player-month-vote-slide .google-vote-button{
  width:min(400px,100%)!important;
  min-height:52px!important;
  margin:4px auto!important;
}
.player-month-vote-slide .google-vote-button>div,
.player-month-vote-slide .google-vote-button iframe{
  max-width:100%!important;
}

@media (max-width:700px){
  .player-month-vote-slide .vote-google-panel{
    flex:1 1 auto!important;
    height:100%!important;
  }
  .player-month-vote-slide .vote-google-gate{
    flex:1 1 auto!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    padding:16px 14px!important;
    justify-content:center!important;
    gap:9px!important;
  }
  .player-month-vote-slide .google-vote-button{
    width:min(400px,100%)!important;
  }
}

@media (max-width:700px) and (max-height:760px){
  .player-month-vote-slide .vote-google-gate{
    padding:10px 12px!important;
    gap:6px!important;
  }
}


/* v0.7.113 · Jugador del Mes: verificación Google integrada y aprovechamiento del viewport */
.player-month-vote-slide .vote-google-gate{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr)!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  gap:clamp(22px,3vw,42px)!important;
  width:100%!important;
  height:100%!important;
  padding:clamp(24px,4vw,54px)!important;
  text-align:left!important;
}
.player-month-vote-slide .vote-google-gate::before{content:none!important;display:none!important}
.vote-google-copy,
.vote-google-action{
  box-sizing:border-box;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.vote-google-copy{align-items:flex-start;gap:12px}
.vote-google-mark{
  width:52px;height:52px;display:grid;place-items:center;border-radius:50%;
  border:1px solid var(--vote-line-gold);background:rgba(219,166,56,.08);
  color:var(--gold-bright);font-size:1.35rem;font-weight:900;
}
.vote-google-copy .eyebrow{margin-top:4px}
.vote-google-copy h4{
  margin:0!important;font-size:clamp(2rem,3.4vw,3.25rem)!important;line-height:.98!important;
  letter-spacing:-.02em;
}
.vote-google-copy p{
  width:100%!important;max-width:600px!important;margin:0!important;
  font-size:clamp(1rem,1.25vw,1.16rem)!important;line-height:1.5!important;
}
.vote-google-benefits{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;
}
.vote-google-benefits span{
  padding:7px 10px;border:1px solid var(--vote-line);border-radius:999px;
  background:rgba(255,255,255,.025);color:var(--muted);font-size:.8rem;font-weight:700;
}
.vote-google-action{
  align-items:center;gap:18px;padding:clamp(22px,3vw,36px);
  border-left:1px solid var(--vote-line);text-align:center;
}
.vote-google-action-copy{display:grid;gap:5px;width:min(440px,100%)}
.vote-google-action-copy strong{font-size:clamp(1.25rem,1.8vw,1.55rem);color:var(--cream)}
.vote-google-action-copy small{color:var(--muted);line-height:1.4;font-size:.88rem}
.player-month-vote-slide .google-vote-button{
  width:min(420px,100%)!important;min-height:52px!important;margin:0 auto!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  padding:4px!important;border-radius:999px!important;
  background:rgba(255,255,255,.025)!important;border:1px solid var(--vote-line)!important;
}
.player-month-vote-slide .google-vote-button>div,
.player-month-vote-slide .google-vote-button iframe{width:100%!important;max-width:420px!important}
.vote-google-privacy{
  width:min(430px,100%)!important;max-width:430px!important;margin:0!important;
  color:var(--muted)!important;font-size:.76rem!important;line-height:1.35!important;
}

@media (max-width:700px){
  .player-month-vote-slide .vote-google-gate{
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    gap:16px!important;
    padding:18px 16px!important;
    text-align:center!important;
  }
  .vote-google-copy{align-items:center;gap:8px;justify-content:center}
  .vote-google-mark{width:42px;height:42px;font-size:1.1rem}
  .vote-google-copy h4{font-size:clamp(1.75rem,8vw,2.3rem)!important}
  .vote-google-copy p{font-size:.94rem!important;line-height:1.4!important}
  .vote-google-benefits{justify-content:center;gap:6px}
  .vote-google-benefits span{font-size:.7rem;padding:6px 8px}
  .vote-google-action{
    width:100%;padding:16px 0 2px;border-left:0;border-top:1px solid var(--vote-line);gap:12px;
  }
  .vote-google-action-copy strong{font-size:1.2rem}
  .vote-google-action-copy small{font-size:.78rem}
  .player-month-vote-slide .google-vote-button{width:100%!important;max-width:420px!important}
  .vote-google-privacy{font-size:.68rem!important}
}
@media (max-width:700px) and (max-height:760px){
  .player-month-vote-slide .vote-google-gate{padding:10px 12px!important;gap:9px!important}
  .vote-google-mark{width:34px;height:34px;font-size:.95rem}
  .vote-google-copy{gap:5px}
  .vote-google-copy h4{font-size:1.55rem!important}
  .vote-google-copy p{font-size:.82rem!important}
  .vote-google-benefits span{font-size:.64rem;padding:4px 7px}
  .vote-google-action{padding-top:10px;gap:8px}
  .vote-google-action-copy strong{font-size:1.05rem}
  .vote-google-action-copy small{font-size:.7rem}
  .vote-google-privacy{font-size:.62rem!important}
}


/* v0.7.114 · Verificación Google móvil compacta y selector integrado */
@media (max-width:700px){
  .player-month-vote-slide .vote-google-gate{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:stretch!important;
    width:100%!important;
    min-height:0!important;
    height:100%!important;
    padding:14px 14px 16px!important;
    gap:12px!important;
    text-align:center!important;
  }

  .vote-google-copy{
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    width:100%!important;
  }

  .vote-google-mark{
    width:38px!important;
    height:38px!important;
    font-size:1rem!important;
    margin-bottom:1px!important;
  }

  .vote-google-copy .eyebrow{
    margin:0!important;
    font-size:.72rem!important;
    letter-spacing:.15em!important;
  }

  .vote-google-copy h4{
    margin:0!important;
    font-size:clamp(1.72rem,7.6vw,2.05rem)!important;
    line-height:1!important;
  }

  .vote-google-copy p{
    max-width:520px!important;
    margin:0 auto!important;
    font-size:.9rem!important;
    line-height:1.34!important;
  }

  .vote-google-benefits{
    width:100%!important;
    margin:3px 0 0!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .vote-google-benefits span{
    min-width:0!important;
    padding:6px 7px!important;
    border-radius:10px!important;
    font-size:.67rem!important;
    line-height:1.15!important;
    white-space:normal!important;
  }

  .vote-google-benefits span:last-child{
    grid-column:1 / -1!important;
    justify-self:center!important;
    width:max-content!important;
    max-width:100%!important;
    padding-inline:11px!important;
  }

  .vote-google-action{
    flex:0 0 auto!important;
    width:100%!important;
    padding:12px 0 0!important;
    margin:0!important;
    border-left:0!important;
    border-top:1px solid var(--vote-line)!important;
    gap:9px!important;
    align-items:center!important;
  }

  .vote-google-action-copy{
    width:100%!important;
    max-width:520px!important;
    gap:2px!important;
  }

  .vote-google-action-copy strong{
    font-size:1.08rem!important;
    line-height:1.15!important;
  }

  .vote-google-action-copy small{
    font-size:.72rem!important;
    line-height:1.25!important;
  }

  .player-month-vote-slide .google-vote-button{
    box-sizing:border-box!important;
    width:min(360px,100%)!important;
    height:48px!important;
    min-height:48px!important;
    max-height:48px!important;
    margin:2px auto 0!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.15)!important;
    border-radius:999px!important;
    background:#202124!important;
    line-height:0!important;
  }

  .player-month-vote-slide .google-vote-button>div,
  .player-month-vote-slide .google-vote-button iframe{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:48px!important;
    min-height:48px!important;
    max-height:48px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:999px!important;
    overflow:hidden!important;
    background:#202124!important;
  }

  .vote-google-privacy{
    width:100%!important;
    max-width:520px!important;
    margin:0 auto!important;
    padding:0 6px!important;
    font-size:.65rem!important;
    line-height:1.22!important;
  }
}

@media (max-width:700px) and (max-height:760px){
  .player-month-vote-slide .vote-google-gate{
    justify-content:flex-start!important;
    padding:9px 12px 12px!important;
    gap:8px!important;
  }
  .vote-google-mark{width:30px!important;height:30px!important;font-size:.85rem!important}
  .vote-google-copy{gap:4px!important}
  .vote-google-copy .eyebrow{font-size:.64rem!important}
  .vote-google-copy h4{font-size:1.42rem!important}
  .vote-google-copy p{font-size:.76rem!important;line-height:1.25!important}
  .vote-google-benefits{gap:4px!important;margin-top:1px!important}
  .vote-google-benefits span{font-size:.59rem!important;padding:4px 6px!important}
  .vote-google-action{padding-top:8px!important;gap:6px!important}
  .vote-google-action-copy strong{font-size:.96rem!important}
  .vote-google-action-copy small{font-size:.64rem!important}
  .player-month-vote-slide .google-vote-button,
  .player-month-vote-slide .google-vote-button>div,
  .player-month-vote-slide .google-vote-button iframe{height:44px!important;min-height:44px!important;max-height:44px!important}
  .vote-google-privacy{font-size:.58rem!important}
}


/* v0.7.115 · Votación: Google oscuro sin franjas claras + distribución móvil + PC compacto */
@media (min-width:701px){
  /* El modal de votación en PC es deliberadamente más compacto para evitar zonas muertas. */
  .player-month-dialog{
    width:min(980px,calc(100vw - 42px))!important;
    max-width:980px!important;
    height:min(660px,calc(100dvh - 34px))!important;
    max-height:calc(100dvh - 34px)!important;
  }

  .player-month-dialog-content{
    padding:16px 20px 18px!important;
  }

  .player-month-dialog-head{
    margin-bottom:7px!important;
    padding-bottom:7px!important;
  }

  .player-month-carousel-shell{
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    gap:8px!important;
    align-items:center!important;
  }

  .player-month-arrow{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    align-self:center!important;
    justify-self:center!important;
    margin:0!important;
    display:grid!important;
    place-items:center!important;
    line-height:1!important;
  }

  .player-month-slide:not(.player-month-vote-slide){
    grid-template-columns:minmax(235px,.88fr) minmax(0,1.12fr)!important;
    gap:18px!important;
    padding:14px 16px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-slide-copy{
    padding:5px 0!important;
    gap:7px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid{
    gap:8px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid div{
    padding:10px 12px!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid span{
    font-size:.8rem!important;
  }

  .player-month-slide:not(.player-month-vote-slide) .player-month-stat-grid strong{
    font-size:1.4rem!important;
  }

  /* Google: dos columnas proporcionadas, sin tarjeta adicional ni espacio sobrante. */
  .player-month-vote-slide .vote-google-gate{
    grid-template-columns:minmax(0,1fr) minmax(330px,.92fr)!important;
    gap:24px!important;
    padding:28px 30px!important;
  }

  .vote-google-copy,
  .vote-google-action{
    min-height:0!important;
    justify-content:center!important;
  }

  .vote-google-action{
    padding:18px 0 18px 24px!important;
    gap:14px!important;
  }
}

/* No se maquilla el iframe de Google: se deja renderizar con su tema oscuro oficial. */
.player-month-vote-slide .google-vote-button{
  box-sizing:border-box!important;
  width:min(400px,100%)!important;
  min-height:44px!important;
  height:auto!important;
  max-height:none!important;
  padding:0!important;
  margin:2px auto!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:normal!important;
}

.player-month-vote-slide .google-vote-button>div,
.player-month-vote-slide .google-vote-button iframe{
  max-width:100%!important;
  margin:0 auto!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

@media (max-width:700px){
  /* El contenido ocupa realmente el alto del cuadro: mitad informativa + mitad de acción. */
  .player-month-vote-slide .vote-google-panel,
  .player-month-vote-slide .vote-google-gate{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
  }

  .player-month-vote-slide .vote-google-gate{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    gap:0!important;
    padding:10px 14px 12px!important;
    text-align:center!important;
  }

  .vote-google-copy{
    min-height:0!important;
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    padding:8px 0 12px!important;
  }

  .vote-google-mark{
    width:40px!important;
    height:40px!important;
    margin:0!important;
  }

  .vote-google-copy h4{
    font-size:clamp(1.75rem,7.7vw,2.2rem)!important;
  }

  .vote-google-copy p{
    max-width:540px!important;
    font-size:.9rem!important;
    line-height:1.34!important;
  }

  .vote-google-benefits{
    width:min(540px,100%)!important;
    margin:3px auto 0!important;
    gap:6px!important;
  }

  .vote-google-action{
    min-height:0!important;
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    margin:0!important;
    padding:16px 0 8px!important;
    border-left:0!important;
    border-top:1px solid var(--vote-line)!important;
  }

  .vote-google-action-copy{
    width:min(540px,100%)!important;
    gap:4px!important;
  }

  .vote-google-action-copy strong{
    font-size:1.22rem!important;
  }

  .vote-google-action-copy small{
    font-size:.76rem!important;
    line-height:1.28!important;
  }

  .player-month-vote-slide .google-vote-button{
    width:min(400px,100%)!important;
    min-height:44px!important;
    height:auto!important;
    max-height:none!important;
    margin:4px auto 2px!important;
  }

  .vote-google-privacy{
    width:min(540px,100%)!important;
    max-width:540px!important;
    padding:0 8px!important;
    font-size:.68rem!important;
    line-height:1.25!important;
  }
}

@media (max-width:700px) and (max-height:760px){
  .player-month-vote-slide .vote-google-gate{
    grid-template-rows:auto auto!important;
    align-content:center!important;
    padding:7px 12px 9px!important;
  }
  .vote-google-copy{padding:5px 0 8px!important;gap:5px!important}
  .vote-google-mark{width:31px!important;height:31px!important}
  .vote-google-copy h4{font-size:1.48rem!important}
  .vote-google-copy p{font-size:.78rem!important}
  .vote-google-action{padding:9px 0 4px!important;gap:7px!important}
  .vote-google-action-copy strong{font-size:1.02rem!important}
  .vote-google-action-copy small{font-size:.66rem!important}
  .vote-google-privacy{font-size:.6rem!important}
}


/* v0.7.116 · Google móvil: uso completo del alto + selector íntegro con borde simétrico */
.player-month-vote-slide .google-vote-button{
  box-sizing:border-box!important;
  width:min(400px,100%)!important;
  padding:3px!important;
  border:1px solid rgba(255,255,255,.26)!important;
  border-radius:14px!important;
  background:#131514!important;
  overflow:hidden!important;
  box-shadow:0 0 0 1px rgba(0,0,0,.35) inset!important;
}
.player-month-vote-slide .google-vote-button>div,
.player-month-vote-slide .google-vote-button iframe{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  border:0!important;
  border-radius:10px!important;
  overflow:hidden!important;
}

@media (max-width:700px){
  .player-month-vote-slide .vote-google-gate{
    grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;
    padding:12px 16px 14px!important;
  }

  .vote-google-copy{
    justify-content:space-evenly!important;
    gap:5px!important;
    padding:14px 0 12px!important;
  }

  .vote-google-copy .eyebrow,
  .vote-google-copy h4,
  .vote-google-copy p,
  .vote-google-benefits{
    flex:0 0 auto;
  }

  .vote-google-mark{
    flex:0 0 auto;
    width:42px!important;
    height:42px!important;
  }

  .vote-google-action{
    justify-content:space-evenly!important;
    gap:6px!important;
    padding:12px 0 16px!important;
  }

  .vote-google-action-copy,
  .player-month-vote-slide .google-vote-button,
  .vote-google-privacy{
    flex:0 0 auto;
  }

  .player-month-vote-slide .google-vote-button{
    width:min(392px,calc(100% - 4px))!important;
    min-height:50px!important;
    margin:4px auto!important;
  }

  .vote-google-privacy{
    margin:0 auto!important;
  }
}

@media (max-width:700px) and (max-height:760px){
  .player-month-vote-slide .vote-google-gate{
    grid-template-rows:minmax(0,1fr) minmax(0,.88fr)!important;
    padding:8px 12px 10px!important;
  }
  .vote-google-copy{
    justify-content:space-evenly!important;
    padding:6px 0 8px!important;
  }
  .vote-google-action{
    justify-content:space-evenly!important;
    padding:8px 0 8px!important;
  }
  .player-month-vote-slide .google-vote-button{
    min-height:46px!important;
  }
}


/* v0.7.117 · Google móvil: selector completo, menor margen izquierdo y borde tenue simétrico */
@media (max-width:700px){
  .vote-google-action{
    overflow:visible!important;
  }

  .player-month-vote-slide .google-vote-button{
    box-sizing:border-box!important;
    width:calc(100% + 12px)!important;
    max-width:410px!important;
    min-height:48px!important;
    margin:4px -6px!important;
    padding:0!important;
    border:0!important;
    border-radius:12px!important;
    background:transparent!important;
    overflow:visible!important;
    outline:1px solid rgba(255,255,255,.30)!important;
    outline-offset:2px!important;
    box-shadow:none!important;
  }

  .player-month-vote-slide .google-vote-button>div,
  .player-month-vote-slide .google-vote-button iframe{
    box-sizing:border-box!important;
    width:auto!important;
    max-width:100%!important;
    margin:0 auto!important;
    padding:0!important;
    border:0!important;
    border-radius:10px!important;
    overflow:visible!important;
  }
}

@media (max-width:390px){
  .player-month-vote-slide .google-vote-button{
    width:calc(100% + 8px)!important;
    margin-left:-4px!important;
    margin-right:-4px!important;
  }
}


/* v0.7.118 · Google escritorio: mismo selector integrado de la vista móvil */
@media (min-width:701px){
  .vote-google-action{
    overflow:visible!important;
  }

  .player-month-vote-slide .google-vote-button{
    box-sizing:border-box!important;
    width:min(400px,100%)!important;
    max-width:400px!important;
    min-height:48px!important;
    margin:6px auto!important;
    padding:0!important;
    border:0!important;
    border-radius:12px!important;
    background:transparent!important;
    overflow:visible!important;
    outline:1px solid rgba(255,255,255,.30)!important;
    outline-offset:2px!important;
    box-shadow:none!important;
  }

  .player-month-vote-slide .google-vote-button>div,
  .player-month-vote-slide .google-vote-button iframe{
    box-sizing:border-box!important;
    width:auto!important;
    max-width:100%!important;
    margin:0 auto!important;
    padding:0!important;
    border:0!important;
    border-radius:10px!important;
    overflow:visible!important;
  }
}


/* v0.7.119 · Jugador del Mes: resultados en vivo más limpios y sin cajas redundantes */
.player-month-results-view{
  width:100%!important;
  height:100%;
  min-height:0;
  display:flex!important;
  align-items:center;
  justify-content:center;
  overflow:hidden!important;
}
.player-month-results-view .vote-results-final-panel{
  box-sizing:border-box;
  width:min(760px,100%)!important;
  max-width:760px!important;
  min-height:0!important;
  height:auto!important;
  max-height:100%!important;
  margin:auto!important;
  padding:20px 22px 18px!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:14px!important;
  align-content:center!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.018)!important;
  box-shadow:none!important;
}
.vote-results-heading{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.vote-results-heading h4{
  margin:4px 0 3px;
  font-size:1.55rem;
  line-height:1.05;
}
.vote-results-heading p{
  margin:0;
  color:var(--muted);
  line-height:1.3;
}
.vote-results-summary{
  min-width:80px;
  display:grid;
  grid-template-columns:auto auto;
  align-items:center;
  justify-content:end;
  gap:2px 7px;
  text-align:right;
}
.vote-results-summary .live-dot{
  grid-row:1 / span 2;
  align-self:center;
}
.vote-results-summary strong{
  color:var(--gold-bright);
  font-size:1.55rem;
  line-height:1;
}
.vote-results-summary>span:last-child{
  color:var(--muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.vote-live-results-list{
  min-height:0;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  overflow:hidden;
}
.vote-live-result{
  min-width:0;
  min-height:70px;
  display:grid!important;
  grid-template-columns:54px minmax(0,1fr)!important;
  align-items:center;
  gap:12px!important;
  padding:10px 2px!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.07)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.vote-live-result:last-child{border-bottom:0!important;}
.vote-live-result .vote-option-photo{
  width:54px!important;
  height:54px!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.10);
}
.vote-live-result-main{gap:7px!important;}
.vote-live-result-head{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px!important;
}
.vote-live-result .vote-option-copy strong{
  font-size:1rem!important;
  line-height:1.08!important;
}
.vote-live-result .vote-option-copy small{
  font-size:.78rem!important;
  color:var(--muted);
}
.vote-live-result-numbers{
  display:flex!important;
  align-items:baseline;
  justify-content:flex-end;
  gap:8px!important;
}
.vote-live-result-numbers strong{
  color:var(--cream)!important;
  font-size:.94rem!important;
}
.vote-live-result-numbers span{
  min-width:42px;
  color:var(--gold-bright)!important;
  font-size:.9rem!important;
  font-weight:800;
  text-align:right;
}
.vote-live-result .vote-result-bar{
  width:100%;
  height:5px!important;
  margin:0!important;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.07)!important;
}
.vote-live-result .vote-result-bar i{
  height:100%;
  border-radius:inherit;
}
.vote-live-result .vote-winner{
  margin-top:1px;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--gold-bright)!important;
  font-size:.72rem;
}
.vote-results-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:11px;
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--muted);
}
.vote-results-footer small{font-size:.76rem;}
.vote-results-footer>span{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  white-space:nowrap;
}

@media (min-width:701px){
  .player-month-dialog:has(.player-month-results-view){
    width:min(900px,calc(100vw - 36px))!important;
    max-width:900px!important;
  }
  .player-month-dialog:has(.player-month-results-view) .player-month-dialog-content{
    overflow:hidden!important;
  }
  .player-month-dialog:has(.player-month-results-view) .player-month-results-view{
    height:min(520px,calc(100vh - 150px));
  }
}

@media (max-width:700px){
  .player-month-dialog .player-month-results-view{
    box-sizing:border-box;
    width:100%!important;
    height:calc(100dvh - 96px)!important;
    min-height:0!important;
    padding:0 0 max(10px,env(safe-area-inset-bottom))!important;
    overflow:hidden!important;
  }
  @supports not (height:100dvh){
    .player-month-dialog .player-month-results-view{height:calc(100svh - 96px)!important;}
  }
  .player-month-results-view .vote-results-final-panel{
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    max-height:100%!important;
    margin:0!important;
    padding:14px 14px 12px!important;
    gap:10px!important;
    border-radius:16px!important;
  }
  .vote-results-heading{
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    padding-bottom:9px;
  }
  .vote-results-heading h4{
    font-size:clamp(1.3rem,5.8vw,1.65rem);
  }
  .vote-results-heading p{
    font-size:.86rem;
  }
  .vote-results-heading .eyebrow{
    font-size:.64rem;
  }
  .vote-results-summary{
    min-width:62px;
  }
  .vote-results-summary strong{
    font-size:1.3rem;
  }
  .vote-results-summary>span:last-child{
    font-size:.66rem;
  }
  .vote-live-result{
    min-height:0!important;
    grid-template-columns:50px minmax(0,1fr)!important;
    gap:10px!important;
    padding:8px 1px!important;
  }
  .vote-live-result .vote-option-photo{
    width:50px!important;
    height:50px!important;
  }
  .vote-live-result .vote-option-copy strong{
    font-size:.94rem!important;
  }
  .vote-live-result .vote-option-copy small{
    font-size:.72rem!important;
  }
  .vote-live-result-numbers{
    gap:6px!important;
  }
  .vote-live-result-numbers strong{
    font-size:.84rem!important;
  }
  .vote-live-result-numbers span{
    min-width:36px;
    font-size:.82rem!important;
  }
  .vote-results-footer{
    padding-top:8px;
  }
  .vote-results-footer small{
    max-width:65%;
    font-size:.66rem;
    line-height:1.2;
  }
  .vote-results-footer>span{
    font-size:.62rem;
  }
}

@media (max-width:380px), (max-width:700px) and (max-height:720px){
  .player-month-results-view .vote-results-final-panel{
    padding:10px 11px!important;
    gap:7px!important;
  }
  .vote-results-heading{padding-bottom:7px;}
  .vote-results-heading p{display:none;}
  .vote-live-result{
    grid-template-columns:44px minmax(0,1fr)!important;
    padding:6px 1px!important;
  }
  .vote-live-result .vote-option-photo{
    width:44px!important;
    height:44px!important;
  }
  .vote-results-footer>span{display:none;}
}


/* v0.7.120 · Competencias: tarjetas normalizadas y alineación móvil/desktop */
.competition-grid-normalized {
  align-items:stretch;
}

.competition-card-normalized {
  min-height:0;
  height:100%;
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:16px;
  text-align:left;
}

.competition-card-normalized::after {
  pointer-events:none;
}

.competition-card-head-normalized {
  width:100%;
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  align-items:center;
  gap:16px;
  flex-wrap:nowrap;
}

.competition-card-normalized .competition-card-logo {
  width:76px;
  height:76px;
  flex:none;
  align-self:center;
  justify-self:center;
  margin:0;
}

.competition-card-copy {
  min-width:0;
  width:100%;
  display:grid;
  align-content:center;
  gap:5px;
}

.competition-card-topline {
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.competition-card-topline .eyebrow {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.competition-card-topline .status-pill {
  flex:0 0 auto;
  min-height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  white-space:nowrap;
}

.competition-card-normalized h3 {
  margin:0!important;
  min-width:0;
  font-size:1.55rem;
  line-height:1.05;
  color:var(--white);
}

.competition-card-normalized .competition-period {
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.25;
  min-height:1.25em;
}

.competition-card-footer {
  width:100%;
  min-height:44px;
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.competition-card-normalized .competition-open-indicator {
  margin:0!important;
}

.competition-card-note {
  width:100%;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.25;
  text-align:left;
}

@media (max-width:760px) {
  .competition-grid-normalized {
    gap:12px;
  }

  .competition-card-normalized {
    width:100%;
    min-height:0!important;
    padding:14px!important;
    gap:12px;
    border-radius:16px;
  }

  .competition-card-head-normalized {
    grid-template-columns:66px minmax(0,1fr);
    align-items:center!important;
    gap:12px;
  }

  .competition-card-normalized .competition-card-logo,
  .competition-card-normalized .league-logo-wrap {
    width:66px!important;
    height:66px!important;
    flex-basis:66px!important;
    margin:0!important;
    align-self:center!important;
  }

  .competition-card-normalized .league-logo {
    padding:5px;
  }

  .competition-card-copy {
    gap:4px;
  }

  .competition-card-topline {
    gap:7px;
  }

  .competition-card-topline .eyebrow {
    font-size:.68rem;
    letter-spacing:.1em;
  }

  .competition-card-topline .status-pill {
    min-height:24px;
    padding:4px 8px;
    font-size:.68rem;
    line-height:1;
  }

  .competition-card-normalized h3 {
    font-size:1.32rem!important;
    line-height:1.04;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  .competition-card-normalized .competition-period {
    font-size:.84rem;
    min-height:0;
  }

  .competition-card-footer {
    min-height:40px;
    padding-top:10px;
  }

  .competition-card-normalized .competition-open-indicator {
    min-height:38px;
    padding:8px 13px;
  }
}

@media (max-width:390px) {
  .competition-card-head-normalized {
    grid-template-columns:60px minmax(0,1fr);
    gap:10px;
  }

  .competition-card-normalized .competition-card-logo,
  .competition-card-normalized .league-logo-wrap {
    width:60px!important;
    height:60px!important;
    flex-basis:60px!important;
  }

  .competition-card-topline .status-pill {
    font-size:.64rem;
    padding-inline:7px;
  }

  .competition-card-normalized h3 {
    font-size:1.22rem!important;
  }
}

/* v0.7.121 · Plantel: carrusel de ligas competitivas (sin General ni Amistosos) */
.squad-league-carousel-shell{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 42px;
  align-items:center;
  gap:10px;
  margin:0 0 18px;
}
.squad-league-carousel{
  display:flex;
  gap:12px;
  min-width:0;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:2px;
}
.squad-league-carousel::-webkit-scrollbar{display:none}
.squad-league-card{
  position:relative;
  flex:0 0 clamp(240px,31vw,330px);
  min-width:0;
  min-height:90px;
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  gap:2px 12px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.025);
  color:var(--cream);
  text-align:left;
  scroll-snap-align:center;
  transition:border-color .18s ease,background .18s ease,transform .18s ease;
}
.squad-league-card:hover{border-color:rgba(219,166,56,.42);transform:translateY(-1px)}
.squad-league-card.is-active{
  border-color:rgba(219,166,56,.72);
  background:linear-gradient(135deg,rgba(219,166,56,.105),rgba(255,255,255,.025));
  box-shadow:inset 0 0 0 1px rgba(219,166,56,.08);
}
.squad-league-logo{
  grid-row:1 / 3;
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:rgba(0,0,0,.22);
  overflow:hidden;
}
.squad-league-logo img{width:56px;height:56px;object-fit:contain}
.squad-league-logo-placeholder{font-weight:900;color:var(--gold-bright)}
.squad-league-card-copy{align-self:end;display:grid;gap:2px;min-width:0;padding-right:72px}
.squad-league-card-copy strong{font-size:1.05rem;line-height:1.08;white-space:normal}
.squad-league-card-copy small{color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.squad-league-status{
  position:absolute;
  top:11px;
  right:11px;
  max-width:92px;
  padding:4px 7px;
  border-radius:999px;
  border:1px solid var(--line);
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}
.squad-league-status.played{color:#9de0bb;border-color:rgba(15,96,55,.45);background:rgba(15,96,55,.14)}
.squad-league-status.upcoming{color:var(--gold-bright);border-color:rgba(219,166,56,.4);background:rgba(219,166,56,.09)}
.squad-league-status.suspended{color:#e1a1a1;border-color:rgba(143,29,24,.45);background:rgba(143,29,24,.12)}
.squad-league-arrow{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(219,166,56,.35);
  border-radius:50%;
  background:rgba(255,255,255,.025);
  color:var(--gold-bright);
  font-size:1.65rem;
  line-height:1;
}
.squad-league-arrow:disabled{opacity:.28;cursor:default}
.squad-league-context{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin:0 0 24px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.squad-league-context h3{margin:4px 0 0;font-size:1.45rem}
.squad-league-context>span{color:var(--muted);font-size:.88rem;text-align:right}

@media(max-width:700px){
  .squad-league-carousel-shell{
    display:block;
    width:100%;
    margin:0 0 14px;
    overflow:hidden;
  }
  .squad-league-arrow{display:none}
  .squad-league-carousel{
    width:100%;
    gap:9px;
    padding:2px 10px 4px 0;
    scroll-padding-inline:0 10px;
  }
  .squad-league-card{
    flex:0 0 min(84vw,310px);
    min-height:82px;
    grid-template-columns:58px minmax(0,1fr);
    gap:2px 10px;
    padding:10px 11px;
    border-radius:14px;
  }
  .squad-league-logo{width:58px;height:58px;border-radius:12px}
  .squad-league-logo img{width:51px;height:51px}
  .squad-league-card-copy{padding-right:66px}
  .squad-league-card-copy strong{font-size:1rem}
  .squad-league-card-copy small{font-size:.76rem}
  .squad-league-status{top:9px;right:9px;font-size:.63rem;max-width:82px}
  .squad-league-context{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
    margin-bottom:18px;
    padding-bottom:11px;
  }
  .squad-league-context h3{font-size:1.3rem}
  .squad-league-context>span{text-align:left;font-size:.82rem}
}


/* v0.7.122 · Plantel: carrusel solo con ligas activas, sin etiqueta de estado */
.squad-league-card{
  min-height:82px;
  grid-template-columns:62px minmax(0,1fr);
  grid-template-rows:1fr;
  gap:12px;
  padding:10px 14px;
}
.squad-league-logo{
  grid-row:auto;
  width:62px;
  height:62px;
}
.squad-league-logo img{width:54px;height:54px}
.squad-league-card-copy{
  align-self:center;
  padding-right:0!important;
  gap:4px;
}
.squad-league-card-copy strong{
  font-size:1.06rem;
  line-height:1.12;
}
.squad-league-card-copy small{
  font-size:.82rem;
  line-height:1.15;
}
.squad-league-status{display:none!important}

@media(max-width:700px){
  .squad-league-carousel{gap:8px;padding:2px 8px 4px 0;}
  .squad-league-card{
    flex:0 0 min(78vw,286px);
    min-height:74px;
    grid-template-columns:54px minmax(0,1fr);
    gap:9px;
    padding:9px 10px;
  }
  .squad-league-logo{width:54px;height:54px;border-radius:11px}
  .squad-league-logo img{width:48px;height:48px}
  .squad-league-card-copy{padding-right:0!important;gap:3px}
  .squad-league-card-copy strong{font-size:.98rem;line-height:1.1}
  .squad-league-card-copy small{font-size:.75rem}
}


/* v0.7.124 · Plantel: interacción estable del carrusel, sin saltos al seleccionar */
.squad-league-carousel{
  scroll-behavior:auto;
  scroll-anchor:none;
}
.squad-league-card{
  -webkit-tap-highlight-color:transparent;
}
.squad-league-card:active{
  transform:none;
}
@media (prefers-reduced-motion: reduce){
  .squad-league-card{transition:none!important}
}

/* v0.7.125 · Perfil del jugador + billetera de cupones + resultados de votación simplificados */
.player-profile-page{--profile-surface:rgba(255,255,255,.025);--profile-surface-strong:rgba(255,255,255,.04)}
.profile-hero-card{display:grid;gap:18px;margin-bottom:18px;padding:22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(0,0,0,.16))}
.profile-hero-identity{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);gap:24px;align-items:center}
.profile-hero-card .profile-identity h3{margin:3px 0 7px;font-size:clamp(1.7rem,3vw,2.25rem);line-height:1}
.profile-hero-card .profile-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.profile-hero-card .profile-facts>div{padding:9px 11px;background:var(--profile-surface);border-color:rgba(255,255,255,.07)}
.profile-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.profile-overview-grid article{min-width:0;padding:13px 14px;border-top:1px solid rgba(219,166,56,.26);background:rgba(0,0,0,.12);display:grid;gap:3px}
.profile-overview-grid span,.profile-overview-grid small{color:var(--muted)}
.profile-overview-grid span{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.profile-overview-grid strong{font-size:1.35rem;line-height:1.08;color:var(--cream)}
.profile-accordion-list{display:grid;gap:10px}
.profile-main-accordion{border:1px solid var(--line);border-radius:15px;background:var(--profile-surface);overflow:hidden}
.profile-main-accordion>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;user-select:none}
.profile-main-accordion>summary::-webkit-details-marker,.profile-subpanel>summary::-webkit-details-marker{display:none}
.profile-main-accordion>summary::marker,.profile-subpanel>summary::marker{content:''}
.profile-accordion-copy{min-width:0;display:grid;gap:2px}
.profile-accordion-copy>strong{font-size:1.08rem;line-height:1.15}
.profile-accordion-copy>small{color:var(--muted);font-size:.83rem;line-height:1.3}
.profile-accordion-side{display:flex;align-items:center;gap:12px;flex:0 0 auto;color:var(--muted);font-size:.84rem}
.profile-accordion-side i{font-style:normal;font-size:1.25rem;line-height:1;transition:transform .16s ease}
.profile-main-accordion[open]>.profile-main-accordion-summary{}.profile-main-accordion[open]>summary .profile-accordion-side i{transform:rotate(180deg)}
.profile-main-accordion[open]>summary{background:rgba(255,255,255,.02)}
.profile-accordion-body{padding:15px 17px 17px;border-top:1px solid var(--line)}
.profile-debt-summary{margin-bottom:12px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 13px}
.profile-payment-stack{display:grid;gap:8px}
.profile-subpanel{border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(0,0,0,.12);overflow:hidden}
.profile-subpanel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}
.profile-subpanel>summary>span{display:grid;gap:2px}
.profile-subpanel>summary small{color:var(--muted);font-size:.8rem}
.profile-subpanel>summary i{font-style:normal;color:var(--muted);transition:transform .16s ease}
.profile-subpanel[open]>summary i{transform:rotate(180deg)}
.profile-subpanel-body{padding:12px 14px 14px;border-top:1px solid rgba(255,255,255,.06)}
.profile-payment-toolbar{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.profile-payment-events{margin-bottom:0!important}
.profile-inline-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}
.profile-inline-heading h4{margin:2px 0 0;font-size:1.08rem}.profile-inline-heading-spaced{margin-top:18px}
.profile-league-stats-scroll{margin:0!important}
.profile-membership-grid{margin:0}
.coupon-wallet-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(180px,.5fr);gap:12px}
.coupon-claim-card{display:grid;gap:12px;padding:15px;border:1px solid rgba(219,166,56,.22);border-radius:13px;background:rgba(219,166,56,.045)}
.coupon-claim-card h4{margin:3px 0 4px;font-size:1.1rem}.coupon-claim-card p{margin:0;color:var(--muted);line-height:1.4}
.coupon-claim-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.coupon-claim-control input{min-width:0;text-transform:uppercase;letter-spacing:.11em;font-weight:800;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.coupon-wallet-summary{padding:15px;border:1px solid var(--line);border-radius:13px;background:rgba(0,0,0,.12);display:grid;align-content:center;gap:3px;text-align:center}
.coupon-wallet-summary span,.coupon-wallet-summary small{color:var(--muted)}.coupon-wallet-summary strong{font-size:2rem;color:var(--gold-bright)}
.coupon-wallet-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.coupon-wallet-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.018);display:grid;gap:10px}
.coupon-wallet-card.is-redeemed{opacity:.68}.coupon-wallet-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.coupon-wallet-card code,.admin-coupon-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;font-weight:800;color:var(--gold-bright);white-space:nowrap}
.coupon-wallet-card-copy{display:grid;gap:3px}.coupon-wallet-card-copy p{margin:0;color:var(--muted);line-height:1.35}.coupon-wallet-card>small{color:var(--muted)}
.admin-coupon-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.admin-coupon-summary article{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);display:grid;gap:3px}.admin-coupon-summary span{color:var(--muted)}.admin-coupon-summary strong{font-size:1.5rem;color:var(--gold-bright)}
.admin-coupon-table td:nth-child(2) strong,.admin-coupon-table td:nth-child(2) small{display:block}.admin-coupon-table td:nth-child(2) small{margin-top:4px;color:var(--muted);max-width:360px;line-height:1.3}
/* El encabezado del modal ya comunica que se trata del resultado: evita repetir la palabra Resultados dentro del contenido. */
.player-month-results-view .vote-results-heading .eyebrow:empty{display:none}

@media(max-width:900px){
  .profile-hero-identity{grid-template-columns:1fr}.profile-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .profile-hero-card{padding:14px;gap:14px;margin-bottom:12px}.profile-hero-identity{gap:14px}.profile-hero-card .profile-identity{align-items:center}.profile-hero-card .user-avatar.large{width:62px;height:62px;flex-basis:62px}.profile-hero-card .profile-identity h3{font-size:1.55rem}
  .profile-hero-card .profile-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.profile-hero-card .profile-facts>div{padding:8px 9px}.profile-overview-grid{gap:7px}.profile-overview-grid article{padding:10px}.profile-overview-grid strong{font-size:1.15rem}.profile-overview-grid small{font-size:.75rem}
  .profile-main-accordion>summary{padding:13px 12px;align-items:flex-start}.profile-accordion-copy>small{font-size:.78rem}.profile-accordion-side{gap:7px;text-align:right;font-size:.78rem}.profile-accordion-body{padding:11px 10px 13px}
  .profile-debt-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-bottom:11px}.profile-debt-summary>div{padding:9px;background:rgba(0,0,0,.12);border-radius:9px}
  .profile-subpanel>summary{padding:11px}.profile-subpanel-body{padding:10px}.profile-payment-toolbar{display:grid;grid-template-columns:1fr}.profile-payment-toolbar .btn{width:100%}
  .coupon-wallet-layout{grid-template-columns:1fr}.coupon-wallet-summary{grid-row:auto}.coupon-claim-card{padding:12px}.coupon-claim-control{grid-template-columns:1fr}.coupon-claim-control .btn{width:100%}.coupon-wallet-grid{grid-column:auto;grid-template-columns:1fr}.coupon-wallet-card{padding:12px}.coupon-wallet-card code{font-size:.83rem;letter-spacing:.055em}
  .admin-coupon-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.admin-coupon-summary article{padding:10px 8px;text-align:center}.admin-coupon-summary span{font-size:.72rem}.admin-coupon-summary strong{font-size:1.25rem}
}
@media(max-width:420px){.profile-overview-grid{grid-template-columns:1fr 1fr}.profile-accordion-side>span{display:none}.coupon-wallet-card-head{align-items:flex-start;flex-direction:column}.admin-coupon-summary{grid-template-columns:1fr}}

/* v0.7.126 · Perfil del jugador: navegación continua, menos cajas y estados activos luminosos */
.player-profile-page{
  --profile-line:rgba(255,255,255,.09);
  --profile-line-soft:rgba(255,255,255,.055);
  --profile-glow:rgba(219,166,56,.12);
  --profile-glow-strong:rgba(219,166,56,.2);
}

/* Cabecera: una sola superficie, sin mosaico de cuadros internos. */
.player-profile-page .profile-hero-card{
  position:relative;
  gap:20px;
  margin-bottom:22px;
  padding:20px 4px 18px;
  border:0;
  border-top:1px solid var(--profile-line-soft);
  border-bottom:1px solid var(--profile-line);
  border-radius:0;
  background:linear-gradient(90deg,rgba(219,166,56,.035),transparent 36%,transparent 68%,rgba(255,255,255,.015));
  box-shadow:none;
}
.player-profile-page .profile-hero-identity{padding:0 10px;}
.player-profile-page .profile-hero-card .profile-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--profile-line-soft);
  border-bottom:1px solid var(--profile-line-soft);
}
.player-profile-page .profile-hero-card .profile-facts>div{
  padding:10px 14px;
  border:0;
  border-right:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
}
.player-profile-page .profile-hero-card .profile-facts>div:nth-child(2n){border-right:0;}
.player-profile-page .profile-hero-card .profile-facts>div:nth-child(n+3){border-top:1px solid var(--profile-line-soft);}

/* Resumen rápido: franja de datos continua con divisores en vez de cuatro tarjetas. */
.player-profile-page .profile-overview-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  padding:0 10px;
}
.player-profile-page .profile-overview-grid article{
  position:relative;
  padding:10px 16px;
  border:0;
  border-right:1px solid var(--profile-line-soft);
  background:transparent;
}
.player-profile-page .profile-overview-grid article:last-child{border-right:0;}
.player-profile-page .profile-overview-grid article::before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:2px;
  border-radius:999px;
  background:linear-gradient(180deg,transparent,rgba(219,166,56,.45),transparent);
  opacity:.4;
}
.player-profile-page .profile-overview-grid article:first-child::before{display:none;}

/* Navegación principal: lista continua, sin una caja por sección. */
.player-profile-page .profile-accordion-list{
  display:block;
  border-top:1px solid var(--profile-line);
  border-bottom:1px solid var(--profile-line);
}
.player-profile-page .profile-main-accordion{
  position:relative;
  border:0;
  border-bottom:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.player-profile-page .profile-main-accordion:last-child{border-bottom:0;}
.player-profile-page .profile-main-accordion>summary{
  position:relative;
  min-height:70px;
  padding:13px 16px 13px 20px;
  border:0;
  background:transparent;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,padding-left .18s ease;
}
.player-profile-page .profile-main-accordion>summary::before{
  content:"";
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:3px;
  border-radius:999px;
  background:var(--gold-bright);
  box-shadow:0 0 14px rgba(219,166,56,.48);
  opacity:0;
  transform:scaleY(.45);
  transition:opacity .18s ease,transform .18s ease;
}
@media(hover:hover){
  .player-profile-page .profile-main-accordion>summary:hover{
    background:linear-gradient(90deg,rgba(219,166,56,.075),rgba(255,255,255,.012) 42%,transparent);
  }
}
.player-profile-page .profile-main-accordion>summary:active{
  background:linear-gradient(90deg,rgba(219,166,56,.14),rgba(255,255,255,.025) 50%,transparent);
}
.player-profile-page .profile-main-accordion[open]>summary{
  padding-left:24px;
  background:linear-gradient(90deg,rgba(219,166,56,.105),rgba(219,166,56,.025) 45%,transparent);
  box-shadow:inset 0 -1px rgba(219,166,56,.08);
}
.player-profile-page .profile-main-accordion[open]>summary::before{
  opacity:1;
  transform:scaleY(1);
}
.player-profile-page .profile-main-accordion[open] .profile-accordion-copy>strong{color:var(--gold-bright);}
.player-profile-page .profile-main-accordion[open] .profile-accordion-side i{
  color:var(--gold-bright);
  text-shadow:0 0 12px rgba(219,166,56,.55);
}
.player-profile-page .profile-accordion-body{
  padding:16px 18px 20px 24px;
  border-top:0;
  background:linear-gradient(180deg,rgba(255,255,255,.012),transparent 90px);
}

/* Subdesplegables de pagos: renglones claros, no cajas anidadas. */
.player-profile-page .profile-payment-stack{
  gap:0;
  border-top:1px solid var(--profile-line-soft);
  border-bottom:1px solid var(--profile-line-soft);
}
.player-profile-page .profile-subpanel{
  border:0;
  border-bottom:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.player-profile-page .profile-subpanel:last-child{border-bottom:0;}
.player-profile-page .profile-subpanel>summary{
  position:relative;
  min-height:54px;
  padding:10px 12px 10px 16px;
  transition:background .16s ease,color .16s ease;
}
.player-profile-page .profile-subpanel>summary::before{
  content:"";
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:2px;
  background:var(--gold-bright);
  opacity:0;
  border-radius:999px;
  box-shadow:0 0 10px rgba(219,166,56,.45);
}
@media(hover:hover){.player-profile-page .profile-subpanel>summary:hover{background:rgba(255,255,255,.018);}}
.player-profile-page .profile-subpanel>summary:active{background:rgba(219,166,56,.09);}
.player-profile-page .profile-subpanel[open]>summary{
  background:linear-gradient(90deg,rgba(219,166,56,.07),transparent 65%);
}
.player-profile-page .profile-subpanel[open]>summary::before{opacity:1;}
.player-profile-page .profile-subpanel[open]>summary>span>strong{color:var(--gold-bright);}
.player-profile-page .profile-subpanel[open]>summary i{color:var(--gold-bright);text-shadow:0 0 10px rgba(219,166,56,.45);}
.player-profile-page .profile-subpanel-body{
  padding:11px 12px 15px 16px;
  border-top:0;
  background:rgba(0,0,0,.07);
}

/* Finanzas: resumen lineal y eventos con menos contenedores visuales. */
.player-profile-page .profile-debt-summary{
  gap:0;
  margin-bottom:14px;
  padding:0 0 12px;
  border-bottom:1px solid var(--profile-line);
}
.player-profile-page .profile-debt-summary>div{
  padding:7px 12px;
  border-right:1px solid var(--profile-line-soft);
  background:transparent;
  border-radius:0;
}
.player-profile-page .profile-debt-summary>div:last-child{border-right:0;}
.player-profile-page .profile-payment-event{
  padding:13px 4px;
  border:0;
  border-bottom:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
}
.player-profile-page .profile-payment-event.is-enrolled{
  padding-left:12px;
  border-left:2px solid rgba(102,198,140,.6);
  background:linear-gradient(90deg,rgba(62,175,99,.045),transparent 55%);
}

/* Estadísticas: cifras en una franja, evitando una tarjeta por métrica. */
.player-profile-page .player-history-metrics{
  gap:0;
  border-top:1px solid var(--profile-line-soft);
  border-bottom:1px solid var(--profile-line-soft);
}
.player-profile-page .player-history-metrics .metric-card{
  min-height:78px;
  padding:12px 14px;
  border:0;
  border-right:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
}
.player-profile-page .player-history-metrics .metric-card:nth-child(4n){border-right:0;}
.player-profile-page .player-history-metrics .metric-card:nth-child(n+5){border-top:1px solid var(--profile-line-soft);}
.player-profile-page .player-history-metrics .metric-card strong{font-size:1.65rem;}

/* Ligas e historial: conservar agrupación funcional, pero con aspecto de lista. */
.player-profile-page .profile-membership-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--profile-line-soft);
  border-bottom:1px solid var(--profile-line-soft);
}
.player-profile-page .profile-membership-grid .membership-card{
  padding:13px 14px;
  border:0;
  border-right:1px solid var(--profile-line-soft);
  border-bottom:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
}
.player-profile-page .profile-membership-grid .membership-card:nth-child(2n){border-right:0;}
.player-profile-page .profile-history-league{
  border:0;
  border-bottom:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
}
.player-profile-page .profile-history-league-toggle{
  transition:background .16s ease,color .16s ease;
}
.player-profile-page .profile-history-league[open] .profile-history-league-toggle{
  border-bottom:0;
  color:var(--gold-bright);
  background:linear-gradient(90deg,rgba(219,166,56,.065),transparent 60%);
}

/* Cupones: entrada y contador integrados; las tarjetas quedan solo para cupones reales. */
.player-profile-page .coupon-claim-card{
  padding:12px 0 14px;
  border:0;
  border-bottom:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
}
.player-profile-page .coupon-wallet-summary{
  padding:12px 14px;
  border:0;
  border-left:1px solid var(--profile-line-soft);
  border-radius:0;
  background:transparent;
}

/* Focus accesible y luminoso para navegación por teclado. */
.player-profile-page .profile-main-accordion>summary:focus-visible,
.player-profile-page .profile-subpanel>summary:focus-visible,
.player-profile-page .profile-history-league-toggle:focus-visible{
  outline:1px solid rgba(219,166,56,.72);
  outline-offset:-1px;
  box-shadow:0 0 0 3px rgba(219,166,56,.08);
}

@media(max-width:900px){
  .player-profile-page .profile-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .player-profile-page .profile-overview-grid article:nth-child(2){border-right:0;}
  .player-profile-page .profile-overview-grid article:nth-child(n+3){border-top:1px solid var(--profile-line-soft);}
  .player-profile-page .profile-overview-grid article:nth-child(3)::before{display:none;}
}

@media(max-width:700px){
  .player-profile-page .profile-hero-card{
    padding:12px 0 10px;
    margin-bottom:14px;
    gap:12px;
  }
  .player-profile-page .profile-hero-identity{padding:0 4px;gap:12px;}
  .player-profile-page .profile-hero-card .profile-facts>div{padding:8px 9px;}
  .player-profile-page .profile-overview-grid{padding:0 2px;}
  .player-profile-page .profile-overview-grid article{padding:9px 10px;}
  .player-profile-page .profile-overview-grid article::before{display:none;}
  .player-profile-page .profile-main-accordion>summary{
    min-height:64px;
    padding:11px 8px 11px 15px;
    align-items:center;
  }
  .player-profile-page .profile-main-accordion[open]>summary{padding-left:20px;}
  .player-profile-page .profile-main-accordion>summary::before{top:10px;bottom:10px;}
  .player-profile-page .profile-accordion-side{align-self:center;}
  .player-profile-page .profile-accordion-body{padding:12px 6px 16px 14px;}
  .player-profile-page .profile-subpanel>summary{padding:10px 7px 10px 13px;}
  .player-profile-page .profile-subpanel-body{padding:10px 5px 13px 13px;}
  .player-profile-page .profile-debt-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .player-profile-page .profile-debt-summary>div{
    padding:8px 9px;
    background:transparent!important;
    border-radius:0!important;
  }
  .player-profile-page .profile-debt-summary>div:nth-child(2n){border-right:0;}
  .player-profile-page .profile-debt-summary>div:nth-child(n+3){border-top:1px solid var(--profile-line-soft);}
  .player-profile-page .player-history-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .player-profile-page .player-history-metrics .metric-card{
    min-height:68px;
    padding:10px;
    border-right:1px solid var(--profile-line-soft);
  }
  .player-profile-page .player-history-metrics .metric-card:nth-child(2n){border-right:0;}
  .player-profile-page .player-history-metrics .metric-card:nth-child(n+3){border-top:1px solid var(--profile-line-soft);}
  .player-profile-page .player-history-metrics .metric-card strong{font-size:1.4rem;}
  .player-profile-page .profile-membership-grid{grid-template-columns:1fr;}
  .player-profile-page .profile-membership-grid .membership-card{border-right:0;}
  .player-profile-page .coupon-wallet-layout{gap:0;}
  .player-profile-page .coupon-wallet-summary{
    margin-bottom:12px;
    border-left:0;
    border-bottom:1px solid var(--profile-line-soft);
  }
}

@media(max-width:420px){
  .player-profile-page .profile-accordion-copy>small{display:none;}
  .player-profile-page .profile-main-accordion>summary{min-height:58px;}
  .player-profile-page .profile-overview-grid strong{font-size:1.08rem;}
}

@media(prefers-reduced-motion:reduce){
  .player-profile-page .profile-main-accordion>summary,
  .player-profile-page .profile-main-accordion>summary::before,
  .player-profile-page .profile-subpanel>summary{transition:none!important;}
}

/* v0.7.127 · selector de pagos + cupones aplicables */
.editor-modal:has(.payment-selection-shell){
  width:min(820px,calc(100% - 28px));
  max-height:min(92dvh,860px);
}
.editor-modal:has(.payment-selection-shell) .modal-form{
  gap:14px;
}
.payment-selection-shell{
  grid-column:1/-1;
  min-width:0;
  display:grid;
  gap:0;
  border-top:1px solid rgba(255,255,255,.09);
  border-bottom:1px solid rgba(255,255,255,.09);
}
.payment-selection-guide{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:15px 2px 13px;
}
.payment-selection-guide>div{
  min-width:0;
  display:grid;
  gap:3px;
}
.payment-selection-guide strong{
  font-size:1.15rem;
  line-height:1.2;
}
.payment-selection-guide small{
  max-width:600px;
  color:var(--muted);
  line-height:1.4;
}
.payment-selection-count{
  flex:0 0 auto;
  padding:6px 9px;
  border:1px solid rgba(219,166,56,.22);
  border-radius:999px;
  color:var(--gold-bright);
  background:rgba(219,166,56,.055);
  font-size:.78rem;
  font-weight:800;
  white-space:nowrap;
}
.payment-selection-list{
  display:grid;
  gap:0;
  max-height:330px;
  overflow:auto;
  padding:0;
  border-top:1px solid rgba(255,255,255,.07);
  scrollbar-width:thin;
  overscroll-behavior:contain;
}
.payment-select-row.payment-select-item{
  position:relative;
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:13px 4px;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.065);
  border-radius:0;
  background:transparent;
  cursor:pointer;
  transition:background .16s ease,padding .16s ease;
}
.payment-select-row.payment-select-item:last-child{border-bottom:0;}
.payment-select-row.payment-select-item::before{
  content:'';
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:2px;
  border-radius:2px;
  background:transparent;
  box-shadow:none;
  transition:background .16s ease,box-shadow .16s ease;
}
@media(hover:hover){
  .payment-select-row.payment-select-item:hover{
    background:linear-gradient(90deg,rgba(255,255,255,.035),transparent 72%);
  }
}
.payment-select-row.payment-select-item:has(input:checked){
  padding-left:10px;
  border-color:rgba(255,255,255,.065);
  background:linear-gradient(90deg,rgba(219,166,56,.105),rgba(219,166,56,.025) 58%,transparent);
}
.payment-select-row.payment-select-item:has(input:checked)::before{
  background:var(--gold-bright);
  box-shadow:0 0 14px rgba(219,166,56,.46);
}
.payment-select-check{
  width:30px;
  height:30px;
  display:grid!important;
  place-items:center;
}
.payment-select-check input{
  width:18px!important;
  height:18px!important;
  margin:0;
  accent-color:var(--gold);
}
.payment-select-copy{
  min-width:0;
  display:grid!important;
  gap:3px!important;
}
.payment-select-copy>strong{
  overflow-wrap:anywhere;
  font-size:.98rem;
  line-height:1.2;
}
.payment-select-copy>small{
  color:var(--muted);
  font-size:.8rem;
  line-height:1.3;
}
.payment-select-kicker{
  display:block!important;
  width:max-content;
  color:var(--gold-bright);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.11em;
}
.payment-select-discount{
  color:#cfc7b4!important;
}
.payment-select-money{
  min-width:92px;
  display:grid!important;
  gap:1px!important;
  justify-items:end;
  text-align:right;
}
.payment-select-money strong{
  font-size:1.02rem;
  white-space:nowrap;
}
.payment-select-money small{
  color:var(--muted);
  font-size:.74rem;
  white-space:nowrap;
}
.payment-selection-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0;
  padding:12px 3px 14px;
  border-top:1px solid rgba(255,255,255,.07);
}
.payment-selection-total span{
  color:var(--muted);
  font-weight:700;
}
.payment-selection-total strong{
  font-size:1.3rem;
  color:var(--cream);
}
.payment-coupon-zone{
  display:grid;
  gap:0;
  padding:3px 0 5px;
  border-top:1px solid rgba(219,166,56,.2);
}
.payment-coupon-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:14px 3px 11px;
}
.payment-coupon-heading>div{
  display:grid;
  gap:3px;
}
.payment-coupon-heading>div>strong{font-size:1.08rem;}
.payment-coupon-heading small{
  color:var(--muted);
  line-height:1.35;
}
.payment-coupon-heading>span{
  color:var(--gold-bright);
  font-size:.78rem;
  font-weight:800;
  white-space:nowrap;
}
.payment-coupon-list{
  display:grid;
  gap:0;
  border-top:1px solid rgba(255,255,255,.065);
}
.payment-coupon-choice{
  position:relative;
  display:grid;
  grid-template-columns:22px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  margin:0;
  padding:12px 4px;
  border-bottom:1px solid rgba(255,255,255,.065);
  cursor:pointer;
  transition:background .16s ease,opacity .16s ease,padding .16s ease;
}
.payment-coupon-choice::before{
  content:'';
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:2px;
  border-radius:2px;
  background:transparent;
  transition:background .16s ease,box-shadow .16s ease;
}
.payment-coupon-choice>input{
  width:17px!important;
  height:17px!important;
  margin:0;
  accent-color:var(--gold);
}
.payment-coupon-choice:has(input:checked){
  padding-left:10px;
  background:linear-gradient(90deg,rgba(219,166,56,.11),rgba(219,166,56,.025) 62%,transparent);
}
.payment-coupon-choice:has(input:checked)::before{
  background:var(--gold-bright);
  box-shadow:0 0 14px rgba(219,166,56,.45);
}
.payment-coupon-choice.is-inapplicable:not(:has(input:checked)){
  opacity:.58;
}
@media(hover:hover){
  .payment-coupon-choice:not(.is-inapplicable):hover{
    background:linear-gradient(90deg,rgba(255,255,255,.035),transparent 72%);
  }
}
.payment-coupon-main{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:2px 9px;
  align-items:center;
}
.payment-coupon-main code{
  grid-column:1;
  width:max-content;
  color:var(--gold-bright);
  font-family:inherit;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.06em;
  white-space:nowrap;
}
.payment-coupon-main strong{
  grid-column:2;
  overflow-wrap:anywhere;
  font-size:.95rem;
}
.payment-coupon-main small{
  grid-column:1/-1;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.3;
}
.payment-coupon-value{
  color:var(--cream);
  font-size:.86rem;
  font-weight:800;
  white-space:nowrap;
}
.payment-coupon-estimate{
  grid-column:2/-1;
  color:#c9c2b3;
  font-size:.77rem;
  line-height:1.3;
}
.payment-coupon-action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 3px 13px;
}
.payment-coupon-action>span{
  color:var(--muted);
  font-size:.82rem;
  line-height:1.3;
}
.payment-coupon-preview{
  border-top:1px solid rgba(255,255,255,.045);
}
.payment-coupon-preview>span{
  color:var(--cream);
  font-weight:700;
}
.payment-coupon-preview>small{
  color:var(--muted);
  font-size:.75rem;
  line-height:1.3;
  text-align:right;
}
.payment-method-zone{
  display:grid;
  gap:11px;
  padding:14px 2px 2px;
  border-top:1px solid rgba(255,255,255,.09);
}
.payment-method-zone-head{
  display:grid;
  gap:2px;
}
.payment-method-zone-head strong{font-size:1.05rem;}
.payment-single-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:3px 14px;
  align-items:center;
}
.payment-single-summary strong,.payment-single-summary small{grid-column:1;}
.payment-single-summary small{color:var(--muted);}
.payment-single-summary b{grid-column:2;grid-row:1/3;font-size:1.08rem;white-space:nowrap;}
.coupon-wallet-balance{
  display:inline-flex;
  align-items:baseline;
  gap:5px;
  color:var(--gold-bright);
  font-weight:900;
}
.coupon-wallet-payment-hint,
.coupon-wallet-last-use,
.profile-payment-coupon-hint,
.admin-coupon-auto,
.admin-coupon-balance{
  display:block;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.35;
}
.profile-payment-coupon-hint{
  width:100%;
  margin-top:2px;
  color:var(--gold-bright);
}
.admin-coupon-type{
  display:block;
  margin-bottom:3px;
  color:var(--gold-bright);
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.coupon-admin-behavior{grid-column:1/-1;}

@media(max-width:700px){
  .editor-modal:has(.payment-selection-shell){
    width:calc(100% - 16px);
    max-height:calc(100dvh - 18px);
  }
  .editor-modal:has(.payment-selection-shell) .modal-form{gap:10px;}
  .payment-selection-guide{
    align-items:flex-start;
    padding:11px 1px 10px;
  }
  .payment-selection-guide small{font-size:.8rem;}
  .payment-selection-count{padding:5px 7px;font-size:.72rem;}
  .payment-selection-list{max-height:38dvh;}
  .payment-select-row.payment-select-item{
    grid-template-columns:27px minmax(0,1fr);
    gap:9px;
    padding:11px 2px;
  }
  .payment-select-row.payment-select-item:has(input:checked){padding-left:8px;}
  .payment-select-money{
    grid-column:2;
    min-width:0;
    justify-items:start;
    text-align:left;
    display:flex!important;
    align-items:baseline;
    gap:7px!important;
  }
  .payment-select-money strong{font-size:.98rem;}
  .payment-coupon-heading{align-items:flex-start;padding:12px 1px 9px;}
  .payment-coupon-heading>span{padding-top:2px;}
  .payment-coupon-choice{
    grid-template-columns:20px minmax(0,1fr);
    gap:9px;
    padding:10px 2px;
  }
  .payment-coupon-choice:has(input:checked){padding-left:8px;}
  .payment-coupon-value{
    grid-column:2;
    justify-self:start;
  }
  .payment-coupon-estimate{grid-column:2;}
  .payment-coupon-action{
    align-items:stretch;
    flex-direction:column;
    gap:8px;
    padding:10px 1px 12px;
  }
  .payment-coupon-preview>small{text-align:left;}
  .payment-method-zone{padding-top:12px;}
  .payment-single-summary{grid-template-columns:1fr;}
  .payment-single-summary b{grid-column:1;grid-row:auto;}
}

@media(max-width:430px){
  .payment-selection-guide>div>small{display:none;}
  .payment-selection-guide strong{font-size:1.03rem;}
  .payment-selection-count{white-space:normal;text-align:right;}
  .payment-coupon-main{grid-template-columns:1fr;}
  .payment-coupon-main code,.payment-coupon-main strong,.payment-coupon-main small{grid-column:1;}
}


/* v0.7.128 · ingreso de cupones 4-4-4 centrado y formateado en vivo */
.player-profile-page .coupon-claim-control input[data-coupon-code-input]{
  text-align:center;
  direction:ltr;
  font-variant-numeric:tabular-nums;
  letter-spacing:.13em;
  caret-color:var(--gold-bright);
  padding-left:16px;
  padding-right:16px;
}
.player-profile-page .coupon-claim-control input[data-coupon-code-input]::placeholder{
  text-align:center;
  letter-spacing:.13em;
  opacity:.58;
}
.player-profile-page .coupon-claim-control input[data-coupon-code-input]:focus{
  border-color:rgba(219,166,56,.72);
  box-shadow:0 0 0 3px rgba(219,166,56,.08),0 0 22px rgba(219,166,56,.055);
}
@media(max-width:640px){
  .player-profile-page .coupon-claim-control input[data-coupon-code-input]{
    min-height:48px;
    font-size:.96rem;
    letter-spacing:.1em;
    padding-left:10px;
    padding-right:10px;
  }
}

/* v0.7.131 · cupón seleccionable con vista previa; se aplica al enviar a Tesorería */
.payment-selection-total{
  display:grid;
  gap:0;
  padding:7px 3px 10px;
  border-top:1px solid rgba(255,255,255,.08);
}
.payment-total-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:38px;
  padding:7px 0;
}
.payment-total-line>span{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-weight:700;
}
.payment-total-line strong{white-space:nowrap;}
.payment-total-subtotal strong{
  color:var(--cream);
  font-size:1.02rem;
}
.payment-total-discount{
  position:relative;
  margin:1px -3px;
  padding:8px 9px;
  border-radius:9px;
  background:linear-gradient(90deg,rgba(219,166,56,.12),rgba(219,166,56,.035) 70%,transparent);
}
.payment-total-discount::before{
  content:'';
  position:absolute;
  left:0;
  top:6px;
  bottom:6px;
  width:2px;
  border-radius:2px;
  background:var(--gold-bright);
  box-shadow:0 0 12px rgba(219,166,56,.4);
}
.payment-total-discount>span{
  display:grid;
  gap:1px;
  padding-left:4px;
}
.payment-total-discount>span>b{
  color:var(--gold-bright);
  font-size:.86rem;
}
.payment-total-discount>span>small{
  color:#c7c0b1;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.01em;
}
.payment-total-discount>strong{
  color:var(--gold-bright)!important;
  font-size:1.08rem!important;
}
.payment-total-final{
  margin-top:2px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.065);
}
.payment-total-final>span{
  color:var(--cream);
  font-weight:800;
}
.payment-total-final>strong{
  color:var(--cream);
  font-size:1.32rem;
}
.payment-select-money small{
  max-width:120px;
  white-space:normal;
  line-height:1.15;
}
@media(max-width:640px){
  .payment-total-line{min-height:34px;padding:6px 0;gap:10px;}
  .payment-total-discount{padding:7px 8px;}
  .payment-total-discount>span>small{font-size:.68rem;}
  .payment-total-final>strong{font-size:1.2rem;}
}


/* v0.7.131 · cupones apilables en selección de pagos */
.payment-coupon-choice.is-stacked{
  background:linear-gradient(90deg,rgba(219,166,56,.14),rgba(219,166,56,.035) 68%,transparent);
}
.payment-coupon-choice.is-stacked .payment-coupon-estimate{
  color:var(--gold-bright);
  font-weight:750;
}
.payment-total-discount>span>small{
  white-space:normal;
  overflow-wrap:anywhere;
}
.payment-coupon-preview>span{
  min-width:0;
  overflow-wrap:anywhere;
}
@media(max-width:640px){
  .payment-coupon-preview{align-items:flex-start;flex-direction:column;gap:4px;}
  .payment-coupon-preview>small{text-align:left;}
}

/* RMFC v0.7.132 · Panel administrativo: navegación, legibilidad y formularios */
.admin-page{
  --admin-sidebar:238px;
  --admin-gap:18px;
  padding-top:24px;
}
.admin-command-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
  padding:0 2px 18px;
  border-bottom:1px solid rgba(255,255,255,.11);
}
.admin-command-header>div{min-width:0;max-width:760px}
.admin-command-header h2{
  margin:5px 0 6px;
  color:var(--white);
  font-family:var(--font-main);
  font-size:clamp(2.25rem,4vw,3.25rem);
  line-height:.98;
  font-weight:500;
}
.admin-command-header p{
  margin:0;
  max-width:680px;
  color:var(--muted);
  line-height:1.45;
  font-size:.9rem;
}
.admin-role-chip{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 11px;
  border:1px solid rgba(219,166,56,.3);
  border-radius:999px;
  background:rgba(219,166,56,.07);
  color:var(--gold-bright);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.04em;
}
.admin-layout{
  display:grid;
  grid-template-columns:var(--admin-sidebar) minmax(0,1fr);
  gap:var(--admin-gap);
  align-items:start;
}
.admin-main{min-width:0;display:grid;gap:12px}
.admin-sidebar-nav.admin-tabs{
  position:sticky;
  top:158px;
  z-index:8;
  display:grid;
  gap:17px;
  max-height:calc(100vh - 176px);
  overflow:auto;
  margin:0;
  padding:14px 10px 14px 0;
  border-right:1px solid rgba(255,255,255,.09);
  scrollbar-width:thin;
  scrollbar-color:rgba(219,166,56,.32) transparent;
}
.admin-nav-group{display:grid;gap:7px}
.admin-nav-group-title{
  padding:0 10px;
  color:#7f8782;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.admin-nav-items{display:grid;gap:4px}
.admin-sidebar-nav .admin-tab{
  position:relative;
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 10px 9px 12px;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:#aeb5b0;
  text-align:left;
  font-size:.84rem;
  font-weight:760;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.admin-sidebar-nav .admin-tab i{
  color:#69706c;
  font-style:normal;
  font-size:1.05rem;
  transform:translateX(-2px);
  transition:transform .16s ease,color .16s ease;
}
.admin-sidebar-nav .admin-tab:hover{
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
  color:var(--cream);
  transform:translateX(2px);
}
.admin-sidebar-nav .admin-tab:hover i{transform:translateX(1px);color:var(--gold)}
.admin-sidebar-nav .admin-tab.active,
.admin-sidebar-nav .admin-tab.is-active,
.admin-sidebar-nav .admin-tab[aria-current="page"]{
  border-color:rgba(219,166,56,.32);
  background:linear-gradient(90deg,rgba(219,166,56,.13),rgba(219,166,56,.035));
  color:var(--gold-bright);
  box-shadow:inset 3px 0 0 var(--gold),0 7px 20px rgba(0,0,0,.12);
}
.admin-sidebar-nav .admin-tab.active i,
.admin-sidebar-nav .admin-tab.is-active i{color:var(--gold-bright);transform:translateX(1px)}
.admin-mobile-selector{display:none}
.admin-context-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:92px;
  padding:13px 16px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:linear-gradient(115deg,rgba(255,255,255,.035),rgba(219,166,56,.025));
}
.admin-context-bar>div{min-width:0}
.admin-context-bar>div>span{
  display:block;
  margin-bottom:2px;
  color:var(--gold);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.admin-context-bar h3{
  margin:0;
  color:var(--white);
  font-family:var(--font-main);
  font-size:1.65rem;
  font-weight:500;
  line-height:1.05;
}
.admin-context-bar p{margin:4px 0 0;color:var(--muted);font-size:.82rem;line-height:1.35}
.admin-context-index{
  flex:0 0 auto;
  min-width:52px;
  text-align:center;
  color:#8f9691;
  font-size:.75rem;
  font-weight:800;
}
.admin-workspace{min-width:0}
.admin-workspace>.admin-block{
  margin:0;
  padding:18px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:rgba(27,32,29,.72);
  box-shadow:none;
}
.admin-block-title{
  align-items:center;
  margin-bottom:16px;
  padding-bottom:13px;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.admin-block-title>div{min-width:0;display:grid;gap:2px}
.admin-block-kicker{
  color:#757d78;
  font-size:.63rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.admin-block-title h3{margin:0!important;line-height:1.05}
.admin-primary-action{
  min-height:38px!important;
  padding:7px 12px!important;
  box-shadow:0 5px 16px rgba(219,166,56,.1);
}
.admin-primary-action:hover{box-shadow:0 0 0 3px rgba(219,166,56,.12),0 8px 20px rgba(0,0,0,.2)}

/* Filtros administrativos: menos cajas y jerarquía más clara */
.admin-page .admin-filter-grid{
  gap:11px;
  margin:0 0 14px;
  padding:12px;
  border:1px solid rgba(255,255,255,.085);
  border-left:3px solid rgba(219,166,56,.46);
  border-radius:11px;
  background:rgba(255,255,255,.022);
}
.admin-page .admin-filter-grid label,
.admin-page .admin-player-search label{
  display:grid;
  gap:5px;
  min-width:0;
}
.admin-page .admin-filter-grid label>span,
.admin-page .admin-player-search label>span{
  margin:0;
  color:#929a95;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.03em;
}
.admin-page .admin-filter-summary{
  margin:-2px 0 10px;
  color:#7f8782;
  font-size:.76rem;
  text-align:right;
}

/* Selects e inputs coherentes en administración y sus modales */
.admin-page input,
.admin-page select,
.admin-page textarea,
body:has(.admin-page) .editor-modal input,
body:has(.admin-page) .editor-modal select,
body:has(.admin-page) .editor-modal textarea{
  min-height:46px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:10px;
  background-color:#202623;
  color:var(--cream);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.018);
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.admin-page select,
body:has(.admin-page) .editor-modal select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:42px!important;
  background-image:
    linear-gradient(45deg,transparent 50%,#9aa19d 50%),
    linear-gradient(135deg,#9aa19d 50%,transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 2px),
    calc(100% - 13px) calc(50% - 2px);
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
}
.admin-page input:hover,
.admin-page select:hover,
.admin-page textarea:hover,
body:has(.admin-page) .editor-modal input:hover,
body:has(.admin-page) .editor-modal select:hover,
body:has(.admin-page) .editor-modal textarea:hover{
  border-color:rgba(255,255,255,.22);
}
.admin-page input:focus,
.admin-page select:focus,
.admin-page textarea:focus,
body:has(.admin-page) .editor-modal input:focus,
body:has(.admin-page) .editor-modal select:focus,
body:has(.admin-page) .editor-modal textarea:focus{
  outline:none!important;
  border-color:rgba(219,166,56,.72)!important;
  background-color:#242b27;
  box-shadow:0 0 0 3px rgba(219,166,56,.11)!important;
}
.admin-page select:disabled,
body:has(.admin-page) .editor-modal select:disabled{
  opacity:.55;
  background-color:#1a1f1c;
}
body:has(.admin-page) .editor-modal input[type="file"]{
  padding:5px 7px;
  line-height:1.1;
}
body:has(.admin-page) .editor-modal input[type="file"]::file-selector-button{
  min-height:34px;
  margin-right:9px;
  padding:6px 10px;
  border:1px solid rgba(219,166,56,.26);
  border-radius:8px;
  background:rgba(219,166,56,.08);
  color:var(--gold-bright);
  font:inherit;
  font-weight:800;
  cursor:pointer;
}

/* Tablas y listados: lectura más estable */
.admin-page .table-scroll{
  overflow:auto;
  overscroll-behavior-inline:contain;
  border:1px solid rgba(255,255,255,.085);
  border-radius:11px;
  background:rgba(0,0,0,.08);
  scrollbar-width:thin;
  scrollbar-color:rgba(219,166,56,.28) transparent;
}
.admin-page .table-scroll table{width:100%;margin:0;border:0;background:transparent}
.admin-page .table-scroll th{
  padding:11px 12px;
  color:#9fa6a2;
  font-size:.68rem;
  letter-spacing:.035em;
  text-transform:uppercase;
  white-space:nowrap;
}
.admin-page .table-scroll td{
  padding:12px;
  vertical-align:middle;
  border-bottom-color:rgba(255,255,255,.065);
  line-height:1.32;
}
.admin-page .table-scroll tbody tr:last-child td{border-bottom:0}
.admin-page .table-scroll tbody tr{transition:background .15s ease}
.admin-page .table-scroll tbody tr:hover td{background:rgba(219,166,56,.035)}
.admin-page .action-cell,
.admin-page .admin-table-actions{gap:5px!important}
.admin-page .action-cell .btn,
.admin-page .admin-table-actions .btn{
  min-height:31px!important;
  padding:5px 8px!important;
  border-radius:8px!important;
}
.admin-page .list-action,
.admin-page .squad-period,
.admin-page .candidate-row,
.admin-page .player-month-admin-candidate{
  border-color:rgba(255,255,255,.085);
  background:rgba(255,255,255,.018);
  box-shadow:none;
}
.admin-page .list-action{
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.admin-page .list-action:hover,
.admin-page .list-action:focus-visible{
  border-color:rgba(219,166,56,.34);
  background:rgba(219,166,56,.045);
  box-shadow:0 0 0 3px rgba(219,166,56,.07);
  transform:translateY(-1px);
  outline:none;
}
.admin-page .admin-callout{
  margin-bottom:13px;
  padding:11px 13px;
  border-radius:10px;
  border-color:rgba(219,166,56,.25);
  background:rgba(219,166,56,.055);
  color:#c7cbc8;
  line-height:1.4;
}
.admin-page .admin-coupon-summary article{
  border:0;
  border-right:1px solid rgba(255,255,255,.09);
  border-radius:0;
  background:transparent;
}
.admin-page .admin-coupon-summary article:last-child{border-right:0}
.admin-page .admin-coupon-summary{
  gap:0;
  padding:8px 0;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* Formularios de administración */
body:has(.admin-page) .editor-modal{
  width:min(960px,calc(100% - 28px));
  border-color:rgba(219,166,56,.32);
  background:#1a201d;
}
body:has(.admin-page) .editor-modal .modal-form{
  gap:13px 14px;
  padding:22px;
}
body:has(.admin-page) .editor-modal .modal-form>h2{
  margin:0 0 5px;
  padding:0 0 14px;
  border-bottom:1px solid rgba(255,255,255,.1);
  font-size:1.9rem;
  line-height:1;
}
body:has(.admin-page) .editor-modal .modal-form>label,
body:has(.admin-page) .editor-modal .field-label{
  gap:6px;
  min-width:0;
  color:#aeb5b0;
  font-size:.76rem;
  line-height:1.2;
}
body:has(.admin-page) .editor-modal .modal-form small{
  color:#7f8782;
  line-height:1.35;
}
body:has(.admin-page) .editor-modal .modal-actions{
  position:sticky;
  bottom:-1px;
  z-index:4;
  grid-column:1/-1;
  margin:5px -22px -22px!important;
  padding:13px 22px 15px;
  border-top:1px solid rgba(255,255,255,.1);
  background:linear-gradient(180deg,rgba(26,32,29,.95),#1a201d 35%);
  backdrop-filter:blur(8px);
}
body:has(.admin-page) .editor-modal .modal-actions .btn{
  min-height:40px!important;
  padding:8px 13px!important;
}
body:has(.admin-page) .editor-modal .check-row,
body:has(.admin-page) .editor-modal .payment-methods,
body:has(.admin-page) .editor-modal .match-new-team-fields,
body:has(.admin-page) .editor-modal .registration-due-dates{
  border-color:rgba(255,255,255,.09);
  background:rgba(255,255,255,.018);
}

@media(max-width:1080px){
  .admin-page{--admin-sidebar:210px;--admin-gap:14px}
  .admin-sidebar-nav .admin-tab{font-size:.8rem}
  .admin-context-bar{min-height:86px}
}

@media(max-width:900px){
  .admin-page{padding-top:18px}
  .admin-command-header{align-items:flex-start;margin-bottom:12px;padding-bottom:14px}
  .admin-command-header h2{font-size:2.45rem}
  .admin-command-header p{font-size:.84rem}
  .admin-role-chip{margin-top:3px}
  .admin-layout{display:block}
  .admin-sidebar-nav.admin-tabs{display:none!important}
  .admin-mobile-selector{
    display:grid;
    gap:5px;
    margin-bottom:10px;
    padding:10px 12px;
    border:1px solid rgba(219,166,56,.22);
    border-radius:11px;
    background:rgba(219,166,56,.035);
    color:#8f9792;
    font-size:.7rem;
    font-weight:850;
  }
  .admin-mobile-selector select{
    min-height:46px;
    font-size:.9rem;
    font-weight:800;
    color:var(--cream);
  }
  .admin-context-bar{min-height:0;margin-bottom:10px;padding:11px 13px}
  .admin-context-bar h3{font-size:1.45rem}
  .admin-context-bar p{font-size:.78rem}
  .admin-context-index{min-width:44px;font-size:.7rem}
  .admin-workspace>.admin-block{padding:14px}
  .admin-block-title{margin-bottom:13px;padding-bottom:11px}
  .admin-page .admin-filter-grid,
  .admin-page .admin-filter-results,
  .admin-page .admin-stats-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:9px}
  .admin-page .table-scroll table{min-width:700px}
  .admin-page .table-scroll th{padding:9px 10px;font-size:.65rem}
  .admin-page .table-scroll td{padding:10px;font-size:.79rem}
  body:has(.admin-page) .editor-modal{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:14px}
  body:has(.admin-page) .editor-modal .modal-form{grid-template-columns:repeat(2,minmax(0,1fr));padding:17px;gap:11px}
  body:has(.admin-page) .editor-modal .modal-actions{margin:5px -17px -17px!important;padding:11px 17px 13px}
}

@media(max-width:640px){
  .admin-page{padding-top:12px}
  .admin-command-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .admin-command-header h2{font-size:2.1rem;margin-top:3px}
  .admin-command-header p{grid-column:1/-1;font-size:.8rem;line-height:1.35}
  .admin-role-chip{min-height:30px;padding:5px 9px;font-size:.69rem}
  .admin-mobile-selector{margin-bottom:8px;padding:9px 10px}
  .admin-context-bar{align-items:flex-start}
  .admin-context-bar>div>span{font-size:.62rem}
  .admin-context-bar h3{font-size:1.35rem}
  .admin-context-bar p{margin-top:3px;font-size:.74rem}
  .admin-context-index{padding-top:2px}
  .admin-workspace>.admin-block{padding:11px;border-radius:12px}
  .admin-block-title{align-items:flex-start!important;gap:9px!important;flex-direction:column!important}
  .admin-block-title>div{width:100%}
  .admin-block-title .admin-primary-action{
    width:100%!important;
    min-width:0!important;
    justify-content:center!important;
  }
  .admin-page .admin-filter-grid,
  .admin-page .admin-filter-results,
  .admin-page .admin-stats-filter-grid{grid-template-columns:1fr!important;padding:9px;border-left-width:2px}
  .admin-page .admin-filter-summary{text-align:left}
  .admin-page .table-scroll{margin-inline:-1px;border-radius:9px}
  .admin-page .table-scroll table{min-width:650px}
  .admin-page .action-cell .btn,
  .admin-page .admin-table-actions .btn{font-size:.7rem!important;padding:5px 7px!important}
  .admin-page .admin-callout{padding:10px 11px;font-size:.78rem}
  .admin-page .admin-coupon-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-page .admin-coupon-summary article{padding:9px 6px}
  body:has(.admin-page) .editor-modal .modal-form{grid-template-columns:1fr!important;padding:14px;gap:10px}
  body:has(.admin-page) .editor-modal .modal-form>h2{font-size:1.65rem;padding-bottom:11px}
  body:has(.admin-page) .editor-modal input,
  body:has(.admin-page) .editor-modal select,
  body:has(.admin-page) .editor-modal textarea{min-height:45px;font-size:16px}
  body:has(.admin-page) .editor-modal textarea{min-height:96px}
  body:has(.admin-page) .editor-modal .modal-actions{
    margin:4px -14px -14px!important;
    padding:10px 14px 12px;
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:8px!important;
  }
  body:has(.admin-page) .editor-modal .modal-actions .btn{
    width:100%!important;
    min-width:0!important;
    justify-content:center!important;
  }
  body:has(.admin-page) .editor-modal .match-result-grid,
  body:has(.admin-page) .editor-modal .batch-result-grid,
  body:has(.admin-page) .editor-modal .match-media-section,
  body:has(.admin-page) .editor-modal .match-new-team-fields{grid-template-columns:1fr!important}
}

@media(max-width:420px){
  .admin-command-header{grid-template-columns:1fr}
  .admin-role-chip{justify-self:start}
  .admin-command-header p{grid-column:auto}
  .admin-context-bar{display:block}
  .admin-context-index{display:none}
  .admin-page .admin-coupon-summary{grid-template-columns:1fr}
  .admin-page .admin-coupon-summary article{border-right:0;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}
  .admin-page .admin-coupon-summary article:last-child{border-bottom:0}
}

/* v0.7.134 · tablas administrativas con acciones: formato móvil legible */
@media (max-width: 640px) {
  .admin-page .table-scroll:has(.admin-mobile-action-table) {
    overflow: visible;
    border: 0;
    background: transparent;
    border-radius: 0;
  }

  .admin-page .admin-mobile-action-table {
    display: block;
    min-width: 0 !important;
    width: 100%;
  }
  .admin-page .admin-mobile-action-table thead {
    display: none;
  }
  .admin-page .admin-mobile-action-table tbody {
    display: grid;
    gap: 10px;
    width: 100%;
  }
  .admin-page .admin-mobile-action-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    width: 100%;
    padding: 3px 11px 9px;
    border: 1px solid rgba(255,255,255,.09);
    border-left: 2px solid rgba(219,166,56,.28);
    border-radius: 11px;
    background: rgba(255,255,255,.018);
    overflow: hidden;
  }
  .admin-page .admin-mobile-action-table tbody tr:hover td {
    background: transparent;
  }
  .admin-page .admin-mobile-action-table tbody td {
    display: block;
    min-width: 0;
    padding: 9px 6px 8px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.055) !important;
    font-size: .82rem !important;
    line-height: 1.28;
    overflow-wrap: anywhere;
  }
  .admin-page .admin-mobile-action-table tbody td::before {
    content: attr(data-mobile-label);
    display: block;
    margin-bottom: 4px;
    color: #7f8782;
    font-size: .61rem;
    font-weight: 850;
    letter-spacing: .055em;
    line-height: 1.05;
    text-transform: uppercase;
  }
  .admin-page .admin-mobile-action-table tbody td:nth-last-child(2):not(.admin-mobile-actions-cell),
  .admin-page .admin-mobile-action-table tbody td:last-child:not(.admin-mobile-actions-cell) {
    border-bottom-color: transparent !important;
  }
  .admin-page .admin-mobile-action-table .admin-mobile-actions-cell {
    grid-column: 1 / -1;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    gap: 7px !important;
    padding: 9px 6px 1px !important;
    border-bottom: 0 !important;
  }
  .admin-page .admin-mobile-action-table .admin-mobile-actions-cell::before {
    flex: 0 0 100%;
    margin-bottom: 1px;
  }
  .admin-page .admin-mobile-action-table .admin-mobile-actions-cell .btn,
  .admin-page .admin-mobile-action-table .admin-mobile-actions-cell > button {
    flex: 1 1 112px;
    min-width: 0 !important;
    width: auto !important;
    min-height: 38px !important;
    padding: 7px 10px !important;
    justify-content: center !important;
    font-size: .76rem !important;
  }
  .admin-page .admin-mobile-action-table tbody tr:has(td[colspan]) {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
  }
  .admin-page .admin-mobile-action-table tbody tr:has(td[colspan]) td {
    padding: 13px 10px !important;
    text-align: center;
    border: 1px dashed rgba(255,255,255,.1) !important;
    border-radius: 10px;
  }
  .admin-page .admin-mobile-action-table tbody tr:has(td[colspan]) td::before {
    display: none;
  }
}

@media (max-width: 390px) {
  .admin-page .admin-mobile-action-table tbody tr {
    grid-template-columns: 1fr;
  }
  .admin-page .admin-mobile-action-table tbody td {
    border-bottom: 1px solid rgba(255,255,255,.055) !important;
  }
  .admin-page .admin-mobile-action-table .admin-mobile-actions-cell {
    grid-column: 1;
  }
}

/* RMFC v0.7.135 · Admin continuo + transición de navegación principal */
.section-entering{
  animation:rmfc-section-enter .22s cubic-bezier(.2,.75,.25,1) both;
}
@keyframes rmfc-section-enter{
  from{opacity:.72;transform:translateY(7px)}
  to{opacity:1;transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce){
  .section-entering{animation:none!important}
}

/* Administración: una superficie de trabajo, no cajas anidadas */
.admin-page .admin-main{
  min-width:0;
  border-left:1px solid rgba(255,255,255,.07);
  padding-left:clamp(16px,2.2vw,28px);
}
.admin-page .admin-context-bar{
  border:0;
  border-bottom:1px solid rgba(255,255,255,.09);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:4px 2px 15px;
  margin-bottom:8px;
}
.admin-page .admin-workspace>.admin-block,
.admin-page .admin-workspace>.admin-coupon-block{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:14px 2px 4px!important;
}
.admin-page .admin-block-title,
.admin-page .admin-workspace>.admin-block>.section-title-row{
  margin-bottom:12px;
  padding:0 0 12px;
  border-bottom:1px solid rgba(255,255,255,.085);
}
.admin-page .admin-block-kicker{opacity:.78}

/* Filtros: franja integrada */
.admin-page .admin-filter-grid,
.admin-page .admin-filter-results,
.admin-page .admin-stats-filter-grid,
.admin-page .admin-match-filter-grid,
.admin-page .admin-player-search{
  border:0!important;
  border-left:2px solid rgba(219,166,56,.42)!important;
  border-radius:0!important;
  background:linear-gradient(90deg,rgba(219,166,56,.045),transparent 58%)!important;
  box-shadow:none!important;
  padding:10px 12px!important;
}

/* Listas administrativas: filas con divisores, sin tarjeta por registro */
.admin-page .card-list{gap:0!important}
.admin-page .list-action,
.admin-page .squad-period,
.admin-page .candidate-row,
.admin-page .player-month-admin-candidate{
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.075)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.admin-page .list-action:first-child,
.admin-page .squad-period:first-child,
.admin-page .candidate-row:first-child{border-top:1px solid rgba(255,255,255,.075)!important}
.admin-page .squad-period+.squad-period{margin-top:0!important}
.admin-page .list-action:hover,
.admin-page .list-action:focus-visible,
.admin-page .squad-period:hover{
  background:linear-gradient(90deg,rgba(219,166,56,.055),transparent 65%)!important;
  box-shadow:inset 2px 0 0 rgba(219,166,56,.55)!important;
  transform:none!important;
}
.admin-page .member-chips span{
  background:transparent!important;
  border-color:rgba(255,255,255,.11)!important;
}

/* Tablas: integradas al panel */
.admin-page .table-scroll{
  border:0!important;
  border-top:1px solid rgba(255,255,255,.085)!important;
  border-bottom:1px solid rgba(255,255,255,.085)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.admin-page .table-scroll th{background:rgba(255,255,255,.018)}
.admin-page .table-scroll tbody tr:hover td{background:rgba(219,166,56,.028)}

/* Callouts dejan de ser otra caja salvo alertas visuales necesarias */
.admin-page .admin-callout{
  border:0!important;
  border-left:2px solid rgba(219,166,56,.42)!important;
  border-radius:0!important;
  background:linear-gradient(90deg,rgba(219,166,56,.055),transparent 72%)!important;
  box-shadow:none!important;
}

/* Formularios internos y bloques de edición: menos contenedores */
.admin-page .match-stat-section,
.admin-page .match-media-section,
.admin-page .match-mvp-panel,
.admin-page .admin-callup-player,
.admin-page .registration-due-dates,
.admin-page .match-new-team-fields{
  box-shadow:none!important;
}
.admin-page .match-stat-section,
.admin-page .match-media-section{
  border-color:rgba(255,255,255,.09)!important;
  background:rgba(255,255,255,.012)!important;
}

@media(max-width:900px){
  .admin-page .admin-main{
    border-left:0;
    padding-left:0;
  }
  .admin-page .admin-context-bar{
    padding:5px 1px 11px;
    margin-bottom:5px;
  }
  .admin-page .admin-workspace>.admin-block,
  .admin-page .admin-workspace>.admin-coupon-block{
    padding:10px 0 2px!important;
  }
}

@media(max-width:640px){
  .admin-page .admin-mobile-selector{
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.09)!important;
    border-radius:0!important;
    background:transparent!important;
    padding:8px 0 12px!important;
  }
  .admin-page .admin-mobile-selector select{background-color:#202623}
  .admin-page .admin-workspace>.admin-block>.section-title-row,
  .admin-page .admin-block-title{padding-bottom:10px}
  .admin-page .admin-filter-grid,
  .admin-page .admin-filter-results,
  .admin-page .admin-stats-filter-grid,
  .admin-page .admin-match-filter-grid,
  .admin-page .admin-player-search{padding:9px 9px!important}
  .admin-page .list-action,
  .admin-page .squad-period,
  .admin-page .candidate-row,
  .admin-page .player-month-admin-candidate{padding-left:2px!important;padding-right:2px!important}
}


/* RMFC v0.7.136 · Formularios Admin PC + cupo configurable de partidos */
.signup-live-list-head>div{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.signup-goalkeeper-reserve{color:var(--gold-bright)!important;font-size:.68rem!important;font-weight:800;letter-spacing:.02em}

@media (min-width:901px){
  body:has(.admin-page) .editor-modal{
    width:min(1040px,calc(100% - 46px));
    max-height:min(88vh,860px);
    border:1px solid rgba(219,166,56,.32);
    border-radius:18px;
    background:linear-gradient(145deg,#1a201d,#151a17 70%);
    box-shadow:0 24px 70px rgba(0,0,0,.48),0 0 0 1px rgba(255,255,255,.025) inset;
  }
  body:has(.admin-page) .editor-modal .modal-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:22px;
    row-gap:16px;
    padding:26px 28px;
    align-items:start;
  }
  body:has(.admin-page) .editor-modal .modal-form>h2{
    grid-column:1/-1;
    margin-bottom:2px;
    padding-bottom:17px;
    font-size:2rem;
    letter-spacing:.01em;
  }
  body:has(.admin-page) .editor-modal .admin-callout,
  body:has(.admin-page) .editor-modal .match-team-policy,
  body:has(.admin-page) .editor-modal .form-error,
  body:has(.admin-page) .editor-modal .payment-event-due-grid,
  body:has(.admin-page) .editor-modal .match-result-grid,
  body:has(.admin-page) .editor-modal .match-media-section,
  body:has(.admin-page) .editor-modal .match-stat-section,
  body:has(.admin-page) .editor-modal .match-mvp-panel{
    grid-column:1/-1;
  }
  body:has(.admin-page) .editor-modal .modal-form>label{
    display:grid;
    align-content:start;
    gap:7px;
    padding:0 1px;
    color:#c5cac7;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.018em;
  }
  body:has(.admin-page) .editor-modal .modal-form>label>small{
    min-height:0;
    margin-top:0;
    color:#858d88;
    font-size:.72rem;
    font-weight:500;
    line-height:1.35;
  }
  body:has(.admin-page) .editor-modal input,
  body:has(.admin-page) .editor-modal select,
  body:has(.admin-page) .editor-modal textarea{
    width:100%;
    min-height:48px;
    border-radius:11px;
    border-color:rgba(255,255,255,.14);
    background-color:#202723;
    padding-inline:13px;
    font-size:.9rem;
  }
  body:has(.admin-page) .editor-modal textarea{min-height:112px;resize:vertical}
  body:has(.admin-page) .editor-modal input[readonly]{
    color:#b7bdb9;
    background:#1a201d;
    border-style:dashed;
  }
  body:has(.admin-page) .editor-modal .admin-callout{
    margin:0 0 3px!important;
    padding:12px 15px!important;
    border-left-width:3px!important;
    color:#bfc5c1;
  }
  body:has(.admin-page) .editor-modal .modal-actions{
    margin:8px -28px -26px!important;
    padding:14px 28px 16px;
    justify-content:flex-end;
    gap:9px;
  }
  body:has(.admin-page) .editor-modal .modal-actions .btn{min-width:128px}
}
@media(max-width:640px){
  .signup-live-list-head>div{align-items:flex-end;max-width:52%}
  .signup-goalkeeper-reserve{font-size:.62rem!important;text-align:right}
}

/* v0.7.137 · Tesorería: navegación, visibilidad y cupones en pago individual */
.treasury-page{padding-top:42px}
.treasury-workspace{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.treasury-workspace-nav{position:sticky;top:104px;display:grid;gap:6px;padding:8px 0;border-right:1px solid rgba(255,255,255,.08)}
.treasury-workspace-tab{appearance:none;border:0;background:transparent;color:var(--muted);min-height:46px;padding:10px 16px;text-align:left;font:inherit;font-weight:800;border-radius:10px 0 0 10px;cursor:pointer;position:relative;transition:color .16s ease,background .16s ease,transform .16s ease}
.treasury-workspace-tab:hover{color:var(--cream);background:rgba(255,255,255,.035)}
.treasury-workspace-tab.active{color:var(--cream);background:linear-gradient(90deg,rgba(219,166,56,.14),rgba(219,166,56,.025))}
.treasury-workspace-tab.active::after{content:"";position:absolute;right:-1px;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--gold);box-shadow:0 0 14px rgba(219,166,56,.28)}
.treasury-workspace-content{min-width:0;animation:treasuryPanelIn .18s ease both}
@keyframes treasuryPanelIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.treasury-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:16px}
.treasury-panel-head h3{margin:3px 0 2px;font-size:1.5rem}.treasury-panel-head small{color:var(--muted)}
.treasury-count-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 11px;border:1px solid rgba(219,166,56,.28);border-radius:999px;background:rgba(219,166,56,.08);font-size:.8rem;font-weight:800;color:var(--cream);white-space:nowrap}
.treasury-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 18px;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.treasury-summary-strip article{min-width:0;padding:16px 18px;display:grid;gap:5px;border-right:1px solid rgba(255,255,255,.07)}
.treasury-summary-strip article:last-child{border-right:0}.treasury-summary-strip span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:800}.treasury-summary-strip strong{font-size:1.32rem;color:var(--cream)}.treasury-summary-strip small{font-size:.72rem;color:var(--muted);line-height:1.35}
.treasury-request-grid{gap:0;border-top:1px solid rgba(255,255,255,.08)}
.treasury-request-grid .payment-request{border:0;border-bottom:1px solid rgba(255,255,255,.08);border-radius:0;background:transparent;padding:16px 4px}
.treasury-request-grid .payment-request:hover{background:linear-gradient(90deg,rgba(219,166,56,.035),transparent)}
.treasury-request-grid .payment-request-main>strong{font-size:1rem}.treasury-request-grid .request-actions{justify-content:flex-end}
.treasury-payment-history{border:0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);border-radius:0;background:transparent;margin-top:18px}
.treasury-payment-history-content{border-top:1px solid rgba(255,255,255,.06);padding:4px 0 0}
.treasury-debt-tabs{display:flex;gap:7px;overflow-x:auto;padding:0 0 14px;margin-bottom:4px;scrollbar-width:thin}
.treasury-debt-tab{appearance:none;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--muted);border-radius:999px;min-height:38px;padding:7px 12px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font:inherit;font-size:.82rem;font-weight:800;cursor:pointer;transition:.16s ease}
.treasury-debt-tab b{min-width:21px;height:21px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.06);font-size:.7rem}
.treasury-debt-tab:hover,.treasury-debt-tab.active{color:var(--cream);border-color:rgba(219,166,56,.45);background:rgba(219,166,56,.09)}
.treasury-debt-tab.active b{background:rgba(219,166,56,.18);color:var(--gold)}
.treasury-debt-table table{min-width:760px}.treasury-debt-table td small{display:block;margin-top:3px;color:var(--muted)}
.treasury-balance-table{border-top:1px solid rgba(255,255,255,.08)}
.treasury-balance-table table{min-width:1080px}

.payment-single-shell{display:grid;gap:16px;grid-column:1/-1}
.payment-single-summary{display:grid;gap:5px;padding:2px 0 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.payment-single-summary>strong{font-size:1.12rem;color:var(--cream)}.payment-single-summary small{color:var(--muted)}
.payment-single-total{margin:0!important}
.payment-single-coupon-zone{margin-top:0}
.payment-single-coupon-zone .payment-coupon-choice.is-inapplicable{opacity:.48}
.payment-single-coupon-zone .payment-coupon-choice.is-stacked{opacity:1}

@media(max-width:900px){
  .treasury-workspace{grid-template-columns:1fr;gap:14px}
  .treasury-workspace-nav{position:static;display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding:0 0 8px;gap:4px;scrollbar-width:none}
  .treasury-workspace-nav::-webkit-scrollbar{display:none}
  .treasury-workspace-tab{flex:1 0 auto;min-height:42px;border-radius:9px;padding:9px 14px;text-align:center}
  .treasury-workspace-tab.active::after{left:10px;right:10px;top:auto;bottom:-9px;width:auto;height:3px}
  .treasury-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .treasury-summary-strip article:nth-child(2){border-right:0}.treasury-summary-strip article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.07)}
}
@media(max-width:640px){
  .treasury-page{padding-top:34px}
  .treasury-panel-head{align-items:stretch;flex-direction:column;gap:10px}.treasury-panel-head .btn{width:100%}
  .treasury-summary-strip{grid-template-columns:1fr 1fr;margin-inline:-2px}.treasury-summary-strip article{padding:13px 11px}.treasury-summary-strip strong{font-size:1.12rem}
  .treasury-request-grid .payment-request{padding:14px 2px}.treasury-request-grid .request-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.treasury-request-grid .request-actions .btn,.treasury-request-grid .request-actions a.btn{width:100%!important;min-width:0!important}
  .treasury-request-grid .request-actions .status-pill{grid-column:1/-1}
  .treasury-request-detail>summary{width:100%;padding:5px 0}
  .treasury-debt-table{overflow:visible}
  .treasury-debt-table table,.treasury-debt-table thead,.treasury-debt-table tbody,.treasury-debt-table tr,.treasury-debt-table th,.treasury-debt-table td{display:block;width:100%;min-width:0}
  .treasury-debt-table thead{display:none}.treasury-debt-table tr{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .treasury-debt-table td{display:grid;grid-template-columns:108px minmax(0,1fr);gap:10px;padding:6px 2px!important;border:0!important;align-items:start}
  .treasury-debt-table td::before{content:attr(data-label);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}
  .treasury-player-action .btn{width:100%!important;min-width:0!important}
  .payment-single-coupon-zone .payment-coupon-heading{align-items:flex-start}
}


/* v0.7.138 · Anotarse: contador único y cabecera en vivo simplificada */
.signup-status-stack{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px}
.signup-status-stack>small{color:var(--muted);font-size:.74rem;font-weight:700;line-height:1;white-space:nowrap}
.signup-live-list-head>.signup-live-indicator{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.72rem;white-space:nowrap}
.signup-live-list-head>.signup-live-indicator i{margin-right:0}
@media(max-width:640px){
  .signup-status-stack>small{font-size:.7rem}
  .signup-live-list-head>.signup-live-indicator{font-size:.68rem}
}
