:root { --navy:#060e1c; --navy-2:#0b1d35; --blue:#0aa7ff; --ink:#142b45; --muted:#5a7188; --bg:#edf3f8; --card:#fff; --line:#d4e0ea; --gold:#ffb321; --orange:#ff6b00; --red:#c62828; --green:#218c54; }
* { box-sizing:border-box; } body { margin:0; color:var(--ink); background:var(--bg); font:15px/1.5 Inter,Segoe UI,Arial,sans-serif; }
button,input,select,textarea { font:inherit; } button { cursor:pointer; } a { color:var(--blue); text-decoration:none; }
.site-header { min-height:82px; display:flex; align-items:center; gap:28px; padding:0 5vw; background:linear-gradient(90deg,#020713 0%,#06192f 58%,#0d2a48 100%); color:#fff; box-shadow:0 2px 14px #0007; border-bottom:2px solid var(--orange); }
.site-header { position:sticky; top:0; z-index:100; }
.brand { display:flex; align-items:center; gap:10px; color:#fff; font-weight:800; letter-spacing:.1px; white-space:nowrap; font-size:18px; }.brand img { width:62px; height:62px; object-fit:cover; object-position:50% 25%; border-radius:50%; border:2px solid #f5a21b; box-shadow:0 0 12px #f4771d77; }
#main-nav { display:flex; gap:4px; flex:1; } #main-nav a { color:#d9e7f5; padding:22px 10px 19px; border-bottom:3px solid transparent; font-weight:600; } #main-nav a:hover,#main-nav a.active { color:#fff; border-color:var(--orange); }
.admin-toggle { background:#0a3961; color:white; border:1px solid #238ed1; border-radius:5px; padding:8px 12px; font-weight:700; }.admin-toggle:hover { background:var(--blue); }
main { max-width:1220px; margin:0 auto; padding:38px 24px 70px; }.hero { position:relative; isolation:isolate; min-height:390px; display:flex; flex-direction:column; justify-content:center; overflow:hidden; padding:50px; color:#fff; border-radius:14px; background:linear-gradient(90deg,#020a17f5 0%,#06172bd4 42%,#06172b22 78%),url('assets/banner.png') center/cover; margin-bottom:28px; box-shadow:0 12px 32px #06192f77; border:1px solid #164664; }.hero h1 { max-width:610px; margin:0 0 9px; font-size:44px; text-shadow:0 2px 10px #000; }.hero p { max-width:620px; margin:0; color:#f2f7fc; font-size:17px; text-shadow:0 1px 7px #000; }.hero .eyebrow { color:#ffc247; }.hero-cta { display:inline-flex; align-items:center; gap:9px; width:max-content; margin-top:25px; border-radius:5px; padding:10px 15px; background:linear-gradient(90deg,var(--orange),#ff9827); color:#fff; font-weight:800; box-shadow:0 5px 12px #0007; }.hero-cta span { font-size:20px; }
h1,h2,h3 { color:var(--navy); line-height:1.2; } h1 { margin-top:0; } .hero h1 { color:white; }.eyebrow { margin:0 0 8px; color:var(--blue); font-weight:800; font-size:12px; letter-spacing:1px; text-transform:uppercase; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:18px; }.card { background:var(--card); border:1px solid var(--line); box-shadow:0 3px 10px #06192f0c; border-radius:10px; padding:22px; }.card h2,.card h3 { margin-top:0; }.card h3 { font-size:17px; }.section { margin:32px 0; }.section-head { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:14px; }.section-head h2 { margin:0; }.section-head h2:after { content:''; display:block; width:42px; height:3px; margin-top:7px; background:linear-gradient(90deg,var(--orange),var(--gold)); border-radius:4px; }
.game-day { position:relative; overflow:hidden; min-height:220px; display:flex; align-items:center; justify-content:space-between; margin:32px 0; border-radius:12px; padding:30px 54px; background:linear-gradient(90deg,#04111fef 0%,#09233bdc 52%,#08213f62 100%),url('assets/banner.png') center 66%/cover; box-shadow:0 9px 25px #07152655; }.game-day:after { content:''; position:absolute; inset:auto 0 0; height:4px; background:linear-gradient(90deg,var(--orange),var(--gold),var(--blue)); }.game-day-copy { position:relative; z-index:1; max-width:570px; }.game-day h2 { color:white; font-size:30px; margin:0 0 7px; }.game-day p { color:#dceaf5; margin:0; font-size:16px; }.game-day .eyebrow { color:#ffbe40; margin-bottom:6px; }.game-day img { position:relative; z-index:1; width:160px; height:160px; object-fit:cover; object-position:50% 27%; border-radius:50%; border:3px solid #ff9b20; box-shadow:0 0 0 8px #ffffff18,0 7px 22px #0007; }.photo-grid { display:grid; grid-template-columns:1.85fr .85fr; gap:18px; margin:38px 0 0; }.photo-grid img { display:block; width:100%; height:210px; object-fit:cover; border-radius:10px; box-shadow:0 7px 20px #06192f24; border:1px solid #163d5b; }.photo-grid img:first-child { object-position:center 62%; }.photo-grid img:last-child { object-position:50% 25%; }
.game { padding:12px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:85px 1fr 1fr; align-items:center; gap:8px; }.game:first-of-type { border-top:0; }.game .time { color:var(--muted); font-weight:700; }.game .venue { color:var(--muted); font-size:13px; text-align:right; }.alternate { display:inline-flex; align-items:center; gap:3px; background:#fff0cc; border:1px solid #f08a24; color:#8a3d00; font-size:10px; font-weight:900; letter-spacing:.03em; line-height:1.1; padding:3px 5px; border-radius:3px; margin:3px 0 0 5px; white-space:nowrap; }.alternate::before { content:'⚠'; font-size:11px; }
table { border-collapse:collapse; width:100%; background:white; border:1px solid var(--line); border-radius:8px; overflow:hidden; } th { background:#e9f2fb; color:#183b56; font-size:12px; letter-spacing:.25px; text-transform:uppercase; } th,td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; } tr:last-child td { border-bottom:0; } tr.clickable:hover { background:#f5faff; cursor:pointer; }.record { color:var(--muted); font-size:13px; }
.tabs { display:flex; gap:5px; overflow:auto; margin-bottom:22px; }.tabs button { border:1px solid var(--line); background:white; padding:9px 14px; border-radius:6px; color:var(--ink); font-weight:700; white-space:nowrap; }.tabs button.active { border-color:var(--blue); background:var(--blue); color:#fff; }
.admin-layout { display:grid; grid-template-columns:220px 1fr; gap:24px; }.admin-aside { background:white; border:1px solid var(--line); border-radius:9px; padding:10px; height:max-content; }.admin-aside button { width:100%; text-align:left; padding:11px 12px; background:none; border:0; border-radius:5px; color:var(--ink); font-weight:650; }.admin-aside button.active,.admin-aside button:hover { color:var(--blue); background:#eaf4ff; }.toolbar { display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin:0 0 18px; }
.btn { border:0; background:linear-gradient(90deg,#008dde,#13afff); color:white; padding:9px 13px; border-radius:5px; font-weight:750; }.btn:hover { filter:brightness(1.05); }.btn.secondary { background:#e7f1f9; color:#0e4770; }.btn.danger { background:var(--red); }.btn:disabled { opacity:.5; cursor:not-allowed; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.field { display:flex; flex-direction:column; gap:5px; }.field label { font-weight:700; font-size:13px; }.field input,.field select,.field textarea { border:1px solid #b8c7d5; border-radius:5px; padding:9px; background:white; }.field textarea { min-height:120px; resize:vertical; }.wide { grid-column:1/-1; }.form-actions { margin-top:18px; display:flex; gap:8px; }
.roster-editor { margin-top:8px; padding:16px; border:1px solid var(--line); border-radius:8px; background:#f7fbfe; }.roster-editor .section-head { margin-bottom:10px; }.roster-editor .section-head label { font-weight:800; color:var(--navy); }.roster-editor .section-head p { margin:3px 0 0; }.player-row { display:grid; grid-template-columns:1.5fr .7fr 1.5fr auto; align-items:end; gap:10px; padding:12px 0; border-top:1px solid var(--line); }.player-row:first-child { border-top:0; }.remove-player { margin-bottom:9px; white-space:nowrap; }
.notice { padding:13px 15px; border-radius:6px; background:#eaf4ff; color:#164a77; margin:13px 0; }.notice.warning { background:#fff8d9; color:#675300; }.notice.danger { background:#ffe8e8; color:#962424; }.conflict { background:#ffebee!important; }.conflict-label { color:var(--red); display:block; font-size:12px; font-weight:700; }.badge { display:inline-block; padding:2px 7px; border-radius:999px; background:#e3f5e9; color:#16703e; font-size:12px; font-weight:800; }.badge.bad { background:#ffe1e1; color:#a32626; }
.text-button { padding:1px 4px; border:0; border-radius:3px; background:transparent; color:#b32626; font-size:12px; font-weight:800; text-decoration:underline; }
.division-picker { display:flex; align-items:center; gap:10px; width:max-content; margin:-8px 0 19px; padding:9px 12px; border-radius:7px; background:#e5f1fb; color:#123e61; font-weight:800; }.division-picker select { min-width:190px; border:1px solid #85b9de; border-radius:4px; padding:6px 8px; background:white; color:var(--ink); }.admin-conflict-banner { border-left:5px solid var(--red); }.calendar-legend { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 10px; font-size:12px; font-weight:700; }.calendar-legend span:before { content:''; display:inline-block; width:9px; height:9px; margin-right:5px; border-radius:50%; }.available-key:before { background:#51a870; }.game-key:before { background:#1d7fbe; }.unavailable-key:before { background:#8a6b35; }.conflict-key:before { background:#ce3333; }.calendar { display:grid; grid-template-columns:repeat(7,minmax(92px,1fr)); overflow:auto; border:1px solid var(--line); border-radius:7px; background:#fff; }.calendar>div { min-height:86px; padding:7px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.calendar>div:nth-child(7n) { border-right:0; }.calendar>div:nth-child(-n+7) { min-height:30px; padding:6px; background:#e7f1f9; color:#1c4b6b; font-size:11px; font-weight:850; text-align:center; text-transform:uppercase; }.calendar .cal-cell { background:#f8fbfd; }.calendar .cal-cell b { display:block; color:#183b56; }.calendar .cal-cell small { display:block; margin-top:3px; color:#61768b; font-size:10px; line-height:1.25; }.calendar .is-available { background:#edf9f0; }.calendar .is-available small { color:#21864b; font-weight:700; }.calendar .is-unavailable { background:#f5efe2; border-top:3px solid #8a6b35; }.calendar .is-unavailable small { color:#70521c; font-weight:800; }.calendar .has-game { background:#e8f5fd; border-top:3px solid #2186c6; }.calendar .has-game small { color:#12669b; font-weight:700; }.calendar .has-conflict { background:#ffe8e8; border-top:3px solid #c92b2b; }.calendar .has-conflict small { color:#a32323; font-weight:800; }.calendar .empty-cell { background:#f1f4f6; }
.calendar-date-button { display:block; padding:0; border:0; background:transparent; color:#183b56; font-weight:850; font-size:14px; }.calendar-date-button:hover { color:var(--orange); text-decoration:underline; }
.division-game-lists { display:grid; gap:16px; }.division-game-list { margin:0; }.division-game-list h3 { margin-bottom:4px; }
.division-profile { display:flex; justify-content:space-between; gap:24px; align-items:center; margin:0 0 16px; padding:28px 30px; border:1px solid #173e5f; border-radius:12px; background:linear-gradient(100deg,#061525f2,#0b2c49df),url('assets/banner.png') center 45%/cover; color:#e5f1fb; box-shadow:0 9px 24px #06192f33; }.division-profile h2 { max-width:590px; margin:0 0 7px; color:#fff; font-size:27px; }.division-profile p { margin:0; color:#c9deee; }.division-profile .eyebrow { color:#ffc14d; }.division-profile-next { display:flex; min-width:250px; flex-direction:column; gap:3px; padding:17px; border:1px solid #ffffff38; border-radius:8px; background:#020c17a8; }.division-profile-next span,.division-stats span { color:#9ec8e8; font-size:11px; font-weight:850; letter-spacing:.7px; text-transform:uppercase; }.division-profile-next b { color:#fff; font-size:16px; }.division-profile-next small { color:#d2e4f2; }.division-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:22px; }.division-stats>div { min-height:92px; padding:16px; border:1px solid var(--line); border-top:4px solid var(--orange); border-radius:8px; background:#fff; box-shadow:0 3px 10px #06192f0b; }.division-stats b { display:block; margin-top:3px; color:var(--navy); font-size:17px; }.division-stats small { display:block; margin-top:2px; color:var(--muted); font-size:12px; }.division-content-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:18px; }.division-team-grid { display:grid; gap:8px; }.division-team-card { display:flex; flex-direction:column; gap:2px; padding:12px 13px; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:6px; background:#f8fbfe; color:var(--ink); }.division-team-card:hover { border-left-color:var(--orange); background:#fff; box-shadow:0 3px 10px #06192f14; }.division-team-card span { color:#0e5e91; font-size:13px; font-weight:800; }.division-team-card small { color:var(--muted); }.division-schedule { margin-top:26px; }
.upcoming-games-table { table-layout:fixed; }.upcoming-games-table .game-time-column { width:16%; }.upcoming-games-table .game-home-column,.upcoming-games-table .game-visitor-column { width:29%; }.upcoming-games-table .game-venue-column { width:26%; }.upcoming-games-table th,.upcoming-games-table td { vertical-align:middle; overflow-wrap:anywhere; }.upcoming-games-table td:first-child { white-space:nowrap; font-weight:700; }
.site-footer { max-width:1480px; margin:0 auto; overflow:hidden; background:#020915; }.site-footer img { display:block; width:100%; height:230px; object-fit:cover; object-position:center; }
.score-input { width:72px; padding:7px 8px; border:1px solid var(--line); border-radius:5px; font:inherit; font-weight:750; color:var(--ink); }
.site-shell #side-nav .signout { display:none; }.session-signout { margin-left:auto; padding:8px 13px; border:1px solid #398fc4; border-radius:5px; background:#0a3961; color:#fff; font-weight:750; }.session-signout:hover { background:var(--blue); }.session-signout[hidden] { display:none; }
.legacy-session-action { display:none!important; }
.session-identity { margin-left:auto; color:#cfe4f4; font-size:13px; font-weight:700; }.report-bug { position:fixed; left:18px; bottom:18px; z-index:20; padding:9px 12px; border:1px solid #2d6087; border-radius:6px; background:#092641; color:#dcecf8; font-weight:750; box-shadow:0 4px 15px #0004; }.report-bug:hover { background:#0c4770; }
#change-password { margin-left:auto; } #unified-session-action { margin-left:8px; } #change-password[hidden] ~ #unified-session-action { margin-left:auto; }
@media (min-width:781px) { .site-shell #side-nav { display:flex; flex-direction:column; max-height:calc(100vh - 82px); overflow-y:auto; padding-top:20px; padding-bottom:18px; }.site-shell #side-nav a { padding:7px 12px; }.nav-heading { padding-bottom:5px; }.nav-admin { margin-top:14px; }.nav-footer { position:static; left:auto; right:auto; bottom:auto; margin:18px 12px 0; padding-top:11px; } .site-shell #side-nav .nav-footer { margin-top:auto; } }
@media (max-width:760px) { .division-profile { align-items:flex-start; flex-direction:column; padding:22px; }.division-profile-next { width:100%; }.division-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }.division-content-grid { grid-template-columns:1fr; } }
.attendance-choice.selected.maybe { border-color:#b7791f; background:#fff4d6; color:#8a5810; }
.availability-actions { display:flex; flex-wrap:wrap; gap:5px; }.availability-note { display:block; margin-top:6px; color:var(--muted); font-size:11px; }
.availability-summary { display:block; color:#47667d; font-size:11px; line-height:1.35; }
.view-toggle { display:flex; gap:6px; }.view-toggle .active { background:#0a3961; border-color:#0a3961; color:#fff; }.team-calendar-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }.team-calendar-controls h3 { margin:0; color:#183b56; }.team-calendar { display:grid; grid-template-columns:repeat(7,minmax(108px,1fr)); overflow:auto; border:1px solid var(--line); border-radius:7px; background:#fff; }.team-calendar>div { min-height:112px; padding:7px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.team-calendar>div:nth-child(7n) { border-right:0; }.team-calendar>div:nth-child(-n+7) { min-height:30px; padding:6px; background:#e7f1f9; color:#1c4b6b; font-size:11px; font-weight:850; text-align:center; text-transform:uppercase; }.team-cal-cell { background:#f8fbfd; color:#183b56; }.team-cal-cell.has-game { background:#e8f5fd; border-top:3px solid #2186c6; }.team-calendar-game { display:block; margin-top:5px; padding:4px; border-top:1px solid #b9d7e8; color:#12669b; font-size:11px; line-height:1.25; }.team-calendar-game:hover { background:#d8effc; }.team-calendar-game b,.team-calendar-game span,.team-calendar-game small { display:block; }.team-calendar-game small { color:#55758e; }
.hero { background-position:center 18%; }
@media (max-width:780px) { .hero { background-position:58% 18%; } }
.attendance-card h2 { margin-bottom:4px; }.attendance-card>p { margin:5px 0; }.attendance-list { margin-top:14px; border-top:1px solid var(--line); }.attendance-player { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }.attendance-choice { padding:5px 8px; border:1px solid #b7c8d5; border-radius:4px; background:#fff; color:#456177; font-size:12px; font-weight:750; }.attendance-choice.selected.yes { border-color:#218c54; background:#e7f6ec; color:#176a3e; }.attendance-choice.selected.no { border-color:#c62828; background:#ffebeb; color:#a82020; }
.calendar-month { margin:18px 0 9px; color:#123f61; font-size:16px; letter-spacing:.25px; }
.calendar .has-conflict { border-top-width:4px; box-shadow:inset 0 0 0 2px #ee9c9c; }.calendar .calendar-game { padding:4px 0; border-top:1px solid #b9d7e8; color:#12669b; }.calendar .calendar-game b { color:#0b4e78; }
.calendar .has-open-slot { box-shadow:inset 0 -4px 0 #45a86b; }.calendar-open-slots { display:block; margin-top:5px; padding:4px; border-radius:4px; background:#e7f7ec; color:#176a3e; font-size:10px; font-weight:850; line-height:1.3; }.calendar-other-division { display:block; margin-top:4px; color:#8c5d12; font-size:10px; font-weight:750; }.open-slot-key { display:inline-block; margin:0 8px 5px 0; padding:4px 7px; border-radius:4px; background:#e7f7ec; color:#176a3e; font-size:11px; font-weight:800; }
.rich-preview { border:1px solid var(--line); background:#fff; padding:18px; border-radius:7px; }.team-banner { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; background:white; border:1px solid var(--line); border-left:6px solid var(--blue); border-radius:9px; padding:24px; }.team-banner h1 { margin:0 0 5px; }.stats { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin:18px 0; }.stat { background:white; border:1px solid var(--line); border-radius:7px; text-align:center; padding:10px 4px; }.stat b { display:block; font-size:20px; color:var(--navy); }.stat span { color:var(--muted); font-size:11px; font-weight:bold; }.empty { text-align:center; color:var(--muted); padding:35px; }.toast { position:fixed; right:24px; bottom:24px; transform:translateY(90px); opacity:0; background:#173f2d; color:white; padding:13px 18px; border-radius:6px; transition:.25s; box-shadow:0 4px 15px #0004; font-weight:700; }.toast.show { transform:translateY(0); opacity:1; }
.header-tag { margin-left:auto; color:#93cfff; font-size:11px; font-weight:800; letter-spacing:1.2px; }.site-shell { display:grid; grid-template-columns:248px minmax(0,1fr); max-width:1480px; min-height:calc(100vh - 82px); margin:0 auto; }.site-shell main { width:100%; max-width:none; margin:0; }.site-shell #side-nav { position:sticky; top:82px; align-self:start; min-height:calc(100vh - 82px); padding:29px 15px 22px; background:linear-gradient(180deg,#071526,#091e35); border-right:1px solid #1a3a56; box-shadow:8px 0 18px #06111a0a; }.nav-heading { padding:0 12px 8px; color:#6e9bc0; font-size:10px; font-weight:850; letter-spacing:1.2px; }.nav-admin { margin-top:24px; }.site-shell #side-nav a { display:flex; align-items:center; gap:11px; padding:10px 12px; margin:2px 0; border-radius:6px; color:#d8e8f5; font-weight:700; }.site-shell #side-nav a span { display:inline-flex; width:17px; justify-content:center; color:#63bcf4; font-size:16px; }.site-shell #side-nav a:hover,.site-shell #side-nav a.active { background:linear-gradient(90deg,#0c4770,#0b2e4c); color:white; box-shadow:inset 3px 0 var(--orange); }.site-shell #side-nav a.active span { color:#ffb84a; }.signout { width:100%; margin-top:12px; padding:9px 12px; border:1px solid #29516f; border-radius:5px; background:transparent; color:#bbd4e8; text-align:left; font-weight:700; }.signout:hover { color:white; border-color:#5b9bc7; }.nav-footer { position:absolute; left:27px; right:20px; bottom:25px; padding-top:15px; border-top:1px solid #1b3b57; color:#9ebbd1; font-size:12px; }.nav-footer small { color:#607f98; }.login-wrap { display:grid; grid-template-columns:1.15fr .85fr; max-width:950px; min-height:440px; margin:35px auto; overflow:hidden; border-radius:13px; background:#fff; box-shadow:0 16px 40px #06192f25; }.login-art { position:relative; display:flex; flex-direction:column; justify-content:center; padding:48px; color:white; background:linear-gradient(135deg,#020a17dd,#092844d0),url('assets/banner.png') center/cover; }.login-art:before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,#020b18aa); }.login-art>* { position:relative; z-index:1; }.login-art img { width:95px; height:95px; margin-bottom:24px; object-fit:cover; object-position:50% 25%; border-radius:50%; border:3px solid #ff9a1c; box-shadow:0 0 0 7px #ffffff18; }.login-art h1 { margin:0 0 10px; color:white; font-size:38px; }.login-art p:not(.eyebrow) { max-width:390px; margin:0; color:#d9ecfb; }.login-art .eyebrow { color:#ffc047; }.login-card { display:flex; flex-direction:column; justify-content:center; gap:14px; padding:46px; }.login-card h2 { margin:0; }.login-card .btn { margin-top:5px; width:100%; }.login-error { min-height:20px; margin:0; color:#b71c1c; font-weight:700; font-size:13px; }.login-note { margin:0; color:var(--muted); font-size:12px; text-align:center; }
.admin-nav-links { margin:4px 0 8px 8px; border-left:1px solid #28516d; }.site-shell #side-nav .admin-nav-links a { padding:7px 9px; margin-left:5px; color:#bcd5e7; font-size:12px; }.site-shell #side-nav .admin-nav-links a span { font-size:13px; }.conflict-link,.cal-conflict-link { border:0; background:transparent; padding:0; text-align:left; cursor:pointer; }.conflict-link { margin-top:4px; text-decoration:underline; }.cal-conflict-link { display:block; width:100%; margin-top:3px; color:#a32323; font-size:10px; font-weight:850; line-height:1.25; }.modal-backdrop { position:fixed; z-index:50; inset:0; display:grid; place-items:center; padding:24px; background:#020a17b8; backdrop-filter:blur(3px); }.modal-card { width:min(650px,100%); max-height:calc(100vh - 48px); overflow:auto; padding:24px; border-radius:12px; background:#fff; box-shadow:0 20px 60px #0009; }.modal-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:17px; }.modal-head h2 { margin:0; }.modal-close { width:34px; height:34px; border:0; border-radius:50%; background:#e8f1f8; color:#183d5b; font-size:25px; line-height:1; }
.recommendation { margin:0 0 18px; padding:16px; border:1px solid #8bc9f2; border-left:5px solid var(--blue); border-radius:7px; background:linear-gradient(100deg,#eaf7ff,#f8fcff); }.recommendation .eyebrow { margin-bottom:4px; }.recommendation h3 { margin:0 0 4px; }.recommendation p { margin:0 0 11px; color:#31556f; }
@media (max-width:780px) { .site-header { padding:10px 18px; flex-wrap:wrap; gap:8px; }.brand { flex:1; font-size:15px; }.brand img { width:48px; height:48px; } #main-nav { order:3; width:100%; overflow:auto; }.admin-toggle { font-size:12px; }.hero { min-height:320px; padding:28px; background-position:58% center; }.hero h1 { font-size:29px; }.game-day { min-height:260px; padding:28px; align-items:flex-start; }.game-day img { position:absolute; right:-40px; bottom:-40px; opacity:.35; }.photo-grid { grid-template-columns:1fr; }.photo-grid img { height:170px; }.admin-layout { grid-template-columns:1fr; }.admin-aside { display:flex; overflow:auto; }.admin-aside button { white-space:nowrap; width:auto; }.form-grid { grid-template-columns:1fr; }.wide { grid-column:auto; }.stats { grid-template-columns:repeat(4,1fr); } th,td { padding:8px; font-size:13px; }.game { grid-template-columns:65px 1fr; }.game .venue { grid-column:2; text-align:left; } }
@media (max-width:780px) { .header-tag { display:none; }.site-shell { display:block; }.site-shell #side-nav { position:static; display:flex; align-items:center; gap:2px; min-height:0; overflow:auto; padding:9px 12px; border-right:0; border-bottom:2px solid var(--orange); white-space:nowrap; }.site-shell #side-nav .nav-heading,.site-shell #side-nav .nav-footer,.site-shell #side-nav .signout { display:none; }.site-shell #side-nav a { flex:0 0 auto; margin:0; padding:7px 9px; font-size:12px; }.site-shell #side-nav a span { display:none; }.site-shell main { padding:28px 18px 50px; }.login-wrap { grid-template-columns:1fr; min-height:0; margin:8px 0; }.login-art { min-height:230px; padding:30px; }.login-art h1 { font-size:29px; }.login-art img { position:absolute; right:18px; bottom:18px; width:72px; height:72px; margin:0; }.login-card { padding:30px; } }
@media (max-width:780px) { .player-row { grid-template-columns:1fr; gap:8px; }.remove-player { margin:0; width:max-content; } }

/* Full public league directory. */
.mobile-nav-trigger { display:none; }
.activity-log-row { cursor:pointer; }.activity-log-row:hover,.activity-log-row:focus { outline:0; background:#eaf6ff; box-shadow:inset 4px 0 var(--blue); }.activity-log-row td:last-child { max-width:420px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.activity-detail { display:grid; gap:0; }.activity-detail>div { display:grid; grid-template-columns:150px minmax(0,1fr); gap:14px; padding:10px 0; border-bottom:1px solid var(--line); }.activity-detail>div b,.activity-detail section>b { color:#183b56; }.activity-detail>div span { overflow-wrap:anywhere; }.activity-detail section { margin-top:18px; padding:14px; border-left:4px solid var(--orange); border-radius:5px; background:#fff5e9; }.activity-detail ul { margin:8px 0 0; padding-left:20px; }
.activity-navigation { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }.activity-navigation span { color:var(--muted); font-size:13px; font-weight:750; }.account-console-success { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; border-left:5px solid var(--green); }
.account-form-error { grid-column:1 / -1; display:grid; gap:4px; padding:13px 15px; border:1px solid #d94a3f; border-left:5px solid #c9392d; border-radius:7px; background:#fff0ef; color:#8d211c; line-height:1.4; }.account-form-error span { color:#6e302b; font-size:14px; }
.account-form-error[hidden] { display:none !important; }
.movement-feedback.success { border-color:#2d9a5b; border-left-color:#17743e; background:#eaf8ef; color:#17663a; }
.login-diagnostics { margin-top:20px; padding:12px; border:1px solid #9dc5df; border-radius:7px; background:#f4faff; color:#173c58; text-align:left; }.login-diagnostics summary { cursor:pointer; color:#0b5483; font-weight:850; }.login-diagnostics summary span { color:#5a748a; font-size:12px; font-weight:700; }.login-diagnostics p { margin:9px 0; color:#5a748a; font-size:12px; line-height:1.4; }.diagnostic-events { display:grid; max-height:220px; overflow:auto; border:1px solid #d6e5ef; border-radius:5px; background:#fff; }.diagnostic-events>div { display:grid; gap:3px; padding:8px 9px; border-bottom:1px solid #e1edf4; font-size:12px; }.diagnostic-events>div:last-child { border:0; }.diagnostic-events b { color:#164d76; }.diagnostic-events span { color:#45657d; overflow-wrap:anywhere; }
.profile-link { cursor:pointer; border-radius:6px; padding:5px 9px; transition:background .15s ease; }.profile-link:hover,.profile-link:focus { outline:0; background:#ffffff17; }.profile-link small { display:block; color:#93cfff; font-size:10px; font-weight:650; }
.standing-rank { display:none; }
.team-directory { display:grid; gap:22px; margin-top:24px; }.team-directory-division { overflow:hidden; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:0 4px 14px #06192f0d; }.team-directory-heading { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:20px 22px; background:linear-gradient(100deg,#061525,#0b2c49); }.team-directory-heading .eyebrow { color:#ffc14d; }.team-directory-heading h2 { margin:0; color:#fff; }.team-directory-details { display:flex; flex-wrap:wrap; gap:18px; color:#d7e9f7; }.team-directory-details span { display:flex; flex-direction:column; font-size:13px; }.team-directory-details b { color:#8fcaf0; font-size:10px; letter-spacing:.7px; text-transform:uppercase; }.team-directory-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; padding:14px; }.team-directory-card { display:flex; min-width:0; flex-direction:column; gap:3px; padding:13px 14px; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:7px; background:#f8fbfe; color:var(--ink); }.team-directory-card:hover { border-left-color:var(--orange); background:#fff; box-shadow:0 4px 12px #06192f15; }.team-directory-card>b { font-size:15px; }.team-directory-card small { color:var(--muted); font-size:11px; line-height:1.35; }.team-directory-next { color:#0d5d90; font-size:12px; font-weight:850; }

/* Phone layouts never require horizontal page scrolling.  Dense desktop tables
   become compact, readable cards while calendar cells stay inside the viewport. */
@media (max-width:780px) { html,body { max-width:100%; overflow-x:hidden; } body.mobile-nav-active { overflow:hidden; } .site-shell main,#app { min-width:0; max-width:100%; } .site-header { min-height:70px; padding:8px 16px; gap:8px; }.brand { min-width:0; font-size:14px; }.brand span { overflow:hidden; text-overflow:ellipsis; }.brand img { width:46px; height:46px; }.session-signout { padding:7px 9px; font-size:12px; }.site-shell #side-nav { position:fixed; z-index:120; top:70px; left:0; width:0; height:0; min-height:0; padding:0; overflow:visible; background:transparent; border:0; box-shadow:none; white-space:normal; } .site-shell #side-nav .mobile-nav-trigger { position:fixed; z-index:121; top:82px; left:12px; display:inline-flex; align-items:center; gap:6px; padding:8px 10px; border:1px solid #2d638c; border-radius:6px; background:#082842; color:#fff; font-weight:800; box-shadow:0 4px 12px #0004; } .site-shell #side-nav:not(.mobile-nav-open)>:not(.mobile-nav-trigger) { display:none; } .site-shell #side-nav.mobile-nav-open { inset:0; width:100%; height:100vh; padding:72px 22px 28px; overflow-y:auto; background:#061526f5; border:0; box-shadow:none; } .site-shell #side-nav.mobile-nav-open .mobile-nav-trigger { top:14px; left:auto; right:16px; background:#0c4770; } .site-shell #side-nav.mobile-nav-open .nav-heading { display:block; padding:18px 8px 6px; color:#7da9c8; } .site-shell #side-nav.mobile-nav-open a { display:flex; width:100%; margin:2px 0; padding:12px; font-size:15px; } .site-shell #side-nav.mobile-nav-open a span { display:inline-flex; } .site-shell #side-nav.mobile-nav-open .admin-nav-links { display:block; margin-left:8px; } .site-shell #side-nav.mobile-nav-open .nav-footer { position:static; display:block; margin:28px 8px 0; } .site-shell main { padding:28px 14px 46px; } main>h1,main>.eyebrow { padding-left:48px; } .hero,.game-day,.division-profile { margin-left:0; }.hero { padding:26px 18px; }.hero h1 { font-size:27px; }.section-head,.team-calendar-controls { align-items:flex-start; flex-direction:column; }.section-head .view-toggle { width:100%; }.view-toggle .btn { flex:1; }.team-directory { gap:16px; margin-top:16px; }.team-directory-heading { align-items:flex-start; flex-direction:column; padding:18px; gap:12px; }.team-directory-details { width:100%; gap:12px; }.team-directory-details span { flex:1; min-width:130px; }.team-directory-grid { grid-template-columns:1fr; padding:10px; }.team-directory-card { padding:12px; } table { display:block; width:100%; border:0; border-radius:0; background:transparent; } table thead { display:none; } table tbody { display:grid; gap:9px; } table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 10px; padding:10px; border:1px solid var(--line); border-radius:7px; background:#fff; } table td { min-width:0; padding:4px 0; border:0; overflow-wrap:anywhere; } table td:first-child { grid-column:1/-1; padding-bottom:7px; border-bottom:1px solid var(--line); font-weight:800; } .activity-log-row td:last-child { max-width:none; white-space:normal; } .activity-detail>div { grid-template-columns:1fr; gap:2px; }.team-calendar,.calendar { grid-template-columns:repeat(7,minmax(0,1fr)); width:100%; overflow:hidden; } .team-calendar>div,.calendar>div { min-width:0; min-height:78px; padding:4px; overflow-wrap:anywhere; } .team-calendar>div:nth-child(-n+7),.calendar>div:nth-child(-n+7) { min-height:26px; padding:4px 1px; font-size:9px; } .team-calendar-game { padding:3px 1px; font-size:9px; overflow-wrap:anywhere; } .team-calendar-game small,.availability-summary { font-size:9px; } .modal-backdrop { padding:12px; }.modal-card { max-height:calc(100vh - 24px); padding:17px; }.form-grid { min-width:0; }.grid,.division-content-grid { grid-template-columns:1fr; }.stats { grid-template-columns:repeat(2,1fr); }.site-footer img { height:130px; object-fit-position:center; } .report-bug { left:12px; bottom:12px; font-size:12px; } }

/* Rules page styling: content is unchanged, only the reading experience improves. */
.rules-hero { margin:0 0 22px; padding:42px 46px; border:1px solid #173e5f; border-radius:13px; background:linear-gradient(100deg,#061525ed,#0b2c49c9),url('assets/banner.png') center 42%/cover; box-shadow:0 10px 25px #06192f33; }.rules-hero .eyebrow { color:#ffc14d; }.rules-hero h1 { margin:0 0 8px; color:#fff; font-size:38px; }.rules-hero p:not(.eyebrow) { max-width:570px; margin:0; color:#d3e6f4; font-size:17px; }.rules-content { padding:34px 42px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 4px 14px #06192f0d; }.rules-content h1 { display:none; }.rules-content h2 { margin:30px -42px 13px; padding:13px 42px 10px; border-left:5px solid var(--orange); background:linear-gradient(90deg,#fff2df,#fff); color:#102d48; font-size:22px; }.rules-content h2:first-of-type { margin-top:0; }.rules-content p { max-width:900px; margin:0 0 15px; color:#36516a; line-height:1.75; }.rules-content h3 { margin-top:24px; color:#0a5d91; }.rules-content li { margin:6px 0; }

@media (max-width:780px) { .site-shell #side-nav:not(.mobile-nav-open) .nav-heading,.site-shell #side-nav:not(.mobile-nav-open) a,.site-shell #side-nav:not(.mobile-nav-open) .admin-nav-links,.site-shell #side-nav:not(.mobile-nav-open) .nav-footer { display:none !important; } .site-shell #side-nav:not(.mobile-nav-open) { display:block !important; } .site-shell #side-nav.mobile-nav-open { display:block !important; } .site-shell #side-nav.mobile-nav-open .admin-nav-links { display:block !important; margin:8px 0 0 12px; } .site-shell #side-nav.mobile-nav-open a { display:flex !important; flex-direction:row; } .division-team-card { display:flex; gap:7px; padding:14px; }.division-team-card>b { display:block; font-size:16px; line-height:1.25; }.division-team-card>span { display:block; font-size:13px; line-height:1.35; }.division-team-card>small { display:block; max-width:100%; overflow-wrap:anywhere; font-size:12px; line-height:1.45; } .rules-hero { margin:0 0 16px; padding:28px 21px; }.rules-hero h1 { font-size:30px; }.rules-hero p:not(.eyebrow) { font-size:15px; }.rules-content { padding:22px 17px; }.rules-content h2 { margin:24px -17px 12px; padding:11px 17px 9px; font-size:19px; }.rules-content p { font-size:15px; line-height:1.65; } .standings-table tr { display:block; padding:0; border:0; background:transparent; }.standings-table td { display:none; }.standings-table td:first-child { display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); font-size:15px; }.standings-table .standing-rank { display:inline-grid; place-items:center; flex:0 0 34px; width:34px; height:28px; border-radius:5px; background:#0b2c49; color:#fff; font-size:12px; font-weight:850; }.admin-teams-table tr { grid-template-columns:minmax(0,1fr) auto; align-items:center; }.admin-teams-table td:first-child { grid-column:1; border:0; padding:4px 0; }.admin-teams-table td:nth-child(2) { grid-column:1; color:var(--muted); font-size:12px; }.admin-teams-table td:nth-child(3),.admin-teams-table td:nth-child(4) { display:none; }.admin-teams-table td:nth-child(5) { grid-column:2; grid-row:1 / span 2; display:flex; flex-direction:column; gap:6px; }.admin-teams-table td:nth-child(5) .btn { width:76px; padding:7px 5px; font-size:12px; } .calendar-date-button { position:relative; z-index:4; min-width:29px; min-height:31px; padding:4px !important; border-radius:4px; touch-action:manipulation; } .calendar .cal-cell { position:relative; } .admin-schedule-table tr { grid-template-columns:minmax(0,1fr) auto; align-items:center; }.admin-schedule-table td:nth-child(1),.admin-schedule-table td:nth-child(2),.admin-schedule-table td:nth-child(3),.admin-schedule-table td:nth-child(4) { grid-column:1; border:0; padding:3px 0; }.admin-schedule-table td:nth-child(1) { padding-bottom:5px; border-bottom:1px solid var(--line); }.admin-schedule-table td:nth-child(2)::before { content:'Home: '; color:var(--muted); font-size:11px; }.admin-schedule-table td:nth-child(3)::before { content:'Visitor: '; color:var(--muted); font-size:11px; }.admin-schedule-table td:nth-child(4)::before { content:'Venue: '; color:var(--muted); font-size:11px; }.admin-schedule-table td:nth-child(5) { grid-column:2; grid-row:1 / span 4; display:flex; flex-direction:column; gap:6px; }.admin-schedule-table td:nth-child(5) .btn { min-width:86px; padding:7px 6px; font-size:12px; } .scorekeeper-games-table tr[data-scorekeeper-row] { grid-template-columns:minmax(0,1fr) 66px 66px; align-items:start; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(-n+5) { grid-column:1; border:0; padding:2px 0; }.scorekeeper-games-table tr[data-scorekeeper-row] td:first-child { padding-bottom:5px; border-bottom:1px solid var(--line); }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(2)::before { content:'Division: '; color:var(--muted); font-size:11px; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(3)::before { content:'Venue: '; color:var(--muted); font-size:11px; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(4)::before { content:'Home: '; color:var(--muted); font-size:11px; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(5)::before { content:'Visitor: '; color:var(--muted); font-size:11px; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(6) { grid-column:2; grid-row:1 / span 5; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(7) { grid-column:3; grid-row:1 / span 5; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(6)::before { content:'Home'; display:block; color:var(--muted); font-size:10px; font-weight:800; }.scorekeeper-games-table tr[data-scorekeeper-row] td:nth-child(7)::before { content:'Visitor'; display:block; color:var(--muted); font-size:10px; font-weight:800; }.scorekeeper-games-table .score-input { width:100%; min-width:0; padding:7px 3px; text-align:center; } .activity-navigation { align-items:stretch; flex-wrap:wrap; }.activity-navigation span { flex:1; min-width:100%; order:-1; text-align:center; }.account-console-success { align-items:flex-start; flex-direction:column; gap:8px; } }
.co-captain-label { display:inline-block; margin-left:.35rem; padding:.08rem .38rem; border:1px solid var(--orange); border-radius:999px; color:var(--orange); font-size:.7rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.player-team-identity { display:flex; flex-direction:column; align-items:flex-end; line-height:1.15; }.player-team-identity small { margin-top:2px; color:#93cfff; font-size:10px; font-weight:650; }
.teams-compact { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; }.compact-team-card { padding:13px 15px; border:1px solid var(--line); border-top:3px solid var(--blue); border-radius:7px; background:#fff; }.compact-team-card h2 { margin:0 0 7px; font-size:16px; }.compact-team-card>div { display:grid; gap:3px; }.compact-team-card a { display:block; padding:3px 0; color:#12669b; font-size:14px; font-weight:750; line-height:1.25; }.compact-team-card a:hover { color:var(--orange); }
.game-result { display:inline-block; margin-top:3px; color:#48657a; font-size:11px; font-weight:750; }.game-result b { color:#163f5c; }
.co-captain-choices { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; padding:10px; border:1px solid var(--line); border-radius:6px; background:#f8fbfd; }.co-captain-choices label { display:flex; align-items:center; gap:6px; color:#24455d; font-weight:650; }
.release-gate { display:grid; min-height:calc(100vh - 170px); place-items:center; padding:36px 18px; background:radial-gradient(circle at 70% 15%,#e66d1b22,transparent 28%),linear-gradient(135deg,#eaf3f9,#f9fcff); }.release-gate-card { width:min(520px,100%); padding:38px; border:1px solid #274b68; border-top:5px solid var(--orange); border-radius:14px; background:#fff; text-align:center; box-shadow:0 16px 38px #06192f27; }.release-gate-card img { width:96px; height:96px; margin-bottom:10px; border-radius:50%; border:3px solid var(--orange); object-fit:cover; object-position:center 20%; }.release-gate-card h1 { margin:7px 0 12px; }.release-gate-card p { color:var(--muted); line-height:1.55; }.release-gate-card form { display:grid; gap:12px; max-width:270px; margin:25px auto 0; text-align:left; }.release-gate-card label { display:grid; gap:6px; color:#183b56; font-weight:800; }.release-gate-card input { text-align:center; font-size:23px; letter-spacing:9px; }
.chat-next-game { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:18px 0; padding:17px 19px; border:1px solid #8fc5e8; border-left:5px solid var(--orange); border-radius:9px; background:linear-gradient(100deg,#edf8ff,#fff); }.chat-next-game div { display:grid; gap:3px; }.chat-next-game span { color:#0b6091; font-size:11px; font-weight:850; letter-spacing:.8px; text-transform:uppercase; }.chat-next-game small { color:var(--muted); }.chat-window { display:grid; gap:8px; min-height:190px; max-height:520px; overflow-y:auto; padding:18px; border:1px solid var(--line); border-radius:10px; background:#f7fbfe; }.chat-date { margin:8px 0 2px; color:#567188; font-size:12px; font-weight:800; text-align:center; }.chat-message { max-width:min(700px,92%); padding:10px 13px; border:1px solid #d2e2ed; border-radius:8px; background:#fff; box-shadow:0 2px 5px #06192f0a; }.chat-message b { color:#0b4d77; }.chat-message time { margin-left:8px; color:#71899b; font-size:11px; }.chat-message p { margin:5px 0 0; color:#294861; line-height:1.45; overflow-wrap:anywhere; white-space:pre-wrap; }.chat-compose { display:grid; gap:9px; margin-top:14px; padding:16px; border:1px solid var(--line); border-radius:10px; background:#fff; }.chat-compose label { display:grid; gap:6px; color:#183b56; font-weight:800; }.chat-compose textarea { min-height:86px; resize:vertical; }.chat-compose>div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.chat-message.mine { margin-left:auto; border-color:#0c4770; background:linear-gradient(135deg,#0b2f4e,#0d517f); }.chat-message.mine b,.chat-message.mine p { color:#fff; }.chat-message.mine time { color:#b9dcf2; }.chat-message:not(.mine) { margin-right:auto; }
.chat-typing { min-height:22px; margin:7px 4px 0; color:#52718a; font-size:13px; font-style:italic; }
.processing-overlay { position:fixed; z-index:500; right:20px; bottom:20px; display:flex; align-items:center; gap:10px; max-width:260px; padding:10px 14px; border:1px solid #4b789a; border-radius:999px; background:#061b30ed; color:#e9f6ff; box-shadow:0 8px 22px #0005; font-size:12px; font-weight:800; opacity:0; transform:translateY(16px); pointer-events:none; transition:opacity .18s ease,transform .18s ease; }.processing-overlay.show { opacity:1; transform:translateY(0); }.processing-shot { position:relative; width:46px; height:29px; overflow:hidden; }.processing-player { position:absolute; bottom:-3px; left:2px; color:#7cc7f4; font-size:23px; }.processing-hoop { position:absolute; top:1px; right:1px; color:#ffc047; font-size:25px; transform:rotate(180deg); }.processing-ball { position:absolute; z-index:1; left:13px; bottom:13px; width:8px; height:8px; color:#f47f25; font-size:18px; line-height:8px; animation:shoot-ball 1s ease-in-out infinite; }@keyframes shoot-ball { 0% { transform:translate(0,0) scale(.7); } 55% { transform:translate(21px,-18px) scale(1); } 72% { transform:translate(29px,-11px) scale(.85); } 100% { transform:translate(0,0) scale(.7); } }
@media (max-width:780px) { .release-gate { min-height:calc(100vh - 120px); padding:24px 12px; }.release-gate-card { padding:28px 21px; }.chat-next-game { align-items:flex-start; flex-direction:column; }.chat-next-game .btn { width:100%; }.chat-window { max-height:none; padding:12px; }.chat-message { max-width:100%; }.chat-compose>div { align-items:stretch; flex-direction:column; }.chat-compose .btn { width:100%; }.processing-overlay { right:12px; bottom:12px; } }
@media (max-width:780px) { #app.team-chat-active { padding:0; }.team-chat-active>.eyebrow,.team-chat-active>.section-head { display:none; }.team-chat-active .chat-next-game { position:fixed; z-index:90; top:70px; right:0; left:0; align-items:center; flex-direction:row; min-height:76px; margin:0; padding:8px 14px; border-width:0 0 1px; border-radius:0; box-shadow:0 3px 9px #06192f20; }.team-chat-active .chat-next-game div { min-width:0; }.team-chat-active .chat-next-game b,.team-chat-active .chat-next-game small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.team-chat-active .chat-next-game .btn { flex:0 0 auto; width:auto; padding:8px 10px; font-size:12px; }.team-chat-active .chat-window { position:fixed; z-index:80; top:146px; right:0; bottom:115px; left:0; display:flex; flex-direction:column; gap:8px; max-height:none; min-height:0; margin:0; padding:14px 12px; border:0; border-radius:0; background:#eef5f9; }.team-chat-active .chat-compose { position:fixed; z-index:91; right:0; bottom:0; left:0; margin:0; padding:9px 12px calc(9px + env(safe-area-inset-bottom)); border-width:1px 0 0; border-radius:0; box-shadow:0 -3px 10px #06192f18; }.team-chat-active .chat-compose label { font-size:0; }.team-chat-active .chat-compose textarea { min-height:42px; max-height:62px; padding:10px; font-size:15px; }.team-chat-active .chat-compose>div { display:flex; flex-direction:row; align-items:center; }.team-chat-active .chat-compose .record { font-size:10px; }.team-chat-active .chat-compose .btn { width:auto; padding:9px 13px; }.team-chat-active .notice { position:fixed; z-index:80; top:70px; right:0; bottom:100px; left:0; margin:0; border:0; border-radius:0; } }

.chat-return { display:none; }
.team-schedule-game { cursor:pointer; }
.team-chat-preview { display:block; color:inherit; text-decoration:none; transition:transform .15s ease,box-shadow .15s ease; }
.team-chat-preview:hover,.team-chat-preview:focus { color:inherit; transform:translateY(-2px); box-shadow:0 8px 18px #0b35531c; }
.team-chat-preview-line { display:grid; grid-template-columns:auto 1fr auto; gap:7px; align-items:baseline; margin:6px 0; font-size:13px; }
.team-chat-preview-line b { color:#0b4d77; }.team-chat-preview-line span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.team-chat-preview-line small { color:var(--muted); font-size:10px; }
.availability-detail { display:flex; flex-direction:column; align-items:flex-start; gap:2px; margin-top:3px; text-align:left; }
.availability-status { display:inline-block; font-size:15px; font-weight:900; line-height:1.2; }
.availability-reporter { color:var(--muted); font-size:11px; line-height:1.25; }
.availability-count { font-weight:900; }
.availability-status.going,.availability-count.going { color:#16753b; }
.availability-status.not-going,.availability-count.not-going { color:#b42318; }
.availability-status.maybe,.availability-count.maybe { color:#8a6200; }
.availability-status.maybe { padding:2px 5px; border-radius:4px; background:#fff1b8; }
@media (max-width:780px) {
  /* A team conversation is intentionally distraction-free on phones. */
  body.team-chat-mode .site-header,body.team-chat-mode #side-nav,body.team-chat-mode .site-footer,body.team-chat-mode .report-bug { display:none !important; }
  body.team-chat-mode main { padding:0 !important; }
  body.team-chat-mode #app.team-chat-active { min-height:100vh; }
  .team-chat-active .chat-return { position:fixed; z-index:103; top:9px; left:10px; display:inline-flex; align-items:center; gap:4px; padding:7px 9px; border-radius:6px; background:#082842; color:#fff; font-size:12px; font-weight:800; text-decoration:none; }
  .team-chat-active .chat-next-game { top:0; min-height:88px; padding:9px 12px 9px 96px; }
  .team-chat-active .chat-window { top:88px; bottom:110px; }
  .team-chat-active .chat-typing { position:fixed; z-index:92; right:0; bottom:96px; left:0; min-height:14px; margin:0; padding:2px 12px; background:#fff; }
  .player-availability-active table tr { display:flex; flex-direction:column; gap:7px; }
  .player-availability-active table td { width:100%; }
  .player-availability-active table td:first-child { padding-bottom:6px; }
  .player-availability-active .availability-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; gap:7px; margin-top:5px; }
  .player-availability-active .attendance-choice { width:100%; padding:9px 4px; font-size:12px; }
  #team-roster-editor table tr { grid-template-columns:1fr; }
  #team-roster-editor table td:first-child { grid-column:auto; }
  #team-roster-editor input { width:100%; }
}

/* The mobile composer expands with the message, leaving the remaining screen
   for the conversation and scrolling only after half the viewport is used. */
@media (max-width:780px) {
  .team-chat-active .chat-window { bottom:var(--chat-compose-height,110px); }
  .team-chat-active .chat-typing { bottom:var(--chat-compose-height,110px); }
  .team-chat-active .chat-compose textarea { min-height:44px; max-height:50dvh; overflow-y:hidden; resize:none; }
}

/* Player movement */
.movement-list { display:grid; gap:10px; }
.movement-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid #dce7ef; }
.movement-item:last-child { border-bottom:0; padding-bottom:0; }
.movement-item b,.movement-item span { display:block; }
.movement-item span { margin-top:3px; color:var(--muted); font-size:13px; line-height:1.4; }
.movement-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.nav-count { display:inline-grid; min-width:18px; height:18px; place-items:center; margin-left:auto; padding:0 4px; border-radius:10px; background:#f47f25; color:#07192a; font-size:11px; }
.transfer-banner { margin-bottom:18px; }
.pager { align-items:center; justify-content:center; margin-top:16px; }
.free-agent-directory .form-grid { align-items:end; margin:0 0 12px; }
@media (max-width:780px) { .movement-item { align-items:flex-start; flex-direction:column; }.movement-actions,.movement-item>.btn { width:100%; }.movement-actions .btn { flex:1 1 140px; } }

/* Score sheets and secure, mobile-friendly final-score entry. */
.score-sheet-controls { margin-bottom:18px; }
.score-sheet-game-list { display:grid; gap:9px; }
.score-sheet-game { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; padding:12px; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.score-sheet-game input { width:18px; height:18px; accent-color:var(--blue); }
.score-sheet-game b,.score-sheet-game small { display:block; }
.score-sheet-game b em { color:var(--muted); font-size:12px; font-style:normal; font-weight:700; }
.score-sheet-game small { margin-top:4px; color:var(--muted); }
.score-entry-card { max-width:760px; }
.score-entry-card h1 { margin:10px 0 7px; }
.score-confirm-result { display:flex; align-items:center; justify-content:center; gap:16px; margin:22px 0; font-size:22px; }
.score-confirm-result b { color:var(--ink); }
.score-confirm-result span { color:var(--orange); font-size:28px; font-weight:900; }
@media (max-width:780px) { .score-sheet-game { grid-template-columns:auto 1fr; align-items:start; }.score-sheet-game .btn { grid-column:2; width:100%; }.score-sheet-controls .form-actions,.score-sheet-controls .form-actions .btn { width:100%; }.score-confirm-result { font-size:17px; gap:8px; flex-wrap:wrap; } }

/* Mobile Team Chat is a focused conversation view: no floating navigation,
   a compact return arrow, and a composer that always stays above the viewport. */
@media (max-width:780px) {
  body.team-chat-mode #side-nav,
  body.team-chat-mode #side-nav .mobile-nav-trigger { display:none !important; }
  .team-chat-active .chat-return { width:36px; height:36px; justify-content:center; padding:0; font-size:22px; line-height:1; }
  .team-chat-active .chat-return span { display:none; }
  .team-chat-active .chat-next-game { min-height:94px; padding:9px 10px 9px 54px; gap:8px; }
  .team-chat-active .chat-next-game div { min-width:0; flex:1 1 auto; }
  .team-chat-active .chat-next-game b { font-size:12px; }
  .team-chat-active .chat-next-game small { font-size:10px; }
  .team-chat-active .chat-next-game .btn { flex:0 0 auto; max-width:108px; padding:8px 7px; font-size:11px; white-space:normal; }
  .team-chat-active .chat-window { top:94px; bottom:calc(var(--chat-compose-height, 138px) + env(safe-area-inset-bottom)); padding-bottom:14px; }
  .team-chat-active .chat-compose { box-sizing:border-box; z-index:200; bottom:env(safe-area-inset-bottom); min-height:118px; padding:8px 12px; }
  .team-chat-active .chat-compose label { display:block; }
  .team-chat-active .chat-compose textarea { box-sizing:border-box; display:block; width:100%; min-height:52px; max-height:40dvh; padding:10px; line-height:1.35; font-size:16px; }
  .team-chat-active .chat-compose>div { min-height:34px; }
  .team-chat-active .chat-typing { z-index:201; bottom:calc(var(--chat-compose-height, 138px) + env(safe-area-inset-bottom)); }
}

/* Guided communication recipient picker. */
.communications-quick { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; padding:1rem; border:1px solid #c9dced; border-radius:.65rem; background:#f4f9fd; }
.communications-quick label { font-weight:700; }
.communications-quick small { flex-basis:100%; color:#58718e; }
.communications-empty { padding:1.25rem; border:1px dashed #a9c4dc; border-radius:.6rem; color:#58718e; background:#f8fbfe; }
.communications-team-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:.85rem; margin-top:.45rem; }
.communications-team { padding:1rem; border:1px solid #c9dced; border-radius:.65rem; background:#fff; }
.communications-team-toggle { display:flex; gap:.45rem; align-items:center; font-size:1.05rem; }
.communications-team-audience { width:100%; margin:.75rem 0 .5rem; }
.communications-members { display:grid; gap:.35rem; max-height:12rem; overflow:auto; padding:.6rem; background:#f5f9fc; border-radius:.45rem; }
.communications-members label { display:flex; gap:.4rem; align-items:baseline; line-height:1.25; }
.communications-members small { margin-left:auto; color:#58718e; font-size:.78rem; white-space:nowrap; }
@media (max-width:780px) { .communications-team-list { grid-template-columns:1fr; }.communications-members small { white-space:normal; text-align:right; } }
