:root { --fg:#0b0b0c; --muted:#5a6169; --accent:#ffc72c; --line:#e6e8eb; --bg:#fff; }
* { box-sizing: border-box; }
body { margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color:var(--fg); background:var(--bg); line-height:1.55; }
main { max-width:980px; margin:0 auto; padding:24px 16px 64px; }
h2,h3,h4,h5 { margin:0 0 8px; line-height:1.25; }
p { margin:0 0 12px; }
ul,ol { margin:8px 0 0 20px; }
.expectations { margin-top:28px; border-top:3px solid var(--accent); padding-top:16px; }
.expectations-header p { color:var(--muted); }
.teams-box,.win-prob-box,.availability-box,.rosters-box,.lineups-box,.line-expectations-box,.player-expectations-box,.opponent-notes-box,.today-focus-box { border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin:14px 0; background:#fafbfc; }
.roster-columns { display:flex; flex-wrap:wrap; gap:16px; }
.roster-col { flex:1 1 220px; background:#fff; border:1px dashed var(--line); border-radius:6px; padding:8px 10px; }
.lines ol, .proj-forwards ol, .proj-defense ol { padding-left:18px; }
.goalies ul { padding-left:18px; }
.opponent-item { padding:8px 10px; background:#fff; border:1px solid var(--line); border-radius:6px; margin-top:8px; }
.card { background:#fff; border:1px solid var(--line); border-radius:6px; padding:8px 10px; margin:8px 0; }
.card-title { font-weight:700; margin-bottom:4px; }
.players-expectations { list-style:none; padding-left:0; }
.player-card { margin:10px 0; padding:10px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.player-name { font-size:1rem; font-weight:700; }
.player-roles,.player-usage,.player-metrics,.player-hopes,.player-risks,.player-minutes { color:var(--muted); margin-top:2px; }
@media (max-width:720px){
  .roster-columns { flex-direction:column; }
}
