:root {
    --public-bg: #ffffff; --public-surface: #f4f6f8; --public-surface-alt: #e9eef2;
    --public-text: #1d2730; --public-muted: #687681; --public-border: #d6dde2;
    --public-accent: #17456b; --public-accent-hover: #123954; --public-accent-soft: #e7f0f6;
    --public-secondary: #8b2434; --public-success: #2f7550; --public-success-soft: #e5f3eb;
    --public-highlight: #b34e75; --public-highlight-soft: #f7e5ec; --public-on-accent: #ffffff;
    font: 16px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--public-text); background: var(--public-bg);
}
* { box-sizing: border-box; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
body { margin: 0; min-width: 280px; min-height: 100vh; background: var(--public-bg); }
#public-shell { display: flex; min-height: 100vh; flex-direction: column; }
a { color: inherit; } img { display: block; max-width: 100%; }
.public-header { position: relative; z-index: 2; border-bottom: 1px solid var(--public-border); background: var(--public-bg); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 68px; max-width: 1160px; margin: auto; padding: .5rem 1rem; gap: 1rem; }
.public-brand { display: flex; align-items: center; min-width: 0; text-decoration: none; }
.public-brand img { width: 44px; height: 48px; object-fit: contain; margin-right: .65rem; }
.public-brand span { min-width: 0; }
.public-brand strong, .public-brand small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-brand strong { max-width: 190px; font-size: .98rem; } .public-brand small { color: var(--public-muted); font-size: .78rem; }
.nav-menu { position: relative; }
.nav-menu summary { min-height: 44px; display: grid; place-items: center; padding: .55rem .8rem; border: 1px solid var(--public-border); border-radius: 10px; cursor: pointer; font-weight: 750; list-style: none; }
.nav-menu summary::-webkit-details-marker { display: none; }
.nav-menu nav { position: absolute; top: calc(100% + .5rem); right: 0; width: min(270px, calc(100vw - 2rem)); padding: .45rem; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-bg); }
.nav-menu a { display: block; min-height: 44px; padding: .65rem .75rem; border-radius: 9px; text-decoration: none; }
.nav-menu a[aria-current="page"] { color: var(--public-accent); background: var(--public-accent-soft); font-weight: 750; }
.desktop-nav { display: none; }
.public-main { flex: 1 0 auto; width: min(100% - 2rem, 1160px); margin: 0 auto; padding: 1.5rem 0 3.5rem; }
.edition-hero { display: grid; gap: 1rem; min-height: 260px; padding: 1.65rem; overflow: hidden; border: 1px solid var(--public-border); border-radius: 14px; color: var(--public-text); background: var(--public-surface); }
.edition-hero > div { align-self: center; } .edition-hero img { display: none; }
.eyebrow { margin: 0 0 .3rem; color: var(--public-accent); font-size: .76rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.edition-hero .eyebrow { color: var(--public-accent); }
h1, h2, p { overflow-wrap: anywhere; } h1, h2 { margin-top: 0; line-height: 1.12; letter-spacing: -.025em; }
h1 { margin-bottom: .8rem; font-size: clamp(2rem, 8vw, 4.3rem); } h2 { margin-bottom: 1rem; font-size: clamp(1.4rem, 5vw, 2rem); }
.edition-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin: 0; color: var(--public-muted); }
.motto { max-width: 620px; margin: 1rem 0 0; color: var(--public-text); font-style: italic; }
.quick-section { padding: 2.2rem 0; } .quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; }
.primary-link { display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: .9rem 1rem; border: 1px solid var(--public-border); border-radius: 14px; background: var(--public-surface); color: var(--public-text); font-weight: 800; text-decoration: none; }
.primary-link span { color: var(--public-accent); font-size: 1.35rem; }
.home-columns { display: grid; gap: 2.4rem; } .section-heading h2 { margin-bottom: .9rem; } .card-list { display: grid; gap: .7rem; }
.match-card, .result-card, .empty-state { margin: 0; padding: 1rem; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-bg); }
.card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem .75rem; margin-bottom: .9rem; color: var(--public-muted); font-size: .82rem; }
.teams { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .5rem; }
.teams strong:last-child { text-align: right; } .teams span { color: var(--public-muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.result-card time { color: var(--public-muted); font-size: .82rem; }
.result-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .75rem; align-items: center; margin-top: .5rem; }
.result-row b { display: grid; place-items: center; min-width: 2rem; min-height: 2rem; border-radius: 6px; background: var(--public-accent); color: var(--public-on-accent); font-size: 1.15rem; }
.penalties { margin: .75rem 0 0; color: var(--public-muted); font-size: .82rem; } .empty-state { color: var(--public-muted); }
.waiting-state, .page-intro { max-width: 720px; margin: 8vh auto; text-align: center; }
.waiting-logo { width: 92px; margin: 0 auto 1.2rem; } .waiting-state p, .page-intro p { color: var(--public-muted); }
.return-message { margin-top: 1.5rem; font-weight: 750; } .text-link { display: inline-block; min-height: 44px; padding: .65rem 0; color: var(--public-accent); font-weight: 750; }
.public-footer { flex: 0 0 auto; border-top: 1px solid var(--public-border); background: var(--public-surface); }
.public-footer > div { display: flex; align-items: center; width: min(100% - 2rem,1160px); min-height: 90px; margin: auto; gap: .7rem; color: var(--public-muted); font-size: .78rem; }
.public-footer img { width: 34px; height: 42px; object-fit: cover; object-position: top; border-radius: 5px; opacity: .75; }
.public-footer p { margin-right: auto; } .public-footer a { min-height: 44px; display: grid; place-items: center; }
.matches-intro { margin-bottom: 1.25rem; } .matches-intro h1 { margin-bottom: .35rem; } .matches-intro p:last-child { color: var(--public-muted); }
.status-tabs { display: grid; grid-template-columns: repeat(3,1fr); gap: .4rem; margin-bottom: 1rem; padding: .3rem; border: 1px solid var(--public-border); border-radius: 13px; background: var(--public-surface); }
.status-tabs a { min-height: 44px; display: grid; place-items: center; border-radius: 9px; color: var(--public-muted); font-weight: 750; text-decoration: none; }
.status-tabs a[aria-current="page"] { color: var(--public-on-accent); background: var(--public-accent); }
.date-shortcuts { display: flex; gap: .45rem; margin: 0 0 1rem; overflow-x: auto; padding-bottom: .2rem; scrollbar-width: none; -ms-overflow-style: none; }
.date-shortcuts::-webkit-scrollbar { display: none; }
.date-shortcuts a { flex: 0 0 auto; min-height: 40px; display: grid; place-items: center; padding: .45rem .7rem; border: 1px solid var(--public-border); border-radius: 999px; background: var(--public-surface); color: var(--public-muted); font-size: .78rem; font-weight: 700; text-decoration: none; }
.date-shortcuts a[aria-current="page"] { border-color: var(--public-accent); color: var(--public-accent); }
.public-filters { margin-bottom: 1.5rem; border: 1px solid var(--public-border); border-radius: 14px; background: var(--public-surface); }
.public-filters summary { min-height: 48px; display: flex; align-items: center; padding: .7rem 1rem; cursor: pointer; font-weight: 800; }
.public-filters form { padding: 0 1rem 1rem; } .filter-grid { display: grid; gap: .75rem; }
.filter-grid label { color: var(--public-muted); font-size: .82rem; font-weight: 700; }
.filter-grid select, .filter-grid input { width: 100%; min-height: 44px; margin-top: .25rem; padding: .55rem .65rem; border: 1px solid var(--public-border); border-radius: 9px; background: var(--public-bg); color: var(--public-text); font: inherit; }
.filter-actions { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; }
.filter-actions button { min-height: 44px; padding: .6rem 1rem; border: 0; border-radius: 9px; color: var(--public-on-accent); background: var(--public-accent); font: inherit; font-weight: 800; cursor: pointer; }
.filter-actions a { min-height: 44px; display: grid; place-items: center; color: var(--public-accent); font-weight: 750; }
.public-match-list { display: grid; gap: .8rem; } .match-date-heading { margin: 1.3rem 0 .1rem; font-size: 1.15rem; }
.public-team-list { margin: 0; padding: 0; list-style: none; counter-reset: public-teams; border: 1px solid var(--public-border); border-radius: 12px; overflow: hidden; background: var(--public-bg); }
.public-team-list li { counter-increment: public-teams; display: grid; grid-template-columns: 2.25rem minmax(0,1fr); align-items: center; min-height: 54px; padding: .7rem 1rem; border-bottom: 1px solid var(--public-border); font-weight: 750; }
.public-team-list li:last-child { border-bottom: 0; } .public-team-list li::before { content: counter(public-teams) "."; color: var(--public-muted); font-variant-numeric: tabular-nums; }
.public-team-count { display: inline-flex; gap: .35rem; margin: 0 0 .75rem; padding: .45rem .7rem; border: 1px solid var(--public-border); border-radius: 999px; background: var(--public-surface); color: var(--public-muted); }
.ranking-picker { margin-bottom: 1.2rem; }.ranking-picker h2 { margin: 0 0 .45rem; font-size: 1rem; }.ranking-filter { margin: 0; }
.ranking-filter label { display: block; margin-bottom: .3rem; color: var(--public-muted); font-size: .8rem; font-weight: 750; }
.ranking-filter select { width: 100%; min-height: 48px; padding: .6rem .75rem; border: 1px solid var(--public-border); border-radius: 10px; background: var(--public-surface); color: var(--public-text); font: inherit; font-weight: 750; }
.ranking-table-wrap { overflow: hidden; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-bg); }
.public-ranking-table { width: 100%; border-collapse: collapse; } .public-ranking-table th,.public-ranking-table td { padding: .75rem .65rem; border-bottom: 1px solid var(--public-border); text-align: center; vertical-align: top; }
.public-ranking-table th { color: var(--public-muted); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; } .public-ranking-table th:nth-child(2),.public-ranking-table td:nth-child(2) { text-align: left; }
.public-ranking-table tbody tr:last-child td { border-bottom: 0; } .public-ranking-table tr.is-qualified { background: var(--public-success-soft); } .public-ranking-table tr.is-intermediate { background: var(--public-highlight-soft); }
.public-ranking-table tr.is-champion { background: var(--public-accent-soft); }.champion-cup { margin-left: .2rem; font-size: .95em; }.public-intermediate-table th.team-column,.public-intermediate-table td.team-column { text-align: left; }
.ranking-details { margin-top: .15rem; color: var(--public-muted); font-size: .76rem; font-weight: 400; } .ranking-details summary { width: max-content; min-width: 44px; min-height: 44px; display: flex; align-items: center; color: var(--public-accent); cursor: pointer; font-weight: 750; }
.ranking-details dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .25rem .75rem; max-width: 360px; margin: .2rem 0 0; } .ranking-details dl div { display: flex; justify-content: space-between; gap: .5rem; } .ranking-details dt,.ranking-details dd { margin: 0; }
.ranking-note { margin: .8rem 0 0; color: var(--public-muted); font-size: .8rem; }.ranking-legend { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.ranking-legend span { padding: .3rem .55rem; border-radius: 8px; font-size: .76rem; font-weight: 700; }.ranking-legend .is-qualified { background: var(--public-success-soft); }.ranking-legend .is-intermediate { background: var(--public-highlight-soft); }
.ranking-schedule { margin-top: 2.2rem; }.ranking-schedule > h2 { margin-bottom: .4rem; }.ranking-group-heading { margin: 1.4rem 0 .2rem; font-size: 1.25rem; }.ranking-schedule-empty { margin-top: 1.5rem; }.public-final-table td:first-child { width: 70px; }.public-final-table td:last-child { width: 110px; }
.public-stat-section { margin-top: 2.2rem; }.public-stat-section > h2 { margin: 0 0 .8rem; font-size: 1.2rem; }.public-stats-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }.public-stat-card { display: flex; min-width: 0; min-height: 112px; flex-direction: column; justify-content: space-between; gap: .75rem; padding: 1rem; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-surface); }.public-stat-card span { color: var(--public-muted); font-size: .78rem; font-weight: 750; line-height: 1.35; }.public-stat-card strong { color: var(--public-accent); font-size: 1.75rem; line-height: 1; }.schedule-day-grid { display: grid; gap: .8rem; }.schedule-day-card { overflow: hidden; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-surface); }.schedule-day-card > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border-bottom: 1px solid var(--public-border); background: var(--public-surface-alt); }.schedule-day-card time { font-weight: 800; }.schedule-day-card > header strong { flex: 0 0 auto; color: var(--public-accent); font-size: .78rem; }.schedule-day-card > p { margin: 0; padding: .9rem 1rem; color: var(--public-muted); font-size: .8rem; }.team-goal-list { display: grid; }.team-goal-list > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-width: 0; padding: .75rem 1rem; border-bottom: 1px solid var(--public-border); }.team-goal-list > div:last-child { border-bottom: 0; }.team-goal-list strong { min-width: 0; overflow-wrap: anywhere; }.team-goal-list span { flex: 0 0 auto; color: var(--public-muted); font-size: .8rem; font-weight: 750; }.top-scoring-teams { overflow: hidden; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-accent-soft); }.public-scorers-table th:nth-child(3),.public-scorers-table td:nth-child(3) { text-align: left; }.public-scorers-table tr.is-top-scorer { font-weight: 800; background: var(--public-accent-soft); }.scorer-goals { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; font-weight: 800; }.golden-boot { display: inline-grid; width: 1.65rem; height: 1.65rem; place-items: center; border-radius: 50%; background: var(--public-surface-alt); color: var(--public-secondary); font-size: .9rem; line-height: 1; }.discipline-totals { margin-bottom: 1rem; }.fair-play-list { display: grid; gap: .75rem; }.fair-play-list details { overflow: hidden; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-surface); }.fair-play-list summary { display: flex; justify-content: space-between; gap: 1rem; min-height: 56px; align-items: center; padding: .85rem 1rem; cursor: pointer; }.fair-play-list summary strong { min-width: 0; overflow-wrap: anywhere; }.fair-play-list summary span { flex: 0 0 auto; color: var(--public-muted); font-size: .78rem; font-weight: 750; }.fair-play-players { display: grid; gap: .6rem; padding: 0 1rem 1rem; }.fair-play-players article { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .75rem; border: 1px solid var(--public-border); border-radius: 10px; background: var(--public-bg); }.fair-play-players article > strong { flex: 0 0 auto; }.card-counts { display: grid; justify-items: end; gap: .35rem; }.card-counts > span { white-space: nowrap; }.privacy-page { max-width: 760px; margin: 0 auto; }.privacy-page > h1 { margin-top: .1rem; }.privacy-card { padding: 1.2rem; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-surface); }.privacy-card h2 { margin-top: 0; font-size: 1.2rem; }.privacy-card li + li { margin-top: .45rem; }
.public-match-card { overflow: hidden; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-bg); }
.match-card-head { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--public-border); color: var(--public-muted); font-size: .78rem; }
.match-card-head > div { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; } .match-card-head > div:last-child { justify-content: flex-end; text-align: right; }
.status-badge { padding: .2rem .45rem; border-radius: 999px; font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.status-badge.is-upcoming { color: var(--public-secondary); background: var(--public-highlight-soft); } .status-badge.is-finished { color: var(--public-success); background: var(--public-success-soft); }
.match-scoreboard { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: .55rem; align-items: start; padding: 1rem; }
.match-team { min-width: 0; } .match-team.is-away { text-align: right; }
.score-block { display: grid; justify-items: center; min-width: 70px; text-align: center; } .score-block > b { font-size: 1.35rem; white-space: nowrap; }
.score-block small { max-width: 120px; color: var(--public-muted); font-size: .68rem; }
.event-line { display: flex; flex-wrap: wrap; gap: .2rem .35rem; margin: .45rem 0 0; color: var(--public-muted); font-size: .78rem; }
.match-team.is-away .event-line { justify-content: flex-end; } .event-line b { color: var(--public-text); }
.goal-stat-block { margin-top: .8rem; }.goal-stat-block > h3 { margin: 0 0 .55rem; font-size: .92rem; }.goal-stat-total { display: block; padding: 1rem; border: 1px solid var(--public-border); border-radius: 12px; background: var(--public-accent-soft); color: var(--public-accent); font-size: 1.75rem; }
:focus-visible { outline: 3px solid var(--public-highlight); outline-offset: 3px; }
@media (hover:hover) { a:hover { color: var(--public-accent-hover); } .primary-link:hover { border-color: var(--public-accent-hover); } }
@media (min-width: 760px) { .public-main { padding-top: 2.4rem; } .edition-hero { grid-template-columns: 1fr 230px; padding: 2.5rem 3rem; } .edition-hero img { display: block; align-self: center; max-height: 245px; justify-self: end; } .quick-grid { grid-template-columns: repeat(4,minmax(0,1fr)); } .home-columns { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.4rem; } .filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .public-stats-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.schedule-day-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 980px) { .nav-menu { display: none; } .desktop-nav { display: flex; align-items: center; gap: .1rem; } .desktop-nav a { min-height: 44px; display: grid; place-items: center; padding: .65rem .7rem; border-radius: 9px; color: var(--public-muted); font-size: .88rem; font-weight: 700; text-decoration: none; } .desktop-nav a[aria-current="page"] { color: var(--public-accent); background: var(--public-accent-soft); } }
@media (max-width: 480px) { .match-scoreboard { grid-template-columns: repeat(2,minmax(0,1fr)); } .score-block { grid-column: 1 / -1; grid-row: 1; } }
@media (max-width: 480px) { .public-ranking-table th,.public-ranking-table td { padding: .65rem .4rem; font-size: .82rem; }.public-ranking-table th { font-size: .65rem; }.ranking-details dl { grid-template-columns: 1fr; }.public-final-table td:last-child { width: auto; } }
@media (max-width: 359px) { .public-brand strong { max-width: 145px; } .quick-grid { grid-template-columns: 1fr; } .public-footer > div { flex-wrap: wrap; padding: .7rem 0; } .match-scoreboard { grid-template-columns: 1fr; } .match-team,.match-team.is-away { text-align: left; } .match-team.is-away .event-line { justify-content: flex-start; } .score-block { order: -1; } }
