.football-page{min-height:100vh;display:flex;flex-direction:column}.page-header{display:flex;align-items:center;gap:24px;padding:12px 24px;border-bottom:1px solid var(--border)}.page-header .logo{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:var(--text);text-decoration:none}.page-header .logo span{color:var(--accent)}.nav-links{display:flex;gap:16px}.nav-links a{font-size:.875rem;color:var(--text-muted);text-decoration:none}.nav-links a.active{color:var(--accent);font-weight:500}.page-main{flex:1 1;padding:24px;max-width:1200px;margin:0 auto;width:100%}.page-main h1{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.subtitle{margin-bottom:1.5rem}.empty,.subtitle{font-size:.9375rem;color:var(--text-mid)}.empty{margin-top:2rem}.league-section{margin-bottom:2rem}.league-name{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:var(--text)}.odds-table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.odds-table{width:100%;border-collapse:collapse;font-size:.8125rem}.odds-table th{text-align:center;padding:10px 8px;font-weight:500;font-size:.75rem;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.odds-table th.match-col{text-align:left;min-width:200px;padding-left:12px}.odds-table td{border-bottom:1px solid var(--border)}.odds-table tbody tr:last-child td{border-bottom:none}.odds-table tbody tr:hover{background:var(--accent-light)}.match-cell{padding:10px 12px}.match-link{text-decoration:none;display:flex;flex-direction:column;gap:2px}.teams{font-size:.875rem;font-weight:500;color:var(--text)}.kickoff{font-size:.75rem;color:var(--text-muted)}.odds-cell{padding:6px 4px;text-align:center}.odds-trio{display:flex;gap:2px;justify-content:center}.price{display:inline-block;padding:4px 6px;border-radius:4px;font-weight:500;color:var(--accent);cursor:pointer;font-size:.8125rem;min-width:40px;text-align:center}.price:hover{background:var(--accent-light)}.price.best{background:#e8f5ee;color:#1a6b3c;font-weight:600}.no-odds,.page-footer{color:var(--text-muted)}.page-footer{text-align:center;padding:1.5rem;border-top:1px solid var(--border);font-size:.75rem;line-height:1.8}.page-footer a{color:var(--text-mid);text-decoration:none}.page-footer a:hover{text-decoration:underline}.eighteen{display:inline-block;width:22px;height:22px;line-height:22px;border-radius:50%;background:var(--text-muted);color:#fff;font-size:10px;font-weight:700;vertical-align:middle;margin-right:.25rem}.match-header{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px;text-align:center;margin-bottom:1.5rem}.match-teams{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:8px}.team-name{font-size:1.25rem;font-weight:600}.vs{font-size:.875rem;color:var(--text-muted)}.match-meta{font-size:.8125rem;color:var(--text-mid)}.breadcrumb{font-size:.8125rem;color:var(--text-muted);margin-bottom:16px}.breadcrumb a{color:var(--accent);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.section-title{font-size:1rem;font-weight:600;margin:1.5rem 0 .75rem}.full-odds-table{width:100%;border-collapse:collapse;font-size:.875rem;border:1px solid var(--border);border-radius:8px;overflow:hidden}.full-odds-table th{text-align:left;padding:10px 14px;font-weight:500;font-size:.8125rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.full-odds-table th:not(:first-child){text-align:center}.full-odds-table td{padding:10px 14px;border-bottom:1px solid var(--border)}.full-odds-table tbody tr:last-child td{border-bottom:none}.full-odds-table tbody tr:hover{background:var(--accent-light)}.bookie-name{font-weight:500;gap:8px}.bookie-initial,.bookie-name{display:flex;align-items:center}.bookie-initial{width:24px;height:24px;border-radius:4px;background:var(--bg);border:1px solid var(--border);justify-content:center;font-size:.6875rem;color:var(--text-muted);flex-shrink:0}.match-price{text-align:center;font-weight:500;color:var(--accent);padding:4px 10px;border-radius:4px;cursor:pointer;display:inline-block;min-width:56px}.match-price:hover{background:var(--accent-light)}.match-price.best{background:#e8f5ee;color:#1a6b3c;font-weight:600}.best-row td{font-weight:600;color:#1a6b3c;background:#f5faf7}.league-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin-top:1.5rem}.league-card{display:block;position:relative;padding:1.5rem;background:var(--card);border:1px solid var(--border);border-radius:12px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.league-card:hover{border-color:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.06)}.league-card h2{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.league-card p{font-size:.8125rem;color:var(--text-mid)}.badge-soon{position:absolute;top:12px;right:12px;font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.coming-soon{text-align:center;padding:3rem 1.5rem;max-width:480px;margin:2rem auto;background:var(--card);border:1px solid var(--border);border-radius:12px}.coming-soon h2{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.coming-soon p{font-size:.9375rem;color:var(--text-mid);line-height:1.6;margin-bottom:1.5rem}.back-link{display:inline-block;font-size:.875rem;color:var(--accent);text-decoration:none;font-weight:500}.back-link:hover{text-decoration:underline}.nav-links{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}@media (max-width:768px){.page-main{padding:16px}.page-header{padding:12px 16px;flex-wrap:wrap}.nav-links{gap:12px;font-size:.8125rem}.match-teams{gap:12px}.team-name{font-size:1.125rem}}