:root{--accent:#d7192d;--ink:#101722;--muted:#687383;--paper:#fff;--soft:#f3f5f8;--line:#e5e9ef;--radius:10px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Source Sans 3",Arial,Helvetica,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}.container{width:min(1180px,calc(100% - 36px));margin-inline:auto}.topbar{background:#0b111a;color:#aeb8c5;font-size:12px}.topbar .container{height:34px;display:flex;align-items:center;justify-content:space-between}.topbar-tag{color:#fff;font-weight:800}.branding-row{display:flex;min-height:118px;align-items:center;justify-content:space-between;gap:24px}.text-logo{font-size:31px;font-weight:900;letter-spacing:-1.5px;text-transform:uppercase}.custom-logo{max-height:72px;width:auto}.header-ad{width:min(728px,62%);height:74px;background:var(--soft);color:#9aa3af;display:grid;place-items:center;font-size:12px;font-weight:800}.main-nav{background:var(--ink);color:#fff;border-bottom:4px solid var(--accent)}.nav-inner{display:flex;justify-content:space-between;align-items:center}.main-nav ul{list-style:none;display:flex;margin:0;padding:0}.main-nav a{display:block;padding:18px 20px;font-size:14px;font-weight:800;text-transform:uppercase}.main-nav a:hover{background:var(--accent)}.nav-toggle{display:none;background:none;border:0;color:white;font-size:26px}.news-ticker{border-bottom:1px solid var(--line)}.ticker-inner{height:48px;display:flex;align-items:center;gap:16px;overflow:hidden}.ticker-inner strong{background:var(--accent);color:#fff;padding:7px 10px;font-size:12px}.ticker-inner span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-area{padding-top:26px}.hero-story{min-height:520px;background-size:cover;background-position:center;border-radius:var(--radius);display:flex;align-items:flex-end;overflow:hidden}.hero-placeholder{background:linear-gradient(135deg,#101722,#29364a)}.hero-content{max-width:760px;padding:60px;color:white}.eyebrow{display:inline-block;color:white;background:var(--accent);font-weight:900;font-size:12px;padding:7px 10px;margin-bottom:13px;text-transform:uppercase}.hero-content h1{font-size:clamp(38px,6vw,70px);line-height:1.02;letter-spacing:-2.5px;margin:0 0 18px}.hero-content p{font-size:18px;color:#dfe5ec}.button{display:inline-block;background:var(--accent);padding:13px 18px;font-weight:800;border-radius:4px}.section{padding-block:58px}.section-heading{display:flex;align-items:end;justify-content:space-between;border-bottom:2px solid var(--ink);margin-bottom:24px}.section-heading h1,.section-heading h2{margin:0 0 -2px;border-bottom:5px solid var(--accent);padding-bottom:10px;font-size:26px;text-transform:uppercase}.section-heading a{font-size:13px;font-weight:800;padding-bottom:12px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.news-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.card-image{aspect-ratio:16/10;background:#172131;display:block;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover;transition:.25s}.news-card:hover img{transform:scale(1.04)}.image-fallback{height:100%;display:grid;place-items:center;color:#fff;font-size:34px;font-weight:900}.card-body{padding:19px}.meta{color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:700}.card-body h3{font-size:21px;line-height:1.25;margin:8px 0}.card-body p{color:var(--muted);margin-bottom:0}.matches-band{background:#111a27;color:white;padding:58px 0}.section-heading.light{border-color:#fff}.match-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.match-card{background:#1a2636;border-top:4px solid var(--accent);padding:22px;border-radius:7px}.match-date{font-size:12px;color:#aeb8c5;font-weight:800}.teams{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;text-align:center;margin:24px 0}.teams span{background:var(--accent);padding:7px 10px;border-radius:4px;font-weight:900}.match-card a{color:#fff;font-size:12px;font-weight:800}.split-layout,.content-with-sidebar,.article-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:38px}.story-row{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.story-row img{width:150px;height:105px;object-fit:cover}.story-row h3{font-size:20px;margin:4px 0}.story-row p{color:var(--muted);margin:0}.widget{padding:22px;background:var(--soft);margin-bottom:22px;border-radius:7px}.widget-title{margin-top:0;text-transform:uppercase;border-bottom:3px solid var(--accent);padding-bottom:9px}.site-footer{background:#0b111a;color:#b8c1cc;margin-top:60px}.footer-grid{display:grid;grid-template-columns:2fr 2fr 1fr;gap:40px;padding:55px 0}.site-footer h2,.site-footer h3{color:#fff}.site-footer ul{list-style:none;padding:0}.copyright{text-align:center;border-top:1px solid #202a37;padding:18px;font-size:12px}.single-article{padding-top:58px}.single-article>header{max-width:900px;margin-bottom:28px}.single-article h1{font-size:clamp(38px,5vw,68px);line-height:1.05;letter-spacing:-2px;margin:10px 0}.single-image{margin-bottom:36px}.single-image img{width:100%;max-height:680px;object-fit:cover}.article-content{font-size:18px;line-height:1.78}.article-content h2{font-size:34px;line-height:1.2;margin-top:44px}.article-content a{color:var(--accent);text-decoration:underline}.match-archive{display:grid;gap:16px}.archive-card{color:#fff}.archive-card h2{font-size:16px}.nav-links{margin-top:35px;display:flex;gap:10px}.page-numbers{padding:9px 13px;background:var(--soft)}.page-numbers.current{background:var(--accent);color:#fff}@media(max-width:900px){.header-ad{display:none}.branding-row{min-height:86px}.news-grid,.match-grid{grid-template-columns:repeat(2,1fr)}.split-layout,.content-with-sidebar,.article-layout{grid-template-columns:1fr}.hero-story{min-height:440px}.hero-content{padding:36px}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.main-nav ul{display:none;position:absolute;left:0;right:0;background:#101722;z-index:20;flex-direction:column}.main-nav ul.is-open{display:flex}.nav-toggle{display:block;margin-left:auto;padding:10px}.news-grid,.match-grid{grid-template-columns:1fr}.hero-story{min-height:410px}.hero-content h1{letter-spacing:-1.5px}.hero-content{padding:25px}.story-row{grid-template-columns:100px 1fr}.story-row img{width:100px;height:80px}.footer-grid{grid-template-columns:1fr}}
.league-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 12px 35px rgba(16,23,34,.06)}.league-table{width:100%;border-collapse:collapse;min-width:850px;font-size:14px}.league-table th{background:var(--ink);color:#fff;padding:15px 12px;text-align:center;font-size:12px;text-transform:uppercase}.league-table th.team-column{text-align:left}.league-table td{padding:14px 12px;text-align:center;border-bottom:1px solid var(--line)}.league-table tbody tr:hover{background:var(--soft)}.league-table .team-cell{text-align:left;display:flex;align-items:center;gap:10px;min-width:220px}.team-badge{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:inline-grid;place-items:center;font-weight:900}.position-cell,.points-cell{font-weight:900}.points-cell{font-size:16px}.form-cell{white-space:nowrap}.form-cell span{display:inline-grid;place-items:center;width:24px;height:24px;margin:0 2px;border-radius:50%;color:#fff;font-size:11px;font-weight:900}.form-w{background:#209653}.form-d{background:#8a94a3}.form-l{background:#d33b3b}@media(max-width:640px){.league-standings-section{padding-block:38px}.league-table th,.league-table td{padding:11px 9px}}
/* v0.3 Soccer News layout */
.splash-hero-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:22px;padding-top:26px}.splash-main-hero{min-height:510px}.hero-side-list{display:grid;gap:16px}.hero-side-card{display:grid;grid-template-columns:145px 1fr;gap:15px;border-bottom:1px solid var(--line);padding-bottom:16px}.side-card-image{height:112px;background:var(--ink);overflow:hidden}.side-card-image img{width:100%;height:100%;object-fit:cover}.hero-side-card h3{font-size:17px;line-height:1.25;margin:5px 0}.homepage-main-grid{display:grid;grid-template-columns:minmax(0,2fr) 360px;gap:34px;align-items:start}.home-sidebar{position:sticky;top:20px}.splash-news-row{display:grid;grid-template-columns:240px 1fr;gap:22px;padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.splash-news-row img{width:240px;height:155px;object-fit:cover}.splash-news-row h3{font-size:23px;line-height:1.23;margin:6px 0}.splash-news-row p{color:var(--muted);margin:0}.standings-widget-card{background:#fff;border:1px solid var(--line);box-shadow:0 12px 30px rgba(16,23,34,.08)}.standings-widget-head{background:var(--ink);color:#fff;padding:18px 18px 15px;border-bottom:4px solid var(--accent);display:flex;align-items:end;justify-content:space-between}.standings-widget-head h3{font-size:19px;text-transform:uppercase;margin:0}.standings-widget-head span{font-size:11px;color:#aeb8c5;text-transform:uppercase}.compact-table-wrap{overflow-x:auto}.compact-league-table{width:100%;border-collapse:collapse;font-size:12px}.compact-league-table th{padding:10px 8px;color:#8b95a3;background:#f4f6f8;text-align:center;font-size:10px}.compact-league-table th:nth-child(2){text-align:left}.compact-league-table td{padding:11px 8px;border-bottom:1px solid var(--line);text-align:center}.compact-team{display:flex;align-items:center;gap:8px;text-align:left!important;font-weight:800;min-width:145px}.compact-logo,.mini-badge{width:25px;height:25px;object-fit:contain}.mini-badge{display:inline-grid;place-items:center;border-radius:50%;background:var(--accent);color:#fff}.compact-points{font-size:14px;font-weight:900}.standings-full-link{display:block;padding:13px 17px;color:var(--accent);font-size:12px;font-weight:900;text-transform:uppercase}.standings-empty{padding:18px;color:var(--muted);font-size:13px}.match-team{display:grid;justify-items:center;gap:7px}.team-logo{width:44px;height:44px;object-fit:contain}.empty-match{display:grid;gap:8px}.empty-match small{color:#aeb8c5}
@media(max-width:980px){.splash-hero-grid,.homepage-main-grid{grid-template-columns:1fr}.home-sidebar{position:static}.hero-side-list{grid-template-columns:repeat(3,1fr)}.hero-side-card{display:block}.side-card-image{margin-bottom:10px}.splash-main-hero{min-height:440px}}
@media(max-width:700px){.hero-side-list{grid-template-columns:1fr}.hero-side-card{display:grid;grid-template-columns:115px 1fr}.splash-news-row{grid-template-columns:110px 1fr;gap:14px}.splash-news-row img{width:110px;height:90px}.splash-news-row h3{font-size:18px}.splash-news-row p{display:none}}
/* v0.4 unified match editor and top scores/standings split */
.scores-standings-band{background:#111a27;padding:44px 0}.scores-standings-grid{display:grid;grid-template-columns:minmax(0,2fr) 360px;gap:26px;align-items:stretch}.scores-panel,.scores-standings-grid .standings-widget-card{height:100%}.scores-panel{background:#fff;border-top:4px solid var(--accent);box-shadow:0 12px 30px rgba(0,0,0,.18)}.panel-heading{min-height:82px;padding:17px 20px;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-heading span{display:block;color:var(--accent);font-size:10px;font-weight:900;text-transform:uppercase}.panel-heading h2{margin:3px 0 0;font-size:22px;text-transform:uppercase}.panel-heading a{font-size:12px;font-weight:900;color:var(--accent)}.scores-list{background:#fff}.score-row{min-height:73px;display:grid;grid-template-columns:66px minmax(130px,1fr) 62px minmax(130px,1fr) 120px;gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line)}.score-row:last-child{border-bottom:0}.score-time{text-align:center;border-right:1px solid var(--line)}.score-time strong,.score-time span{display:block}.score-time strong{font-size:16px}.score-time span{font-size:10px;color:var(--muted);text-transform:uppercase}.score-team{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800}.score-team.home{justify-content:flex-end;text-align:right}.score-team.away{justify-content:flex-start}.score-logo{width:34px;height:34px;object-fit:contain}.score-result{display:grid;place-items:center;min-height:34px;background:var(--ink);color:#fff;border-radius:3px;font-size:13px;font-weight:900}.score-venue{color:var(--muted);font-size:11px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scores-empty{min-height:180px;display:grid;place-content:center;text-align:center;gap:5px;color:var(--muted)}.scores-empty strong{color:var(--ink)}.scores-standings-grid .standings-widget-card{box-shadow:0 12px 30px rgba(0,0,0,.18)}.scores-standings-grid .standings-widget-head{min-height:82px}.main-news-section{padding-top:52px}.main-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px}.below-news-widgets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:35px}.below-news-widgets .widget{margin:0}
@media(max-width:980px){.scores-standings-grid{grid-template-columns:1fr}.main-news-grid{grid-template-columns:1fr}.scores-standings-grid .standings-widget-card{height:auto}}
@media(max-width:720px){.score-row{grid-template-columns:52px 1fr 48px 1fr;padding:10px 8px}.score-venue{display:none}.score-team{font-size:11px}.score-logo{width:28px;height:28px}.below-news-widgets{grid-template-columns:1fr}}

/* v0.6 — three-column Splash-style sports dashboard */
.sports-dashboard-grid{display:grid;grid-template-columns:300px minmax(0,1fr) 328px;gap:28px;align-items:start;padding-top:34px;padding-bottom:60px}.sports-left-sidebar,.sports-right-sidebar{display:grid;gap:34px}.side-match-widget,.statistics-widget{background:#fff}.side-widget-title,.statistics-title-row{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--accent);padding-bottom:14px;margin-bottom:22px}.side-widget-title h2,.statistics-title-row h2{margin:0;color:#37103f;font-size:32px;line-height:1;text-transform:uppercase;letter-spacing:-1px}.side-widget-title a,.statistics-title-row a{border:1px solid #efb5f5;padding:6px 10px;font-size:12px;color:#4d2054}.league-select-form,.standings-filters{display:grid;gap:8px;margin-bottom:18px}.league-select-form label,.standings-filters label{font-size:12px;color:#929292}.league-select-form select,.standings-filters select{width:100%;border:0;border-radius:0;background:#d7192d;color:#250a2b;padding:13px 16px;font-size:17px;appearance:auto}.side-match-list{border-bottom:1px solid #ddd}.side-match-row{border-bottom:1px solid #ddd}.side-match-row:last-child{border-bottom:0}.side-match-date{background:#3d0644;color:#fff;text-align:center;padding:12px 8px;font-weight:700}.side-match-teams{display:grid;grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);align-items:center;gap:7px;padding:14px 8px}.side-team{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;line-height:1.2}.side-team-home{justify-content:flex-end;text-align:right}.side-team-away{justify-content:flex-start}.side-team-logo{width:27px;height:27px;object-fit:contain}.side-match-score{display:grid;place-items:center;min-height:32px;background:#3d0644;color:#fff;border-radius:18px;font-weight:900;font-size:13px}.side-widget-empty{padding:24px 12px;text-align:center;color:var(--muted);border:1px solid var(--line)}.sports-news-column{min-width:0}.dashboard-section-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid var(--accent);padding-bottom:14px;margin-bottom:18px}.dashboard-section-heading h1{margin:0;color:#37103f;text-transform:uppercase;font-size:32px}.dashboard-section-heading a{font-size:12px;border:1px solid #efb5f5;padding:6px 10px}.dashboard-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 36px}.dashboard-news-card{min-width:0}.dashboard-news-image{display:block;height:246px;background:#e9edf1;overflow:hidden}.dashboard-news-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.dashboard-news-card:hover img{transform:scale(1.025)}.news-image-placeholder{height:100%;display:grid;place-items:center;font-size:32px;font-weight:900;color:#9ba4af}.dashboard-news-copy{padding-top:14px}.dashboard-news-copy .meta{color:#9b9b9b;font-size:12px}.dashboard-news-copy h2{font-size:21px;line-height:1.15;color:#3d1045;margin:9px 0 0}.dashboard-empty-news{grid-column:1/-1;padding:60px 25px;text-align:center;background:#f5f6f7}.statistics-title-row{margin-bottom:28px}.statistics-title-row h2{font-size:31px}.standings-filters{margin-bottom:23px}.statistics-table-wrap{overflow-x:auto}.statistics-table{width:100%;border-collapse:collapse;font-size:12px}.statistics-table thead{background:#d7192d;color:#34103b}.statistics-table th{padding:11px 6px;text-align:center;font-size:10px;text-transform:uppercase}.statistics-table th:nth-child(2){text-align:left}.statistics-table td{padding:11px 6px;border-bottom:1px solid #ddd;text-align:center}.stats-team{display:flex;align-items:center;gap:8px;text-align:left!important;font-weight:800;min-width:140px}.stats-logo{width:27px;height:27px;object-fit:contain}.stats-points{font-weight:900}.statistics-empty{padding:25px!important;color:var(--muted)}.view-full-standings{display:block;margin-top:14px;padding:11px 13px;text-align:center;background:#3d0644;color:#fff;font-size:12px;font-weight:800;text-transform:uppercase}.full-standings-page{padding-top:45px;padding-bottom:70px}.full-standings-intro{margin-bottom:28px}.full-standings-intro span{color:var(--accent);font-size:11px;font-weight:900;text-transform:uppercase}.full-standings-intro h1{font-size:42px;margin:5px 0}.full-standings-intro p{color:var(--muted)}.statistics-widget-full .standings-filters{grid-template-columns:1fr 1fr;gap:20px}.statistics-widget-full .statistics-table{min-width:950px;font-size:13px}.statistics-widget-full .statistics-table th,.statistics-widget-full .statistics-table td{padding:13px 10px}.stats-form{white-space:nowrap}.stats-form span{display:inline-grid;place-items:center;width:23px;height:23px;margin:0 2px;border-radius:50%;color:#fff;font-size:10px;font-weight:900}.stats-form .form-w{background:#249b55}.stats-form .form-d{background:#8e98a5}.stats-form .form-l{background:#d54343}
@media(max-width:1180px){.sports-dashboard-grid{grid-template-columns:270px minmax(0,1fr) 300px;gap:20px}.dashboard-news-image{height:210px}}
@media(max-width:980px){.sports-dashboard-grid{grid-template-columns:280px minmax(0,1fr)}.sports-right-sidebar{grid-column:1/-1;grid-row:2}.statistics-widget{max-width:none}.dashboard-news-grid{grid-template-columns:1fr}}
@media(max-width:720px){.sports-dashboard-grid{grid-template-columns:1fr}.sports-left-sidebar,.sports-right-sidebar{grid-column:auto;grid-row:auto}.sports-news-column{grid-row:3}.dashboard-news-grid{grid-template-columns:1fr}.dashboard-news-image{height:230px}.side-widget-title h2,.statistics-title-row h2,.dashboard-section-heading h1{font-size:27px}.statistics-widget-full .standings-filters{grid-template-columns:1fr}.full-standings-intro h1{font-size:34px}}
.match-page{padding:36px 0}.match-hero{display:grid;grid-template-columns:1fr minmax(220px,.7fr) 1fr;align-items:center;gap:24px;background:#f4f5f7;padding:36px;margin-bottom:28px}.match-side{text-align:center}.match-side img{width:110px;height:110px;object-fit:contain}.match-side h2{margin:12px 0 0}.match-center{text-align:center}.match-status{text-transform:uppercase;font-weight:800;color:#777}.match-big-score{font-size:54px;font-weight:900;color:#430047;margin:10px 0}.match-timeline{max-width:760px;margin:0 auto 30px}.timeline-row{display:grid;grid-template-columns:70px 150px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid #ddd;align-items:center}.timeline-minute{font-size:18px;color:#430047}.timeline-type{text-transform:uppercase;font-size:12px;font-weight:800}.timeline-row small{display:block;color:#777;margin-top:3px}.arena-scorers-wrap{overflow-x:auto}@media(max-width:700px){.match-hero{grid-template-columns:1fr;padding:22px}.match-big-score{font-size:42px}.timeline-row{grid-template-columns:54px 110px 1fr}}

/* v0.6.6 player profile and scorer pages */
.arena-player-page{padding:42px 0 70px}.arena-shell{width:min(1180px,calc(100% - 36px));margin-inline:auto}.arena-player-hero{display:grid;grid-template-columns:minmax(300px,42%) 1fr;min-height:460px;background:#35103d;color:#fff;overflow:hidden}.arena-player-photo-wrap{background:linear-gradient(145deg,#eceff2,#d8dde3);display:flex;align-items:flex-end;justify-content:center;min-width:0}.arena-player-photo{width:100%;height:100%;max-height:520px;object-fit:cover;object-position:top center}.arena-player-photo-placeholder{min-height:460px;background:linear-gradient(135deg,#e8ebef,#cdd3da)}.arena-player-summary{padding:54px 48px;display:flex;flex-direction:column;justify-content:center}.arena-player-kicker{color:#d7192d;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.arena-player-summary h1{font-size:clamp(42px,5vw,72px);line-height:1;margin:12px 0 32px;letter-spacing:-2px}.arena-player-number{color:#d7192d}.arena-player-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid rgba(255,255,255,.18)}.arena-player-facts>div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.18)}.arena-player-facts>div:nth-child(odd){padding-right:24px}.arena-player-facts>div:nth-child(even){padding-left:24px;border-left:1px solid rgba(255,255,255,.18)}.arena-player-facts span{color:#cbbdce;font-size:12px;text-transform:uppercase}.arena-player-facts strong{text-align:right}.arena-player-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:36px;margin-top:38px}.arena-player-section{margin-bottom:38px}.arena-player-section h2,.arena-player-side-card h3{color:#37103f;text-transform:uppercase;border-bottom:2px solid var(--accent);padding-bottom:12px;margin:0 0 20px}.arena-player-biography{font-size:17px;line-height:1.75}.arena-player-table-scroll{overflow-x:auto}.arena-player-stats{width:100%;border-collapse:collapse;min-width:650px}.arena-player-stats th{background:#d7192d;color:#35103d;text-transform:uppercase;font-size:11px;padding:13px 10px;text-align:center}.arena-player-stats td{padding:16px 10px;text-align:center;border-bottom:1px solid #ddd;font-weight:800}.arena-player-side-card{background:#f4f5f7;padding:22px;margin-bottom:24px}.arena-player-team-card a{display:flex;align-items:center;gap:15px}.arena-player-team-logo{width:72px;height:72px;object-fit:contain}.arena-related-players,.arena-player-news-list{display:grid;gap:12px}.arena-related-players>a{display:flex;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid #ddd}.arena-related-players img{width:48px;height:48px;object-fit:cover;border-radius:50%}.arena-related-players span,.arena-player-news-list a{display:grid}.arena-related-players small,.arena-player-news-list small{color:#777}.arena-player-news-list a{padding-bottom:12px;border-bottom:1px solid #ddd}
.arena-scorer-page{padding:46px 0 75px}.arena-scorer-header{border-bottom:2px solid var(--accent);margin-bottom:24px}.arena-scorer-header>span{color:var(--accent);font-size:12px;font-weight:900;text-transform:uppercase}.arena-scorer-header h1{font-size:48px;color:#37103f;text-transform:uppercase;margin:5px 0}.arena-scorer-header p{color:var(--muted)}.arena-scorer-filter{max-width:340px;display:grid;gap:7px;margin-bottom:24px}.arena-scorer-filter label{font-size:12px;color:#777}.arena-scorer-filter select{background:#d7192d;border:0;padding:14px 16px;font-size:17px}.arena-scorer-table-wrap{overflow-x:auto}.arena-scorer-table{width:100%;border-collapse:collapse;min-width:850px}.arena-scorer-table th{background:#37103f;color:#fff;padding:14px 12px;text-transform:uppercase;font-size:11px;text-align:center}.arena-scorer-table th:nth-child(2),.arena-scorer-table th:nth-child(3){text-align:left}.arena-scorer-table td{padding:13px 12px;border-bottom:1px solid #ddd;text-align:center}.scorer-rank{font-size:18px;font-weight:900;color:#37103f}.scorer-player{display:flex;align-items:center;gap:12px;text-align:left}.scorer-player-photo{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#eee}.scorer-player span{display:grid}.scorer-player small{color:#777}.scorer-team{display:flex;align-items:center;gap:10px;text-align:left}.scorer-team-logo{width:32px;height:32px;object-fit:contain}.scorer-empty{text-align:center!important;padding:35px!important;color:#777}
@media(max-width:850px){.arena-player-hero{grid-template-columns:1fr}.arena-player-photo-wrap{min-height:380px}.arena-player-summary{padding:36px 28px}.arena-player-content-grid{grid-template-columns:1fr}.arena-player-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.arena-player-side-card{margin:0}}@media(max-width:600px){.arena-player-facts{grid-template-columns:1fr}.arena-player-facts>div:nth-child(n){padding:12px 0;border-left:0}.arena-player-sidebar{grid-template-columns:1fr}.arena-player-summary h1{font-size:40px}}


/* v0.6.7 Germany and 2. Bundesliga colour system */
:root{
  --accent:#d20515;
  --accent-dark:#a8000d;
  --france-red:#d7192d;--germany-gold:#d7192d;
  --bundesliga-red:#d20515;
  --ink:#101010;
  --muted:#666b73;
  --soft:#f4f4f4;
  --line:#dedede;
}
.topbar{background:#000;color:#d9d9d9;border-bottom:3px solid var(--germany-gold)}
.topbar-tag{color:var(--germany-gold)}
.main-nav{background:#111;border-bottom-color:var(--bundesliga-red)}
.main-nav a:hover,.main-nav .current-menu-item>a,.main-nav .current_page_item>a{background:var(--bundesliga-red);color:#fff}
.dashboard-section-heading h1,.side-widget-title h2,.statistics-title-row h2,
.arena-player-section h2,.arena-player-side-card h3,.arena-scorer-header h1,
.full-standings-intro h1,.dashboard-news-copy h2{color:#111}
.dashboard-section-heading,.side-widget-title,.statistics-title-row,
.arena-player-section h2,.arena-player-side-card h3,.arena-scorer-header{border-color:var(--bundesliga-red)}
.side-widget-select,.standings-filters select,.arena-scorer-filter select,
.statistics-table thead,.arena-player-stats th{background:var(--germany-gold);color:#111}
.side-match-date,.view-full-standings,.standings-widget-head,.arena-scorer-table th{background:#111;color:#fff}
.side-match-score,.mini-badge,.team-badge{background:var(--bundesliga-red);color:#fff}
.view-full-standings:hover,.button:hover,.standings-full-link:hover{background:var(--bundesliga-red);color:#fff}
.arena-player-hero{background:linear-gradient(135deg,#000 0%,#171717 70%,#3b0005 100%)}
.arena-player-kicker,.arena-player-number{color:var(--germany-gold)}
.match-big-score,.timeline-minute,.scorer-rank{color:var(--bundesliga-red)}
.arena-scorer-header>span,.full-standings-intro span{color:var(--bundesliga-red)}
.arena-player-stats td,.compact-points,.stats-points{color:#111}
.widget{background:#f5f5f5;border-top:3px solid var(--germany-gold)}


/* v0.6.8 global cleanup, typography and match archive */
.single-article h1{font-size:clamp(32px,4.2vw,56px);letter-spacing:-1.4px}
.hero-content h1{font-size:clamp(34px,5vw,60px);letter-spacing:-1.8px}
.section-heading h1,.section-heading h2{font-size:23px}
.card-body h3{font-size:19px}
.article-content h2{font-size:30px}
.arena-player-summary h1{font-size:clamp(36px,4.3vw,60px)}
.arena-scorer-header h1,.full-standings-intro h1{font-size:40px}
.dashboard-section-heading h1,.side-widget-title h2,.statistics-title-row h2{font-size:29px}
.article-content-wide{max-width:900px}
.footer-grid-clean{grid-template-columns:minmax(0,2fr) minmax(240px,1fr)}

/* Team crests and names stay perfectly centred on individual match pages. */
.match-side{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0}
.match-side img{margin:0 auto;width:110px;height:110px;object-fit:contain;object-position:center}
.match-side h2{width:100%;text-align:center;margin:14px 0 0;line-height:1.2;font-size:24px}

.matches-archive-page{padding-top:44px}
.matches-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.archive-match-card{position:relative;border:1px solid var(--line);border-top:5px solid #111;background:#fff;box-shadow:0 12px 32px rgba(0,0,0,.07);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.archive-match-card.status-live{border-top-color:var(--bundesliga-red)}
.archive-match-card.status-finished{border-top-color:#4b5563}
.archive-match-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(0,0,0,.11)}
.archive-match-link{display:block;padding:22px;color:inherit}
.archive-match-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.04em}
.archive-match-status{color:#fff;background:#111;padding:6px 9px}
.status-live .archive-match-status{background:var(--bundesliga-red)}
.status-finished .archive-match-status{background:#4b5563}
.archive-match-date{display:block;text-align:center;margin:18px 0 20px;font-size:14px;font-weight:800;color:#333}
.archive-match-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px}
.archive-team{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.archive-team-logo{width:78px;height:78px;display:grid;place-items:center;margin-bottom:11px}
.archive-team-logo img{width:78px;height:78px;object-fit:contain;object-position:center}
.archive-team-logo>span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#111;color:var(--germany-gold);font-size:26px;font-weight:900}
.archive-team strong{font-size:16px;line-height:1.2}
.archive-match-score{min-width:72px;text-align:center;background:var(--bundesliga-red);color:#fff;padding:10px 12px;font-size:21px;font-weight:900}
.archive-match-venue{text-align:center;border-top:1px solid var(--line);margin-top:20px;padding-top:14px;color:var(--muted);font-size:12px}
.archive-match-more{display:block;text-align:center;margin-top:15px;color:var(--bundesliga-red);font-size:12px;text-transform:uppercase;font-weight:900}
.matches-empty{padding:45px;text-align:center;background:var(--soft);border-top:4px solid var(--germany-gold)}

@media(max-width:760px){
  .matches-archive-grid{grid-template-columns:1fr}
  .archive-match-link{padding:18px}
  .archive-team-logo,.archive-team-logo img{width:62px;height:62px}
  .archive-team strong{font-size:14px}
  .archive-match-score{min-width:58px;font-size:18px;padding:9px}
  .single-article h1{font-size:34px}
  .section-heading h1,.section-heading h2{font-size:21px}
}

/* 2LigaHeute v0.7.1: compact section headings, 2px larger than main navigation */
.dashboard-section-heading h1,
.side-widget-title h2,
.statistics-title-row h2,
.panel-heading h2,
.section-heading h1,
.section-heading h2,
.widget-title {
  font-size:16px;
  line-height:1.2;
  letter-spacing:0;
}

@media(max-width:720px){
  .dashboard-section-heading h1,
  .side-widget-title h2,
  .statistics-title-row h2,
  .panel-heading h2,
  .section-heading h1,
  .section-heading h2,
  .widget-title {
    font-size:16px;
  }
}


/* 2LigaHeute v0.7.2: global Montserrat ExtraBold Italic typography */
html,body,button,input,select,textarea,option,table,th,td,nav,header,footer,main,section,article,aside,div,span,p,a,strong,small,label,li,h1,h2,h3,h4,h5,h6 {
  font-family:"Source Sans 3",Arial,Helvetica,sans-serif !important;
  font-weight:800 !important;
  font-style:normal !important;
}
::placeholder {
  font-family:"Source Sans 3",Arial,Helvetica,sans-serif !important;
  font-weight:800 !important;
  font-style:normal !important;
}

/* v0.7.3 editable footer */
.site-footer{margin-top:64px;background:#0d0d0f;color:#d7d7da;border-top:5px solid #d71920}
.ligaheute-footer-main{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(4,minmax(150px,1fr));gap:34px;padding:46px 0 40px}
.ligaheute-footer-brand h2,.ligaheute-footer-main h3{color:#fff;margin:0 0 14px;font-size:16px;text-transform:uppercase}
.ligaheute-footer-brand p{max-width:430px;margin:0;color:#b8b8bd;font-size:13px;line-height:1.7}
.footer-logo{margin-bottom:16px}.footer-logo .custom-logo{max-height:54px;width:auto}
.footer-menu-list,.ligaheute-footer-main .menu,.ligaheute-footer-main ul{list-style:none;margin:0;padding:0}
.footer-menu-list li,.ligaheute-footer-main .menu li{margin:0 0 9px}
.footer-menu-list a,.ligaheute-footer-main .menu a,.footer-widget a{color:#d7d7da;font-size:13px}
.footer-menu-list a:hover,.ligaheute-footer-main .menu a:hover,.footer-widget a:hover{color:#d7192d}
.footer-widget{margin:0 0 22px}.footer-widget p{font-size:13px;color:#b8b8bd}.footer-widget-title{padding-bottom:9px;border-bottom:2px solid #d71920}
.footer-socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.footer-socials a{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border:1px solid #34343a;color:#fff;font-size:11px;text-transform:uppercase}
.footer-socials a:hover{background:#d71920;border-color:#d71920}
.ligaheute-footer-bottom{border-top:1px solid #29292e;background:#080809;color:#96969c;font-size:11px;text-align:center;padding:16px 0}
@media(max-width:1050px){.ligaheute-footer-main{grid-template-columns:repeat(3,1fr)}.ligaheute-footer-brand{grid-column:1/-1}}
@media(max-width:700px){.site-footer{margin-top:42px}.ligaheute-footer-main{grid-template-columns:1fr 1fr;padding:34px 0}.ligaheute-footer-brand{grid-column:1/-1}}
@media(max-width:480px){.ligaheute-footer-main{grid-template-columns:1fr}}

/* 2LigaHeute v0.7.5: homepage action links — Germany gold */
.home .sports-left-sidebar .side-widget-title > a,
.home .sports-right-sidebar .statistics-title-row > a,
.home .sports-right-sidebar .view-full-standings,
.home .side-match-widget .side-widget-title > a,
.home .statistics-widget .statistics-title-row > a {
  border: 1px solid var(--germany-gold) !important;
  background: transparent !important;
  color: #111 !important;
  box-shadow: none !important;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease !important;
}
.home .sports-left-sidebar .side-widget-title > a:hover,
.home .sports-left-sidebar .side-widget-title > a:focus,
.home .sports-right-sidebar .statistics-title-row > a:hover,
.home .sports-right-sidebar .statistics-title-row > a:focus,
.home .sports-right-sidebar .view-full-standings:hover,
.home .sports-right-sidebar .view-full-standings:focus,
.home .side-match-widget .side-widget-title > a:hover,
.home .side-match-widget .side-widget-title > a:focus,
.home .statistics-widget .statistics-title-row > a:hover,
.home .statistics-widget .statistics-title-row > a:focus {
  border-color: var(--germany-gold) !important;
  background: var(--germany-gold) !important;
  color: #111 !important;
  text-decoration: none !important;
}


/* 2LigaHeute v0.7.7: full-width four-column news grid below homepage dashboard */
.homepage-more-news{padding-top:8px;padding-bottom:34px}
.homepage-more-news-heading{border-bottom:2px solid var(--accent);padding-bottom:14px;margin-bottom:22px}
.homepage-more-news-heading h2{margin:0;font-size:16px;line-height:1.2;text-transform:uppercase;color:#111}
.homepage-four-news-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px}
.homepage-four-news-card{min-width:0}
.homepage-four-news-image{display:block;height:170px;background:#e9edf1;overflow:hidden}
.homepage-four-news-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.homepage-four-news-card:hover .homepage-four-news-image img{transform:scale(1.03)}
.homepage-four-news-copy{padding-top:12px}
.homepage-four-news-copy .meta{display:block;color:#8b8b8b;font-size:11px;margin-bottom:7px}
.homepage-four-news-copy h3{margin:0;font-size:15px;line-height:1.3}
.homepage-four-news-copy h3 a{color:#111;text-decoration:none}
.homepage-four-news-copy h3 a:hover{color:#d71920}
@media(max-width:1050px){.homepage-four-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.homepage-four-news-image{height:210px}}
@media(max-width:600px){.homepage-four-news-grid{grid-template-columns:1fr}.homepage-four-news-image{height:230px}}

/* Compact scorer standings in the homepage right sidebar. */
.sidebar-scorers-widget{margin-top:34px}.scorer-widget-title-row{margin-bottom:18px}.sidebar-scorers-table-wrap{overflow:hidden}.sidebar-scorers-table{width:100%;border-collapse:collapse;font-size:12px}.sidebar-scorers-table thead{background:var(--bundesliga-gold,#d7192d);color:#111}.sidebar-scorers-table th{padding:10px 7px;text-align:center;font-size:10px;text-transform:uppercase}.sidebar-scorers-table th:nth-child(2){text-align:left}.sidebar-scorers-table td{padding:10px 7px;border-bottom:1px solid #ddd;text-align:center}.sidebar-scorer-player{display:flex;align-items:center;gap:8px;text-align:left;font-weight:800;min-width:118px}.sidebar-scorer-photo{width:29px;height:29px;object-fit:cover;border-radius:50%;flex:0 0 29px;background:#eceff2}.sidebar-scorer-photo-fallback{display:grid;place-items:center;background:#111;color:#fff;font-size:11px}.sidebar-scorer-goals{font-weight:900}.sidebar-scorers-empty{padding:20px 10px!important;color:var(--muted);text-align:center!important}.sidebar-scorers-more{display:block;margin-top:14px;padding:11px 13px;border:1px solid var(--bundesliga-gold,#d7192d);color:#111;text-align:center;font-size:11px;font-weight:900;text-transform:uppercase;transition:background-color .2s ease,color .2s ease}.sidebar-scorers-more:hover,.sidebar-scorers-more:focus{background:var(--bundesliga-gold,#d7192d);color:#111}

/* v0.7.11: editorial directories */
.directory-page{padding-top:38px;padding-bottom:60px}
.directory-hero{border-bottom:2px solid #d7192d;margin-bottom:28px;padding-bottom:20px;max-width:860px}
.directory-kicker{color:#d71920;font-size:12px;letter-spacing:.12em;margin:0 0 7px;text-transform:uppercase}
.directory-hero h1{font-size:30px;line-height:1.15;margin:0 0 10px}
.directory-hero p{font-size:14px;line-height:1.65;margin:0;max-width:760px}
.news-category-directory{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:38px}
.news-category-card{background:#111;color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:100px;padding:18px;text-decoration:none;border-bottom:4px solid #d7192d;transition:transform .18s ease,background .18s ease}
.news-category-card:hover{background:#d71920;color:#fff;transform:translateY(-2px)}
.news-category-card span{font-size:15px}
.news-category-card small{font-size:10px;opacity:.78;margin-top:12px}
.directory-section-heading{border-bottom:1px solid #d71920;margin-bottom:20px;padding-bottom:9px}
.directory-section-heading h2{font-size:16px;margin:0;text-transform:uppercase}
.directory-post-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.directory-post-grid .post-card{margin:0}
.team-directory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.team-directory-card{border:1px solid #e1e1e1;background:#fff;padding:22px;text-align:center}
.team-directory-logo{align-items:center;display:flex;height:112px;justify-content:center;margin-bottom:14px}
.team-directory-logo img{height:96px;object-fit:contain;width:96px}
.team-logo-placeholder{align-items:center;background:#111;border-radius:50%;color:#d7192d;display:flex;font-size:30px;height:90px;justify-content:center;width:90px}
.team-directory-card h2,.player-directory-card h2{font-size:16px;line-height:1.3;margin:8px 0}
.team-directory-card p,.player-directory-copy p{font-size:12px;line-height:1.55;color:#666}
.directory-link{color:#d71920;font-size:11px;text-decoration:none}
.player-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.player-directory-card{border:1px solid #e1e1e1;background:#fff;overflow:hidden}
.player-directory-photo{background:#eceff2;display:block;aspect-ratio:4/3;overflow:hidden}
.player-directory-photo img{height:100%;object-fit:cover;width:100%}
.player-directory-copy{padding:16px;position:relative}
.player-directory-number{background:#d7192d;color:#111;display:inline-block;font-size:11px;padding:4px 8px}
.directory-empty{grid-column:1/-1;padding:28px;border:1px solid #ddd;text-align:center}
@media(max-width:980px){.news-category-directory{grid-template-columns:repeat(3,1fr)}.directory-post-grid,.team-directory-grid{grid-template-columns:repeat(2,1fr)}.player-directory-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.news-category-directory,.directory-post-grid,.team-directory-grid,.player-directory-grid{grid-template-columns:1fr}.directory-hero h1{font-size:24px}}

/* v0.7.12: uniform primary navigation and news-directory sidebar */
.main-nav .nav-inner,
.main-nav .menu,
.main-nav .menu > li,
.main-nav .menu > li > a,
.main-nav .menu-item,
.main-nav .menu-item > a{
  font-family:"Source Sans 3",Arial,sans-serif !important;
  font-size:14px !important;
  font-weight:800 !important;
  font-style:normal !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.main-nav .menu > li > a,
.main-nav .menu-item > a{
  display:flex !important;
  align-items:center !important;
  min-height:54px !important;
  padding:0 20px !important;
  white-space:nowrap !important;
}
.main-nav .sub-menu a{font-size:14px !important;font-weight:800 !important;font-style:normal !important}

.news-directory-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:34px;align-items:start}
.news-directory-main{min-width:0}
.news-directory-sidebar{min-width:0}
.news-directory-sidebar-box{position:sticky;top:24px;border:1px solid #e1e1e1;background:#fff;padding:18px}
.news-directory-sidebar-box>h2{margin:0 0 14px;padding:0 0 10px;border-bottom:3px solid #d7192d;font-size:16px;line-height:1.2;text-transform:uppercase}
.news-category-directory{display:flex;flex-direction:column;gap:8px;margin:0}
.news-category-card{min-height:0;padding:12px 13px;border-bottom:0;border-left:4px solid #d7192d;flex-direction:row;align-items:center;gap:10px}
.news-category-card span{font-size:13px}
.news-category-card small{font-size:9px;margin:0 0 0 auto;white-space:nowrap}
.news-directory-main .directory-post-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:980px){
  .news-directory-layout{grid-template-columns:1fr}
  .news-directory-sidebar{order:-1}
  .news-directory-sidebar-box{position:static}
  .news-category-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-directory-main .directory-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .main-nav .menu > li > a,.main-nav .menu-item > a{min-height:46px !important;padding:0 18px !important}
  .news-category-directory,.news-directory-main .directory-post-grid{grid-template-columns:1fr}
}


/* v0.7.13: Spiele directory header */
.matches-archive-page .directory-hero{max-width:860px}
.matches-archive-page .matches-archive-grid{margin-top:0}

/* v0.7.14: Scorerliste directory aligned with all other directories */
.scorer-directory-page{padding-top:34px;padding-bottom:64px}
.scorer-directory-page .directory-hero{max-width:860px}
.scorer-directory-page .arena-scorer-filter{margin:0 0 24px;max-width:320px}
.scorer-directory-page .arena-scorer-filter label{font-size:12px;color:#555;text-transform:uppercase;letter-spacing:.04em}
.scorer-directory-page .arena-scorer-filter select{background:#fff;border:1px solid #d8d8d8;border-bottom:3px solid #d7192d;padding:11px 14px;font-size:14px;color:#111}
.scorer-directory-page .arena-scorer-table th{background:#111;color:#fff;border-bottom:3px solid #d7192d}
.scorer-directory-page .scorer-rank{color:#d71920}

/* v0.7.15: German permalinks and complete club profiles */
.team-profile-page{padding-bottom:70px}.team-profile-hero{background:#111;border-bottom:5px solid #d7192d;color:#fff}.team-profile-hero-inner{display:grid;grid-template-columns:150px minmax(0,1fr) 130px;gap:28px;align-items:center;padding-top:34px;padding-bottom:34px}.team-profile-logo{width:140px;height:140px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px}.team-profile-logo img{width:100%;height:100%;object-fit:contain}.team-profile-logo span{font-size:48px;color:#111}.team-profile-title h1{font-size:34px;margin:3px 0 8px;color:#fff}.team-profile-title>strong{color:#d7192d;font-size:14px}.team-profile-rank{text-align:center;border-left:1px solid #444;padding-left:24px}.team-profile-rank span{display:block;font-size:10px;text-transform:uppercase;color:#bbb}.team-profile-rank strong{display:block;font-size:42px;line-height:1;color:#d7192d;margin-top:7px}.team-profile-content{padding-top:32px}.team-profile-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:26px;margin-bottom:42px}.team-profile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #ddd}.team-profile-facts div{padding:13px 15px;border-right:1px solid #eee;border-bottom:1px solid #eee}.team-profile-facts span{display:block;font-size:9px;color:#777;text-transform:uppercase}.team-profile-facts strong{display:block;font-size:13px;margin-top:4px}.team-season-stats{display:grid;grid-template-columns:repeat(3,1fr);background:#f3f4f5}.team-season-stats div{text-align:center;padding:15px 9px;border:1px solid #fff}.team-season-stats strong{display:block;font-size:22px;color:#d71920}.team-season-stats span{display:block;font-size:9px;text-transform:uppercase;margin-top:4px}.team-profile-section{margin-top:42px}.section-title-row{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #d71920;padding-bottom:10px;margin-bottom:20px}.section-title-row h2{font-size:16px;margin:0;text-transform:uppercase}.section-title-row a,.section-title-row>span{font-size:10px;color:#111;border:1px solid #d7192d;padding:7px 10px}.team-matchday-filter{display:flex;align-items:center;gap:10px;margin-bottom:15px}.team-matchday-filter label{font-size:11px;text-transform:uppercase}.team-matchday-filter select{border:1px solid #ccc;border-bottom:3px solid #d7192d;padding:9px 12px;min-width:190px}.team-match-list{border-top:1px solid #ddd}.team-match-row{display:grid;grid-template-columns:115px minmax(0,1fr) 64px minmax(0,1fr) 92px;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid #ddd;color:#111;text-decoration:none}.team-match-row:hover{background:#f7f7f7}.team-match-meta{font-size:10px}.team-match-meta small{display:block;color:#777;margin-top:4px}.team-match-club{display:flex;align-items:center;justify-content:flex-end;gap:9px;font-size:12px}.team-match-club.away{justify-content:flex-start}.team-match-club img{width:34px;height:34px;object-fit:contain}.team-match-score{text-align:center;background:#111;color:#fff;padding:9px 6px;font-size:14px}.team-match-row em{text-align:right;font-size:9px;color:#d71920}.squad-group-title{font-size:12px;margin:24px 0 10px;color:#d71920;text-transform:uppercase}.team-squad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.team-squad-card{display:flex;align-items:center;gap:11px;border:1px solid #ddd;padding:10px;color:#111;text-decoration:none;position:relative}.team-squad-card:hover{border-color:#d7192d}.team-squad-card img{width:50px;height:50px;object-fit:cover;background:#eee}.team-squad-card span{min-width:0}.team-squad-card strong,.team-squad-card small{display:block}.team-squad-card strong{font-size:12px}.team-squad-card small{font-size:9px;color:#777;margin-top:3px}.team-squad-card>b{margin-left:auto;color:#d71920;font-size:16px}.team-about-section .entry-content{font-size:13px;line-height:1.75}.team-news-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media(max-width:980px){.team-profile-hero-inner{grid-template-columns:110px 1fr}.team-profile-logo{width:105px;height:105px}.team-profile-rank{display:none}.team-profile-overview{grid-template-columns:1fr}.team-squad-grid{grid-template-columns:repeat(2,1fr)}.team-news-grid{grid-template-columns:repeat(2,1fr)}.team-match-row{grid-template-columns:90px 1fr 58px 1fr}.team-match-row em{display:none}}
@media(max-width:640px){.team-profile-hero-inner{grid-template-columns:80px 1fr;gap:16px}.team-profile-logo{width:78px;height:78px;padding:8px}.team-profile-title h1{font-size:23px}.team-profile-facts,.team-season-stats{grid-template-columns:repeat(2,1fr)}.team-squad-grid,.team-news-grid{grid-template-columns:1fr}.team-match-row{grid-template-columns:1fr 52px 1fr;padding:12px 0}.team-match-meta{grid-column:1/-1}.team-match-club{flex-direction:column;text-align:center;justify-content:center}.team-match-club.away{flex-direction:column-reverse;justify-content:center}.team-match-club img{width:30px;height:30px}}

/* v0.7.16 fixtures & results directory */
.matchday-directory{padding-bottom:64px}
.matchday-filterbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px;background:#111;border-top:4px solid #d7192d;margin:0 0 22px}
.matchday-filterbar label{display:flex;flex-direction:column;gap:7px;color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.matchday-filterbar select{width:100%;height:46px;padding:0 38px 0 14px;border:1px solid #d9d9d9;background:#fff;color:#111;font:inherit;text-transform:none;letter-spacing:0}
.matchday-filterbar button{height:46px;border:0;background:#d7192d;color:#111;padding:0 20px}
.matchday-navigation{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;margin:0 0 24px;padding:12px 16px;border:1px solid #dedede;background:#f6f7f8}
.matchday-navigation>div:last-child{text-align:right}.matchday-navigation a{color:#111;text-decoration:none}.matchday-navigation a:hover{color:#d71920}
.matchday-list{border-top:1px solid #dcdcdc}
.matchday-date-heading{margin:24px 0 0;padding:12px 16px;background:#f1f2f3;border-left:5px solid #d71920;font-size:16px;text-transform:uppercase}
.matchday-row{border-bottom:1px solid #ddd;background:#fff}
.matchday-row-link{display:grid;grid-template-columns:92px minmax(170px,1fr) 82px minmax(170px,1fr) minmax(120px,.6fr) 18px;align-items:center;gap:14px;min-height:92px;padding:14px 16px;color:#111;text-decoration:none;transition:background .18s ease}
.matchday-row-link:hover{background:#fff3f4}
.matchday-time-status time{display:block;font-size:18px}.matchday-time-status small{display:block;margin-top:5px;color:#777;font-size:10px;text-transform:uppercase}
.matchday-team{display:flex;align-items:center;gap:12px}.matchday-home-team{justify-content:flex-end;text-align:right}.matchday-away-team{justify-content:flex-start}
.matchday-team-logo{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:#f1f2f4;overflow:hidden;font-size:15px}.matchday-team-logo img{width:38px;height:38px;object-fit:contain}
.matchday-score{text-align:center;font-size:21px;background:#111;color:#fff;padding:9px 5px;white-space:nowrap}
.matchday-meta{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#555}.matchday-meta span{color:#111}.matchday-meta small{font-size:10px}
.matchday-chevron{font-size:28px;color:#d71920;text-align:right}
.matches-empty{padding:28px;border:1px solid #ddd;background:#f7f7f7;text-align:center}
.team-directory-grid+.pagination{display:none}
@media(max-width:900px){.matchday-filterbar{grid-template-columns:1fr 1fr}.matchday-row-link{grid-template-columns:68px minmax(130px,1fr) 68px minmax(130px,1fr) 18px}.matchday-meta{display:none}}
@media(max-width:650px){.matchday-filterbar{grid-template-columns:1fr}.matchday-navigation{grid-template-columns:1fr auto 1fr;font-size:11px}.matchday-row-link{grid-template-columns:1fr 58px 1fr;gap:8px;padding:14px 8px}.matchday-time-status{grid-column:1/-1;text-align:center}.matchday-home-team,.matchday-away-team{flex-direction:column;text-align:center;justify-content:center}.matchday-home-team .matchday-team-logo{order:-1}.matchday-team strong{font-size:11px}.matchday-team-logo{width:42px;height:42px;flex-basis:42px}.matchday-team-logo img{width:34px;height:34px}.matchday-score{font-size:17px}.matchday-chevron{display:none}.matchday-date-heading{font-size:13px}}

/* v0.7.23: homepage centre column — preserve featured image's original aspect ratio */
.home .sports-news-column .dashboard-news-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:22px !important;
}
.home .sports-news-column .dashboard-news-card{
  display:block !important;
  min-height:0 !important;
  border:1px solid #e2e2e2 !important;
  background:#fff !important;
  overflow:hidden !important;
}
.home .sports-news-column .dashboard-news-image{
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  overflow:visible !important;
  background:transparent !important;
}
.home .sports-news-column .dashboard-news-image img{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center !important;
}
.home .sports-news-column .dashboard-news-copy{
  display:block !important;
  padding:14px 16px 16px !important;
}
.home .sports-news-column .dashboard-news-copy h2{
  margin:7px 0 0 !important;
  font-size:17px !important;
  line-height:1.3 !important;
}
@media(max-width:720px){
  .home .sports-news-column .dashboard-news-copy{padding:12px 13px 14px !important}
}

/* 2LigaHeute v0.7.31 — real live match section + match status board */
.home .sports-left-sidebar .side-widget-title,
.home .sports-right-sidebar .statistics-title-row,
.home .sports-right-sidebar .scorer-widget-title-row{
  min-height:38px;
  margin-bottom:14px;
  padding:9px 11px;
  border:0;
  background:var(--germany-gold,#d7192d);
  align-items:center;
}
.home .sports-left-sidebar .side-widget-title h2,
.home .sports-right-sidebar .statistics-title-row h2,
.home .sports-right-sidebar .scorer-widget-title-row h2{
  margin:0;
  color:#111 !important;
  font-size:16px !important;
  line-height:1.15 !important;
  letter-spacing:0 !important;
}
.side-match-widget-live .side-match-date{background:#111;color:#fff}
.side-match-row.is-live{position:relative;border-left:3px solid #d71920}
.side-live-label{display:flex;align-items:center;gap:6px;padding:7px 10px 0;color:#d71920;font-size:10px;text-transform:uppercase}
.side-live-label span{width:7px;height:7px;border-radius:50%;background:#d71920;box-shadow:0 0 0 3px rgba(215,25,32,.12)}
.side-match-score.live-score{background:#d71920;color:#fff}

.match-status-board{max-width:900px;margin:0 auto 32px;border:1px solid #dedede;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.05)}
.match-status-board-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:var(--germany-gold,#d7192d)}
.match-status-board-head h2{margin:0;font-size:16px;line-height:1.2;color:#111;text-transform:uppercase}
.match-status-pill{display:inline-flex;align-items:center;padding:5px 9px;background:#111;color:#fff;font-size:10px;text-transform:uppercase}
.match-status-pill-live{background:#d71920}
.match-status-pill-finished{background:#111}
.match-status-pill-upcoming{background:#fff;color:#111;border:1px solid #111}
.match-status-score-row{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:15px;align-items:center;padding:18px 16px;border-bottom:1px solid #e7e7e7}
.match-status-team{display:flex;align-items:center;justify-content:flex-end;gap:9px;text-align:right;font-size:13px}
.match-status-team-away{justify-content:flex-start;text-align:left}
.match-status-logo{width:42px;height:42px;object-fit:contain}
.match-status-score{text-align:center;font-size:25px;color:#111}
.match-status-events{padding:0 16px}
.match-status-goal-row{display:grid;grid-template-columns:58px 110px minmax(0,1fr);gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #ededed;font-size:12px}
.match-status-goal-row:last-child{border-bottom:0}
.match-status-minute{color:#d71920;font-size:14px}
.match-status-event-type{text-transform:uppercase;font-size:10px;color:#666}
.match-status-empty{margin:0;padding:17px 0;color:#666;font-size:12px}
.match-status-live{color:#d71920}

@media(max-width:700px){
  .match-status-score-row{grid-template-columns:1fr 62px 1fr;gap:8px;padding:14px 9px}
  .match-status-team{display:grid;justify-items:center;justify-content:center;text-align:center;gap:5px;font-size:11px}
  .match-status-team-away{justify-content:center;text-align:center}
  .match-status-score{font-size:20px}
  .match-status-goal-row{grid-template-columns:45px 90px 1fr;gap:7px}
}

/* 2LigaHeute v0.8.8 — canonical typography system */
html,body,body *,body *::before,body *::after,button,input,select,textarea,option,table{
  font-family:"Source Sans 3",Arial,Helvetica,sans-serif !important;
  font-style:normal !important;
}
body{font-size:15px;line-height:1.55;font-weight:400}
p,li,a,span,small,time,label,input,select,textarea,button,td,strong,b{font-weight:400}

/* Headings: one consistent scale across the theme. */
h1,h2,h3,h4,h5,h6{font-style:normal !important;letter-spacing:0}
h1{font-size:32px;line-height:1.15;font-weight:700;margin-top:0}
h2{font-size:22px;line-height:1.2;font-weight:700}
h3{font-size:18px;line-height:1.3;font-weight:400}
h4,h5,h6{font-weight:400}

/* Directory pages: identical intro typography everywhere. */
.directory-page{font-size:15px;line-height:1.55}
.directory-page .directory-hero{max-width:860px;margin-bottom:28px;padding-bottom:20px;border-bottom:2px solid #d7192d}
.directory-page .directory-kicker{margin:0 0 7px;color:#d71920;font-size:13px !important;line-height:1.25;letter-spacing:.08em;font-weight:700 !important;text-transform:uppercase}
.directory-page .directory-hero h1{margin:0 0 10px;font-size:30px !important;line-height:1.15 !important;font-weight:700 !important}
.directory-page .directory-hero>p:not(.directory-kicker){max-width:760px;margin:0;font-size:14px !important;line-height:1.65 !important;font-weight:400 !important}
.directory-page .directory-section-heading h2,.directory-page .news-directory-sidebar-box>h2{font-size:16px !important;line-height:1.25 !important;font-weight:700 !important}
.directory-page .team-directory-card h2,.directory-page .player-directory-card h2,.directory-page .news-card h3{font-size:16px !important;line-height:1.3 !important;font-weight:400 !important}
.directory-page .team-directory-card h2 a,.directory-page .player-directory-card h2 a,.directory-page .news-card h3 a{font-weight:400 !important}
.directory-page .team-directory-card p,.directory-page .player-directory-copy p,.directory-page .news-card p{font-size:13px !important;line-height:1.55 !important;font-weight:400 !important}
.directory-page .directory-link,.directory-page .news-card .meta{font-size:12px !important;font-weight:400 !important}

/* Match directory: dates are intentionally bold. */
.matches-archive-page .matchday-date-heading{font-size:16px !important;line-height:1.25 !important;font-weight:700 !important}
.matches-archive-page .matchday-row,.matches-archive-page .matchday-row *{font-style:normal !important}
.matches-archive-page .matchday-score{background:var(--bundesliga-red,#d71920) !important;color:#fff !important;padding:5px 7px !important;min-width:0 !important;border-radius:0 !important}

/* Homepage left sidebar: compact rectangular score/time chips. */
.side-match-score,.side-match-score.live-score{border-radius:0 !important}

/* Keep interface typography consistent. */
.main-nav a{font-size:14px;font-weight:400 !important}
.side-widget-title h2,.statistics-title-row h2,.scorer-widget-title-row h2,.dashboard-section-heading h1,.dashboard-section-heading h2{font-size:16px !important;line-height:1.2 !important;font-weight:700 !important}
.card-body h3,.dashboard-news-copy h2,.story-row h3,.splash-news-row h3{font-size:16px !important;line-height:1.3 !important;font-weight:400 !important}
.meta,.match-date,.side-match-date,.match-status,.match-status-event-type{font-weight:400 !important}

/* Tables: headers readable, data regular. */
th,.league-table th,.compact-league-table th,.statistics-table th,.sidebar-scorers-table th,.arena-scorer-table th,.arena-player-stats th{font-weight:700 !important;font-style:normal !important}
td,.league-table td,.compact-league-table td,.statistics-table td,.sidebar-scorers-table td,.arena-scorer-table td,.arena-player-stats td{font-weight:400 !important;font-style:normal !important}

/* Content pages. */
.single-article h1{font-size:32px !important;line-height:1.15 !important;letter-spacing:0 !important}
.article-content{font-size:17px;line-height:1.72}
.article-content h2{font-size:24px;line-height:1.25}
.article-content h3{font-size:19px;line-height:1.3;font-weight:400}

@media(max-width:620px){
  h1{font-size:27px}
  h2{font-size:20px}
  .directory-page .directory-hero h1{font-size:24px !important}
  .directory-page .directory-kicker{font-size:12px !important}
  .directory-page .directory-hero>p:not(.directory-kicker){font-size:14px !important}
  .matches-archive-page .matchday-date-heading{font-size:14px !important}
}

/* Final weight normalization: regular everywhere except requested title/date accents. */
body *:not(h1):not(h2),
body *:not(h1):not(h2)::before,
body *:not(h1):not(h2)::after{
  font-weight:400 !important;
  font-style:normal !important;
}
body h1,body h1 *,body h2,body h2 *{font-weight:700 !important;font-style:normal !important}
body .directory-kicker,body .directory-kicker *{font-weight:700 !important}
body .matches-archive-page .matchday-date-heading,body .matches-archive-page .matchday-date-heading *{font-weight:700 !important}

/* 2LigaHeute v0.8.9 — homepage dashboard alignment and unified sidebar bars */
:root{--home-dashboard-bar-height:48px}

/* The AJAX live wrapper must not create an empty grid row when no match is live. */
.home #tlh-home-live-widget{display:contents}

/* Align the first heading in all three homepage columns on the same horizontal line. */
.home .sports-dashboard-grid{align-items:start}
.home .sports-left-sidebar .side-widget-title,
.home .sports-right-sidebar .statistics-title-row,
.home .sports-right-sidebar .scorer-widget-title-row,
.home .sports-news-column .dashboard-section-heading{
  box-sizing:border-box;
  min-height:var(--home-dashboard-bar-height);
  height:var(--home-dashboard-bar-height);
  margin-top:0;
  margin-bottom:18px;
  align-items:center;
}
.home .sports-left-sidebar .side-widget-title,
.home .sports-right-sidebar .statistics-title-row,
.home .sports-right-sidebar .scorer-widget-title-row{
  padding:0 14px;
}
.home .sports-news-column .dashboard-section-heading{
  padding:0;
}

/* Match dates use the same physical bar height as the yellow section headers. */
.home .sports-left-sidebar .side-match-date{
  min-height:var(--home-dashboard-bar-height);
  height:var(--home-dashboard-bar-height);
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}

/* Right sidebar season selector uses the same bar size as Tabelle / Scorerliste. */
.home .sports-right-sidebar .standings-filters select{
  min-height:var(--home-dashboard-bar-height);
  height:var(--home-dashboard-bar-height);
  padding:0 14px;
  box-sizing:border-box;
}

/* Make both compact table header bars red: Mannschaft and Spieler. */
.home .sports-right-sidebar .statistics-table thead,
.home .sports-right-sidebar .sidebar-scorers-table thead{
  background:var(--bundesliga-red,#d20515) !important;
  color:#fff !important;
}
.home .sports-right-sidebar .statistics-table thead th,
.home .sports-right-sidebar .sidebar-scorers-table thead th{
  background:transparent !important;
  color:#fff !important;
}

/* v0.8.12 — goal events aligned under the team that scored */
.match-status-events.match-goal-sides{display:grid;grid-template-columns:1fr 1fr;padding:0;background:#fff}
.match-goal-side{min-width:0;padding:14px 18px 16px}
.match-goal-side-home{border-right:1px solid #e4e4e4}
.match-goal-team-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid #ededed;font-weight:700;font-size:15px}
.match-goal-side-away .match-goal-team-head{justify-content:flex-end}
.match-goal-team-logo{width:32px!important;height:32px!important;object-fit:contain!important;display:block}
.match-goal-list{display:flex;flex-direction:column}
.match-side-goal-row{display:grid;align-items:center;gap:8px;min-height:38px;padding:8px 0;border-bottom:1px solid #f0f0f0;font-size:14px}
.match-side-goal-row:last-child{border-bottom:0}
.match-goal-side-home .match-side-goal-row{grid-template-columns:42px minmax(0,1fr) 22px;text-align:left}
.match-goal-side-away .match-side-goal-row{grid-template-columns:22px minmax(0,1fr) 42px;text-align:right}
.match-side-minute{color:#d71920;font-weight:700}
.match-side-scorer{min-width:0;overflow-wrap:anywhere}
.match-side-ball{font-size:14px;line-height:1;text-align:center;filter:grayscale(1)}
.match-side-note{grid-column:1/-1;color:#777;font-size:11px}
.match-goal-side-home .match-side-note{text-align:left}
.match-goal-side-away .match-side-note{text-align:right}
.match-goal-empty{padding:12px 0;color:#aaa;text-align:center}
@media(max-width:640px){
 .match-status-events.match-goal-sides{grid-template-columns:1fr 1fr}
 .match-goal-side{padding:10px 8px 12px}
 .match-goal-team-head{font-size:12px;gap:5px}
 .match-goal-team-logo{width:24px!important;height:24px!important}
 .match-side-goal-row{font-size:12px;gap:4px}
 .match-goal-side-home .match-side-goal-row{grid-template-columns:31px minmax(0,1fr) 18px}
 .match-goal-side-away .match-side-goal-row{grid-template-columns:18px minmax(0,1fr) 31px}
}


/* 0.8.15: Never hide imported goal facts if an API event has no side mapping yet. */
.match-unassigned-goals{grid-column:1/-1;border-top:1px solid rgba(0,0,0,.1);padding:10px 14px 12px;margin-top:4px}
.match-unassigned-title{font-weight:700;margin-bottom:6px}
.match-unassigned-row{display:flex;gap:12px;align-items:center;padding:4px 0;font-size:14px}
.match-unassigned-row>span:first-child{min-width:38px;font-weight:700}
/* v0.8.16 complete match timeline */
.match-timeline-head{display:grid;grid-template-columns:1fr 84px 1fr;align-items:center;padding:14px 22px;border-bottom:1px solid #e4e4e4;background:#fff;font-size:15px}.match-timeline-head span:first-child{text-align:right}.match-timeline-head span:last-child{text-align:left}.match-timeline{background:#fff}.match-timeline-row{position:relative;display:grid;grid-template-columns:1fr 84px 1fr;min-height:48px;align-items:center;border-bottom:1px solid #ededed;padding:0 22px}.match-timeline-cell{display:flex;align-items:center;gap:9px;min-width:0}.match-timeline-home{justify-content:flex-end;text-align:right}.match-timeline-away{justify-content:flex-start;text-align:left}.match-timeline-minute{text-align:center;font-size:15px;font-weight:700;color:#111}.match-event-text{font-size:15px;line-height:1.25}.match-event-icon{font-size:17px;line-height:1}.match-timeline-cell small{font-size:10px;color:#7a7a7a;text-transform:uppercase;margin-left:4px}.match-timeline-home small{order:-1;margin-left:0;margin-right:4px}.match-timeline-unknown{position:absolute;left:50%;transform:translateX(-50%);background:#fff;padding:2px 8px;font-size:13px;white-space:nowrap}.match-timeline-unknown small{color:#777;margin-left:6px}.match-timeline-empty{text-align:center;padding:28px;color:#777}.match-status-board-head h2{margin:0}.match-status-board{overflow:hidden}
@media(max-width:700px){.match-timeline-head,.match-timeline-row{grid-template-columns:1fr 58px 1fr;padding-left:10px;padding-right:10px}.match-timeline-cell{gap:5px}.match-event-text{font-size:13px}.match-timeline-cell small{display:none}.match-timeline-minute{font-size:13px}.match-timeline-head{font-size:13px}}


/* v0.8.17 stable match timeline: no overlap, clean side columns */
.match-status-board{overflow:hidden}
.match-timeline-head{display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:center;padding:14px 22px;border-bottom:1px solid #e4e4e4;background:#fff;font-size:15px}
.match-timeline-head span:first-child{text-align:right;padding-right:12px}.match-timeline-head span:last-child{text-align:left;padding-left:12px}
.match-timeline{background:#fff;max-width:none;margin:0}
.match-timeline-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:center;min-height:52px;padding:0 22px;border-bottom:1px solid #ededed}
.match-timeline-cell{display:flex;align-items:center;gap:8px;min-width:0;white-space:normal}
.match-timeline-home{justify-content:flex-end;text-align:right;padding-right:12px}
.match-timeline-away{justify-content:flex-start;text-align:left;padding-left:12px}
.match-timeline-minute{text-align:center;font-size:15px;font-weight:700;color:#111;white-space:nowrap}
.match-event-text{font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.match-event-icon{font-size:17px;line-height:1;flex:0 0 auto}
.match-timeline-cell small{font-size:10px;color:#7a7a7a;text-transform:uppercase;white-space:nowrap}
.match-timeline-home small{order:-1}
.match-timeline-unknown{position:static!important;left:auto!important;transform:none!important;grid-column:1 / 4;width:100%;padding:10px 8px;background:#fafafa;text-align:center;font-size:14px;white-space:normal;border-top:1px dashed #eee}
.match-timeline-unknown small{display:inline-block;color:#777;margin-left:7px;text-transform:uppercase;font-size:10px}
.match-timeline-empty{text-align:center;padding:28px;color:#777}
@media(max-width:700px){
 .match-timeline-head,.match-timeline-row{grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);padding-left:10px;padding-right:10px}
 .match-timeline-home{padding-right:5px}.match-timeline-away{padding-left:5px}
 .match-event-text{font-size:13px}.match-timeline-minute{font-size:13px}.match-timeline-cell small{display:none}
}

/* v0.8.20 strict home/away match event alignment */
.match-timeline-head,
.match-timeline-row{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)!important}
.match-timeline-home{justify-content:flex-end!important;text-align:right!important;padding-right:14px!important}
.match-timeline-away{justify-content:flex-start!important;text-align:left!important;padding-left:14px!important}
.match-timeline-minute{grid-column:2!important;text-align:center!important;font-weight:600!important}
.match-timeline-home .match-event-text,.match-timeline-away .match-event-text{max-width:100%;overflow-wrap:anywhere}
.match-timeline-unknown{display:none!important}
.match-timeline-unassigned{border-top:1px solid #e8e8e8;background:#fafafa;padding:8px 18px}
.match-unassigned-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 0;font-size:13px;color:#555}
.match-unassigned-row small{font-size:10px;text-transform:uppercase;color:#888}
.match-unassigned-minute{font-weight:600;color:#111}
@media(max-width:700px){.match-timeline-head,.match-timeline-row{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr)!important}.match-timeline-home{padding-right:6px!important}.match-timeline-away{padding-left:6px!important}.match-unassigned-row{font-size:12px;flex-wrap:wrap}}

/* v0.8.21 normalized match timeline */
.match-status-board{overflow:hidden}
.match-timeline-head,.match-timeline-row{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);align-items:center}
.match-timeline-head{background:#111;color:#fff;padding:9px 16px;font-size:13px}
.match-timeline-head span:first-child{text-align:right;padding-right:14px}
.match-timeline-head span:nth-child(2){text-align:center}
.match-timeline-head span:last-child{text-align:left;padding-left:14px}
.match-timeline-row{min-height:54px;padding:0 16px;border-bottom:1px solid #ededed}
.match-timeline-cell{display:flex;flex-direction:column;justify-content:center;min-width:0}
.match-timeline-home{align-items:flex-end;text-align:right;padding-right:14px}
.match-timeline-away{align-items:flex-start;text-align:left;padding-left:14px}
.match-event-main{display:flex;align-items:center;gap:7px;min-width:0}
.match-event-text{font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.match-event-icon{flex:0 0 auto}
.match-timeline-cell small{margin-top:3px;font-size:10px;line-height:1;text-transform:uppercase;color:#888}
.match-timeline-minute{text-align:center;font-size:13px;font-weight:600;color:#111}
.match-timeline-unassigned{padding:10px 16px;background:#fafafa;border-top:1px solid #e6e6e6}
.match-timeline-unassigned>strong{display:block;margin-bottom:6px;text-align:center;font-size:11px;text-transform:uppercase;color:#777}
@media(max-width:700px){
 .match-timeline-head,.match-timeline-row{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);padding-left:8px;padding-right:8px}
 .match-timeline-head span:first-child,.match-timeline-home{padding-right:5px}
 .match-timeline-head span:last-child,.match-timeline-away{padding-left:5px}
 .match-event-text{font-size:12px}
 .match-timeline-cell small{display:none}
}

/* v0.8.24 — one matchday per view + bottom previous/next navigation */
.matches-archive-page .matchday-navigation-bottom{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:center;
  margin:34px 0 0;
  padding:28px 0 0;
  border:0;
  border-top:1px solid #e2e2e2;
  background:transparent;
}
.matches-archive-page .matchday-navigation-bottom .matchday-nav-slot{
  display:flex;
  min-height:58px;
}
.matches-archive-page .matchday-navigation-bottom .matchday-nav-prev{justify-content:flex-start}
.matches-archive-page .matchday-navigation-bottom .matchday-nav-next{justify-content:flex-end}
.matches-archive-page .matchday-navigation-bottom .matchday-nav-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-width:214px;
  height:58px;
  padding:0 22px;
  background:#07161b;
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  font-size:15px;
  font-weight:700;
  line-height:1;
  border:0;
  transition:background .18s ease,color .18s ease;
}
.matches-archive-page .matchday-navigation-bottom .matchday-nav-button:hover,
.matches-archive-page .matchday-navigation-bottom .matchday-nav-button:focus{
  background:#d71920;
  color:#fff;
}
.matches-archive-page .matchday-navigation-bottom .matchday-nav-arrow{
  font-size:30px;
  line-height:1;
  font-weight:300;
}
@media(max-width:650px){
  .matches-archive-page .matchday-navigation-bottom{gap:12px;margin-top:24px;padding-top:20px}
  .matches-archive-page .matchday-navigation-bottom .matchday-nav-button{min-width:0;width:100%;height:54px;padding:0 12px;gap:10px;font-size:12px}
  .matches-archive-page .matchday-navigation-bottom .matchday-nav-arrow{font-size:24px}
}

/* v0.8.25 clickable match-event players */
.match-event-player-link{color:inherit;text-decoration:none}.match-event-player-link:hover,.match-event-player-link:focus{color:#d0021b;text-decoration:underline;text-underline-offset:2px}

/* v0.8.26 live clock / half-time UI */
.side-live-label.is-halftime{color:#111;font-weight:700;letter-spacing:.02em}
.match-status.is-halftime{color:#111}
.match-status-pill.is-halftime{background:#111;color:#fff}

/* v0.8.27 — prominent live clock in the single-match scoreboard */
.match-center .match-scoreboard-clock{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;margin:0 auto 8px;border:1px solid #d6d6d6;background:#fff;color:#111;font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.04em;border-radius:2px}
.match-center .match-scoreboard-clock.match-status-live{background:var(--bundesliga-red,#d71920);border-color:var(--bundesliga-red,#d71920);color:#fff}
.match-center .match-scoreboard-clock.match-status-finished{background:#111;border-color:#111;color:#fff}
.match-center .match-scoreboard-clock.match-status-upcoming{background:#fff;border-color:#111;color:#111}
.match-center .match-scoreboard-clock.is-halftime{background:#111;border-color:#111;color:#fff}
@media(max-width:700px){.match-center .match-scoreboard-clock{font-size:11px;min-height:26px;padding:5px 8px}}


/* v0.8.37 header search + consistent match event labels */
.main-nav .nav-inner{display:flex;align-items:center}
.main-nav .menu{flex:1 1 auto}
.header-search{margin-left:auto;display:flex;align-items:center;height:34px;min-width:210px;max-width:260px;background:#fff;border:1px solid rgba(255,255,255,.2)}
.header-search input{width:100%;height:32px;border:0;outline:0;padding:0 10px;background:#fff;color:#111;font-family:inherit;font-size:13px;font-style:normal}
.header-search button{width:36px;height:32px;border:0;background:var(--bundesliga-red);color:#fff;cursor:pointer;font-size:19px;line-height:1}
.header-search button:hover{filter:brightness(.94)}
.match-timeline-cell>small,.match-timeline-home>small,.match-timeline-away>small{order:initial!important;display:block!important;margin-top:3px!important;margin-bottom:0!important}
.match-event-main{display:flex;align-items:center;gap:7px}
.match-timeline-home .match-event-main{justify-content:flex-end}
.match-timeline-away .match-event-main{justify-content:flex-start}
@media(max-width:760px){
 .header-search{min-width:150px;max-width:190px;margin-left:auto;margin-right:8px}
 .header-search input{font-size:12px}
}
@media(max-width:640px){
 .main-nav .nav-inner{position:relative}
 .header-search{min-width:0;max-width:none;flex:1 1 auto;margin-left:0;margin-right:8px}
}


/* Ligue2Actu 2.0 — full French visual system */
:root{--fr-blue:#071f4a;--fr-blue-2:#0b2f6b;--fr-red:#d7192d;--fr-red-dark:#bd0010;--fr-bg:#f5f7fb;--fr-card:#fff;--fr-line:#dfe5ee;--fr-text:#142033;--accent:#d7192d;--bundesliga-red:#d7192d;--germany-gold:#d7192d}
body{background:var(--fr-bg);color:var(--fr-text)}
.topbar{background:#fff;color:#5c6676;border-bottom:1px solid var(--fr-line)}.topbar-tag{color:var(--fr-blue);font-weight:900}.branding-row{padding-top:22px;padding-bottom:22px}.text-logo{color:var(--fr-blue);font-weight:950;letter-spacing:-1.5px}.text-logo:after{content:' ACTU';color:var(--fr-red)}.header-ad{background:#f1f3f7;color:#9aa3af;border:1px solid #e5e9ef}
.main-nav{background:var(--fr-blue);border-bottom:4px solid var(--fr-red);box-shadow:0 5px 18px rgba(7,31,74,.15)}.main-nav a{color:#fff}.main-nav a:hover,.main-nav .current-menu-item>a,.main-nav .current_page_item>a{background:var(--fr-red)}.header-search input{background:#fff;border:0}.header-search button{background:var(--fr-red);color:#fff}
.sports-dashboard-grid,.directory-page,.matches-archive-page,.arena-player-page,.arena-scorer-page,.full-standings-page,.team-profile-page{padding-top:34px}
.dashboard-section-heading,.side-widget-title,.statistics-title-row,.directory-hero,.arena-scorer-header,.full-standings-intro{border-color:var(--fr-red)!important}.dashboard-section-heading h1,.side-widget-title h2,.statistics-title-row h2,.directory-hero h1,.arena-scorer-header h1,.full-standings-intro h1{color:var(--fr-blue)!important;letter-spacing:-.4px}
.dashboard-news-card,.homepage-four-news-card,.widget,.archive-match-card,.team-directory-card,.player-directory-card,.news-category-card,.arena-player-side-card,.team-profile-facts,.team-squad-card{background:#fff;border-color:var(--fr-line);border-radius:8px;box-shadow:0 6px 20px rgba(7,31,74,.06);overflow:hidden}
.side-match-date,.standings-widget-head,.arena-scorer-table th,.statistics-table th{background:var(--fr-blue)!important;color:#fff!important}.side-match-score,.archive-match-score,.mini-badge,.team-badge{background:var(--fr-red)!important;color:#fff!important}.side-widget-select,.standings-filters select,.arena-scorer-filter select,.team-matchday-filter select{background:#fff!important;color:var(--fr-blue)!important;border:1px solid var(--fr-line)!important;border-bottom:3px solid var(--fr-red)!important}
.sidebar-scorers-table thead,.arena-player-stats th{background:var(--fr-blue)!important;color:#fff!important;border-bottom:3px solid var(--fr-red)}.sidebar-scorers-more,.section-title-row a,.section-title-row>span{border-color:var(--fr-red)!important;color:var(--fr-blue)!important}.sidebar-scorers-more:hover,.section-title-row a:hover{background:var(--fr-red)!important;color:#fff!important}
.directory-hero{border-bottom-width:4px!important;padding:22px 0;background:linear-gradient(90deg,rgba(7,31,74,.06),transparent);max-width:none!important}.news-category-card{border-left:4px solid var(--fr-red)!important;border-bottom:0!important;color:var(--fr-text)!important}.news-category-card:hover{transform:translateY(-2px);border-left-width:7px!important}
.matches-archive-grid{gap:18px}.archive-match-card{border-top:4px solid var(--fr-blue)!important}.archive-match-card.status-live{border-top-color:var(--fr-red)!important}.archive-match-link{padding:24px}.archive-match-status{background:var(--fr-blue)}.archive-match-more,.timeline-minute,.scorer-rank{color:var(--fr-red)!important}.archive-team-logo>span,.team-logo-placeholder{background:var(--fr-blue)!important;color:#fff!important}.matches-empty{border-top-color:var(--fr-red)!important}
.matchday-filterbar{background:var(--fr-blue)!important;border-top:0!important;border-radius:8px}.matchday-filterbar button{background:var(--fr-red)!important;color:#fff!important;border-radius:5px}.matchday-row-link:hover{background:#f7f9fd!important}
.team-profile-hero{background:linear-gradient(125deg,var(--fr-blue),#103a79)!important;border-bottom-color:var(--fr-red)!important}.team-profile-title>strong,.team-profile-rank strong{color:#fff!important}.team-season-stats{background:#eef2f8}.team-squad-card:hover{border-color:var(--fr-red)!important;transform:translateY(-2px)}
.arena-player-hero{background:linear-gradient(125deg,var(--fr-blue),#103a79)!important}.arena-player-kicker,.arena-player-number{color:#fff!important}.arena-player-section h2,.arena-player-side-card h3{color:var(--fr-blue)!important;border-color:var(--fr-red)!important}.arena-player-side-card{background:#fff!important}
.scorer-directory-page .arena-scorer-table th,.arena-scorer-table th{background:var(--fr-blue)!important;border-bottom:3px solid var(--fr-red)!important}.scorer-directory-page .arena-scorer-filter select{border-bottom-color:var(--fr-red)!important}.scorer-rank{font-weight:950}
.full-standings-page table thead th,.standings-table thead th{background:var(--fr-blue)!important;color:#fff!important}.compact-points,.stats-points{color:var(--fr-blue)!important;font-weight:950}.view-full-standings,.standings-full-link{background:var(--fr-blue)!important;color:#fff!important;border-radius:5px}.view-full-standings:hover,.standings-full-link:hover{background:var(--fr-red)!important}
.single-article,.article-content-wide{background:#fff}.single-article h1{color:var(--fr-blue)}.article-content h2{color:var(--fr-blue);border-left:4px solid var(--fr-red);padding-left:14px}
.site-footer{background:var(--fr-blue)!important;color:#fff;border-top:5px solid var(--fr-red)!important}
@media(max-width:900px){.sports-dashboard-grid{gap:20px}.main-nav{border-bottom-width:3px}}

/* Ligue2Actu v2.0.1 — final French red pass */
:root{--l2-red:#d7192d;--accent:#d7192d;--yellow:#d7192d}
/* Remove inherited 2LigaHeute yellow/neon accents across directories and match UI */
.section-heading,.dashboard-section-heading,.side-widget-title,.statistics-title-row,
.matchday-header,.matchday-title,.match-date-header,.match-date-title,
.matches-archive-page .matchday-header,.matches-archive-page .match-date-header,
.arena-scorer-table thead th,.arena-player-stats th,
.directory-page .directory-kicker,.archive-page .archive-kicker{border-color:#d7192d!important}
.sports-left-sidebar .side-widget-title a,.sports-right-sidebar .statistics-title-row a,
.directory-link,.match-filter-submit,.matches-filter button,.arena-scorer-filter button{border-color:#d7192d!important;color:#d7192d!important;background:#fff!important}
.sports-left-sidebar .side-widget-title a:hover,.sports-right-sidebar .statistics-title-row a:hover,
.directory-link:hover,.match-filter-submit:hover,.matches-filter button:hover,.arena-scorer-filter button:hover{background:#d7192d!important;border-color:#d7192d!important;color:#fff!important}
.arena-player-kicker,.arena-player-number{color:#d7192d!important}
.arena-player-stats th{background:#d7192d!important;color:#fff!important}
.match-status.status-live,.live-badge,.match-live-badge{color:#d7192d!important}
/* Cleaner directory cards */
.team-directory-card,.player-directory-card,.archive-match-card{border:1px solid #e5e7eb!important;border-radius:10px!important;box-shadow:0 5px 18px rgba(6,31,73,.06)!important;overflow:hidden;background:#fff!important}
.team-directory-card:hover,.player-directory-card:hover,.archive-match-card:hover{border-color:#d7192d!important;box-shadow:0 9px 24px rgba(6,31,73,.10)!important;transform:translateY(-1px)}
.directory-hero{border-bottom:3px solid #d7192d!important}

/* Ligue2Actu v2.0.2 visual correction */
:root{--fr-red:#d7192d;--fr-red-dark:#b51424;--accent:#d7192d;--bundesliga-red:#d7192d;--germany-gold:#d7192d;--yellow:#d7192d;--l2-red:#d7192d}
.text-logo:after{content:''!important;display:none!important}
.widget,.sidebar-box,.standings-widget,.scorers-widget{border-top-color:#d7192d!important}
.widget-title,.sidebar-title,.standings-title,.scorers-title{background:#d7192d!important;color:#fff!important}
.match-status-board-head,.matchday-date-heading{border-color:#d7192d!important}
.match-status-board-head{background:#d7192d!important;color:#fff!important}

/* Ligue2Actu v2.0.3 — verified visual correction */
:root{--fr-red:#c52b3a!important;--fr-red-dark:#a92230!important;--accent:#c52b3a!important;--bundesliga-red:#c52b3a!important;--germany-gold:#c52b3a!important;--yellow:#c52b3a!important;--l2-red:#c52b3a!important}
.text-logo:after{content:none!important;display:none!important}
.side-widget-title,.statistics-title-row,.widget-title,.sidebar-title,.standings-title,.scorers-title{background:#c52b3a!important;color:#fff!important}
.main-nav{border-bottom-color:#c52b3a!important}.main-nav a:hover,.main-nav .current-menu-item>a,.main-nav .current_page_item>a,.header-search button{background:#c52b3a!important}
[style*="#ffcc00"],[style*="#ffc400"],[style*="#ffd000"],[style*="#fbc02d"]{background:#c52b3a!important;border-color:#c52b3a!important}
