.vipers-gameday{--vipers-green:#0cad0c;--vipers-green-bright:#42e219;--vipers-green-dark:#00512e;--vipers-ink:#101410;--vipers-muted:#667066;--vipers-surface:#f4f7f3;--vipers-border:#dce5da;box-sizing:border-box;color:var(--vipers-ink);font-family:Roboto,Arial,sans-serif;margin:2rem 0;width:100%}.vipers-gameday *,.vipers-gameday *::before,.vipers-gameday *::after{box-sizing:border-box}.vipers-gameday__header{align-items:end;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.25rem}.vipers-gameday__header h2{font-size:clamp(1.75rem, 4vw, 2.6rem);line-height:1.05;margin:0}.vipers-gameday__eyebrow{color:var(--vipers-green-dark);font-size:.76rem;font-weight:750;letter-spacing:.09em;margin:0 0 .4rem;text-transform:uppercase}.vipers-gameday__subtitle{color:var(--vipers-muted);font-size:.82rem;margin:.35rem 0 0}.vipers-gameday__count,.vipers-gameday__league{background:#e8f6e3;border:1px solid #c8e8bd;border-radius:999px;color:var(--vipers-green-dark);font-size:.7rem;font-weight:750;letter-spacing:.04em;padding:.35rem .65rem;text-transform:uppercase}.vipers-gameday__page[hidden]{display:none!important}.vipers-gameday__games{display:grid;gap:.75rem}.vipers-gameday__game{background:#fff;border:1px solid var(--vipers-border);border-radius:18px;box-shadow:0 10px 30px rgb(16 20 16 / 7%);display:grid;grid-template-columns:minmax(8.5rem,11rem) minmax(0,1fr);overflow:hidden}.vipers-gameday__meta{align-content:center;background:var(--vipers-surface);border-right:1px solid var(--vipers-border);display:grid;gap:.7rem;justify-items:start;padding:1rem}.vipers-gameday__meta time{color:var(--vipers-muted);font-size:.78rem;font-variant-numeric:tabular-nums}.vipers-gameday__meta time strong{color:var(--vipers-ink);display:block;font-size:1.1rem;margin-top:.15rem}.vipers-gameday__liga-short{display:none}.vipers-gameday__match{align-items:center;display:grid;gap:.8rem;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:7rem;padding:1rem 1.15rem}.vipers-gameday__team{align-items:center;display:flex;gap:.65rem;min-width:0}.vipers-gameday__heimteam{flex-direction:row-reverse;text-align:right}.vipers-gameday__gastteam{text-align:left}.vipers-gameday__team-logo{background:#fff;border-radius:50%;box-shadow:0 0 0 1px var(--vipers-border);flex:0 0 auto;height:3.25rem;object-fit:contain;padding:.2rem;width:3.25rem}.vipers-gameday__team-name{font-size:clamp(.86rem, 1.7vw, 1rem);font-weight:750;line-height:1.25;overflow-wrap:anywhere}.vipers-gameday__versus{align-items:center;background:var(--vipers-green-dark);border-radius:50%;color:#fff;display:inline-flex;font-size:.68rem;font-weight:800;height:2.1rem;justify-content:center;text-transform:uppercase;width:2.1rem}.vipers-gameday__opponent-trigger{align-items:center;background:#fff0;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:.65rem;min-width:0;padding:.25rem;text-align:inherit}.vipers-gameday__heimteam .vipers-gameday__opponent-trigger{flex-direction:row-reverse}.vipers-gameday__opponent-trigger:hover .vipers-gameday__team-name{color:var(--vipers-green-dark);text-decoration:underline;text-underline-offset:.16em}.vipers-gameday__opponent-trigger:focus-visible{border-radius:10px;outline:3px solid var(--vipers-green);outline-offset:2px}.vipers-gameday__info-icon{align-items:center;background:#e8f6e3;border:1px solid #c8e8bd;border-radius:50%;color:var(--vipers-green-dark);display:inline-flex;flex:0 0 auto;font-size:.68rem;font-weight:850;height:1.25rem;justify-content:center;width:1.25rem}.vipers-gameday__last-meeting{background:#fbfcfb;border-top:1px solid var(--vipers-border);display:grid;gap:.15rem .7rem;grid-column:1 / -1;grid-template-columns:minmax(9rem,auto) minmax(0,1fr);padding:.7rem 1rem}.vipers-gameday__last-meeting span{color:var(--vipers-muted);font-size:.68rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.vipers-gameday__last-meeting strong{font-size:.8rem;font-weight:750}.vipers-gameday__last-meeting small{color:var(--vipers-muted);font-size:.72rem;font-weight:500}.vipers-gameday__pagination{align-items:center;display:flex;gap:.75rem;justify-content:center;margin-top:1rem}.vipers-gameday__nav-btn,.vipers-gameday__popup-routes a{background:var(--vipers-green-dark);border:0;border-radius:999px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:750;padding:.55rem .85rem;text-decoration:none}.vipers-gameday__nav-btn:hover:not(:disabled),.vipers-gameday__nav-btn:focus-visible,.vipers-gameday__popup-routes a:hover,.vipers-gameday__popup-routes a:focus-visible{background:var(--vipers-green);color:#061006}.vipers-gameday__nav-btn:disabled{cursor:not-allowed;opacity:.42}.vipers-gameday__page-indicator{display:flex;gap:.4rem}.vipers-gameday__dot{background:#cbd5cd;border:0;border-radius:50%;cursor:pointer;height:.7rem;padding:0;width:.7rem}.vipers-gameday__dot.active{background:var(--vipers-green-dark);transform:scale(1.2)}.vipers-gameday__dot:focus-visible{outline:2px solid var(--vipers-green);outline-offset:2px}.vipers-gameday__no-games,.vipers-gameday__error{background:var(--vipers-surface);border:1px solid var(--vipers-border);border-radius:12px;color:var(--vipers-muted);padding:1rem;text-align:center}.vipers-gameday__dialog{background:#fff;border:1px solid var(--vipers-border);border-radius:18px;box-shadow:0 24px 70px rgb(0 0 0 / 38%);color:#173326;max-height:calc(100dvh - 2rem);max-width:min(34rem, calc(100vw - 2rem));overflow:auto;padding:2.8rem 1.15rem 1.15rem;width:100%}.vipers-gameday__dialog::backdrop{background:rgb(0 0 0 / 72%)}.vipers-gameday__dialog-close{align-items:center;background:var(--vipers-surface);border:0;border-radius:50%;color:var(--vipers-ink);cursor:pointer;display:flex;font-size:1.35rem;height:2rem;justify-content:center;line-height:1;position:absolute;right:.65rem;top:.65rem;width:2rem}.vipers-gameday__dialog-close:hover,.vipers-gameday__dialog-close:focus-visible{background:var(--vipers-green-bright);outline:2px solid var(--vipers-green-dark)}.vipers-gameday__popup{display:grid;gap:.65rem;grid-template-columns:64px 1fr}.vipers-gameday__popup>img{background:#fff;border-radius:50%;height:60px;object-fit:contain;width:60px}.vipers-gameday__popup h3,.vipers-gameday__popup p{margin:0 0 .25rem}.vipers-gameday__popup-links a{color:var(--vipers-green-dark);font-weight:700}.vipers-gameday__popup dl{display:grid;gap:.4rem;grid-column:1 / -1;grid-template-columns:repeat(2,1fr);margin:.3rem 0}.vipers-gameday__popup dl div{background:#eff5f1;border-radius:9px;padding:.55rem}.vipers-gameday__popup dt{color:var(--vipers-muted);font-size:.72rem}.vipers-gameday__popup dd{font-weight:750;margin:0}.vipers-gameday__last-meeting--compact{border:1px solid var(--vipers-border);border-radius:10px;grid-column:1 / -1}.vipers-gameday__popup-routes{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem;grid-column:1 / -1}.vipers-gameday__popup-routes strong{margin-right:.15rem}.vipers-gameday__popup-routes small{color:var(--vipers-muted);flex-basis:100%}.vipers-gameday__comparison{color:var(--vipers-green-dark);font-weight:750;grid-column:1 / -1}@media (max-width:640px){.vipers-gameday__header{align-items:start;flex-direction:column}.vipers-gameday__game{grid-template-columns:1fr}.vipers-gameday__meta{align-items:center;border-bottom:1px solid var(--vipers-border);border-right:0;grid-auto-flow:column;justify-content:space-between}.vipers-gameday__match{gap:.45rem;min-height:auto;padding:1rem .7rem}.vipers-gameday__team{align-content:start;flex-direction:column;text-align:center}.vipers-gameday__opponent-trigger,.vipers-gameday__heimteam .vipers-gameday__opponent-trigger{flex-direction:column}.vipers-gameday__team-logo{height:2.8rem;width:2.8rem}.vipers-gameday__team-name{font-size:.78rem}.vipers-gameday__last-meeting{grid-template-columns:1fr}.vipers-gameday__liga-long{display:none}.vipers-gameday__liga-short{display:inline}.vipers-gameday__nav-btn{padding-inline:.7rem}}@media (prefers-reduced-motion:reduce){.vipers-gameday *,.vipers-gameday *::before,.vipers-gameday *::after{scroll-behavior:auto!important;transition:none!important}}