/* Self-contained fan poll; never changes the official match award or tables. */
.tpc-fan-vote { --fv-surface:#fff;--fv-soft:#f2f6ff;--fv-ink:#14233c;--fv-muted:#53647d;--fv-line:#dbe4f1;--fv-blue:var(--cup-blue,#001e8e);--fv-yellow:var(--cup-yellow,#f1c30b);--fv-link:var(--cup-blue,#001e8e);--fv-error:#a32235; margin:1.25rem 0; padding:clamp(1rem,3vw,1.5rem); min-width:0; max-width:100%; background:var(--fv-surface); color:var(--fv-ink); border:1px solid var(--fv-line); border-radius:1.35rem; box-shadow:0 8px 28px #001e8e08; }
body.tpc-site-dark-mode .tpc-fan-vote { --fv-surface:#132439;--fv-soft:#1b3350;--fv-ink:#f4f7ff;--fv-muted:#bdcde0;--fv-line:#38526e;--fv-link:var(--cup-yellow,#f1c30b);--fv-error:#ffb8c2; }
.tpc-fan-vote * { box-sizing:border-box; }
.tpc-fv-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.8rem; }
.tpc-fv-heading { display:flex; align-items:center; gap:.75rem; min-width:0; }
.tpc-fv-symbol { display:grid; place-items:center; flex:0 0 2.75rem; height:2.75rem; border-radius:.85rem; background:var(--fv-blue); color:var(--fv-yellow); }
.tpc-fv-symbol svg { width:1.6rem; height:1.6rem; }
.tpc-fv-eyebrow { display:block; margin-bottom:.2rem; color:var(--fv-link); font-size:.62rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.tpc-fan-vote h2 { margin:0; color:var(--fv-ink); font-size:clamp(1.25rem,3vw,1.65rem); font-weight:900; line-height:1.15; }
.tpc-fv-state { padding:.45rem .65rem; border:1px solid var(--fv-line); border-radius:999px; background:var(--fv-soft); color:var(--fv-muted); font-size:.69rem; font-weight:800; font-variant-numeric:tabular-nums; }
.tpc-fv-state.is-open { color:var(--fv-link); }
.tpc-fv-intro,.tpc-fv-explainer { margin:.8rem 0 1rem; color:var(--fv-muted); font-size:.79rem; line-height:1.6; }
.tpc-fv-ballot { min-width:0; padding:0; margin:0; border:0; }
.tpc-fv-ballot legend { margin-bottom:.6rem; padding:0; color:var(--fv-ink); font-size:.85rem; font-weight:800; }
.tpc-fv-nominees { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.tpc-fv-choice { position:relative; display:block; min-width:0; cursor:pointer; }
.tpc-fv-choice input { position:absolute; width:1px; height:1px; padding:0; margin:0; clip:rect(0,0,0,0); clip-path:inset(50%); overflow:hidden; }
.tpc-fv-choice-body { display:flex; align-items:center; gap:.6rem; min-height:4.65rem; height:100%; padding:.75rem; background:var(--fv-soft); border:2px solid transparent; border-radius:.9rem; }
.tpc-fv-choice input:checked + .tpc-fv-choice-body { border-color:var(--fv-link); }
.tpc-fv-choice input:focus-visible + .tpc-fv-choice-body { outline:3px solid var(--fv-link); outline-offset:3px; }
.tpc-fv-choice input:disabled + .tpc-fv-choice-body { cursor:default; opacity:.65; }
.tpc-fv-avatar { display:grid; place-items:center; width:2.5rem; height:2.5rem; flex:0 0 2.5rem; overflow:hidden; border-radius:50%; background:var(--fv-blue); color:#fff; font-size:.75rem; font-weight:800; }
.tpc-fv-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
.tpc-fv-person { flex:1; min-width:0; }
.tpc-fv-person strong,.tpc-fv-result-copy strong { display:block; color:var(--fv-ink); font-size:.81rem; line-height:1.35; overflow-wrap:anywhere; }
.tpc-fv-person small,.tpc-fv-result-copy small { display:block; margin-top:.2rem; color:var(--fv-muted); font-size:.67rem; line-height:1.4; overflow-wrap:anywhere; }
.tpc-fv-choice-check { flex:0 0 1rem; width:1rem; color:var(--fv-link); font-weight:900; opacity:0; }
.tpc-fv-choice input:checked + .tpc-fv-choice-body .tpc-fv-choice-check { opacity:1; }
.tpc-fv-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin-top:.9rem; }
.tpc-fv-actions button { min-height:2.7rem; max-width:100%; padding:.65rem 1rem; border:1px solid var(--fv-blue); border-radius:.75rem; background:var(--fv-blue); color:#fff; font:inherit; font-size:.8rem; font-weight:800; cursor:pointer; }
.tpc-fv-actions button.tpc-fv-secondary { background:var(--fv-surface); border-color:var(--fv-line); color:var(--fv-ink); }
.tpc-fv-actions button:disabled { opacity:.5; cursor:default; }
.tpc-fv-actions button:focus-visible { outline:3px solid var(--fv-link); outline-offset:3px; }
.tpc-fv-actions small { color:var(--fv-muted); font-size:.7rem; }
.tpc-fv-confirm { margin-top:1rem; padding:.9rem; border:1px solid var(--fv-line); border-radius:.9rem; background:var(--fv-soft); }
.tpc-fv-confirm p { margin:0; color:var(--fv-ink); font-size:.82rem; line-height:1.6; }
.tpc-fv-receipt { display:flex; align-items:center; gap:.75rem; padding:1rem; border:1px solid var(--fv-line); border-radius:.9rem; background:var(--fv-soft); }
.tpc-fv-receipt > span { display:grid; place-items:center; flex:0 0 2.25rem; height:2.25rem; border-radius:50%; background:var(--fv-yellow); color:var(--fv-blue); font-size:1.2rem; font-weight:900; }
.tpc-fv-receipt p { min-width:0; margin:0; color:var(--fv-ink); font-size:.9rem; }
.tpc-fv-receipt p > span { display:block; margin-top:.25rem; color:var(--fv-muted); font-size:.77rem; overflow-wrap:anywhere; }
.tpc-fv-closed { padding:1rem; border-radius:.9rem; background:var(--fv-soft); color:var(--fv-ink); font-size:.85rem; line-height:1.6; }
.tpc-fv-note { margin:1rem 0 0; padding-top:.8rem; border-top:1px solid var(--fv-line); color:var(--fv-muted); font-size:.66rem; line-height:1.6; }
.tpc-fv-error { margin:.8rem 0 0; color:var(--fv-error); font-size:.79rem; font-weight:700; line-height:1.5; }
.tpc-fv-connection,.tpc-fv-message { margin:.8rem 0 0; color:var(--fv-muted); font-size:.76rem; line-height:1.5; }
.tpc-fv-results ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; padding:0; margin:.8rem 0; list-style:none; }
.tpc-fv-results li { display:flex; align-items:center; gap:.65rem; min-width:0; padding:.8rem; background:var(--fv-soft); border:1px solid var(--fv-line); border-radius:.9rem; }
.tpc-fv-results li.is-winner { border-color:var(--fv-link); }
.tpc-fv-result-title { margin:0; color:var(--fv-ink); font-size:.85rem; line-height:1.6; }
.tpc-fv-result-copy { flex:1; min-width:0; }
.tpc-fv-result-copy > div:first-child { display:flex; justify-content:space-between; align-items:center; gap:.65rem; }
.tpc-fv-result-copy > div:first-child > span { min-width:0; }
.tpc-fv-result-copy b { flex-shrink:0; color:var(--fv-link); font-size:.87rem; font-variant-numeric:tabular-nums; }
.tpc-fv-bar { height:.35rem; margin:.45rem 0 .15rem; overflow:hidden; border-radius:1rem; background:var(--fv-line); }
.tpc-fv-bar span { display:block; height:100%; border-radius:inherit; background:var(--fv-link); }
.tpc-fv-total { margin:.6rem 0 0; color:var(--fv-muted); font-size:.73rem; }
.tpc-fv-other { margin-top:.75rem; min-width:0; border:1px solid var(--fv-line); border-radius:.9rem; padding:.85rem; background:var(--fv-soft); }
.tpc-fv-other summary { min-height:28px; cursor:pointer; color:var(--fv-ink); font-size:.85rem; font-weight:800; overflow-wrap:anywhere; }
.tpc-fv-other p { color:var(--fv-muted); font-size:.75rem; line-height:1.6; }
.tpc-fv-other-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap:.75rem; }
.tpc-fv-other-fields label { display:grid; gap:.4rem; min-width:0; color:var(--fv-ink); font-size:.8rem; font-weight:700; }
.tpc-fv-other-fields select { width:100%; min-width:0; max-width:100%; min-height:44px; padding:.65rem; border:1px solid var(--fv-line); border-radius:.65rem; background:var(--fv-surface); color:var(--fv-ink); font:inherit; font-size:1rem; text-overflow:ellipsis; }
.tpc-fv-other summary:focus-visible,.tpc-fv-other-fields select:focus-visible { outline:3px solid var(--fv-link); outline-offset:2px; }
.tpc-fv-auth { margin:0 0 1rem; padding:1rem; min-width:0; border:1px solid var(--fv-line); border-radius:.9rem; background:var(--fv-soft); }
.tpc-fv-auth h3 { margin:0 0 .4rem; color:var(--fv-ink); font-size:.95rem; font-weight:800; }
.tpc-fv-auth p { margin:0; color:var(--fv-muted); font-size:.8rem; line-height:1.6; overflow-wrap:anywhere; }
.tpc-fv-auth strong { color:var(--fv-ink); }
.tpc-fv-auth label { display:block; margin:.8rem 0 .35rem; color:var(--fv-ink); font-size:.8rem; font-weight:700; }
.tpc-fv-auth input { display:block; width:100%; max-width:28rem; min-width:0; min-height:2.8rem; padding:.65rem .8rem; background:var(--fv-surface); color:var(--fv-ink); border:1px solid var(--fv-line); border-radius:.65rem; font:inherit; font-size:1rem; }
.tpc-fv-auth input:focus-visible { outline:3px solid var(--fv-link); outline-offset:2px; }
.tpc-fv-auth-help { display:block; margin-top:.6rem; color:var(--fv-muted); font-size:.72rem; line-height:1.5; }
@media (max-width:580px) { .tpc-fv-nominees,.tpc-fv-results ol { grid-template-columns:minmax(0,1fr); } .tpc-fv-choice-body { min-height:4rem; padding:.65rem; } }
@media (prefers-reduced-motion:reduce) { .tpc-fan-vote * { scroll-behavior:auto; } }
/* A compact homepage voting destination replaces the old favorite-team promo. */
.tpc-voting-hub[hidden],.tpc-voting-hub [hidden] { display:none !important; }
#homeFanVoting.tpc-voting-hub { min-width:0; max-width:100%; background:#f2f6fc !important; border:1px solid #dbe4f1; color:#14233c; }
#homeFanVoting .tpc-fan-vote { background:var(--fv-surface) !important; }
#homeFanVoting .pmc-section-head h2 { color:#001b5b; }
#homeFanVoting .pmc-section-head p { color:#53647d; }
.tpc-voting-hub-controls { display:flex; flex-wrap:wrap; align-items:end; gap:.85rem 1rem; }
.tpc-voting-hub-controls label { display:grid; gap:.35rem; min-width:0; flex:1 1 20rem; color:#334564; font-size:.76rem; font-weight:800; }
.tpc-voting-hub-controls select { box-sizing:border-box; display:block; width:100%; min-width:0; max-width:100%; min-height:46px; padding:.65rem 2rem .65rem .8rem; border:1px solid #dbe4f1; border-radius:.8rem; background:#fff; color:#14233c; font:inherit; text-overflow:ellipsis; }
.tpc-voting-hub-controls a { display:flex; align-items:center; min-height:46px; color:var(--cup-blue,#001e8e); font-size:.8rem; font-weight:800; }
.tpc-voting-hub-fixture { margin:1rem 0 0; font-size:clamp(.95rem,2.2vw,1.15rem); color:#14233c; overflow-wrap:anywhere; }
.tpc-voting-hub-status { padding:1rem; border:1px solid #dbe4f1; border-radius:1rem; background:#fff; color:#53647d; font-size:.85rem; }
.tpc-voting-hub .tpc-fan-vote { margin-top:.65rem; }
.tpc-fv-kind-tabs { display:flex; gap:.5rem; margin:0 0 1rem; padding-bottom:.8rem; border-bottom:1px solid var(--fv-line); }
.tpc-fv-kind-tabs button { flex:1; min-height:44px; padding:.55rem .7rem; border:1px solid var(--fv-line); border-radius:.7rem; background:var(--fv-soft); color:var(--fv-ink); font:inherit; font-size:.78rem; font-weight:800; line-height:1.4; }
.tpc-fv-kind-tabs button[aria-pressed="true"] { background:var(--fv-blue); color:#fff; border-color:var(--fv-blue); }
.tpc-fv-kind-tabs button:focus-visible,.tpc-voting-hub-controls select:focus-visible { outline:3px solid var(--cup-yellow,#f1c30b); outline-offset:2px; }
.tpc-fv-nominees.is-teams .tpc-fv-avatar { border-radius:.5rem; background:var(--fv-surface); color:var(--fv-ink); }
.tpc-fv-nominees.is-teams .tpc-fv-avatar img { object-fit:contain; }
body.tpc-site-dark-mode .tpc-voting-hub-controls label,body.tpc-site-dark-mode .tpc-voting-hub-fixture { color:#f4f7ff; }
body.tpc-site-dark-mode .tpc-voting-hub-controls select,body.tpc-site-dark-mode .tpc-voting-hub-status { color:#f4f7ff; background:#132439; border-color:#38526e; }
body.tpc-site-dark-mode .tpc-voting-hub-controls a { color:var(--cup-yellow,#f1c30b); }
body.tpc-site-dark-mode #homeFanVoting.tpc-voting-hub { background:#0c1b2f !important; border-color:#38526e; color:#f4f7ff; }
body.tpc-site-dark-mode #homeFanVoting .pmc-section-head h2 { color:#f4f7ff; }
body.tpc-site-dark-mode #homeFanVoting .pmc-section-head p { color:#b8c8db; }
