@import url("./brand-tokens.css");
:root{--navy:var(--brand-navy);--navy2:var(--brand-navy-raised);--ink:var(--brand-text);--muted:var(--brand-text-muted);--red:var(--sport-goals-against);--gold:var(--warning-accent);--paper:var(--brand-white);--line:var(--brand-border);--white:var(--brand-surface);--green:var(--sport-goals-for);font-family:var(--brand-font);color:var(--ink);background:var(--paper);font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}a{color:inherit;text-decoration:none}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.2;letter-spacing:-.04em}h2{font-size:1.3rem;letter-spacing:-.025em}h3{font-size:1.05rem}small{font-size:.8rem}.skip{position:fixed;top:-100px;left:12px;z-index:99;background:var(--brand-surface);padding:12px}.skip:focus{top:12px}.topbar{position:sticky;top:0;z-index:20;min-height:96px;background:var(--navy);color:var(--brand-surface);display:flex;align-items:center;gap:38px;padding:16px 32px;border-top:4px solid var(--brand-green)}.brand{display:flex;gap:13px;align-items:center;flex-shrink:0}.team-switch{margin-left:auto;min-width:240px}.team-switch label{display:block;font-size:.75rem;letter-spacing:.1em;font-weight:700;color:var(--brand-text-on-dark);margin-bottom:5px}.team-switch select{width:100%;color:var(--brand-surface);background:var(--navy2);border:1px solid var(--brand-border-dark);padding:9px 36px 9px 12px;border-radius:6px;max-width:360px}.mode-switch{display:flex;align-items:flex-end;flex-direction:column;gap:6px}.quiet{background:transparent;color:inherit;border:0;font-size:.875rem;padding:4px 0;text-decoration:underline;text-underline-offset:4px}.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 96px)}.rail{background:var(--brand-navy);border-right:1px solid var(--line);padding:32px 16px;display:flex;flex-direction:column;gap:48px}.rail nav{position:sticky;top:130px;display:grid;gap:8px}.rail nav a{padding:13px 14px;border-radius:6px;font-size:.9rem;font-weight:500;color:var(--brand-text-on-dark);display:flex;gap:13px;align-items:center}.rail nav a.active{color:var(--brand-navy);background:var(--brand-green);font-weight:600;box-shadow:inset 3px 0 var(--brand-green)}.rail nav a:hover{background:var(--brand-navy-raised);color:var(--brand-white)}.rail nav a.active:hover{background:var(--brand-green-hover);color:var(--brand-navy)}.rail nav span{font-size:1.1rem}.rail-bottom{margin-top:auto;padding:20px 14px;font-size:.875rem;color:var(--brand-text-on-dark)}.rail-bottom p{margin:14px 0 24px}.rail-bottom a{font-size:.875rem;text-decoration:underline}.rail-bottom small{display:block;margin-top:8px}.workspace{min-width:0;padding:22px 40px 0;max-width:1550px;width:100%;margin:auto}.notice{font-size:.875rem;color:var(--warning-text);background:var(--warning-soft);border:1px solid var(--warning-border);padding:10px 14px;border-radius:6px;margin-bottom:26px}.notice.real{color:var(--brand-text-muted);background:var(--info-soft);border-color:var(--info-border)}.eyebrow{font-size:.75rem;text-transform:uppercase;font-weight:750;letter-spacing:.11em;color:var(--muted);margin-bottom:8px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-head p{color:var(--muted);font-size:.9rem;margin-top:9px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;font-weight:700;border-radius:4px;line-height:1.4;white-space:normal}.amber{color:var(--warning-text);background:var(--warning-hover)}.navy{background:var(--info-soft);color:var(--navy)}.muted{color:var(--muted)}.white-badge{background:var(--brand-on-dark-wash);color:var(--brand-text-on-dark);border:1px solid var(--brand-on-dark-border)}.green{background:var(--sport-positive-soft);color:var(--green)}.red{background:var(--sport-negative-soft);color:var(--sport-negative-text)}.panel{background:var(--brand-surface);border:1px solid var(--line);border-radius:9px}.next-match{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:var(--navy);color:var(--brand-surface);border-radius:9px;padding:23px 28px;position:relative;overflow:hidden;margin-bottom:24px;border-left:4px solid var(--brand-green)}.next-match .eyebrow{color:var(--brand-text-on-dark)}.next-match h2{font-size:1.4rem;margin:7px 0}.next-match p{color:var(--brand-text-on-dark);font-size:.875rem}.date-box{text-align:right;padding-left:24px;border-left:1px solid var(--brand-on-dark-divider)}.date-box strong{display:block;font-size:1.65rem;letter-spacing:-.03em}.date-box span{display:block;font-size:.875rem;color:var(--brand-text-on-dark)}.opponent-top{display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(0,2fr);gap:28px;padding:24px;margin-bottom:24px}.opponent-name{font-size:1.6rem;line-height:1.2;letter-spacing:-.03em;margin-bottom:10px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:center}.metric{border-left:1px solid var(--line);padding-left:18px;min-width:0}.metric .value{font-size:1.65rem;font-weight:750;letter-spacing:-.03em;line-height:1.2;display:block;margin:6px 0}.metric .value.empty{font-size:.875rem;font-weight:500;line-height:1.5}.metric-label{font-size:.8rem;color:var(--muted)}.metric small{color:var(--muted)}.form{display:flex;gap:4px;flex-wrap:wrap;margin:9px 0}.form .badge{min-width:24px;justify-content:center;padding:3px}.reading{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:22px;margin-bottom:34px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}.section-head .caption{font-size:.8rem;color:var(--muted);margin-top:4px}.section-head a{font-size:.875rem;text-decoration:underline;text-underline-offset:4px;font-weight:600}.insight-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.insight{padding:20px}.insight .index{display:block;color:var(--red);font-size:.75rem;font-weight:800;letter-spacing:.06em;margin-bottom:10px}.insight h3{line-height:1.4;font-size:1.1rem;margin-bottom:9px}.insight p{font-size:.875rem;color:var(--muted);margin-bottom:17px}.evidence-link{font-size:.875rem;border:0;background:transparent;color:var(--navy);padding:0;text-decoration:underline;text-underline-offset:4px;font-weight:650}.featured{border-top:3px solid var(--brand-green);padding:20px 22px;height:calc(100% - 46px)}.featured .player-number{color:var(--red);font-weight:800;font-size:.8rem;letter-spacing:.06em}.featured h3{font-size:1.5rem;letter-spacing:-.03em;margin:8px 0 12px}.player-metrics{display:flex;gap:20px;margin-bottom:15px}.player-metrics b{display:block;font-size:1.3rem}.player-metrics span{font-size:.8rem;color:var(--muted)}.featured p{font-size:.875rem;margin-bottom:18px;color:var(--muted)}.button{background:var(--brand-green);border:1px solid var(--brand-green);color:var(--brand-navy);padding:9px 14px;border-radius:5px;font-size:.875rem;font-weight:650;display:inline-block}.button.secondary{background:var(--brand-surface);color:var(--navy);border-color:var(--line)}.carousel-head{display:flex;gap:14px;align-items:center}.carousel-controls{display:flex;gap:5px}.carousel-controls button{border:1px solid var(--line);background:var(--brand-surface);border-radius:5px;width:34px;height:34px;font-size:1.25rem;color:var(--navy)}.recent{margin-bottom:34px}.carousel{display:flex;gap:13px;overflow-x:auto;scroll-snap-type:x mandatory;padding:1px 0 14px;scrollbar-color:var(--brand-border-strong) transparent;scrollbar-width:thin}.match-card{flex:0 0 212px;text-align:left;scroll-snap-align:start;display:block;background:var(--brand-surface);border:1px solid var(--line);border-radius:7px;padding:17px;transition:border-color .15s,transform .15s}.match-card:hover{border-color:var(--brand-border-strong);transform:translateY(-2px)}.match-card .meta{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:.75rem;color:var(--muted);margin-bottom:14px}.match-team{display:grid;grid-template-columns:1fr auto;gap:9px;font-size:.875rem;margin:8px 0}.match-team.rival{font-weight:750}.match-team b{font-size:1.2rem}.match-card .cta{display:block;font-size:.8rem;font-weight:650;text-decoration:underline;text-underline-offset:4px;border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.timing{padding:24px;margin-bottom:34px}.timing-header{display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.legend{display:flex;gap:16px;align-items:center;font-size:.8rem}.legend span:before{content:"";display:inline-block;width:9px;height:9px;background:var(--sport-goals-for);margin-right:6px;border-radius:2px}.legend span:last-child:before{background:var(--red)}.timing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.quarter{min-width:0;border:0;text-align:left;background:var(--brand-white);border-radius:6px;padding:16px;color:var(--ink)}.quarter:hover{background:var(--brand-surface-soft)}.quarter-head{display:flex;gap:8px;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-bottom:17px}.quarter-head b{color:var(--ink)}.bar-label{font-size:.8rem;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px;margin-bottom:4px}.bar-label span,.bar-label b{white-space:nowrap}.bar{display:block;width:100%;height:7px;background:var(--brand-chart-track);border-radius:2px;margin-bottom:12px;overflow:hidden}.bar i{display:block;height:100%;background:var(--sport-goals-for)}.bar.received i{background:var(--red)}.quarter .cta{display:block;font-size:.75rem;text-decoration:underline;color:var(--muted)}.timing-foot{font-size:.8rem;color:var(--muted);margin-top:20px;display:flex;justify-content:space-between;gap:18px}.roster{margin-bottom:36px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--brand-white);font-weight:650;text-align:left}th,td{padding:14px 18px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}td.player-cell{font-weight:650}td a{text-decoration:underline;text-underline-offset:4px}td.numeric,th.numeric{text-align:right}.empty-state{background:var(--brand-surface);border:1px solid var(--line);border-radius:9px;padding:28px;color:var(--muted)}.empty-state h2{color:var(--ink);margin-bottom:10px}.empty-state p{margin-bottom:15px}.empty-state .button{margin-right:10px}.small-empty{font-size:.875rem;color:var(--muted);padding:20px;border:1px dashed var(--brand-border-strong);border-radius:7px}.loading{display:flex;gap:12px;align-items:center;padding:40px;font-size:1rem}.spinner{border:3px solid var(--line);border-top-color:var(--brand-green);width:24px;height:24px;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.75rem;padding:24px 0;border-top:1px solid var(--line);margin-top:20px}footer span{letter-spacing:0;font-weight:600;text-transform:none}footer a{text-decoration:underline}.back{display:inline-block;font-size:.875rem;color:var(--muted);margin-bottom:18px;text-decoration:underline;text-underline-offset:4px}.detail-score{padding:32px;margin-bottom:24px;text-align:center;background:var(--navy);color:var(--brand-surface);border-radius:9px}.detail-score .eyebrow{color:var(--brand-text-on-dark)}.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:28px;align-items:center;margin:22px 0;font-size:1.25rem;font-weight:750}.scoreboard strong{font-size:2.7rem;letter-spacing:.02em}.detail-score p{color:var(--brand-text-on-dark);font-size:.875rem}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:24px}.detail-grid>.panel{padding:22px}.lineups{margin-top:15px;display:grid;gap:0}.lineup{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:.875rem}.lineup:last-child{border:0}.lineup a{font-weight:650;text-decoration:underline}.lineup small{color:var(--muted)}.timeline{list-style:none;padding:0;margin:16px 0 0}.timeline li{display:flex;gap:14px;align-items:center;border-left:2px solid var(--line);padding:12px 0 12px 14px;font-size:.875rem}.timeline .minute{font-weight:750;color:var(--brand-green-strong);min-width:36px}.timeline small{display:block;color:var(--muted)}.timeline a{text-decoration:underline}.filters{display:flex;gap:8px;margin-bottom:20px}.filters button{padding:7px 14px;border-radius:5px;background:var(--brand-surface);border:1px solid var(--line);font-size:.875rem}.filters button.active{background:var(--navy);color:var(--brand-surface);border-color:var(--navy)}.calendar-item{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:20px 24px}.calendar-item:last-child{border:0}.calendar-item h3{margin:6px 0}.calendar-item p{font-size:.8rem;color:var(--muted)}.calendar-date{font-size:.875rem;color:var(--muted)}.calendar-date strong{display:block;color:var(--ink);font-size:1rem}.calendar-score{font-size:1.2rem;font-weight:750}.team-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.team-panel{padding:26px;border-top:3px solid var(--brand-green)}.team-panel h2{margin:15px 0 7px}.team-panel p{color:var(--muted);font-size:.875rem;margin-bottom:22px}.history-row{padding:18px;border-bottom:1px solid var(--line);font-size:.875rem}.history-row:last-child{border-bottom:0}.history-row h3{margin:5px 0}.history-row .muted{font-size:.8rem}.history-title{margin:32px 0 15px}.evidence-note{font-size:.875rem;color:var(--muted);margin:12px 0 20px}.evidence-item{border-top:1px solid var(--line);padding:16px 0;font-size:.875rem}.evidence-item strong{display:block}.evidence-item a{display:inline-block;text-decoration:underline;margin:6px 12px 0 0}.evidence-item small{color:var(--muted)}dialog{max-width:640px;width:calc(100% - 32px);border:0;border-radius:10px;padding:25px;color:var(--ink);max-height:85vh;overflow-y:auto;box-shadow:0 20px 100px var(--brand-shadow)}dialog::backdrop{background:var(--brand-overlay)}.dialog-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:14px}.reference-layout{max-width:1120px;margin:40px auto;padding:0 24px}.reference-layout h1{margin:24px 0 12px}.reference-layout h2{margin:28px 0 14px}.reference-layout p{margin:12px 0}.reference-layout code{font-size:.85rem;overflow-wrap:anywhere}.reference-layout pre{background:var(--navy);color:var(--brand-text-on-dark);padding:20px;border-radius:8px;overflow-x:auto;font-size:.85rem}.reference-layout ul{padding-left:24px}.reference-layout .panel{margin:15px 0}.reference-layout .notice{margin-top:20px}.reference-layout td{vertical-align:top}.reference-layout td code{white-space:normal}.reference-layout a{text-decoration:underline;text-underline-offset:4px}.detail-meta{font-size:.875rem;color:var(--muted);margin-bottom:18px}.count-note{font-size:.8rem;color:var(--muted)}@media(min-width:1600px){.workspace{padding-left:60px;padding-right:60px}}@media(max-width:1180px){.shell{grid-template-columns:180px minmax(0,1fr)}.workspace{padding:22px 24px 0}.topbar{gap:22px;padding:16px 24px}.opponent-top{grid-template-columns:1fr}.metrics .metric:first-child{border-left:0;padding-left:0}.reading{grid-template-columns:1fr}.featured{height:auto;display:block}.featured h3{display:inline-block;margin-right:30px}.featured .player-metrics{display:inline-flex;vertical-align:middle}.timing-grid{gap:10px}.rail{padding:28px 10px}.rail nav a{padding:12px 10px}.team-switch{min-width:210px}.mode-switch .quiet{font-size:.8rem}}@media(max-width:760px){.topbar{position:relative;padding:15px 18px;gap:16px;flex-wrap:wrap}.team-switch{order:3;width:100%;margin:0}.team-switch select{max-width:none;min-height:44px}.team-switch label{font-size:.75rem}.mode-switch{margin-left:auto;max-width:140px}.shell{display:block}.rail{padding:0;border:0;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:15;display:block}.rail nav{position:static;display:flex;gap:0;justify-content:space-around}.rail nav a{flex:1;justify-content:center;padding:15px 8px;border-radius:0;font-size:.8rem;gap:5px}.rail nav a.active{box-shadow:inset 0 -3px var(--brand-green)}.rail nav span{display:none}.rail-bottom{display:none}.workspace{padding:18px 16px 0}.notice{font-size:.8rem;margin-bottom:22px}.page-head{align-items:flex-start;margin-bottom:20px}.page-head .badge{display:none}.page-head p{font-size:.8rem}.next-match{padding:20px;grid-template-columns:1fr;gap:16px}.next-match h2{font-size:1.2rem}.date-box{text-align:left;border-left:0;border-top:1px solid var(--brand-on-dark-divider);padding:12px 0 0;display:flex;gap:16px;align-items:center}.date-box strong{font-size:1.3rem}.date-box span{font-size:.8rem}.opponent-top{padding:20px;gap:22px}.opponent-name{font-size:1.4rem}.metrics{grid-template-columns:1fr 1fr;gap:20px}.metric{padding-left:14px}.metric:nth-child(3){border-left:0;padding-left:0}.metric .value{font-size:1.5rem}.insight-list{grid-template-columns:1fr}.insight{padding:18px}.reading{gap:24px}.featured .player-metrics{display:flex}.featured h3{display:block}.carousel-head{gap:8px}.carousel-controls{display:none}.section-head{align-items:flex-start}.section-head a{font-size:.8rem;text-align:right}.section-head h2{font-size:1.2rem}.match-card{flex-basis:220px}.timing{padding:20px}.timing-header{flex-direction:column}.timing-grid{grid-template-columns:1fr 1fr;gap:12px}.quarter{padding:14px}.timing-foot{display:block}.timing-foot span{display:block;margin-top:7px}.legend{font-size:.8rem}.detail-grid{grid-template-columns:1fr}.scoreboard{grid-template-columns:1fr auto 1fr;gap:12px;font-size:.9rem}.scoreboard strong{font-size:1.8rem}.detail-score{padding:24px 16px}.calendar-item{grid-template-columns:1fr auto;gap:10px;padding:18px}.calendar-date{grid-column:1/-1;display:flex;gap:10px;font-size:.8rem}.calendar-date strong{font-size:.875rem}.calendar-item h3{font-size:.95rem}.calendar-item .button{padding:8px;font-size:.8rem}.team-list{grid-template-columns:1fr}footer{font-size:.75rem;flex-wrap:wrap}.reference-layout{margin:24px auto;padding:0 16px}.reference-layout th,.reference-layout td{min-width:170px}th,td{padding:12px 14px}.filters{flex-wrap:wrap}dialog{padding:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.catalog-select{display:block;width:100%;max-width:100%;border:1px solid var(--line);border-radius:5px;background:var(--brand-surface);color:var(--ink);font-size:.875rem;padding:11px;margin:6px 0 20px}.panel a:hover{text-decoration:underline}.unresolved-note{padding:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.875rem}

.analysis-context{margin-bottom:20px}.analysis-context .filters{flex-wrap:wrap;margin-bottom:8px}

/* Team directory and lightweight team profiles. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.directory-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.25fr);gap:18px;padding:22px;margin-bottom:18px}
.directory-filter{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:.8rem;color:var(--muted);font-weight:600}
.directory-filter select,.directory-filter input{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:6px;background:var(--brand-surface);color:var(--ink);padding:10px 12px;font-size:.875rem;font-weight:400}
.directory-filter input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
.directory-summary{display:flex;justify-content:space-between;gap:15px;margin:0 0 16px}
.directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:30px}
.directory-grid>.small-empty{grid-column:1/-1}
.directory-card{display:flex;align-items:flex-start;gap:12px;padding:18px;min-width:0}
.directory-team-link{display:flex;align-items:center;gap:14px;flex:1;min-width:0}
.directory-team-link>span:last-child{min-width:0}
.directory-team-link .team-crest{width:64px;height:64px;flex-basis:64px;border:1px solid var(--line)}
.directory-team-link h2{font-size:1rem;line-height:1.4;overflow-wrap:anywhere}
.directory-competition{display:block;font-size:.75rem;color:var(--muted);margin:5px 0 9px}
.directory-cta{font-size:.75rem;font-weight:650;color:var(--navy)}
.favorite-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line);border-radius:8px;background:var(--brand-surface);color:var(--brand-text-muted)}
.favorite-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.favorite-button.is-favorite{background:var(--brand-green-soft);border-color:var(--brand-green);color:var(--brand-green-strong)}
.favorite-button.is-favorite svg{fill:var(--brand-green)}
.favorite-button:hover{border-color:var(--brand-border-strong);background:var(--brand-surface-soft)}
.favorite-button.is-favorite:hover{background:var(--brand-green-soft)}
.profile-head{align-items:center}
.profile-identity{display:flex;align-items:center;gap:18px;min-width:0}
.profile-identity>div{min-width:0}
.profile-identity h1{font-size:clamp(1.3rem,2.4vw,1.95rem);overflow-wrap:anywhere}
.profile-identity .team-crest{border:1px solid var(--line)}
.profile-identity .eyebrow{font-size:.75rem;margin:0 0 8px;text-transform:none;letter-spacing:.025em}
.profile-form{padding:24px;margin-bottom:24px}
.timing-coverage-note{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.profile-form-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center}
.profile-form-summary .comparison-metrics{margin:0}
.profile-form-summary .metric{padding:0;border:0}
.profile-recent{margin-top:20px;padding-bottom:5px}
.profile-calendar{margin-bottom:28px}
.profile-calendar-scroll{max-height:620px;overflow:auto}
.profile-calendar-scroll th{position:sticky;top:0;z-index:1}
.profile-calendar-date{white-space:nowrap;width:100px}
.profile-calendar-date small{display:block;color:var(--muted)}
.profile-match-meta{display:block;color:var(--muted);font-size:.75rem;margin-bottom:6px}
.profile-match-teams{display:grid;gap:3px;font-size:.8rem;line-height:1.45;overflow-wrap:anywhere}
.profile-match-teams .own-team{font-weight:700}
.profile-result{display:block;font-size:1rem;font-weight:700;white-space:nowrap;margin-bottom:5px}
.profile-calendar-scroll td:last-child{font-size:.8rem;white-space:nowrap}
@media(max-width:1050px){.directory-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.directory-search{grid-column:1/-1}.directory-grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .directory-controls{grid-template-columns:1fr 1fr;padding:18px;gap:14px}
  .directory-filter:first-child{grid-column:1/-1}
  .directory-card{padding:16px;gap:8px}
  .directory-team-link{gap:10px}
  .directory-team-link .team-crest{width:52px;height:52px;flex-basis:52px;padding:5px}
  .directory-team-link h2{font-size:.9rem}
  .directory-competition{font-size:.7rem}
  .profile-identity{gap:12px}
  .profile-identity .team-crest{width:54px;height:54px;flex-basis:54px;padding:5px}
  .profile-identity .eyebrow{font-size:.7rem}
  .profile-head{gap:12px}
  .profile-form{padding:20px}
  .profile-form-summary{grid-template-columns:1fr;gap:18px}
  .profile-form-summary .comparison-metrics{padding-top:15px;border-top:1px solid var(--line)}
  .profile-calendar-scroll table{min-width:570px}
}

/* Match header and the two teams' form comparison. */
.next-match{display:block;padding:26px 28px}
.fixture-topline{display:flex;align-items:center;justify-content:space-between;gap:14px}
.next-match .fixture-competition{color:var(--brand-text-on-dark);font-size:.85rem;font-weight:650;line-height:1.45}
.fixture-round{flex-shrink:0;border:1px solid var(--brand-on-dark-border);border-radius:5px;padding:5px 9px;font-size:.75rem;color:var(--brand-text-on-dark);white-space:nowrap}
.next-match .fixture-teams{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);align-items:center;gap:22px;margin:25px 0}
.fixture-team{min-width:0;display:flex;align-items:center;justify-content:center;gap:16px}
.fixture-team-name{font-size:clamp(1rem,1.65vw,1.35rem);line-height:1.35;overflow-wrap:anywhere}
.fixture-vs{text-align:center;color:var(--brand-gray);font-size:.85rem;font-weight:500}
.team-crest{display:flex;align-items:center;justify-content:center;flex:0 0 80px;width:80px;height:80px;padding:8px;border-radius:10px;background:var(--brand-surface)}
.team-crest img{display:block;width:100%;height:100%;object-fit:contain}
.team-crest.small{flex-basis:42px;width:42px;height:42px;padding:4px;border:1px solid var(--line);border-radius:7px}
.crest-initials{font-size:1.1rem;font-weight:750;color:var(--navy)}
.fixture-info{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 26px;padding-top:17px;border-top:1px solid var(--brand-on-dark-divider)}
.fixture-datetime{display:flex;align-items:center;gap:9px;font-size:1rem;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.next-match .fixture-venue{display:flex;align-items:center;gap:8px;color:var(--brand-text-on-dark);font-size:.85rem;line-height:1.4}
.fixture-venue svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5}
.form-comparison{padding:24px;margin-bottom:30px}
.comparison-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}
.comparison-header .count-note{margin-top:4px}
.comparison-filters{flex-shrink:0;margin:0}
.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-team{min-width:0;display:flex;flex-direction:column;background:var(--brand-white);border:1px solid var(--line);border-radius:7px;padding:17px}
.form-team-heading{display:flex;align-items:center;gap:11px;min-height:42px}
.form-team-heading>div{min-width:0}
.form-team-heading .eyebrow{font-size:.65rem;margin-bottom:3px}
.form-team-heading h3{font-size:1rem;line-height:1.35;overflow-wrap:anywhere}
.comparison-form{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin:14px 0}
.comparison-form .metric-label{flex:1}
.comparison-form .form{margin:0;min-height:24px}
.comparison-form .form .badge{padding:4px 8px}
.comparison-form small{flex-basis:100%;font-size:.75rem;color:var(--muted)}
.form-unavailable{font-size:.85rem;color:var(--muted)}
.comparison-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:14px}
.comparison-metrics .metric{padding-left:0;border:0}
.comparison-metrics .value{font-size:1.65rem;margin-bottom:0;font-variant-numeric:tabular-nums}
.comparison-metrics .value.empty{font-size:.85rem}
.comparison-metrics small:empty{display:none}
.comparison-position{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:12px;margin-top:auto;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}
.comparison-position strong{font-weight:600}
.comparison-match{display:block;border-top:1px solid var(--line);margin-top:14px;padding-top:14px}
.comparison-match:hover .comparison-match-cta{text-decoration-thickness:2px}
.comparison-match-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;margin-bottom:10px;font-size:.75rem;color:var(--muted)}
.comparison-match .match-team{align-items:baseline;font-size:.8rem;line-height:1.45;margin:4px 0}
.comparison-match .match-team b{font-size:1rem}
.comparison-match-cta{display:block;margin-top:10px;font-size:.75rem;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.comparison-note{margin-top:16px;font-size:.75rem;color:var(--muted)}
@media(max-width:1000px){.fixture-team{flex-direction:column;text-align:center;gap:10px}.fixture-team-name{font-size:1.15rem}}
@media(max-width:760px){
  .next-match{padding:20px 18px}
  .fixture-topline{align-items:flex-start;gap:10px}
  .next-match .fixture-competition{font-size:.75rem}
  .fixture-round{font-size:.7rem;padding:4px 6px}
  .next-match .fixture-teams{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);gap:10px;margin:23px 0}
  .fixture-team-name{font-size:1rem}
  .team-crest{width:64px;height:64px;flex-basis:64px;padding:6px}
  .fixture-info{justify-content:flex-start;gap:12px}
  .fixture-datetime{font-size:1rem}
  .next-match .fixture-venue{width:100%;font-size:.75rem}
  .form-comparison{padding:20px}
  .comparison-header{align-items:flex-start;flex-direction:column;gap:14px}
  .comparison-grid{grid-template-columns:1fr;gap:14px}
  .comparison-filters{width:100%}
  .comparison-filters button{flex:1;min-height:42px}
  .form-team{padding:17px}
  .form-team-heading{min-height:0}
  .team-crest.small{width:42px;height:42px;flex-basis:42px}
}

/* Global navigation stays separate from the entity identified in the URL. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.topbar{gap:28px}
.team-switch{min-width:0;width:360px;max-width:40%;flex:0 1 360px}
.team-switch select{display:block;max-width:100%;min-width:0;text-overflow:ellipsis}
.team-change{display:block;background:none;border:0;color:var(--brand-text-on-dark);text-decoration:underline;text-underline-offset:3px;font-size:.75rem;padding:5px 0 0}
.team-change:hover{color:var(--brand-surface)}
.preference-note{padding:12px 16px;border:1px solid var(--warning-border);background:var(--warning-soft);border-radius:6px;color:var(--warning-text);font-size:.875rem;margin-bottom:20px}
.breadcrumbs{margin:0 0 18px;color:var(--muted);font-size:.8rem}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:5px 9px;list-style:none;padding:0;margin:0}
.breadcrumbs li:not(:last-child):after{content:'›';margin-left:9px;color:var(--brand-text-muted)}
.breadcrumbs a:hover{text-decoration:underline}
.breadcrumbs [aria-current]{color:var(--ink)}
.entity-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:0 0 28px;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-inline:contain}
.entity-tabs a{flex:0 0 auto;padding:13px 16px;font-size:.875rem;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.entity-tabs a:hover{background:var(--brand-surface-soft);color:var(--navy)}
.entity-tabs a.active{color:var(--navy);border-color:var(--brand-green)}
.entity-actions{display:flex;align-items:center;gap:15px;flex-shrink:0}
.profile-head{align-items:center}
.profile-identity{min-width:0}
.profile-identity>div{min-width:0}
.profile-identity h1{overflow-wrap:anywhere}
.page-head .entity-name{font-size:1.2rem;color:var(--ink);font-weight:700;line-height:1.4;margin-top:5px}
.entity-name a:hover{text-decoration:underline}
.overview-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:-5px 0 30px}
.quiet-link,.section-link a{font-size:.875rem;text-decoration:underline;text-underline-offset:4px}
.section-link{margin:16px 0 30px}
.filters{flex-wrap:wrap}
.filter-link{display:inline-flex;align-items:center;min-height:40px;padding:7px 14px;border:1px solid var(--line);border-radius:5px;background:var(--brand-surface);font-size:.875rem}
.filter-link.active{background:var(--navy);border-color:var(--navy);color:var(--brand-surface)}
.filter-link:hover{border-color:var(--brand-border-strong)}
.entity-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:25px 0 32px}
.entity-shortcuts>a{padding:24px;display:flex;flex-direction:column;gap:10px;min-width:0}
.entity-shortcuts p{font-size:.875rem;color:var(--muted)}
.entity-shortcuts span{font-size:.85rem;font-weight:650;margin-top:auto;padding-top:10px;color:var(--navy)}
.entity-shortcuts>a:hover{border-color:var(--brand-border-strong);text-decoration:none}
.entity-shortcuts>a:hover span{text-decoration:underline}
.league-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:20px;margin-bottom:14px}
.league-context .directory-filter select{width:100%;min-height:44px}
.league-search{max-width:520px;margin-bottom:18px}
.league-summary,.league-empty{padding:28px;margin-bottom:24px}
.league-summary>p,.league-empty>p{margin:10px 0;color:var(--muted);font-size:.9rem}
.league-summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}
.league-summary-metrics .metric:first-child{border:0;padding-left:0}
.league-empty .badge{margin:16px 0 4px}
.league-empty .button{margin-top:15px}
.round-picker{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 24px}
.round-picker a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:42px;background:var(--brand-surface);border:1px solid var(--line);border-radius:5px;font-size:.8rem;font-weight:650}
.round-picker a.active{background:var(--navy);border-color:var(--navy);color:var(--brand-surface)}
.round-picker a:hover{border-color:var(--brand-border-strong)}
.round-heading{margin-bottom:16px}
.league-matches,.match-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:30px}
.league-match{padding:20px;min-width:0}
.league-match .meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;color:var(--muted);font-size:.8rem;margin-bottom:18px}
.league-match-team{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:12px}
.league-match-team a{font-size:.875rem;font-weight:650;overflow-wrap:anywhere}
.league-match-team b{font-size:1rem;max-width:90px;line-height:1.3;text-align:right}
.league-match>p{margin:15px 0 12px}
.match-directory .match-card{min-width:0;padding:20px}
#my-team-dialog{max-width:520px;padding:32px}
#my-team-dialog h2{font-size:1.65rem;line-height:1.3}
#my-team-description{margin:15px 0 25px;color:var(--muted);font-size:.9rem}
#my-team-choice{width:100%;min-width:0;min-height:48px;text-overflow:ellipsis}
.choice-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}
input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
@media(max-width:1000px){.topbar{gap:18px}.team-switch{max-width:43%}.entity-actions{flex-shrink:1}.profile-head{align-items:flex-start}.league-matches{grid-template-columns:1fr}}
@media(max-width:760px){
  .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .brand{min-width:0;gap:9px}
  .mode-switch{max-width:130px;margin:0}.mode-switch .badge{font-size:.65rem}.mode-switch .quiet{font-size:.7rem}
  .team-switch{grid-column:1/-1;width:100%;max-width:none;order:initial}
  .team-change{padding:7px 0;min-height:28px}
  .rail nav a{min-height:50px;font-size:.8rem;white-space:nowrap}
  .breadcrumbs{font-size:.75rem;margin-bottom:14px}
  .entity-tabs{gap:0;margin-bottom:24px}.entity-tabs a{padding:12px 13px;font-size:.8rem}
  .profile-head{flex-direction:column;gap:14px}.profile-head .entity-actions{align-self:flex-end}.profile-head h1{font-size:1.55rem}
  .profile-head .entity-actions .badge{display:inline-flex}.entity-actions .quiet{font-size:.8rem}
  .overview-actions{gap:10px;margin-bottom:26px}.overview-actions .quiet-link{width:100%}
  .entity-shortcuts{grid-template-columns:1fr;gap:13px}.entity-shortcuts>a{padding:20px}
  .league-context{grid-template-columns:1fr 1fr;padding:16px;gap:12px}.league-context .directory-filter:first-child{grid-column:1/-1}
  .league-context .directory-filter select{min-width:0}.league-context .directory-filter{min-width:0}
  .league-summary,.league-empty{padding:20px}.league-summary-metrics{grid-template-columns:1fr;gap:20px}.league-summary-metrics .metric{border:0;padding:0}
  .league-matches,.match-directory{grid-template-columns:1fr;gap:13px}
  .league-match{padding:16px}.league-match-team{gap:8px}.league-match-team a{font-size:.8rem}.league-match-team b{font-size:.85rem;max-width:82px}
  .round-picker{gap:6px}.round-picker a{min-width:42px}
  #my-team-dialog{padding:24px}#my-team-dialog h2{font-size:1.4rem}
  .choice-actions .button{min-height:44px}
}
:root{--global-header-height:116px}
.rail nav{top:calc(var(--global-header-height) + 20px)}
@media(max-width:760px){
  .topbar{position:sticky;top:0;padding:12px 16px;gap:8px}
  
  .team-switch{display:grid;grid-template-columns:1fr auto;gap:5px}
  .team-switch label{margin:0;align-self:center;font-size:.7rem}
  .team-switch select{grid-column:1/-1;grid-row:2}
  .team-change{grid-column:2;grid-row:1;padding:0;min-height:0;font-size:.7rem}
  .rail{top:var(--global-header-height)}
  .rail nav{position:static}
}
[hidden]{display:none!important}

/* One widget family across Home, team, Liga and deep dives. */
:root{--widget-padding:24px;--widget-gap:20px;--widget-radius:9px;--widget-surface:var(--brand-surface);--widget-inset:var(--brand-white);--widget-border:var(--line)}
.panel,.widget-card{background:var(--widget-surface);border:1px solid var(--widget-border);border-radius:var(--widget-radius)}
main .widget{padding:var(--widget-padding);margin:0 0 24px;min-width:0;color:var(--ink);background:var(--widget-surface);border:1px solid var(--widget-border);border-radius:var(--widget-radius);display:block;overflow:visible}
.widget-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--widget-gap);padding-bottom:var(--widget-gap);margin-bottom:var(--widget-gap);border-bottom:1px solid var(--widget-border);text-align:left}
.widget-head>div:first-child,.widget-body{min-width:0}
main .widget-head h2{margin:0;font-size:1.2rem;font-weight:650;line-height:1.35;color:var(--ink);overflow-wrap:anywhere}
main .widget .widget-subtitle{margin:7px 0 0;color:var(--muted);font-size:.85rem;font-weight:400;line-height:1.5}
.widget-tools{display:flex;align-items:center;gap:12px;flex-shrink:0}
.widget-footer{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:10px;margin-top:var(--widget-gap);padding:var(--widget-gap) 0 0;border-top:1px solid var(--widget-border);text-align:left}
.widget-action{display:inline-flex;align-items:center;gap:5px;min-height:42px;font-size:.85rem}
.widget-footer .widget-action{text-decoration:none}
#main:focus{outline:none}
.widget-empty,.widget .small-empty{padding:18px;background:var(--widget-inset);border:1px solid var(--widget-border);border-radius:6px;color:var(--muted);font-size:.875rem;line-height:1.6;margin:0}
.widget-empty p{margin:0}
.widget-body>.filters{margin:0 0 20px}
.widget .analysis-context{margin:0 0 20px;padding:0;border:0;background:none}
.widget .analysis-context .count-note{margin-top:10px}
.widget .match-directory,.widget .league-matches{margin:0}
.widget .table-scroll{border:1px solid var(--widget-border);border-radius:6px;max-width:100%}
.widget .table-scroll table{margin:0}
.widget .carousel{margin-bottom:0;padding-bottom:8px}
.widget .profile-recent{margin-top:20px}
.widget .timing-foot{margin-bottom:0}
.widget .timing-coverage-note{margin-bottom:0}
.widget .comparison-note,.widget .count-note{line-height:1.5}
.widget .legend{margin:0;white-space:nowrap}
.widget .featured{padding:0;height:auto;border:0;background:none}
.widget .insight{border:0;padding:0;background:none}
.widget .insight+.insight{padding-top:20px;border-top:1px solid var(--widget-border)}
.reading{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:24px}
main .reading>.widget{margin-bottom:0;display:flex;flex-direction:column}
.reading .widget-body{flex:1}
.widget .fixture-teams{margin:4px 0 24px}
.widget .fixture-vs{color:var(--muted)}
.widget .fixture-info{border-top:1px solid var(--widget-border)}
.widget .fixture-venue{color:var(--muted);margin:0;font-size:.85rem}
.widget .fixture-datetime{color:var(--ink);font-size:1rem}
.widget .fixture-team-name{color:var(--ink);font-weight:650}
.team-detail-identity{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.team-detail-identity h3{font-size:1.1rem;line-height:1.4;overflow-wrap:anywhere}
.team-detail-context,.team-detail-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0}
.team-detail-context{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--widget-border)}
.team-detail-context dt{font-size:.75rem;color:var(--muted);margin-bottom:5px}
.team-detail-context dd{font-size:.9rem;font-weight:600;margin:0;overflow-wrap:anywhere}
.team-detail-metrics .metric,.player-detail-metrics .metric{padding:0;border:0;align-self:start}
.team-detail-metrics .value{font-size:1.55rem;line-height:1.35}
.team-detail-metrics .value.empty{font-size:.9rem;font-weight:500}
.team-detail-metrics .metric-label{line-height:1.4;min-height:2.8em}
.team-detail-metrics small{line-height:1.5}
.player-detail-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.player-role{font-size:1rem;margin-bottom:20px}
main .detail-score{text-align:left}
main .detail-score .count-note{color:var(--muted)}
.detail-score .scoreboard{text-align:center;margin:24px 0;color:var(--ink)}
.scoreboard>div{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.scoreboard>div>span{overflow-wrap:anywhere}
.scoreboard small{font-size:.7rem;font-weight:500;color:var(--muted)}
.widget .lineups{margin-top:0}
.detail-grid{gap:20px;margin-bottom:24px}
main .detail-grid>.widget{margin-bottom:0}
.widget .history-row:first-child{padding-top:0}
.widget .history-row:last-child{padding-bottom:0}
.widget .league-summary-metrics{margin:0 0 20px}
.entity-shortcuts{gap:20px;margin:0 0 24px}
.widget-navigation,.entity-shortcuts>.widget-navigation{display:flex;flex-direction:column;gap:10px;min-width:0;padding:var(--widget-padding);border-radius:var(--widget-radius)}
.widget-navigation h2{font-size:1.2rem;font-weight:650;line-height:1.35}
.widget-navigation p{color:var(--muted);font-size:.875rem;line-height:1.5}
.widget-navigation-action{display:block;margin-top:auto;padding-top:20px;font-size:.85rem;font-weight:600;color:var(--navy)}
.widget-navigation-action>span{padding:0;margin:0}
.widget-card{transition:border-color .15s,box-shadow .15s;min-width:0}
.widget-navigation:hover,.directory-card:has(.directory-team-link:hover),a.widget-card:hover,.league-match:has(a:hover){border-color:var(--brand-border-strong);box-shadow:0 2px 8px var(--brand-shadow-soft)}
.quarter{border:1px solid var(--widget-border);transition:border-color .15s,box-shadow .15s}
.quarter:hover{border-color:var(--brand-border-strong);box-shadow:0 2px 8px var(--brand-shadow-soft)}
.widget-action:focus-visible,.widget-navigation:focus-visible,.widget-card:focus-visible,.quarter:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
@media(max-width:1000px){.team-detail-context,.team-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  :root{--widget-padding:20px;--widget-gap:18px}
  .widget-head{flex-wrap:wrap;gap:14px}
  .widget-tools{flex-wrap:wrap;flex-shrink:1;max-width:100%}
  main .widget-head h2{font-size:1.1rem}
  .reading{grid-template-columns:1fr;gap:24px}
  .widget .fixture-teams{margin:4px 0 20px}
  .widget .fixture-venue{font-size:.8rem}
  .widget .comparison-filters{width:100%}
  .team-detail-context,.team-detail-metrics{gap:18px 14px}
  .team-detail-identity{align-items:flex-start;gap:12px}
  .team-detail-identity h3{font-size:1rem}
  .team-detail-metrics .metric-label{font-size:.8rem}
  .team-detail-metrics .value{font-size:1.4rem}
  .team-detail-metrics .value.empty{font-size:.85rem}
  .player-detail-metrics{grid-template-columns:1fr 1fr}
  .widget-footer .widget-action{max-width:100%;white-space:normal;text-align:left}
  .widget .round-picker{margin-top:0}
  .widget .scoreboard{gap:10px;font-size:.85rem}
  .widget .scoreboard strong{font-size:1.4rem;max-width:100px;overflow-wrap:anywhere}
  .widget .scoreboard .team-crest{width:48px;height:48px;flex-basis:48px}
}

/* Calendar states reuse the same widgets on Home, team and league pages. */
.calendar-date{display:grid;gap:6px;min-width:0}
.calendar-previous-date{display:block;color:var(--muted);font-size:.8rem;font-weight:400;line-height:1.45;white-space:normal}
.calendar-date-pending{font-weight:600}
.calendar-state{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0}
.calendar-state .badge,.league-match .meta .badge{white-space:normal;text-align:left}
.pending-fixtures{list-style:none;padding:0;margin:0}
.pending-fixtures li{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.pending-fixtures li:first-child{padding-top:0}
.pending-fixtures li:last-child{padding-bottom:0;border-bottom:0}
.pending-fixtures li>div{min-width:0}
.pending-match-teams{font-weight:600;overflow-wrap:anywhere}
.pending-fixtures .evidence-link{flex-shrink:0}
.league-match .meta{align-items:flex-start;flex-wrap:wrap;gap:12px}
.profile-calendar-date .fixture-datetime{font-size:.9rem;white-space:nowrap}
.profile-calendar-date .calendar-previous-date{max-width:240px}
@media(max-width:640px){
  .pending-fixtures li{align-items:flex-start;flex-direction:column;gap:14px}
  .league-match .meta{flex-direction:column}
}

/* Next match V2: scoped layout, shared by Home and team summaries. */
main .next-match-v2 .widget-head{align-items:center}
.next-match-v2 .widget-tools{flex-wrap:wrap;justify-content:flex-end;gap:8px}
.next-match-v2 .nm-season{font-size:.8rem;font-weight:700;color:var(--muted)}
.next-match-v2 .nm-kickoff{text-align:center;margin:4px 0 26px}
.next-match-v2 .nm-kickoff time{display:grid;gap:7px}
.next-match-v2 .nm-date{font-size:.875rem;color:var(--muted);font-weight:650;text-transform:capitalize}
.next-match-v2 .nm-time{font-size:2.3rem;line-height:1.2;font-weight:750;font-variant-numeric:tabular-nums;color:var(--ink)}
.next-match-v2 .nm-time small{font-size:.65em}
.next-match-v2 .nm-comparison{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);grid-template-rows:80px auto auto auto auto;column-gap:18px;row-gap:14px}
.next-match-v2 .nm-team{display:grid;grid-row:1 / span 5;grid-template-rows:subgrid;min-width:0;justify-items:center;text-align:center}
.next-match-v2 .nm-team-home{grid-column:1}
.next-match-v2 .nm-team-away{grid-column:3}
.next-match-v2 .nm-crest{display:grid;place-items:center;width:80px;height:80px;align-self:center}
.next-match-v2 .nm-crest img{display:block;width:100%;height:100%;object-fit:contain}
.next-match-v2 .nm-crest img[hidden]{display:none}
.next-match-v2 .nm-crest-fallback{display:none;width:64px;height:72px;place-items:center;clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%);background:var(--widget-inset);border:1px solid var(--line);font-size:1.3rem;font-weight:750;color:var(--navy)}
.next-match-v2 .nm-crest.is-fallback .nm-crest-fallback{display:grid}
.next-match-v2 .nm-team-name{margin:0;align-self:start;font-size:clamp(.95rem,1.7vw,1.18rem);line-height:1.4;font-weight:700;overflow-wrap:anywhere;max-width:100%}
.next-match-v2 .nm-position{display:flex;gap:5px;align-items:center;align-self:start;margin:0;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:.85rem;font-weight:700;background:var(--widget-inset)}
.next-match-v2 .nm-position small{font-size:.8rem;font-weight:400;color:var(--muted)}
.next-match-v2 .nm-goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:260px;width:100%;margin:4px 0}
.next-match-v2 .nm-goals>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;padding:12px 8px;border:1px solid var(--line);border-radius:8px;background:var(--widget-inset)}
.next-match-v2 .nm-goals dd{margin:0;font-size:1.9rem;font-weight:750;line-height:1.2;font-variant-numeric:tabular-nums}
.next-match-v2 .nm-goals dd{order:-1}
.next-match-v2 .nm-goals dt{margin:0;font-size:.8rem;font-weight:600;color:var(--muted)}
.next-match-v2 .nm-goals abbr{text-decoration:none}
.next-match-v2 .nm-versus{grid-column:2;grid-row:1;align-self:center;display:grid;gap:8px;text-align:center;font-size:.8rem;font-weight:700;color:var(--muted)}
.next-match-v2 .nm-versus strong{font-size:1rem;white-space:nowrap;color:var(--ink)}
.next-match-v2 .nm-recent{width:100%;min-width:0;align-self:start}
.next-match-v2 .nm-form-label{margin:4px 0 9px;font-size:.8rem;font-weight:650;color:var(--muted)}
.next-match-v2 .nm-form-list{display:grid;grid-template-columns:repeat(auto-fit,44px);justify-content:center;gap:4px;max-width:236px;width:100%;margin:0 auto}
.next-match-v2 .nm-form-tile{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:6px;font-size:.95rem;font-weight:750;border:1px solid transparent;color:var(--brand-surface);text-decoration:none!important;font-variant-numeric:tabular-nums}
.next-match-v2 .nm-form-tile:last-child{grid-column:-2 / -1}
.next-match-v2 .nm-result-V{background:var(--sport-win)}
.next-match-v2 .nm-result-E{background:var(--sport-draw)}
.next-match-v2 .nm-result-D{background:var(--sport-loss)}
.next-match-v2 .nm-result-unknown{background:var(--widget-inset);color:var(--muted);border-color:var(--line)}
.next-match-v2 .nm-form-tile:hover{box-shadow:0 0 0 2px var(--navy);transform:translateY(-1px)}
.next-match-v2 .nm-form-tile:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
.next-match-v2 .nm-form-order{display:block;margin:8px 0 0;font-size:.7rem;color:var(--muted)}
.next-match-v2 .nm-form-empty{margin:0;padding:10px 4px;font-size:.8rem;color:var(--muted);line-height:1.5}
.next-match-v2 .nm-scope-note{margin:22px 0 16px;text-align:center;color:var(--muted);font-size:.75rem}
.next-match-v2 .nm-venue{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;margin:0;padding-top:18px;border-top:1px solid var(--line)}
.next-match-v2 .nm-venue-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}
.next-match-v2 .nm-venue p{margin:0;font-size:.875rem;font-weight:650;overflow-wrap:anywhere}
.next-match-v2 .nm-venue a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:.85rem;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.next-match-v2 .nm-venue a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
.next-match-v2 .nm-venue small{font-size:.8rem;color:var(--muted)}
@supports not (grid-template-rows:subgrid){.next-match-v2 .nm-team{grid-template-rows:80px minmax(4.2em,auto) auto auto auto;gap:14px}}
@media(max-width:640px){
  main .next-match-v2{padding:16px}
  main .next-match-v2 .widget-head{gap:10px;margin-bottom:16px;padding-bottom:16px}
  main .next-match-v2 .widget-head h2{font-size:1rem}
  .next-match-v2 .nm-season{font-size:.75rem}
  .next-match-v2 .nm-kickoff{margin:0 0 20px}
  .next-match-v2 .nm-date{font-size:.8rem}
  .next-match-v2 .nm-time{font-size:2rem}
  .next-match-v2 .nm-comparison{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);grid-template-rows:60px auto auto auto auto;column-gap:6px;row-gap:10px}
  .next-match-v2 .nm-crest{width:60px;height:60px}
  .next-match-v2 .nm-crest-fallback{width:50px;height:58px;font-size:1rem}
  .next-match-v2 .nm-team-name{font-size:.875rem;line-height:1.4}
  .next-match-v2 .nm-position{padding:4px 8px;font-size:.8rem}
  .next-match-v2 .nm-position small{font-size:.75rem}
  .next-match-v2 .nm-goals{gap:6px;margin:4px 0}
  .next-match-v2 .nm-goals>div{padding:10px 4px}
  .next-match-v2 .nm-goals dd{font-size:1.55rem}
  .next-match-v2 .nm-goals dt{font-size:.75rem}
  .next-match-v2 .nm-form-list{grid-template-columns:repeat(auto-fit,40px);max-width:216px}
  .next-match-v2 .nm-form-tile{min-width:40px;min-height:40px;font-size:.875rem}
  .next-match-v2 .nm-form-label{font-size:.75rem}
  .next-match-v2 .nm-form-empty{font-size:.75rem}
  .next-match-v2 .nm-scope-note{margin:18px 0 14px;font-size:.7rem}
}
/* Official standings and the observed history of league positions. */
.standings-table{min-width:740px;width:100%;}
.standings-table th[scope="row"]{min-width:220px;max-width:340px;text-align:left;font-weight:600;white-space:normal;}
.standings-table .standings-points{font-weight:800;color:var(--navy,var(--brand-navy));}
.standings-status{margin:0 0 14px;}
/* League links and the same favourite colour in tables and calendars. */
:root{--league-favorite-bg:var(--brand-green-faint);--league-favorite-hover:var(--brand-green-soft);--league-favorite-border:var(--brand-green-strong);--league-link:var(--brand-navy)}
.league-navigation-hint{font-size:.82rem;color:var(--muted);margin:0 0 12px}
.league-entity-link{display:inline-flex;align-items:center;gap:9px;min-height:40px;max-width:100%;color:var(--league-link);font-weight:650;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;white-space:normal}
.league-entity-link>span:first-of-type{min-width:0;overflow-wrap:anywhere}
.league-entity-link:hover{color:var(--navy);text-decoration-thickness:2px}
.league-entity-link:focus-visible,.league-scorer-team-link:focus-visible,.league-round-step:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:4px}
.league-link-arrow{flex-shrink:0;font-size:1.05rem;text-decoration:none}
.standings-team-link{display:flex}
.standings-crest{width:28px;height:28px;object-fit:contain;flex:0 0 28px}
.league-favorite-label{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:700;color:var(--warning-text);background:var(--warning-hover);border:1px solid var(--warning-border);border-radius:20px;padding:3px 9px;margin-top:4px;white-space:nowrap}
table tbody tr.is-favorite-team>th,table tbody tr.is-favorite-team>td{background:var(--league-favorite-bg)}
table tbody tr.is-favorite-team:hover>th,table tbody tr.is-favorite-team:hover>td{background:var(--league-favorite-hover)}
table tbody tr.is-favorite-team>td:first-child{box-shadow:inset 3px 0 var(--league-favorite-border)}
.league-match.is-favorite-team,.pending-fixtures>li.is-favorite-team{background:var(--league-favorite-bg);border-color:var(--league-favorite-border);box-shadow:inset 3px 0 var(--league-favorite-border)}
.pending-fixtures>li.is-favorite-team{padding-left:16px;padding-right:16px;border-radius:8px}
.league-match-team>div{min-width:0}
.league-match-team .league-favorite-label{display:flex;width:max-content;max-width:100%}
.league-round-toolbar{display:flex;align-items:flex-end;gap:12px;margin-bottom:20px;max-width:470px}
.league-round-choice{display:flex;flex:1.25;min-width:0;flex-direction:column;gap:6px;font-size:.75rem;font-weight:650;color:var(--muted)}
.league-round-choice select{width:100%;min-width:0;height:44px;border:1px solid var(--line);border-radius:7px;background:var(--brand-surface);color:var(--ink);font:inherit;font-size:.875rem;padding:8px}
.league-round-choice select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
.league-round-step{display:flex;flex:1;min-width:0;min-height:44px;align-items:center;justify-content:center;padding:7px 10px;border:1px solid var(--line);border-radius:7px;color:var(--league-link);background:var(--brand-surface);font-size:.875rem;font-weight:600;text-align:center}
.league-round-step.disabled{color:var(--muted);background:var(--widget-inset);opacity:.65}
.league-scorers-context{margin-bottom:14px}
.league-scorers-table{width:100%;table-layout:fixed;min-width:0}
.league-scorers-table th:first-child,.league-scorers-table td:first-child{width:60px}
.league-scorers-table th:last-child,.league-scorers-table td:last-child{width:95px}
.league-scorers-table .scorers-team-col{width:31%;white-space:normal;overflow-wrap:anywhere}
.league-scorers-table th[scope="row"]{text-align:left;font-weight:600;white-space:normal}
.league-scorers-table th,.league-scorers-table td{padding:13px 16px}
.scorer-goals{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:36px;border-radius:7px;background:var(--widget-inset);color:var(--navy);font-size:1.2rem;font-weight:800}
.is-favorite-team .scorer-goals{background:var(--warning-hover)}
.scorer-mobile-team{display:none}
.league-scorer-team-link{font-size:.8rem;color:var(--league-link);font-weight:500;text-decoration:underline;text-underline-offset:3px;line-height:1.5}
@media(max-width:700px){
  .league-scorers-table .scorers-team-col{display:none}
  .league-scorers-table th,.league-scorers-table td{padding:12px 8px}
  .league-scorers-table th:first-child,.league-scorers-table td:first-child{width:36px}
  .league-scorers-table th:last-child,.league-scorers-table td:last-child{width:64px}
  .league-scorers-table .league-entity-link{font-size:.8rem;gap:6px}
  .scorer-mobile-team{display:block;margin-top:4px}
  .league-scorer-team-link{font-size:.7rem}
  .league-round-toolbar{gap:6px}
  .league-round-step{padding:7px 4px;font-size:.75rem}
  .league-round-choice select{font-size:.8rem}
}
/* Home owns its compact rival context; team pages retain their existing detail. */
.home-rival-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0}
.home-rival-stat{padding:15px 12px;background:var(--widget-inset);border:1px solid var(--widget-border);border-radius:8px;min-width:0;text-align:center}
.home-rival-stat dt{font-size:.8rem;color:var(--muted);font-weight:600}
.home-rival-stat abbr{text-decoration:none}
.home-rival-stat dd{margin:6px 0 0;font-size:1.8rem;font-weight:750;line-height:1.2;overflow-wrap:anywhere}
.home-rival-scope{margin-top:12px}
.home-rival-evolution-empty,.home-history{margin-top:22px;padding-top:20px;border-top:1px solid var(--widget-border)}
.home-rival-evolution-empty h3,.home-history h3{font-size:1rem;margin-bottom:10px}
.home-history-heading{margin-bottom:16px}
.home-history-heading h3{margin-bottom:4px}
.home-history-grid{display:grid;grid-template-columns:repeat(var(--history-columns,1),minmax(0,1fr));gap:14px;min-width:0}
.home-history-card{min-width:0}
.home-history-card .match-card{height:100%;width:100%;min-width:0}
.home-history-card .match-team span{overflow-wrap:anywhere}
.home-history-card .meta{align-items:flex-start;min-height:2.8em}
.home-history-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
.home-history-controls button{min-width:44px;min-height:44px;padding:8px 12px;font-size:1.15rem}
.home-history-controls select{min-height:44px;max-width:100%;border:1px solid var(--widget-border);border-radius:6px;background:var(--white);color:var(--ink);padding:8px;font-size:.85rem}
.home-history-controls [data-history-range]{margin-left:auto}
@media(max-width:760px){.home-rival-stats{gap:8px}.home-rival-stat{padding:12px 6px}.home-rival-stat dd{font-size:1.5rem}.home-rival-stat dt{font-size:.75rem}.home-history-grid{gap:10px}.home-history-controls [data-history-range]{flex-basis:100%;margin-left:0;text-align:center}}
.standings-evolution{margin-top:22px;padding-top:18px;border-top:1px solid var(--brand-border);}
.standings-evolution h3{font-size:16px;margin:0 0 12px;}
.standings-chart{width:100%;max-height:230px;display:block;overflow:visible;}
.standings-chart text{font-size:13px;fill:var(--brand-text-muted);}
.standings-chart-grid{stroke:var(--brand-border);stroke-width:1;}
.standings-chart-line{stroke:var(--brand-navy-raised);stroke-width:3;}
.standings-chart-dot{fill:var(--brand-navy-raised);stroke:var(--brand-surface);stroke-width:2;}
.standings-chart-dot.provisional{fill:var(--brand-surface);stroke:var(--warning-strong);stroke-width:3;}
.standings-history{display:flex;gap:10px;list-style:none;margin:10px 0 14px;padding:0;overflow-x:auto;max-width:100%;}
.standings-history a{display:grid;gap:4px;min-width:122px;padding:12px;border:1px solid var(--brand-border);border-radius:10px;text-decoration:none;}
.standings-history span,.standings-history small{font-size:12px;color:var(--brand-text-muted);}
.standings-history strong{font-size:22px;color:var(--brand-navy-raised);}

/* Plantilla V2: compact, sortable and player-first without changing widget chrome. */
.roster .roster-table-scroll{overflow-x:auto}
.roster-table{table-layout:auto}
.roster-table .roster-col-number{width:64px}
.roster-table .roster-col-appearances,.roster-table .roster-col-starts{width:78px}
.roster-table .roster-col-goals{width:86px}
.roster-table th,.roster-table td{padding:11px 14px;vertical-align:middle}
.roster-table .player-cell{width:100%;min-width:180px}
.roster-player-link{display:inline-block;max-width:100%;font-weight:650;text-decoration:none;overflow-wrap:anywhere;text-underline-offset:4px}
.roster-player-link:hover{text-decoration:underline}
.roster-player-link:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:2px}
.roster-sort{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin:-8px -7px;padding:8px 7px;border:0;background:transparent;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap}
.roster-table th.numeric .roster-sort{justify-content:flex-end;width:calc(100% + 14px)}
.roster-sort:hover{color:var(--navy);background:var(--brand-surface-soft);border-radius:4px}
.roster-sort-icon{font-size:.82rem;line-height:1;color:var(--brand-text-muted)}
.roster-table th[aria-sort="ascending"] .roster-sort-icon,.roster-table th[aria-sort="descending"] .roster-sort-icon{color:var(--navy);font-weight:800}
.roster-number{font-variant-numeric:tabular-nums}
.roster-context-note{margin:12px 2px 0;color:var(--muted);font-size:.78rem;line-height:1.5}
@media(max-width:640px){
  .roster-table{min-width:455px;font-size:.82rem}
  .roster-table th,.roster-table td{padding:9px 8px}
  .roster-table .roster-col-number{width:46px}
  .roster-table .roster-col-appearances,.roster-table .roster-col-starts{width:52px}
  .roster-table .roster-col-goals{width:62px}
  .roster-table .player-cell{min-width:150px}
  .roster-sort{gap:4px;margin:-7px -4px;padding:7px 4px}
  .roster-table th.numeric .roster-sort{width:calc(100% + 8px)}
}

/* Insights v1: the existing Home widget owns these presentation cards. */
.insights-v1-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.insight-v1{min-width:0;display:flex;flex-direction:column;gap:14px;padding:18px;background:var(--white);border:1px solid var(--widget-border);border-top:3px solid var(--brand-green);border-radius:8px}
.insight-v1 h3{display:flex;align-items:center;gap:8px;font-size:1rem;line-height:1.4;margin:0}
.insight-symbol{color:var(--brand-green-strong);font-size:1.1rem;line-height:1;flex-shrink:0}
.insight-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;line-height:1.2}
.insight-main strong{font-size:2rem;font-weight:750;overflow-wrap:anywhere}
.insight-main span{font-size:.9rem;color:var(--ink)}
.insight-explanation{margin:0;font-size:.88rem;line-height:1.5}
.insight-players{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.insight-players li{display:flex;flex-direction:column;gap:4px;min-width:0}
.insight-players a{font-weight:650;font-size:.9rem;line-height:1.4;overflow-wrap:anywhere;color:var(--navy)}
.insight-players li>span{font-size:.78rem;color:var(--muted)}
.insight-scope{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.75rem;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.insight-v1 .count-note{margin:0;font-size:.78rem;line-height:1.5;overflow-wrap:anywhere}
.insight-v1 .widget-empty{margin:0;padding:14px;font-size:.85rem;line-height:1.5;background:var(--widget-inset);border-style:dashed}
.insight-quarter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.insight-quarter{min-width:0;display:flex;flex-direction:column;gap:6px;align-items:center;font-size:.75rem}
.insight-quarter>b{font-size:1.05rem;font-weight:700}
.insight-mini-bar{height:6px;width:100%;background:var(--brand-chart-track);border-radius:3px;overflow:hidden}
.insight-mini-bar i{display:block;height:100%;background:var(--sport-goals-for);border-radius:inherit}
.insight-quarter .evidence-link{font-size:.7rem;min-height:32px;max-width:100%;overflow-wrap:anywhere}
.insight-form{display:flex;gap:6px;flex-wrap:wrap}
.insight-form .nm-form-tile{flex:0 0 36px;min-height:44px}
.insight-link{margin-top:auto;color:var(--navy);font-size:.8rem;font-weight:600}
@media(max-width:900px){.insights-v1-grid{grid-template-columns:1fr}.insight-v1{padding:16px}.insight-main strong{font-size:1.8rem}}

/* Approved SVG lockup. Breakpoints follow the existing header layout. */
.brand-logo{display:block;width:240px;height:auto;aspect-ratio:650 / 160}
.brand-signature{display:block;width:55px;height:55px}
.brand:focus-visible,.topbar button:focus-visible,.topbar select:focus-visible,.rail a:focus-visible{outline-color:var(--brand-green)}
.rail nav svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.button:hover{background:var(--brand-green-hover);border-color:var(--brand-green-hover)}
.button.secondary:hover{background:var(--brand-green-faint);border-color:var(--brand-green-strong)}
.metric .value,.home-rival-stat strong,.insight-main strong,.scoreboard strong,.scorer-goals,td.numeric{font-variant-numeric:tabular-nums}
@media(max-width:760px){.brand-logo{width:208px}.rail nav svg{width:18px;height:18px}}
@media(max-width:480px){.brand-logo{width:44px;height:44px;aspect-ratio:1}}
