:root{color:#171717;background:#f3f3f0;font-family:Trebuchet MS,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--yellow: #f5c400;--yellow-dark: #8f7200;--black: #171717;--muted: #656565;--line: #d9d9d4;--surface: #ffffff;--background: #f3f3f0}*{box-sizing:border-box}html{min-width:320px;background:var(--background)}body{margin:0;min-width:320px;min-height:100vh}button,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.app-shell{display:flex;min-height:100vh;flex-direction:column}.site-header{background:var(--black);border-bottom:4px solid var(--yellow)}.site-header__inner{display:flex;width:min(1180px,calc(100% - 40px));min-height:104px;margin:0 auto;align-items:center;justify-content:space-between;gap:32px}.brand{display:block;width:min(360px,55vw)}.brand img{display:block;width:100%;height:auto}.season-select{display:grid;gap:6px;color:#fff;font-size:.78rem;font-weight:700}.season-select span{text-transform:uppercase}.season-select select{min-width:138px;border:1px solid #5c5c5c;border-radius:4px;background:#fff;color:var(--black);padding:10px 34px 10px 12px}.page-content{width:min(1180px,calc(100% - 40px));margin:0 auto;flex:1;padding:32px 0 56px}.league-navigation{display:flex;overflow-x:auto;border-bottom:1px solid var(--line)}.league-navigation__button{flex:1 0 150px;border:0;border-bottom:4px solid transparent;background:transparent;color:var(--muted);padding:16px 22px 13px;font-weight:700}.league-navigation__button:hover{color:var(--black)}.league-navigation__button--active{border-bottom-color:var(--yellow);color:var(--black)}.view-tabs{display:flex;gap:8px;margin:28px 0 16px}.view-tabs__button{min-width:124px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--muted);padding:10px 18px;font-weight:700}.view-tabs__button--active{border-color:var(--black);background:var(--black);color:#fff}.content-panel{min-height:300px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:26px 28px 22px}.section-heading h1{margin:2px 0 0;font-size:1.7rem;line-height:1.2}.section-heading__eyebrow{margin:0;color:var(--yellow-dark);font-size:.82rem;font-weight:700}.section-heading__label{color:var(--muted);font-size:.9rem}.table-scroll{overflow-x:auto}.standings-table{width:100%;min-width:720px;border-collapse:collapse}.standings-table th,.standings-table td{border-bottom:1px solid #e7e7e3;padding:16px 18px;text-align:right}.standings-table thead th{background:#f7f7f4;color:#535353;font-size:.76rem;text-transform:uppercase}.standings-table th:nth-child(2),.standings-table td:nth-child(2){text-align:left}.standings-table tbody tr:last-child>*{border-bottom:0}.standings-table__rank{width:84px;font-size:1.05rem;font-weight:800}.standings-table__points{font-weight:800}.matchday-list{display:grid;gap:28px;padding:28px}.matchday{border-top:3px solid var(--black)}.matchday__heading{display:flex;align-items:baseline;gap:8px;margin:0;padding:14px 0 10px;font-size:1.05rem}.matchday__heading time{color:var(--muted);font-size:.9rem}.matchday__matches{border:1px solid var(--line);border-radius:4px;overflow:hidden}.match-row{display:flex;min-height:58px;border-bottom:1px solid var(--line);background:#fff}.match-row:last-child{border-bottom:0}.match-row__main{display:grid;min-width:0;flex:1;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;border:0;background:transparent;color:var(--black);padding:13px 16px;text-align:left}.match-row__main:hover{background:#f7f7f4}.match-row__teams{display:flex;min-width:0;align-items:baseline;gap:9px}.match-row__teams strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-row__moved{color:var(--yellow-dark);font-size:.78rem;font-weight:700}.match-row__status{color:var(--muted);font-size:.84rem;font-weight:700}.match-row__status--released{color:var(--black);font-size:1rem}.match-row__pdf{display:grid;width:62px;place-items:center;border-left:1px solid var(--line);color:var(--black);font-size:.78rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}.match-row__pdf:hover{background:var(--yellow)}.match-detail{padding:28px}.match-detail__back{border:0;background:transparent;color:var(--black);padding:5px 0;font-weight:800;text-decoration:underline;text-underline-offset:4px}.match-detail__heading{border-bottom:1px solid var(--line);padding:24px 0 20px}.match-detail__heading p{margin:0 0 5px;color:var(--yellow-dark);font-size:.82rem;font-weight:800}.match-detail__heading h1{margin:0;font-size:1.65rem}.match-detail__facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0;padding:22px 0}.match-detail__facts div{min-width:0}.match-detail__facts dt{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.match-detail__facts dd{margin:5px 0 0;overflow-wrap:anywhere;font-weight:700}.detail-result{border-top:3px solid var(--black);padding-top:16px}.detail-result h2{margin:0 0 12px;font-size:1.1rem}.detail-result__table{max-width:590px;border:1px solid var(--line)}.detail-result__row{display:grid;grid-template-columns:minmax(130px,1.5fr) repeat(2,minmax(90px,1fr))}.detail-result__row>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 14px;text-align:right}.detail-result__row>:first-child{text-align:left}.detail-result__row>:last-child{border-right:0}.detail-result__row:last-child>*{border-bottom:0}.detail-result__head{background:#f7f7f4;color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.detail-result__points{background:#fff9dc}.match-detail__pdf{display:inline-block;border-radius:4px;margin-top:22px;background:var(--yellow);color:var(--black);padding:11px 16px;font-weight:800;text-decoration:none}.match-detail__pending{border-left:4px solid var(--yellow);margin-top:12px;background:#f7f7f4;padding:18px;font-weight:800}.empty-state{padding:48px 28px;color:var(--muted);text-align:center}.empty-state--compact{border:1px solid var(--line);padding:24px}.page-state{display:grid;min-height:298px;place-content:center;justify-items:center;padding:32px;text-align:center}.page-state h2{margin:14px 0 6px;font-size:1.2rem}.page-state p{max-width:560px;margin:0;color:var(--muted)}.page-state button{border:0;border-radius:4px;margin-top:20px;background:var(--yellow);color:var(--black);padding:10px 16px;font-weight:800}.loading-indicator{width:28px;height:28px;border:4px solid #ddd;border-top-color:var(--yellow-dark);border-radius:50%}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.site-footer__inner{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:22px 0}@media (max-width: 700px){.site-header__inner{width:calc(100% - 28px);min-height:92px;gap:18px}.brand{width:min(250px,52vw)}.season-select select{min-width:112px;padding:9px 28px 9px 10px}.page-content{width:calc(100% - 28px);padding:20px 0 40px}.league-navigation{overflow:visible}.league-navigation__button{min-width:0;flex-basis:0;padding-inline:6px;font-size:.84rem}.view-tabs{margin-top:20px}.view-tabs__button{flex:1;min-width:0}.section-heading{align-items:flex-start;padding:22px 18px 18px}.section-heading h1{font-size:1.35rem}.matchday-list{gap:22px;padding:18px}.match-row__main{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px}.match-row__teams{align-items:flex-start;flex-direction:column;gap:2px}.match-row__teams strong{width:100%;white-space:normal}.match-row__moved{grid-column:1}.match-row__status{grid-column:2;grid-row:1 / span 2}.match-row__pdf{width:50px}.match-detail{padding:20px 18px}.match-detail__heading h1{font-size:1.35rem}.match-detail__facts{grid-template-columns:1fr 1fr;gap:18px 14px}.site-footer__inner{width:calc(100% - 28px)}}@media (max-width: 430px){.site-header__inner{min-height:136px;align-items:flex-start;flex-direction:column;justify-content:center}.brand{width:min(300px,100%)}.season-select,.season-select select{width:100%}.section-heading{flex-direction:column;gap:8px}}
