@font-face { font-family: Signika; src: url('../assets/Signika-Regular-webfont.woff') format('woff'); font-weight: 400; font-display: swap; }
/* Keep the outer iframe height when a different season has more rows. */
body.season-switchable { height:100vh; overflow:hidden; }
body.season-switchable .embed-shell { display:flex; flex-direction:column; height:100%; min-height:0; overflow:hidden; }
body.season-switchable .embed-heading { flex:0 0 auto; margin-bottom:6px; }
body.season-switchable .embed-shell > section { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; overflow:hidden; }
body.season-switchable .standings-wrap { min-height:0; overflow:auto; }
body.season-switchable .table-legend, body.season-switchable .fixtures-toolbar { flex:0 0 auto; }
body.season-switchable .fixtures-list { min-height:0; overflow-y:auto; flex-shrink:1; }
body.season-switchable.combined-embed .fixtures-list { max-height:none; }
@font-face { font-family: Signika; src: url('../assets/Signika-Bold-webfont.woff') format('woff'); font-weight: 700; font-display: swap; }
:root { color-scheme: light; --accent:#b8312f; --accent-dark:#8e2523; --ink:#292929; --muted:#686864; --line:#dededb; --page:#f3f3f1; --surface:#fff; --promotion:#2f7350; --promotion-soft:#e5f2ea; --relegation:#9e2d2a; --relegation-soft:#f8e5e3; --rank-width:74px; --club-width:326px; }
* { box-sizing:border-box; } html { background:transparent; } body { margin:0; background:var(--page); color:var(--ink); font:14px/1.35 Signika,Arial,sans-serif; } button,a,select { font:inherit; } [hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.season-picker { display:block; margin:0 0 3px; }
.season-picker select { max-width:100%; min-height:26px; padding:2px 5px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--accent-dark); font-size:12px; font-weight:700; cursor:pointer; }
.season-picker select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.standings-team-button { width:100%; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.standings-team-button:hover .club-name { color:var(--accent-dark); text-decoration:underline; text-underline-offset:3px; }
.standings-team-button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:3px; }
.fixture-team-button { padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.fixture-team-button:hover .fixture-team-name { color:var(--accent-dark); text-decoration:underline; text-underline-offset:3px; }
.fixture-team-button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:3px; }
.embed-shell { width:100%; padding:16px; } .embed-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; } .embed-kicker { margin:0 0 2px; color:var(--accent); font-size:10.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; } .embed-heading h1 { margin:0; font-size:clamp(22px,3vw,30px); line-height:1.08; } .embed-subtitle { margin:3px 0 0; color:var(--muted); font-size:14px; } .embed-heading-side { display:grid; flex:0 0 auto; justify-items:end; gap:7px; } .source-meta { margin:0; color:var(--muted); font-size:11px; text-align:right; } .source-meta span { display:block; } .source-meta a { color:var(--accent-dark); font-weight:700; }
.combined-switch { display:flex; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; } .combined-switch button { min-height:32px; padding:5px 11px; border:0; border-left:1px solid var(--line); background:#fff; color:var(--muted); cursor:pointer; font-size:11.5px; font-weight:700; } .combined-switch button:first-child { border-left:0; } .combined-switch button.active { background:var(--accent); color:#fff; } .combined-embed { height:100vh; overflow:hidden; } .combined-embed .embed-shell { height:100%; overflow:hidden; }
.standings-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:0 10px 28px rgb(0 0 0 / 6%); overscroll-behavior-inline:contain; scrollbar-color:#bdbdb8 #efefec; scrollbar-width:thin; }
.standings-table { width:100%; min-width:1060px; border-collapse:separate; border-spacing:0; table-layout:fixed; } .standings-table th,.standings-table td { height:54px; padding:8px 11px; border-bottom:1px solid var(--line); background:var(--surface); vertical-align:middle; } .standings-table tr:last-child td { border-bottom:0; } .standings-table th { height:42px; background:#f7f7f5; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.04em; text-align:right; text-transform:uppercase; } .standings-table th.rank-column,.standings-table th.club-column { text-align:left; } .standings-table td.numeric { font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; } .standings-table .rank-column { position:sticky; z-index:4; left:0; width:var(--rank-width); min-width:var(--rank-width); } .standings-table .club-column { position:sticky; z-index:3; left:var(--rank-width); width:var(--club-width); min-width:var(--club-width); box-shadow:9px 0 13px -13px rgb(0 0 0 / 50%); } .standings-table thead .rank-column,.standings-table thead .club-column { z-index:6; } .standings-table .games-column { width:112px; } .standings-table .wide-column { width:118px; } .standings-table .short-column { width:72px; }
.rank-cell { display:flex; align-items:center; gap:6px; font-size:17px; font-weight:700; } .rank-status { display:grid; width:19px; height:19px; place-items:center; border-radius:50%; font-size:12px; font-weight:700; } .rank-status.promotion { background:var(--promotion-soft); color:var(--promotion); } .rank-status.relegation { background:var(--relegation-soft); color:var(--relegation); } .rank-placeholder { width:19px; height:19px; }
.club-cell { display:flex; min-width:0; align-items:center; gap:10px; } .club-logo,.club-initials { display:grid; width:32px; height:32px; flex:0 0 32px; place-items:center; border-radius:50%; background:#f0f0ed; color:#585854; font-size:9px; font-weight:700; } .club-logo { border-radius:0; background:transparent; } .club-logo img { width:100%; height:100%; object-fit:contain; } .club-name { display:-webkit-box; min-width:0; overflow:hidden; font-size:15px; font-weight:700; -webkit-box-orient:vertical; -webkit-line-clamp:2; } .club-name-mobile { display:none; } .standings-table tr.tcr-row td { background:#fff5f4; } .standings-table tr.tcr-row .rank-column { box-shadow:inset 4px 0 0 var(--accent); } .standings-table tr.tcr-row .club-name { color:var(--accent-dark); }
.table-legend { display:flex; flex-wrap:wrap; gap:10px 16px; margin:10px 4px 0; color:var(--muted); font-size:11.5px; } .table-legend span { display:inline-flex; align-items:center; gap:6px; } .legend-dot { width:9px; height:9px; border-radius:50%; } .legend-dot.promotion { background:var(--promotion); } .legend-dot.relegation { background:var(--relegation); } .swipe-hint { display:none; margin:9px 3px 0; color:var(--muted); font-size:11.5px; text-align:right; }
.fixtures-toolbar { display:flex; align-items:end; justify-content:space-between; gap:14px; margin:0 0 10px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); } .fixtures-filters { display:grid; flex:1 1 620px; max-width:620px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .fixture-filter { display:grid; min-width:0; gap:5px; } .fixture-filter span { color:var(--muted); font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; } .fixture-filter select { width:100%; min-height:39px; padding:7px 36px 7px 10px; border:1px solid #cfcfca; border-radius:9px; background:#fff; color:var(--ink); font-weight:700; } .fixtures-summary { margin:0 0 2px; color:var(--muted); font-size:12px; text-align:right; } .fixtures-summary strong { display:block; color:var(--ink); font-size:14px; }
.fixtures-list { overflow:visible; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:0 10px 28px rgb(0 0 0 / 6%); } .fixtures-list.is-club-view { max-height:var(--fixture-list-max-height); overflow-y:auto; overscroll-behavior-y:contain; } .fixture-row { position:relative; display:grid; height:82px; min-height:82px; grid-template-columns:170px minmax(0,1fr) 86px; align-items:center; gap:12px; padding:8px 8px 8px 14px; border-bottom:1px solid var(--line); background:var(--surface); } .fixture-row:last-child { border-bottom:0; } .fixture-row.is-tcr { box-shadow:inset 4px 0 0 var(--accent); } .fixture-meta { display:grid; gap:3px; } .fixture-kind { width:max-content; padding:2px 7px; border-radius:999px; background:#efefec; color:var(--muted); font-size:10.5px; font-weight:700; } .fixture-meta time { color:var(--muted); } .fixture-meta time strong { color:var(--ink); font-size:15px; } .fixture-match { display:grid; min-width:0; grid-template-columns:minmax(0,1fr) 60px minmax(0,1fr); align-items:center; gap:10px; } .fixture-team { display:flex; min-width:0; align-items:center; gap:8px; } .fixture-team.home { justify-content:flex-end; text-align:right; } .fixture-team.away { justify-content:flex-start; } .fixture-team.home .club-logo,.fixture-team.home .club-initials { order:2; } .fixture-team-name { display:-webkit-box; overflow:hidden; font-size:15px; font-weight:700; -webkit-box-orient:vertical; -webkit-line-clamp:2; } .fixture-score { font-size:23px; font-variant-numeric:tabular-nums; text-align:center; white-space:nowrap; } .fixture-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.combined-embed .fixtures-list,.combined-embed .fixtures-list.is-club-view { max-height:max(220px,calc(100vh - 240px)); overflow-y:auto; overscroll-behavior-y:contain; }
.fixture-team-name { min-width:0; } .action-link { display:grid; width:38px; height:38px; padding:0; place-items:center; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--muted); cursor:pointer; text-decoration:none; } .action-link.news { order:1; border-color:var(--accent); background:var(--accent); color:#fff; } .action-link.document { order:2; } .action-link:hover { border-color:var(--accent); color:var(--accent); } .action-link.news:hover { background:var(--accent-dark); color:#fff; } .action-link svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
.empty-public { padding:24px; border:1px solid var(--line); border-radius:14px; background:#fff; } .empty-public h1 { margin:0; } .empty-public p { margin:5px 0 0; color:var(--muted); }
@media (max-width:700px) { :root { --rank-width:48px; --club-width:150px; } .embed-shell { padding:10px 8px; } .embed-heading { display:block; } .embed-heading h1 { font-size:23px; } .embed-subtitle { display:none; } .embed-heading-side { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:7px; margin-top:7px; } .source-meta { display:flex; flex:1 1 150px; flex-wrap:wrap; justify-content:space-between; gap:3px 8px; text-align:left; } .combined-switch { flex:0 0 auto; } .combined-switch button { min-height:30px; padding:4px 8px; font-size:10.5px; } .standings-table { min-width:810px; } .standings-table th,.standings-table td { height:52px; padding:7px 6px; } .standings-table th { height:40px; font-size:10px; } .standings-table .short-column { width:58px; } .rank-cell { gap:3px; font-size:15px; } .rank-status { width:16px; height:16px; font-size:10px; } .rank-placeholder { width:16px; } .club-cell { gap:5px; } .club-logo,.club-initials { width:26px; height:26px; flex-basis:26px; font-size:8px; } .club-logo img { width:100%; height:100%; } .club-name { display:block; overflow:hidden; font-size:12.5px; text-overflow:ellipsis; white-space:nowrap; } .standings-table .club-name-full { display:none; } .standings-table .club-name-mobile { display:inline; } .fixtures-toolbar { display:grid; gap:6px; margin-bottom:8px; padding:8px; } .fixtures-filters { width:100%; max-width:none; gap:6px; } .fixture-filter select { min-height:36px; padding-top:5px; padding-bottom:5px; } .fixtures-summary { display:none; } .fixtures-list { display:grid; gap:8px; overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; } .fixtures-list.is-club-view { max-height:var(--fixture-list-mobile-max-height); overflow-y:auto; padding-right:3px; } .combined-embed .fixtures-list,.combined-embed .fixtures-list.is-club-view { max-height:max(220px,calc(100vh - 250px)); overflow-y:auto; } .fixture-row { height:112px; min-height:112px; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:'meta actions' 'match match'; align-items:start; gap:7px 6px; padding:8px; border:1px solid var(--line); border-radius:14px; box-shadow:0 8px 22px rgb(0 0 0 / 5%); } .fixture-row.is-tcr { box-shadow:inset 4px 0 0 var(--accent),0 8px 22px rgb(0 0 0 / 5%); } .fixture-meta { grid-area:meta; display:flex; min-width:0; flex-wrap:wrap; align-items:center; gap:4px 6px; } .fixture-meta time br { display:none; } .fixture-meta time strong { margin-left:3px; font-size:13px; } .fixture-actions { grid-area:actions; } .fixture-match { grid-area:match; grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr); align-items:center; gap:3px; } .fixture-team { display:flex; min-width:0; width:100%; align-items:center; gap:4px; } .fixture-team.home { justify-content:flex-end; text-align:right; } .fixture-team.away { justify-content:flex-start; text-align:left; } .fixture-team.home .club-logo,.fixture-team.home .club-initials { order:2; } .fixture-team-name { display:block; min-width:0; overflow:hidden; font-size:12.5px; line-height:27px; text-overflow:ellipsis; white-space:nowrap; } .fixture-team-name .club-name-full { display:none; } .fixture-team-name .club-name-mobile { display:inline; } .fixture-score { font-size:18px; line-height:27px; } .fixture-match .club-logo,.fixture-match .club-initials { width:27px; height:27px; flex-basis:27px; font-size:7px; } .fixture-match .club-logo img { width:100%; height:100%; } .action-link { width:34px; height:34px; } .action-link svg { width:16px; height:16px; } }
