/* Public Game Forecast: use the same page shell as Court Times. */
.site-front-main.game-forecast-page { width: calc(100% - 32px); max-width: var(--app-page-shell-max-width, 100%); margin: 0 auto; padding: 0 0 3.5rem; }
.game-forecast { padding: 1rem; color: #172033; }
.game-forecast *, .game-forecast *::before, .game-forecast *::after { box-sizing: border-box; }
.game-forecast [hidden] { display: none !important; }
.game-forecast h2 { font-size: 1.15rem; margin: 0 0 0.75rem; }
.game-forecast h3 { font-size: 1rem; margin: 0 0 0.6rem; }
.gf-intro, .gf-help { margin: 0 0 1rem; }
.gf-controls { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: end; margin-bottom: 1.25rem; }
.gf-format { border: 0; padding: 0; margin: 0; min-width: 0; }
.gf-format legend { font-weight: 600; margin-bottom: 0.35rem; }
.gf-format label { display: inline-flex; align-items: center; min-height: 44px; gap: 0.35rem; margin-right: 1rem; }
.gf-target { display: grid; gap: 0.35rem; }
.game-forecast button, .game-forecast input, .game-forecast select { font: inherit; }
.game-forecast button, .game-forecast select, .gf-search input { min-height: 44px; border: 1px solid #9aa8b9; border-radius: 6px; background: #fff; color: #172033; padding: 0.5rem 0.75rem; }
.game-forecast button { cursor: pointer; }
.game-forecast button:hover { background: #eef8f0; }
.game-forecast button:focus-visible, .game-forecast input:focus-visible, .game-forecast select:focus-visible { outline: 3px solid #176034; outline-offset: 3px; }
.gf-search button { background: #246d3d; color: #fff; border-color: #246d3d; }
.gf-search button:hover { background: #1d5731; }
.gf-search button:disabled { opacity: 0.7; cursor: wait; }
.gf-workspace { display: grid; grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.6fr); gap: 1.75rem; align-items: start; }
.gf-directory, .gf-matchup { min-width: 0; }
.gf-search { display: grid; gap: 0.35rem; }
.gf-search > div { display: flex; gap: 0.5rem; }
.gf-search input { min-width: 0; width: 100%; }
.gf-search-status, .gf-help, .gf-average, .gf-estimate-note, .gf-fallback, .gf-selection { font-size: 0.92rem; }
.gf-search-status { margin: 0.75rem 0; }
.gf-results { display: grid; gap: 0.5rem; }
.gf-player { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; width: 100%; text-align: left; }
.gf-player > span { min-width: 0; overflow-wrap: anywhere; }
.gf-player small { display: block; color: #41516a; margin-top: 0.2rem; }
.gf-player[aria-pressed='true'] { background: #e5f7e9; border-color: #246d3d; box-shadow: 0 0 0 2px #246d3d; }
.gf-drag-mark { flex: 0 0 auto; color: #41516a; font-size: 1.25rem; }
.gf-selection { min-height: 1.5em; margin: 0 0 0.5rem; }
.gf-error { color: #a52017; margin: 0.5rem 0; }
.gf-court { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 0.8rem; padding: 1rem; background: #edf6ef; border: 1px solid #c4ccd6; border-radius: 8px; }
.gf-side { min-width: 0; }
.gf-side > [data-gf-slot] { margin-bottom: 0.5rem; }
.gf-versus { align-self: center; color: #41516a; font-size: 0.9rem; }
.gf-slot { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.35rem; align-items: stretch; }
.gf-slot-target { width: 100%; text-align: left; min-width: 0; display: grid; gap: 0.25rem; align-content: center; min-height: 84px !important; overflow-wrap: anywhere; }
.gf-slot-target small { color: #41516a; }
.gf-slot-target.gf-empty { border-style: dashed; }
.gf-slot.gf-drop-active .gf-slot-target { outline: 3px solid #246d3d; outline-offset: 1px; background: #e5f7e9; }
.gf-remove { align-self: center; padding: 0.5rem !important; width: 44px; }
.gf-average { margin: 0.75rem 0 0; color: #41516a; }
.gf-forecast { margin-top: 1rem; padding: 1rem; background: #fff; border: 1px solid #c4ccd6; border-radius: 8px; }
.gf-forecast > p { margin: 0.5rem 0 0; }
.gf-scoreboard { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 0.75rem; align-items: center; text-align: center; margin: 0.75rem 0; }
.gf-scoreboard > div { display: grid; gap: 0.25rem; min-width: 0; }
.gf-scoreboard span { overflow-wrap: anywhere; }
.gf-scoreboard strong { font-size: 2.5rem; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
.gf-estimate-note, .gf-fallback { color: #41516a; }
@media (max-width: 780px) {
    .gf-workspace { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
    .gf-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .site-front-main.game-forecast-page { width: calc(100% - 24px); }
    .gf-results,
    .gf-court { grid-template-columns: minmax(0, 1fr); }
    .gf-versus { text-align: center; }
    .gf-controls { gap: 0.75rem; }
    .gf-slot-target { min-height: 70px !important; }
}
