:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19192c;background:#eef0f5;--navy:#00004d;--red:#b51f35}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#e8ebf2,#f8f9fb 260px);min-height:100vh}.public-shell{width:min(980px,100%);margin:auto;padding:0 12px 28px}.public-header{display:flex;align-items:center;gap:14px;margin:0 -12px 14px;padding:18px max(18px,calc((100vw - 980px)/2 + 18px));color:#fff;background:linear-gradient(120deg,var(--navy),#151568 70%,var(--red));border-bottom:4px solid var(--red);box-shadow:0 5px 18px #00004d35}.public-header img{width:64px;height:64px;object-fit:contain}.public-header p{margin:0 0 2px;font-size:.72rem;font-weight:900;letter-spacing:.12em}.public-header h1{margin:0;font-size:clamp(1.45rem,5vw,2.1rem);line-height:1}.public-header span{display:block;margin-top:5px;font-size:.9rem;font-weight:750}.public-card,.category-card{margin:12px 0;background:#fff;border:1px solid #d9dde7;border-radius:16px;box-shadow:0 7px 22px #1b245414;overflow:hidden}.public-card>h2,.honor-board>h2{margin:0;padding:11px 14px;color:#fff;background:var(--navy);border-bottom:3px solid var(--red);font-size:1rem;letter-spacing:.04em}.notice{margin:9px 12px;padding:10px 12px;background:#fff6d9;border:1px solid #e4ca71;border-radius:11px;font-weight:750}.document-link{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:9px 12px;padding:11px 12px;color:var(--navy);text-decoration:none;background:#f3f5fa;border:1px solid #d9deea;border-radius:11px}.document-link span{padding:4px 8px;color:#fff;background:var(--navy);border-radius:999px;font-size:.72rem;font-weight:850}.empty{margin:12px;color:#6d7180}.public-empty{padding-bottom:12px;text-align:center}.public-empty p{padding:0 16px;color:#626778}.public-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 8px;padding:10px 12px;background:#fff;border:1px solid #d8dce7;border-radius:14px}.public-toolbar div{display:flex;flex-direction:column}.public-toolbar strong{color:var(--navy)}.public-toolbar span{font-size:.72rem;color:#737787}.public-toolbar button{border:0;border-radius:999px;padding:8px 12px;color:#fff;background:var(--navy);font-weight:800}.category-card{border-top:5px solid var(--cat)}.category-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 15px;border:0;background:#fff;text-align:left;cursor:pointer}.category-toggle span{display:flex;flex-direction:column;gap:3px}.category-toggle strong{font-size:1.02rem;color:#22233a}.category-toggle small{color:#6e7281;font-weight:700}.category-toggle b{font-size:1.35rem;color:var(--cat);transition:transform .2s}.category-toggle[aria-expanded="true"] b{transform:rotate(180deg)}.category-content{padding:0 10px 12px;background:#f8f9fc;border-top:1px solid #e2e5ed}.group-card,.final-card,.best-seconds{margin-top:10px;padding:10px;background:#fff;border:1px solid #dfe3ec;border-radius:13px}.group-card>h3,.final-card>h3{margin:-10px -10px 10px;padding:9px 11px;color:#fff;background:var(--cat);border-radius:12px 12px 0 0;font-size:.88rem;letter-spacing:.06em}.group-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);gap:10px}.matches-box,.standings-box{min-width:0}.matches-box h4,.standings-box h4,.best-seconds h4{margin:0 0 7px;color:#35364d;font-size:.83rem;text-transform:uppercase}.public-match{padding:8px 9px;margin:6px 0;background:#f7f8fb;border:1px solid #e0e3eb;border-radius:10px}.match-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;color:#707482;font-size:.69rem}.match-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px}.match-teams .team{font-size:.84rem;line-height:1.15;overflow-wrap:anywhere}.match-teams .local{text-align:right}.match-teams .visitor{text-align:left}.score{min-width:46px;padding:4px 6px;text-align:center;color:#fff;background:var(--navy);border-radius:8px}.versus{color:#7b7f8c}.penalties{grid-column:1/-1;text-align:center;color:#7d3151;font-weight:800}.standing-table,.best-table{overflow-x:auto;border:1px solid #e0e3eb;border-radius:10px}.standing-row{display:grid;grid-template-columns:34px minmax(110px,1fr) repeat(7,34px);min-width:420px;align-items:center;gap:2px;padding:7px 5px;font-size:.7rem;border-bottom:1px solid #e8eaf0}.standing-row:last-child{border-bottom:0}.standing-row:nth-child(odd):not(.head){background:#f8f9fb}.standing-row.head{color:#fff;background:var(--navy);font-weight:850}.standing-row>*{text-align:center}.standing-row>*:nth-child(2){text-align:left;overflow-wrap:anywhere}.best-row{display:grid;grid-template-columns:34px minmax(120px,1fr) 55px 75px 65px;min-width:350px;gap:4px;padding:7px 6px;font-size:.72rem;border-bottom:1px solid #e8eaf0}.best-row.head{color:#fff;background:#72516a;font-weight:850}.best-row>*:not(:nth-child(2)){text-align:center}.final-card{border-color:#d8b7ca;background:#fffafd}.final-card>h3{background:#8b315d}.honor-board{margin-top:16px}.honor-card{margin:10px 12px;padding:11px 12px;border-left:6px solid var(--cat);background:#f8f8fb;border-radius:10px}.honor-card h3{margin:0 0 7px;font-size:.9rem}.honor-card p{margin:4px 0;font-weight:800}.champion{color:#8a6400}.runnerup{color:#55596b}.penalty-winner{color:#8b315d}.offline-message{position:fixed;left:12px;right:12px;bottom:12px;max-width:600px;margin:auto;padding:10px;color:#fff;background:#9e1528;border-radius:10px;text-align:center;font-weight:800}.public-splash{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:0;background:#080814;opacity:0;transition:opacity .3s;overflow:auto}.public-splash.visible{opacity:1}.public-splash.leaving{opacity:0;pointer-events:none}.public-splash img{display:block;width:min(100%,980px);height:auto;min-height:100vh;object-fit:contain}.public-splash button{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);min-width:170px;padding:15px 28px;color:#fff;background:var(--red);border:3px solid #fff;border-radius:999px;font:inherit;font-weight:950;letter-spacing:.08em;box-shadow:0 0 0 7px #00004dcc,0 12px 32px #0008;animation:pulse 1.15s infinite;cursor:pointer}@keyframes pulse{50%{opacity:.72;box-shadow:0 0 0 12px #b51f3566,0 14px 36px #0009}}body.splash-pending{overflow:hidden}body.splash-pending .public-shell{visibility:hidden}[hidden]{display:none!important}@media(max-width:720px){.public-shell{padding-inline:8px}.public-header{margin-inline:-8px;padding:14px 12px}.public-header img{width:52px;height:52px}.group-grid{grid-template-columns:1fr}.category-content{padding-inline:7px}.group-card,.final-card,.best-seconds{padding:8px}.group-card>h3,.final-card>h3{margin:-8px -8px 8px}.standing-row{font-size:.67rem}.public-match{padding:8px 7px}.match-teams .team{font-size:.81rem}}@media(prefers-reduced-motion:reduce){.public-splash,.category-toggle b{transition:none}.public-splash button{animation:none}}

.category-honor{margin-top:12px;padding:0;border:1px solid color-mix(in srgb,var(--cat) 35%,#dfe3ec);border-radius:14px;overflow:hidden;background:linear-gradient(145deg,#fffdf5,#fff 55%,color-mix(in srgb,var(--cat) 7%,#fff));box-shadow:0 7px 20px rgba(28,36,74,.09)}.category-honor-title{padding:10px 13px;color:#fff;background:linear-gradient(120deg,var(--cat),color-mix(in srgb,var(--cat) 72%,#172445));font-size:.82rem;font-weight:950;letter-spacing:.08em;text-align:center}.category-honor-podium{display:grid;grid-template-columns:1.12fr .88fr;gap:9px;padding:11px}.category-honor-podium article{display:flex;flex-direction:column;justify-content:center;min-height:70px;padding:10px 12px;border-radius:11px;text-align:center}.category-honor-podium span,.category-honor-penalty span{font-size:.62rem;font-weight:900;letter-spacing:.07em}.category-honor-podium strong,.category-honor-penalty strong{display:block;margin-top:5px;font-size:1rem;line-height:1.2;overflow-wrap:anywhere}.category-honor-champion{color:#6e5100;background:linear-gradient(145deg,#fff2a8,#fff9dc);border:1px solid #e5c75e;box-shadow:inset 0 0 0 2px #fff8}.category-honor-champion strong:before{content:'🏆 ';}.category-honor-runner{color:#4d5568;background:linear-gradient(145deg,#e9edf3,#f9fafc);border:1px solid #cbd1dc}.category-honor-runner strong:before{content:'🥈 ';}.category-honor-penalty{margin:0 11px 11px;padding:10px 12px;text-align:center;color:#713154;background:#f9eaf3;border:1px solid #dfb6ce;border-radius:11px}.category-honor-penalty strong:before{content:'⚽ ';}@media(max-width:520px){.category-honor-podium{grid-template-columns:1fr}.category-honor-podium article{min-height:60px}}

.team-picker{display:flex;align-items:center;gap:8px;min-width:min(420px,55%)}.team-picker>span{font-size:.72rem;font-weight:850;color:#565b6b;white-space:nowrap}.team-picker select{width:100%;min-width:190px;padding:9px 34px 9px 11px;border:1px solid #cfd5e2;border-radius:10px;background:#fff;color:var(--navy);font:inherit;font-size:.82rem;font-weight:800}.group-card.selected-group{border:2px solid var(--cat);box-shadow:0 0 0 4px color-mix(in srgb,var(--cat) 12%,transparent),0 8px 22px rgba(28,36,74,.12)}.team-highlight{background:#fff4b8!important;box-shadow:inset 4px 0 0 #d49a00}.public-match.team-highlight{border-color:#d7ac31}.selected-team-name{color:#8b6100;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.standing-row.team-highlight strong:nth-child(2),.best-row.team-highlight strong:nth-child(2){color:#7a5200}.category-card:has(.selected-group)>.category-toggle{background:color-mix(in srgb,var(--cat) 7%,#fff)}@media(max-width:720px){.public-toolbar{align-items:stretch;flex-direction:column}.team-picker{min-width:0;width:100%;align-items:stretch;flex-direction:column;gap:4px}.team-picker select{width:100%}}


/* Parche 40.5 · cabecera pública correctamente extendida en pantallas anchas */
.public-header{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
@media(max-width:720px){
  .public-header{
    width:auto;
    margin-left:-8px;
    margin-right:-8px;
  }
}


/* Parche 40.6 · cabecera pública con el mismo ancho que las tarjetas */
.public-header{
  width:auto;
  margin:0 0 14px;
  padding:18px;
}
@media(max-width:720px){
  .public-header{
    width:auto;
    margin:0 0 12px;
    padding:14px 12px;
  }
}
