:root { --navy:#122b49; --navy-2:#1e4168; --blue:#e8f2fb; --line:#d6e0ea; --gold:#f6bd42; --ink:#162230; --muted:#64748b; --paper:#f5f7fa; }
* { box-sizing:border-box; }
html { background:var(--paper); }
body { margin:0; color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background:radial-gradient(circle at 15% 0%, #fff 0, var(--paper) 42rem); }
button, select { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none !important; }
.load-error { max-width:42rem; margin:5rem auto; padding:2rem; }
main { min-height:100vh; }
.app-header { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:1.25rem clamp(1rem,4vw,4.5rem); color:white; background:linear-gradient(110deg,#102945,#1e4c79); box-shadow:0 8px 24px #1029452a; }
.brand-block { display:flex; align-items:center; gap:1rem; }
.football-mark { display:grid; place-items:center; width:3.2rem; height:3.2rem; border-radius:50%; color:var(--navy); background:var(--gold); font-size:.75rem; font-weight:900; letter-spacing:.08em; border:3px solid #ffe4a3; }
.eyebrow { margin:0 0 .25rem; color:#6382a4; font-size:.72rem; font-weight:800; letter-spacing:.15em; }
.app-header .eyebrow { color:#b9d4ee; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:0; font-size:clamp(1.5rem,3vw,2.25rem); letter-spacing:-.04em; }
.header-stats { display:flex; gap:2.5rem; }
.header-stats div { display:grid; }
.header-stats strong { font-size:1.4rem; }
.header-stats span { color:#bfd1e2; font-size:.72rem; }
.toolbar { position:sticky; top:0; z-index:20; display:flex; align-items:end; gap:.8rem; padding:.9rem clamp(1rem,4vw,4.5rem); background:#fffffff2; border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.view-tabs { display:flex; padding:.25rem; border:1px solid var(--line); border-radius:.7rem; background:#eef3f8; }
.view-tabs button { border:0; border-radius:.5rem; padding:.6rem 1rem; color:#536579; background:transparent; font-weight:750; }
.view-tabs button.active { color:white; background:var(--navy); box-shadow:0 3px 8px #122b4938; }
.select-wrap { display:grid; gap:.2rem; min-width:min(20rem,30vw); }
.select-wrap label { color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
select { width:100%; height:2.6rem; padding:0 .8rem; border:1px solid #b9c8d6; border-radius:.55rem; color:var(--ink); background:white; font-weight:700; }
.print-button,.secondary-button { height:2.6rem; padding:0 1rem; border-radius:.55rem; font-weight:800; }
.print-button { margin-left:auto; border:1px solid var(--navy); color:white; background:var(--navy); }
.secondary-button { border:1px solid #c6d2df; color:var(--navy); background:white; }
.secondary-button span { display:inline-grid; place-items:center; width:1.35rem; height:1.35rem; margin-left:.3rem; border-radius:50%; color:#6d4a00; background:var(--gold); font-size:.72rem; }
.schedule-shell { max-width:1500px; margin:0 auto; padding:2rem clamp(1rem,4vw,4.5rem) 3rem; }
.schedule-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:1.1rem; }
.schedule-heading h2 { margin:0; color:var(--navy); font-size:clamp(1.6rem,3vw,2.5rem); letter-spacing:-.035em; }
.schedule-meta { padding:.5rem .8rem; border-radius:.45rem; color:#54677b; background:#edf2f7; font-size:.78rem; }
.schedule-meta strong { color:var(--navy); }
.day-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.9rem; }
.box-card { min-height:11.5rem; overflow:hidden; border:1px solid #ccd8e3; border-radius:.85rem; background:white; box-shadow:0 8px 22px #122b4910; break-inside:avoid; }
.box-title { display:flex; align-items:center; gap:.45rem; padding:.65rem .8rem; color:white; background:var(--navy); }
.box-title span { font-size:.67rem; letter-spacing:.12em; font-weight:800; }
.box-title strong { display:grid; place-items:center; width:1.8rem; height:1.8rem; border-radius:.4rem; color:var(--navy); background:var(--gold); }
.box-games { display:grid; gap:.55rem; padding:.7rem; }
.game-pill { display:grid; gap:.3rem; padding:.65rem; border-left:4px solid var(--gold); border-radius:.45rem; background:#f1f6fb; break-inside:avoid; }
.game-pill.compact { padding:.5rem; }
.game-topline { display:flex; justify-content:space-between; gap:.5rem; align-items:center; }
.game-topline time { color:#4f6479; font-size:.72rem; font-weight:800; }
.box-badge { color:#234b72; font-size:.62rem; font-weight:900; letter-spacing:.08em; }
.game-pill strong { line-height:1.2; font-size:.86rem; }
.network { color:var(--muted); font-size:.7rem; }
.empty-state { margin:1.8rem 0; color:#9aa7b4; text-align:center; font-size:.8rem; }
.week-stack { display:grid; gap:.75rem; }
.week-day { display:grid; grid-template-columns:8rem 1fr; overflow:hidden; border:1px solid var(--line); border-radius:.8rem; background:white; break-inside:avoid; }
.date-rail { display:flex; flex-direction:column; justify-content:center; padding:1rem; color:white; background:var(--navy); }
.date-rail span { color:#bcd2e7; font-size:.72rem; font-weight:800; letter-spacing:.1em; }
.date-rail strong { font-size:1.05rem; }
.week-games { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; padding:.7rem; }
.calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); overflow:hidden; border:1px solid #cbd7e2; border-radius:.7rem; background:white; }
.weekday { padding:.6rem; color:white; background:var(--navy); text-align:center; font-size:.72rem; font-weight:800; letter-spacing:.08em; }
.calendar-day { min-height:9rem; padding:.45rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fbfcfd; }
.calendar-day.has-games { background:white; }
.calendar-day.muted { background:#edf1f5; }
.day-number { display:block; margin-bottom:.35rem; color:#6d7c8d; font-size:.78rem; }
.calendar-games { display:grid; gap:.3rem; }
.calendar .game-pill { padding:.38rem; border-left-width:3px; }
.calendar .game-pill strong { font-size:.65rem; }
.calendar .game-topline time,.calendar .network { font-size:.57rem; }
.calendar .box-badge { font-size:.52rem; }
.app-footer { display:flex; justify-content:space-between; gap:1rem; padding:1.25rem clamp(1rem,4vw,4.5rem); color:#65788a; border-top:1px solid var(--line); background:white; font-size:.72rem; }
.app-footer p { margin:0; }
.modal-backdrop { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:1rem; background:#081727c7; }
.modal { position:relative; width:min(44rem,100%); padding:2rem; border-radius:1rem; background:white; box-shadow:0 24px 70px #0005; }
.modal h2 { margin-bottom:.4rem; color:var(--navy); font-size:2rem; }
.modal-intro { color:var(--muted); }
.close-button { position:absolute; top:1rem; right:1rem; width:2.2rem; height:2.2rem; border:0; border-radius:50%; color:var(--navy); background:#edf2f7; font-size:1.5rem; }
.omitted-list { display:grid; gap:.65rem; }
.omitted-list article { padding:1rem; border:1px solid #efcaca; border-radius:.65rem; background:#fff7f7; }
.omitted-list article div { display:flex; justify-content:space-between; gap:1rem; color:#7a4250; font-size:.73rem; }
.omitted-list h3 { margin:.4rem 0 .25rem; }
.omitted-list p { margin:0; color:#7b6870; font-size:.76rem; }

@media (max-width:900px) { .header-stats { display:none; } .toolbar { align-items:stretch; flex-wrap:wrap; } .select-wrap { order:3; width:100%; max-width:none; } .print-button { margin-left:0; } .day-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .week-games { grid-template-columns:repeat(2,minmax(0,1fr)); } .calendar { min-width:850px; } .schedule-shell { overflow-x:auto; } }
@media (max-width:560px) { .day-grid { grid-template-columns:1fr; } .week-day { grid-template-columns:1fr; } .date-rail { flex-direction:row; justify-content:flex-start; gap:.5rem; } .view-tabs { width:100%; } .view-tabs button { flex:1; } .secondary-button,.print-button { flex:1; } }

@media print {
  @page { size:landscape; margin:.35in; }
  body { background:white; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .no-print { display:none !important; }
  .schedule-shell { max-width:none; padding:0; overflow:visible; }
  .schedule-heading { margin-bottom:.35rem; }
  .schedule-heading h2 { font-size:20pt; }
  .schedule-meta { font-size:8pt; }
  .day-grid { grid-template-columns:repeat(4,1fr); gap:.12in; }
  .box-card { min-height:1.65in; box-shadow:none; }
  .box-title { padding:.08in; }
  .box-games { padding:.08in; gap:.05in; }
  .game-pill { padding:.06in; }
  .week-stack { gap:.08in; }
  .week-day { grid-template-columns:.9in 1fr; }
  .date-rail { padding:.12in; }
  .week-games { grid-template-columns:repeat(4,1fr); gap:.05in; padding:.07in; }
  .calendar-day { min-height:1.2in; }
  .calendar .game-pill strong { font-size:6.5pt; }
}
