/* v0.9 Fan Experience: additive, route-safe polish */
:root{--fan-navy:#0c2340;--fan-blue:#4b92db;--fan-red:#c8102e;--fan-ice:#eef6fb;--fan-line:rgba(12,35,64,.12);--fan-shadow:0 18px 50px rgba(12,35,64,.12)}
.fan-today{margin:18px 0 24px;border:1px solid var(--fan-line);background:linear-gradient(135deg,#fff 0%,#f5faff 58%,#edf6fc 100%);box-shadow:var(--fan-shadow);overflow:hidden}.fan-today-lead{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:13px 16px;background:var(--fan-navy);color:#fff}.fan-today-lead small{font-size:9px;font-weight:950;letter-spacing:.15em}.fan-today-lead strong{font-size:13px;letter-spacing:.04em}.fan-today-lead span{padding:6px 9px;border:1px solid rgba(255,255,255,.24);background:rgba(75,146,219,.16);font-size:11px;font-weight:950;white-space:nowrap}.fan-today-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.fan-today-grid>a{min-width:0;padding:16px;border-right:1px solid var(--fan-line);color:var(--fan-navy);text-decoration:none;transition:background .16s ease}.fan-today-grid>a:last-child{border-right:0}.fan-today-grid>a:hover{background:#fff}.fan-today-grid small{display:block;margin-bottom:8px;color:#6b8094;font-size:8px;font-weight:950;letter-spacing:.11em;text-transform:uppercase}.fan-today-grid strong{display:block;min-height:34px;font-size:12px;line-height:1.4}.fan-today-grid span{display:block;margin-top:7px;color:#6b8094;font-size:9px;line-height:1.4}.fan-return-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;border-top:1px solid var(--fan-line);background:rgba(75,146,219,.06);color:#536b82;font-size:10px}.fan-return-strip b{color:var(--fan-navy)}.fan-return-strip button{min-height:36px;border:0;background:transparent;color:var(--fan-navy);font-size:10px;font-weight:950;cursor:pointer}.fan-favorites-rail{display:flex;align-items:center;gap:8px;margin:-8px 0 26px;padding:10px 12px;border:1px solid var(--fan-line);background:#fff;overflow-x:auto;scrollbar-width:none}.fan-favorites-rail::-webkit-scrollbar{display:none}.fan-favorites-rail>small{flex:0 0 auto;color:#6b8094;font-size:8px;font-weight:950;letter-spacing:.12em}.fan-favorites-rail>a{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-height:44px;padding:6px 10px;border:1px solid var(--fan-line);color:var(--fan-navy);text-decoration:none}.fan-favorites-rail>a>b{display:grid;place-items:center;min-width:30px;height:30px;background:var(--fan-navy);color:#fff;font-size:9px}.fan-favorites-rail>a>span{font-size:10px;font-weight:900}.fan-favorites-rail>a small{display:block;margin-top:2px;color:#718397;font-size:8px}
.search-wrap kbd[data-fan-command]{cursor:pointer;user-select:none}.search-wrap kbd[data-fan-command]:focus-visible{outline:3px solid var(--fan-red);outline-offset:2px}.fan-command-open{overflow:hidden}.fan-command-overlay,.fan-compare-modal{position:fixed;inset:0;z-index:10050;display:grid;place-items:start center;padding:8vh 18px 24px}.fan-command-overlay[hidden],.fan-compare-modal[hidden]{display:none}.fan-command-backdrop{position:absolute;inset:0;background:rgba(4,15,28,.72);backdrop-filter:blur(8px)}.fan-command-panel,.fan-compare-modal>section{position:relative;width:min(760px,100%);max-height:82vh;border:1px solid rgba(255,255,255,.2);background:#f8fbfe;box-shadow:0 32px 90px rgba(0,0,0,.38);overflow:hidden}.fan-command-panel>header,.fan-compare-modal>section>header{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;background:var(--fan-navy);color:#fff}.fan-command-panel>header small,.fan-compare-modal header small{display:block;color:#a9cfee;font-size:8px;font-weight:950;letter-spacing:.16em}.fan-command-panel>header strong,.fan-compare-modal header strong{font-size:18px}.fan-command-panel>header button,.fan-compare-modal header button{width:38px;height:38px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;font-size:24px;cursor:pointer}.fan-command-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--fan-line);background:#fff}.fan-command-search input{width:100%;min-height:42px;border:0;outline:0;background:transparent;color:var(--fan-navy);font:inherit;font-size:15px;font-weight:800;line-height:1.3}.fan-command-search kbd{padding:4px 7px;border:1px solid var(--fan-line);background:#f2f6f9;color:#65798d;font-size:8px}.fan-command-results{max-height:calc(82vh - 132px);overflow:auto;padding:8px}.fan-command-group{padding:8px}.fan-command-group>small{display:block;padding:3px 7px 7px;color:#6d8195;font-size:8px;font-weight:950;letter-spacing:.15em;text-transform:uppercase}.fan-command-group>a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:9px 10px;border-top:1px solid rgba(12,35,64,.07);color:var(--fan-navy);text-decoration:none}.fan-command-group>a:hover,.fan-command-group>a:focus-visible{background:#edf5fb}.fan-command-group>a span{min-width:0}.fan-command-group>a strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fan-command-group>a em{display:block;margin-top:3px;color:#72869a;font-size:8px;font-style:normal}.fan-command-group>a>b{flex:0 0 auto;color:#4f6981;font-size:9px}.fan-command-empty{display:grid;gap:5px;padding:30px;text-align:center;color:#718397}.fan-command-empty strong{color:var(--fan-navy)}
.fan-gameday-pulse{margin:0 0 20px;border:1px solid var(--fan-line);background:#fff;box-shadow:var(--fan-shadow)}.fan-gameday-score{display:flex;align-items:center;gap:14px;padding:15px 17px;background:linear-gradient(90deg,var(--fan-navy),#173f69);color:#fff}.fan-gameday-score small{font-size:8px;font-weight:950;letter-spacing:.15em}.fan-gameday-score strong{font-size:20px}.fan-gameday-score span{margin-left:auto;color:#b9daf3;font-size:11px;font-weight:950}.fan-gameday-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.fan-gameday-meta>div{padding:14px;border-right:1px solid var(--fan-line)}.fan-gameday-meta>div:last-child{border-right:0}.fan-gameday-meta small{display:block;margin-bottom:5px;color:#76899b;font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.1em}.fan-gameday-meta b{display:block;color:var(--fan-navy);font-size:10px;line-height:1.45}.fan-gameday-actions{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--fan-line);background:#f7fafc}.fan-gameday-actions a,.fan-gameday-actions button{min-height:38px;display:inline-flex;align-items:center;padding:0 11px;border:1px solid var(--fan-line);background:#fff;color:var(--fan-navy);text-decoration:none;font-size:9px;font-weight:950;cursor:pointer}.fan-gameday-actions button{margin-left:auto;background:var(--fan-navy);color:#fff}
.fan-schedule-tools{margin:0 0 16px;border:1px solid var(--fan-line);background:#fff}.fan-schedule-progress{display:grid;grid-template-columns:minmax(180px,.65fr) 1fr;align-items:center;gap:18px;padding:12px 14px}.fan-schedule-progress small{display:block;color:#72869a;font-size:8px;font-weight:950;letter-spacing:.13em}.fan-schedule-progress strong{display:block;margin-top:4px;color:var(--fan-navy);font-size:10px}.fan-schedule-progress>span{height:8px;background:#e8eff5;overflow:hidden}.fan-schedule-progress>span i{display:block;height:100%;background:linear-gradient(90deg,var(--fan-blue),var(--fan-navy))}.fan-schedule-filters{display:flex;gap:7px;padding:10px 12px;border-top:1px solid var(--fan-line);background:#f8fbfe;overflow-x:auto}.fan-schedule-filters button{flex:0 0 auto;min-height:36px;padding:0 11px;border:1px solid var(--fan-line);background:#fff;color:var(--fan-navy);font-size:9px;font-weight:950;cursor:pointer}.fan-schedule-filters button.active{border-color:var(--fan-navy);background:var(--fan-navy);color:#fff}.fan-schedule-filters [data-cal]{margin-left:auto;border-color:rgba(75,146,219,.4);background:#edf6fc}.game-row.is-home{box-shadow:inset 3px 0 0 var(--fan-blue)}.game-row.is-away{box-shadow:inset 3px 0 0 rgba(12,35,64,.35)}
.fan-player-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0}.fan-player-actions button{min-height:38px;padding:0 11px;border:1px solid var(--fan-line);background:#fff;color:var(--fan-navy);font-size:9px;font-weight:950;cursor:pointer}.fan-player-actions button.active{background:var(--fan-navy);color:#fff;border-color:var(--fan-navy)}.fan-compare-tray{position:fixed;right:18px;bottom:20px;z-index:10010;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.2);background:var(--fan-navy);color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.28)}.fan-compare-tray span small{display:block;color:#a9cfee;font-size:7px;font-weight:950;letter-spacing:.12em}.fan-compare-tray span strong{font-size:10px}.fan-compare-tray button{min-height:34px;padding:0 9px;border:1px solid rgba(255,255,255,.22);background:#fff;color:var(--fan-navy);font-size:8px;font-weight:950;cursor:pointer}.fan-compare-tray button:disabled{opacity:.45}.fan-compare-tray [data-clear]{width:34px;padding:0;background:transparent;color:#fff;font-size:18px}.fan-compare-modal>section{width:min(920px,100%)}.fan-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--fan-line)}.fan-compare-grid article{padding:22px;background:#fff;color:var(--fan-navy)}.fan-compare-grid article>small{color:#718397;font-size:8px;font-weight:950;letter-spacing:.12em}.fan-compare-grid article>strong{display:block;margin-top:5px;font-size:19px}.fan-compare-grid article>strong b{color:var(--fan-blue)}.fan-compare-grid article>p{margin:5px 0 16px;color:#718397;font-size:10px}.fan-compare-grid dl{display:grid;grid-template-columns:1fr 1fr;margin:0;border:1px solid var(--fan-line)}.fan-compare-grid dl div{padding:10px;border-right:1px solid var(--fan-line);border-bottom:1px solid var(--fan-line)}.fan-compare-grid dt{color:#718397;font-size:7px;font-weight:950;text-transform:uppercase}.fan-compare-grid dd{margin:3px 0 0;font-size:10px;font-weight:900}.fan-compare-grid article>a{display:inline-flex;min-height:38px;align-items:center;color:var(--fan-navy);font-size:9px;font-weight:950}
@media(max-width:1100px){.fan-today-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fan-today-grid>a:nth-child(2){border-right:0}.fan-today-grid>a:nth-child(-n+2){border-bottom:1px solid var(--fan-line)}.fan-gameday-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.fan-gameday-meta>div:nth-child(2){border-right:0}}
@media(max-width:759px){.fan-command-overlay,.fan-compare-modal{padding:0;place-items:stretch}.fan-command-panel,.fan-compare-modal>section{width:100%;max-height:100vh;height:100vh;border:0}.fan-command-results{max-height:calc(100vh - 132px);padding-bottom:calc(90px + env(safe-area-inset-bottom))}.fan-today{margin-top:12px}.fan-today-lead{grid-template-columns:1fr auto;gap:5px 10px}.fan-today-lead small{grid-column:1/-1}.fan-today-lead strong{font-size:11px}.fan-today-lead span{font-size:9px}.fan-today-grid{grid-template-columns:1fr}.fan-today-grid>a,.fan-today-grid>a:nth-child(2){border-right:0;border-bottom:1px solid var(--fan-line)}.fan-today-grid>a:last-child{border-bottom:0}.fan-today-grid strong{min-height:0}.fan-return-strip{align-items:flex-start;flex-direction:column}.fan-return-strip button{width:100%;border:1px solid var(--fan-line);background:#fff}.fan-gameday-score{align-items:flex-start;flex-wrap:wrap}.fan-gameday-score span{width:100%;margin-left:0}.fan-gameday-meta{grid-template-columns:1fr 1fr}.fan-gameday-actions{overflow-x:auto}.fan-gameday-actions button{margin-left:0}.fan-schedule-progress{grid-template-columns:1fr}.fan-schedule-filters [data-cal]{margin-left:0}.fan-player-actions{display:grid;grid-template-columns:1fr 1fr}.fan-player-actions button:last-child{grid-column:1/-1}.fan-compare-tray{left:10px;right:10px;bottom:calc(78px + env(safe-area-inset-bottom));justify-content:space-between}.fan-compare-grid{grid-template-columns:1fr;overflow:auto;height:calc(100vh - 68px)}}
@media(max-width:390px){.fan-gameday-meta{grid-template-columns:1fr}.fan-gameday-meta>div{border-right:0;border-bottom:1px solid var(--fan-line)}.fan-compare-tray span{display:none}.fan-compare-tray button{flex:1}.fan-compare-tray [data-clear]{flex:0 0 34px}}
@media(prefers-reduced-motion:reduce){.fan-today-grid>a{transition:none}.fan-command-backdrop{backdrop-filter:none}}
