:root {
    --verde: #087f5b;
    --verde-oscuro: #064e3b;
    --dorado: #ffc107;
    --azul-noche: #071b33;
}

body { font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.admin-navbar { background: linear-gradient(120deg, var(--verde-oscuro), var(--verde)); }
.metric-card { border-left: 4px solid var(--verde) !important; }
.score-pill { background: #e6fcf5; color: #065f46; border-radius: 999px; padding: .45rem .75rem; font-weight: 700; white-space: nowrap; }
.auth-page { min-height: 100vh; background: radial-gradient(circle at top, #159f72 0, var(--verde-oscuro) 45%, var(--azul-noche) 100%); }
.auth-card { max-width: 480px; border-radius: 1.5rem; }
.session-expired-dialog { max-width:430px; }
.session-expired-modal { overflow:hidden; border:0; border-radius:22px; background:#fff; box-shadow:0 28px 80px rgba(2,20,34,.38); }
.session-expired-modal .modal-body { padding:2rem; text-align:center; }
.session-expired-icon { display:grid; place-items:center; width:72px; height:72px; margin:0 auto 1rem; border-radius:22px; color:#9a6710; background:linear-gradient(145deg,#fff3c7,#ffd562); box-shadow:0 12px 28px rgba(224,168,20,.2); }
.session-expired-icon svg { width:36px; height:36px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.session-expired-modal .modal-body > span { color:#087f5b; font-size:.63rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.session-expired-modal h2 { margin:.35rem 0 .6rem; color:#17283c; font-size:1.45rem; font-weight:900; }
.session-expired-modal p { max-width:330px; margin:0 auto 1.35rem; color:#6f7d8d; font-size:.82rem; line-height:1.55; }
.session-expired-button { min-width:150px; border:0; border-radius:11px; padding:.72rem 1.2rem; color:#fff; background:linear-gradient(135deg,#0a9870,#087f5b); font-size:.76rem; font-weight:900; text-transform:uppercase; box-shadow:0 9px 22px rgba(8,127,91,.2); }
.session-expired-button:hover { color:#fff; background:#076e50; }
.brand-ball, .ball-mark, .success-mark { display: grid; place-items: center; border-radius: 50%; font-weight: 900; }
.brand-ball, .ball-mark { width: 68px; height: 68px; color: #fff; background: linear-gradient(145deg, var(--verde), var(--azul-noche)); }
.success-mark { width: 84px; height: 84px; color: #fff; background: var(--verde); font-size: 1.4rem; }
.public-page {
    background: radial-gradient(circle at 50% 30%, #174b64 0, #082d46 34%, #06192e 68%, #030b18 100%);
    position: relative;
    overflow: hidden;
}
.public-page::before { content: ""; position: fixed; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 0, rgba(255,255,255,.13), transparent 38%), repeating-linear-gradient(115deg, transparent 0 120px, rgba(255,255,255,.018) 121px 123px); }
.public-page::after { content: ""; position: fixed; left: -10%; right: -10%; bottom: -28vh; height: 55vh; border-radius: 50% 50% 0 0; background: linear-gradient(rgba(7, 87, 55, .35), rgba(4, 51, 38, .95)), repeating-linear-gradient(90deg, transparent 0 90px, rgba(255,255,255,.025) 91px 180px); border-top: 2px solid rgba(255,255,255,.13); pointer-events: none; }
.public-page-home { height:100vh; height:100dvh; min-height:0 !important; overflow:hidden; }
.public-page-home .public-container { height:100%; padding-top:0 !important; padding-bottom:0 !important; }
.public-actions { position:fixed; z-index:30; top:1.2rem; right:1.5rem; display:flex; gap:.8rem; }
.public-action { display:inline-flex; align-items:center; gap:.65rem; padding:.78rem 1.15rem; border:1px solid rgba(255,255,255,.3); border-radius:999px; color:#fff; background:rgba(3,12,25,.62); backdrop-filter:blur(12px); text-decoration:none; font-size:.88rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; box-shadow:0 8px 25px rgba(0,0,0,.18); transition:.2s; }
.public-action:hover { color:#fff; transform:translateY(-2px); border-color:rgba(255,255,255,.65); }
.public-action-results .public-action-icon { color:#69dbff; }.public-action-prizes .public-action-icon { color:#f9c74f; }
.public-action-icon { font-size:1.2rem; line-height:1; }
.public-action[type="button"] { font-family:inherit; }
.public-store-dialog { max-width:560px; }
.public-store-modal { overflow:hidden; border:1px solid rgba(249,199,79,.35); border-radius:24px; color:#fff; background:linear-gradient(145deg,rgba(7,31,53,.98),rgba(3,17,31,.98)); box-shadow:0 32px 90px rgba(0,0,0,.55); }
.public-store-modal .modal-header { align-items:flex-start; padding:1.4rem 1.5rem 1.15rem; border-color:rgba(255,255,255,.12); }
.public-store-modal .modal-title { margin:.25rem 0 .35rem; font-size:1.45rem; font-weight:950; text-transform:uppercase; }
.public-store-modal .modal-header p { margin:0; color:rgba(255,255,255,.67); font-size:.82rem; }
.public-store-kicker { color:#f9c74f; font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.15em; }
.public-store-modal .modal-body { padding:1.25rem 1.5rem; }
.public-current-store { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding:.75rem .9rem; border:1px solid rgba(80,223,155,.22); border-radius:12px; background:rgba(8,127,91,.14); }
.public-current-store span { color:#50df9b; font-size:.63rem; font-weight:900; text-transform:uppercase; letter-spacing:.11em; }
.public-current-store strong { font-size:.83rem; }
.public-store-search { display:flex; align-items:center; gap:.7rem; margin-bottom:.45rem; padding:0 .9rem; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:rgba(255,255,255,.055); transition:.2s; }
.public-store-search:focus-within { border-color:rgba(249,199,79,.7); box-shadow:0 0 0 3px rgba(249,199,79,.09); }
.public-store-search svg { flex:0 0 auto; width:19px; height:19px; fill:none; stroke:#f9c74f; stroke-width:1.8; stroke-linecap:round; }
.public-store-search input { width:100%; min-height:44px; border:0; outline:0; color:#fff; background:transparent; font-size:.8rem; }
.public-store-search input::placeholder { color:rgba(255,255,255,.46); }
.public-store-help { margin:0 0 .8rem; color:rgba(255,255,255,.48); font-size:.66rem; }
.public-store-options { display:grid; gap:.7rem; max-height:310px; overflow-y:auto; }
.public-store-option { position:relative; display:flex; align-items:center; gap:.85rem; padding:1rem; border:1px solid rgba(255,255,255,.14); border-radius:14px; background:rgba(255,255,255,.045); cursor:pointer; transition:.2s; }
.public-store-option[hidden],.public-store-no-results[hidden] { display:none; }
.public-store-option:hover { border-color:rgba(249,199,79,.5); background:rgba(249,199,79,.07); }
.public-store-option input { position:absolute; opacity:0; pointer-events:none; }
.public-store-check { flex:0 0 auto; width:22px; height:22px; border:2px solid rgba(255,255,255,.4); border-radius:50%; box-shadow:inset 0 0 0 4px transparent; transition:.2s; }
.public-store-option input:checked + .public-store-check { border-color:#f9c74f; background:#f9c74f; box-shadow:inset 0 0 0 5px #09253d; }
.public-store-option:has(input:checked) { border-color:rgba(249,199,79,.72); background:rgba(249,199,79,.1); }
.public-store-copy { min-width:0; }
.public-store-copy strong,.public-store-copy small { display:block; }
.public-store-copy strong { font-size:.92rem; }
.public-store-copy small { margin-top:.22rem; color:rgba(255,255,255,.58); font-size:.72rem; }
.public-store-empty { padding:1.2rem; border:1px dashed rgba(255,255,255,.2); border-radius:14px; color:rgba(255,255,255,.65); text-align:center; }
.public-store-modal .modal-footer { justify-content:flex-end; padding:1rem 1.5rem 1.25rem; border-color:rgba(255,255,255,.12); }
.public-store-submit { padding:.72rem 1.15rem; border:0; border-radius:11px; color:#09243b; background:#f9c74f; font-size:.76rem; font-weight:950; text-transform:uppercase; box-shadow:0 10px 25px rgba(249,199,79,.2); }
.public-store-submit:disabled { opacity:.45; }
.public-info-page { position:relative; z-index:5; padding:5rem 0 2rem; }
.info-page-heading { max-width:760px; margin:0 auto 2.5rem; }
.info-page-heading h1 { margin:.8rem 0; font-size:clamp(2.3rem,5vw,4.5rem); font-weight:950; text-transform:uppercase; letter-spacing:-.045em; }
.info-page-heading p { color:rgba(255,255,255,.75); font-size:1.05rem; }
.result-card, .prize-card, .empty-public-state { border:1px solid rgba(255,255,255,.16); border-radius:20px; background:rgba(5,25,43,.8); backdrop-filter:blur(14px); box-shadow:0 22px 55px rgba(0,0,0,.3); }
.result-card { padding:1.4rem; color:#fff; }
.public-results-modal-header { gap:.8rem; }
.public-results-header-filter { display:flex; align-items:center; gap:.45rem; margin-left:auto; margin-right:-.15rem; }
.public-results-modal-header .btn-close { margin-left:.2rem; }
.public-results-calendar { position:relative; }
.public-results-date-control { display:flex; align-items:center; gap:.45rem; min-width:140px; min-height:38px; border:1px solid rgba(255,255,255,.18); border-radius:10px; padding:0 .65rem; color:#fff; background:rgba(0,0,0,.18); }
.public-results-date-control:hover,.public-results-date-control[aria-expanded="true"] { border-color:rgba(249,199,79,.7); box-shadow:0 0 0 3px rgba(249,199,79,.08); }
.public-results-date-control svg { width:17px; height:17px; fill:none; stroke:#f9c74f; stroke-width:1.8; stroke-linecap:round; }
.public-results-date-control span { flex:1; color:#fff; font-size:.7rem; font-weight:900; text-align:left; }
.public-results-date-control .public-results-calendar-chevron { width:13px; height:13px; stroke:#aebbc8; }
.public-results-calendar-popover { position:absolute; z-index:1080; top:calc(100% + .55rem); right:0; width:286px; border:1px solid rgba(249,199,79,.38); border-radius:16px; padding:.9rem; color:#fff; background:linear-gradient(150deg,#0c2943,#06192e); box-shadow:0 24px 55px rgba(0,0,0,.55); }
.public-results-calendar-popover[hidden] { display:none!important; }
.public-results-calendar-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.75rem; }
.public-results-calendar-head > strong { color:#fff; font-size:.78rem; text-transform:capitalize; }
.public-results-calendar-head > div { display:flex; gap:.25rem; }
.public-results-calendar-head button { display:grid; place-items:center; width:30px; height:30px; border:1px solid rgba(255,255,255,.12); border-radius:8px; color:#d6e0e8; background:rgba(255,255,255,.04); }
.public-results-calendar-head button:hover { color:#09243b; border-color:#f9c74f; background:#f9c74f; }
.public-results-calendar-head svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.public-results-calendar-weekdays,.public-results-calendar-days { display:grid; grid-template-columns:repeat(7,1fr); gap:.22rem; }
.public-results-calendar-weekdays { margin-bottom:.3rem; }
.public-results-calendar-weekdays span { color:#7f93a5; font-size:.52rem; font-weight:900; text-align:center; }
.public-results-calendar-day { display:grid; place-items:center; aspect-ratio:1; border:1px solid transparent; border-radius:8px; color:#e8eef3; background:transparent; font-size:.65rem; font-weight:800; }
.public-results-calendar-day:hover { color:#fff; border-color:rgba(249,199,79,.48); background:rgba(249,199,79,.1); }
.public-results-calendar-day.outside { color:#4e6578; }
.public-results-calendar-day.today { border-color:rgba(80,223,155,.45); color:#50df9b; }
.public-results-calendar-day.selected { color:#08243b; border-color:#f9c74f; background:#f9c74f; box-shadow:0 4px 11px rgba(249,199,79,.24); }
.public-results-calendar-footer { display:flex; justify-content:space-between; margin-top:.75rem; border-top:1px solid rgba(255,255,255,.09); padding-top:.65rem; }
.public-results-calendar-footer button { border:0; padding:.25rem; color:#69dbff; background:transparent; font-size:.62rem; font-weight:900; text-transform:uppercase; }
.public-results-calendar-footer button:hover { color:#f9c74f; }
.public-results-today { min-height:38px; border:1px solid rgba(255,255,255,.18); border-radius:10px; padding:0 .75rem; color:#c9d4df; background:rgba(255,255,255,.04); font-size:.65rem; font-weight:900; text-transform:uppercase; }
.public-results-today:hover,.public-results-today.active { color:#09243b; border-color:#f9c74f; background:#f9c74f; }
.public-result-item[hidden],.public-results-empty[hidden] { display:none!important; }
.public-results-empty { padding:2.2rem 1rem; color:#fff; text-align:center; }
.public-results-empty-icon { margin-bottom:.55rem; color:rgba(255,255,255,.22); font-size:2.3rem; }
.public-results-empty h5 { margin:0; font-size:.95rem; font-weight:900; }.public-results-empty p { margin:.35rem 0 0; color:rgba(255,255,255,.5); font-size:.72rem; }
@media (max-width:575px) {
    .public-results-modal-header { align-items:flex-start; flex-wrap:wrap; }
    .public-results-header-filter { order:3; width:100%; margin-left:0; margin-right:0; }
    .public-results-calendar { flex:1; }.public-results-date-control { width:100%; }
    .public-results-calendar-popover { right:auto; left:0; width:min(286px,calc(100vw - 3rem)); }
    .public-results-modal-header .btn-close { margin-left:auto; }
}
.result-card-top { display:flex; justify-content:space-between; color:#f9c74f; font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.result-card h2 { margin:1.1rem 0; font-size:1.3rem; font-weight:900; }
.public-podium-result-card { padding:1.25rem; border-color:rgba(249,199,79,.28); background:linear-gradient(145deg,rgba(24,48,66,.94),rgba(8,29,48,.96)); }
.public-podium-result-card h4 { margin:.85rem 0; color:#fff; font-size:1rem; font-weight:900; text-align:center; text-transform:uppercase; }
.public-podium-result-list { display:grid; gap:.45rem; }
.public-podium-result-list > div { display:flex; align-items:center; gap:.55rem; min-height:43px; border:1px solid rgba(255,255,255,.09); border-radius:10px; padding:.45rem .6rem; background:rgba(255,255,255,.035); }
.public-podium-result-list > div > b { display:grid; place-items:center; flex:0 0 auto; width:25px; height:25px; border-radius:50%; color:#08243b; background:#f9c74f; font-size:.7rem; }
.public-podium-result-list img { width:23px; height:auto; border-radius:2px; }
.public-podium-result-list span { min-width:0; }
.public-podium-result-list small,.public-podium-result-list strong { display:block; }
.public-podium-result-list small { color:#7f93a5; font-size:.52rem; font-weight:900; text-transform:uppercase; }
.public-podium-result-list strong { overflow:hidden; color:#fff; font-size:.75rem; text-overflow:ellipsis; white-space:nowrap; }
.public-podium-result-summary { display:flex; justify-content:space-between; gap:.65rem; margin-top:.8rem; border-top:1px solid rgba(255,255,255,.1); padding-top:.7rem; color:#aebbc8; font-size:.64rem; }
.public-podium-result-summary b { color:#50df9b; }
.result-teams { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:.65rem; padding:1rem; border-radius:14px; background:rgba(255,255,255,.07); text-align:center; }
.result-teams span { color:#f9c74f; font-size:.7rem; }
.result-participants { margin-top:1rem; color:rgba(255,255,255,.68); font-size:.78rem; }.result-participants b { color:#fff; font-size:1.15rem; }
.empty-public-state { padding:3rem 2rem; color:#fff; text-align:center; }.empty-public-state > span { display:block; color:#f9c74f; font-size:3rem; }.empty-public-state h2 { font-weight:900; }.empty-public-state p { color:rgba(255,255,255,.65); }
.prize-card { position:relative; overflow:hidden; padding:2rem 1.5rem; color:#fff; text-align:center; }
.prize-card::before { content:""; position:absolute; inset:0 0 auto; height:6px; background:#f9c74f; }.prize-card-2::before { background:#d6dbe1; }.prize-card-3::before { background:#c9844a; }
.prize-medal { display:grid; place-items:center; width:74px; height:74px; margin:0 auto 1.2rem; border-radius:50%; color:#614300; background:linear-gradient(145deg,#fff0a6,#f9c74f,#b67a00); box-shadow:0 0 0 7px rgba(249,199,79,.12),0 15px 30px rgba(0,0,0,.3); font-size:2rem; font-weight:950; }
.prize-card-2 .prize-medal { color:#4a5158; background:linear-gradient(145deg,#fff,#d6dbe1,#8f9aa5); }.prize-card-3 .prize-medal { color:#572d0c; background:linear-gradient(145deg,#ffd0aa,#c9844a,#895127); }
.prize-card > span { color:#f9c74f; font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }.prize-card h2 { margin:.6rem 0 1rem; font-size:1.35rem; font-weight:900; }.prize-card p { margin:0; color:rgba(255,255,255,.68); font-size:.87rem; line-height:1.6; }
.prize-notice { max-width:760px; margin:1.5rem auto 0; padding:.8rem 1rem; border:1px solid rgba(249,199,79,.3); border-radius:12px; color:#ffe08a; background:rgba(139,21,56,.25); text-align:center; font-size:.75rem; }
.back-worldcup { display:inline-flex; padding:.7rem 1.15rem; border:1px solid rgba(255,255,255,.35); border-radius:999px; color:#fff; background:rgba(255,255,255,.07); text-decoration:none; font-weight:800; }.back-worldcup:hover { color:#fff; background:rgba(255,255,255,.15); }
.worldcup-navbar { position: relative; z-index: 20; border-bottom: 1px solid rgba(255,255,255,.12); background: rgba(3, 12, 25, .42); backdrop-filter: blur(12px); }
.worldcup-brand { display: flex; align-items: center; gap: .75rem; font-weight: 900; line-height: 1; text-transform: uppercase; letter-spacing: .02em; }
.worldcup-brand small { display: block; margin-bottom: .3rem; color: #f9c74f; font-size: .55rem; letter-spacing: .2em; }
.brand-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(145deg, #8b1538, #d52b52); box-shadow: 0 0 0 3px rgba(255,255,255,.12); }
.internal-access { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .9rem; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; color: #fff; text-decoration: none; font-size: .78rem; font-weight: 700; background: rgba(255,255,255,.06); }
.internal-access span { color: #50df9b; font-size: .6rem; }
.internal-access:hover { color: #fff; background: rgba(255,255,255,.14); }
.worldcup-hero { position: relative; z-index: 2; min-height: calc(100vh - 48px); display: flex; flex-direction: column; justify-content: center; padding: 2rem 0 5rem; }
.public-page-home .worldcup-hero { height:100%; min-height:0; padding:clamp(1rem, 3vh, 2rem) 0; }
.public-page-home .worldcup-hero > .row { flex:0 1 auto; }
.hero-copy { position: relative; z-index: 4; }
.tournament-badge { display: inline-flex; align-items: center; gap: .65rem; padding: .5rem .8rem; border: 1px solid rgba(249,199,79,.42); border-radius: 999px; color: #ffe08a; background: rgba(139,21,56,.3); text-transform: uppercase; letter-spacing: .13em; font-size: .68rem; font-weight: 900; }
.badge-star { color: #f9c74f; }
.worldcup-title { display: flex; flex-direction: column; margin: 0 0 1.4rem; font-size: clamp(2.75rem, 5.2vw, 5.4rem); line-height: .88; font-weight: 950; letter-spacing: -.055em; text-transform: uppercase; text-shadow: 0 8px 30px rgba(0,0,0,.3); }
.worldcup-title strong { margin: .15em 0; color: #f9c74f; font-size: .72em; letter-spacing: -.03em; }
.worldcup-lead { max-width: 580px; color: rgba(255,255,255,.78); font-size: 1.08rem; line-height: 1.65; }
.match-steps { display: flex; align-items: center; gap: .8rem; margin-top: 1.8rem; }
.match-steps div { display: flex; align-items: center; gap: .55rem; color: rgba(255,255,255,.78); font-size: .7rem; line-height: 1.15; text-transform: uppercase; letter-spacing: .04em; }
.match-steps b { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #071b33; background: #f9c74f; font-size: .7rem; box-shadow: 0 0 18px rgba(249,199,79,.28); }
.match-steps i { flex: 1; max-width: 28px; height: 1px; background: rgba(255,255,255,.28); }
.trophy-stage { position: relative; z-index: 3; display: grid; place-items: center; min-height: 600px; }
.trophy-rays { position: absolute; width: 560px; height: 560px; border-radius: 50%; background: repeating-conic-gradient(from 4deg, rgba(249,199,79,.12) 0 3deg, transparent 3deg 15deg); mask-image: radial-gradient(circle, #000 0 20%, transparent 70%); animation: trophySpin 70s linear infinite; }
.trophy-halo { position: absolute; width: 370px; height: 480px; border-radius: 50%; background: radial-gradient(ellipse, rgba(255,208,80,.4), rgba(255,168,0,.08) 40%, transparent 70%); filter: blur(10px); }
.worldcup-trophy { position: relative; z-index: 2; width: min(100%, 350px); max-height: 590px; object-fit: contain; filter: drop-shadow(0 22px 30px rgba(0,0,0,.55)) drop-shadow(0 0 25px rgba(255,190,53,.25)); animation: trophyFloat 4s ease-in-out infinite; }
.trophy-shadow { position: absolute; z-index: 1; bottom: 32px; width: 230px; height: 32px; border-radius: 50%; background: rgba(0,0,0,.6); filter: blur(13px); }
.worldcup-ticket { position: relative; z-index: 5; overflow: hidden; border-radius: 20px; background: #f7f2e7; box-shadow: 0 30px 75px rgba(0,0,0,.43), 0 0 0 1px rgba(255,255,255,.2); }
.ticket-topline { display: grid; grid-template-columns: repeat(5,1fr); height: 8px; }
.ticket-topline span:nth-child(1) { background:#8b1538; }.ticket-topline span:nth-child(2) { background:#f9c74f; }.ticket-topline span:nth-child(3) { background:#087f5b; }.ticket-topline span:nth-child(4) { background:#1677aa; }.ticket-topline span:nth-child(5) { background:#8b1538; }
.ticket-header { display: flex; align-items: center; gap: 1rem; padding: 1.5rem 1.7rem; color: #fff; background: linear-gradient(135deg, #8b1538, #5d0d2a); }
.ticket-header small { display:block; margin-bottom:.2rem; color:#f9c74f; font-size:.58rem; font-weight:900; letter-spacing:.18em; }
.ticket-header h2 { margin:0; font-size:1.25rem; font-weight:900; text-transform:uppercase; }
.mini-ball { display:grid; place-items:center; flex:0 0 52px; width:52px; height:52px; border-radius:50%; font-size:1.5rem; background:#fff; box-shadow:0 0 0 4px rgba(255,255,255,.15); }
.ticket-body { padding: 1.65rem 1.7rem 1.5rem; }
.ticket-body > p { margin-bottom:1.35rem; color:#52606d; font-size:.87rem; line-height:1.55; }
.worldcup-label { display:block; margin-bottom:.45rem; color:#1c2733; font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.09em; }
.ticket-field { display:flex; align-items:center; overflow:hidden; border:2px solid #ddd3bf; border-radius:12px; background:#fff; transition:.2s; }
.ticket-field:focus-within { border-color:#8b1538; box-shadow:0 0 0 4px rgba(139,21,56,.1); }
.ticket-field span { padding-left:1rem; color:#8b1538; font-size:1.35rem; font-weight:900; }
.ticket-field input { width:100%; border:0; outline:0; padding:.95rem 1rem; color:#16222f; background:transparent; font-size:1.25rem; font-weight:900; letter-spacing:.16em; }
.worldcup-button { display:flex; justify-content:space-between; align-items:center; width:100%; margin-top:1rem; border:0; border-radius:12px; padding:.92rem 1.15rem; color:#fff; background:linear-gradient(110deg,#087f5b,#075f46); font-weight:900; text-transform:uppercase; letter-spacing:.045em; box-shadow:0 10px 22px rgba(8,127,91,.25); transition:.2s; }
.worldcup-button b { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#684800; background:#f9c74f; }
.worldcup-button:hover { transform:translateY(-2px); background:linear-gradient(110deg,#09966b,#087f5b); }
.worldcup-button:disabled { cursor:wait; opacity:.9; transform:none; }
.worldcup-button.is-loading { background:linear-gradient(110deg,#07684e,#07523f); box-shadow:0 8px 18px rgba(8,127,91,.18); }
.worldcup-button-spinner { display:none; width:15px; height:15px; border:2px solid rgba(104,72,0,.3); border-top-color:#684800; border-radius:50%; animation:worldcup-button-spin .7s linear infinite; }
.worldcup-button.is-loading .worldcup-button-arrow { display:none; }
.worldcup-button.is-loading .worldcup-button-spinner { display:block; }
@keyframes worldcup-button-spin { to { transform:rotate(360deg); } }
.ticket-note { margin-top:1rem; color:#78828b; font-size:.68rem; text-align:center; }
.ticket-note span { color:#087f5b; font-weight:900; }
.ticket-cut { position:absolute; top:99px; width:24px; height:24px; border-radius:50%; background:#0a2940; }
.ticket-cut-left { left:-12px; }.ticket-cut-right { right:-12px; }
.stadium-pitch { position:absolute; z-index:-1; left:15%; right:15%; bottom:-26%; height:44%; border:1px solid rgba(255,255,255,.14); border-radius:50% 50% 0 0; background:linear-gradient(rgba(12,110,70,.14),rgba(3,55,40,.25)); transform:perspective(350px) rotateX(58deg); }
.pitch-line { position:absolute; left:50%; top:0; bottom:0; width:1px; background:rgba(255,255,255,.15); }.pitch-circle { position:absolute; left:50%; top:20%; width:150px; height:150px; border:1px solid rgba(255,255,255,.15); border-radius:50%; transform:translateX(-50%); }
.confetti-layer { position:fixed; z-index:3; inset:0; overflow:hidden; pointer-events:none; }
.confetti-piece { position:absolute; display:block; width:var(--size); height:calc(var(--size) * 2.2); opacity:.9; will-change:transform; box-shadow:0 0 7px rgba(255,255,255,.14); }
.confetti-color-0 { background:#f9c74f; }.confetti-color-1 { background:#d52b52; }.confetti-color-2 { background:#34d399; }.confetti-color-3 { background:#4dabf7; }.confetti-color-4 { background:#f8f9fa; }.confetti-color-5 { background:#ff7b00; }
.confetti-shape-0 { border-radius:2px; }.confetti-shape-1 { border-radius:50%; height:var(--size); }.confetti-shape-2 { clip-path:polygon(50% 0,100% 100%,0 100%); }.confetti-shape-3 { border-radius:999px; width:calc(var(--size) * .55); }
.confetti-direction-0 { left:var(--position); top:-8vh; animation:confettiFall var(--duration) linear var(--delay) infinite; }
.confetti-direction-1 { left:var(--position); bottom:-8vh; animation:confettiRise var(--duration) linear var(--delay) infinite; }
.confetti-direction-2 { left:-4vw; top:var(--offset); animation:confettiCross var(--duration) linear var(--delay) infinite; }
@keyframes trophyFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes trophySpin { to{transform:rotate(360deg)} }
@keyframes confettiFall {
    0% { transform:translate3d(0,-12vh,0) rotate(0deg) rotateY(0deg); opacity:0; }
    8% { opacity:.95; }
    45% { transform:translate3d(var(--drift),48vh,0) rotate(calc(var(--rotation) * .45)) rotateY(180deg); }
    100% { transform:translate3d(calc(var(--drift) * -.65),116vh,0) rotate(var(--rotation)) rotateY(540deg); opacity:.2; }
}
@keyframes confettiRise {
    0% { transform:translate3d(0,12vh,0) rotate(0deg) rotateX(0deg); opacity:0; }
    10% { opacity:.82; }
    55% { transform:translate3d(calc(var(--drift) * -.7),-48vh,0) rotate(calc(var(--rotation) * -.55)) rotateX(240deg); }
    100% { transform:translate3d(var(--drift),-116vh,0) rotate(calc(var(--rotation) * -1)) rotateX(600deg); opacity:.12; }
}
@keyframes confettiCross {
    0% { transform:translate3d(-10vw,0,0) rotate(0deg); opacity:0; }
    8% { opacity:.75; }
    50% { transform:translate3d(55vw,var(--drift),0) rotate(calc(var(--rotation) * .5)); }
    100% { transform:translate3d(112vw,calc(var(--drift) * -.55),0) rotate(var(--rotation)); opacity:.1; }
}
.public-hero { min-height: calc(100vh - 145px); }
.hero-kicker { display: inline-block; text-transform: uppercase; letter-spacing: .15em; font-size: .78rem; font-weight: 800; color: #ffe066; }
.hero-title { font-size: clamp(2.7rem, 7vw, 5.2rem); line-height: .95; font-weight: 900; letter-spacing: -.04em; }
.hero-subtitle { font-size: clamp(1.1rem, 2vw, 1.45rem); color: rgba(255,255,255,.8); margin: 1.5rem 0; }
.ticket-card, .match-card { border-radius: 1.4rem; overflow: hidden; }
.public-prediction-dialog { width:calc(100% - 1.5rem); }.prediction-dialog-count-1 { max-width:600px; }.prediction-dialog-count-2 { max-width:760px; }.prediction-dialog-count-3 { max-width:1040px; }.prediction-dialog-count-4 { max-width:900px; }.public-prediction-grid { display:grid; gap:1.25rem; align-items:stretch; justify-content:center; }.prediction-grid-count-1 { grid-template-columns:minmax(240px,280px); }.prediction-grid-count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }.prediction-grid-count-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }.prediction-grid-count-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }.public-prediction-item { min-width:0; }.public-prediction-card { width:100%; }
.public-registered-prediction { display:grid; gap:.75rem; margin-top:.75rem; }.public-score-summary { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:.6rem; border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:.75rem; background:rgba(0,0,0,.16); }.public-score-summary div { text-align:center; }.public-score-summary span,.public-score-summary strong { display:block; }.public-score-summary span { margin-bottom:.2rem; color:rgba(255,255,255,.55); font-size:.55rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.public-score-summary strong { color:#fff; font-size:1rem; }.public-score-summary i { color:#f9c74f; font-size:.62rem; font-style:normal; font-weight:900; text-transform:uppercase; }.public-prediction-status { display:flex; align-items:center; justify-content:center; border:1px solid currentColor; border-radius:12px; padding:.58rem; font-size:.72rem; font-weight:950; text-transform:uppercase; letter-spacing:.06em; }.public-prediction-status.status-ganador { color:#50df9b; background:rgba(8,127,91,.16); }.public-prediction-status.status-perdedor { color:#ff8192; background:rgba(195,59,77,.14); }.public-prediction-status.status-pendiente { color:#f9c74f; background:rgba(249,199,79,.12); }.public-prediction-status.status-anulado { color:#cbd4dc; background:rgba(145,158,171,.14); }
@media (max-width:767px) { .public-prediction-dialog { width:calc(100% - 1rem); margin:.5rem auto; }.public-prediction-grid { grid-template-columns:minmax(0,1fr); }.public-prediction-card { max-width:320px; margin-inline:auto; } }
.ticket-card::before, .match-card::before { content: ""; display: block; height: 7px; background: linear-gradient(90deg, var(--verde), var(--dorado), #dc3545); }
.ticket-input { letter-spacing: .12em; font-weight: 800; }
.teams { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; font-size: 1.2rem; font-weight: 800; }
.teams strong { color: var(--verde); font-size: .8rem; }
.score-board { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: end; }
.team-name { display: block; min-height: 3rem; font-weight: 800; }
.score-input { width: 100%; max-width: 130px; border: 3px solid #d1fae5; border-radius: 1rem; text-align: center; font-size: 3rem; font-weight: 900; color: var(--verde-oscuro); }
.score-input:focus { outline: 0; border-color: var(--verde); box-shadow: 0 0 0 .25rem rgba(8,127,91,.15); }
.score-divider { font-size: 3rem; font-weight: 900; padding-bottom: .3rem; }
@media (max-width: 575.98px) {
    .public-actions { top:.65rem; right:.65rem; left:.65rem; justify-content:flex-end; gap:.4rem; }
    .public-action { padding:.6rem .78rem; font-size:.66rem; gap:.45rem; }
    .public-action-icon { font-size:.9rem; }
    .public-info-page { padding-top:4.5rem; }
    .internal-access { padding:.45rem .65rem; font-size:.68rem; }
    .worldcup-hero { padding-top:1rem; }
    .worldcup-title { font-size:2.7rem; }
    .worldcup-lead { font-size:.95rem; }
    .trophy-stage { min-height:330px; }
    .worldcup-trophy { max-height:350px; width:230px; }
    .trophy-rays { width:350px; height:350px; }
    .trophy-halo { width:240px; height:300px; }
    .trophy-shadow { bottom:8px; width:160px; }
    .match-steps { justify-content:center; }
    .match-steps div { flex-direction:column; gap:.3rem; text-align:center; }
    .match-steps i { min-width:12px; }
    .ticket-header, .ticket-body { padding-left:1.25rem; padding-right:1.25rem; }
    .public-hero .d-flex.small { flex-direction: column; gap: .35rem !important; }
    .score-board { gap: .5rem; }
    .score-input { font-size: 2.3rem; }
    .team-name { font-size: .9rem; }
}
@media (min-width: 576px) and (max-width: 991.98px) { .trophy-stage { min-height:480px; }.worldcup-trophy{max-height:470px;width:300px}.hero-copy{text-align:center}.worldcup-lead{margin-left:auto;margin-right:auto}.match-steps{justify-content:center} }
@media (min-width: 992px) and (max-height: 820px) {
    .public-page-home .worldcup-title { font-size:clamp(2.7rem, 4.4vw, 4.45rem); margin-bottom:.9rem; }
    .public-page-home .worldcup-lead { margin-bottom:.5rem; font-size:.95rem; line-height:1.5; }
    .public-page-home .match-steps { margin-top:1rem; }
    .public-page-home .trophy-stage { min-height:min(68vh, 520px); }
    .public-page-home .worldcup-trophy { max-height:min(65vh, 505px); width:min(100%, 310px); }
    .public-page-home .trophy-rays { width:470px; height:470px; }
    .public-page-home .trophy-halo { width:320px; height:410px; }
    .public-page-home .ticket-header { padding:1.1rem 1.35rem; }
    .public-page-home .ticket-body { padding:1.15rem 1.35rem 1rem; }
    .public-page-home .ticket-body > p { margin-bottom:.85rem; }
    .public-page-home .ticket-field input { padding:.72rem .85rem; }
    .public-page-home .worldcup-button { margin-top:.75rem; padding:.72rem 1rem; }
}
@media (max-width: 575.98px) {
    .public-page-home .public-container { padding-left:.75rem; padding-right:.75rem; }
    .public-page-home .worldcup-hero { padding:.65rem 0; }
    .public-page-home .worldcup-hero > .row { --bs-gutter-y:.55rem; }
    .public-page-home .trophy-stage { min-height:150px; height:150px; }
    .public-page-home .worldcup-trophy { width:105px; max-height:150px; }
    .public-page-home .trophy-rays { width:210px; height:210px; }
    .public-page-home .trophy-halo { width:150px; height:175px; }
    .public-page-home .trophy-shadow { bottom:0; width:90px; height:16px; }
    .public-page-home .tournament-badge { margin-bottom:.45rem !important; padding:.32rem .55rem; font-size:.52rem; }
    .public-page-home .worldcup-title { display:block; margin-bottom:.45rem; font-size:1.9rem; line-height:.94; }
    .public-page-home .worldcup-title span, .public-page-home .worldcup-title strong { display:inline; margin:0; font-size:inherit; }
    .public-page-home .worldcup-lead { margin:0 auto; max-width:350px; font-size:.76rem; line-height:1.35; }
    .public-page-home .match-steps { margin-top:.55rem; gap:.35rem; }
    .public-page-home .match-steps b { width:25px; height:25px; font-size:.55rem; }
    .public-page-home .match-steps div { font-size:.52rem; }
    .public-page-home .worldcup-ticket { max-width:360px; margin:0 auto; border-radius:15px; }
    .public-page-home .ticket-topline { height:5px; }
    .public-page-home .ticket-header { padding:.65rem .9rem; gap:.65rem; }
    .public-page-home .mini-ball { flex-basis:37px; width:37px; height:37px; font-size:1rem; }
    .public-page-home .ticket-header small { font-size:.45rem; }
    .public-page-home .ticket-header h2 { font-size:.92rem; }
    .public-page-home .ticket-body { padding:.7rem .9rem .65rem; }
    .public-page-home .ticket-body > p { display:none; }
    .public-page-home .worldcup-label { margin-bottom:.25rem; font-size:.58rem; }
    .public-page-home .ticket-field input { padding:.58rem .65rem; font-size:1rem; }
    .public-page-home .ticket-field span { padding-left:.7rem; font-size:1rem; }
    .public-page-home .worldcup-button { margin-top:.55rem; padding:.58rem .75rem; font-size:.72rem; }
    .public-page-home .worldcup-button b { width:24px; height:24px; }
    .public-page-home .ticket-note { margin-top:.45rem; font-size:.55rem; }
    .public-page-home .ticket-cut { top:59px; width:18px; height:18px; }
    .public-page-home .ticket-cut-left { left:-9px; }
    .public-page-home .ticket-cut-right { right:-9px; }
}
@media (prefers-reduced-motion: reduce) {
    .confetti-piece, .worldcup-trophy, .trophy-rays { animation:none !important; }
    .confetti-piece { display:none; }
}

/* Panel administrativo */
.admin-shell { min-height:100vh; background:#f3f6fa; color:#182230; }
.admin-sidebar { position:fixed; z-index:50; inset:0 auto 0 0; width:280px; flex-direction:column; overflow-y:auto; color:#d8e2ee; background:linear-gradient(180deg,#091b2e 0%,#0b2439 58%,#071724 100%); box-shadow:12px 0 35px rgba(15,30,48,.12); }
.sidebar-brand { display:flex; align-items:center; gap:.85rem; min-height:86px; padding:1.25rem 1.35rem; border-bottom:1px solid rgba(255,255,255,.08); }
.sidebar-brand-mark { display:grid; place-items:center; flex:0 0 45px; width:45px; height:45px; border-radius:14px; color:#fff; background:linear-gradient(145deg,#11a36a,#087f5b); box-shadow:0 8px 20px rgba(8,127,91,.28); font-weight:950; }
.sidebar-brand small { display:block; margin-bottom:.2rem; color:#6f8aa2; font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.15em; }
.sidebar-brand strong { display:block; color:#fff; font-size:.96rem; line-height:1.1; }
.sidebar-nav { flex:1; padding:1rem .8rem; }
.sidebar-section { display:block; padding:.85rem .8rem .45rem; color:#5f7a92; font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.16em; }
.sidebar-link { display:flex; align-items:center; width:100%; gap:.8rem; margin:.18rem 0; border:0; border-radius:11px; padding:.72rem .8rem; color:#9fb1c2; background:transparent; text-decoration:none; text-align:left; font-size:.86rem; font-weight:700; transition:.18s; }
.sidebar-link:hover { color:#fff; background:rgba(255,255,255,.065); }
.sidebar-link.active { color:#fff; background:linear-gradient(100deg,rgba(8,127,91,.95),rgba(12,151,104,.72)); box-shadow:0 7px 18px rgba(4,91,62,.22); }
.sidebar-icon { display:grid; place-items:center; flex:0 0 31px; width:31px; height:31px; border-radius:9px; color:#b6c5d3; background:rgba(255,255,255,.07); font-size:1rem; }
.sidebar-svg-icon { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sidebar-link.active .sidebar-icon { color:#fff; background:rgba(255,255,255,.15); }
.sidebar-chevron { margin-left:auto; font-size:.9rem; transition:.2s; }
.sidebar-dropdown-toggle[aria-expanded="true"] .sidebar-chevron { transform:rotate(180deg); }
.sidebar-submenu { margin:.2rem 0 .45rem 2.7rem; padding-left:.7rem; border-left:1px solid rgba(255,255,255,.1); }
.sidebar-submenu a { display:block; margin:.15rem 0; border-radius:8px; padding:.5rem .65rem; color:#7890a5; text-decoration:none; font-size:.75rem; font-weight:650; }
.sidebar-submenu a:hover, .sidebar-submenu a.active { color:#fff; background:rgba(255,255,255,.06); }
.sidebar-footer { padding:.8rem 1rem 1rem; border-top:1px solid rgba(255,255,255,.08); }
.sidebar-user { display:flex; align-items:center; gap:.7rem; margin-bottom:.85rem; padding:.6rem; border-radius:11px; background:rgba(255,255,255,.045); }
.sidebar-user-avatar { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:10px; color:#fff; background:linear-gradient(145deg,#8b1538,#c12952); font-weight:900; }
.sidebar-user strong, .sidebar-user span { display:block; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.sidebar-user strong { color:#fff; font-size:.75rem; }.sidebar-user span { color:#6f879b; font-size:.65rem; }
.sidebar-logout { display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:.6rem; color:#8fa4b7; background:transparent; font-size:.74rem; font-weight:700; }.sidebar-logout:hover { color:#fff; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.05); }
.admin-workspace { min-height:100vh; margin-left:280px; }
.admin-topbar { position:sticky; z-index:40; top:0; display:flex; align-items:center; justify-content:space-between; min-height:92px; padding:1rem 2rem; border-bottom:1px solid #e4e9f0; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); }
.admin-topbar-title span { display:block; color:#087f5b; font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }.admin-topbar-title strong { display:block; margin-top:.15rem; color:#152235; font-size:1.35rem; font-weight:850; letter-spacing:-.025em; }.admin-topbar-title p { margin:.18rem 0 0; color:#7b8796; font-size:.76rem; }
.admin-user-menu { display:flex; align-items:center; gap:.65rem; }.admin-user-menu strong,.admin-user-menu span { display:block; }.admin-user-menu strong { color:#253245; font-size:.78rem; }.admin-user-menu span { color:#98a3b2; font-size:.66rem; }
.admin-avatar { display:grid; place-items:center; width:39px; height:39px; border-radius:11px; color:#fff; background:linear-gradient(145deg,#087f5b,#0ba477); font-weight:900; }
.sidebar-toggle { display:grid; gap:4px; border:0; padding:.45rem; background:transparent; }.sidebar-toggle span { display:block; width:23px; height:2px; border-radius:2px; background:#26374b; }
.admin-offcanvas { width:280px !important; color:#d8e2ee; background:linear-gradient(180deg,#091b2e,#071724); }.admin-offcanvas .sidebar-brand { display:none; }.admin-offcanvas .sidebar-nav { overflow-y:auto; }
.admin-content { padding:2rem; }
.admin-page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:1.6rem; }.admin-page-heading h1 { margin:.2rem 0 .35rem; color:#152235; font-size:clamp(1.7rem,3vw,2.25rem); font-weight:850; letter-spacing:-.035em; }.admin-page-heading p { margin:0; color:#7b8796; font-size:.88rem; }
.admin-eyebrow { color:#087f5b; font-size:.64rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }
.admin-primary-btn { border:0; border-radius:10px; padding:.7rem 1rem; color:#fff; background:linear-gradient(110deg,#087f5b,#0ba477); box-shadow:0 8px 20px rgba(8,127,91,.2); font-size:.8rem; font-weight:800; }.admin-primary-btn:hover { color:#fff; background:#087f5b; }
.admin-page-actions { display:flex; justify-content:flex-end; margin-bottom:1rem; }
.admin-filter-card { margin-bottom:1.2rem; border:1px solid #cdd7e3; border-radius:15px; padding:1.1rem; background:#fff; box-shadow:0 8px 22px rgba(31,45,61,.07); }.admin-filter-card .form-label { color:#5b687a; font-size:.7rem; font-weight:800; }.admin-filter-card .form-control,.admin-filter-card .form-select { min-height:42px; border:1px solid #cbd5e1; border-radius:9px; font-size:.8rem; box-shadow:inset 0 1px 2px rgba(15,23,42,.025); }.admin-filter-card .form-control:focus,.admin-filter-card .form-select:focus { border-color:#087f5b; box-shadow:0 0 0 3px rgba(8,127,91,.1); }
.admin-table-card { overflow:hidden; border:1px solid #c8d3df; border-radius:16px; background:#fff; box-shadow:0 10px 26px rgba(31,45,61,.075); }
.admin-table-header { display:flex; align-items:center; justify-content:space-between; padding:1.15rem 1.3rem; border-bottom:1px solid #d5dee8; }.admin-table-header strong,.admin-table-header span { display:block; }.admin-table-header strong { color:#273548; font-size:.9rem; }.admin-table-header span { margin-top:.15rem; color:#8793a3; font-size:.68rem; }
.admin-table thead th { padding:.8rem 1.1rem; border-bottom:1px solid #cfd9e4; color:#758397; background:#f5f7fa; font-size:.64rem; font-weight:900; text-transform:uppercase; letter-spacing:.07em; white-space:nowrap; }.admin-table tbody td { padding:.9rem 1.1rem; border-bottom:1px solid #dce3eb; color:#536174; font-size:.77rem; }.admin-table tbody tr:last-child td { border-bottom:0; }.admin-table tbody tr:hover { background:#f7fbf9; }
.user-cell { display:flex; align-items:center; gap:.75rem; min-width:210px; }.user-list-avatar { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:10px; color:#087f5b; background:#e8f7f1; font-weight:900; }.user-cell strong,.user-cell span { display:block; }.user-cell strong { color:#263548; font-size:.78rem; }.user-cell span { margin-top:.1rem; color:#98a3b2; font-size:.68rem; }
.hierarchy-row[data-has-children="true"] { cursor:pointer; }.hierarchy-row[data-has-children="true"]:hover { background:#f5fbf8; }.hierarchy-row[data-level="1"] { background:#fbfcfd; }.hierarchy-row[data-level="2"] { background:#f8fafc; }.hierarchy-row[data-level="3"] { background:#f5f8fb; }
.hierarchy-user-cell { position:relative; padding-left:calc(var(--hierarchy-level) * 42px); transition:.2s; }.hierarchy-connector { position:absolute; left:calc((var(--hierarchy-level) * 42px) - 20px); top:-26px; width:24px; height:46px; border-left:2px solid #9bcbbb; border-bottom:2px solid #9bcbbb; border-radius:0 0 0 10px; }.hierarchy-toggle,.hierarchy-toggle-placeholder { flex:0 0 24px; width:24px; height:24px; }.hierarchy-toggle { display:grid; place-items:center; border:1px solid #cbd8e2; border-radius:7px; padding:0; color:#557087; background:#fff; }.hierarchy-toggle svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:.2s; }.hierarchy-row.hierarchy-open > td .hierarchy-toggle svg { transform:rotate(90deg); }.hierarchy-level-1 .user-list-avatar { color:#6847aa; background:#f0ebff; }.hierarchy-level-2 .user-list-avatar { color:#176aa1; background:#e8f5ff; }.hierarchy-level-3 .user-list-avatar { color:#a36e00; background:#fff5d7; }
.role-badge { display:inline-flex; border-radius:999px; padding:.35rem .55rem; font-size:.62rem; font-weight:800; }.role-administradorit { color:#7b1641; background:#fdeaf2; }.role-superadministrador { color:#6242a1; background:#f0ebff; }.role-administrador { color:#176aa1; background:#e8f5ff; }.role-cajero { color:#087f5b; background:#e8f7f1; }
.status-dot { display:inline-flex; align-items:center; gap:.4rem; font-size:.67rem; font-weight:800; }.status-dot i { width:7px; height:7px; border-radius:50%; }.status-dot.activo { color:#087f5b; }.status-dot.activo i { background:#19b978; box-shadow:0 0 0 3px #e3f8ef; }.status-dot.inactivo { color:#8994a3; }.status-dot.inactivo i { background:#aab2be; box-shadow:0 0 0 3px #edf0f3; }
.empty-admin-state { padding:3rem 1rem; text-align:center; }.empty-admin-state > span { display:block; color:#9eb0bf; font-size:2.2rem; }.empty-admin-state strong { display:block; color:#354459; }.empty-admin-state p { margin:.3rem 0 0; color:#98a3b2; font-size:.75rem; }
.admin-add-user-btn { display:inline-grid; place-items:center; width:30px; height:30px; border:1px solid #78bea7; border-radius:8px; padding:0; color:#087f5b; background:#edf9f5; line-height:1; }.admin-add-user-btn:hover { color:#fff; border-color:#087f5b; background:#087f5b; }.admin-add-user-icon { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.admin-icon-actions { display:inline-flex; align-items:center; justify-content:flex-end; gap:.3rem; }.admin-action-icon { display:inline-grid; place-items:center; width:29px; height:29px; border:1px solid currentColor; border-radius:7px; padding:0; background:#fff; transition:.16s; }.admin-action-icon svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.admin-action-icon:hover { color:#fff; transform:translateY(-1px); }.action-create { color:#087f5b; background:#edf9f5; }.action-create:hover { background:#087f5b; }.action-edit { color:#176aa1; background:#edf7fd; }.action-edit:hover { background:#176aa1; }.action-block { color:#a36e00; background:#fff8e4; }.action-block:hover { background:#b37a00; }.action-delete { color:#c33b4d; background:#fff0f2; }.action-delete:hover { background:#c33b4d; }
.action-detail { color:#556578; background:#f3f6f8; font-size:0; }.action-detail:hover { background:#556578; }
.action-result { color:#087f5b; background:#edf9f5; }.action-result:hover { background:#087f5b; }.evento-actions-column { width:180px; min-width:180px; text-align:center; }.evento-actions { width:100%; justify-content:center; }.evento-edit-dialog { max-width:620px; }.evento-result-score { display:inline-flex; min-width:52px; justify-content:center; border-radius:8px; padding:.3rem .5rem; color:#fff; background:#087f5b; font-size:.72rem; font-weight:900; }.evento-result-dialog { max-width:470px; }.evento-final-score { display:flex; align-items:flex-end; justify-content:center; gap:.7rem; border:1px solid #d9e2e9; border-radius:12px; padding:1rem; background:#f7faf9; }.evento-final-score label { margin:0; text-align:center; }.evento-final-score label span { display:block; max-width:140px; margin-bottom:.35rem; overflow:hidden; color:#536477; font-size:.7rem; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }.evento-final-score input { width:82px; min-height:48px!important; text-align:center; font-size:1rem!important; font-weight:900; }.evento-final-score strong { padding-bottom:.75rem; color:#7c8997; }.evento-result-help { margin:.9rem 0 0; color:#748292; font-size:.7rem; line-height:1.5; }
.boleto-actions-column { width:180px; min-width:180px; text-align:center; }.boleto-actions { width:100%; justify-content:center; }
.participation-result { display:inline-flex; align-items:center; gap:.45rem; white-space:nowrap; }.participation-result strong { display:inline-flex; min-width:48px; justify-content:center; border-radius:7px; padding:.38rem .55rem; color:#1e2d3e; background:#edf1f5; font-size:.78rem; }.participation-result span,.participation-result-state { display:inline-flex; border-radius:999px; padding:.28rem .48rem; font-size:.58rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }.result-hit { color:#087f5b; background:#e3f7ef; }.result-miss { color:#b53245; background:#fde9ec; }.result-cancelled { color:#a33745; background:#fde9ec; }.result-pending { color:#7a6400; background:#fff4cc; }
.boleto-score-section { margin-top:1.1rem; border:1px solid #d4dee7; border-radius:12px; overflow:hidden; background:#f8fafb; }.boleto-score-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border-bottom:1px solid #dbe3ea; background:#f1f7f5; }.boleto-score-heading span,.boleto-score-heading strong { display:block; }.boleto-score-heading span { color:#087f5b; font-size:.58rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }.boleto-score-heading strong { margin-top:.12rem; color:#233347; font-size:.85rem; }.boleto-score-heading small { color:#6f7d8d; font-size:.68rem; }.boleto-score-list { display:grid; gap:.65rem; max-height:260px; padding:.8rem; overflow-y:auto; }.boleto-score-card { display:grid; grid-template-columns:minmax(180px,1fr) auto; align-items:center; gap:1rem; border:1px solid #dde5ec; border-radius:10px; padding:.75rem; background:#fff; }.boleto-score-event small,.boleto-score-event strong { display:block; }.boleto-score-event small { color:#8995a4; font-size:.62rem; }.boleto-score-event strong { margin-top:.2rem; color:#263649; font-size:.76rem; }.boleto-score-inputs { display:flex; align-items:flex-end; gap:.45rem; }.boleto-score-inputs label { margin:0; text-align:center; }.boleto-score-inputs label span { display:block; max-width:95px; margin-bottom:.25rem; overflow:hidden; color:#687789; font-size:.6rem; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }.boleto-score-inputs .form-control { width:62px; min-height:38px; padding:.35rem; text-align:center; font-weight:800; }.boleto-score-separator { padding-bottom:.55rem; color:#8290a0; font-weight:900; }
.boleto-edit-dialog { max-width:650px; }.boleto-edit-modal .modal-header { padding:.9rem 1.1rem; }.boleto-edit-modal .modal-body { max-height:calc(100vh - 180px); padding:1rem 1.1rem; overflow-y:auto; }.boleto-edit-modal .modal-footer { padding:.75rem 1.1rem; }.boleto-edit-fields { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }.boleto-client-name { grid-column:1 / -1; }.boleto-edit-modal .boleto-score-section { margin-top:.85rem; }.boleto-edit-modal .boleto-score-heading { padding:.6rem .8rem; }.boleto-edit-modal .boleto-score-list { max-height:205px; gap:.5rem; padding:.6rem; }.boleto-edit-modal .boleto-score-card { padding:.55rem .65rem; }
@media (max-width:767px) { .boleto-edit-dialog { margin:.5rem; }.boleto-edit-fields,.boleto-score-card { grid-template-columns:1fr; }.boleto-score-inputs { justify-content:center; } }
.admin-user-modal { overflow:hidden; border:1px solid #c8d3df; border-radius:17px; box-shadow:0 25px 70px rgba(15,30,48,.25); }.admin-user-modal .modal-header { align-items:flex-start; padding:1.2rem 1.35rem; border-bottom:1px solid #d8e0e8; background:#f7faf9; }.admin-user-modal .modal-header span { display:block; margin-bottom:.18rem; color:#087f5b; font-size:.58rem; font-weight:900; text-transform:uppercase; letter-spacing:.13em; }.admin-user-modal .modal-title { color:#1f2d3d; font-size:1.1rem; font-weight:850; }.admin-user-modal .modal-body { padding:1.35rem; }.admin-user-modal .modal-helper { margin-bottom:1.1rem; border-left:3px solid #087f5b; padding:.6rem .75rem; color:#6d7988; background:#f1f8f5; font-size:.72rem; }.admin-user-modal .form-label { color:#586678; font-size:.7rem; font-weight:800; }.admin-user-modal .form-control { min-height:43px; border-color:#cbd5e1; border-radius:9px; font-size:.8rem; }.admin-user-modal .form-control:focus { border-color:#087f5b; box-shadow:0 0 0 3px rgba(8,127,91,.1); }.admin-user-modal .modal-footer { padding:1rem 1.35rem; border-top:1px solid #d8e0e8; background:#fbfcfd; }
.admin-feedback-dialog { max-width:390px; }.admin-feedback-modal { overflow:hidden; border:1px solid #c7d8d1; border-radius:20px; box-shadow:0 28px 80px rgba(15,30,48,.3); }.admin-feedback-modal .modal-body { padding:2rem 1.7rem 1.6rem; text-align:center; }.feedback-success-icon { display:grid; place-items:center; width:72px; height:72px; margin:0 auto 1rem; border-radius:50%; color:#fff; background:linear-gradient(145deg,#0ba477,#087f5b); box-shadow:0 0 0 8px #e5f7f0,0 15px 28px rgba(8,127,91,.22); }.feedback-success-icon svg { width:36px; height:36px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }.feedback-label { display:block; color:#087f5b; font-size:.6rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }.admin-feedback-modal h2 { margin:.3rem 0 .55rem; color:#1e2c3e; font-size:1.3rem; font-weight:900; }.admin-feedback-modal p { margin:0 auto 1.4rem; color:#6f7c8c; font-size:.82rem; line-height:1.55; }.feedback-button { min-width:120px; }
.admin-delete-modal { overflow:hidden; border:1px solid #efc5cb; border-radius:20px; box-shadow:0 28px 80px rgba(15,30,48,.3); }.admin-delete-modal .modal-body { padding:2rem 1.7rem 1.6rem; text-align:center; }.delete-warning-icon { display:grid; place-items:center; width:68px; height:68px; margin:0 auto 1rem; border-radius:50%; color:#c33b4d; background:#fff0f2; box-shadow:0 0 0 7px #fce1e5; }.delete-warning-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.admin-delete-modal .modal-body > span { color:#c33b4d; font-size:.6rem; font-weight:900; text-transform:uppercase; letter-spacing:.13em; }.admin-delete-modal h2 { margin:.3rem 0 .55rem; color:#1e2c3e; font-size:1.25rem; font-weight:900; }.admin-delete-modal p { color:#6f7c8c; font-size:.8rem; line-height:1.55; }
.dashboard-date { border:1px solid #e2e8f0; border-radius:9px; padding:.55rem .75rem; color:#6f7d8e; background:#fff; font-size:.72rem; font-weight:700; }
.dashboard-stat-card { position:relative; display:flex; align-items:center; gap:1rem; overflow:hidden; min-height:128px; border:1px solid #cbd6e2; border-radius:16px; padding:1.25rem; background:#fff; box-shadow:0 9px 24px rgba(31,45,61,.07); }.dashboard-stat-card .stat-icon { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; border-radius:13px; font-size:1.3rem; }.dashboard-stat-card span,.dashboard-stat-card strong { display:block; }.dashboard-stat-card span { color:#8491a2; font-size:.7rem; font-weight:750; }.dashboard-stat-card strong { margin-top:.25rem; color:#1c2a3c; font-size:1.85rem; line-height:1; }.tone-green .stat-icon { color:#087f5b; background:#e8f7f1; }.tone-blue .stat-icon { color:#176aa1; background:#e8f5ff; }.tone-purple .stat-icon { color:#7048a8; background:#f1ebff; }.tone-gold .stat-icon { color:#a36e00; background:#fff5d7; }.stat-decoration { position:absolute; right:-18px; bottom:-30px; width:85px; height:85px; border-radius:50%; background:currentColor; opacity:.025; }
.dashboard-panel { border:1px solid #cbd6e2; border-radius:16px; padding:1.35rem; background:#fff; box-shadow:0 9px 24px rgba(31,45,61,.07); }.dashboard-panel-heading span { color:#087f5b; font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }.dashboard-panel-heading h2 { margin:.2rem 0 1.15rem; color:#263548; font-size:1rem; font-weight:850; }
.quick-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }.quick-action-grid a { display:flex; align-items:center; gap:.8rem; border:1px solid #d0d9e3; border-radius:12px; padding:.9rem; color:inherit; background:#fff; text-decoration:none; box-shadow:0 3px 8px rgba(31,45,61,.025); transition:.18s; }.quick-action-grid a:hover { border-color:#75c3a7; background:#f7fcfa; box-shadow:0 6px 14px rgba(8,127,91,.08); transform:translateY(-2px); }.quick-action-grid > a > span { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:10px; color:#087f5b; background:#e8f7f1; font-size:1rem; }.quick-action-grid strong,.quick-action-grid small { display:block; }.quick-action-grid strong { color:#314055; font-size:.76rem; }.quick-action-grid small { margin-top:.15rem; color:#98a3b2; font-size:.64rem; }.quick-action-grid b { margin-left:auto; color:#a4aebb; }
.account-summary { text-align:center; }.account-summary-avatar { display:grid; place-items:center; width:68px; height:68px; margin:0 auto .8rem; border-radius:19px; color:#fff; background:linear-gradient(145deg,#087f5b,#0ba477); font-size:1.5rem; font-weight:950; box-shadow:0 10px 25px rgba(8,127,91,.2); }.account-summary h3 { margin:0; color:#29384b; font-size:.9rem; }.account-summary > span { color:#98a3b2; font-size:.67rem; }.account-summary dl { margin:1.1rem 0 0; }.account-summary dl div { display:flex; justify-content:space-between; padding:.65rem 0; border-top:1px solid #edf0f4; font-size:.7rem; }.account-summary dt { color:#8995a5; font-weight:650; }.account-summary dd { margin:0; color:#344256; font-weight:800; }
@media (max-width:991.98px) { .admin-workspace { margin-left:0; }.admin-topbar { min-height:82px; padding:.75rem 1rem; }.admin-content { padding:1.25rem; } }
@media (max-width:575.98px) { .admin-page-heading { align-items:flex-start; flex-direction:column; }.admin-page-heading .dropdown,.admin-page-heading .admin-primary-btn,.admin-page-actions .dropdown,.admin-page-actions .admin-primary-btn { width:100%; }.quick-action-grid { grid-template-columns:1fr; }.dashboard-date { display:none; }.admin-content { padding:1rem; }.dashboard-stat-card { min-height:105px; padding:1rem; }.admin-topbar-title strong { font-size:1rem; }.admin-topbar-title p { display:none; }.admin-page-actions { margin-bottom:.8rem; } }

/* Ocultar spinner/scroll de inputs de tipo number para los scores */
.score-input-modal::-webkit-outer-spin-button,
.score-input-modal::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.score-input-modal {
  -moz-appearance: textfield;
}

/* Premios por tienda */
.premio-rule-banner { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; border:1px solid #c8ddd5; border-radius:15px; padding:1rem 1.15rem; background:linear-gradient(110deg,#f5fcf9,#eef8f4); box-shadow:0 7px 20px rgba(8,127,91,.06); }
.premio-rule-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:12px; color:#755100; background:#f9c74f; font-size:1.1rem; box-shadow:0 7px 15px rgba(249,199,79,.25); }
.premio-rule-banner strong,.premio-rule-banner p { display:block; }.premio-rule-banner strong { color:#243548; font-size:.82rem; }.premio-rule-banner p { margin:.2rem 0 0; color:#6f7e8d; font-size:.72rem; line-height:1.45; }
.premio-name-cell { display:flex; align-items:center; gap:.7rem; min-width:210px; }.premio-name-cell > span { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:10px; color:#755100; background:#fff4c7; font-weight:950; }.premio-name-cell strong,.premio-name-cell small { display:block; }.premio-name-cell strong { color:#263548; font-size:.78rem; }.premio-name-cell small { max-width:220px; margin-top:.15rem; overflow:hidden; color:#929eac; font-size:.64rem; text-overflow:ellipsis; white-space:nowrap; }
.premio-store-name { color:#33445a; font-size:.74rem; }.premio-type-badge { display:inline-flex; border-radius:999px; padding:.32rem .5rem; color:#6847a5; background:#f0ebff; font-size:.61rem; font-weight:850; white-space:nowrap; }.premio-value,.premio-winners { display:block; margin-top:.3rem; color:#778597; font-size:.62rem; }
.premio-event-tags { display:flex; flex-wrap:wrap; gap:.28rem; max-width:280px; }.premio-event-tags span { max-width:190px; overflow:hidden; border:1px solid #d7e0e8; border-radius:7px; padding:.25rem .4rem; color:#526174; background:#f7f9fb; font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
.premio-resolution { display:inline-flex; border-radius:999px; padding:.3rem .48rem; font-size:.6rem; font-weight:900; text-transform:uppercase; }.resolution-pendiente { color:#846600; background:#fff3c4; }.resolution-resuelto { color:#087f5b; background:#e3f7ef; }.resolution-anulado { color:#a33745; background:#fde9ec; }.premio-actions { justify-content:center; }
.premio-form-dialog { max-width:760px; }.premio-form-modal .modal-body { max-height:calc(100vh - 185px); overflow-y:auto; }.premio-form-modal .form-select,.premio-form-modal textarea { border-color:#cbd5e1; border-radius:9px; font-size:.8rem; }
.premio-events-section { margin-top:1rem; overflow:hidden; border:1px solid #d4dee7; border-radius:13px; background:#f8fafb; }.premio-events-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem .9rem; border-bottom:1px solid #dbe3ea; background:#f1f7f5; }.premio-events-heading span,.premio-events-heading strong { display:block; }.premio-events-heading span { color:#087f5b; font-size:.58rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }.premio-events-heading strong { margin-top:.15rem; color:#263548; font-size:.78rem; }.premio-events-heading small { color:#748292; font-size:.63rem; }
.premio-events-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; max-height:245px; padding:.7rem; overflow-y:auto; }.premio-event-option { position:relative; display:flex; align-items:center; gap:.65rem; margin:0; border:1px solid #dce4eb; border-radius:10px; padding:.7rem; background:#fff; cursor:pointer; transition:.16s; }.premio-event-option:hover { border-color:#8cc8b4; background:#f8fdfa; }.premio-event-option input { position:absolute; opacity:0; pointer-events:none; }.premio-event-check { display:grid; place-items:center; flex:0 0 20px; width:20px; height:20px; border:1px solid #aebbc8; border-radius:6px; background:#fff; }.premio-event-option input:checked + .premio-event-check { border-color:#087f5b; background:#087f5b; box-shadow:0 0 0 3px rgba(8,127,91,.1); }.premio-event-option input:checked + .premio-event-check::after { content:'✓'; color:#fff; font-size:.72rem; font-weight:900; }.premio-event-option strong,.premio-event-option small { display:block; }.premio-event-option strong { color:#344458; font-size:.68rem; }.premio-event-option small { margin-top:.15rem; color:#8a96a4; font-size:.59rem; }.premio-no-events { grid-column:1 / -1; padding:1.5rem; color:#8995a4; text-align:center; font-size:.72rem; }
.public-store-prize { text-align:left; }.public-store-prize > span { display:block; color:#f9c74f; font-size:.65rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }.public-prize-type { display:block; margin:.6rem 0; color:#75ddb8; font-size:.76rem; }.public-prize-events { display:grid; gap:.38rem; margin-top:1rem; border-top:1px solid rgba(255,255,255,.12); padding-top:.85rem; }.public-prize-events small { color:#f9c74f; font-size:.62rem; font-weight:850; text-transform:uppercase; }.public-prize-events span { border:1px solid rgba(255,255,255,.13); border-radius:8px; padding:.42rem .55rem; color:rgba(255,255,255,.82); background:rgba(255,255,255,.05); font-size:.68rem; }.public-prize-events span.cancelled { opacity:.55; text-decoration:line-through; }
.public-prizes-dialog { max-width:980px; }
.public-prizes-modal { overflow:hidden; border:1px solid rgba(249,199,79,.38); border-radius:25px; color:#fff; background:linear-gradient(145deg,rgba(7,31,53,.99),rgba(3,17,31,.99)); box-shadow:0 35px 85px rgba(0,0,0,.6); }
.public-prizes-modal .modal-header { padding:1.15rem 1.35rem; border-color:rgba(255,255,255,.11); }
.public-prizes-modal-header { gap:.8rem; }
.public-prizes-status-filter { position:relative; min-width:225px; margin-left:auto; }
.public-prizes-modal-header .public-prizes-status-filter { margin-right:-.2rem; }
.public-prizes-modal-header .btn-close { margin-left:.15rem; }
.public-prizes-combobox-trigger { display:flex; align-items:center; gap:.45rem; width:100%; min-height:38px; border:1px solid rgba(255,255,255,.16); border-radius:10px; padding:0 .55rem; color:#fff; background:rgba(0,0,0,.18); transition:.18s ease; }
.public-prizes-combobox-trigger:hover,.public-prizes-combobox-trigger[aria-expanded="true"] { border-color:rgba(249,199,79,.7); box-shadow:0 0 0 3px rgba(249,199,79,.08); }
.public-prizes-combobox-trigger svg { width:17px; height:17px; flex:0 0 auto; fill:none; stroke:#f9c74f; stroke-width:1.8; stroke-linecap:round; }
.public-prizes-combobox-trigger > span { flex:1; font-size:.62rem; font-weight:900; text-align:left; text-transform:uppercase; white-space:nowrap; }
.public-prizes-combobox-trigger > b,.public-prizes-combobox-menu button > b { display:grid; place-items:center; min-width:21px; height:21px; border-radius:7px; color:#fff; background:#09243b; font-size:.56rem; }
.public-prizes-combobox-trigger .public-prizes-combobox-chevron { width:14px; height:14px; stroke:#aebbc8; transition:transform .18s ease; }
.public-prizes-combobox-trigger[aria-expanded="true"] .public-prizes-combobox-chevron { transform:rotate(180deg); }
.public-prizes-combobox-menu { position:absolute; z-index:1080; top:calc(100% + .45rem); right:0; width:100%; overflow:hidden; border:1px solid rgba(249,199,79,.35); border-radius:12px; padding:.35rem; background:linear-gradient(150deg,#0c2943,#06192e); box-shadow:0 20px 45px rgba(0,0,0,.5); }
.public-prizes-combobox-menu[hidden] { display:none!important; }
.public-prizes-combobox-menu button { display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:.5rem; width:100%; min-height:38px; border:1px solid transparent; border-radius:8px; padding:.4rem .5rem; color:#d6e0e8; background:transparent; }
.public-prizes-combobox-menu button:hover,.public-prizes-combobox-menu button:focus { outline:0; border-color:rgba(249,199,79,.35); background:rgba(249,199,79,.08); }
.public-prizes-combobox-menu button.selected { color:#09243b; border-color:#f9c74f; background:#f9c74f; }
.public-prizes-combobox-menu button > span { width:7px; height:7px; border-radius:50%; }.public-prizes-combobox-menu .pending { background:#f9c74f; }.public-prizes-combobox-menu .finished { background:#50df9b; }
.public-prizes-combobox-menu button.selected > span { background:#09243b; }
.public-prizes-combobox-menu button strong { overflow:hidden; font-size:.6rem; font-weight:900; text-align:left; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.public-prizes-star { color:#f9c74f; font-size:1.65rem; line-height:1; }.public-prizes-kicker { display:block; color:#f9c74f; font-size:.58rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }
.public-prizes-modal .modal-title { margin-top:.15rem; font-size:1.15rem; font-weight:950; text-transform:uppercase; }.public-prizes-modal .modal-body { max-height:calc(100vh - 175px); padding:1.25rem 1.35rem 1.4rem; overflow-y:auto; }
.public-prizes-intro { max-width:660px; margin:0 auto 1.15rem; color:rgba(255,255,255,.67); font-size:.78rem; line-height:1.55; text-align:center; }.public-prizes-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(0,370px)); justify-content:center; align-items:stretch; gap:1rem; width:100%; margin:auto; }
.public-prizes-grid.public-prizes-count-1,.public-prizes-grid.public-prizes-count-2 { max-width:none; }
.public-prize-modal-card { position:relative; display:flex; flex-direction:column; width:100%; min-height:500px; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:22px; padding:1.15rem; background:radial-gradient(circle at 92% 5%,rgba(249,199,79,.12),transparent 30%),linear-gradient(145deg,rgba(20,48,72,.96),rgba(8,30,51,.96)); box-shadow:0 20px 45px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.05); }
.public-prize-modal-card .public-cash-distribution,.public-prize-modal-card .public-prize-resolution { margin-top:auto; }
.public-prize-modal-card[hidden],.public-prizes-filter-empty[hidden] { display:none!important; }
.public-prize-card-accent { position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,#f9c74f,#ff9f1c 50%,#087f5b); }.public-prize-modal-top { display:flex; align-items:center; gap:.8rem; padding-top:.2rem; }
.public-prize-modal-icon { display:grid; place-items:center; flex:0 0 54px; width:54px; height:54px; border:1px solid rgba(255,255,255,.25); border-radius:17px; color:#604000; background:linear-gradient(145deg,#fff1a8,#f9c74f 58%,#d89b00); box-shadow:0 9px 22px rgba(249,199,79,.2); font-size:1.35rem; font-weight:950; }.public-prize-modal-heading { min-width:0; flex:1; }
.public-prize-modal-heading > span { color:#75ddb8; font-size:.56rem; font-weight:900; text-transform:uppercase; letter-spacing:.11em; }.public-prize-modal-heading h3 { margin:.2rem 0 0; overflow:hidden; font-size:1.05rem; font-weight:950; text-overflow:ellipsis; white-space:nowrap; }
.public-prize-status { flex:0 0 auto; border-radius:999px; padding:.28rem .48rem; font-size:.52rem; font-weight:900; text-transform:uppercase; }.public-prize-status.resolution-pendiente { color:#ffe08a; background:rgba(249,199,79,.12); }.public-prize-status.resolution-resuelto { color:#75ddb8; background:rgba(8,127,91,.2); }.public-prize-status.resolution-anulado { color:#ff8998; background:rgba(195,59,77,.2); }
.public-prize-modal-value { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin:1rem 0 .75rem; border:1px solid rgba(249,199,79,.18); border-radius:14px; padding:.75rem .9rem; background:linear-gradient(110deg,rgba(249,199,79,.13),rgba(249,199,79,.035)); }.public-prize-modal-value small { color:rgba(255,255,255,.55); font-size:.56rem; font-weight:850; text-transform:uppercase; letter-spacing:.1em; }.public-prize-modal-value strong { color:#ffd45d; font-size:1.55rem; line-height:1; text-shadow:0 5px 20px rgba(249,199,79,.18); }
.public-prize-description { margin:0 0 1rem; color:rgba(255,255,255,.68); font-size:.7rem; line-height:1.55; }
.public-prize-modal-events { display:grid; gap:.42rem; margin-top:auto; border-top:1px solid rgba(255,255,255,.1); padding-top:.8rem; }.public-prize-events-title { display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin-bottom:.15rem; }.public-prize-events-title span { color:rgba(255,255,255,.5); font-size:.55rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.public-prize-events-title b { color:#75ddb8; font-size:.55rem; }
.public-prize-match { display:grid; grid-template-columns:25px minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.5rem; border:1px solid rgba(255,255,255,.07); border-radius:10px; padding:.48rem .55rem; background:rgba(255,255,255,.05); }.public-prize-match i { display:grid; place-items:center; width:25px; height:25px; border-radius:7px; color:#0b2942; background:#f9c74f; font-size:.55rem; font-style:normal; font-weight:950; }.public-prize-match em { color:#f9c74f; font-size:.48rem; font-style:normal; font-weight:950; }.public-prize-match > small { grid-column:2 / -1; color:#ff8998; font-size:.52rem; font-weight:900; text-transform:uppercase; }.public-prize-match.cancelled { opacity:.5; }
.public-prize-team { display:flex; align-items:center; min-width:0; gap:.38rem; color:rgba(255,255,255,.9); }.public-prize-team b { min-width:0; overflow:hidden; font-size:.63rem; text-overflow:ellipsis; white-space:nowrap; }.public-prize-team img { flex:0 0 auto; width:25px; height:17px; border:1px solid rgba(255,255,255,.22); border-radius:3px; object-fit:cover; box-shadow:0 3px 7px rgba(0,0,0,.28); }.public-prize-team > span { flex:0 0 auto; font-size:.72rem; }.public-prize-team-visitor { justify-content:flex-end; text-align:right; }
.public-cash-distribution { display:flex; align-items:center; gap:.7rem; margin-top:.85rem; border:1px solid rgba(249,199,79,.3); border-radius:14px; padding:.75rem; background:linear-gradient(110deg,rgba(249,199,79,.12),rgba(8,127,91,.08)); }.public-cash-icon { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:11px; color:#f9c74f; background:rgba(249,199,79,.12); }.public-cash-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }.public-cash-distribution > div:last-child { display:grid; gap:.12rem; }
.public-cash-distribution span { color:#75ddb8; font-size:.54rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }.public-cash-distribution strong { color:#fff0aa; font-size:.82rem; }.public-cash-distribution small { color:rgba(255,255,255,.56); font-size:.59rem; line-height:1.4; }.public-prize-resolution { margin-top:.75rem; border-radius:9px; padding:.55rem; font-size:.62rem; font-weight:900; text-align:center; text-transform:uppercase; }
.public-prize-resolution.resolution-pendiente { color:#ffe08a; background:rgba(249,199,79,.11); }.public-prize-resolution.resolution-resuelto { color:#75ddb8; background:rgba(8,127,91,.18); }.public-prize-resolution.resolution-anulado { color:#ff8998; background:rgba(195,59,77,.17); }
.public-prizes-empty { grid-column:1 / -1; padding:2.2rem; color:rgba(255,255,255,.62); text-align:center; }.public-prizes-empty span { color:#f9c74f; font-size:2.2rem; }.public-prizes-empty h3 { margin:.5rem 0 .2rem; color:#fff; font-size:1.05rem; }.public-prizes-empty p { margin:0; font-size:.72rem; }
.public-prizes-modal .modal-footer { padding:.85rem 1.35rem; border-color:rgba(255,255,255,.11); }.public-prizes-modal .modal-footer .btn { height:42px; border-radius:12px; font-size:.75rem; font-weight:850; text-transform:uppercase; }
@media (max-width:767px) { .premio-events-grid { grid-template-columns:1fr; }.premio-rule-banner { align-items:flex-start; }.premio-form-dialog { margin:.5rem; } }
@media (max-width:767px) {
    .public-prizes-dialog { margin:.5rem; }.public-prizes-grid { grid-template-columns:minmax(0,370px); }.public-prize-modal-card { min-height:auto; }.public-prizes-modal .modal-body { max-height:72vh; padding:1rem; }
    .public-prizes-modal-header { align-items:flex-start; flex-wrap:wrap; }
    .public-prizes-status-filter { order:3; width:100%; margin-left:0; }
    .public-prizes-modal-header .public-prizes-status-filter { margin-right:0; }
    .public-prizes-combobox-menu { right:auto; left:0; }
    .public-prizes-modal-header .btn-close { margin-left:auto; }
}

/* Podio mundialista */
.podio-rule-banner { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; border:1px solid #d9c98d; border-radius:15px; padding:1rem 1.15rem; background:linear-gradient(110deg,#fffdf5,#f7faf8); box-shadow:0 7px 20px rgba(117,81,0,.06); }.podio-rule-icon { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; border-radius:13px; background:#f9c74f; font-size:1.25rem; }.podio-rule-banner strong { color:#243548; font-size:.82rem; }.podio-rule-banner p { margin:.2rem 0 0; color:#6f7e8d; font-size:.72rem; }
.podio-name-cell { display:flex; align-items:center; gap:.7rem; min-width:210px; }.podio-name-cell > span { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#fff4c7; }.podio-name-cell strong,.podio-name-cell small,.podio-date,.podio-date-help { display:block; }.podio-name-cell strong { color:#263548; font-size:.78rem; }.podio-name-cell small,.podio-date-help { margin-top:.15rem; color:#8d99a7; font-size:.61rem; }.podio-date { color:#33445a; font-size:.72rem; }.podio-points { display:flex; flex-wrap:wrap; gap:.25rem; }.podio-points span { border-radius:999px; padding:.25rem .4rem; color:#755100; background:#fff4c7; font-size:.56rem; font-weight:850; }.podio-result-mini { display:grid; gap:.2rem; }.podio-result-mini span { display:flex; align-items:center; gap:.32rem; font-size:.62rem; }.podio-result-mini b { display:grid; place-items:center; width:17px; height:17px; border-radius:50%; color:#755100; background:#f9c74f; font-size:.52rem; }.podio-result-mini img { width:21px; height:14px; border-radius:2px; object-fit:cover; }.podio-result-form { display:grid; gap:.7rem; }.podio-result-form label { display:flex; align-items:center; gap:.8rem; border:1px solid #d9e1e8; border-radius:12px; padding:.75rem; background:#f8fafb; }.podio-result-form label > span { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:50%; color:#624400; background:#f9c74f; font-weight:950; }.podio-result-form label > div { flex:1; }.podio-result-form strong { display:block; margin-bottom:.35rem; color:#344458; font-size:.68rem; }
.public-podium-access { display:flex; align-items:center; gap:.8rem; margin:1rem 1.5rem 0; border:1px solid rgba(249,199,79,.3); border-radius:15px; padding:.75rem .9rem; background:linear-gradient(110deg,rgba(249,199,79,.12),rgba(8,127,91,.09)); }.public-podium-access-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:12px; background:#f9c74f; font-size:1.2rem; }.public-podium-access > div:nth-child(2) { min-width:0; flex:1; }.public-podium-access span,.public-podium-access strong,.public-podium-access small { display:block; }.public-podium-access span { color:#f9c74f; font-size:.54rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }.public-podium-access strong { margin:.12rem 0; font-size:.82rem; }.public-podium-access small { color:rgba(255,255,255,.58); font-size:.61rem; }.public-podium-open { flex:0 0 auto; border:0; border-radius:10px; padding:.62rem .8rem; color:#08243a; background:#f9c74f; font-size:.65rem; font-weight:950; text-transform:uppercase; }
.public-podium-dialog { max-width:620px; }.public-podium-modal { overflow:hidden; border:1px solid rgba(249,199,79,.4); border-radius:24px; color:#fff; background:linear-gradient(145deg,rgba(7,31,53,.99),rgba(3,17,31,.99)); box-shadow:0 35px 85px rgba(0,0,0,.6); }.public-podium-modal .modal-header { padding:1.1rem 1.3rem; border-color:rgba(255,255,255,.11); }.public-podium-modal .modal-header span { color:#f9c74f; font-size:.56rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }.public-podium-modal .modal-title { margin-top:.15rem; font-size:1.1rem; font-weight:950; text-transform:uppercase; }.public-podium-cup { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:#f9c74f; font-size:1.25rem; }.public-podium-modal .modal-body { max-height:calc(100vh - 180px); padding:1.2rem 1.3rem; overflow-y:auto; }.public-podium-intro { margin:0 0 1rem; color:rgba(255,255,255,.68); font-size:.74rem; text-align:center; }
.public-podium-form,.public-podium-selected { display:grid; gap:.7rem; }.public-podium-form label,.public-podium-selected > div { display:flex; align-items:center; gap:.8rem; border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:.75rem; background:rgba(255,255,255,.045); }.public-podium-form label > b,.public-podium-selected > div > b { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:50%; color:#624400; background:linear-gradient(145deg,#fff1a8,#f9c74f,#d89b00); font-size:1rem; }.public-podium-form label > span { flex:1; }.public-podium-form small { display:block; margin-bottom:.35rem; color:#75ddb8; font-size:.58rem; font-weight:850; text-transform:uppercase; }.public-podium-form .form-select { border-color:rgba(255,255,255,.18); color:#fff; background-color:rgba(255,255,255,.08); font-size:.76rem; }.public-podium-form .form-select option { color:#172536; background:#fff; }.public-podium-modal .modal-footer { padding:.9rem 1.3rem; border-color:rgba(255,255,255,.11); }.public-podium-modal .modal-footer .btn,.public-podium-save { min-height:42px; border-radius:11px; padding:.65rem 1rem; font-size:.7rem; font-weight:900; text-transform:uppercase; }.public-podium-save { border:0; color:#08243a; background:#f9c74f; }
.public-podium-selected > div img { width:42px; height:28px; border-radius:5px; object-fit:cover; }.public-podium-selected > div span { flex:1; }.public-podium-selected > div small,.public-podium-selected > div strong { display:block; }.public-podium-selected > div small { color:#75ddb8; font-size:.56rem; font-weight:900; text-transform:uppercase; }.public-podium-selected > div strong { margin-top:.16rem; font-size:.85rem; }.public-podium-score { display:flex; justify-content:space-between; margin-top:1rem; border-radius:12px; padding:.75rem .9rem; font-size:.75rem; text-transform:uppercase; }.public-podium-score.status-ganador { color:#75ddb8; background:rgba(8,127,91,.2); }.public-podium-score.status-perdedor { color:#ff8998; background:rgba(195,59,77,.18); }.public-podium-official,.public-podium-locked { margin-top:.7rem; border:1px solid rgba(255,255,255,.12); border-radius:11px; padding:.7rem .8rem; color:rgba(255,255,255,.66); font-size:.65rem; }.public-podium-official span { color:#f9c74f; font-size:.56rem; font-weight:900; text-transform:uppercase; }.public-podium-official p { margin:.25rem 0 0; }.public-podium-locked { color:#75ddb8; text-align:center; }
@media (max-width:767px) { .public-podium-access { margin:.75rem 1rem 0; flex-wrap:wrap; }.public-podium-open { width:100%; }.public-podium-dialog { margin:.5rem; } }

/* Podio visual para la selección pública */
.public-podium-access-icon {
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:2px;
    width:58px;
    flex-basis:58px;
    padding:8px 7px 7px;
    background:linear-gradient(145deg,#ffe88a,#f9c74f 58%,#d89b00);
}
.public-podium-access-icon span {
    display:grid;
    place-items:center;
    width:14px;
    border-radius:3px 3px 1px 1px;
    color:#6b4900;
    background:rgba(255,255,255,.68);
    font-size:.48rem;
    font-weight:950;
    letter-spacing:0;
}
.public-podium-access-icon .mini-podium-first { height:27px; }
.public-podium-access-icon .mini-podium-second { height:21px; }
.public-podium-access-icon .mini-podium-third { height:16px; }
.public-podium-dialog { max-width:760px; }
.public-podium-stage {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:end;
    gap:.75rem;
    padding:.65rem .25rem .15rem;
}
.public-podium-form .public-podium-step,
.public-podium-selected .public-podium-step {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-end;
    gap:0;
    min-width:0;
    margin:0;
    padding:0;
    border:0;
    border-radius:18px 18px 10px 10px;
    background:transparent;
    overflow:hidden;
}
.public-podium-team {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.4rem;
    min-height:86px;
    width:100%;
    padding:.75rem .5rem;
    border:1px solid rgba(255,255,255,.13);
    border-bottom:0;
    border-radius:17px 17px 0 0;
    background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.035));
    text-align:center;
}
.public-podium-team img,
.public-podium-selected > div .public-podium-team img {
    width:48px;
    height:32px;
    border-radius:5px;
    object-fit:cover;
    box-shadow:0 5px 12px rgba(0,0,0,.35);
}
.public-podium-flag-placeholder {
    display:grid;
    place-items:center;
    width:44px;
    height:32px;
    border:1px dashed rgba(255,255,255,.22);
    border-radius:6px;
    color:rgba(255,255,255,.55);
    background:rgba(0,0,0,.12);
    font-size:1rem;
}
.public-podium-team strong,
.public-podium-selected > div .public-podium-team strong {
    display:block;
    max-width:100%;
    color:#fff;
    font-size:.76rem;
    font-weight:900;
    line-height:1.15;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.public-podium-step .form-select {
    margin:0;
    border-width:1px 1px 0;
    border-radius:0;
    min-height:43px;
    text-align:center;
    font-weight:750;
}
.public-podium-pedestal {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    width:100%;
    padding:.65rem .35rem .4rem;
    border-top:2px solid rgba(255,255,255,.5);
    color:#122235;
    text-align:center;
    box-shadow:inset 0 10px 20px rgba(255,255,255,.18),0 10px 25px rgba(0,0,0,.18);
}
.public-podium-pedestal b {
    display:grid;
    place-items:center;
    width:39px;
    height:39px;
    margin-bottom:.3rem;
    border:2px solid rgba(255,255,255,.65);
    border-radius:50%;
    color:inherit;
    background:rgba(255,255,255,.32);
    font-size:1.18rem;
    font-weight:950;
}
.public-podium-pedestal span { font-size:.62rem; font-weight:950; text-transform:uppercase; }
.public-podium-pedestal small { margin-top:.16rem; color:inherit; font-size:.52rem; font-weight:800; opacity:.72; }
.podium-rank-1 .public-podium-pedestal { min-height:132px; background:linear-gradient(145deg,#fff09b,#f9c74f 54%,#d79b00); }
.podium-rank-2 .public-podium-pedestal { min-height:101px; background:linear-gradient(145deg,#f5f8fb,#bec9d3 58%,#8f9ba7); }
.podium-rank-3 .public-podium-pedestal { min-height:78px; background:linear-gradient(145deg,#f1bd87,#bd7741 58%,#8d4e29); }
.podium-rank-1 { order:2; }
.podium-rank-2 { order:1; }
.podium-rank-3 { order:3; }
.public-podium-selected .public-podium-team { min-height:98px; }
.public-podium-selected .public-podium-pedestal { padding-top:.75rem; }

@media (max-width:767px) {
    .public-podium-stage { gap:.35rem; padding-inline:0; }
    .public-podium-modal .modal-body { padding-inline:.8rem; }
    .public-podium-team { min-height:76px; padding:.55rem .25rem; }
    .public-podium-team img,
    .public-podium-selected > div .public-podium-team img { width:38px; height:25px; }
    .public-podium-team strong,
    .public-podium-selected > div .public-podium-team strong { font-size:.64rem; }
    .public-podium-step .form-select { min-height:39px; padding:.4rem .25rem; font-size:.62rem; }
    .public-podium-pedestal b { width:32px; height:32px; font-size:.95rem; }
    .public-podium-pedestal span { font-size:.51rem; }
    .podium-rank-1 .public-podium-pedestal { min-height:112px; }
    .podium-rank-2 .public-podium-pedestal { min-height:88px; }
    .podium-rank-3 .public-podium-pedestal { min-height:68px; }
}

/* Premios vinculados al podio mundialista */
.premio-mode-selector { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.premio-mode-selector label { position:relative; margin:0; cursor:pointer; }
.premio-mode-selector input { position:absolute; opacity:0; }
.premio-mode-selector label > span { display:flex; align-items:center; gap:.65rem; min-height:68px; border:1px solid #d2dce6; border-radius:11px; padding:.7rem .8rem; background:#fff; transition:.18s ease; }
.premio-mode-selector label.active > span { border-color:#0a9470; background:#eef9f5; box-shadow:0 5px 14px rgba(10,148,112,.1); }
.premio-mode-selector b { display:grid; place-items:center; width:35px; height:35px; flex:0 0 35px; border-radius:10px; background:#e7f4ef; font-size:1rem; }
.premio-mode-selector strong,.premio-mode-selector small { display:block; }.premio-mode-selector strong { color:#27384a; font-size:.72rem; }.premio-mode-selector small { margin-top:.12rem; color:#7c8998; font-size:.59rem; }
[data-prize-mode-panel][hidden] { display:none!important; }
.podium-prize-rule { display:flex; align-items:center; gap:.65rem; margin-bottom:.7rem; border:1px solid #ead898; border-radius:10px; padding:.65rem .75rem; background:#fffbeb; }
.podium-prize-rule > span { font-size:1.35rem; }.podium-prize-rule p { margin:0; color:#6c5a24; font-size:.63rem; line-height:1.45; }
.podium-prize-options { display:grid; gap:.5rem; }
.podium-prize-option { display:flex; align-items:center; gap:.6rem; margin:0; border:1px solid #d4dee7; border-radius:11px; padding:.68rem .75rem; background:#fff; cursor:pointer; }
.podium-prize-option:has(input:checked) { border-color:#d5a51c; background:#fff9e8; }
.podium-prize-option input { position:absolute; opacity:0; }.podium-prize-option > span:nth-of-type(2) { flex:1; min-width:0; }
.podium-prize-option strong,.podium-prize-option small { display:block; }.podium-prize-option strong { color:#25374a; font-size:.7rem; }.podium-prize-option small { margin-top:.15rem; color:#7c8997; font-size:.58rem; }
.podium-prize-meta { display:flex; align-items:flex-end; flex-direction:column; gap:.25rem; }
.podium-prize-meta > b { border-radius:999px; padding:.3rem .5rem; color:#765700; background:#ffedac; font-size:.58rem; white-space:nowrap; }
.podium-campaign-status { border-radius:999px; padding:.22rem .45rem; font-size:.5rem; font-style:normal; font-weight:900; text-transform:uppercase; }
.podium-campaign-status.status-activo { color:#087456; background:#dff5ed; }
.podium-campaign-status.status-finalizado { color:#8d3347; background:#fde6eb; }
.prize-condition-podium { display:flex; align-items:center; gap:.5rem; }.prize-condition-podium > span { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; background:#fff0b5; }
.prize-condition-podium strong,.prize-condition-podium small { display:block; }.prize-condition-podium strong { color:#27384a; font-size:.68rem; }.prize-condition-podium small { color:#7b8998; font-size:.57rem; }
.public-prize-podium-condition { display:flex; align-items:center; gap:.75rem; border:1px solid rgba(249,199,79,.35); border-radius:14px; padding:.8rem; background:linear-gradient(135deg,rgba(249,199,79,.12),rgba(10,151,113,.08)); }
.public-prize-podium-cup { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; border-radius:13px; background:linear-gradient(145deg,#ffe285,#e7ad16); font-size:1.4rem; box-shadow:0 6px 15px rgba(224,168,20,.22); }
.public-prize-podium-condition > div:nth-child(2) { flex:1; min-width:0; }.public-prize-podium-condition span,.public-prize-podium-condition h4,.public-prize-podium-condition small { display:block; margin:0; }
.public-prize-podium-condition span { color:#55d5ad; font-size:.55rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }.public-prize-podium-condition h4 { margin-top:.12rem; color:#fff; font-size:.8rem; }.public-prize-podium-condition small { margin-top:.15rem; color:#aebdca; font-size:.58rem; }
.public-prize-podium-points { text-align:center; }.public-prize-podium-points b { display:block; color:#f9c74f; font-size:1.15rem; }.public-prize-podium-points small { color:#9dadbb; font-size:.5rem; text-transform:uppercase; }
.public-prize-podium-rule { margin-top:.55rem; border-left:3px solid #f9c74f; padding:.45rem .6rem; color:#aebbc8; background:rgba(255,255,255,.035); font-size:.57rem; line-height:1.4; }
@media (max-width:575px) { .premio-mode-selector { grid-template-columns:1fr; }.public-prize-podium-condition { align-items:flex-start; }.public-prize-podium-points { margin-left:auto; } }

/* Buscador de selecciones y acabado 3D del podio */
.public-podium-modal .modal-body { overflow:visible; }
.public-podium-form .public-podium-step,
.public-podium-selected .public-podium-step {
    position:relative;
    overflow:visible;
    filter:drop-shadow(0 18px 18px rgba(0,0,0,.28));
}
.public-podium-form .podium-rank-1,
.public-podium-selected .podium-rank-1 { z-index:3; }
.public-podium-team {
    position:relative;
    z-index:4;
    border:1px solid rgba(193,218,238,.22);
    border-bottom:0;
    background:
        radial-gradient(circle at 50% 0,rgba(72,139,188,.22),transparent 58%),
        linear-gradient(155deg,rgba(28,57,82,.96),rgba(10,31,51,.98));
    box-shadow:inset 0 1px rgba(255,255,255,.13),inset 0 -18px 30px rgba(0,0,0,.12);
}
.public-podium-champion-cup {
    display:grid;
    place-items:center;
    height:74px;
    margin-top:-50px;
    margin-bottom:-4px;
    pointer-events:none;
    filter:drop-shadow(0 11px 10px rgba(0,0,0,.45)) drop-shadow(0 0 12px rgba(249,199,79,.25));
}
.public-podium-team .public-podium-champion-cup img,
.public-podium-selected > div .public-podium-team .public-podium-champion-cup img {
    width:auto;
    height:78px;
    border:0;
    border-radius:0;
    object-fit:contain;
    box-shadow:none;
}
.public-podium-search {
    position:relative;
    z-index:12;
    width:100%;
}
.public-podium-search-input {
    width:100%;
    min-height:44px;
    border:1px solid rgba(255,255,255,.17);
    border-radius:0;
    padding:.65rem 2rem .65rem 2.15rem;
    color:#fff;
    background:linear-gradient(180deg,#173149,#10263a);
    font-size:.72rem;
    font-weight:800;
    outline:0;
    box-shadow:inset 0 1px rgba(255,255,255,.08);
}
.public-podium-search-input::placeholder { color:rgba(255,255,255,.62); }
.public-podium-search-input:focus {
    border-color:#f9c74f;
    background:#16334d;
    box-shadow:inset 0 0 0 1px rgba(249,199,79,.2),0 0 0 3px rgba(249,199,79,.11);
}
.public-podium-search-icon {
    position:absolute;
    z-index:2;
    top:50%;
    left:.78rem;
    transform:translateY(-52%);
    color:#f9c74f;
    font-size:1.05rem;
    font-weight:900;
    pointer-events:none;
}
.public-podium-results {
    position:absolute;
    z-index:50;
    top:calc(100% + 5px);
    left:0;
    right:0;
    max-height:220px;
    overflow-y:auto;
    border:1px solid rgba(249,199,79,.48);
    border-radius:11px;
    padding:.3rem;
    background:rgba(5,24,41,.99);
    box-shadow:0 18px 35px rgba(0,0,0,.55);
}
.public-podium-results button {
    display:flex;
    align-items:center;
    gap:.55rem;
    width:100%;
    border:0;
    border-radius:7px;
    padding:.48rem .55rem;
    color:#eaf3fa;
    background:transparent;
    font-size:.68rem;
    font-weight:750;
    text-align:left;
}
.public-podium-results button:hover,
.public-podium-results button:focus { color:#08243a; background:#f9c74f; outline:0; }
.public-podium-results button[hidden] { display:none; }
.public-podium-results button:disabled { display:none; }
.public-podium-results button img { width:25px; height:17px; border-radius:3px; object-fit:cover; }
.public-podium-results p { margin:0; padding:.75rem .5rem; color:rgba(255,255,255,.55); font-size:.65rem; text-align:center; }
.public-podium-pedestal {
    position:relative;
    z-index:2;
    overflow:visible;
    border:1px solid rgba(255,255,255,.38);
    border-top:0;
    border-radius:0 0 9px 9px;
    transform:perspective(900px) rotateX(-1deg);
}
.public-podium-pedestal::before {
    content:"";
    position:absolute;
    z-index:-1;
    top:-13px;
    left:-1px;
    width:calc(100% + 2px);
    height:18px;
    border:1px solid rgba(255,255,255,.5);
    transform:perspective(90px) rotateX(48deg);
    transform-origin:bottom;
    box-shadow:0 4px 8px rgba(0,0,0,.2);
}
.podium-rank-1 .public-podium-pedestal {
    background:
        linear-gradient(90deg,rgba(110,66,0,.42),transparent 14%,rgba(255,252,191,.48) 48%,transparent 76%,rgba(113,66,0,.35)),
        linear-gradient(145deg,#ffe881,#f0b914 62%,#a96e00);
    box-shadow:inset 12px 0 18px rgba(120,72,0,.18),inset -12px 0 18px rgba(113,65,0,.2),0 18px 28px rgba(0,0,0,.3);
}
.podium-rank-1 .public-podium-pedestal::before { background:linear-gradient(180deg,#fff5a9,#e9b716); }
.podium-rank-2 .public-podium-pedestal {
    background:
        linear-gradient(90deg,rgba(70,82,94,.28),transparent 18%,rgba(255,255,255,.6) 50%,transparent 78%,rgba(71,82,93,.28)),
        linear-gradient(145deg,#edf3f7,#aebbc7 68%,#71808d);
    box-shadow:inset 10px 0 16px rgba(50,65,78,.16),inset -10px 0 16px rgba(50,65,78,.18),0 16px 25px rgba(0,0,0,.27);
}
.podium-rank-2 .public-podium-pedestal::before { background:linear-gradient(180deg,#fff,#aebac5); }
.podium-rank-3 .public-podium-pedestal {
    background:
        linear-gradient(90deg,rgba(91,43,17,.3),transparent 18%,rgba(255,218,172,.38) 50%,transparent 78%,rgba(91,43,17,.32)),
        linear-gradient(145deg,#e9a66e,#ad6035 68%,#6f341c);
    box-shadow:inset 10px 0 16px rgba(72,31,12,.2),inset -10px 0 16px rgba(72,31,12,.2),0 15px 24px rgba(0,0,0,.27);
}
.podium-rank-3 .public-podium-pedestal::before { background:linear-gradient(180deg,#efb17d,#a75931); }
.public-podium-pedestal b {
    border-color:rgba(255,255,255,.8);
    background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,255,255,.2));
    box-shadow:inset 0 2px 4px rgba(255,255,255,.65),0 4px 8px rgba(0,0,0,.18);
}

@media (max-width:767px) {
    .public-podium-modal .modal-body { overflow-y:auto; }
    .public-podium-champion-cup { height:54px; margin-top:-32px; }
    .public-podium-team .public-podium-champion-cup img,
    .public-podium-selected > div .public-podium-team .public-podium-champion-cup img { height:58px; }
    .public-podium-search-input { min-height:40px; padding-inline:.45rem; text-align:center; font-size:.6rem; }
    .public-podium-search-icon { display:none; }
    .public-podium-results { position:fixed; top:50%; left:1rem; right:1rem; max-height:55vh; transform:translateY(-50%); }
}

/* Detalle del podio dentro del módulo de boletos */
.ticket-podium-detail { padding:1rem 1.15rem 1.25rem; border-bottom:1px solid #d8e1e9; background:linear-gradient(155deg,#f9fbfc,#edf3f7); }
.ticket-podium-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.ticket-podium-heading span,.ticket-podium-heading strong { display:block; }
.ticket-podium-heading span { color:#008665; font-size:.58rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.ticket-podium-heading strong { margin-top:.15rem; color:#17283c; font-size:.88rem; }
.ticket-podium-status { border-radius:999px; padding:.4rem .65rem; color:#765600; background:#fff0ad; font-size:.6rem; font-weight:900; text-transform:uppercase; }
.ticket-podium-status.status-ganador { color:#067250; background:#dff5ec; }
.ticket-podium-status.status-perdedor { color:#a12b42; background:#fde4e9; }
.ticket-podium-stage { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; gap:.55rem; max-width:620px; margin:0 auto; }
.ticket-podium-position { position:relative; display:flex; flex-direction:column; min-width:0; filter:drop-shadow(0 9px 9px rgba(26,45,65,.16)); }
.ticket-podium-position.rank-1 { order:2; }
.ticket-podium-position.rank-2 { order:1; }
.ticket-podium-position.rank-3 { order:3; }
.ticket-podium-cup { position:absolute; z-index:4; top:-37px; left:50%; width:auto; height:55px; transform:translateX(-50%); object-fit:contain; filter:drop-shadow(0 7px 5px rgba(0,0,0,.28)); }
.ticket-podium-team { display:flex; align-items:center; justify-content:center; gap:.45rem; min-height:54px; padding:.55rem; border:1px solid #cdd9e3; border-bottom:0; border-radius:12px 12px 0 0; background:linear-gradient(150deg,#fff,#edf3f7); }
.rank-1 .ticket-podium-team { padding-top:1rem; }
.ticket-podium-team img { width:30px; height:20px; border-radius:3px; object-fit:cover; box-shadow:0 2px 5px rgba(0,0,0,.18); }
.ticket-podium-team strong { min-width:0; overflow:hidden; color:#24364a; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.ticket-podium-base { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding:.55rem .3rem; color:#1c2a39; border:1px solid rgba(90,103,114,.25); border-radius:0 0 8px 8px; box-shadow:inset 8px 0 13px rgba(0,0,0,.08),inset -8px 0 13px rgba(0,0,0,.08); }
.rank-1 .ticket-podium-base { min-height:100px; background:linear-gradient(145deg,#ffea82,#f6bd27 65%,#c68a00); }
.rank-2 .ticket-podium-base { min-height:78px; background:linear-gradient(145deg,#f6f9fb,#bdc9d3 65%,#8896a2); }
.rank-3 .ticket-podium-base { min-height:62px; background:linear-gradient(145deg,#efb17c,#bd7544 65%,#814522); }
.ticket-podium-base b { display:grid; place-items:center; width:31px; height:31px; border:2px solid rgba(255,255,255,.78); border-radius:50%; background:rgba(255,255,255,.35); font-size:.9rem; box-shadow:0 3px 6px rgba(0,0,0,.12); }
.ticket-podium-base span { margin-top:.25rem; font-size:.54rem; font-weight:900; text-transform:uppercase; }
.ticket-podium-official { display:flex; justify-content:center; gap:.45rem; margin:.8rem auto 0; color:#67778a; font-size:.62rem; text-align:center; }
.ticket-podium-official span { color:#008665; font-weight:900; text-transform:uppercase; }
.ticket-podium-official strong { color:#34465a; }
@media (max-width:575px) {
    .ticket-podium-heading { align-items:flex-start; flex-direction:column; }
    .ticket-podium-stage { gap:.25rem; }
    .ticket-podium-team { flex-direction:column; min-height:70px; padding:.35rem .2rem; }
    .ticket-podium-team strong { max-width:100%; font-size:.58rem; }
    .ticket-podium-cup { top:-29px; height:43px; }
    .rank-1 .ticket-podium-base { min-height:88px; }
    .rank-2 .ticket-podium-base { min-height:70px; }
    .rank-3 .ticket-podium-base { min-height:56px; }
}

/* Alcance por tiendas y grupos */
.scope-form-dialog,.evento-edit-dialog { max-width:780px; }
.scope-form-dialog .modal-body,.evento-edit-dialog .modal-body { max-height:calc(100vh - 185px); overflow-y:auto; }
.scope-group-dialog { max-width:820px; }
.scope-picker { margin-top:1rem; border:1px solid #cbd8e3; border-radius:14px; padding:1rem; background:linear-gradient(150deg,#fbfdfd,#f2f7f6); }
.scope-picker-heading,.scope-store-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.scope-picker-heading span,.scope-picker-heading strong { display:block; }
.scope-picker-heading > div > span { color:#078461; font-size:.6rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.scope-picker-heading strong { margin-top:.15rem; color:#1f3044; font-size:.82rem; }
.scope-picker-summary { flex:0 0 auto; border-radius:999px; padding:.35rem .65rem; color:#08785b; background:#dff4ec; font-size:.63rem; font-weight:900; }
.scope-mode-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:.8rem; }
.scope-mode-option { position:relative; display:flex; align-items:center; gap:.65rem; min-height:72px; margin:0; border:1px solid #d2dce6; border-radius:11px; padding:.75rem; background:#fff; cursor:pointer; transition:.18s ease; }
.scope-mode-option:hover,.scope-mode-option.active { border-color:#119774; box-shadow:0 5px 14px rgba(13,126,96,.1); }
.scope-mode-option input { position:absolute; opacity:0; pointer-events:none; }
.scope-mode-icon { display:grid!important; place-items:center; width:36px; height:36px; flex:0 0 36px; border-radius:10px; color:#087f60; background:#e4f5ef; font-size:1.1rem; }
.scope-mode-option strong,.scope-mode-option small { display:block; }
.scope-mode-option strong { color:#27384b; font-size:.75rem; }
.scope-mode-option small { margin-top:.15rem; color:#7a8898; font-size:.62rem; line-height:1.35; }
.scope-specific-panel { margin-top:.85rem; }
.scope-specific-panel[hidden] { display:none!important; }
.scope-groups { border-bottom:1px solid #d8e1e9; padding-bottom:.8rem; }
.scope-group-list { display:flex; flex-wrap:wrap; gap:.45rem; }
.scope-group-chip { position:relative; display:flex; align-items:center; margin:0; border:1px solid #cfd9e3; border-radius:10px; padding:.5rem .65rem; background:#fff; cursor:pointer; }
.scope-group-chip.active { color:#08775a; border-color:#0a9871; background:#ecf8f4; }
.scope-group-chip input { width:15px; height:15px; margin-right:.45rem; accent-color:#0b936e; }
.scope-group-chip strong,.scope-group-chip small { display:block; }
.scope-group-chip strong { font-size:.68rem; }.scope-group-chip small { color:#8290a0; font-size:.56rem; }
.scope-help { display:block; margin-top:.45rem; color:#7d8997; font-size:.6rem; }
.scope-store-block { margin-top:.8rem; }
.scope-store-toolbar .form-control { width:250px; min-height:36px!important; font-size:.7rem!important; }
.scope-store-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; max-height:220px; margin-top:.65rem; overflow-y:auto; }
.scope-store-option { display:flex; align-items:center; gap:.55rem; min-width:0; margin:0; border:1px solid #d5dee7; border-radius:10px; padding:.58rem .65rem; background:#fff; cursor:pointer; }
.scope-store-option:has(input:checked) { border-color:#0c9671; background:#eff9f5; }
.scope-store-option input { position:absolute; opacity:0; }
.scope-checkmark { display:grid; place-items:center; width:20px; height:20px; flex:0 0 20px; border:1px solid #aebdca; border-radius:6px; background:#fff; }
.scope-store-option input:checked + .scope-checkmark { border-color:#0b916c; background:#0b916c; }
.scope-store-option input:checked + .scope-checkmark::after { content:'\2713'; color:#fff; font-size:.68rem; font-weight:900; }
.scope-store-option > span:last-child { min-width:0; }.scope-store-option strong,.scope-store-option small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scope-store-option strong { color:#26374a; font-size:.68rem; }.scope-store-option small { margin-top:.12rem; color:#82909f; font-size:.57rem; }
.scope-empty { grid-column:1/-1; border:1px dashed #c9d4de; border-radius:10px; padding:1rem; color:#7d8a98; font-size:.7rem; text-align:center; }
.scope-lock-note { margin:.7rem 0 0; border-left:3px solid #e1a817; padding:.55rem .7rem; color:#745916; background:#fff9e8; font-size:.65rem; }
.scope-table-badge { display:inline-flex; border-radius:999px; padding:.32rem .55rem; font-size:.6rem; font-weight:900; white-space:nowrap; }
.scope-table-badge.global { color:#096d54; background:#dff4ec; }.scope-table-badge.specific { color:#315d91; background:#e8f1fb; }
.scope-row-help { display:block; max-width:230px; margin-top:.2rem; overflow:hidden; color:#7c8999; font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
.scope-info-banner { display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; border:1px solid #bcded2; border-radius:14px; padding:.85rem 1rem; background:#f1faf7; }
.scope-info-banner > span { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; color:#fff; background:#0c9470; font-size:1.1rem; }
.scope-info-banner strong,.scope-info-banner p { display:block; margin:0; }.scope-info-banner strong { color:#213448; font-size:.75rem; }.scope-info-banner p { margin-top:.18rem; color:#6e7d8d; font-size:.65rem; }
.scope-table-stores { display:flex; flex-wrap:wrap; gap:.3rem; }.scope-table-stores span { border-radius:999px; padding:.28rem .5rem; color:#3d5d78; background:#edf3f8; font-size:.59rem; font-weight:800; }
.scope-count-badge { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:#087456; background:#e1f5ee; font-size:.7rem; font-weight:900; }
.group-store-list { max-height:300px; }
@media (max-width:767px) {
    .scope-form-dialog,.scope-group-dialog { margin:.5rem; }
    .scope-mode-grid,.scope-store-list { grid-template-columns:1fr; }
    .scope-store-toolbar { align-items:stretch; flex-direction:column; }
    .scope-store-toolbar .form-control { width:100%; }
}
