.champion-toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(calc(100% + 2rem));background:linear-gradient(135deg,#091434f7,#142d64f7);border:1px solid rgba(255,215,0,.45);border-radius:18px;padding:1rem 1.5rem;display:flex;align-items:center;gap:1rem;backdrop-filter:blur(18px);box-shadow:0 8px 40px #00000073,0 0 0 1px #ffd70026;z-index:9999;opacity:0;transition:transform .55s cubic-bezier(.175,.885,.32,1.275),opacity .4s ease;min-width:280px;max-width:90vw}.champion-toast--show{transform:translate(-50%) translateY(0);opacity:1}.champion-toast--hide{transform:translate(-50%) translateY(calc(100% + 2rem));opacity:0}.champion-toast-flag{font-size:2.6rem;line-height:1;flex-shrink:0}.champion-toast-text{display:flex;flex-direction:column;gap:.15rem}.champion-toast-title{font-weight:900;font-size:1rem;background:linear-gradient(45deg,gold,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.champion-toast-country{font-size:.82rem;opacity:.65}.champion-toast-trophy{font-size:1.9rem;margin-left:auto;flex-shrink:0}.site-footer{background:#091434ad;border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding:0;color:#e0e6f6;font-size:1rem;backdrop-filter:blur(8px)}.site-footer-inner{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0}.footer-social{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.footer-social-link{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;color:#ffffffb3;border:1px solid rgba(255,255,255,.15);transition:color .15s,border-color .15s,background .15s}.footer-social-link:hover{color:gold;border-color:#ffd70080;background:#ffd70014}.footer-social-link svg{width:17px;height:17px}.footer-content{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;font-size:.98rem;opacity:.92}.footer-link{color:gold;text-decoration:underline;opacity:.92;transition:opacity .15s}.footer-link:hover{opacity:1}.footer-sep{opacity:.5;font-size:1.2em}@media(max-width:1000px){.site-footer-inner{padding:2.5rem 1rem 3rem;flex-direction:column;justify-content:center;gap:1.2rem}.footer-content{flex-direction:column;text-align:center;gap:.65rem;margin-top:2rem}.footer-sep{display:none}.footer-social{margin-bottom:2rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;background:linear-gradient(135deg,#1e3c72,#2a5298,#667eea);color:#fff;min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:40;backdrop-filter:blur(8px);background:#091434ad;border-bottom:1px solid rgba(255,255,255,.12)}.site-header-inner{min-height:80px;display:flex;align-items:center;justify-content:center;position:relative}.site-logo{display:inline-flex;align-items:center;text-decoration:none}.site-logo-img{height:70px;width:auto;display:block;transition:transform .15s,opacity .15s}.site-logo:hover .site-logo-img{opacity:.9;transform:scale(1.04)}.site-nav{position:absolute;right:0;display:flex;align-items:center;gap:.25rem}.site-nav-link{color:#fff;text-decoration:none;font-size:.88rem;font-weight:600;padding:.4rem .75rem;border-radius:8px;opacity:.8;transition:opacity .15s,background .15s}.site-nav-link:hover{opacity:1;background:#ffffff1a}.hamburger{display:none;position:absolute;right:0;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;padding:6px;background:transparent;border:none;cursor:pointer;z-index:50}.hamburger span{display:block;width:100%;height:2px;background:#fff;border-radius:2px;transition:transform .25s,opacity .25s}.hamburger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:1000px){.hamburger{display:flex}.site-nav{position:fixed;top:80px;right:0;left:0;flex-direction:column;align-items:stretch;gap:0;background:#091434f7;backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.12);z-index:45;overflow:hidden;max-height:0;transition:max-height .3s ease}.site-nav.open{max-height:300px}.site-nav-link{padding:1rem 1.5rem;border-radius:0;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.07);opacity:.9}.site-nav-link:last-child{border-bottom:none}}.container{max-width:1200px;margin:0 auto;padding:0 20px}h1{font-size:4rem;background:linear-gradient(45deg,gold,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin-bottom:1rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:3rem}.card{background:#ffffff1a;backdrop-filter:blur(10px);border-radius:20px;padding:2rem;text-align:center;border:1px solid rgba(255,255,255,.2);transition:all .3s ease;cursor:pointer}.card:hover{transform:translateY(-10px);background:#fff3;box-shadow:0 20px 40px #0000004d}.page-home,.page-year,.page-admin,.page-teams{padding-top:3rem;padding-bottom:4rem}.subtitle{text-align:center;font-size:1.2rem;margin-bottom:2rem;opacity:.95}.year-header{margin-top:1rem}.year-header-inner{position:relative;overflow:hidden;min-height:320px;display:grid;place-items:center;background:radial-gradient(circle at 18% 20%,#2a5298,#1e3c72 55%,#122442);border-radius:24px;padding:2rem;text-align:center}.year-header-inner.has-poster{background-image:linear-gradient(180deg,#04081433,#040814a6),var(--year-poster);background-position:center;background-size:cover;background-repeat:no-repeat}.year-header-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#0a122214,#0a1222b8)}.year-header-content{position:relative;z-index:2}.breadcrumb-nav{margin:1.5rem 0 1rem;display:flex;align-items:center;gap:.5rem;font-size:1.08rem}.breadcrumb-link{color:gold;text-decoration:none;font-weight:600;opacity:.85;transition:opacity .15s}.breadcrumb-link:hover{opacity:1}.breadcrumb-sep{opacity:.5;font-size:1.1em;margin:0 .2em}.year-title{font-size:clamp(3rem,10vw,6rem);text-shadow:0 12px 36px rgba(0,0,0,.55)}.year-host{font-size:1.3rem;margin-top:.5rem;font-family:Segoe UI,"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif}.host-country,.match-team{display:inline-flex;align-items:center;gap:.35rem}.host-separator{margin:0 .35rem}.country-flag{display:inline-block;min-width:1.2em;text-align:center}.champion-banner{display:inline-block;margin-top:1rem;color:gold;font-weight:700;border:1px solid rgba(255,215,0,.5);border-radius:999px;padding:.5rem 1rem}.upcoming-badge{display:inline-block;margin-top:1rem;background:linear-gradient(45deg,#ff6b35,#ef4444);color:#fff;font-weight:700;border-radius:999px;padding:.5rem 1rem}.matches-section,.phase-block{margin-top:2rem}.phase-block h2{margin-bottom:1rem;font-size:1.5rem}.match-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.match-card{transform:none;text-align:left}.match-card:hover{transform:translateY(-4px)}.match-date{opacity:.9;font-size:.9rem}.match-date-wrap{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.match-time{font-size:.8rem;opacity:.85;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.15rem .55rem;line-height:1.2;white-space:nowrap}.match-teams{font-weight:700;font-size:1.1rem;margin-top:.5rem;font-family:Segoe UI,"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.match-score{color:gold;margin-top:.5rem;font-weight:700}.match-stadium{margin-top:.5rem;opacity:.9}.match-coaches{margin-top:.35rem;opacity:.82;font-size:.82rem}.match-penalties{font-size:.78rem;opacity:.75;margin-top:.15rem;font-style:italic}.match-more-btn{display:inline-block;margin-top:.75rem;padding:.3rem .75rem;border:1px solid currentColor;border-radius:4px;font-size:.8rem;opacity:.8;transition:opacity .15s}.match-card-link:hover .match-more-btn{opacity:1}.admin-card{max-width:700px;margin:0 auto}.admin-card h2{margin-bottom:1rem}.admin-list{list-style:none;display:grid;gap:.6rem}@media(max-width:700px){h1{font-size:2.4rem}.container{padding:0 14px}}.match-card-link{text-decoration:none;color:inherit;display:block}.match-card-link .match-card{height:100%}.page-match-detail{padding-top:2rem;padding-bottom:4rem}.back-nav{margin-bottom:1.5rem}.back-link{color:#ffffffbf;text-decoration:none;font-size:.95rem;transition:color .2s}.back-link:hover{color:#fff}.match-detail-header{cursor:default;text-align:center}.match-detail-header:hover{transform:none}.match-detail-phase{font-size:.85rem;opacity:.7;text-transform:uppercase;letter-spacing:.06em;word-spacing:-.06em;margin-bottom:.25rem}.match-detail-date{font-size:.9rem;opacity:.85}.match-detail-date-wrap{margin-bottom:1.25rem;display:inline-flex;align-items:center;gap:.6rem}.match-detail-time{font-size:.82rem;opacity:.85;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.16rem .55rem;white-space:nowrap}.match-detail-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-bottom:1.25rem}.match-detail-team{display:flex;align-items:center;gap:.6rem}.match-detail-team--right{justify-content:flex-end}.match-detail-flag{font-size:2rem}.match-detail-name{font-size:clamp(1rem,3vw,1.3rem);font-weight:700}.match-detail-score{text-align:center}.score-value{font-size:clamp(2rem,6vw,3rem);font-weight:900;color:gold;line-height:1}.score-tbd{font-size:1.1rem;opacity:.7}.match-detail-stadium{opacity:.8;font-size:.95rem}.detail-section{margin-top:1.5rem;text-align:left;cursor:default}.detail-section:hover{transform:none}.detail-section-title{font-size:1.2rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.15)}.goals-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.goals-col-header{font-size:.85rem;font-weight:700;opacity:.7;text-transform:uppercase;letter-spacing:.05em;word-spacing:-.05em;margin-bottom:.6rem}.goals-col-header--right{text-align:right}.event-list{list-style:none;display:grid;gap:.4rem}.event-list--right{text-align:right}.event-item{font-size:.9rem;line-height:1.4}.event-minute{color:gold;font-weight:700;font-size:.8rem;min-width:2.5rem;display:inline-block}.event-player{opacity:.95}.event-badge{font-size:.7rem;font-weight:700;border-radius:4px;padding:1px 4px;vertical-align:middle}.event-badge--og{background:#ef444499}.event-badge--pen{background:#6366f199}.event-item--sub .sub-off{opacity:.65}.sub-on{color:#6ee7b7}.pen-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.pen-list{list-style:none;display:grid;gap:.35rem;padding:0;font-size:.9rem}.lineup-list{list-style:none;padding:0;display:grid;gap:.3rem}.lineup-list--right .lineup-item{flex-direction:row-reverse;text-align:right}.lineup-item{display:flex;align-items:center;gap:.4rem;font-size:.88rem}.lineup-number{width:1.6rem;text-align:center;font-weight:600;font-size:.78rem;opacity:.6;flex-shrink:0}.lineup-pos{font-size:.72rem;opacity:.55;flex-shrink:0}.lineup-badge{font-size:.75rem;color:#4ade80;flex-shrink:0}.lineup-item--came-on .lineup-player{opacity:.75}.manager-list{list-style:none;padding:0;display:grid;gap:.35rem}.manager-list--right{text-align:right}.manager-item{font-size:.9rem;opacity:.9}.referee-list{list-style:none;padding:0;display:grid;gap:.4rem}.referee-item{font-size:.9rem;opacity:.85}.detail-loading{margin-top:2rem;text-align:center;opacity:.7}.loading-ball{font-size:2.8rem;display:block;margin:0 auto 1rem;animation:ball-bounce .7s ease-in-out infinite alternate,ball-spin 1.2s linear infinite;transform-origin:center}@keyframes ball-bounce{0%{transform:translateY(0) rotate(0)}to{transform:translateY(-18px) rotate(180deg)}}@keyframes ball-spin{to{filter:hue-rotate(0deg)}}.no-detail-msg{margin-top:1.5rem;text-align:center;opacity:.6}.detail-upcoming{margin-top:1.5rem;text-align:center;opacity:.75;cursor:default}.detail-upcoming:hover{transform:none}@media(max-width:600px){.match-detail-teams{grid-template-columns:1fr;gap:.5rem}.match-detail-team--right{justify-content:flex-start;order:3}.match-detail-score{order:2}.goals-columns,.pen-columns{grid-template-columns:1fr}.goals-col-header--right,.event-list--right{text-align:left}}.btn{appearance:none;border:1px solid rgba(255,215,0,.4);background:linear-gradient(45deg,#ffd7002e,#ff6b352e);color:#fff;border-radius:10px;padding:.55rem .95rem;font-size:.88rem;font-weight:700;cursor:pointer;transition:transform .15s,opacity .15s,background .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:hover{transform:translateY(-1px);opacity:1}.btn-ghost{border-color:#ffffff40;background:#ffffff14}.btn-small{padding:.4rem .7rem;font-size:.8rem}.page-predictions{padding-top:2.5rem;padding-bottom:4rem}.predictions-hero--compact h1{margin-bottom:.5rem}.predictions-subtitle{max-width:800px;margin-left:auto;margin-right:auto}.predictions-kicker{text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700;opacity:.78;margin-bottom:.45rem}.predictions-meta{margin-top:1rem;display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.tournament-countdown{margin:1rem auto 0;max-width:420px;text-align:center;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:.7rem .9rem;background:#ffffff0a}.tournament-countdown-value{margin-top:.25rem;font-size:1.1rem;font-weight:700}.tournament-countdown-note{margin-top:.2rem;font-size:.8rem;opacity:.8}.meta-pill{font-size:.76rem;font-weight:700;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:.25rem .6rem;opacity:.9}.predictions-grid-top{margin-top:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.predictions-panel,.predictions-league,.predictions-results,.predictions-board,.predictions-roadmap{margin-top:1rem}.predictions-panel h2,.predictions-league h2,.predictions-results h2,.predictions-board h2,.predictions-roadmap h2{margin-bottom:1rem}.form-stack{display:grid;gap:.75rem}.form-stack label,.league-controls label,.result-controls label{display:grid;gap:.35rem;font-size:.84rem;text-align:left;opacity:.9}.form-stack input,.league-controls input,.league-controls select,.result-controls input,.result-controls select,.score-inputs input{appearance:none;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.5rem .6rem;font-size:.9rem}.form-stack input::placeholder{color:#ffffff94}.league-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.league-actions{display:flex;gap:.45rem;flex-wrap:wrap}.league-controls{margin-top:.9rem}.muted{opacity:.76;font-size:.85rem}.status-msg{margin-top:.9rem;font-size:.88rem;min-height:1.2em}.status-msg[data-tone=error]{color:#fecaca}.status-msg[data-tone=warn]{color:#fde68a}.result-controls{display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(80px,110px)) auto auto;gap:.6rem;align-items:end}.board-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.9rem}.board-head-actions{display:flex;align-items:end;gap:.6rem;flex-wrap:wrap}.viewer-select-label{display:grid;gap:.3rem;font-size:.8rem;opacity:.86;text-align:left}.viewer-select-label select{min-width:170px}.table-wrap{overflow-x:auto}.pred-table{width:100%;border-collapse:collapse;font-size:.88rem}.pred-table th,.pred-table td{border-bottom:1px solid rgba(255,255,255,.12);padding:.55rem .45rem;text-align:left;vertical-align:middle}.pred-table th{font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;opacity:.75}.cell-sub{opacity:.68;font-size:.76rem;margin-top:.2rem}.lock-note{color:#fde68a;opacity:.95}.team-with-flag{display:inline-flex;align-items:center;gap:.3rem}.team-flag{display:inline-block;min-width:1.2em;text-align:center}.score-inputs{display:inline-flex;align-items:center;gap:.25rem}.score-inputs input{width:3.4rem;text-align:center;padding:.35rem}.predictions-roadmap ul{margin-left:1rem;display:grid;gap:.4rem;text-align:left}@media(max-width:900px){.predictions-grid-top{grid-template-columns:repeat(2,minmax(0,1fr))}.result-controls{grid-template-columns:1fr 1fr}.result-controls label:first-child{grid-column:1 / -1}.result-controls button{width:100%}}@media(max-width:1000px){#predictions-card .table-wrap{overflow-x:hidden}.board-head{flex-direction:column;align-items:stretch;gap:.65rem}.board-head-actions{width:100%;flex-direction:column;align-items:stretch}.viewer-select-label{width:100%}.viewer-select-label select{width:100%;min-width:0}.board-head-actions .btn{width:100%}.pred-table--matches thead{display:none}.pred-table--matches,.pred-table--matches tbody,.pred-table--matches tr,.pred-table--matches td{display:block;width:100%}.pred-table--matches tr{border:1px solid rgba(255,255,255,.18);border-radius:10px;margin-bottom:.8rem;padding:.35rem .5rem;background:#ffffff08}.pred-table--matches td{border-bottom:1px dashed rgba(255,255,255,.12);padding:.45rem .25rem}.pred-table--matches td:last-child{border-bottom:none}.pred-table--matches td:before{display:block;margin-bottom:.2rem;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;opacity:.72}.pred-table--matches td:nth-child(1):before{content:"Fecha y hora"}.pred-table--matches td:nth-child(2):before{content:"Partido"}.pred-table--matches td:nth-child(3):before{content:"Fase"}.pred-table--matches td:nth-child(4):before{content:"Pronóstico"}.pred-table--matches td:nth-child(5):before{content:"Resultado"}.pred-table--matches td:nth-child(6):before{content:"Puntos"}.pred-table--matches .score-inputs{width:100%;justify-content:flex-start}.pred-table--matches .score-inputs input{width:4.1rem}.pred-table--matches td:nth-child(2){word-break:break-word}}@media(max-width:640px){.predictions-grid-top{grid-template-columns:1fr}}
