/* Two league scoreboards. Continuous rows keep every game in the fixed TV frame. */
.today-view{isolation:isolate;padding:24px 30px 20px;grid-template-rows:106px minmax(0,1fr) 36px;gap:12px;color:#f6f8fc;background:#090b10 url('today-stadium.png') center/cover no-repeat}
.today-view:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#090e15a6,#0b0c1480 55%,#130f0ca1),linear-gradient(0deg,#07090dd9,transparent 65%);pointer-events:none}
.today-view .view-header{border-bottom:2px solid #c7d3df80;padding:0 0 12px;gap:30px}
.today-title{border-left:5px solid #ed4556;padding-left:18px}
.today-view .view-kicker{font-size:16px;color:#f5a7ae;letter-spacing:.23em}
.today-view .view-heading{font-size:78px;letter-spacing:.025em;line-height:.95;margin:4px 0 0;font-style:italic;text-shadow:0 4px 16px #0008}
.today-date{text-align:right;display:flex;flex-direction:column;gap:8px;align-self:end;padding-bottom:5px}
.today-date strong{font-size:35px;font-weight:500;letter-spacing:.045em;line-height:1}
.today-date>span{font-size:16px;letter-spacing:.12em;color:#c8d0dc}
.today-date b{font-weight:600;color:#fff3db;margin-left:20px}
.today-content{display:grid;grid-template-rows:24px minmax(0,1fr);gap:10px;min-height:0}
.today-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#c6d1de;font-size:16px;letter-spacing:.06em}
.today-toolbar>span:first-child{color:#f2f5fa;font-weight:600}
.today-toolbar b{margin:0 10px;color:#e56d78}
.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;min-height:0}
.today-league{--league-accent:#a6d8f1;--league-tint:#91caeb;min-width:0;min-height:0;display:grid;grid-template-rows:88px 27px minmax(0,1fr);padding:0 20px 13px;border-top:4px solid var(--league-accent);background:linear-gradient(145deg,#142231e8,#090f17f0 65%);box-shadow:0 10px 28px #0003}
.today-league.mlb{--league-accent:#f2c27f;--league-tint:#e4b57e;background:linear-gradient(145deg,#2b2119ed,#120f0df0 65%)}
.league-heading{display:flex;align-items:center;gap:18px;min-width:0;border-bottom:1px solid #d5dfec35}
.league-logo{width:54px;height:64px;object-fit:contain;flex:none;filter:drop-shadow(0 3px 6px #0006)}
.mlb .league-logo{width:91px;height:56px}
.league-name{min-width:0;flex:1}
.league-name>span{font-size:12px;letter-spacing:.18em;color:var(--league-accent);white-space:nowrap}
.league-name h2{font-size:49px;line-height:.95;letter-spacing:.04em;margin:4px 0 0;font-weight:700}
.league-totals{display:flex;flex-direction:column;gap:7px;text-align:right;flex:none}
.league-totals strong{font-size:26px;font-weight:600;line-height:1;letter-spacing:.035em}
.league-totals>span{font-size:12px;letter-spacing:.075em;color:#afbccc}
.league-totals .has-live{color:#9df2bf}.league-totals .stale{color:#f4ce92}
.league-order{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#a9b4c3;letter-spacing:.08em;white-space:nowrap}
.league-order>span:last-child{color:var(--league-accent);font-size:10px;letter-spacing:.04em}
.league-games{display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--league-lanes),minmax(0,1fr));grid-template-rows:repeat(var(--league-rows),minmax(0,1fr));column-gap:25px;min-height:0;min-width:0}
.day-game{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:18px minmax(0,1fr) 18px;gap:2px;padding:5px 2px;border-bottom:1px solid #bac9dc32;background:none}
.day-game-top{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0;white-space:nowrap}
.day-game time{font-size:23px;font-weight:600;color:var(--league-accent);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.025em}
.day-status{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:#aebfd0;font-size:12px;line-height:1.1;letter-spacing:.04em}
.day-status i{height:5px;width:5px;background:#a9f3bf;border-radius:50%;flex:none}
.live .day-status{color:#a9f3bf}.special .day-status{color:#ffd097}
.day-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;min-height:0;min-width:0}
.day-team{display:flex;align-items:center;gap:12px;min-width:0;text-align:left}
.day-team:last-child{flex-direction:row-reverse;text-align:right}
.today-team-logo{width:36px;height:36px;object-fit:contain;flex:none;padding:3px;border-radius:50%;background:#edf2f7;filter:drop-shadow(0 2px 3px #0006)}
.day-team>span{min-width:0}
.day-team strong{display:block;font-size:32px;font-weight:700;line-height:1;letter-spacing:.035em;text-shadow:0 2px 6px #0007}
.day-team small{display:none;font-size:16px;line-height:1.15;color:#bdcada;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-score{font-size:37px;font-weight:700;text-align:center;white-space:nowrap;line-height:1;font-variant-numeric:tabular-nums}
.day-score b{font-weight:700}.day-score i{font-style:normal;font-size:.65em;color:#8693a6;margin:0 8px;font-weight:400}
.day-score>span{font-size:17px;letter-spacing:.13em;color:#a3b3c6;font-weight:500}
.live .day-score{color:#c6ffda}
.day-venue{font-size:17px;line-height:20px;color:#c3cedb;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-venue b{font-weight:600;color:var(--league-accent);font-size:.9em}
/* A short slate opens up: large marks, full names, no individual card frames. */
.today-league[data-density="spacious"] .day-game{padding:8px 4px;grid-template-rows:24px minmax(0,1fr) 23px;gap:4px}
.today-league[data-density="spacious"] .today-team-logo{width:63px;height:63px}
.today-league[data-density="spacious"] .day-team strong{font-size:32px}
.today-league[data-density="spacious"] .day-score{font-size:43px}
.today-league[data-density="feature"] .day-game{padding:14px 8px;grid-template-rows:30px minmax(0,1fr) 26px;gap:6px}
.today-league[data-density="feature"] time{font-size:32px}
.today-league[data-density="feature"] .day-status{font-size:17px}
.today-league[data-density="feature"] .day-team{flex-direction:column;justify-content:center;text-align:center;gap:10px}
.today-league[data-density="feature"] .today-team-logo{width:72px;height:72px;padding:5px}
.today-league[data-density="feature"] .day-team strong{font-size:36px}
.today-league[data-density="feature"] .day-team small{display:block;font-size:18px;white-space:normal}
.today-league[data-density="feature"] .day-score{font-size:56px}
.today-league[data-density="feature"] .day-venue{font-size:22px;line-height:26px}
/* Busy leagues read down each column. Width follows the number of columns. */
.today-league:not([data-lanes="1"]) .day-team small{display:none}
.today-league:not([data-lanes="1"]) .day-team{gap:7px}
.today-league:not([data-lanes="1"]) .day-team strong{font-size:28px}
.today-league:not([data-lanes="1"]) .day-score{font-size:30px}
.today-league:not([data-lanes="1"]) .today-team-logo{width:38px;height:38px;padding:2px}
.today-league[data-density="compact"] .day-game{padding:2px 1px;grid-template-rows:16px minmax(0,1fr) 15px;gap:1px}
.today-league[data-density="compact"] time{font-size:18px}
.today-league[data-density="compact"] .day-status{font-size:11px;letter-spacing:0}
.today-league[data-density="compact"] .today-team-logo{width:26px;height:26px;padding:2px}
.today-league[data-density="compact"] .day-team{gap:6px}
.today-league[data-density="compact"] .day-team strong{font-size:24px}
.today-league[data-density="compact"] .day-team small{display:none}
.today-league[data-density="compact"] .day-score{font-size:25px}
.today-league[data-density="compact"] .day-score i{margin:0 5px}
.today-league[data-density="compact"] .day-venue{font-size:14px;line-height:15px}
.league-empty{grid-column:1/-1;grid-row:1/-1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#b4c3d4;padding:20px}
.empty-sport-mark{width:110px;height:110px;border:2px solid var(--league-accent);border-radius:50%;opacity:.27;margin-bottom:28px;position:relative}
.empty-sport-mark:after{content:'';position:absolute;top:50%;left:-18px;right:-18px;border-top:2px solid var(--league-accent)}
.mlb .empty-sport-mark{border-radius:3px;transform:rotate(45deg);width:85px;height:85px;margin-bottom:40px}
.mlb .empty-sport-mark:after{inset:16px;border:1px solid var(--league-accent)}
.league-empty h3{font-size:35px;letter-spacing:.04em;line-height:1.05;margin:0 0 14px;color:#e4eaf3}
.league-empty p{font-size:22px;line-height:1.2;margin:0}
.today-view .view-footer{border-color:#b1bcc64d;font-size:15px;color:#b9c7d7}
.today-view .rotation-status{color:#f3c5cb}

.today-league[data-density="spacious"] .day-team small{display:block}
.today-league[data-rows="1"] .today-team-logo{width:145px;height:145px;padding:10px}
.today-league[data-rows="1"] .day-team strong{font-size:48px}
.today-league[data-rows="1"] .day-team small{font-size:22px}
