:root {
  --navy: #0b1f3a;
  --navy-2: #122e50;
  --ink: #17243a;
  --muted: #66758a;
  --bg: #f4f7fb;
  --surface: #ffffff;
  --line: #dfe6ef;
  --orange: #ff7a1a;
  --orange-2: #ff9f43;
  --green: #19a974;
  --green-soft: #e8f8f1;
  --red: #df4c5a;
  --red-soft: #fff0f2;
  --yellow: #f3b61f;
  --blue: #2f7ee6;
  --blue-soft: #ebf3ff;
  --purple: #7556d8;
  --shadow: 0 18px 50px rgba(16, 38, 68, .11);
  --shadow-sm: 0 8px 24px rgba(16, 38, 68, .08);
  --radius-xl: 28px;
  --radius-lg: 20px;
  --radius-md: 14px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(47,126,230,.08), transparent 28rem),
    radial-gradient(circle at 90% 20%, rgba(255,122,26,.08), transparent 30rem),
    var(--bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
.hidden { display: none !important; }
.muted { color: var(--muted); }

.app-shell { min-height: 100vh; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  height: 76px;
  padding: 0 clamp(18px, 4vw, 64px);
  color: white;
  background: rgba(11,31,58,.94);
  backdrop-filter: blur(16px);
  box-shadow: 0 8px 30px rgba(4,17,34,.18);
}
.brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; color: var(--orange); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 15px; }
.brand-mark svg { width: 32px; }
.brand strong { display: block; font-size: 1.02rem; line-height: 1.05; letter-spacing: -.02em; }
.brand small { color: var(--orange-2); font-weight: 900; letter-spacing: .2em; font-size: .66rem; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.contest-picker { display: flex; align-items: center; gap: 9px; padding: 7px 9px 7px 13px; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: rgba(255,255,255,.08); }
.contest-picker span { font-size: .72rem; color: rgba(255,255,255,.7); text-transform: uppercase; letter-spacing: .11em; font-weight: 800; }
.contest-picker select { max-width: 220px; color: white; background: transparent; border: 0; font-weight: 800; outline: none; }
.contest-picker option { color: var(--ink); }
.icon-button { width: 44px; height: 44px; display: grid; place-items: center; color: white; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: rgba(255,255,255,.08); }
.icon-button svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

main { width: min(1440px, 100%); margin: 0 auto; padding: 34px clamp(16px, 4vw, 60px) 120px; }
.view { display: none; animation: fadeIn .28s ease; }
.view.active { display: block; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--orange); font-size: .73rem; letter-spacing: .14em; font-weight: 900; text-transform: uppercase; }
.hero-card {
  position: relative;
  overflow: hidden;
  min-height: 390px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  align-items: center;
  gap: 48px;
  padding: clamp(34px, 6vw, 78px);
  color: white;
  background:
    linear-gradient(120deg, rgba(11,31,58,.98), rgba(18,46,80,.92)),
    var(--navy);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}
.hero-card::before,
.hero-card::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.hero-card::before { width: 420px; height: 420px; right: -120px; top: -190px; border: 70px solid rgba(255,122,26,.12); }
.hero-card::after { width: 240px; height: 240px; left: 46%; bottom: -180px; border: 45px solid rgba(47,126,230,.14); }
.hero-copy, .hero-score { position: relative; z-index: 1; }
.hero-copy h1 { max-width: 780px; margin: 16px 0 18px; font-size: clamp(2.45rem, 5.5vw, 5.4rem); line-height: .94; letter-spacing: -.06em; }
.hero-copy h1 span { color: var(--orange); }
.hero-copy p { max-width: 650px; margin: 0; color: rgba(255,255,255,.75); font-size: clamp(1rem, 1.7vw, 1.18rem); line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 20px; border: 0; border-radius: 13px; font-weight: 850; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: white; background: linear-gradient(135deg, var(--orange), #ff5f22); box-shadow: 0 10px 25px rgba(255,122,26,.28); }
.button.secondary { color: white; background: var(--navy); box-shadow: 0 8px 20px rgba(11,31,58,.16); }
.button.ghost { color: white; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16); }
.button.ghost.dark { color: var(--navy); background: white; border: 1px solid var(--line); }
.button.danger { color: white; background: var(--red); }
.button.full { width: 100%; }
.text-button { padding: 0; color: var(--blue); background: none; border: 0; font-weight: 850; }
.hero-score { display: flex; align-items: center; gap: 22px; padding: 24px; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; background: rgba(255,255,255,.08); backdrop-filter: blur(12px); }
.progress-ring { --progress: 0; width: 112px; aspect-ratio: 1; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--orange) calc(var(--progress) * 1%), rgba(255,255,255,.14) 0); }
.progress-ring::before { content:""; width: 82px; aspect-ratio:1; grid-area: 1/1; border-radius:50%; background: var(--navy-2); }
.progress-ring > div { z-index:1; grid-area:1/1; text-align:center; }
.progress-ring strong { font-size: 2rem; }
.progress-ring span { color: rgba(255,255,255,.62); font-weight: 800; }
.hero-score small { display:block; color: rgba(255,255,255,.56); margin-bottom:8px; }
.hero-score > div:last-child > strong { display:block; font-size:1.15rem; }
.hero-score > div:last-child > span { display:block; color: var(--orange-2); margin-top:7px; font-size:.9rem; }

.status-strip { display:grid; grid-template-columns: 1fr 1.4fr 1fr; gap:1px; overflow:hidden; margin-top:18px; background: var(--line); border:1px solid var(--line); border-radius:18px; box-shadow: var(--shadow-sm); }
.status-strip > div { min-height:85px; display:flex; flex-direction:column; justify-content:center; padding:18px 24px; background:white; }
.status-strip small { color:var(--muted); font-size:.72rem; font-weight:850; text-transform:uppercase; letter-spacing:.1em; }
.status-strip strong { margin-top:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.status-dot { display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; background:var(--muted); }
.status-dot.live { background:var(--green); box-shadow:0 0 0 5px rgba(25,169,116,.12); animation:pulse 1.8s infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 9px rgba(25,169,116,0); } }

.section-heading, .page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin:58px 0 22px; }
.page-heading { align-items:center; margin-top:10px; }
.section-heading.compact { margin-top:36px; }
.section-heading h2, .page-heading h1 { margin:7px 0 0; letter-spacing:-.04em; }
.section-heading h2 { font-size:clamp(1.8rem,3vw,2.45rem); }
.page-heading h1 { font-size:clamp(2.1rem,4vw,3.4rem); }
.section-heading p { max-width:540px; margin:0; color:var(--muted); line-height:1.6; }
.heading-actions { display:flex; flex-wrap:wrap; gap:10px; }

.plan-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.plan-card { position:relative; overflow:hidden; padding:28px; background:white; border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease, border .2s ease; }
.plan-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.plan-card.featured { color:white; background:linear-gradient(150deg,var(--navy),#173f6c); border-color:transparent; }
.plan-card.featured::after { content:""; position:absolute; right:-50px; bottom:-65px; width:180px; height:180px; border:35px solid rgba(255,122,26,.16); border-radius:50%; }
.plan-badge { position:absolute; top:20px; right:20px; padding:7px 10px; color:var(--orange); background:#fff4eb; border-radius:999px; font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.09em; }
.plan-card.featured .plan-badge { color:white; background:rgba(255,255,255,.12); }
.plan-card small { color:var(--muted); font-weight:800; }
.plan-card.featured small { color:rgba(255,255,255,.58); }
.plan-card h3 { margin:10px 0 4px; font-size:2rem; letter-spacing:-.04em; }
.plan-price { margin:22px 0; font-size:2.4rem; font-weight:950; letter-spacing:-.05em; }
.plan-price span { font-size:.82rem; font-weight:750; opacity:.6; letter-spacing:0; }
.plan-list { display:grid; gap:10px; margin:0 0 24px; padding:0; list-style:none; }
.plan-list li { display:flex; align-items:center; gap:9px; color:var(--muted); }
.plan-card.featured .plan-list li { color:rgba(255,255,255,.72); }
.plan-list li::before { content:"✓"; width:21px; height:21px; display:grid; place-items:center; color:var(--green); background:var(--green-soft); border-radius:50%; font-size:.72rem; font-weight:900; }
.plan-card .button { position:relative; z-index:1; width:100%; }

.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:20px; }
.feature-card { padding:28px; background:rgba(255,255,255,.74); border:1px solid rgba(223,230,239,.86); border-radius:20px; }
.feature-icon { display:grid; place-items:center; width:42px; height:42px; color:var(--orange); background:#fff1e6; border-radius:13px; font-weight:950; }
.feature-card h3 { margin:20px 0 8px; }
.feature-card p { margin:0; color:var(--muted); line-height:1.6; }

.base-panel { min-width:min(500px,50vw); padding:18px 20px; background:white; border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow-sm); }
.base-panel small { display:block; color:var(--muted); margin-bottom:10px; font-weight:850; text-transform:uppercase; letter-spacing:.1em; }
.base-sign-chip { width:46px; min-height:49px; display:grid; place-items:center; align-content:center; gap:1px; color:white; background:var(--navy); border-radius:11px; font-weight:950; }
.base-sign-chip small { margin:0; color:rgba(255,255,255,.62); font-size:.56rem; letter-spacing:.06em; line-height:1; }
.base-sign-chip strong { font-size:1rem; line-height:1.1; }
.base-sign-chip.result { outline:3px solid rgba(25,169,116,.2); background:var(--green); }
.sign-row { display:flex; flex-wrap:wrap; gap:7px; }
.sign-chip { min-width:38px; height:36px; display:grid; place-items:center; border-radius:10px; color:white; background:var(--navy); font-weight:950; }
.sign-chip.result { outline:3px solid rgba(25,169,116,.2); background:var(--green); }
.legend-row { display:flex; flex-wrap:wrap; gap:18px; margin-bottom:20px; color:var(--muted); font-size:.86rem; font-weight:800; }
.legend-row span { display:flex; align-items:center; gap:7px; }
.legend { width:12px; height:12px; border-radius:4px; }
.legend.fixed { background:var(--green); }
.legend.double { background:var(--blue); }
.legend.triple { background:var(--purple); }
.legend.result { border:3px solid var(--orange); background:white; }
.match-analysis-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:16px; }
.analysis-card { padding:24px; background:white; border:1px solid var(--line); border-radius:21px; box-shadow:var(--shadow-sm); }
.analysis-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.match-number { width:38px; height:38px; flex:0 0 auto; display:grid; place-items:center; color:white; background:var(--navy); border-radius:12px; font-weight:950; }
.match-title { flex:1; }
.match-title small { display:block; color:var(--muted); margin-bottom:5px; }
.match-title h3 { margin:0; font-size:1.05rem; line-height:1.35; }
.coverage-pill { flex:0 0 auto; padding:7px 10px; border-radius:999px; font-size:.68rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.coverage-pill.fixed { color:#087e55; background:var(--green-soft); }
.coverage-pill.double { color:#1f68c4; background:var(--blue-soft); }
.coverage-pill.triple { color:#6244c2; background:#f0ecff; }
.probability-bars { display:grid; gap:8px; margin:22px 0 18px; }
.probability-row { display:grid; grid-template-columns:20px 1fr 42px; align-items:center; gap:9px; font-size:.82rem; font-weight:850; }
.bar { height:8px; overflow:hidden; background:#edf1f6; border-radius:999px; }
.bar span { display:block; height:100%; border-radius:inherit; background:var(--navy); }
.probability-row.selected .bar span { background:var(--orange); }
.analysis-explanation { margin:0; color:var(--muted); line-height:1.6; font-size:.91rem; }
.analysis-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; padding-top:17px; border-top:1px solid var(--line); }
.option-chips { display:flex; gap:6px; }
.option-chip { min-width:31px; height:31px; display:grid; place-items:center; color:white; background:var(--navy); border-radius:9px; font-size:.8rem; font-weight:950; }
.risk { font-size:.72rem; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.risk.medio { color:var(--yellow); }
.risk.alto, .risk.muy-alto, .risk.maximo { color:var(--red); }
.result-note { margin-top:14px; padding:11px 13px; border-radius:12px; font-size:.85rem; font-weight:800; }
.result-note.hit { color:#087e55; background:var(--green-soft); }
.result-note.miss { color:#b13040; background:var(--red-soft); }

.combination-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.stat-card { padding:18px 20px; background:white; border:1px solid var(--line); border-radius:17px; box-shadow:var(--shadow-sm); }
.stat-card small { display:block; color:var(--muted); font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.stat-card strong { display:block; margin-top:7px; font-size:1.65rem; letter-spacing:-.04em; }
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.segmented { display:inline-flex; gap:3px; padding:4px; background:#e9eef5; border-radius:13px; }
.segmented button { padding:9px 13px; color:var(--muted); background:transparent; border:0; border-radius:10px; font-size:.84rem; font-weight:850; }
.segmented button.active { color:var(--navy); background:white; box-shadow:0 3px 10px rgba(20,40,70,.08); }
.search-field { min-width:260px; display:flex; align-items:center; gap:8px; padding:0 13px; background:white; border:1px solid var(--line); border-radius:13px; }
.search-field svg { width:19px; fill:none; stroke:var(--muted); stroke-width:2; }
.search-field input { width:100%; height:42px; border:0; outline:none; background:transparent; }
.table-card { overflow:hidden; background:white; border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-sm); }
.table-scroll { overflow:auto; max-height:65vh; }
table { border-collapse:collapse; width:100%; }
.combo-table th { position:sticky; top:0; z-index:2; padding:13px 10px; color:#5e6e83; background:#f5f7fa; border-bottom:1px solid var(--line); font-size:.7rem; font-weight:950; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; }
.combo-table td { padding:12px 10px; border-bottom:1px solid #edf1f5; text-align:center; font-size:.86rem; white-space:nowrap; }
.combo-table tr:hover td { background:#fbfcfe; }
.combo-table tr.leader td { background:#fff9ef; }
.combo-table tr.eliminated { opacity:.52; }
.combo-number { font-weight:950; color:var(--navy); }
.table-sign { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:8px; background:#edf1f6; font-weight:950; }
.table-sign.hit { color:white; background:var(--green); }
.table-sign.miss { color:white; background:var(--red); }
.table-sign.live-hit { color:#9a6500; background:#fff1bf; outline:2px solid rgba(243,182,31,.22); }
.status-pill { display:inline-flex; align-items:center; padding:6px 9px; border-radius:999px; font-size:.68rem; font-weight:950; text-transform:uppercase; letter-spacing:.07em; }
.status-pill.alive { color:#087e55; background:var(--green-soft); }
.status-pill.leader { color:#9a6500; background:#fff5d8; }
.status-pill.eliminated { color:#b13040; background:var(--red-soft); }
.table-footer { display:flex; justify-content:space-between; gap:12px; padding:14px 18px; color:var(--muted); font-size:.84rem; }

.live-dashboard { display:grid; grid-template-columns:1.5fr .5fr; gap:18px; }
.leader-card { position:relative; overflow:hidden; min-height:240px; padding:30px; color:white; background:linear-gradient(140deg,var(--navy),#174979); border-radius:24px; box-shadow:var(--shadow); }
.leader-card::after { content:""; position:absolute; width:230px; height:230px; right:-60px; top:-75px; border:45px solid rgba(255,122,26,.14); border-radius:50%; }
.leader-card-head { position:relative; z-index:1; display:flex; justify-content:space-between; gap:20px; }
.leader-card small { color:rgba(255,255,255,.6); font-weight:900; letter-spacing:.11em; }
.leader-card h2 { margin:9px 0 0; font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-.05em; }
.trophy { position:relative; z-index:1; width:58px; height:58px; display:grid; place-items:center; color:var(--orange); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); border-radius:18px; font-size:2rem; }
.leader-line { position:relative; z-index:1; margin:26px 0 18px; font-size:clamp(1.1rem,2.2vw,1.6rem); font-weight:950; letter-spacing:.08em; word-spacing:.2em; }
.leader-meta { position:relative; z-index:1; color:rgba(255,255,255,.7); }
.pulse-card { padding:28px; background:white; border:1px solid var(--line); border-radius:24px; box-shadow:var(--shadow-sm); }
.pulse-card small { color:var(--muted); font-weight:900; letter-spacing:.1em; }
.pulse-number { margin-top:22px; font-size:4rem; line-height:.9; font-weight:950; letter-spacing:-.08em; color:var(--orange); }
.pulse-card strong { display:block; margin-top:8px; }
.mini-progress { height:9px; overflow:hidden; margin:26px 0 13px; background:#edf1f5; border-radius:999px; }
.mini-progress span { display:block; height:100%; background:linear-gradient(90deg,var(--green),#44cf9a); border-radius:inherit; transition:width .3s ease; }
.pulse-card p { margin:0; color:var(--muted); font-size:.86rem; }
.live-match-list { display:grid; gap:12px; }
.live-match-card { display:grid; grid-template-columns:52px minmax(180px,1.3fr) minmax(180px,.9fr) minmax(170px,.8fr); align-items:center; gap:18px; padding:18px 20px; background:white; border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow-sm); }
.live-match-index { width:42px; height:42px; display:grid; place-items:center; color:white; background:var(--navy); border-radius:12px; font-weight:950; }
.live-teams strong { display:block; }
.live-teams small { display:block; margin-top:4px; color:var(--muted); }
.live-score { display:flex; align-items:center; justify-content:center; gap:13px; }
.score-box { min-width:46px; height:43px; display:grid; place-items:center; color:var(--navy); background:#f1f4f8; border-radius:11px; font-size:1.28rem; font-weight:950; }
.score-separator { color:var(--muted); font-weight:900; }
.match-state { margin-top:5px; text-align:center; color:var(--muted); font-size:.72rem; font-weight:850; text-transform:uppercase; }
.coverage-result { justify-self:end; text-align:right; }
.coverage-result strong { display:block; }
.coverage-result span { display:inline-flex; margin-top:6px; padding:6px 9px; border-radius:999px; font-size:.7rem; font-weight:900; }
.coverage-result span.hit { color:#087e55; background:var(--green-soft); }
.coverage-result span.miss { color:#b13040; background:var(--red-soft); }
.coverage-result span.pending { color:var(--muted); background:#edf1f5; }
.leaderboard { display:grid; gap:10px; }
.leaderboard-row { display:grid; grid-template-columns:50px 1fr auto auto; align-items:center; gap:16px; padding:15px 18px; background:white; border:1px solid var(--line); border-radius:16px; }
.leaderboard-row:first-child { border-color:#f3d99b; background:#fffaf0; }
.rank { width:36px; height:36px; display:grid; place-items:center; color:var(--navy); background:#eef2f6; border-radius:11px; font-weight:950; }
.leaderboard-row:first-child .rank { color:#9a6500; background:#ffe9aa; }
.rank-line { font-weight:900; letter-spacing:.04em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rank-meta { color:var(--muted); font-size:.82rem; }
.rank-score { font-weight:950; }

.lookup-layout { display:grid; grid-template-columns:minmax(280px,.65fr) minmax(360px,1.35fr); gap:18px; }
.lookup-card, .participation-result { min-height:360px; padding:30px; background:white; border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow-sm); }
.lookup-card h2 { margin-top:0; }
.lookup-card p { color:var(--muted); line-height:1.6; }
label { display:grid; gap:7px; color:#43546b; font-size:.82rem; font-weight:850; }
input, select { width:100%; min-height:44px; padding:0 12px; color:var(--ink); background:white; border:1px solid #cfd8e5; border-radius:11px; outline:none; transition:border .18s ease, box-shadow .18s ease; }
input:focus, select:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(47,126,230,.1); }
.lookup-card label { margin:24px 0 14px; }
.participation-result.empty { display:grid; place-items:center; align-content:center; text-align:center; color:var(--muted); }
.empty-illustration { width:80px; height:80px; display:grid; place-items:center; color:var(--orange); background:#fff1e6; border-radius:25px; font-size:3rem; }
.participation-result.empty h3 { color:var(--ink); margin:22px 0 5px; }
.participation-ticket { display:grid; gap:18px; }
.ticket-head { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-bottom:18px; border-bottom:1px dashed #cfd8e5; }
.ticket-head h2 { margin:5px 0 0; }
.ticket-folio { padding:10px 13px; color:white; background:var(--navy); border-radius:12px; font-weight:950; letter-spacing:.05em; }
.ticket-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.ticket-item { padding:15px; background:#f5f7fa; border-radius:13px; }
.ticket-item small { display:block; color:var(--muted); margin-bottom:5px; }
.ticket-item strong { display:block; }

.demo-badge { padding:8px 11px; color:#9a6500; background:#fff2c9; border-radius:999px; font-size:.7rem; font-weight:950; letter-spacing:.08em; }
.notice-card { padding:18px 20px; border-radius:16px; margin-bottom:18px; }
.notice-card.warning { color:#72500c; background:#fff6d9; border:1px solid #f0dda1; }
.notice-card p { margin:5px 0 0; line-height:1.55; }
.unlock-card { max-width:520px; margin:70px auto; padding:36px; text-align:center; background:white; border:1px solid var(--line); border-radius:24px; box-shadow:var(--shadow); }
.lock-icon { width:64px; height:64px; display:grid; place-items:center; margin:0 auto; color:var(--orange); background:#fff1e6; border-radius:21px; font-size:2rem; }
.unlock-card h2 { margin-bottom:7px; }
.unlock-card p { color:var(--muted); line-height:1.6; }
.unlock-card form { display:flex; gap:8px; max-width:340px; margin:22px auto 0; }
.unlock-card small { display:block; min-height:20px; margin-top:10px; color:var(--red); }
.admin-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-bottom:18px; }
.admin-card { padding:26px; background:white; border:1px solid var(--line); border-radius:21px; box-shadow:var(--shadow-sm); }
.admin-card.wide { margin-bottom:18px; }
.card-title { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:20px; }
.card-title small { color:var(--orange); font-size:.68rem; font-weight:950; letter-spacing:.12em; }
.card-title h2 { margin:5px 0 0; font-size:1.35rem; }
.form-grid { display:grid; gap:14px; }
.form-grid.two { grid-template-columns:repeat(2,1fr); }
.admin-card .button { margin-top:18px; }
.file-drop { min-height:170px; display:grid; place-items:center; align-content:center; text-align:center; padding:20px; border:2px dashed #cad5e2; border-radius:16px; transition:border .18s ease, background .18s ease; }
.file-drop:hover { border-color:var(--orange); background:#fffaf5; }
.file-drop input { display:none; }
.file-drop span { color:var(--orange); font-size:2rem; }
.file-drop small { color:var(--muted); margin-top:5px; }
.inline-message { margin-top:12px; color:var(--green); font-size:.84rem; font-weight:800; }
.result-editor { display:grid; gap:9px; }
.result-editor-row { display:grid; grid-template-columns:46px minmax(190px,1.4fr) 130px 75px 75px; align-items:center; gap:10px; padding:12px; background:#f7f9fc; border-radius:14px; }
.result-editor-row .editor-index { width:34px; height:34px; display:grid; place-items:center; color:white; background:var(--navy); border-radius:10px; font-weight:900; }
.result-editor-row strong { font-size:.9rem; }
.result-editor-row input { text-align:center; font-weight:900; }
.participant-list { display:grid; gap:9px; max-height:380px; overflow:auto; }
.participant-row { display:grid; grid-template-columns:1fr auto; gap:10px; padding:13px; background:#f7f9fc; border-radius:13px; }
.participant-row strong { display:block; }
.participant-row small { color:var(--muted); }
.participant-row span { align-self:center; font-weight:900; color:var(--navy); }
.participant-list .empty-list { padding:28px; text-align:center; color:var(--muted); }
.stack-actions { display:flex; flex-wrap:wrap; gap:10px; }
.danger-zone { border-color:#f0cbd0; }

.bottom-nav {
  position:fixed;
  z-index:60;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  display:flex;
  gap:4px;
  padding:7px;
  color:#64758b;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(211,220,231,.96);
  border-radius:20px;
  box-shadow:0 16px 42px rgba(11,31,58,.2);
  backdrop-filter:blur(18px);
}
.bottom-nav button { min-width:82px; display:grid; place-items:center; gap:4px; padding:8px 11px; color:inherit; background:transparent; border:0; border-radius:14px; font-size:.67rem; font-weight:850; }
.bottom-nav button svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.bottom-nav button.active { color:white; background:var(--navy); }

.modal { width:min(700px,calc(100vw - 28px)); max-height:calc(100vh - 28px); overflow:auto; padding:34px; color:var(--ink); background:white; border:0; border-radius:25px; box-shadow:0 30px 90px rgba(4,18,36,.35); }
.modal::backdrop { background:rgba(4,18,36,.68); backdrop-filter:blur(5px); }
.modal h2 { margin:7px 0 5px; font-size:2rem; letter-spacing:-.04em; }
.modal-close { position:absolute; top:16px; right:16px; width:36px; height:36px; display:grid; place-items:center; color:var(--muted); background:#eef2f6; border:0; border-radius:11px; font-size:1.5rem; }
.modal form { margin-top:24px; }
.purchase-total { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:20px 0; padding:18px; color:white; background:var(--navy); border-radius:15px; }
.purchase-total strong { font-size:1.35rem; }
.check-row { display:flex; grid-template-columns:auto 1fr; align-items:flex-start; gap:9px; margin-bottom:18px; color:var(--muted); font-size:.82rem; line-height:1.5; }
.check-row input { width:18px; min-height:18px; margin-top:2px; }
.success-state { padding:35px 5px 10px; text-align:center; }
.success-icon { width:76px; height:76px; display:grid; place-items:center; margin:0 auto 22px; color:white; background:var(--green); border-radius:50%; font-size:2rem; font-weight:950; box-shadow:0 12px 28px rgba(25,169,116,.25); }
.folio-box { margin:24px auto 16px; padding:17px 20px; color:white; background:var(--navy); border-radius:15px; font-size:1.45rem; font-weight:950; letter-spacing:.08em; }
.success-state .stack-actions { justify-content:center; margin-top:22px; }
.toast { position:fixed; z-index:100; left:50%; bottom:105px; transform:translate(-50%,20px); max-width:calc(100vw - 30px); padding:13px 18px; color:white; background:#17243a; border-radius:12px; box-shadow:var(--shadow); opacity:0; pointer-events:none; transition:.24s ease; font-weight:800; }
.toast.show { opacity:1; transform:translate(-50%,0); }

@media (max-width: 1050px) {
  .hero-card { grid-template-columns:1fr; }
  .hero-score { max-width:520px; }
  .feature-grid { grid-template-columns:1fr; }
  .live-dashboard { grid-template-columns:1fr; }
  .pulse-card { display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:20px; }
  .pulse-card small, .pulse-card .mini-progress, .pulse-card p { grid-column:1/-1; }
  .pulse-number { margin:12px 0 0; }
  .live-match-card { grid-template-columns:46px 1fr auto; }
  .live-score { grid-column:2; justify-content:flex-start; }
  .coverage-result { grid-column:3; grid-row:1/3; }
  .admin-grid { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
  .topbar { height:68px; padding:0 14px; }
  .brand-mark { width:39px; height:39px; border-radius:13px; }
  .brand strong { font-size:.88rem; }
  .contest-picker span { display:none; }
  .contest-picker select { max-width:135px; font-size:.76rem; }
  main { padding:20px 13px 118px; }
  .hero-card { min-height:0; gap:28px; padding:32px 23px; border-radius:22px; }
  .hero-copy h1 { font-size:2.85rem; }
  .hero-score { padding:18px; gap:14px; }
  .progress-ring { width:90px; }
  .progress-ring::before { width:66px; }
  .progress-ring strong { font-size:1.55rem; }
  .status-strip { grid-template-columns:1fr; }
  .status-strip > div { min-height:72px; }
  .section-heading, .page-heading { align-items:flex-start; flex-direction:column; margin-top:38px; gap:16px; }
  .page-heading { margin-top:4px; }
  .base-panel { min-width:100%; width:100%; }
  .plan-grid, .match-analysis-grid { grid-template-columns:1fr; }
  .combination-stats { grid-template-columns:repeat(2,1fr); }
  .toolbar { align-items:stretch; flex-direction:column; }
  .segmented { overflow:auto; }
  .search-field { min-width:0; }
  .table-footer { flex-direction:column; }
  .live-match-card { grid-template-columns:42px 1fr; gap:12px; }
  .live-score { grid-column:2; }
  .coverage-result { grid-column:1/-1; grid-row:auto; justify-self:stretch; padding-top:11px; border-top:1px solid var(--line); text-align:left; }
  .leaderboard-row { grid-template-columns:42px 1fr auto; gap:10px; }
  .rank-meta { grid-column:2; }
  .rank-score { grid-column:3; grid-row:1/3; }
  .lookup-layout { grid-template-columns:1fr; }
  .form-grid.two, .ticket-grid { grid-template-columns:1fr; }
  .result-editor-row { grid-template-columns:36px 1fr 100px; }
  .result-editor-row input { grid-row:2; }
  .result-editor-row input:first-of-type { grid-column:2; }
  .result-editor-row input:last-of-type { grid-column:3; }
  .bottom-nav { left:0; right:0; bottom:0; transform:none; justify-content:space-around; gap:0; padding:6px 4px calc(6px + var(--safe-bottom)); border-radius:18px 18px 0 0; border-left:0; border-right:0; border-bottom:0; }
  .bottom-nav button { min-width:0; flex:1; padding:7px 2px; font-size:.58rem; }
  .bottom-nav button svg { width:20px; }
  .modal { padding:29px 20px; border-radius:21px; }
}

@media (max-width: 430px) {
  .brand small { display:none; }
  .hero-copy h1 { font-size:2.45rem; }
  .hero-actions .button { width:100%; }
  .hero-score { align-items:flex-start; flex-direction:column; }
  .combination-stats { grid-template-columns:1fr 1fr; }
  .stat-card { padding:15px; }
  .stat-card strong { font-size:1.35rem; }
  .heading-actions { width:100%; }
  .heading-actions .button { flex:1; padding:0 12px; font-size:.82rem; }
}

@media print {
  .topbar, .bottom-nav, .button, .toolbar { display:none !important; }
  main { padding:0; }
  .view { display:block !important; }
  .hero-card { color:#000; background:#fff; box-shadow:none; }
}

/* Evita que la etiqueta del plan cubra el nombre del concurso en pantallas estrechas. */
.plan-card > small { display: block; padding-right: 110px; line-height: 1.35; }
@media (max-width: 430px) {
  .plan-card { padding-top: 54px; }
  .plan-card > small { padding-right: 0; }
  .plan-badge { top: 16px; right: 16px; }
}

/* Segunda etapa: servidor, cuentas y pagos */
.server-pill { display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid rgba(255,255,255,.16); border-radius:999px; background:rgba(255,255,255,.08); color:rgba(255,255,255,.8); font-size:.69rem; font-weight:850; white-space:nowrap; }
.server-pill i { width:8px; height:8px; border-radius:50%; background:#f3b61f; box-shadow:0 0 0 4px rgba(243,182,31,.12); }
.server-pill.online i { background:#39d99a; box-shadow:0 0 0 4px rgba(57,217,154,.13); }
.server-pill.offline i { background:#df4c5a; box-shadow:0 0 0 4px rgba(223,76,90,.13); }
.account-button { height:44px; display:flex; align-items:center; gap:8px; padding:4px 12px 4px 5px; color:white; border:1px solid rgba(255,255,255,.16); border-radius:14px; background:rgba(255,255,255,.08); font-weight:850; }
.account-avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; color:var(--navy); background:var(--orange-2); font-size:.82rem; }
.demo-badge.connected { color:#0a6d49; background:#def7ec; border-color:#bdebd8; }
.notice-card.success { color:#0e6b4c; background:#eaf9f2; border-color:#c8eedf; }
.account-summary-card { padding:26px; background:linear-gradient(145deg,#0b1f3a,#153b64); color:white; border-radius:var(--radius-lg); box-shadow:var(--shadow); }
.account-summary-card h2 { margin:8px 0 5px; font-size:1.8rem; }
.account-summary-card p { color:rgba(255,255,255,.72); line-height:1.55; }
.account-summary-card .button { margin-top:10px; }
.my-participation-list { display:grid; gap:9px; margin-top:18px; }
.my-participation-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:13px 14px; color:var(--ink); text-align:left; background:white; border:0; border-radius:13px; box-shadow:0 5px 16px rgba(0,0,0,.08); }
.my-participation-row span:last-child { text-align:right; }
.my-participation-row strong, .my-participation-row small { display:block; }
.my-participation-row small { margin-top:3px; color:var(--muted); font-size:.72rem; }
.auth-modal { width:min(520px,calc(100vw - 28px)); }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-top:20px; padding:5px; background:#edf2f7; border-radius:13px; }
.auth-tabs button { min-height:42px; border:0; border-radius:10px; background:transparent; color:var(--muted); font-weight:850; }
.auth-tabs button.active { color:white; background:var(--navy); }
textarea { width:100%; resize:vertical; font:inherit; color:var(--ink); background:white; border:1px solid var(--line); border-radius:12px; padding:12px 13px; outline:none; }
textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(47,126,230,.12); }
.switch-row { display:flex !important; align-items:flex-start; gap:10px; margin:17px 0; padding:13px; background:#f3f6fa; border-radius:13px; }
.switch-row input { width:20px; min-height:20px; margin-top:1px; }
.switch-row span, .switch-row strong, .switch-row small { display:block; }
.switch-row small { margin-top:3px; color:var(--muted); font-size:.74rem; }
.result-editor-row.v2 { grid-template-columns:36px minmax(170px,1.5fr) 115px 72px 72px 110px; }
.result-editor-row.v2 input[data-result-fixture] { min-width:90px; }
.participant-row.v2 { grid-template-columns:minmax(210px,1fr) auto minmax(170px,auto); align-items:center; }
.participant-row.v2 select { min-height:40px; border:1px solid var(--line); border-radius:10px; background:white; padding:0 10px; color:var(--ink); font-weight:750; }
#scoreProviderStatus { margin-top:-8px; margin-bottom:18px; }
#payNowButton { margin-top:18px; text-decoration:none; }
.danger-zone hr { border:0; border-top:1px solid var(--line); margin:22px 0; }
.danger-zone h3 { margin:0 0 12px; }

@media (max-width: 900px) {
  .server-pill span { display:none; }
  .server-pill { padding:9px; }
  .participant-row.v2 { grid-template-columns:1fr auto; }
  .participant-row.v2 select { grid-column:1/-1; width:100%; }
  .result-editor-row.v2 { grid-template-columns:36px 1fr 100px; }
  .result-editor-row.v2 input[data-result-home] { grid-column:2; }
  .result-editor-row.v2 input[data-result-away] { grid-column:3; }
  .result-editor-row.v2 input[data-result-fixture] { grid-column:2/4; width:100%; }
}

@media (max-width: 620px) {
  .server-pill { display:none; }
  .account-button { padding-right:7px; }
  #accountLabel { display:none; }
  .account-button { width:44px; padding:4px; }
  .account-avatar { width:34px; }
  .my-participation-row { align-items:flex-start; flex-direction:column; }
  .my-participation-row span:last-child { text-align:left; }
}
.pool-mini-stats { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:14px 0 4px; }
.pool-mini-stats span { padding:9px; color:var(--muted); background:#f3f6fa; border-radius:10px; font-size:.7rem; line-height:1.25; }
.pool-mini-stats strong { display:block; color:var(--navy); font-size:1rem; }

/* v2.1: pagos y QR CoDi */
.codi-payment-panel { margin-top:18px; padding:20px; text-align:center; background:#f7fbff; border:1px solid #cfe3f4; border-radius:18px; }
.codi-payment-panel img { display:block; width:min(280px,100%); aspect-ratio:1; object-fit:contain; margin:14px auto; padding:10px; background:#fff; border:1px solid var(--line); border-radius:16px; }
.codi-payment-panel p { margin:8px 0; line-height:1.55; }
.codi-payment-panel small { display:block; color:var(--muted); line-height:1.5; }
.codi-admin-preview { display:flex; align-items:center; gap:14px; margin-top:14px; }
.codi-admin-preview img { width:116px; height:116px; object-fit:contain; padding:6px; background:#fff; border:1px solid var(--line); border-radius:14px; }
code { padding:.12rem .35rem; border-radius:.35rem; background:#eef3f8; color:#193651; }
@media (max-width:620px) { .codi-admin-preview { align-items:flex-start; flex-direction:column; } }

/* v2.2 · registro verificado y ubicación */
.phone-input-row{display:grid;grid-template-columns:auto 1fr;align-items:center;border:1px solid var(--border,#d9e0e8);border-radius:14px;overflow:hidden;background:#fff}
.phone-input-row span{padding:0 13px;font-weight:800;color:#0b1f3a;border-right:1px solid var(--border,#d9e0e8);min-height:48px;display:flex;align-items:center;background:#f4f7fa}
.phone-input-row input{border:0!important;border-radius:0!important;box-shadow:none!important}
.security-note{display:block;margin-top:10px;line-height:1.45;color:var(--muted,#657184)}
.verification-card{padding:6px 0 0}
.verification-card h3{font-size:1.55rem;margin:4px 0 8px}
.verification-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#e8f7ef;color:#087443;font-weight:900;font-size:1.5rem;margin-bottom:14px}
.verification-card input{font-size:1.55rem;letter-spacing:.35em;text-align:center;font-weight:900}
.auth-modal .form-grid.two{gap:12px}
.auth-modal select{width:100%}
@media(max-width:620px){.auth-modal .form-grid.two{grid-template-columns:1fr}.phone-input-row span{padding:0 10px}.verification-card input{letter-spacing:.25em}}
.verification-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 11px;border-radius:999px;font-size:.73rem;font-weight:850;white-space:nowrap}
.verification-pill.verified{background:#e8f7ef;color:#087443;border:1px solid #b8e3cb}
.verification-pill.pending{background:#fff4df;color:#8a5600;border:1px solid #f1d59b}
.participant-row.v2.user-row{grid-template-columns:minmax(220px,1fr) auto auto}
@media(max-width:900px){.participant-row.v2.user-row{grid-template-columns:1fr auto}.participant-row.v2.user-row>small{grid-column:1/-1}}
@media(max-width:620px){.participant-row.v2.user-row{grid-template-columns:1fr}.participant-row.v2.user-row .verification-pill{justify-self:start}}


/* v2.3.3 · lectura compacta con etiquetas BASE, DOBLE y TRIPLE */
.status-strategy { min-width:0; }
.status-strategy strong { display:block; white-space:normal; }
.status-strategy span { display:block; margin-top:4px; color:var(--muted); font-size:.75rem; font-weight:750; }
.legacy-base-panel { display:none !important; }
.plan-strategy-preview { display:grid; gap:10px; margin:18px 0; padding:14px; border:1px solid var(--line); background:#f7f9fc; border-radius:15px; }
.plan-card.featured .plan-strategy-preview { border-color:rgba(255,255,255,.12); background:rgba(255,255,255,.07); }
.strategy-preview-title { color:var(--muted); font-size:.67rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.plan-card.featured .strategy-preview-title { color:rgba(255,255,255,.62); }

.coverage-presentation { margin:0 0 22px; padding:24px; border:1px solid var(--line); background:linear-gradient(145deg,#fff,#f7faff); border-radius:24px; box-shadow:var(--shadow-sm); }
.coverage-presentation-head { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:20px; }
.coverage-presentation-head h2 { margin:5px 0 8px; font-size:clamp(1.4rem,2.3vw,2rem); letter-spacing:-.04em; }
.coverage-presentation-head p { max-width:760px; margin:0; color:var(--muted); line-height:1.6; }
.coverage-formula { flex:0 0 auto; display:grid; gap:8px; min-width:230px; padding:14px; background:var(--navy); color:white; border-radius:16px; }
.coverage-formula span { font-size:.82rem; }
.coverage-formula b { color:#ffd2ad; }
.coverage-extra-list { display:block; }
.strategy-table-scroll { width:100%; overflow-x:auto; padding:2px 0 6px; scrollbar-width:thin; }
.strategy-matrix { display:grid; grid-template-columns:minmax(76px,auto) repeat(var(--match-count),minmax(44px,1fr)); gap:7px; min-width:max-content; align-items:stretch; }
.strategy-row-label,.strategy-cell { min-height:42px; display:grid; place-items:center; border-radius:11px; font-weight:950; }
.strategy-row-label { justify-items:start; padding:0 11px; color:var(--navy); background:#eef3f8; font-size:.72rem; letter-spacing:.06em; }
.strategy-row-label.header { color:var(--muted); background:transparent; }
.strategy-row-label.base { color:white; background:var(--navy); }
.strategy-row-label.double { color:white; background:var(--blue); }
.strategy-row-label.triple { color:white; background:var(--purple); }
.strategy-cell { min-width:44px; padding:0 6px; color:var(--navy); background:#edf2f7; border:1px solid transparent; font-size:.82rem; }
.strategy-cell.match-number-cell { min-height:28px; color:var(--muted); background:transparent; font-size:.68rem; }
.strategy-cell.base { color:white; background:var(--navy); box-shadow:0 5px 12px rgba(16,39,69,.12); }
.strategy-cell.double:not(.empty) { color:#075e86; background:#e6f5ff; border-color:#adddf5; }
.strategy-cell.triple:not(.empty) { color:#5e3295; background:#f2eaff; border-color:#d6c1f2; }
.strategy-cell.empty { color:#a8b2bf; background:#f6f8fa; font-weight:700; }
.strategy-table-scroll.compact { padding-bottom:2px; }
.strategy-table-scroll.compact .strategy-matrix { grid-template-columns:minmax(58px,auto) repeat(var(--match-count),minmax(31px,1fr)); gap:4px; }
.strategy-table-scroll.compact .strategy-row-label,.strategy-table-scroll.compact .strategy-cell { min-height:31px; border-radius:8px; font-size:.65rem; }
.strategy-table-scroll.compact .strategy-row-label { padding:0 7px; font-size:.58rem; }
.strategy-table-scroll.compact .strategy-cell { min-width:31px; padding:0 3px; }
.strategy-table-scroll.compact .strategy-cell.match-number-cell { min-height:20px; font-size:.56rem; }
.plan-card.featured .strategy-row-label.header,.plan-card.featured .strategy-cell.match-number-cell { color:rgba(255,255,255,.62); }
.plan-card.featured .strategy-row-label:not(.base):not(.double):not(.triple) { background:rgba(255,255,255,.10); color:white; }
.plan-card.featured .strategy-cell.empty { color:rgba(255,255,255,.4); background:rgba(255,255,255,.07); }

.choice-breakdown { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:16px; padding:10px 12px; background:#f7f9fc; border-radius:12px; font-size:.78rem; font-weight:800; }
.choice-breakdown b { display:inline-grid; place-items:center; min-width:27px; height:27px; padding:0 7px; color:white; background:var(--navy); border-radius:8px; }
.choice-breakdown.double b,.choice-breakdown.triple b { background:var(--orange); }
.choice-breakdown small { margin-left:auto; color:var(--muted); font-weight:850; }
.choice-arrow { color:var(--muted); font-weight:950; }

@media (max-width:760px) {
  .coverage-presentation { padding:18px; }
  .coverage-presentation-head { display:grid; }
  .coverage-formula { width:100%; min-width:0; }
  .strategy-matrix { grid-template-columns:minmax(68px,auto) repeat(var(--match-count),minmax(39px,1fr)); gap:5px; }
  .strategy-row-label,.strategy-cell { min-height:38px; }
  .choice-breakdown small { width:100%; margin-left:0; }
}


/* v2.3.3 · signos adicionales alineados bajo su partido */
.strategy-row-label.addition {
  color:transparent;
  background:transparent;
  border:0;
  box-shadow:none;
  user-select:none;
}
.strategy-cell.additional {
  color:var(--navy);
  background:#fff;
  border:1px solid #dbe4ee;
  box-shadow:0 4px 10px rgba(16,39,69,.05);
}
.strategy-cell.additional.first:not(.empty) {
  color:#075e86;
  background:#e6f5ff;
  border-color:#adddf5;
}
.strategy-cell.additional.second:not(.empty) {
  color:#5e3295;
  background:#f2eaff;
  border-color:#d6c1f2;
}
.strategy-cell.additional.empty {
  color:transparent;
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}
.plan-card.featured .strategy-row-label.addition {
  background:transparent;
}
.plan-card.featured .strategy-cell.additional.empty {
  background:transparent;
  border-color:transparent;
}
.plan-card.featured .strategy-cell.additional.first:not(.empty) {
  color:#dff5ff;
  background:rgba(31,141,205,.25);
  border-color:rgba(173,221,245,.35);
}
.plan-card.featured .strategy-cell.additional.second:not(.empty) {
  color:#f0e9ff;
  background:rgba(132,92,210,.25);
  border-color:rgba(214,193,242,.35);
}


/* v2.3.3 · interfaz más limpia y jerarquía visual por tipo de elección */
.coverage-presentation-head { align-items:flex-start; }
.coverage-presentation-head > div:first-child { max-width:820px; }
.coverage-presentation-head p { max-width:680px; }
.strategy-row-label.double { color:#1f68c4; background:var(--blue-soft); }
.strategy-row-label.triple { color:#6244c2; background:#f0ecff; }
.plan-card.featured .strategy-row-label.double { color:#dff3ff; background:rgba(31,104,196,.30); }
.plan-card.featured .strategy-row-label.triple { color:#eee8ff; background:rgba(98,68,194,.32); }
.analysis-card.fixed .probability-row.selected .bar span { background:var(--green); }
.analysis-card.double .probability-row.selected .bar span { background:var(--blue); }
.analysis-card.triple .probability-row.selected .bar span { background:var(--purple); }
.analysis-footer.decision-only { margin-top:18px; padding-top:16px; }
.selection-summary { display:flex; align-items:center; gap:10px; min-height:40px; padding:8px 12px; border:1px solid transparent; border-radius:12px; }
.selection-summary small { font-size:.68rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.selection-summary strong { font-size:.94rem; letter-spacing:.04em; }
.selection-summary.fixed { color:#087e55; background:var(--green-soft); border-color:#bdebd8; }
.selection-summary.double { color:#1f68c4; background:var(--blue-soft); border-color:#c8e1ff; }
.selection-summary.triple { color:#6244c2; background:#f0ecff; border-color:#d8cdfb; }
@media (max-width:760px) {
  .analysis-footer.decision-only { align-items:flex-start; }
  .selection-summary { min-width:145px; }
}


/* v2.3.4 · análisis visual, explicación breve y contexto dinámico */
.coverage-context-badge {
  flex:0 0 auto;
  min-width:260px;
  display:grid;
  gap:5px;
  padding:13px 16px;
  text-align:right;
  color:var(--navy);
  background:#fff;
  border:1px solid var(--line);
  border-radius:15px;
  box-shadow:0 6px 18px rgba(16,38,68,.06);
}
.coverage-context-badge small {
  color:var(--muted);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.coverage-context-badge strong {
  font-size:.83rem;
  letter-spacing:.025em;
  text-transform:uppercase;
}

.analysis-card { position:relative; overflow:hidden; border-top-width:3px; }
.analysis-card.fixed { border-top-color:var(--green); }
.analysis-card.double { border-top-color:var(--blue); }
.analysis-card.triple { border-top-color:var(--purple); }
.match-number {
  width:24px;
  height:24px;
  margin-top:1px;
  color:#8f9aa9;
  background:#f3f6f9;
  border:1px solid #e4e9ef;
  border-radius:8px;
  font-size:.72rem;
  font-weight:850;
}
.match-title small { font-size:.73rem; color:#8b97a7; }
.analysis-card.fixed .probability-row.selected > span,
.analysis-card.fixed .probability-row.selected > strong { color:#087e55; }
.analysis-card.double .probability-row.selected > span,
.analysis-card.double .probability-row.selected > strong { color:#1f68c4; }
.analysis-card.triple .probability-row.selected > span,
.analysis-card.triple .probability-row.selected > strong { color:#6244c2; }
.analysis-explanation.concise {
  margin:0;
  max-width:68ch;
  color:#5f6e82;
  font-size:.86rem;
  line-height:1.5;
}
.selection-block { display:grid; gap:7px; }
.selection-block > small {
  color:#7b8798;
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.selection-signs { display:flex; gap:7px; }
.selection-sign {
  width:36px;
  height:32px;
  display:grid;
  place-items:center;
  color:#9aa5b3;
  background:#f5f7fa;
  border:1px solid #e2e7ed;
  border-radius:9px;
  font-size:.8rem;
  font-weight:950;
}
.selection-block.fixed .selection-sign.selected {
  color:#087e55;
  background:var(--green-soft);
  border-color:#a9dfc9;
  box-shadow:0 4px 10px rgba(25,169,116,.09);
}
.selection-block.double .selection-sign.selected {
  color:#1f68c4;
  background:var(--blue-soft);
  border-color:#b9d7fb;
  box-shadow:0 4px 10px rgba(47,126,230,.09);
}
.selection-block.triple .selection-sign.selected {
  color:#6244c2;
  background:#f0ecff;
  border-color:#cec2f3;
  box-shadow:0 4px 10px rgba(117,86,216,.09);
}
@media (max-width:760px) {
  .coverage-context-badge { width:100%; min-width:0; text-align:left; }
  .analysis-footer.decision-only { width:100%; }
}

/* v2.3.5 · cierre dinámico y resumen interactivo de resultados */
.result-highlights-section {
  margin-top:28px;
  padding:26px;
  background:linear-gradient(145deg,#fff,#f6f9fd);
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:var(--shadow-sm);
}
.result-highlights-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
  margin-bottom:18px;
}
.result-highlights-head h2 { margin:5px 0 8px; font-size:clamp(1.45rem,2.4vw,2rem); letter-spacing:-.04em; }
.result-highlights-head p { max-width:760px; margin:0; color:var(--muted); line-height:1.55; }
.result-summary-status {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 12px;
  color:#6b7787;
  background:#eef2f6;
  border:1px solid #dce3eb;
  border-radius:999px;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.08em;
}
.result-summary-status.live { color:#95600a; background:#fff5df; border-color:#f0d89e; }
.result-summary-status.final { color:#087e55; background:var(--green-soft); border-color:#b9e4cf; }
.result-highlight-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.result-highlight-card {
  position:relative;
  min-height:188px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  padding:18px;
  color:var(--navy);
  background:#fff;
  border:1px solid var(--line);
  border-radius:17px;
  box-shadow:0 6px 18px rgba(16,38,68,.05);
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.result-highlight-card:hover,.result-highlight-card:focus-visible { transform:translateY(-2px); box-shadow:0 12px 28px rgba(16,38,68,.11); outline:none; }
.result-highlight-card::before { content:""; position:absolute; top:0; left:17px; right:17px; height:3px; border-radius:0 0 4px 4px; background:#97a5b5; }
.result-highlight-card.best::before { background:var(--orange); }
.result-highlight-card.leaders::before { background:var(--purple); }
.result-highlight-card.coverage::before { background:var(--green); }
.result-highlight-card.misses::before { background:var(--red); }
.result-highlight-card > span { margin-top:6px; color:var(--muted); font-size:.64rem; font-weight:950; letter-spacing:.09em; }
.result-highlight-card > strong { margin-top:16px; font-size:clamp(2rem,4vw,3rem); line-height:.95; letter-spacing:-.06em; }
.result-highlight-card > b { margin-top:8px; font-size:.84rem; }
.result-highlight-card > small { margin-top:8px; color:var(--muted); font-size:.74rem; line-height:1.42; }
.result-highlight-card > i { margin-top:auto; padding-top:15px; color:#49637f; font-size:.7rem; font-style:normal; font-weight:900; }
.result-type-breakdown { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.result-type-card {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:3px 12px;
  padding:13px 15px;
  text-align:left;
  color:var(--navy);
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  cursor:pointer;
}
.result-type-card span { font-size:.77rem; font-weight:900; }
.result-type-card strong { grid-row:1/3; grid-column:2; font-size:1.2rem; }
.result-type-card small { color:var(--muted); font-size:.68rem; }
.result-type-card.fixed { border-left:4px solid var(--green); }
.result-type-card.double { border-left:4px solid var(--blue); }
.result-type-card.triple { border-left:4px solid var(--purple); }
.result-type-card:hover,.result-type-card:focus-visible { background:#f8fbff; outline:none; }

.result-detail-modal { width:min(820px,calc(100vw - 28px)); }
.result-detail-body { margin-top:22px; }
.result-detail-list { display:grid; gap:9px; }
.result-detail-row {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:13px;
  background:#f7f9fc;
  border:1px solid #e4eaf1;
  border-radius:14px;
}
.detail-match-number { min-width:42px; height:36px; display:grid; place-items:center; color:#64758b; background:#fff; border:1px solid #dfe6ee; border-radius:10px; font-size:.73rem; font-weight:950; }
.result-detail-row div { min-width:0; }
.result-detail-row div strong { display:block; overflow-wrap:anywhere; font-size:.88rem; }
.result-detail-row div small { display:block; margin-top:4px; color:var(--muted); line-height:1.4; }
.result-detail-row > b { justify-self:end; font-size:.72rem; text-align:right; }
.result-detail-row.hit > b { color:#087e55; }
.result-detail-row.miss > b { color:var(--red); }
.result-detail-row.leader-detail { border-left:4px solid var(--purple); }
.result-detail-row.leader-detail > b { color:#6244c2; }
.result-detail-empty { padding:28px; text-align:center; color:var(--muted); background:#f7f9fc; border:1px dashed #d4dde7; border-radius:15px; }

@media (max-width:900px) {
  .result-highlight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .result-highlights-section { padding:18px; }
  .result-highlights-head { display:grid; }
  .result-summary-status { justify-self:start; }
  .result-highlight-grid { grid-template-columns:1fr; }
  .result-highlight-card { min-height:158px; }
  .result-type-breakdown { grid-template-columns:1fr; }
  .result-detail-row { grid-template-columns:auto minmax(0,1fr); }
  .result-detail-row > b { grid-column:2; justify-self:start; text-align:left; }
}
@media print {
  .result-highlight-card,.result-type-card { break-inside:avoid; }
  .result-highlight-card > i { display:none; }
  .result-detail-modal { display:none !important; }
}

/* v2.3.6 · importación de marcadores desde Excel */
.results-excel-tools { display:grid; grid-template-columns:minmax(230px,1fr) auto; gap:14px 22px; align-items:center; margin:16px 0 20px; padding:16px; border:1px solid #dbe5f0; border-radius:16px; background:#f7f9fc; }
.results-excel-copy { display:grid; gap:4px; }
.results-excel-copy strong { color:var(--navy); }
.results-excel-copy small { color:var(--muted); line-height:1.45; max-width:720px; }
.results-excel-actions { justify-content:flex-end; }
.file-button { position:relative; overflow:hidden; cursor:pointer; }
.file-button input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.results-excel-tools .inline-message { grid-column:1/-1; margin:0; }
@media (max-width:900px) { .results-excel-tools { grid-template-columns:1fr; } .results-excel-actions { justify-content:flex-start; } }

/* v2.3.7 · administración segura de planes y JSON */
.config-manager-card { margin-top:18px; }
.config-admin-list { display:grid; gap:12px; margin-top:16px; }
.config-admin-row {
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,2.28fr);
  grid-template-areas:
    "main access"
    "actions actions";
  gap:14px 18px;
  align-items:start;
  padding:16px;
  background:#fff;
  border:1px solid var(--line);
  border-left:4px solid #aab6c4;
  border-radius:16px;
}
.config-admin-row.active { border-left-color:var(--green); }
.config-admin-row.is-hidden {
  border-left-color:var(--blue);
  background:#f3f6f9;
}
.config-admin-row.is-hidden .config-admin-title strong,
.config-admin-row.is-hidden .config-admin-title b,
.config-admin-row.is-hidden .config-admin-metrics,
.config-admin-row.is-hidden .config-admin-note,
.config-admin-row.is-hidden .config-admin-source {
  opacity:.52;
  text-decoration:line-through;
  text-decoration-thickness:1px;
  text-decoration-color:#8e9aa8;
}
.config-admin-row.is-hidden .config-admin-actions { opacity:1; }
.config-admin-row.is-hidden .config-show-target {
  cursor:pointer;
  border-radius:12px;
  transition:background .18s ease;
}
.config-admin-row.is-hidden .config-show-target:hover,
.config-admin-row.is-hidden .config-show-target:focus-visible {
  background:#eaf2f8;
  outline:2px solid rgba(23,111,168,.28);
  outline-offset:4px;
}

.config-admin-row.is-hidden .config-show-target:hover .config-admin-title strong,
.config-admin-row.is-hidden .config-show-target:hover .config-admin-title b,
.config-admin-row.is-hidden .config-show-target:hover .config-admin-metrics,
.config-admin-row.is-hidden .config-show-target:hover .config-admin-note,
.config-admin-row.is-hidden .config-show-target:hover .config-admin-source,
.config-admin-row.is-hidden .config-show-target:focus-visible .config-admin-title strong,
.config-admin-row.is-hidden .config-show-target:focus-visible .config-admin-title b,
.config-admin-row.is-hidden .config-show-target:focus-visible .config-admin-metrics,
.config-admin-row.is-hidden .config-show-target:focus-visible .config-admin-note,
.config-admin-row.is-hidden .config-show-target:focus-visible .config-admin-source {
  opacity:.76;
}
.config-hidden-hint {
  margin:0;
  color:#176fa8;
  font-size:.72rem;
  font-weight:800;
  text-decoration:none !important;
}

.config-admin-row.inactive { border-left-color:#8795a5; background:#f7f9fc; }
.config-admin-row.archived { border-left-color:#b58a36; background:#fffaf0; }
.config-admin-row.invalid { border-left-color:var(--red); background:#fff7f7; }
.config-admin-main { grid-area:main; min-width:0; display:grid; gap:9px; }
.config-admin-title { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.config-admin-title strong { color:var(--navy); font-size:.94rem; }
.config-admin-title b { color:var(--muted); font-size:.78rem; }
.config-status {
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:5px 9px;
  border-radius:999px;
  background:#eef2f6;
  color:#5f6e80;
  font-size:.62rem;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.config-status.active { color:#087e55; background:var(--green-soft); }
.config-status.is-hidden { color:#176fa8; background:#eaf5fc; }
.config-status.archived { color:#8b6412; background:#fff1c9; }
.config-status.invalid { color:var(--red); background:#ffe9e9; }
.config-admin-metrics { display:flex; flex-wrap:wrap; gap:8px; }
.config-admin-metrics span { padding:7px 10px; color:var(--muted); background:#f4f7fa; border-radius:10px; font-size:.7rem; }
.config-admin-metrics strong { color:var(--navy); }
.config-admin-note { margin:0; padding:9px 11px; color:#5d6674; background:#f7f9fc; border-left:3px solid #c2ccd7; border-radius:8px; font-size:.75rem; line-height:1.45; }
.config-admin-source { color:var(--muted); font-size:.66rem; line-height:1.4; }
.config-admin-actions {
  grid-area:actions;
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  width:100%;
  max-width:none;
  padding-top:12px;
  border-top:1px solid var(--line);
  overflow-x:auto;
  scrollbar-width:thin;
}
.config-admin-actions .button { flex:0 0 auto; }
.button.compact { min-height:34px; padding:7px 10px; font-size:.68rem; }
.button:disabled { opacity:.45; cursor:not-allowed; transform:none !important; }
@media (max-width:900px) {
  .config-admin-row {
    grid-template-columns:1fr;
    grid-template-areas:"main" "access" "actions";
  }
  .config-admin-actions { justify-content:flex-start; max-width:none; }
}
@media (max-width:560px) {
  .config-admin-title { align-items:flex-start; }
  .config-admin-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .config-admin-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .config-admin-actions .button { width:100%; }
}

/* v2.3.8 · navegación contextual y superficies interactivas */
.interactive-surface {
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}
.interactive-surface:focus-visible,
.interactive-stat:focus-visible,
.interactive-table-row:focus-visible {
  outline: 3px solid rgba(47,126,230,.32);
  outline-offset: 3px;
}
.hero-score.interactive-surface:hover,
.status-strip > .interactive-surface:hover,
.feature-card.interactive-surface:hover,
.coverage-presentation.interactive-surface:hover,
.analysis-card.interactive-surface:hover,
.live-match-card.interactive-surface:hover,
.leaderboard-row.interactive-surface:hover,
.pulse-card.interactive-surface:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
  border-color: rgba(47,126,230,.30);
}
.hero-score.interactive-surface:hover { background: rgba(255,255,255,.12); }
.status-strip > .interactive-surface:hover { background:#f8fbff; }
.feature-card.interactive-surface { position:relative; }
.feature-card.interactive-surface::after {
  content:'Abrir →';
  display:block;
  margin-top:18px;
  color:var(--blue);
  font-size:.78rem;
  font-weight:900;
}
.coverage-presentation.interactive-surface::after {
  content:'Ver todas las líneas →';
  display:block;
  margin-top:14px;
  color:var(--blue);
  font-size:.78rem;
  font-weight:900;
}
.plan-card.interactive-surface { cursor:pointer; }
.plan-card.interactive-surface:focus-visible { outline:3px solid rgba(255,122,26,.38); outline-offset:4px; }
.plan-card-action { pointer-events:none; }
.interactive-hint {
  position:relative;
  z-index:1;
  display:block;
  margin-top:12px;
  color:var(--muted);
  font-size:.72rem;
  font-weight:750;
  line-height:1.4;
}
.plan-card.featured .interactive-hint { color:rgba(255,255,255,.58); }
.analysis-card .interactive-hint { margin-top:14px; }

.interactive-stat {
  width:100%;
  color:var(--ink);
  text-align:left;
  font:inherit;
}
.interactive-stat:hover { transform:translateY(-2px); box-shadow:var(--shadow); border-color:rgba(47,126,230,.30); }
.interactive-table-row { cursor:pointer; }
.interactive-table-row:hover td { background:#f3f8ff; }
.interactive-table-row.leader:hover td { background:#fff5d8; }
.ux-target-flash { animation:uxTargetFlash 1.25s ease; }
@keyframes uxTargetFlash {
  0%,100% { box-shadow:inherit; }
  35% { box-shadow:0 0 0 5px rgba(47,126,230,.18), var(--shadow); }
}

.leader-card-head.interactive-surface { padding:3px; border-radius:14px; }
.leader-card-head.interactive-surface:hover { background:rgba(255,255,255,.06); }
.leader-line { display:grid; gap:10px; word-spacing:normal; letter-spacing:normal; }
.leader-line-option {
  position:relative;
  z-index:2;
  width:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:11px 12px;
  color:white;
  text-align:left;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);
  border-radius:14px;
}
.leader-line-option:hover,
.leader-line-option:focus-visible { background:rgba(255,255,255,.14); outline:none; }
.leader-line-option > b { color:var(--orange-2); font-size:.84rem; }
.leader-line-option > small { color:rgba(255,255,255,.68); font-size:.7rem; letter-spacing:0; text-align:right; }
.leader-result-signs,
.detail-line-signs { display:flex; flex-wrap:wrap; gap:4px; }
.leader-result-sign,
.detail-line-sign {
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:7px;
  font-size:.72rem;
  font-weight:950;
}
.leader-result-sign.hit,
.detail-line-sign.hit { color:white; background:var(--green); }
.leader-result-sign.miss,
.detail-line-sign.miss { color:white; background:var(--red); }
.leader-result-sign.live,
.detail-line-sign.live { color:#72500c; background:#ffe8a3; }
.leader-result-sign.pending,
.detail-line-sign.pending { color:var(--navy); background:rgba(255,255,255,.82); }
.detail-line-sign { border:1px solid var(--line); }

.combination-detail-list { display:grid; gap:8px; }
.combination-detail-match {
  width:100%;
  display:grid;
  grid-template-columns:42px 38px 1fr;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  color:var(--ink);
  text-align:left;
  background:#f7f9fc;
  border:1px solid var(--line);
  border-left-width:4px;
  border-radius:13px;
}
.combination-detail-match > span { color:var(--muted); font-size:.75rem; font-weight:900; }
.combination-detail-match > b { width:32px; height:32px; display:grid; place-items:center; color:white; border-radius:9px; }
.combination-detail-match > div strong,
.combination-detail-match > div small { display:block; }
.combination-detail-match > div small { margin-top:3px; color:var(--muted); }
.combination-detail-match.hit { border-left-color:var(--green); }
.combination-detail-match.hit > b { background:var(--green); }
.combination-detail-match.miss { border-left-color:var(--red); }
.combination-detail-match.miss > b { background:var(--red); }
.combination-detail-match.live { border-left-color:var(--yellow); }
.combination-detail-match.live > b { color:#72500c; background:#ffe8a3; }
.combination-detail-match.pending { border-left-color:#b9c5d4; }
.combination-detail-match.pending > b { color:var(--navy); background:#e7ecf2; }
.result-detail-actions,
.participation-actions,
.success-navigation { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.participation-actions .button,
.success-navigation .button { flex:1 1 190px; }

.empty-action {
  width:100%;
  color:var(--muted);
  background:#f7f9fc;
  border:1px dashed #cbd6e3;
  border-radius:13px;
  cursor:pointer;
}
.empty-action:hover { color:var(--blue); border-color:var(--blue); background:var(--blue-soft); }

@media (hover:hover) {
  .interactive-hint { opacity:.22; transition:opacity .18s ease; }
  .interactive-surface:hover .interactive-hint,
  .interactive-surface:focus-visible .interactive-hint { opacity:.9; }
}
@media (max-width:720px) {
  .leader-line-option { grid-template-columns:auto 1fr; }
  .leader-line-option > small { grid-column:1/-1; text-align:left; }
  .combination-detail-match { grid-template-columns:36px 34px 1fr; }
}

/* v2.3.9 · corrección de visibilidad administrativa de planes ocultos */


/* v2.3.10 · protección de formularios durante sincronización */
.result-draft-bar{margin:.75rem 0 .35rem;padding:.7rem .85rem;border:1px solid #f0b35a;border-radius:12px;background:#fff7e8;color:#7a4b00;font-size:.92rem;font-weight:600}
.result-editor-row.draft-unsaved{border-color:#e4a33a;background:#fffaf0;box-shadow:inset 3px 0 0 #e4a33a}
.result-editor-row.draft-unsaved strong::after{content:' · sin guardar';font-size:.72rem;font-weight:600;color:#9a6200}
#discardResultDraftButton{margin-bottom:.65rem}
.auth-draft-note{color:var(--muted);font-size:.82rem}

/* v2.3.11 · vista previa pública, historial y acceso de participante */
.analysis-access-banner,
.private-access-panel,
.history-current-notice {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px;
  margin:0 0 22px;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(135deg, rgba(255,122,26,.08), rgba(255,255,255,.96));
}
.analysis-access-banner h2,
.private-access-panel h2,
.history-current-notice h3 { margin:4px 0 8px; }
.analysis-access-banner p,
.private-access-panel p,
.history-current-notice p { margin:0; color:var(--muted); max-width:760px; }
.private-access-panel { display:block; text-align:center; padding:36px 24px; }
.private-access-panel.compact { padding:22px; }
.private-access-panel .button { margin-top:16px; }

.history-section { margin-top:34px; }
.history-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:16px; }
.history-card {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:13px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
}
.history-card h3 { margin:3px 0 0; }
.history-card p { margin:0; color:var(--muted); }
.history-status {
  position:absolute;
  top:18px;
  right:18px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(28,139,87,.12);
  color:var(--green);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
}
.history-metrics { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.history-metrics span { padding:10px; border-radius:14px; background:var(--soft); }
.history-metrics strong,.history-metrics small { display:block; }
.history-metrics small { color:var(--muted); margin-top:2px; }
.history-empty { padding:24px; border:1px dashed var(--line); border-radius:18px; text-align:center; color:var(--muted); }

.analysis-card-locked {
  border-style:dashed;
  background:linear-gradient(180deg,#fbfcfe,#f2f5f9);
}
.analysis-card-locked .analysis-card-head,
.analysis-card-locked > .button { opacity:.92; }
.coverage-pill.locked { background:#e9edf3; color:#617083; }
.locked-analysis-content { display:flex; gap:14px; align-items:flex-start; padding:18px; border-radius:16px; background:rgba(255,255,255,.8); }
.locked-analysis-icon { font-size:1.5rem; }
.locked-analysis-content strong { display:block; margin-bottom:6px; }
.locked-analysis-content p { margin:0; color:var(--muted); }
.base-sign-chip.locked { background:#eef1f5; color:#778397; border-color:#d9e0e8; }

.strategy-preview-locked { display:flex; gap:12px; align-items:center; padding:16px; border:1px dashed var(--line); border-radius:16px; background:var(--soft); }
.strategy-preview-locked strong,.strategy-preview-locked small { display:block; }
.strategy-preview-locked small { margin-top:4px; color:var(--muted); }
.strategy-preview-lock { font-size:1.35rem; }

.config-public-access {
  grid-area:access;
  display:grid;
  grid-template-columns:minmax(180px,1.2fr) minmax(110px,.55fr) minmax(180px,1fr) minmax(210px,1fr) auto;
  gap:10px;
  align-items:end;
  padding:14px 16px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#f7f9fc;
}
.config-public-access strong,.config-public-access small { display:block; }
.config-public-access small { margin-top:3px; color:var(--muted); }
.config-public-access label { font-size:.78rem; color:var(--muted); }
.config-public-access input[type="number"],
.config-public-access input[type="text"] { width:100%; margin-top:5px; }
.config-public-access .check-row { margin:0; align-self:center; }

.public-live-card .coverage-result { min-width:170px; }

@media (max-width: 820px) {
  .analysis-access-banner,
  .history-current-notice { align-items:flex-start; flex-direction:column; }
  .analysis-access-banner .button,
  .history-current-notice .button { width:100%; }
  .config-public-access { grid-template-columns:1fr 1fr; }
  .config-public-access > div,
  .config-public-access .check-row,
  .config-public-access > button { grid-column:1 / -1; }
}

@media (max-width: 560px) {
  .config-public-access { grid-template-columns:1fr; }
  .config-public-access > * { grid-column:1 !important; }
  .history-status { position:static; align-self:flex-start; }
}


/* v2.3.12 · administración segura de API-Football */
.secret-admin-card input[type="password"] {
  letter-spacing: .04em;
}
.secret-admin-card .secret-note {
  margin-bottom: 0;
}
.secret-admin-card .inline-message.success {
  color: #166534;
}
.secret-admin-card .inline-message.error {
  color: #b42318;
}


/* v2.3.13 · vinculación automática de fixture ID sin modificar el JSON */
.result-editor-row.v2{grid-template-columns:36px minmax(170px,1.5fr) 115px 72px 72px 110px}
.fixture-link-meta{grid-column:2/-1;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.5rem .65rem;border:1px solid #d9e1ea;border-radius:10px;background:#fff;color:#536172;font-size:.78rem}
.fixture-link-meta>span{font-weight:800}
.fixture-link-meta small{color:#6f7c8b}
.fixture-link-meta.linked{border-color:#9ed3b0;background:#f1fbf5;color:#17683a}
.fixture-link-meta.review{border-color:#edc477;background:#fff8e8;color:#7a5100}
.fixture-link-meta.not_found,.fixture-link-meta.error{border-color:#e5a3a3;background:#fff4f4;color:#8a2626}
.fixture-link-meta.missing_date{border-color:#b8c2ce;background:#f5f7fa;color:#4e5b68}
.fixture-candidate-control{display:flex;align-items:center;gap:.45rem;flex:1 1 100%;margin-top:.2rem}
.fixture-candidate-control select{min-width:0;flex:1}
@media (max-width:760px){
  .fixture-link-meta{grid-column:1/-1}
  .fixture-candidate-control{align-items:stretch;flex-direction:column}
}


/* v2.3.17 · carteleras renderizadas y candidatos de resultados públicos */
.web-score-tools{display:grid;gap:14px;margin:16px 0 20px;padding:16px;border:1px solid #cddbea;border-radius:16px;background:#f8fbff}
.web-score-copy{display:grid;gap:4px}.web-score-copy strong{color:var(--navy)}.web-score-copy small,.web-score-source-add small{color:var(--muted);line-height:1.45}
.web-score-source-add{display:grid;gap:6px}.web-score-source-add>label{font-size:.78rem;font-weight:900;color:var(--navy)}
.web-score-source-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.web-score-source-row input{min-width:0}
.web-score-sources{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.web-source-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid #cfd9e4;border-radius:999px;background:white;font-size:.76rem}.web-source-chip>span{font-weight:900}.web-source-chip a{color:var(--green);font-weight:800}.web-source-chip button{border:0;background:transparent;color:#8a2f2f;font-size:1rem;cursor:pointer;padding:0 2px}
.web-score-actions{justify-content:flex-start}.web-score-candidates{display:grid;gap:10px}
.web-score-empty{padding:14px;border:1px dashed #c7d2de;border-radius:12px;color:var(--muted);background:white}
.web-score-match{display:grid;gap:10px;padding:12px;border:1px solid #d8e1eb;border-radius:14px;background:white}.web-score-match.conflict{border-color:#e4a5a5;background:#fff8f8}
.web-score-match>header{display:flex;align-items:center;gap:9px}.web-score-match>header>div{display:grid;gap:2px}.web-score-match>header small{color:var(--muted)}
.web-score-options{display:grid;gap:7px}.web-score-option{display:grid;grid-template-columns:auto 64px minmax(130px,1fr) auto;gap:8px 10px;align-items:center;padding:9px;border:1px solid #dce4ed;border-radius:11px;background:#f9fbfd;cursor:pointer}.web-score-option.confirmed{border-color:#9ed3b0;background:#f2fbf5}.web-score-option.conflict{border-color:#e5a3a3;background:#fff4f4}.web-score-option.applied{border-color:#9cb8dd;background:#f1f6fd}.web-score-option.reverted{opacity:.65}.web-score-option input{width:auto}.web-score-value{font-size:1.05rem;font-weight:950;color:var(--navy)}.web-score-meta{font-size:.78rem;color:#526071}.web-score-option>a{font-size:.76rem;font-weight:850;color:var(--green)}.web-score-option>small{grid-column:2/-1;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}
@media(max-width:700px){.web-score-source-row{grid-template-columns:1fr}.web-score-option{grid-template-columns:auto 58px 1fr}.web-score-option>a{grid-column:2/-1}.web-score-option>small{grid-column:1/-1}}

/* v2.3.18 · acciones horizontales, recarga explícita y búsqueda web cancelable */
.web-score-actions .button.hidden { display:none; }


/* v2.3.19 · fórmula automática de precios */
.pricing-formula-card {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid var(--line, #d9e2ee);
  border-radius: 18px;
  background: #f8fbff;
}
.pricing-formula-card p { margin: 5px 0 0; color: #526176; font-size: .84rem; }
.pricing-formula-card > small { display: block; margin-top: 10px; color: #66758a; }
.pricing-preview { display: grid; gap: 7px; margin-top: 12px; }
.pricing-preview-row {
  display: grid;
  grid-template-columns: minmax(175px, 1.25fr) repeat(3, minmax(82px, .65fr)) minmax(200px, 1fr) auto;
  align-items: end;
  gap: 8px;
  padding: 11px;
  border: 1px solid #e2e9f2;
  border-radius: 12px;
  background: #fff;
  font-size: .82rem;
}
.pricing-plan-name { display:grid; gap:3px; align-self:center; }
.pricing-plan-name small { color:#66758a; font-size:.68rem; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.pricing-preview-row > span { color: #627086; align-self:center; }
.pricing-preview-row > b { text-align: right; color: #0b1f3a; align-self:center; }
.pricing-closing-field { display:grid; gap:5px; margin:0; }
.pricing-closing-field span { color:#526176; font-size:.69rem; font-weight:800; }
.pricing-closing-field input { min-width:0; width:100%; padding:9px 10px; }
.pricing-closing-save { white-space:nowrap; align-self:end; }
.pricing-closing-placeholder { grid-column:5 / 7; font-size:.74rem; }
.form-grid label small { display: block; margin-top: 5px; color: #67758a; font-size: .72rem; font-weight: 600; }
@media (max-width: 1050px) {
  .pricing-preview-row { grid-template-columns: 1.2fr repeat(3, .7fr); }
  .pricing-closing-field { grid-column:1 / 4; }
  .pricing-closing-save { grid-column:4; }
  .pricing-closing-placeholder { grid-column:1 / -1; }
}
@media (max-width: 720px) {
  .pricing-preview-row { grid-template-columns: 1fr 1fr; align-items:center; }
  .pricing-plan-name { grid-column:1 / -1; }
  .pricing-preview-row > b { text-align: left; }
  .pricing-closing-field { grid-column:1 / -1; }
  .pricing-closing-save { grid-column:1 / -1; width:100%; }
}

/* Acceso moderno · Google + passkeys · v2.3.22 */
.modern-auth-stack{display:grid;gap:12px;margin-top:20px}
.google-button-slot{min-height:44px;display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}
.google-button-slot>div{max-width:100%}
.passkey-button{min-height:46px;justify-content:center;gap:8px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0 10px;color:var(--muted);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:#dfe7ef}
.legacy-auth-toggle{display:block;margin:0 auto}
.legacy-auth-panel{margin-top:10px;padding-top:4px}
.account-security-state{text-align:left}
.account-security-state>.success-icon,.account-security-state>.eyebrow,.account-security-state>h2,.account-security-state>p{text-align:center;margin-left:auto;margin-right:auto}
.auth-method-card,.profile-completion-card{display:grid;gap:12px;margin:18px 0;padding:16px;border:1px solid #dce6ef;border-radius:16px;background:#f8fafc}
.profile-completion-card{background:#fff8e8;border-color:#f1d79b}
.profile-completion-card p{margin:0}
.auth-method-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.auth-method-heading div{display:grid;gap:3px}
.auth-method-heading small{color:var(--muted);font-weight:600}
.button.compact{min-height:36px;padding:7px 11px;font-size:.78rem;white-space:nowrap}
.passkey-list{display:grid;gap:8px}
.passkey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:12px;background:white;border:1px solid #e3ebf2}
.passkey-row span{display:grid;gap:2px;min-width:0}
.passkey-row strong,.passkey-row small{overflow:hidden;text-overflow:ellipsis}
.passkey-row small{color:var(--muted);font-size:.75rem}
.passkey-empty{padding:12px;border-radius:12px;background:white;color:var(--muted);font-size:.83rem;text-align:center}
.danger-text{color:var(--red)!important}
.google-connect-section{display:grid;gap:8px;padding-top:10px;border-top:1px solid #dfe7ef}
.google-connect-section>small{text-align:center;color:var(--muted)}
.compact-google{min-height:40px}
@media(max-width:560px){.auth-method-heading{align-items:flex-start;flex-direction:column}.auth-method-heading .button{width:100%}.passkey-row{align-items:flex-start}.passkey-row .text-button{padding-top:2px}}


/* Recuperación segura de passkeys · v2.3.24 */
.passkey-recovery-panel {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(11, 40, 78, .16);
  border-radius: 14px;
  background: rgba(242, 247, 252, .96);
  text-align: left;
}
.passkey-recovery-panel strong { display:block; color:var(--navy); margin-bottom:5px; }
.passkey-recovery-panel p { margin:0 0 12px; color:var(--muted); font-size:.88rem; line-height:1.45; }
.passkey-recovery-panel .text-button { display:block; margin:10px auto 0; }
.passkey-recovery-panel.recovery-ready { margin: 4px 0 14px; border-color: rgba(10, 170, 118, .3); background: rgba(231, 250, 243, .95); }

/* Alta guiada con passkey automática · v2.3.24 */
.primary-phone-auth {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line, #d9e2ee);
  border-radius: 16px;
  background: #f8fbff;
}

.passkey-onboarding-status {
  margin: 18px 0;
  padding: 22px 18px;
  border: 1px solid #cbd8e8;
  border-radius: 18px;
  background: #f7faff;
  text-align: center;
}

.passkey-onboarding-status.pending {
  border-color: #c8d5e5;
}

.passkey-onboarding-status.success {
  border-color: #8bd9bc;
  background: #effbf6;
}

.passkey-onboarding-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: #0eaf78;
  color: #fff;
  font-size: 32px;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(14, 175, 120, .2);
}

.passkey-onboarding-status.pending .passkey-onboarding-icon {
  background: #0b1f3a;
}

.passkey-onboarding-status h3 {
  margin: 0 0 8px;
}

.passkey-onboarding-status p {
  margin: 0 0 10px;
  color: #52647a;
}

/* Orden de acceso · v2.3.26: Google primero, teléfono después, passkey al final */
.auth-access-order { margin-top: 18px; }
.auth-option-block {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.auth-option-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-size: .82rem;
  font-weight: 900;
}
.auth-option-content {
  display: grid;
  gap: 5px;
  min-width: 0;
  width: 100%;
}
.auth-option-content > strong { color: var(--navy); }
.auth-option-content > small { color: var(--muted); line-height: 1.4; }
.auth-google-option .google-button-slot { margin-top: 6px; }
.auth-phone-option { margin-bottom: -2px; }
.auth-access-order > .auth-divider { margin: 10px 0 2px; }
@media (max-width: 560px) {
  .auth-option-block { gap: 9px; }
  .auth-option-number { flex-basis: 27px; width: 27px; height: 27px; }
}


/* Limpieza visual de acceso · v2.3.27 */
.cleaner-auth-layout{gap:14px;margin-top:18px}
.auth-clean-section{display:grid;gap:8px}
.auth-clean-heading{margin:0;color:var(--navy);font-size:1rem;line-height:1.2}
.auth-clean-copy{margin:0;color:var(--muted);font-size:.92rem;line-height:1.42}
.auth-divider-simple{margin:4px 0 2px;color:var(--navy);font-size:.9rem;font-weight:800;letter-spacing:0;text-transform:none}
.auth-divider-simple::before,.auth-divider-simple::after{background:#d9e2ee}
.auth-divider-passkey{margin:0}
.auth-divider-passkey span{display:none}
.auth-divider-passkey::before,.auth-divider-passkey::after{background:#d9e2ee}
.primary-phone-auth{gap:12px;padding:15px 16px;background:#f8fbff}
.primary-phone-auth .auth-tabs{margin-top:2px}
.primary-phone-auth label{margin-bottom:0}
#authIntro{max-width:560px;line-height:1.45}
#authModernOptions .security-note{margin-top:-2px;text-align:center}
@media (max-width:560px){
  .cleaner-auth-layout{gap:12px}
  .auth-clean-heading{font-size:.98rem}
  .auth-clean-copy{font-size:.89rem}
}


/* Estado de concurso cerrado · v2.3.28 */
.plan-card.closed {
  border-color:#e0b66d;
  background:linear-gradient(180deg,#fffdf8 0%,#fff8eb 100%);
}
.plan-card.closed .plan-badge {
  color:#805912;
  background:#fff0c9;
}
.closed-contest-modal { width:min(560px,calc(100vw - 28px)); }
.closed-contest-progress {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:22px 0 14px;
}
.closed-contest-progress > div {
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8fafc;
}
.closed-contest-progress strong { display:block; font-size:2rem; line-height:1; color:var(--navy); }
.closed-contest-progress span { display:block; margin-top:8px; color:var(--muted); font-size:.86rem; }
.closed-contest-summary { margin:0 0 20px; line-height:1.6; color:var(--ink); }
.closed-contest-actions { margin-top:8px; }
@media (max-width:560px) {
  .closed-contest-progress { grid-template-columns:1fr; }
}


/* v2.3.29 · estilos heredados del cierre */


/* v2.3.30 · cierre y finalización por concurso */
.history-select-wrap {
  display:grid;
  gap:7px;
  max-width:520px;
  margin:0 0 16px;
}
.history-select-wrap span {
  color:var(--muted);
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.history-select-wrap select { width:100%; }
.pricing-contest-group {
  display:grid;
  gap:9px;
  padding:12px;
  border:1px solid #d7e1ee;
  border-radius:16px;
  background:#fff;
}
.pricing-contest-head {
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(320px,1.45fr);
  gap:14px;
  align-items:end;
  padding:3px 3px 10px;
  border-bottom:1px solid #e7edf5;
}
.pricing-contest-head > div:first-child { display:grid; gap:4px; }
.pricing-contest-head small { color:#66758a; font-size:.68rem; font-weight:850; letter-spacing:.05em; }
.pricing-contest-head strong { color:#0b1f3a; }
.pricing-contest-closing { display:grid; grid-template-columns:minmax(210px,1fr) auto; gap:8px; align-items:end; }
.pricing-contest-plans { display:grid; gap:7px; }
.pricing-contest-group .pricing-preview-row {
  grid-template-columns:minmax(160px,1.2fr) repeat(3,minmax(82px,.7fr));
  padding:10px;
}
@media (max-width:900px) {
  .pricing-contest-head { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .pricing-contest-closing { grid-template-columns:1fr; }
  .pricing-contest-closing .button { width:100%; }
  .pricing-contest-group .pricing-preview-row { grid-template-columns:1fr 1fr; }
  .pricing-contest-group .pricing-plan-name { grid-column:1 / -1; }
}

/* v2.3.31 · un solo cierre administrativo por número de concurso */
.contest-closing-admin {
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid #cbd8e8;
  border-radius:16px;
  background:#f8fafc;
}
.contest-closing-title { display:grid; gap:5px; }
.contest-closing-title strong { color:#0b1f3a; }
.contest-closing-title small,
.contest-closing-help { color:#66758a; line-height:1.45; }
.contest-closing-controls {
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(230px,1fr) auto;
  gap:10px;
  align-items:end;
}
.contest-closing-controls label { display:grid; gap:6px; min-width:0; }
.contest-closing-controls label > span:first-child {
  color:#4f5f74;
  font-size:.76rem;
  font-weight:800;
}
.datetime-control-wrap {
  display:flex;
  width:100%;
  min-width:0;
  padding:10px 12px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#fff;
}
.datetime-control-wrap input {
  display:block;
  width:100%;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
}
.pricing-contest-head {
  grid-template-columns:1fr;
  align-items:start;
}
.pricing-contest-head > div:first-child span {
  color:#66758a;
  font-size:.78rem;
}
.pricing-example-group { opacity:.9; }
@media (max-width:820px) {
  .contest-closing-controls { grid-template-columns:1fr 1fr; }
  .contest-closing-controls .button { grid-column:1 / -1; width:100%; }
}
@media (max-width:560px) {
  .contest-closing-controls { grid-template-columns:1fr; }
  .contest-closing-controls .button { grid-column:auto; }
}


/* Ordenamiento de líneas y contraste de tarjetas tenues · v2.3.36 */
.combo-sort-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  min-height:34px;
  padding:4px 7px;
  color:inherit;
  background:transparent;
  border:0;
  border-radius:8px;
  font:inherit;
  font-weight:900;
  cursor:pointer;
}
.combo-sort-button:hover,
.combo-sort-button:focus-visible { background:#e9eef4; outline:2px solid rgba(23,111,168,.28); outline-offset:1px; }
.combo-sort-button b { min-width:13px; color:var(--muted); font-size:.82rem; }
.combo-sort-button.active { color:var(--navy); background:#edf4fb; }
.combo-sort-button.active b { color:#176fa8; }

/* Una tarjeta puede ser a la vez destacada y cerrada. En ese caso prevalece
   la superficie tenue, pero todos sus textos recuperan contraste oscuro. */
.plan-card.closed.featured {
  color:var(--navy);
  border-color:#e0b66d;
  background:linear-gradient(180deg,#fffdf8 0%,#fff8eb 100%);
}
.plan-card.closed.featured::after { border-color:rgba(181,122,23,.10); }
.plan-card.closed.featured > small,
.plan-card.closed.featured .interactive-hint,
.plan-card.closed.featured .strategy-preview-title { color:#59697c; }
.plan-card.closed.featured .plan-price span { color:#59697c; opacity:1; }
.plan-card.closed.featured .plan-list li { color:#405166; }
.plan-card.closed.featured .plan-strategy-preview {
  border-color:#d9e1ea;
  background:#fff;
}
.plan-card.closed.featured .strategy-row-label.header,
.plan-card.closed.featured .strategy-cell.match-number-cell { color:#66758a; }
.plan-card.closed.featured .strategy-row-label:not(.base):not(.double):not(.triple) { color:var(--navy); background:#eef3f8; }
.plan-card.closed.featured .strategy-row-label.double { color:#1f68c4; background:var(--blue-soft); }
.plan-card.closed.featured .strategy-row-label.triple { color:#6244c2; background:#f0ecff; }
.plan-card.closed.featured .strategy-cell.empty { color:#8996a6; background:#f2f5f8; }
.plan-card.closed.featured .strategy-cell.additional.first:not(.empty) { color:#075e86; background:#e6f5ff; border-color:#adddf5; }
.plan-card.closed.featured .strategy-cell.additional.second:not(.empty) { color:#5e3295; background:#f2eaff; border-color:#d6c1f2; }
.plan-card.closed.featured .strategy-cell.additional.empty { color:transparent; background:transparent; border-color:transparent; }

/* Los planes ocultos del administrador siguen viéndose tenues sin perder legibilidad. */
.config-admin-row.is-hidden .config-admin-title strong,
.config-admin-row.is-hidden .config-admin-title b,
.config-admin-row.is-hidden .config-admin-metrics,
.config-admin-row.is-hidden .config-admin-note,
.config-admin-row.is-hidden .config-admin-source { opacity:.70; }
.config-admin-row.is-hidden .config-admin-metrics span { color:#526276; background:#e8eef4; }

/* v2.3.36 · pestaña administrativa configurable y acceso Google + TOTP */
.unlock-card .legacy-admin-login { display:flex; gap:10px; justify-content:center; align-items:center; margin-top:12px; }
.unlock-card .legacy-admin-login input { min-width:220px; }
.unlock-card #adminGoogleLoginButton { margin-top:8px; }
@media (max-width:560px) {
  .unlock-card .legacy-admin-login { align-items:stretch; flex-direction:column; }
  .unlock-card .legacy-admin-login input { min-width:0; width:100%; }
  .unlock-card #adminGoogleLoginButton { width:100%; }
}


/* v2.3.38 · navegación pública y encabezado móvil simplificados */
.topbar {
  gap: 14px;
}
.brand {
  flex: 0 0 auto;
  min-width: 0;
}
.brand strong {
  white-space: nowrap;
  font-size: 1.05rem;
}
.topbar-actions {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
}
.contest-picker {
  position: relative;
  width: min(370px, 100%);
  min-height: 52px;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 1px;
  padding: 6px 38px 6px 14px;
  border-color: rgba(255,255,255,.26);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255,122,26,.22), rgba(255,255,255,.10));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 8px 18px rgba(3,15,30,.15);
}
.contest-picker::after {
  content: '⌄';
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--orange-2);
  font-size: 1.15rem;
  font-weight: 950;
  pointer-events: none;
}
.contest-picker span {
  display: block;
  color: rgba(255,255,255,.68);
  font-size: .58rem;
  line-height: 1.1;
}
.contest-picker select {
  width: 100%;
  max-width: none;
  padding: 0 20px 0 0;
  color: white;
  appearance: none;
  font-size: .86rem;
  line-height: 1.3;
  white-space: nowrap;
}
.bottom-nav button {
  min-width: 76px;
}
@media (max-width: 760px) {
  .topbar {
    height: 72px;
    gap: 9px;
    padding: 0 12px;
  }
  .brand { gap: 8px; }
  .brand-mark { width: 40px; height: 40px; flex: 0 0 40px; }
  .brand-mark svg { width: 29px; }
  .brand strong { font-size: .86rem; }
  .topbar-actions { min-width: 0; }
  .contest-picker {
    width: 100%;
    min-height: 50px;
    padding: 6px 32px 6px 11px;
  }
  .contest-picker span { display: block; }
  .contest-picker select { max-width: none; font-size: .75rem; }
  .contest-picker::after { right: 11px; }
  .bottom-nav { width: calc(100vw - 12px); justify-content: space-between; gap: 1px; bottom: 6px; padding: 5px; border-radius: 18px; }
  .bottom-nav button { flex: 1 1 0; min-width: 0; padding: 8px 3px; font-size: .61rem; }
}
@media (max-width: 390px) {
  .brand strong { font-size: .78rem; }
  .brand-mark { width: 37px; height: 37px; flex-basis: 37px; }
  .contest-picker select { font-size: .70rem; }
}

/* v2.3.39 · Fase 1 de navegación móvil */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

main {
  overflow-x: clip;
  touch-action: pan-y pinch-zoom;
}
.table-scroll,
.strategy-table-scroll,
.segmented,
.combo-filter-bar,
[data-horizontal-scroll] {
  touch-action: pan-x pan-y;
}

.contest-picker {
  position: relative;
  width: min(390px, 100%);
  min-height: 56px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 13px 8px 15px;
  color: white;
  text-align: left;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 17px;
  background: linear-gradient(135deg, rgba(255,122,26,.27), rgba(255,255,255,.10));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.13), 0 9px 22px rgba(3,15,30,.18);
  appearance: none;
}
.contest-picker::after { content: none; }
.contest-picker:hover,
.contest-picker:focus-visible {
  border-color: rgba(255,159,67,.72);
  background: linear-gradient(135deg, rgba(255,122,26,.35), rgba(255,255,255,.14));
  outline: none;
}
.contest-picker-copy {
  min-width: 0;
  display: grid !important;
  gap: 1px;
  color: inherit !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.contest-picker-copy small,
.contest-picker-copy strong,
.contest-picker-copy em { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.contest-picker-copy small { color: rgba(255,255,255,.67); font-size: .56rem; font-style: normal; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.contest-picker-copy strong { color: white; font-size: .88rem; line-height: 1.18; }
.contest-picker-copy em { color: var(--orange-2); font-size: .66rem; font-style: normal; font-weight: 850; line-height: 1.2; }
.contest-picker > svg { width: 21px; min-width: 21px; fill: none; stroke: var(--orange-2); stroke-width: 2.35; stroke-linecap: round; stroke-linejoin: round; }

.view { animation: none; }
.view.nav-enter-forward { animation: viewEnterForward .32s cubic-bezier(.2,.8,.2,1); }
.view.nav-enter-backward { animation: viewEnterBackward .32s cubic-bezier(.2,.8,.2,1); }
.view.nav-enter-neutral { animation: viewEnterNeutral .24s ease; }
@keyframes viewEnterForward {
  from { opacity: .25; transform: translate3d(38px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes viewEnterBackward {
  from { opacity: .25; transform: translate3d(-38px,0,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes viewEnterNeutral {
  from { opacity: .35; transform: translate3d(0,7px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}

.scroll-context {
  position: fixed;
  z-index: 49;
  top: 76px;
  left: 50%;
  width: min(560px, calc(100vw - 24px));
  min-height: 43px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 10px;
  padding: 8px 13px 10px;
  color: white;
  background: rgba(11,31,58,.94);
  border: 1px solid rgba(255,255,255,.12);
  border-top: 0;
  border-radius: 0 0 15px 15px;
  box-shadow: 0 10px 26px rgba(4,17,34,.18);
  backdrop-filter: blur(16px);
  opacity: 0;
  transform: translate(-50%, -115%);
  pointer-events: none;
  transition: opacity .2s ease, transform .24s ease;
}
.scroll-context.visible { opacity: 1; transform: translate(-50%, 0); }
.scroll-context > span { color: var(--orange-2); font-size: .72rem; font-weight: 950; }
.scroll-context > small { min-width: 0; overflow: hidden; color: rgba(255,255,255,.80); font-size: .71rem; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }
.vertical-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; overflow: hidden; background: rgba(255,255,255,.10); border-radius: 0 0 15px 15px; }
.vertical-progress b { display: block; width: 100%; height: 100%; background: var(--orange); transform: scaleX(0); transform-origin: left center; transition: transform .08s linear; }

.swipe-context {
  position: fixed;
  z-index: 90;
  left: 50%;
  bottom: calc(94px + var(--safe-bottom));
  min-width: min(330px, calc(100vw - 28px));
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  color: white;
  background: rgba(11,31,58,.94);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  box-shadow: 0 16px 42px rgba(4,17,34,.30);
  backdrop-filter: blur(16px);
  opacity: 0;
  transform: translate(-50%, 18px) scale(.97);
  pointer-events: none;
  transition: opacity .16s ease, transform .18s ease;
}
.swipe-context.visible { opacity: 1; transform: translate(-50%,0) scale(1); }
.swipe-context.blocked { opacity: .72; }
.swipe-context span { min-width: 0; overflow: hidden; font-size: .72rem; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.swipe-context span:last-child { color: var(--orange-2); text-align: right; }
.swipe-context strong { padding: 5px 8px; color: var(--navy); background: white; border-radius: 9px; font-size: .66rem; white-space: nowrap; }

.bottom-nav { isolation: isolate; }
.nav-page-progress {
  position: absolute;
  z-index: 2;
  top: 4px;
  left: 14px;
  right: 14px;
  height: 3px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  pointer-events: none;
}
.nav-page-progress i { display: block; border-radius: 999px; background: #dbe3ed; transition: background .22s ease, transform .22s ease; }
.nav-page-progress i.passed { background: rgba(255,122,26,.42); }
.nav-page-progress i.active { background: var(--orange); transform: scaleY(1.35); }
.bottom-nav button { margin-top: 3px; transition: color .2s ease, background .22s ease, transform .18s ease; }
.bottom-nav button.active { transform: translateY(-1px); }

.contest-selector-dialog {
  width: min(720px, calc(100vw - 24px));
  max-width: 720px;
  max-height: min(820px, calc(100dvh - 24px));
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 0;
  overflow: visible;
}
.contest-selector-dialog::backdrop { background: rgba(4,18,36,.67); backdrop-filter: blur(5px); }
.contest-selector-sheet {
  max-height: min(820px, calc(100dvh - 24px));
  overflow: auto;
  padding: 24px;
  background: white;
  border-radius: 27px;
  box-shadow: 0 30px 90px rgba(4,18,36,.35);
}
.contest-selector-handle { display: none; width: 52px; height: 5px; margin: -11px auto 17px; background: #cfd8e4; border-radius: 999px; }
.contest-selector-header { position: relative; padding-right: 48px; }
.contest-selector-header h2 { margin: 5px 0 6px; color: var(--navy); font-size: clamp(1.55rem,4vw,2.15rem); letter-spacing: -.04em; }
.contest-selector-header p { margin: 0; color: var(--muted); line-height: 1.5; }
.contest-selector-close { top: 0; right: 0; }
.contest-selector-search {
  display: grid;
  grid-template-columns: 22px 1fr;
  align-items: center;
  gap: 10px;
  margin: 20px 0 14px;
  padding: 0 14px;
  background: #f3f6fa;
  border: 1px solid #dbe4ee;
  border-radius: 15px;
}
.contest-selector-search:focus-within { border-color: #8db7ee; box-shadow: 0 0 0 3px rgba(47,126,230,.10); }
.contest-selector-search svg { width: 21px; fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round; }
.contest-selector-search input { width: 100%; min-height: 50px; padding: 0; background: transparent; border: 0; outline: none; }
.contest-selector-current {
  display: grid;
  gap: 2px;
  margin-bottom: 18px;
  padding: 14px 16px;
  color: white;
  background: linear-gradient(135deg,var(--navy),var(--navy-2));
  border-radius: 17px;
}
.contest-selector-current span { color: var(--orange-2); font-size: .62rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.contest-selector-current strong { font-size: 1.05rem; }
.contest-selector-current small { color: rgba(255,255,255,.73); }
.contest-selector-groups { display: grid; gap: 20px; }
.contest-selector-section-title { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.contest-selector-section-title strong { color: var(--navy); }
.contest-selector-section-title small { color: var(--muted); }
.contest-selector-list { display: grid; gap: 8px; }
.contest-selector-option {
  width: 100%;
  display: grid;
  grid-template-columns: 43px minmax(0,1fr) auto 20px;
  align-items: center;
  gap: 11px;
  padding: 12px;
  color: var(--ink);
  text-align: left;
  background: #f8fafc;
  border: 1px solid #e0e7ef;
  border-radius: 15px;
}
.contest-selector-option:hover,
.contest-selector-option:focus-visible { border-color: #9abbe4; background: #f1f6fc; outline: none; }
.contest-selector-option.selected { border-color: rgba(255,122,26,.62); background: #fff7f0; box-shadow: inset 4px 0 0 var(--orange); }
.contest-selector-option-icon { width: 43px; height: 43px; display: grid; place-items: center; color: var(--navy); background: var(--orange-2); border-radius: 13px; font-weight: 950; }
.contest-selector-option-copy { min-width: 0; display: grid; gap: 3px; }
.contest-selector-option-copy strong,
.contest-selector-option-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.contest-selector-option-copy strong { color: var(--navy); }
.contest-selector-option-copy small { color: var(--muted); font-size: .70rem; }
.contest-selector-option-state { padding: 5px 8px; border-radius: 999px; font-size: .62rem; font-weight: 900; white-space: nowrap; }
.contest-selector-option-state.open { color: #087443; background: #e6f7ef; }
.contest-selector-option-state.tracking { color: #185cae; background: #e9f2ff; }
.contest-selector-option-state.finished { color: #5f6876; background: #e9edf2; }
.contest-selector-check { color: var(--orange); font-size: 1.15rem; font-weight: 950; text-align: center; }
.contest-selector-empty { padding: 25px 10px; color: var(--muted); text-align: center; }

@media (max-width: 760px) {
  .topbar { height: 76px; padding: 0 10px; }
  .brand { gap: 7px; }
  .brand-mark { width: 39px; height: 39px; flex: 0 0 39px; }
  .brand strong { font-size: .82rem; }
  .topbar-actions { flex: 1 1 auto; min-width: 0; }
  .contest-picker { width: 100%; min-height: 54px; padding: 7px 9px 7px 11px; }
  .contest-picker-copy strong { font-size: .78rem; }
  .contest-picker-copy em { font-size: .60rem; }
  .contest-picker > svg { width: 18px; min-width: 18px; }
  .scroll-context { top: 76px; }
  .bottom-nav { width: calc(100vw - 12px); left: 6px; right: 6px; bottom: 6px; transform: none; padding: 7px 4px calc(6px + var(--safe-bottom)); border: 1px solid rgba(211,220,231,.96); border-radius: 19px; }
  .bottom-nav button { flex: 1 1 20%; min-width: 0; padding: 8px 2px 7px; font-size: .61rem; }
  .bottom-nav button svg { width: 21px; height: 21px; }
  .nav-page-progress { top: 4px; left: 11px; right: 11px; gap: 3px; }
  .contest-selector-dialog { width: 100%; max-width: none; max-height: calc(100dvh - 8px); margin: auto 0 0; }
  .contest-selector-sheet { max-height: calc(100dvh - 8px); padding: 20px 15px calc(18px + var(--safe-bottom)); border-radius: 25px 25px 0 0; }
  .contest-selector-handle { display: block; }
  .contest-selector-header { padding-right: 43px; }
  .contest-selector-header p { font-size: .84rem; }
  .contest-selector-section-title { align-items: start; flex-direction: column; gap: 1px; }
  .contest-selector-option { grid-template-columns: 40px minmax(0,1fr) 18px; gap: 9px; padding: 11px; }
  .contest-selector-option-icon { width: 40px; height: 40px; }
  .contest-selector-option-state { grid-column: 2; justify-self: start; margin-top: -1px; }
  .contest-selector-check { grid-column: 3; grid-row: 1/3; }
}

@media (max-width: 370px) {
  .brand strong { font-size: .74rem; }
  .brand-mark { width: 36px; height: 36px; flex-basis: 36px; }
  .contest-picker-copy small { display: none; }
  .contest-picker-copy strong { font-size: .72rem; }
  .contest-picker-copy em { font-size: .56rem; }
}

@media (prefers-reduced-motion: reduce) {
  .view.nav-enter-forward,
  .view.nav-enter-backward,
  .view.nav-enter-neutral { animation: none; }
  .scroll-context,
  .swipe-context,
  .bottom-nav button,
  .nav-page-progress i { transition: none; }
}

/* v2.3.40 · Fase 2 de navegación y localización de contenido */
.context-tabs {
  position: sticky;
  z-index: 34;
  top: 76px;
  display: grid;
  gap: 5px;
  margin: 14px 0 22px;
  padding: 7px;
  background: rgba(244,247,251,.94);
  border: 1px solid rgba(211,220,231,.88);
  border-radius: 17px;
  box-shadow: 0 8px 20px rgba(16,38,68,.07);
  backdrop-filter: blur(14px);
}
.context-tabs-track {
  display: flex;
  gap: 5px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  border-radius: 12px;
  transition: box-shadow .18s ease;
}
.context-tabs-track::-webkit-scrollbar,
.match-rail::-webkit-scrollbar,
.global-search-scopes::-webkit-scrollbar { display: none; }
.context-tabs button {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 0 16px;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 11px;
  font-size: .82rem;
  font-weight: 900;
  scroll-snap-align: center;
  white-space: nowrap;
}
.context-tabs button:hover { color: var(--navy); background: rgba(255,255,255,.72); }
.context-tabs button.active { color: white; background: var(--navy); box-shadow: 0 6px 15px rgba(11,31,58,.16); }
.context-tabs button span {
  display: inline-grid;
  min-width: 22px;
  height: 22px;
  margin-left: 5px;
  place-items: center;
  color: var(--navy);
  background: rgba(255,255,255,.92);
  border-radius: 999px;
  font-size: .66rem;
}
.horizontal-affordance-label {
  display: none;
  padding: 0 8px 1px;
  color: var(--muted);
  font-size: .62rem;
  font-weight: 780;
  text-align: right;
}
.context-tabs-track.has-horizontal-overflow + .horizontal-affordance-label,
.match-rail.has-horizontal-overflow ~ .horizontal-affordance-label { display: block; }
[data-horizontal-affordance].has-left-overflow { box-shadow: inset 18px 0 18px -18px rgba(11,31,58,.52); }
[data-horizontal-affordance].has-right-overflow { box-shadow: inset -18px 0 18px -18px rgba(11,31,58,.52); }
[data-horizontal-affordance].has-left-overflow.has-right-overflow { box-shadow: inset 18px 0 18px -18px rgba(11,31,58,.52), inset -18px 0 18px -18px rgba(11,31,58,.52); }

.match-navigator {
  margin: 26px 0 18px;
  padding: 19px;
  background: rgba(255,255,255,.78);
  border: 1px solid var(--line);
  border-radius: 21px;
  box-shadow: var(--shadow-sm);
}
.match-navigator-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.match-navigator-head h2 { margin: 5px 0 0; color: var(--navy); font-size: clamp(1.4rem,3vw,2rem); letter-spacing: -.035em; }
.match-navigator-head p { max-width: 650px; margin: 7px 0 0; color: var(--muted); line-height: 1.5; }
.view-mode-switch { display: inline-flex; flex: 0 0 auto; gap: 3px; padding: 4px; background: #e9eef5; border-radius: 13px; }
.view-mode-switch button { min-height: 38px; padding: 0 13px; color: var(--muted); background: transparent; border: 0; border-radius: 10px; font-size: .76rem; font-weight: 900; }
.view-mode-switch button.active { color: white; background: var(--navy); }
.match-navigator-controls { display: grid; grid-template-columns: 42px minmax(0,1fr) 42px; align-items: center; gap: 8px; margin-top: 16px; }
.match-step-button {
  width: 42px;
  height: 50px;
  display: grid;
  place-items: center;
  color: var(--navy);
  background: white;
  border: 1px solid var(--line);
  border-radius: 13px;
  box-shadow: 0 5px 14px rgba(16,38,68,.07);
  font-size: 1.55rem;
  font-weight: 700;
}
.match-step-button:disabled { opacity: .35; cursor: default; }
.match-rail {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
  transition: box-shadow .18s ease;
}
.match-rail-chip {
  position: relative;
  flex: 0 0 clamp(145px, 21vw, 205px);
  min-height: 62px;
  display: grid;
  grid-template-columns: 36px minmax(0,1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 8px;
  padding: 9px 11px;
  color: var(--ink);
  text-align: left;
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  scroll-snap-align: center;
}
.match-rail-chip::after { content: ""; position: absolute; top: 8px; right: 8px; width: 7px; height: 7px; background: #b7c1cf; border-radius: 50%; }
.match-rail-chip.live::after { background: var(--green); box-shadow: 0 0 0 4px rgba(25,169,116,.12); }
.match-rail-chip.final::after { background: var(--blue); }
.match-rail-chip small { grid-row: 1/3; display: grid; width: 34px; height: 34px; place-items: center; color: var(--navy); background: #edf2f8; border-radius: 10px; font-size: .67rem; font-weight: 950; }
.match-rail-chip strong,
.match-rail-chip span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.match-rail-chip strong { padding-right: 8px; color: var(--navy); font-size: .72rem; }
.match-rail-chip span { color: var(--muted); font-size: .64rem; }
.match-rail-chip.active { border-color: rgba(255,122,26,.62); background: #fff8f2; box-shadow: inset 4px 0 0 var(--orange); }
.match-rail-chip.active small { color: white; background: var(--navy); }
.match-position-reference { margin-top: 10px; color: var(--muted); font-size: .72rem; font-weight: 850; text-align: center; }
.match-focus-panel { margin-top: 14px; touch-action: pan-y; }
.match-focus-panel > .focused-match-card { width: 100%; margin: 0; animation: focusedMatchIn .24s ease; }
.match-focus-panel .analysis-card { min-height: 360px; }
.match-focus-panel .live-match-card { min-height: 140px; }
@keyframes focusedMatchIn { from { opacity: .15; transform: translateX(18px); } to { opacity: 1; transform: none; } }

.line-filter-tabs { margin-bottom: 16px; }
.line-search-toolbar { justify-content: flex-end; }
.line-search-toolbar .search-field { flex: 1 1 380px; max-width: 680px; }
.clear-line-filters { min-height: 43px; }
.horizontal-content-card { position: relative; }
.horizontal-content-reference {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 14px;
  color: var(--muted);
  background: #f8fafc;
  border-bottom: 1px solid var(--line);
  font-size: .68rem;
}
.horizontal-content-reference span { color: var(--navy); font-weight: 900; }
.horizontal-content-reference small { text-align: right; }
.combo-table th:first-child,
.combo-table td:first-child { position: sticky; left: 0; z-index: 3; background: white; box-shadow: 8px 0 12px -12px rgba(11,31,58,.75); }
.combo-table thead th:first-child { z-index: 5; background: #f8fafc; }
.combo-table tr.leader td:first-child { background: #fff9ef; }
.combo-table tr.eliminated td:first-child { background: #fff; }

.global-search-fab {
  position: fixed;
  z-index: 47;
  right: clamp(18px,4vw,58px);
  bottom: calc(98px + var(--safe-bottom));
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 15px;
  color: white;
  background: linear-gradient(135deg,var(--orange),#ff5f22);
  border: 0;
  border-radius: 999px;
  box-shadow: 0 14px 35px rgba(255,95,34,.34);
  font-weight: 900;
}
.global-search-fab svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.global-search-dialog {
  width: min(780px, calc(100vw - 24px));
  max-width: 780px;
  max-height: min(850px, calc(100dvh - 24px));
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 0;
  overflow: visible;
}
.global-search-dialog::backdrop { background: rgba(4,18,36,.72); backdrop-filter: blur(6px); }
.global-search-sheet { max-height: min(850px,calc(100dvh - 24px)); overflow: auto; padding: 24px; background: white; border-radius: 27px; box-shadow: 0 30px 90px rgba(4,18,36,.38); }
.global-search-handle { display: none; width: 52px; height: 5px; margin: -11px auto 17px; background: #cfd8e4; border-radius: 999px; }
.global-search-header { position: relative; padding-right: 48px; }
.global-search-header h2 { margin: 5px 0 6px; color: var(--navy); font-size: clamp(1.55rem,4vw,2.15rem); letter-spacing: -.04em; }
.global-search-header p { margin: 0; color: var(--muted); line-height: 1.5; }
.global-search-close { top: 0; right: 0; }
.global-search-field {
  display: grid;
  grid-template-columns: 24px minmax(0,1fr) 32px;
  align-items: center;
  gap: 9px;
  margin: 20px 0 11px;
  padding: 0 9px 0 14px;
  background: #f3f6fa;
  border: 1px solid #dbe4ee;
  border-radius: 16px;
}
.global-search-field:focus-within { border-color: #8db7ee; box-shadow: 0 0 0 3px rgba(47,126,230,.10); }
.global-search-field > svg { width: 22px; fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round; }
.global-search-field input { width: 100%; min-height: 54px; padding: 0; background: transparent; border: 0; outline: none; }
.global-search-field button { width: 30px; height: 30px; display: grid; place-items: center; color: var(--muted); background: #e3e9f1; border: 0; border-radius: 50%; opacity: 0; pointer-events: none; }
.global-search-field button.visible { opacity: 1; pointer-events: auto; }
.global-search-scopes { display: flex; gap: 6px; overflow-x: auto; padding: 2px 0 8px; scrollbar-width: none; }
.global-search-scopes button { flex: 0 0 auto; min-height: 37px; padding: 0 13px; color: var(--muted); background: #f4f7fa; border: 1px solid #e0e7ef; border-radius: 999px; font-size: .72rem; font-weight: 900; }
.global-search-scopes button.active { color: white; background: var(--navy); border-color: var(--navy); }
.global-search-context { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 6px 0 12px; padding: 10px 12px; color: var(--muted); background: #fff7f0; border-radius: 12px; font-size: .69rem; }
.global-search-context strong { color: var(--navy); text-align: right; }
.global-search-results { display: grid; gap: 7px; }
.global-search-result { width: 100%; display: grid; grid-template-columns: 42px minmax(0,1fr) 20px; align-items: center; gap: 11px; padding: 11px; color: var(--ink); text-align: left; background: #f8fafc; border: 1px solid #e0e7ef; border-radius: 15px; }
.global-search-result:hover,
.global-search-result:focus-visible { background: #f0f6fd; border-color: #9abbe4; outline: none; }
.global-search-result-icon { width: 42px; height: 42px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 13px; font-size: .82rem; font-weight: 950; }
.global-search-result-icon.contest { color: var(--navy); background: var(--orange-2); }
.global-search-result-icon.match { background: var(--blue); }
.global-search-result-icon.line { background: var(--purple); }
.global-search-result-icon.folio { background: var(--green); }
.global-search-result-copy { min-width: 0; display: grid; gap: 3px; }
.global-search-result-copy strong,
.global-search-result-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.global-search-result-copy strong { color: var(--navy); }
.global-search-result-copy small { color: var(--muted); font-size: .69rem; }
.global-search-result-arrow { color: var(--orange); font-size: 1.25rem; text-align: center; }
.global-search-empty { padding: 28px 12px; color: var(--muted); text-align: center; }

@media (max-width: 760px) {
  .context-tabs { top: 76px; margin: 9px -4px 18px; padding: 5px; border-radius: 14px; }
  .context-tabs button { min-height: 40px; padding: 0 13px; font-size: .75rem; }
  .horizontal-affordance-label { display: block; }
  .match-navigator { margin: 21px -2px 16px; padding: 15px 11px; border-radius: 18px; }
  .match-navigator-head { align-items: flex-start; flex-direction: column; gap: 12px; }
  .match-navigator-head .view-mode-switch { align-self: stretch; }
  .view-mode-switch button { flex: 1; }
  .match-navigator-controls { grid-template-columns: 38px minmax(0,1fr) 38px; gap: 6px; }
  .match-step-button { width: 38px; height: 52px; }
  .match-rail-chip { flex-basis: 154px; }
  .match-position-reference { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .match-focus-panel .live-match-card { grid-template-columns: 42px 1fr; }
  .line-search-toolbar { align-items: stretch; }
  .line-search-toolbar .search-field { flex-basis: 100%; max-width: none; }
  .clear-line-filters { flex: 1; }
  .horizontal-content-reference { align-items: flex-start; flex-direction: column; gap: 2px; }
  .horizontal-content-reference small { text-align: left; }
  .global-search-fab { right: 14px; bottom: calc(91px + var(--safe-bottom)); width: 48px; min-height: 48px; justify-content: center; padding: 0; }
  .global-search-fab span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .global-search-dialog { width: 100%; max-width: none; max-height: calc(100dvh - 8px); margin: auto 0 0; }
  .global-search-sheet { max-height: calc(100dvh - 8px); padding: 20px 14px calc(18px + var(--safe-bottom)); border-radius: 25px 25px 0 0; }
  .global-search-handle { display: block; }
  .global-search-header { padding-right: 43px; }
  .global-search-header p { font-size: .84rem; }
  .global-search-context { align-items: flex-start; flex-direction: column; gap: 2px; }
  .global-search-context strong { text-align: left; }
}

@media (max-width: 370px) {
  .context-tabs button { padding: 0 11px; }
  .match-rail-chip { flex-basis: 142px; }
  .match-rail-chip strong { font-size: .68rem; }
  .global-search-result { grid-template-columns: 38px minmax(0,1fr) 16px; gap: 8px; padding: 9px; }
  .global-search-result-icon { width: 38px; height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  .match-focus-panel > .focused-match-card { animation: none; }
  .context-tabs-track,
  .match-rail,
  .global-search-fab { scroll-behavior: auto; transition: none; }
}
input[type="search"]::-webkit-search-cancel-button { display: none; }
.global-search-scopes.has-left-overflow { box-shadow: inset 18px 0 18px -18px rgba(11,31,58,.52); }
.global-search-scopes.has-right-overflow { box-shadow: inset -18px 0 18px -18px rgba(11,31,58,.52); }
.global-search-scopes.has-left-overflow.has-right-overflow { box-shadow: inset 18px 0 18px -18px rgba(11,31,58,.52), inset -18px 0 18px -18px rgba(11,31,58,.52); }

/* v2.3.41 · Fase 3: acciones contextuales, avisos, respuesta táctil y diseño multidispositivo */
.bottom-nav button { position: relative; }
.nav-badge {
  position: absolute;
  z-index: 4;
  top: 4px;
  right: 8px;
  min-width: 20px;
  height: 20px;
  display: inline-grid;
  place-items: center;
  padding: 0 5px;
  color: white;
  background: var(--red);
  border: 2px solid white;
  border-radius: 999px;
  box-shadow: 0 5px 14px rgba(223,76,90,.30);
  font-size: .58rem;
  font-weight: 950;
  line-height: 1;
}
.nav-badge.action-badge { color: var(--navy); background: var(--orange-2); box-shadow: 0 5px 14px rgba(255,159,67,.32); }
.nav-badge.badge-pop { animation: navBadgePop .48s cubic-bezier(.22,1.55,.48,1); }
@keyframes navBadgePop {
  0% { transform: scale(.25); opacity: .2; }
  55% { transform: scale(1.28); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

.context-action-bar {
  position: fixed;
  z-index: 59;
  right: 24px;
  bottom: 24px;
  width: min(360px, calc(100vw - 32px));
  transition: opacity .22s ease, transform .24s ease;
}
.context-action-button {
  position: relative;
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 11px;
  overflow: hidden;
  padding: 9px 12px;
  color: white;
  text-align: left;
  background: linear-gradient(135deg, rgba(11,31,58,.98), rgba(18,46,80,.98));
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 19px;
  box-shadow: 0 18px 44px rgba(4,17,34,.27);
  backdrop-filter: blur(18px);
  transition: transform .18s ease, box-shadow .2s ease, opacity .2s ease;
}
.context-action-button:hover { transform: translateY(-2px); box-shadow: 0 22px 52px rgba(4,17,34,.32); }
.context-action-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: var(--navy);
  background: var(--orange-2);
  border-radius: 13px;
}
.context-action-icon svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.context-action-copy { min-width: 0; display: grid; gap: 2px; }
.context-action-copy small { color: var(--orange-2); font-size: .56rem; font-weight: 950; letter-spacing: .12em; }
.context-action-copy strong { overflow: hidden; font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.context-action-meta { max-width: 102px; overflow: hidden; color: rgba(255,255,255,.66); font-size: .62rem; font-style: normal; font-weight: 800; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.context-action-button.context-action-refresh { animation: contextActionRefresh .38s ease; }
@keyframes contextActionRefresh {
  0% { transform: translateY(4px); opacity: .65; }
  100% { transform: translateY(0); opacity: 1; }
}

.context-action-button,
.bottom-nav button,
.button,
.global-search-fab { isolation: isolate; }
.interaction-ripple {
  position: absolute;
  z-index: 0;
  width: 16px;
  height: 16px;
  background: rgba(255,255,255,.28);
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%,-50%) scale(0);
  animation: interactionRipple .58s ease-out forwards;
}
.context-action-button > *, .bottom-nav button > *, .global-search-fab > * { position: relative; z-index: 1; }
@keyframes interactionRipple {
  to { opacity: 0; transform: translate(-50%,-50%) scale(14); }
}
.is-pressing { transform: scale(.975) !important; transition-duration: .08s !important; }
.motion-stage { animation: motionStageIn .46s cubic-bezier(.2,.78,.25,1) both; animation-delay: calc(var(--motion-order,0) * 35ms); }
@keyframes motionStageIn {
  from { opacity: .25; transform: translateY(12px) scale(.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (hover:hover) and (pointer:fine) {
  .interactive-surface,
  .plan-card,
  .analysis-card,
  .my-participation-row,
  .global-search-result { transition: transform .18s ease, box-shadow .2s ease, border-color .2s ease; }
  .interactive-surface:hover,
  .plan-card:hover,
  .analysis-card:hover,
  .my-participation-row:hover,
  .global-search-result:hover { transform: translateY(-2px); }
}

/* Teléfono: la acción principal permanece visible; al bajar se compacta la navegación sin ocultar los iconos. */
@media (max-width: 760px) {
  main { padding-bottom: 178px; }
  .context-action-bar { left: 10px; right: 70px; bottom: calc(91px + var(--safe-bottom)); width: auto; transform: translateY(0); }
  .context-action-button { min-height: 55px; grid-template-columns: 36px minmax(0,1fr); padding: 7px 9px; border-radius: 16px; }
  .context-action-icon { width: 36px; height: 36px; border-radius: 11px; }
  .context-action-icon svg { width: 20px; }
  .context-action-copy strong { font-size: .78rem; }
  .context-action-meta { display: none; }
  .bottom-nav button > span:not(.nav-badge) { max-height: 18px; opacity: 1; transition: opacity .18s ease, max-height .22s ease, transform .22s ease; }
  .bottom-nav { transition: padding .22s ease, transform .22s ease, border-radius .22s ease; }
  .global-search-fab { transition: bottom .22s ease, transform .22s ease, opacity .2s ease; }
  .navigation-compact .context-action-bar { opacity: 0; transform: translateY(24px); pointer-events: none; }
  .navigation-compact .bottom-nav { padding-top: 4px; padding-bottom: calc(4px + var(--safe-bottom)); border-radius: 17px; }
  .navigation-compact .bottom-nav button { gap: 0; padding-top: 7px; padding-bottom: 5px; }
  .navigation-compact .bottom-nav button > span:not(.nav-badge) { max-height: 0; opacity: 0; transform: translateY(5px); }
  .navigation-compact .nav-page-progress { opacity: .45; }
  .navigation-compact .global-search-fab { bottom: calc(64px + var(--safe-bottom)); }
  .nav-badge { top: 3px; right: max(4px, calc(50% - 23px)); }
  .toast { bottom: calc(156px + var(--safe-bottom)); }
  .navigation-compact .toast { bottom: calc(76px + var(--safe-bottom)); }
}

@media (max-width: 370px) {
  .context-action-bar { right: 65px; }
  .context-action-copy small { display: none; }
  .context-action-copy strong { font-size: .73rem; }
  .nav-badge { min-width: 18px; height: 18px; padding: 0 4px; font-size: .53rem; }
}

/* Tableta: barra inferior amplia y contenido en dos columnas cuando la lectura lo permite. */
@media (min-width: 761px) and (max-width: 1179px) {
  main { padding-bottom: 170px; }
  .bottom-nav { width: min(720px, calc(100vw - 36px)); justify-content: space-between; }
  .bottom-nav button { flex: 1 1 20%; min-width: 0; }
  .context-action-bar { right: 50%; bottom: 96px; width: min(460px, calc(100vw - 80px)); transform: translateX(50%); }
  .global-search-fab { right: 24px; bottom: 96px; }
  .feature-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .plan-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .history-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* Computadora: navegación lateral persistente y mayor superficie útil para el contenido. */
@media (min-width: 1180px) {
  :root { --desktop-rail: 104px; }
  .topbar { width: 100%; margin-left: 0; padding-left: calc(var(--desktop-rail) + 30px); padding-right: 38px; }
  main { width: min(1500px, calc(100% - var(--desktop-rail))); margin-left: var(--desktop-rail); margin-right: 0; padding: 34px clamp(28px,4vw,64px) 116px; }
  .bottom-nav {
    top: 94px;
    bottom: auto;
    left: 14px;
    width: 76px;
    min-height: 390px;
    flex-direction: column;
    justify-content: flex-start;
    gap: 7px;
    padding: 13px 8px;
    transform: none;
    border-radius: 24px;
  }
  .bottom-nav button { width: 58px; min-width: 58px; min-height: 62px; padding: 8px 3px; border-radius: 16px; font-size: .62rem; }
  .bottom-nav button svg { width: 23px; height: 23px; }
  .nav-page-progress { top: 18px; bottom: 18px; left: 3px; right: auto; width: 3px; height: auto; grid-template-columns: 1fr; grid-template-rows: repeat(5,1fr); gap: 5px; }
  .nav-page-progress i.active { transform: scaleX(1.35); }
  .nav-badge { top: 3px; right: 2px; }
  .global-search-fab { left: 20px; right: auto; bottom: 22px; width: 64px; min-height: 58px; justify-content: center; padding: 0; border-radius: 18px; }
  .global-search-fab span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .context-action-bar { right: 26px; bottom: 24px; width: 350px; }
  .scroll-context { left: calc(50% + (var(--desktop-rail) / 2)); }
  .swipe-context { left: calc(50% + (var(--desktop-rail) / 2)); }
  .context-tabs { top: 88px; }
  .hero-card { grid-template-columns: minmax(0,1.45fr) minmax(330px,.55fr); }
  .feature-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .plan-grid { grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); }
  .lookup-layout { align-items: start; }
}

@media (min-width: 1520px) {
  .analysis-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .analysis-card { height: 100%; }
  .live-match-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .live-match-card { height: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .nav-badge,
  .context-action-bar,
  .context-action-button,
  .bottom-nav,
  .bottom-nav button > span,
  .global-search-fab,
  .interactive-surface,
  .plan-card,
  .analysis-card,
  .my-participation-row,
  .global-search-result { transition: none !important; animation: none !important; }
  .interaction-ripple { display: none; }
}


/* v2.3.42 · Fase 4: usabilidad, accesibilidad, estados y estabilidad móvil */
.skip-link {
  position: fixed;
  z-index: 9999;
  top: 8px;
  left: 8px;
  padding: 11px 15px;
  color: white;
  background: var(--navy);
  border: 2px solid var(--orange-2);
  border-radius: 12px;
  font-weight: 900;
  transform: translateY(-150%);
  transition: transform .16s ease;
}
.skip-link:focus { transform: translateY(0); }

:where(button,a,input,select,textarea,[tabindex]):focus-visible {
  outline: 3px solid rgba(47,126,230,.42);
  outline-offset: 3px;
}
:where(button,.button,[role="button"],input,select,textarea) { min-height: 44px; }
:where(button,.button,[role="button"]) { -webkit-tap-highlight-color: transparent; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { overflow-wrap: anywhere; }
.view[aria-hidden="true"] { display: none !important; }

.app-state-banner {
  position: fixed;
  z-index: 78;
  top: 82px;
  left: 50%;
  width: min(720px, calc(100vw - 24px));
  min-height: 58px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  color: #18324f;
  background: rgba(255,255,255,.97);
  border: 1px solid #d8e2ed;
  border-radius: 17px;
  box-shadow: 0 16px 42px rgba(4,17,34,.18);
  backdrop-filter: blur(16px);
  transform: translateX(-50%);
}
.app-state-banner.hidden { display: none; }
.app-state-banner.offline { border-color: #edcb76; background: #fff9e9; }
.app-state-banner.error { border-color: #efadb4; background: #fff4f5; }
.app-state-banner.empty { border-color: #b8cbe2; background: #f5f9fd; }
.app-state-icon { width: 34px; height: 34px; display: grid; place-items: center; color: white; background: var(--blue); border-radius: 11px; font-weight: 950; }
.app-state-banner.offline .app-state-icon { color: #684c00; background: #ffd86a; }
.app-state-banner.error .app-state-icon { background: var(--red); }
.app-state-banner.empty .app-state-icon { background: var(--navy); }
.app-state-copy { min-width: 0; }
.app-state-copy strong { display: block; font-size: .84rem; }
.app-state-copy p { margin: 2px 0 0; color: #607187; font-size: .73rem; line-height: 1.35; }
.app-state-retry,.app-state-dismiss { min-height: 38px; padding: 7px 11px; border: 0; border-radius: 10px; font-weight: 900; }
.app-state-retry { color: white; background: var(--navy); }
.app-state-dismiss { width: 38px; padding: 0; color: #617084; background: #edf2f7; font-size: 1.15rem; }

.app-loading-screen {
  position: fixed;
  z-index: 76;
  inset: 72px 0 0;
  display: grid;
  align-content: center;
  gap: 24px;
  padding: 28px;
  background: linear-gradient(180deg,#f4f7fb,#eef3f8);
  transition: opacity .22s ease, visibility .22s ease;
}
.app-loading-screen.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.loading-brand { display: grid; justify-items: center; gap: 6px; text-align: center; }
.loading-brand strong { color: var(--navy); font-size: 1.1rem; }
.loading-brand small { color: var(--muted); }
.loading-ball { width: 42px; height: 42px; border: 5px solid #d9e3ee; border-top-color: var(--orange); border-radius: 50%; animation: loadingSpin .85s linear infinite; }
.loading-skeleton-grid { width: min(780px,100%); margin: 0 auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.loading-skeleton-grid i { min-height: 112px; overflow: hidden; background: #e1e8f0; border-radius: 18px; }
.loading-skeleton-grid i::after { content:""; display:block; width:45%; height:100%; background: linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent); animation: loadingShimmer 1.2s ease-in-out infinite; }
@keyframes loadingSpin { to { transform: rotate(360deg); } }
@keyframes loadingShimmer { from { transform: translateX(-130%); } to { transform: translateX(330%); } }

.orientation-reference {
  position: fixed;
  z-index: 93;
  top: calc(76px + env(safe-area-inset-top));
  left: 50%;
  padding: 9px 13px;
  color: white;
  background: rgba(11,31,58,.94);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(4,17,34,.24);
  font-size: .72rem;
  font-weight: 850;
  transform: translateX(-50%);
}
.orientation-reference.hidden { display: none; }
.orientation-changing main { opacity: .86; }

/* Reduce saltos y trabajo fuera de pantalla. */
.analysis-card,.live-match-card,.plan-card,.feature-card,.my-participation-row,.global-search-result {
  content-visibility: auto;
  contain-intrinsic-size: auto 220px;
}
.hero-card,.table-card,.leader-card,.pulse-card { min-height: 1px; }
.performance-mode .motion-stage,.performance-mode .nav-enter-forward,.performance-mode .nav-enter-backward,.performance-mode .nav-enter-neutral { animation: none !important; }
.performance-mode .topbar,.performance-mode .app-state-banner,.performance-mode .context-action-button { backdrop-filter: none; }

@media (max-width:760px) {
  .app-state-banner { top: 78px; width: calc(100vw - 16px); grid-template-columns: 30px minmax(0,1fr) auto; }
  .app-state-dismiss { display:none; }
  .app-state-icon { width:30px; height:30px; }
  .app-state-copy p { font-size:.68rem; }
  .app-loading-screen { inset:72px 0 0; padding:18px; }
  .loading-skeleton-grid { grid-template-columns:1fr; }
  .loading-skeleton-grid i:nth-child(n+3) { display:none; }
}

/* Teléfono horizontal: navegación lateral y contenido realmente reorganizado. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 1100px) {
  :root { --landscape-rail: 76px; }
  .topbar { height: 62px; padding: 0 12px 0 10px; }
  .brand-mark { width: 38px; height: 38px; flex-basis: 38px; }
  .brand strong { font-size: .82rem; }
  .contest-picker { width: min(440px, calc(100vw - 180px)); min-height: 48px; }
  main { width: auto; margin-left: var(--landscape-rail); padding: 18px 18px 88px; }
  .bottom-nav {
    top: 70px; bottom: 8px; left: 7px; right: auto;
    width: 62px; min-height: 0; height: auto;
    flex-direction: column; justify-content: space-around;
    gap: 2px; padding: 8px 4px; transform: none; border-radius: 19px;
  }
  .bottom-nav button { width: 52px; min-width: 52px; min-height: 48px; flex: 0 1 auto; gap: 1px; padding: 4px 2px; font-size: .50rem; }
  .bottom-nav button svg { width: 19px; height: 19px; }
  .nav-page-progress { top: 12px; bottom: 12px; left: 2px; right: auto; width: 3px; height: auto; grid-template-columns: 1fr; grid-template-rows: repeat(5,1fr); gap: 3px; }
  .nav-page-progress i.active { transform: scaleX(1.35); }
  .context-action-bar { left: auto; right: 12px; bottom: 10px; width: min(330px,42vw); transform:none; }
  .context-action-button { min-height:52px; }
  .global-search-fab { left: calc(var(--landscape-rail) + 10px); right:auto; bottom:10px; width:48px; min-height:48px; }
  .global-search-fab span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .hero-card { grid-template-columns: minmax(0,1.4fr) minmax(260px,.6fr); gap:16px; }
  .hero-copy h1 { font-size: clamp(1.65rem,4vw,2.6rem); }
  .plan-grid,.feature-grid,.history-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .match-analysis-grid { grid-template-columns: repeat(2,minmax(280px,1fr)); }
  .live-dashboard { grid-template-columns: minmax(0,1.25fr) minmax(220px,.75fr); }
  .live-match-card { grid-template-columns: 44px minmax(160px,1.2fr) minmax(150px,.9fr) minmax(145px,.8fr); }
  .scroll-context { top:62px; left:calc(50% + (var(--landscape-rail)/2)); }
  .swipe-context { bottom:12px; left:calc(50% + (var(--landscape-rail)/2)); }
  .app-state-banner { top:68px; left:calc(50% + (var(--landscape-rail)/2)); width:min(680px,calc(100vw - var(--landscape-rail) - 24px)); }
  .app-loading-screen { inset:62px 0 0 var(--landscape-rail); }
  .global-search-dialog,.contest-selector-dialog,.modal { max-height: calc(100dvh - 12px); }
  .global-search-sheet,.contest-selector-sheet { max-height: calc(100dvh - 12px); padding:16px 20px; }
  .toast { bottom:72px; }
}
@media (orientation: landscape) and (max-height: 440px) and (max-width: 950px) {
  .bottom-nav button > span:not(.nav-badge) { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .bottom-nav button { min-height:42px; }
  .context-action-copy small { display:none; }
  .hero-card { padding:22px; }
}


@media (prefers-reduced-motion: reduce) {
  .loading-ball,.loading-skeleton-grid i::after { animation:none !important; }
  .orientation-changing main,.app-loading-screen,.skip-link { transition:none !important; }
  html { scroll-behavior:auto; }
}

/* Ajuste final de controles flotantes para poca altura horizontal. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 1100px) {
  main { padding-bottom: 74px; }
  .hero-card { grid-template-columns: minmax(0,1.45fr) minmax(250px,.55fr); }
  .hero-score { align-items:flex-start; flex-direction:column; gap:9px; padding:14px 16px; }
  .hero-score .progress-ring { width:94px; height:94px; }
  .context-action-bar { right: 70px; bottom: 10px; width: 52px; }
  .context-action-button { min-height: 50px; display:grid; grid-template-columns:1fr; padding:5px; border-radius:15px; }
  .context-action-icon { width:40px; height:40px; border-radius:12px; }
  .context-action-copy,.context-action-meta { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; }
  .global-search-fab { left:auto; right:12px; bottom:10px; }
}
@media (orientation: landscape) and (max-height: 480px) and (max-width: 950px) {
  .bottom-nav { bottom:64px; justify-content:flex-start; }
  .bottom-nav button { min-height:44px; }
  .context-action-bar { display:none; }
  .global-search-fab { left:14px; right:auto; bottom:12px; }
}


/* v2.3.43 · identidad visual, simetría móvil y formularios que se ajustan al teclado */
html, body { max-width: 100%; overflow-x: hidden; }
.brand { min-width: max-content; }
.brand-mark {
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  border-radius: 18px;
  color: var(--orange);
  background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.055));
  border-color: rgba(255,255,255,.23);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 7px 18px rgba(2,13,27,.18);
}
.brand-mark svg { width: 42px; height: 42px; overflow: visible; }
.brand-mark .goal-frame { fill: none; stroke: currentColor; stroke-width: 3.6; stroke-linecap: round; stroke-linejoin: round; }
.brand-mark .goal-net { fill: none; stroke: rgba(255,255,255,.72); stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.brand-mark .goal-ball { fill: var(--orange); stroke: #0b1f3a; stroke-width: 1.8; }
.brand-mark .ball-detail { fill: none; stroke: #0b1f3a; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.brand strong { display: grid; gap: 2px; font-size: 1.04rem; line-height: 1; white-space: normal; }
.brand strong span { display: block; }
.contest-picker { min-height: 60px; }
.hero-copy h1 { text-wrap: balance; }

.config-admin-source strong { color: var(--navy); }
.config-admin-title strong { line-height: 1.3; }

:root {
  --visual-viewport-height: 100dvh;
  --visual-viewport-width: 100vw;
  --visual-viewport-offset-top: 0px;
  --visual-viewport-scale: 1;
  --keyboard-inset: 0px;
}
input, textarea, select, [contenteditable="true"] { max-width: 100%; min-width: 0; }
.auth-card, .auth-form, .join-form, .dialog-card, .sheet-card { max-width: 100%; }

@media (max-width: 760px) {
  .topbar { height: 88px; gap: 10px; padding: 0 10px; }
  .brand { gap: 8px; align-items: center; }
  .brand-mark { width: 48px; height: 48px; flex-basis: 48px; border-radius: 16px; }
  .brand-mark svg { width: 37px; height: 37px; }
  .brand strong { font-size: .86rem; line-height: 1.02; }
  .contest-picker { min-height: 62px; padding: 8px 34px 8px 12px; border-radius: 18px; }
  .contest-picker-copy strong { font-size: .80rem; }
  .contest-picker-copy em { font-size: .62rem; }
  .scroll-context { top: 88px; }

  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  textarea,
  select,
  [contenteditable="true"] {
    font-size: 16px !important;
  }
  .auth-dialog[open], .join-dialog[open], dialog[open] { max-height: var(--visual-viewport-height); }
  .auth-card, .join-card, .dialog-card {
    max-height: calc(var(--visual-viewport-height) - 12px);
    overscroll-behavior: contain;
  }
  body.mobile-keyboard-open main { padding-bottom: 24px; }
  body.mobile-keyboard-open .bottom-nav,
  body.mobile-keyboard-open .context-action-bar,
  body.mobile-keyboard-open .global-search-button {
    opacity: 0;
    pointer-events: none;
    transform: translateY(120%);
  }
  body.mobile-keyboard-open .topbar { position: sticky; top: var(--visual-viewport-offset-top); }
  body.viewport-zoomed .app-shell { width: 100%; max-width: var(--visual-viewport-width); }
}

@media (max-width: 390px) {
  .brand-mark { width: 44px; height: 44px; flex-basis: 44px; }
  .brand-mark svg { width: 34px; height: 34px; }
  .brand strong { font-size: .77rem; }
  .contest-picker { min-height: 58px; padding-left: 10px; }
  .contest-picker-copy strong { font-size: .73rem; }
}
