:root {
  color-scheme: dark;
  --black: #130f12;
  --panel: #201a1e;
  --panel-light: #2b2429;
  --burgundy: #781d32;
  --burgundy-light: #a33750;
  --white: #f8f6f6;
  --gray: #c9c3c6;
  --muted: #9c9298;
  --line: #51444b;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--black); color: var(--white); font: 16px/1.45 system-ui, sans-serif; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .55; }
:focus-visible { outline: 3px solid #f2c88c; outline-offset: 3px; }
a { color: var(--white); }
.boot { padding: 3rem; font-size: 2rem; font-weight: 900; letter-spacing: .18em; }
.login { min-height: 100vh; display: grid; grid-template-columns: minmax(310px, 520px) 1fr; }
.login-panel { padding: clamp(2rem, 6vw, 5rem); display: flex; flex-direction: column; justify-content: center; }
.login-art { background: linear-gradient(140deg, #190e12, #4a1422 58%, #251b20); padding: 7vw; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--line); }
.login-art h1 { font-size: clamp(3rem, 6vw, 6rem); line-height: .95; max-width: 9ch; margin: 1rem 0; text-transform: uppercase; }
.wordmark { font-size: 1.7rem; font-weight: 900; letter-spacing: .16em; }
.login-brand { display: flex; align-items: center; gap: 1rem; margin-bottom: .5rem; }
.talon-logo { width: 76px; height: 76px; object-fit: contain; }
.sidebar-brand { display: flex; align-items: center; gap: .5rem; }
.talon-shield { width: 45px; height: 48px; object-fit: contain; }
.sidebar-brand .wordmark { font-size: 1.35rem; }
.eyebrow { color: #e09eae; text-transform: uppercase; font-size: .75rem; font-weight: 800; letter-spacing: .16em; }
.muted { color: var(--muted); }
.shell { min-height: 100vh; display: grid; grid-template-columns: 230px minmax(0, 1fr); }
.sidebar { border-right: 1px solid var(--line); padding: 1.5rem 1rem; display: flex; flex-direction: column; gap: 1.6rem; }
.sidebar nav { display: grid; gap: .3rem; }
.sidebar nav button { text-align: left; background: none; border: 0; color: var(--gray); padding: .8rem 1rem; border-radius: .55rem; }
.sidebar nav button.active, .sidebar nav button:hover { background: var(--burgundy); color: white; }
.sidebar .logout { margin-top: auto; }
.content { width: min(1120px, 100%); margin: 0 auto; padding: clamp(1.2rem, 3.5vw, 3rem); }
.topbar { display: flex; justify-content: space-between; gap: 1rem; align-items: start; margin-bottom: 2rem; }
h1 { font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1.08; margin: .25rem 0 1rem; text-transform: uppercase; letter-spacing: -.03em; }
h2 { font-size: 1.25rem; margin: 0 0 .8rem; }
h3 { margin: 0 0 .4rem; }
p { margin: .5rem 0 1rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; }
.stack { display: grid; gap: 1rem; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: .8rem; padding: 1.3rem; min-width: 0; }
.hero { background: linear-gradient(125deg, #5d1729, #25171f 70%); padding: clamp(1.4rem, 3vw, 2.8rem); }
.hero h2 { font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1; text-transform: uppercase; max-width: 13ch; }
.stat { font-size: 2.6rem; font-weight: 850; margin: .25rem 0; }
.pill { display: inline-block; border: 1px solid var(--line); color: var(--gray); padding: .25rem .6rem; border-radius: 999px; font-size: .77rem; text-transform: capitalize; }
.pill.approved, .pill.fulfilled { border-color: #8bba99; color: #b9dfc3; }
.pill.clarify { border-color: #dfaa68; color: #f2c88c; }
.actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.primary, .secondary, .text-button { border: 1px solid var(--burgundy-light); border-radius: .5rem; padding: .67rem 1rem; color: white; background: var(--burgundy); font-weight: 700; }
.secondary { background: transparent; border-color: var(--line); }
.text-button { background: none; border: 0; padding-left: 0; }
label { display: grid; gap: .35rem; font-size: .9rem; color: var(--gray); font-weight: 650; }
input, textarea, select { width: 100%; color: var(--white); background: #161216; border: 1px solid #66565f; border-radius: .5rem; padding: .7rem .8rem; }
textarea { min-height: 100px; resize: vertical; }
form { display: grid; gap: 1rem; }
.notice { border: 1px solid var(--line); background: var(--panel-light); padding: .9rem 1rem; border-radius: .5rem; margin: 1rem 0; }
.notice.error { border-color: #cb6574; color: #ffd0d7; }
.notice.success { border-color: #81aa8c; color: #d3f2d9; }
.list { display: grid; gap: .65rem; }
.list-item { padding: .9rem 0; border-top: 1px solid var(--line); }
.list-item:first-child { border-top: 0; }
.row { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.small { font-size: .85rem; }
.bottom-nav { display: none; }
@media (max-width: 760px) {
  .login { display: block; }
  .login-panel { min-height: 100vh; }
  .login-art { display: none; }
  .shell { display: block; padding-bottom: 80px; }
  .shell.coach { padding-bottom: 120px; }
  .sidebar { border-right: 0; border-bottom: 1px solid var(--line); padding: .8rem 1rem; flex-direction: row; justify-content: space-between; align-items: center; }
  .talon-shield { width: 33px; height: 36px; }
  .sidebar-brand .wordmark { font-size: 1rem; }
  .sidebar nav { display: none; }
  .sidebar .logout { margin: 0; }
  .bottom-nav { display: flex; position: fixed; z-index: 4; bottom: 0; left: 0; right: 0; overflow-x: auto; background: #191316; border-top: 1px solid var(--line); }
  .bottom-nav button { flex: 1; min-width: 74px; padding: .85rem .35rem; color: var(--gray); border: 0; background: none; font-size: .8rem; }
  .bottom-nav button.active { color: white; background: var(--burgundy); }
  .bottom-nav.coach { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow-x: hidden; }
  .bottom-nav.coach button { min-width: 0; padding: .65rem .25rem; }
  .topbar .pill { flex-shrink: 0; max-width: 36%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .row { flex-wrap: wrap; }
}

/* Approved player and coach boards: light content, dark staff navigation, maroon actions. */

:root { color-scheme:light; --black:#12181b; --panel:#fff; --panel-light:#f4f6f8; --burgundy:#aa0028; --burgundy-light:#86001f; --white:#fff; --gray:#4c5864; --muted:#5d6774; --line:#e0e5ea; }
body { background:#f7f8fa; color:#14171b; }
h1 { font-size:clamp(2rem,3.4vw,3.1rem); letter-spacing:-.055em; text-transform:none; font-weight:850; }
h2 { font-weight:800; letter-spacing:-.03em; }
.eyebrow { color:var(--burgundy); letter-spacing:.13em; }
.login { grid-template-columns:minmax(350px,48%) minmax(360px,52%); background:#fff; }
.login-story { min-height:100vh; color:#fff; background:radial-gradient(circle at 90% 65%,#485056 0,transparent 23%),linear-gradient(145deg,#111719,#34393d 47%,#0b1012); position:relative; overflow:hidden; }
.login-story:after { content:"⚽"; position:absolute; right:-5%; bottom:-8%; font-size:clamp(10rem,23vw,25rem); line-height:1; opacity:.18; filter:grayscale(1); }
.login-story-inner { min-height:100vh; position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:3rem; text-align:center; }
.login-emblem { width:min(300px,65%); max-height:220px; object-fit:contain; filter:drop-shadow(0 8px 16px #0009); }
.story-wordmark { font-size:clamp(2.8rem,5vw,5rem); line-height:1; color:#fff; font-weight:950; letter-spacing:.12em; }
.login-team { text-transform:uppercase; letter-spacing:.35em; font-weight:700; }
.login-story-copy { margin-top:auto; padding-top:2rem; }
.login-story h1 { color:#fff; font-size:clamp(2.4rem,4vw,4rem); }
.login-story-copy p { font-size:1.2rem; }
.login-panel { width:min(440px,calc(100% - 3rem)); margin:auto; padding:3rem 0; }
.login-brand { margin-bottom:1.4rem; }
.login-panel .talon-logo { width:42px; height:42px; }
.login-panel .wordmark { color:#14171b; }
.login-panel h2 { font-size:2rem; margin:.4rem 0 1.2rem; }
.login-panel form { background:white; border:1px solid var(--line); border-radius:16px; padding:1.2rem; box-shadow:0 18px 50px #1b26300d; }
.login-panel form .primary { width:100%; justify-content:center; }
.login-panel .text-button { align-self:center; margin:.8rem auto; }
.login-private { margin-top:1rem; color:var(--muted); text-align:center; font-size:.87rem; }
.shell { grid-template-columns:226px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; color:white; background:#10171a; padding:1.5rem .85rem; }
.sidebar-brand { padding:.1rem .55rem; }
.sidebar-brand .wordmark { color:white; line-height:1; }
.sidebar-caption { display:block; color:white; font-size:.64rem; letter-spacing:.22em; font-weight:700; white-space:nowrap; }
.sidebar nav button { display:flex; align-items:center; gap:.8rem; color:#f1f3f4; font-weight:600; border-radius:6px; }
.nav-icon { display:inline-flex; align-items:center; justify-content:center; width:1.6rem; font-size:1.35rem; line-height:1; }
.nav-icon { width:22px; height:22px; flex:none; }
.sidebar nav button.active,.sidebar nav button:hover { background:linear-gradient(100deg,#85001f,#b01437); }
.sidebar .logout { color:#e6e9ea; border-color:#556063; }
.content { width:min(1260px,100%); padding:clamp(1.25rem,2.7vw,2.6rem); }
.topbar { align-items:center; margin-bottom:1.4rem; }
.topbar .eyebrow { display:none; }
.team-identity { display:flex; align-items:center; gap:.45rem; white-space:nowrap; font-size:.9rem; color:#29313a; }
.team-identity img { width:31px; height:34px; object-fit:contain; }
.card { background:#fff; color:#14171b; border:1px solid var(--line); border-radius:11px; padding:1.15rem; box-shadow:0 7px 20px #20304707; }
.hero { color:#fff; background:radial-gradient(circle at 85% 55%,#77808655 0,transparent 19%),linear-gradient(120deg,#171b1e,#30353a 56%,#14181b); position:relative; overflow:hidden; }
.hero:after { content:"⚽"; position:absolute; right:-2%; bottom:-23%; font-size:15rem; line-height:1; opacity:.19; filter:grayscale(1); pointer-events:none; }
.hero h2,.hero p,.hero .eyebrow,.hero button { position:relative; z-index:1; }
.hero h2 { color:#fff; letter-spacing:-.04em; }
.hero p { color:#f1f1f1; }
.hero .eyebrow { color:#f4e8eb; }
.pill { color:#43505d; border-color:#dce1e6; background:#f8f9fa; }
.pill.approved,.pill.fulfilled { color:#13733c; border-color:#b9dcc8; }
.pill.clarify { color:#8c5a06; border-color:#edd4aa; }
.primary,.secondary,.text-button,.row-link { min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border-radius:7px; padding:.58rem 1rem; }
.primary { color:#fff; border-color:#aa0028; background:linear-gradient(100deg,#86001f,#b4002e); }
.secondary { color:#14171b; background:#fff; border-color:#cbd3dc; }
.text-button,.row-link { color:#a00026; background:none; border:0; padding-left:0; }
.row-link { font-size:.88rem; white-space:nowrap; }
label { color:#14171b; }
input,textarea,select { min-height:42px; background:#fff; color:#14171b; border-color:#cbd3dc; border-radius:6px; }
input:focus,textarea:focus,select:focus { border-color:#a00026; }
.notice { background:#f0faf3; color:#174d2d; border-color:#c4d7ca; }
.notice.error { color:#8e0a24; border-color:#efb3c1; background:#fff2f5; }
.player-home { max-width:900px; margin:auto; }
.player-home .hero { min-height:340px; display:flex; flex-direction:column; justify-content:center; padding:2rem; }
.player-home .hero .primary { align-self:stretch; margin-top:.6rem; }
.home-panels { display:grid; gap:.7rem; margin-top:.8rem; }
.compact-card { display:flex; align-items:center; gap:1rem; }
.compact-card h2,.reward-teaser h2 { font-size:1.1rem; margin:0; }
.compact-card p,.reward-teaser p { margin:.2rem 0; }
.section-symbol { width:40px; height:40px; flex:none; border-radius:8px; background:#f1f2f4; color:#a00026; display:grid; place-items:center; font-size:1.5rem; }
.compact-card .row-link,.reward-teaser .row-link { margin-left:auto; }
.reward-teaser { display:flex; align-items:center; gap:1rem; }
.reward-teaser img { width:90px; height:90px; object-fit:contain; border-radius:8px; }
.calendar-strip { display:grid; grid-template-columns:repeat(7,1fr); gap:.3rem; padding:.8rem; margin:0 0 .9rem; background:#fff; border:1px solid var(--line); border-radius:10px; text-align:center; font-size:.83rem; font-weight:700; }
.calendar-strip span:nth-child(2) { color:#fff; background:#aa0028; border-radius:6px; padding:.5rem 0; margin:-.5rem 0; }
.calendar-strip span:nth-child(2) { color:inherit; background:transparent; padding:0; margin:0; }
.calendar-strip span { display:grid; padding:.45rem 0; border-radius:6px; }
.calendar-strip span strong { font-size:1.05rem; }
.calendar-strip span.current { color:#fff; background:#aa0028; }
.schedule-list { margin-bottom:.9rem; }
.activity-row { display:flex; align-items:center; gap:1rem; border-top:1px solid var(--line); padding:.85rem 0; }
.activity-row:first-of-type { border-top:0; }
.activity-row h2 { font-size:1rem; margin:0; }
.activity-row p { font-size:.84rem; margin:.2rem 0 0; }
.activity-symbol { width:46px; height:46px; display:grid; place-items:center; flex:none; color:#fff; background:#86001f; border-radius:7px; font-size:1.5rem; }
.activity-row .row-link { margin-left:auto; }
.progress-hero { min-height:220px; margin-bottom:.85rem; }
.progress-hero h2 { text-transform:none; }
.stats-grid { margin-bottom:.85rem; }
.reward-feature { display:flex; align-items:center; justify-content:space-between; gap:1rem; background:linear-gradient(120deg,#161a1d,#30343a); color:#fff; margin-bottom:.85rem; min-height:180px; }
.reward-feature .eyebrow { color:#f5c6d0; }
.reward-feature h2 { color:#fff; font-size:2rem; }
.reward-feature img { width:140px; height:140px; border-radius:12px; object-fit:contain; }
.reward-grid { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.reward-card img { width:100%; height:145px; object-fit:contain; border-radius:7px; margin-bottom:.7rem; }
.metric-card { display:flex; align-items:center; gap:1rem; min-height:115px; }
.metric-icon { width:62px; height:62px; border-radius:50%; display:grid; place-items:center; flex:none; background:#f0f2f4; color:#a00026; font-size:1.8rem; font-weight:800; }
.metric-card h2,.metric-card p { margin:0; }
.coach-dashboard { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr); gap:.85rem; }
.table-head,.player-table-row { display:grid; grid-template-columns:minmax(0,2fr) 1fr 1fr; gap:.5rem; padding:.7rem .8rem; }
.table-head { background:#f0f2f4; border-radius:7px; font-size:.78rem; font-weight:800; }
.player-table-row { border-bottom:1px solid var(--line); }
.roster-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.roster-row strong,.roster-row small { display:block; }
.roster-row .pill { flex:none; }
.invitation-staged { border-color:#84b491; background:#f0faf3; }
.invitation-staged code { overflow-wrap:anywhere; user-select:text; }
.roster-group-title { margin:1.4rem 0 .35rem; font-size:1rem; color:#661126; }
.point-audit { margin:.45rem 0 .8rem; color:#4c5864; font-size:.8rem; }
.point-audit summary { cursor:pointer; color:#86001f; font-weight:750; }
.point-audit p { margin:.3rem 0; }
.point-audit code { overflow-wrap:anywhere; user-select:text; }
/* Selected 02 graphic from the original color study, cropped and masked without
   regenerating or redrawing its letterforms. */
.selected-wordmark { display:block; width:250px; height:40px; background:url('/talon-exact-wordmark.png') center/contain no-repeat; flex:none; }
.wordmark-light { filter:invert(1); }
.sidebar-brand .selected-wordmark { width:133px; height:22px; }
.login-brand .selected-wordmark { width:145px; height:24px; }
.login-story { background-image:linear-gradient(90deg,#0b1013aa,#0b101333),url('/stadium-ball.png'); background-position:center; background-size:cover; background-color:#101518; }
.login-story:after,.hero:after { content:none; }
.hero { background-image:linear-gradient(90deg,#101518e8 0%,#1015189a 47%,#10151818 100%),url('/stadium-ball.png'); background-position:center; background-size:cover; background-color:#14191c; }
.player-home .hero { background-position:center,center 54%; }
.reward-dashboard { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(120px,31%); align-items:center; gap:1rem; min-height:330px !important; }
.reward-dashboard.no-reward { grid-template-columns:1fr; }
.reward-dashboard-copy,.reward-dashboard-image { position:relative; z-index:1; }
.reward-dashboard .eyebrow { color:#f5c6d0; }
.reward-dashboard h2 { max-width:none; font-size:clamp(1.8rem,3vw,2.7rem); margin:.1rem 0 .3rem; }
.reward-point-total { margin:.25rem 0; font-size:clamp(2.9rem,5vw,4.3rem); line-height:1; font-weight:900; letter-spacing:-.06em; }
.reward-point-total span { font-size:.36em; letter-spacing:0; }
.reward-remaining { font-size:1.1rem; font-weight:800; margin:.25rem 0 .65rem; }
.reward-progress { height:12px; max-width:560px; overflow:hidden; background:#ffffff50; border:1px solid #ffffff90; border-radius:99px; }
.reward-progress span { display:block; height:100%; background:#fff; border-radius:99px; }
.reward-progress-label { font-size:.78rem; margin:.25rem 0 .6rem; }
.reward-dashboard .hero-meta { margin:.3rem 0; }
.reward-dashboard .actions { margin-top:.75rem; }
.reward-dashboard .secondary { color:#fff; border-color:#ffffffaa; background:#111b1db0; }
.reward-dashboard-image { display:block; width:100%; max-height:260px; object-fit:contain; filter:drop-shadow(0 9px 18px #0008); }
.reward-dashboard .reward-earned { display:inline-block; padding:.24rem .6rem; border-radius:7px; background:#fff; color:#7a0020; font-size:.82rem; font-weight:850; animation:reward-appear .5s ease-out both; }
@keyframes reward-appear { from { transform:translateY(5px); } to { transform:none; } }
@media (prefers-reduced-motion:reduce) { .reward-earned { animation:none; } }
.content { width:min(1120px,100%); }
.player-home { max-width:none; }
.team-identity img { width:34px; height:34px; border-radius:50%; }
.sidebar .logout { background:#263238; color:#fff; border:1px solid #87939a; font-weight:750; }
.sidebar .logout:hover { background:#34444c; }
.notice.success { background:#ecf8ef; border-color:#84b491; color:#174d2d; font-weight:700; }
.competition-card,.schedule-card { margin-bottom:.85rem; }
.matchup-grid { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:1rem; align-items:center; margin:1rem 0; }
.matchup-side { display:grid; gap:.35rem; padding:1rem; border:1px solid var(--line); border-radius:8px; background:#fbfbfc; }
.matchup-side strong { font-size:2.1rem; line-height:1; }
.matchup-unit { font-size:.45em; font-weight:700; }
.matchup-side small { color:#52606b; }
.matchup-vs { color:#8a102e; font-size:.8rem; font-weight:900; letter-spacing:.14em; }
.matchup-track { height:7px; border-radius:99px; background:#e0e4e9; overflow:hidden; }
.matchup-track span { display:block; height:100%; background:#a60029; }
.competition-card summary { cursor:pointer; color:#86001f; font-weight:700; }
.matchup-leader { display:inline-block; margin:.1rem 0 .65rem; padding:.45rem .7rem; border-radius:7px; background:#fff1f4; color:#78001e; font-weight:850; }
.top-ten-card { margin-bottom:.85rem; }
.top-ten-card h2 { margin:.15rem 0 0; }
.top-ten-list { list-style:none; margin:1rem 0 .6rem; padding:0; display:grid; gap:.2rem; }
.top-ten-list li { display:flex; align-items:center; gap:.65rem; min-width:0; padding:.55rem .35rem; border-bottom:1px solid var(--line); }
.top-ten-list li:last-child { border-bottom:0; }
.top-ten-rank { width:1.6rem; flex:none; color:#8a102e; font-weight:900; text-align:center; }
.top-ten-list strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top-ten-list small { margin-left:auto; }
.top-ten-points { margin-left:auto; white-space:nowrap; font-weight:850; color:#171b1e; }
.top-ten-list small + .top-ten-points { margin-left:.2rem; }
.schedule-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; margin:1rem 0; }
.schedule-grid>div { display:grid; gap:.3rem; background:#f6f7f9; border:1px solid var(--line); border-radius:7px; padding:.8rem; }
.schedule-grid span { color:#52606b; }
.calendar-control { margin-bottom:0; }
.calendar-control h2 { margin:.2rem 0 0; }
.calendar-steps,.calendar-tabs { display:flex; gap:.35rem; flex-wrap:wrap; }
.calendar-steps button,.calendar-tabs button { border:1px solid #cbd3dc; background:#fff; color:#263238; border-radius:7px; min-height:38px; padding:.35rem .7rem; font-weight:750; }
.calendar-tabs { margin:1rem 0 .75rem; }
.calendar-tabs button.active { background:#86001f; color:#fff; border-color:#86001f; }
.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays span { text-align:center; font-size:.74rem; font-weight:800; color:#66717a; padding:.3rem; }
.calendar-grid { border-top:1px solid var(--line); border-left:1px solid var(--line); }
.calendar-day { display:flex; flex-direction:column; align-items:flex-start; gap:.28rem; min-width:0; min-height:96px; text-align:left; padding:.45rem; background:#fff; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:#14171b; }
.calendar-day:hover,.calendar-day:focus-visible { background:#fff3f5; }
.calendar-day.is-selected { box-shadow:inset 0 0 0 2px #a00026; }
.calendar-day.outside { color:#9aa2aa; background:#f8f9fa; }
.calendar-day.is-today strong { background:#a00026; color:#fff; border-radius:50%; min-width:26px; min-height:26px; display:grid; place-items:center; }
.calendar-day span { max-width:100%; background:#f5e7eb; color:#85001f; border-radius:4px; padding:.13rem .25rem; font-size:.72rem; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-day em { font-size:.7rem; color:#5d6774; font-style:normal; }
@media (max-width:900px) { .coach-dashboard { grid-template-columns:1fr; } .shell { grid-template-columns:190px minmax(0,1fr); } }
@media (max-width:760px) {
  .login { display:block; }
  .login-story,.login-story-inner { min-height:44vh; }
  .login-story-inner { padding:1rem; }
  .login-emblem { width:130px; max-height:130px; }
  .login-team { font-size:.7rem; margin:0; }
  .login-story-copy { margin-top:0; padding-top:1rem; }
  .login-story h1 { font-size:2rem; }
  .login-story-copy p { font-size:1rem; }
  .login-panel { min-height:0; padding:1.5rem 0 2.5rem; }
  .login-brand { display:none; }
  .shell { display:block; padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .shell.coach { padding-bottom:calc(124px + env(safe-area-inset-bottom)); }
  .sidebar { position:static; height:auto; flex-direction:row; align-items:center; justify-content:space-between; padding:.55rem 1rem; border:0; }
  .sidebar .desktop-nav { display:none; }
  .sidebar .logout { margin:0; min-height:36px; font-size:.75rem; color:#fff; }
  .sidebar-brand .wordmark { font-size:1rem; }
  .sidebar-caption { font-size:.5rem; }
  .talon-shield { width:32px; height:36px; }
  .content { padding:1rem .8rem 1.6rem; }
  .topbar { margin-bottom:1rem; }
  .topbar h1 { font-size:2rem; }
  .team-identity { font-size:.73rem; }
  .team-identity img { width:25px; }
  .bottom-nav { display:flex; position:fixed; z-index:5; left:0; right:0; bottom:0; overflow-x:auto; background:#fff; border-top:1px solid var(--line); box-shadow:0 -7px 20px #1b263012; }
  .bottom-nav button { min-width:68px; flex:1; display:grid; justify-items:center; gap:.1rem; padding:.45rem .1rem .35rem; border:0; background:none; color:#454d56; font-size:.7rem; }
  .bottom-nav .nav-icon { font-size:1.25rem; }
  .bottom-nav button.active { color:#a00026; border-bottom:3px solid #a00026; font-weight:800; background:#fff; }
  .bottom-nav.coach { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); max-height:none; overflow:visible; padding-bottom:env(safe-area-inset-bottom); }
  .bottom-nav.coach button { min-width:0; min-height:54px; padding:.25rem .1rem; font-size:.65rem; line-height:1.1; }
  .bottom-nav.coach button span { overflow-wrap:anywhere; }
  .grid { grid-template-columns:1fr; }
  .player-home .hero { min-height:300px; }
  .reward-dashboard { grid-template-columns:minmax(0,1fr) 108px; min-height:0 !important; padding:1rem !important; gap:.35rem; }
  .reward-dashboard h2 { font-size:1.45rem; }
  .reward-point-total { font-size:2.7rem; }
  .reward-remaining { font-size:.9rem; }
  .reward-dashboard-image { align-self:start; max-height:132px; }
  .reward-dashboard .actions { gap:.35rem; }
  .reward-dashboard .actions button { min-height:38px; padding:.45rem .6rem; font-size:.8rem; }
  .reward-feature img { width:95px; height:95px; }
  .activity-row { flex-wrap:wrap; }
  .activity-row .row-link { margin-left:0; }
  .sidebar-brand .selected-wordmark { width:111px; height:18px; }
  .login-story .selected-wordmark { width:174px; height:28px; }
  .matchup-grid { gap:.4rem; }
  .matchup-side { padding:.65rem; }
  .matchup-side strong { font-size:1.55rem; }
  .matchup-side small { font-size:.7rem; }
  .schedule-grid { grid-template-columns:1fr; }
  .calendar-steps { width:100%; }
  .calendar-day { min-height:60px; padding:.22rem; }
  .calendar-day strong { font-size:.8rem; }
  .calendar-day span { display:none; }
  .calendar-day em { display:none; }
  .calendar-day:has(span):after { content:'•'; color:#a00026; font-size:1.1rem; line-height:.6; align-self:center; }
}
@media (max-width:360px) {
  .reward-dashboard { grid-template-columns:minmax(0,1fr) 85px; }
  .reward-dashboard h2 { font-size:1.3rem; }
  .reward-dashboard-image { max-height:110px; }
  .reward-dashboard .hero-meta { display:none; }
}

