.vote-page{min-height:100vh;padding-bottom:7rem}.vote-page__inner{padding:7rem 1rem 2rem}.vote-page__intro{max-width:760px;margin:1.25rem 0 2rem}.vote-page__intro h1{color:#fff;font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;margin:.5rem 0 1rem}.vote-page__intro p{color:var(--festival-muted);font-size:1.05rem;line-height:1.6}.vote-page__intro strong{color:#fff}.vote-closed{max-width:640px;padding:2rem;border-radius:1rem;background:var(--festival-panel);border:1px solid rgba(255,255,255,.08)}.vote-closed h2{color:#fff;font-size:1.4rem;font-weight:700}.vote-closed p{color:var(--festival-muted)}.vote-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.vote-tabs{display:inline-flex;gap:.35rem;padding:.3rem;border-radius:999px;background:#ffffff0f}.vote-tab{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem 1.1rem;border:0;border-radius:999px;background:transparent;color:#d9e0f4;font-weight:700;font-size:.92rem}.vote-tab:hover{color:#fff}.vote-tab.is-active{background:var(--festival-yellow);color:var(--festival-navy)}.vote-tab__count{font-size:.75rem;font-weight:800;padding:.1rem .5rem;border-radius:999px;background:#0b133026}.vote-tab:not(.is-active) .vote-tab__count{background:#ffffff1a}.vote-search input{width:min(320px,80vw);padding:.6rem 1rem;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#fff}.vote-search input::-moz-placeholder{color:#ffffff73}.vote-search input::placeholder{color:#ffffff73}.vote-search input:focus{outline:2px solid var(--festival-yellow);outline-offset:1px}.vote-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.vote-card{display:flex;flex-direction:column;overflow:hidden;border-radius:1rem;background:var(--festival-panel);border:2px solid rgba(255,255,255,.06);transition:border-color .15s ease,transform .15s ease,opacity .15s ease}.vote-card.is-picked{border-color:var(--festival-yellow);box-shadow:0 10px 28px #ffd04d1f}.vote-card.is-full{opacity:.55}.vote-card__head{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem .25rem}.vote-card__cover{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border-radius:.8rem;color:#fff;background:linear-gradient(135deg,#2368d5,#7b61ff)}.vote-card--juv .vote-card__cover{background:linear-gradient(135deg,#ed248f,#ff7a59)}.vote-card__cover svg{width:26px;height:26px;fill:currentColor}.vote-card__titles{min-width:0}.vote-card__body{display:flex;flex-direction:column;gap:.75rem;padding:.75rem 1.1rem 1.1rem;flex:1}.vote-card__name{color:#fff;font-size:1.05rem;font-weight:700;line-height:1.25;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.vote-card__song{color:var(--festival-muted);margin:.1rem 0 0;font-size:.9rem}.vote-card .gp{padding:.55rem .65rem}.vote-card .gp-play{width:42px;height:42px;flex-basis:42px}.vote-card .gp-play svg{width:18px;height:18px}.vote-card .gp-wave{height:32px}.vote-card__pick{margin-top:auto;padding:.65rem 1rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-weight:700}.vote-card__pick:hover:not(:disabled){border-color:#fff;background:#ffffff14}.vote-card__pick:disabled{cursor:not-allowed}.vote-card__pick:focus-visible{outline:3px solid var(--festival-yellow);outline-offset:2px}.vote-card__pick-on{display:none}.vote-card.is-picked .vote-card__pick{background:var(--festival-yellow);border-color:var(--festival-yellow);color:var(--festival-navy)}.vote-card.is-picked .vote-card__pick-on{display:inline}.vote-card.is-picked .vote-card__pick-off{display:none}.vote-empty{color:var(--festival-muted);padding:1rem 0}.vote-bar{position:fixed;left:0;right:0;bottom:0;z-index:1030;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:space-between;padding:.9rem max(1rem,calc((100vw - 1220px)/2));background:#0b1330f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -12px 30px #00000040}.vote-bar__summary{display:flex;flex-direction:column;gap:.15rem}.vote-bar__label{color:var(--festival-yellow);font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.vote-bar__counts{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;color:#d9e0f4;font-size:.92rem}.vote-bar__counts strong{color:#fff}.vote-bar .festival-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.vote-bar__hint{color:var(--festival-yellow, #ffd04d);font-size:.88rem;font-weight:700}.vote-bar__hint:empty{display:none}.vote-dialog{width:min(520px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);padding:2rem 1.75rem 1.5rem;border:1px solid rgba(255,255,255,.1);border-radius:1.25rem;background:var(--festival-panel, #121d3f);color:#f8f4ec;box-shadow:0 30px 80px #00000080}.vote-dialog::backdrop{background:#040a1dbf;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.vote-dialog h2{color:#fff;font-size:1.45rem;font-weight:800;margin:0 0 1rem}.vote-dialog p{color:#d9e0f4}.vote-dialog__close-form{position:absolute;top:.75rem;right:.9rem;margin:0}.vote-dialog__close{border:0;background:transparent;color:#d9e0f4;font-size:1.6rem;line-height:1}.vote-dialog__links{display:flex;justify-content:space-between;gap:.5rem;margin-top:.5rem}.vote-dialog__links .festival-button{min-height:0;padding:.5rem 0;font-size:.85rem}.vote-dialog__links .festival-button:disabled{opacity:.5}.vote-summary{display:grid;gap:.85rem;margin-bottom:1rem}.vote-summary__cat h3{color:var(--festival-yellow, #ffd04d);font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .35rem}.vote-summary__cat ul{margin:0;padding-left:1.1rem;color:#fff}.vote-summary__none{margin:0;font-style:italic}.vote-warning{padding:.75rem .9rem;border-radius:.6rem;background:#ffd04d1f;color:#ffe7a3!important;font-size:.9rem}.vote-field{display:flex;flex-direction:column;gap:.35rem;margin:1rem 0}.vote-field span{font-weight:700;color:#fff}.vote-field small{color:var(--festival-muted, #b8c3dc)}.vote-field input{padding:.75rem 1rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.2);background:#fff;color:#0b1330;font-size:1.05rem}.vote-field input:focus{outline:3px solid var(--festival-yellow, #ffd04d);outline-offset:1px}.vote-field input#voteCode{letter-spacing:.35em;font-size:1.35rem;text-align:center;font-weight:700}.vote-error{margin:1rem 0 0;padding:.75rem .9rem;border-radius:.6rem;background:#ed248f26;color:#ffc2e1!important;font-size:.92rem}.vote-notice{margin:1rem 0 0;padding:.75rem .9rem;border-radius:.6rem;background:#2368d52e;color:#cfe0ff!important;font-size:.92rem}.vote-hint{font-size:.88rem;color:var(--festival-muted, #b8c3dc);margin-top:-.25rem}.festival-button.is-busy{opacity:.7;pointer-events:none}@media (max-width: 575.98px){.vote-page__inner{padding-top:5.5rem}.vote-bar{justify-content:stretch}.vote-bar .festival-button{width:100%}}.vote-switch{display:none}@media (max-width: 767.98px){.vote-switch:not([hidden]){position:fixed;right:1rem;bottom:100px;z-index:1031;display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1.1rem;border:0;border-radius:999px;background:var(--festival-yellow, #ffd04d);color:#121d3f;font-weight:800;font-size:.95rem;box-shadow:0 10px 24px #00000059}.vote-switch__count{padding:.1rem .5rem;border-radius:999px;background:#121d3f26;font-size:.8rem}}@media (max-width: 575.98px){.vote-switch:not([hidden]){bottom:142px}}body:has(.vote-bar){padding-bottom:88px}@media (max-width: 575.98px){body:has(.vote-bar){padding-bottom:130px}}.vote-page__ranking-link{display:inline-block;margin-top:.25rem;color:var(--festival-yellow);font-weight:700}.vote-page__ranking-link:hover{color:#fff}.vote-card__head{position:relative}.vote-card__votes{margin-left:auto;align-self:flex-start;flex:0 0 auto;padding:.2rem .55rem;border-radius:999px;background:#ffffff1a;color:#fff;font-size:.8rem;font-weight:700;white-space:nowrap}.vote-ranking__status{color:var(--festival-muted);margin:0 0 1rem;font-size:.9rem}.vote-ranking__status strong{color:var(--festival-yellow)}.vote-ranking__list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.45rem}.vote-rank{display:flex;align-items:center;gap:.9rem;padding:.7rem 1rem;border-radius:.8rem;background:var(--festival-panel);border:1px solid rgba(255,255,255,.06)}.vote-rank.is-in{border-color:#ffd40047}.vote-rank.is-cut{position:relative;margin-bottom:2.2rem}.vote-rank.is-cut:after{content:"Corte: hasta aquí pasan a la siguiente fase";position:absolute;left:0;right:0;bottom:-1.75rem;border-top:2px dashed var(--festival-yellow);padding-top:.2rem;color:var(--festival-yellow);font-size:.78rem;font-weight:700;text-align:center}.vote-rank__pos{flex:0 0 2.4rem;height:2.4rem;display:grid;place-items:center;border-radius:.6rem;background:#ffffff14;color:#fff;font-weight:800}.vote-rank.is-in .vote-rank__pos{background:var(--festival-yellow);color:var(--festival-navy)}.vote-rank__titles{min-width:0;flex:1;display:flex;flex-direction:column}.vote-rank__song{color:#fff;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vote-rank__group{color:var(--festival-muted);font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vote-rank__votes{flex:0 0 auto;color:var(--festival-muted);font-size:.88rem;text-align:right}.vote-rank__votes strong{display:block;color:#fff;font-size:1.15rem;line-height:1.1}.stage-stats{margin-top:2.5rem;padding:1.25rem;border-radius:1rem;background:var(--festival-panel);border:1px solid rgba(255,212,0,.28)}.stage-stats__period{color:var(--festival-muted);margin:0 0 1rem;font-size:.9rem}.stage-stats__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;margin:0}.stage-stats__item{padding:.9rem 1rem;border-radius:.8rem;background:#ffffff0d}.stage-stats__item dt{color:var(--festival-muted);font-size:.85rem;font-weight:600}.stage-stats__item dd{margin:.2rem 0 0;color:var(--festival-yellow);font-size:1.8rem;font-weight:800;line-height:1.1}
