.flash { margin: 1rem auto; max-width: 72rem; padding: .75rem 1rem; border-radius: .5rem; }
.flash--notice { background: #dcfce7; color: #166534; }.flash--alert { background: #fee2e2; color: #991b1b; }
.admin { background: #f8fafc; color: #1e293b; }.admin header { background: #0f172a; color: white; padding: .85rem max(1rem, calc((100% - 72rem) / 2)); display: flex; gap: 1rem; }.admin header p { margin: 0 auto 0 0; }.admin header a { color: #bfdbfe; }.admin header form { margin: 0; }
.admin-page { max-width: 72rem; margin: 2rem auto; padding: 0 1rem; }.admin-page__header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }.admin-page h1 { margin: 0; font-size: 1.8rem; }.admin-page h2 { margin-top: 2rem; }.admin-page__intro, .muted { color: #64748b; }
.admin-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 1.5rem; }.admin-nav a, .button-link { border-radius: .4rem; padding: .45rem .7rem; text-decoration: none; color: #1e3a8a; background: #e0e7ff; }.button-link--primary { background: #2563eb; color: white; }
.week-switcher { margin-bottom: .5rem; }.week-switcher__form { margin: 0; }
.admin-card { background: white; border: 1px solid #e2e8f0; border-radius: .65rem; padding: 1.25rem; }.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .75rem; }.metric { background: white; border: 1px solid #e2e8f0; border-radius: .5rem; padding: .9rem; }.metric__value { display: block; font-size: 1.5rem; font-weight: 700; }
.admin table { width: 100%; border-collapse: collapse; background: white; border: 1px solid #e2e8f0; }.admin th, .admin td { padding: .75rem; border-bottom: 1px solid #e2e8f0; text-align: left; vertical-align: top; }.admin th { background: #f1f5f9; color: #475569; font-size: .75rem; text-transform: uppercase; }.admin tr:last-child td { border-bottom: 0; }
.admin form label { display: block; margin-bottom: .35rem; font-weight: 600; }.admin form select, .admin form input[type="file"] { width: 100%; box-sizing: border-box; padding: .55rem; border: 1px solid #cbd5e1; border-radius: .4rem; }.admin form p { margin: 1rem 0; }.admin input[type="submit"] { border: 0; border-radius: .4rem; padding: .6rem 1rem; background: #2563eb; color: white; font-weight: 600; cursor: pointer; }
.status-badge { display: inline-block; padding: .2rem .5rem; border-radius: 999px; background: #e2e8f0; font-size: .8rem; font-weight: 700; }.status-badge--completed, .status-badge--active, .status-badge--scheduled { background: #dcfce7; color: #166534; }.status-badge--failed, .status-badge--canceled { background: #fee2e2; color: #991b1b; }.status-badge--running, .status-badge--pending, .status-badge--in_progress { background: #fef3c7; color: #92400e; }
.detail-list { display: grid; grid-template-columns: minmax(10rem, 1fr) 2fr; gap: .6rem 1rem; }.detail-list dt { color: #64748b; font-weight: 600; }.csv-format { margin-top: 1rem; padding: 1rem; background: #f8fafc; border-radius: .4rem; }.csv-format code { display: block; overflow-wrap: anywhere; white-space: pre-wrap; }
@media (max-width: 640px) { .admin-page__header { display: block; }.admin table { display: block; overflow-x: auto; }.detail-list { grid-template-columns: 1fr; gap: .15rem; } }

html { overflow-x: hidden; }
body { margin: 0; min-width: 0; }
button, input, select, textarea, a.button-link { min-height: 44px; }
input, select, textarea { max-width: 100%; }
header { padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); }
@media (max-width: 640px) {
  .flash { margin: .75rem; }
  .admin form input[type="file"] { font-size: 16px; }
  .admin-page { margin-top: 1rem; }
}

/* Lightweight demo shell: centralized so a later visual redesign has one seam. */
:root { --app-bg:#10151d; --app-panel:#18212c; --app-text:#f4f1e8; --app-muted:#aab5c3; --app-border:#405064; --app-accent:#f2b544; --app-success:#65c58a; --app-danger:#f17b70; }
@font-face { font-family:"VT323"; src:url("/assets/VT323-Regular-2882faf8.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Press Start 2P"; src:url("/assets/PressStart2P-Regular-dd8cd1ef.ttf") format("truetype"); font-display:swap; }
.font-retro-body { font-family:"VT323", ui-monospace, monospace; }
.font-retro-display { font-family:"Press Start 2P", ui-monospace, monospace; }
body:not(.admin) { font-family:"VT323", ui-monospace, monospace; font-size:20px; }
body:not(.admin) .app-brand,
body:not(.admin) .eyebrow,
body:not(.admin) .page-header h1,
body:not(.admin) .app-section h2,
body:not(.admin) .section-heading,
body:not(.admin) .app-button--primary,
body:not(.admin) input[type="submit"].app-button--primary,
body:not(.admin) .status-badge,
body:not(.admin) .team-draft__standings li > :first-child,
body:not(.admin) .team-draft__standings li > :last-child { font-family:"Press Start 2P", ui-monospace, monospace; }
body:not(.admin) .app-brand { font-size:.75rem; }
body:not(.admin) .page-header h1 { font-size:1.15rem; line-height:1.55; }
body:not(.admin) .app-section h2,
body:not(.admin) .section-heading { font-size:.8rem; line-height:1.7; }
body:not(.admin) .app-button--primary,
body:not(.admin) input[type="submit"].app-button--primary { font-size:.62rem; line-height:1.45; }
body:not(.admin) .status-badge { font-size:.53rem; line-height:1.45; }
body:not(.admin) .game-matchup__teams .app-button,
body:not(.admin) .survivor-row strong + span { font-family:"Press Start 2P", ui-monospace, monospace; font-size:.62rem; }
body:not(.admin) { background:var(--app-bg); color:var(--app-text); line-height:1.5; }
body:not(.admin) a { color:inherit; }.app-header { background:#0b1017; border-bottom:1px solid var(--app-border); }.app-header__inner,.app-page { max-width:70rem; margin:auto; padding:1rem; }.app-header__inner { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }.app-brand,.eyebrow { font-family:ui-monospace,monospace; font-weight:800; letter-spacing:.08em; }.app-brand { text-decoration:none; color:var(--app-accent)!important; }.app-nav { display:flex; gap:.25rem; }.app-nav a,.app-nav__sign-out { border:0; background:transparent; color:var(--app-muted); padding:.55rem .7rem; text-decoration:none; }.app-nav .is-current { color:var(--app-text); border-bottom:2px solid var(--app-accent); }.app-header__account { margin-left:auto; display:flex; gap:.5rem; align-items:center; }.app-header__welcome { color:var(--app-muted); font-size:.85rem; }.page-header { display:flex; justify-content:space-between; gap:1rem; align-items:start; margin:1.5rem 0; }.page-header h1,.app-section h2 { margin:.1rem 0; }.page-header__intro,.pool-card__meta { color:var(--app-muted); }.eyebrow { color:var(--app-accent); font-size:.75rem; text-transform:uppercase; margin:0; }.app-section { margin:2rem 0; }.section-heading { font-size:1rem; text-transform:uppercase; letter-spacing:.06em; }.pool-grid { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); }.pool-card,.app-panel { background:var(--app-panel); border:1px solid var(--app-border); border-radius:.65rem; padding:1rem; }.pool-card { display:flex; flex-direction:column; gap:.45rem; min-height:7rem; text-decoration:none; }.pool-card:hover { border-color:var(--app-accent); }.app-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; box-sizing:border-box; padding:.65rem 1rem; border-radius:.45rem; font-weight:700; text-decoration:none; }.app-button--primary { background:var(--app-accent); color:#1a1a1a!important; }.app-button--secondary { border:1px solid var(--app-border); }.status-badge--muted { background:#314052; color:#d9e0e8; }.empty-state { text-align:center; padding:2rem; }.empty-state h2 { margin:.4rem 0; }
@media(max-width:640px){ .app-header__account { width:100%; margin-left:0; justify-content:space-between; }.page-header { display:block; }.page-header .app-button { width:100%; margin-top:1rem; } }
.survivor-board { display:grid; gap:.65rem; }.survivor-row { display:grid; grid-template-columns:1.3fr 1.5fr 1fr auto auto; gap:.75rem; align-items:center; }.status-badge--won { background:#dcfce7; color:#166534; }.status-badge--lost,.status-badge--missed { background:#fee2e2; color:#991b1b; }.status-badge--tied { background:#dbeafe; color:#1d4ed8; }.status-badge--pending { background:#fef3c7; color:#92400e; }@media(max-width:640px){ .survivor-row { grid-template-columns:1fr; gap:.35rem; }.survivor-row .app-button { width:100%; } }
.pool-context-nav { max-width:70rem; margin:.75rem auto 0; padding:0 1rem; }.pool-context-nav .app-button { min-width:8rem; }
.team-draft { display:grid; gap:1rem; }.team-draft__header,.team-draft__turn { display:flex; justify-content:space-between; gap:1rem; align-items:center; }.team-draft__header h2,.team-draft__turn h2 { margin:.2rem 0; }.team-draft__turn { display:block; border-color:var(--app-accent); }.team-draft__turn--yours { border-width:2px; box-shadow:0 0 0 3px color-mix(in srgb,var(--app-accent) 20%,transparent); }.team-draft__status { align-self:start; }.team-draft__selection-form { display:grid; gap:.5rem; max-width:28rem; }.team-draft__selection-form select { padding:.65rem; }.team-draft__selection-form .app-button { min-height:3rem; }.team-draft__controls,.team-draft__reorder { display:flex; gap:.5rem; flex-wrap:wrap; }.team-draft__controls form,.team-draft__reorder form { margin:0; }.team-draft__entries,.team-draft__board { display:grid; gap:.65rem; }.team-draft__entry { display:grid; grid-template-columns:1fr auto auto; gap:.75rem; align-items:center; }.team-draft__rosters { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:.75rem; }.team-draft__rosters ul { padding-left:1.25rem; }.team-draft__standings { list-style:none; margin:0; padding:0; border-top:1px solid #e2e8f0; }.team-draft__standings li { display:grid; grid-template-columns:2rem minmax(0,1fr) auto; gap:.5rem; align-items:center; padding:.7rem 0; border-bottom:1px solid #e2e8f0; }.team-draft__standing-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }@media(max-width:640px){ .team-draft__header { display:block; }.team-draft__status { margin-top:.5rem; }.team-draft__entry { grid-template-columns:1fr; }.team-draft__entry .app-button,.team-draft__reorder .app-button,.team-draft__controls .app-button,.team-draft__selection-form .app-button { width:100%; }.team-draft__reorder { display:grid; grid-template-columns:1fr 1fr; } }
.cesspool-standings-wrap { padding:0; overflow:hidden; }.cesspool-standings { width:100%; border-collapse:collapse; table-layout:fixed; }.cesspool-standings th,.cesspool-standings td { padding:.7rem .6rem; border-bottom:1px solid var(--app-border); text-align:right; white-space:nowrap; }.cesspool-standings thead th { color:var(--app-muted); font-size:.8rem; text-transform:uppercase; }.cesspool-standings th:first-child,.cesspool-standings tbody th { width:48%; text-align:left; overflow:hidden; text-overflow:ellipsis; }.cesspool-standings th:nth-child(2),.cesspool-standings td:nth-child(2) { width:24%; }.cesspool-standings th:nth-child(3),.cesspool-standings td:nth-child(3) { width:28%; }.cesspool-standings tbody tr:last-child > * { border-bottom:0; }@media(max-width:640px){ .cesspool-standings th,.cesspool-standings td { padding:.6rem .4rem; font-size:.9rem; }.cesspool-standings thead th { font-size:.65rem; } }

/* User-facing visual foundation.  This is deliberately scoped to app-shell so
   the separately maintained admin experience retains its own visual system. */
.app-shell {
  --app-bg: #171121;
  --app-panel: #241b32;
  --app-panel-raised: #302440;
  --app-text: #f8f3e9;
  --app-muted: #c1b8cf;
  --app-border: #5d4a75;
  --app-border-subtle: #3d304e;
  --app-accent: #e7bd58;
  --app-accent-strong: #ffd879;
  --app-purple: #9874ca;
  --app-success: #80cd9a;
  --app-warning: #f0bd60;
  --app-danger: #ef8a88;
  --app-radius: 10px;
  --app-shadow: 0 8px 20px rgba(7, 4, 12, .2);
  --app-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --app-data: "VT323", ui-monospace, monospace;
  --app-display: "Press Start 2P", ui-monospace, monospace;
  background: var(--app-bg);
  color: var(--app-text);
  font-family: var(--app-data);
  font-size: 22px;
  line-height: 1.35;
}

.app-shell * { box-sizing: border-box; }
.app-shell a { color: var(--app-accent-strong); text-underline-offset: .18em; }
.app-shell a:hover { color: #fff1b8; }
.app-shell .app-header {
  background: #100b19;
  border-bottom: 2px solid var(--app-border-subtle);
  box-shadow: 0 4px 14px rgba(5, 3, 9, .22);
}
.app-shell .app-header__inner,
.app-shell .app-page { max-width: 72rem; padding: 1rem max(1rem, env(safe-area-inset-right)) 1.5rem max(1rem, env(safe-area-inset-left)); }
.app-shell .app-header__inner { gap: .85rem 1rem; }
.app-shell .app-brand,
.app-shell .eyebrow,
.app-shell .page-header h1,
.app-shell .section-heading {
  font-family: var(--app-display);
  text-transform: uppercase;
}
.app-shell .app-brand { align-items: center; display: inline-flex; height: 36px; }
.app-shell .app-brand__icon { display: block; height: 32px; width: auto; }
.app-shell .app-nav { gap: .2rem; }
.app-shell .app-nav a,
.app-shell .app-nav__sign-out {
  border-radius: 6px;
  color: var(--app-muted);
  font-family: var(--app-sans);
  font-size: .83rem;
  font-weight: 650;
  min-height: 40px;
  padding: .55rem .7rem;
}
.app-shell .app-nav .is-current { border-bottom-color: var(--app-accent); color: var(--app-text); }
.app-shell .app-header__welcome { align-items: center; color: var(--app-text); display: inline-flex; font-family: var(--app-sans); font-size: .84rem; min-height: 40px; padding: .55rem .7rem; }
.app-shell .page-header { align-items: end; border-bottom: 1px solid var(--app-border-subtle); margin: 1.25rem 0 1.6rem; padding-bottom: 1rem; }
.app-shell .page-header h1 { font-size: clamp(.95rem, 3.6vw, 1.3rem); line-height: 1.55; }
.app-shell .page-header__intro { color: var(--app-muted); font-family: var(--app-sans); font-size: .95rem; line-height: 1.55; margin: .5rem 0 0; max-width: 42rem; }
.app-shell .eyebrow { color: var(--app-accent); font-size: .57rem; letter-spacing: .08em; line-height: 1.7; }
.app-shell .app-section { margin: 1.75rem 0; }
.app-shell .section-heading,
.app-shell .app-section > h2 { color: var(--app-accent); font-size: .68rem; letter-spacing: .07em; line-height: 1.7; margin-bottom: .8rem; }
.app-shell .app-panel,
.app-shell .pool-card {
  background: var(--app-panel);
  border: 1px solid var(--app-border-subtle);
  border-radius: var(--app-radius);
  box-shadow: var(--app-shadow);
}
.app-shell .app-panel { padding: 1rem; }
.app-shell .pool-card { border-left: 3px solid var(--app-purple); min-height: 8rem; padding: 1rem; transition: none; }
.app-shell .pool-card:hover { border-color: var(--app-accent); }
.app-shell .pool-card strong { color: var(--app-text); font-family: var(--app-sans); font-size: 1.06rem; }
.app-shell .pool-card__meta { color: var(--app-accent); font-family: var(--app-sans); font-size: .76rem; font-weight: 700; letter-spacing: .035em; }
.app-shell .pool-summary {
  align-items: center;
  background: #1d1629;
  border: 1px solid var(--app-border-subtle);
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .55rem;
  margin: 0 0 1.2rem;
  padding: .65rem .8rem;
}
.app-shell .pool-summary strong { color: var(--app-text); }
.app-shell .pool-summary--pick-schedule { background: transparent; border: 0; border-bottom: 1px solid var(--app-border-subtle); border-radius: 0; box-shadow: none; font-family: var(--app-sans); font-size: .76rem; margin: -.85rem 0 .75rem; padding: 0 0 .55rem; }
.app-shell .pool-list-row { align-items: center; display: grid; gap: .35rem; grid-template-columns: minmax(0, 1fr) auto; text-decoration: none; }
.app-shell .pool-list-row .pool-card__meta { grid-column: 1; }
.app-shell .pool-list-row strong { grid-column: 1; }
.app-shell .pool-list-row > :last-child { color: var(--app-accent); grid-column: 2; grid-row: 1 / span 2; }
.app-shell .history-list { display: grid; gap: .75rem; list-style: none; margin: 0; padding: 0; }
.app-shell .history-list > .app-panel { margin: 0; }
.app-shell .invitation-card { border-left: 3px solid var(--app-accent); }
.app-shell .invitation-card > strong { font-family: var(--app-sans); font-size: 1.06rem; }
.app-shell .invitation-card p { color: var(--app-muted); font-family: var(--app-sans); font-size: .86rem; }
.app-shell .app-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .9rem; }
.app-shell .app-actions form { margin: 0; }
.app-shell .app-button,
.app-shell input[type="submit"] {
  border: 1px solid transparent;
  border-radius: 7px;
  cursor: pointer;
  font-family: var(--app-sans);
  font-size: .88rem;
  font-weight: 750;
  gap: .35rem;
  letter-spacing: .01em;
  min-height: 44px;
  padding: .62rem .85rem;
}
.app-shell .app-button--primary,
.app-shell input[type="submit"].app-button--primary { background: var(--app-accent); color: #1e1426 !important; }
.app-shell .app-button--primary:hover,
.app-shell input[type="submit"].app-button--primary:hover { background: var(--app-accent-strong); color: #1e1426 !important; }
.app-shell .app-button--secondary { background: #2c213b; border-color: var(--app-border); color: var(--app-text) !important; }
.app-shell .app-button--secondary:hover { border-color: var(--app-accent); color: #fff1b8 !important; }
.app-shell .app-button--danger { background: #4d202b; border-color: #b85b66; color: #ffe9e8 !important; }
.app-shell .league-delete-action { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-top: 2rem; padding-top: 1rem; }
.app-shell .league-delete-action form { margin: 0; }
.app-shell .app-page:has(.pick-schedule__submit-tray) .league-delete-action { margin-bottom: calc(5.75rem + env(safe-area-inset-bottom)); }
.app-shell .app-button:focus-visible,
.app-shell input:focus-visible,
.app-shell select:focus-visible,
.app-shell textarea:focus-visible,
.app-shell a:focus-visible { outline: 3px solid var(--app-accent-strong); outline-offset: 3px; }
.app-shell .status-badge {
  background: #403151;
  border: 1px solid #6c5685;
  border-radius: 999px;
  color: #f5edff;
  font-family: var(--app-sans);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .045em;
  line-height: 1.2;
  padding: .25rem .46rem;
  text-transform: uppercase;
}
.app-shell .status-badge--won,
.app-shell .status-badge--active,
.app-shell .status-badge--completed { background: #1f4837; border-color: #4e9c76; color: #d9ffe9; }
.app-shell .status-badge--lost,
.app-shell .status-badge--missed,
.app-shell .status-badge--eliminated { background: #4e222a; border-color: #b65c66; color: #ffe2e1; }
.app-shell .status-badge--pending,
.app-shell .status-badge--scheduled,
.app-shell .status-badge--submitted,
.app-shell .status-badge--on_the_clock { background: #4b3a1d; border-color: #bd9850; color: #fff1bc; }
.app-shell .status-badge--locked { background: #2c3b58; border-color: #708ac5; color: #e5edff; }
.app-shell .status-badge--muted { background: #332a3e; border-color: #554565; color: #d7cfe1; }
.app-shell .app-form { display: grid; gap: 1rem; font-family: var(--app-sans); font-size: .92rem; max-width: 42rem; }
.app-shell .app-form p { display: grid; gap: .38rem; margin: 0; }
.app-shell .app-form label,
.app-shell .app-form legend { color: var(--app-text); font-size: .86rem; font-weight: 750; }
.app-shell .app-form fieldset { border: 1px solid var(--app-border); border-radius: 8px; display: grid; gap: .9rem; margin: .15rem 0; padding: .9rem; }
.app-shell .app-form fieldset[hidden] { display: none; }
.app-shell .app-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
.app-shell .app-form select,
.app-shell .app-form textarea,
.app-shell .team-draft__selection-form select {
  background: #171121;
  border: 1px solid var(--app-border);
  border-radius: 7px;
  color: var(--app-text);
  font: inherit;
  min-height: 46px;
  padding: .65rem .7rem;
  width: 100%;
}
.app-shell .app-form textarea { min-height: 7rem; resize: vertical; }
.app-shell .app-form input::placeholder { color: #9b90ad; }
.app-shell .app-form input:disabled,
.app-shell .app-form select:disabled,
.app-shell .app-form textarea:disabled { cursor: not-allowed; opacity: .55; }
.app-shell .app-form--inline { align-items: end; grid-template-columns: minmax(0, 1fr) auto; max-width: 100%; }
.app-shell .form-errors { background: #4b222c; border: 1px solid #bd646e; border-radius: 8px; color: #ffe7e5; font-family: var(--app-sans); font-size: .88rem; margin: 0 0 1rem; padding: .8rem 1rem; }
.app-shell .form-errors h2 { font-family: var(--app-sans); font-size: .95rem; margin: 0; }
.app-shell .form-errors ul { margin: .45rem 0 0; padding-left: 1.2rem; }
.app-shell .flash { background: #2b3945; border: 1px solid #526e85; color: #e9f4ff; font-family: var(--app-sans); font-size: .87rem; }
.app-shell .flash--alert { background: #4b222c; border-color: #bd646e; color: #ffe7e5; }
.app-shell .flash--notice { background: #1f4435; border-color: #4e9c76; color: #ddffea; }
.app-shell .auth-page { display: grid; min-height: calc(100vh - 10rem); place-items: start center; padding-top: 3rem; }
.app-shell .auth-page .app-form-card { width: min(100%, 30rem); }
.app-shell .app-form-card h1 { font-family: var(--app-display); font-size: .98rem; line-height: 1.6; }
.app-shell .auth-links { font-family: var(--app-sans); font-size: .88rem; margin: 1rem 0 0; }
.app-shell .member-list { display: grid; gap: .55rem; list-style: none; margin: 1rem 0; padding: 0; }
.app-shell .member-list li { align-items: center; background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 7px; display: flex; font-family: var(--app-sans); font-size: .88rem; gap: .7rem; justify-content: space-between; padding: .65rem .7rem; }
.app-shell .member-list small { color: var(--app-muted); display: block; font-size: .78rem; margin-top: .12rem; }
.app-shell .inline-link { margin: 1rem 0; }
.app-shell .check-field { align-items: center; display: flex !important; gap: .55rem; }
.app-shell .danger-zone { border-color: #8d4b58; }
.app-shell .danger-zone h2 { color: #ffc1bd; }

/* Game boards retain their existing data and controls while sharing a crisp
   score-card treatment. */
.app-shell .survivor-board,
.app-shell .team-draft__entries,
.app-shell .team-draft__board { gap: .75rem; }
.app-shell .survivor-row { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; padding: .72rem; }
.app-shell .survivor-row strong { font-family: var(--app-sans); font-size: .92rem; }
.app-shell .pick-board { border-left: 3px solid var(--app-accent); }
.app-shell .pick-board h2 { font-family: var(--app-display); font-size: .72rem; line-height: 1.65; }
.app-shell .game-matchup { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; display: grid; gap: .55rem; margin-top: .75rem; padding: .75rem; }
.app-shell .game-matchup > strong { color: var(--app-text); font-family: var(--app-sans); font-size: .9rem; }
.app-shell .game-matchup > span { color: var(--app-muted); font-family: var(--app-sans); font-size: .8rem; }
.app-shell .game-matchup__teams { display: grid; gap: .55rem; grid-template-columns: 1fr 1fr; }
.app-shell .game-matchup__teams .app-button { background: #302440; border: 1px solid var(--app-border); color: var(--app-text) !important; font-family: var(--app-data); font-size: 1.1rem; }
.app-shell .team-tile-button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  display: grid;
  justify-items: center;
  min-height: 44px;
  padding: 0;
}
.app-shell .team-tile-button:hover .team-tile { box-shadow: 0 0 0 3px var(--app-accent), 0 4px 10px rgba(8, 5, 12, .3); }
.app-shell .team-tile-button:focus-visible { outline: 3px solid var(--app-accent-strong); outline-offset: 4px; }
.app-shell .survivor-pick-page { max-width: 52rem; }
.app-shell .survivor-pick-page__header { border-bottom: 1px solid var(--app-border-subtle); margin: .35rem 0 .65rem; padding: .2rem 0 .55rem; }
.app-shell .survivor-pick-page__header h1 { font-family: var(--app-display); font-size: clamp(.8rem, 3.4vw, 1rem); line-height: 1.6; margin: .08rem 0 0; text-transform: uppercase; }
.app-shell .survivor-pick-board { margin: 0; }
.app-shell .survivor-pick-board__intro { color: var(--app-muted); font-family: var(--app-sans); font-size: .82rem; margin: 0 0 .45rem; }
.app-shell .survivor-pick-board__games { border: 1px solid var(--app-border-subtle); border-radius: 8px; overflow: hidden; }
.app-shell .survivor-pick-matchup { background: var(--app-panel); border-bottom: 1px solid var(--app-border-subtle); padding: .38rem .45rem .45rem; }
.app-shell .survivor-pick-matchup:last-child { border-bottom: 0; }
.app-shell .survivor-pick-matchup__state { align-items: center; color: var(--app-muted); display: grid; font-family: var(--app-sans); font-size: .58rem; font-weight: 750; gap: .08rem; justify-items: center; letter-spacing: .04em; min-width: 3.1rem; text-align: center; text-transform: uppercase; }
.app-shell .survivor-pick-matchup__state > span { color: var(--app-accent); font-family: var(--app-display); font-size: .58rem; }
.app-shell .survivor-pick-matchup__state time { display: block; }
.app-shell .nfl-game-state { align-items: baseline; display: flex; flex-wrap: wrap; font-family: var(--app-sans); font-size: .68rem; font-weight: 800; gap: .25rem .45rem; justify-content: center; letter-spacing: .03em; margin: .28rem 0; text-align: center; }
.app-shell .nfl-game-state__score { color: var(--app-text); }.app-shell .nfl-game-state__detail { color: var(--app-accent-strong); }.app-shell .nfl-game-state--live .nfl-game-state__detail { color: var(--app-warning); }.app-shell .nfl-game-state--final .nfl-game-state__detail { color: var(--app-success); }
.app-shell .survivor-pick-matchup__teams { align-items: stretch; display: grid; gap: .35rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); margin-top: .28rem; }
.app-shell .survivor-pick-team { align-items: center; background: #302440; border: 1px solid var(--app-border); border-radius: 7px; color: var(--app-text); display: grid; font-family: var(--app-sans); gap: .35rem; grid-template-columns: auto minmax(0, 1fr); min-height: 68px; padding: .35rem; position: relative; text-align: left; }
.app-shell .survivor-pick-team .team-tile { --team-tile-size: 48px; }
.app-shell .survivor-pick-team > span { font-size: .69rem; line-height: 1.18; overflow-wrap: anywhere; }
.app-shell .survivor-pick-team > span strong { font-size: .75rem; }
.app-shell .survivor-pick-team:hover:not(:disabled) { border-color: var(--app-accent); }
.app-shell .survivor-pick-team:focus-visible { outline: 3px solid var(--app-accent-strong); outline-offset: 2px; }
.app-shell .survivor-pick-team--selected { background: #49381c; border-color: var(--app-accent); box-shadow: inset 0 0 0 1px rgba(255, 216, 121, .28); color: #fff6cf; }
.app-shell .survivor-pick-team--selected .team-tile { box-shadow: 0 0 0 2px var(--app-accent-strong), 0 3px 8px rgba(8, 5, 12, .35); }
.app-shell .survivor-pick-matchup:has(.survivor-pick-team--selected) .survivor-pick-team:not(.survivor-pick-team--selected) .team-tile { filter: grayscale(1) saturate(.18) brightness(.78); }
.app-shell .survivor-pick-team em { background: var(--app-accent); border-radius: 3px; color: #241b32; font-family: var(--app-display); font-size: .42rem; font-style: normal; padding: .18rem .22rem; position: absolute; right: .2rem; top: .2rem; text-transform: uppercase; }
.app-shell .survivor-pick-team--unavailable { cursor: not-allowed; filter: saturate(.25); opacity: .48; }
.app-shell .survivor-pick-confirmation { align-items: center; background: #1d1629; border: 1px solid var(--app-accent); border-radius: 8px; bottom: max(.55rem, env(safe-area-inset-bottom)); box-shadow: var(--app-shadow); display: grid; gap: .55rem; grid-template-columns: minmax(0, 1fr) auto; left: max(.6rem, env(safe-area-inset-left)); padding: .5rem .55rem; position: fixed; right: max(.6rem, env(safe-area-inset-right)); z-index: 10; }
.app-shell .survivor-pick-confirmation[hidden] { display: none; }
.app-shell .survivor-pick-confirmation strong { color: var(--app-accent-strong); font-family: var(--app-sans); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .survivor-pick-confirmation .app-button { min-height: 42px; padding: .45rem .65rem; }
.app-shell .survivor-pick-board form { padding-bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
.app-shell .team-draft__selection-form { max-width: none; }
.app-shell .team-tile-selector {
  border: 0;
  margin: 0;
  max-width: 390px;
  padding: 0;
}
.app-shell .team-tile-selector > legend { font-family: var(--app-sans); font-size: .86rem; font-weight: 750; margin-bottom: .7rem; padding: 0; }
.app-shell .team-tile-selector__grid { display: grid; gap: .6rem; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-items: center; }
.app-shell .team-tile-choice { cursor: pointer; display: grid; justify-items: center; position: relative; }
.app-shell .team-tile-choice input[type="radio"] { height: 1px; opacity: 0; position: absolute; width: 1px; }
.app-shell .team-tile-choice input[type="radio"]:focus-visible + .team-tile { box-shadow: 0 0 0 3px var(--app-accent-strong), 0 4px 10px rgba(8, 5, 12, .3); }
.app-shell .team-tile-choice input[type="radio"]:checked + .team-tile { box-shadow: 0 0 0 3px var(--app-accent), 0 5px 12px rgba(8, 5, 12, .34); }
.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.app-shell .pick-schedule__matchup { align-items: center; display: grid; gap: .6rem; grid-template-columns: auto minmax(0, 1fr) auto; }
.app-shell .pick-schedule__matchup strong { font-family: var(--app-sans); font-size: .88rem; line-height: 1.3; text-align: center; }
.app-shell .team-draft { gap: 1.15rem; }
.app-shell .team-draft__header,
.app-shell .team-draft__turn { background: var(--app-panel); border: 1px solid var(--app-border-subtle); border-radius: var(--app-radius); padding: 1rem; }
.app-shell .team-draft__turn { border-left: 3px solid var(--app-accent); }
.app-shell .team-draft__turn--yours { box-shadow: 0 0 0 2px rgba(231, 189, 88, .28); }
.app-shell .team-draft__header h2,
.app-shell .team-draft__turn h2 { font-family: var(--app-display); font-size: .71rem; line-height: 1.65; }
.app-shell .team-draft__entry { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; padding: .7rem; }
.app-shell .team-draft__rosters > * { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; padding: .8rem; }
.app-shell .team-draft__standings { border-top-color: var(--app-border-subtle); }
.app-shell .team-draft__standings li { border-bottom-color: var(--app-border-subtle); }
.app-shell .team-draft__standing-name { font-family: var(--app-sans); font-size: .9rem; }
.app-shell .cesspool-standings-wrap { background: var(--app-panel); border: 1px solid var(--app-border-subtle); border-radius: var(--app-radius); }
.app-shell .cesspool-standings th,
.app-shell .cesspool-standings td { border-bottom-color: var(--app-border-subtle); }
.app-shell .cesspool-standings thead th { background: #1d1629; color: var(--app-accent); font-family: var(--app-sans); font-size: .69rem; letter-spacing: .045em; }
.app-shell .cesspool-standings tbody th { color: var(--app-text); font-family: var(--app-sans); font-size: .9rem; }
.app-shell .cesspool-standings tbody td { color: var(--app-accent-strong); font-size: 1.05rem; }
.app-shell .pick-schedule .app-panel { background: var(--app-panel); }
.app-shell .pick-schedule input[type="radio"] { accent-color: var(--app-accent); min-height: 20px; min-width: 20px; }

@media (max-width: 640px) {
  .app-shell { font-size: 21px; }
  .app-shell .app-header__inner { padding-top: .8rem; padding-bottom: .8rem; }
  .app-shell .app-header__account { align-items: center; gap: .35rem; }
  .app-shell .app-header__welcome { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .app-shell .page-header { margin-top: 1rem; }
  .app-shell .page-header .app-button { margin-top: 1rem; }
  .app-shell .pool-grid { grid-template-columns: 1fr; }
  .app-shell .app-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .app-shell .app-actions .app-button,
  .app-shell .app-actions form { width: 100%; }
  .app-shell .app-form--inline { grid-template-columns: 1fr; }
  .app-shell .app-form--inline .app-button { width: 100%; }
  .app-shell .member-list li { align-items: stretch; flex-direction: column; }
  .app-shell .member-list .app-button { width: 100%; }
  .app-shell .team-draft__header,
  .app-shell .team-draft__turn { padding: .85rem; }
  .app-shell .game-matchup__teams { grid-template-columns: 1fr; }
}

/* Reusable NFL team tile. Its contained lettermark scales from the tile's own
   inline size so consumer-specific tile sizes cannot desynchronize the mark. */
.team-tile {
  --team-tile-size: 80px;
  align-items: center;
  aspect-ratio: 1 / 1;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--team-primary) 68%, white) 0%,
      color-mix(in srgb, var(--team-primary) 92%, white) 24%,
      var(--team-primary) 46%,
      color-mix(in srgb, var(--team-primary) 74%, black) 76%,
      color-mix(in srgb, var(--team-primary) 54%, black) 100%);
  border: 2px solid color-mix(in srgb, var(--team-secondary) 68%, #30233c);
  border-radius: 9px;
  box-shadow: 0 0 0 1px rgba(248, 243, 233, .22), inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -10px 15px rgba(0, 0, 0, .25), 0 3px 8px rgba(8, 5, 12, .22);
  container-type: inline-size;
  display: grid;
  isolation: isolate;
  justify-items: center;
  overflow: hidden;
  position: relative;
  width: var(--team-tile-size);
}
.team-tile::before {
  background: linear-gradient(180deg, rgba(255, 255, 255, .045), transparent 28%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}
.team-tile--small { --team-tile-size: 44px; border-radius: 7px; }
.team-tile--medium { --team-tile-size: 80px; }
.team-tile--large { --team-tile-size: 120px; border-radius: 11px; }
.team-tile__abbreviation {
  color: #fffdf5;
  font-family: "Press Start 2P", ui-monospace, monospace;
  font-size: clamp(10px, 28cqi, 34px);
  letter-spacing: .015em;
  line-height: 1.12;
  max-inline-size: 82%;
  position: relative;
  text-align: center;
  text-shadow: 0 .1em 0 rgba(0, 0, 0, .46), 0 0 .32em rgba(0, 0, 0, .14);
  white-space: nowrap;
  z-index: 1;
}
.team-tile--short-code .team-tile__abbreviation { font-size: clamp(12px, 35cqi, 40px); }
.team-tile__stripe {
  background: var(--team-secondary);
  border-radius: 1px;
  bottom: 12%;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .36);
  height: 7%;
  left: 8%;
  min-height: 3px;
  position: absolute;
  right: 8%;
  z-index: 1;
}
.team-tile--selected { box-shadow: 0 0 0 1px rgba(248, 243, 233, .32), 0 0 0 4px #e7bd58, inset 0 1px 0 rgba(255, 255, 255, .24), inset 0 -10px 15px rgba(0, 0, 0, .25), 0 5px 12px rgba(8, 5, 12, .32); }
.team-tile--taken { filter: saturate(.22) brightness(.68); }
.team-tile--eliminated { filter: saturate(.14) brightness(.52); }
.team-tile--muted { filter: grayscale(1) saturate(.18) brightness(.78); }
.team-tile--winner { box-shadow: 0 0 0 1px rgba(248, 243, 233, .32), 0 0 0 4px #e7bd58, inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -10px 15px rgba(0, 0, 0, .25), 0 0 16px rgba(231, 189, 88, .3); }
.team-tile--fallback { background: linear-gradient(180deg, #4b3868, var(--team-primary) 42%, #1a1325); }
.team-tile__state-label {
  background: rgba(12, 8, 18, .84);
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 3px;
  bottom: 4px;
  color: #fffdf5;
  font-family: ui-sans-serif, system-ui, sans-serif;
  font-size: .48rem;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
  padding: .22rem .25rem;
  position: absolute;
  text-transform: uppercase;
  z-index: 2;
}
.team-tile--small .team-tile__state-label { display: none; }

/* Experimental provider-logo presentation. The base .team-tile badge rules
   above remain the default and fallback rendering. */
.team-tile--logo { background: color-mix(in srgb, var(--team-primary) 24%, #171121); }
.nfl-team-logo { display: block; height: 72%; max-height: 72%; max-width: 72%; object-fit: contain; position: relative; width: 72%; z-index: 1; }

/* Isolated admin-only visual test harness. */
.admin-team-tile-lab { max-width: 78rem; }
.admin-team-tile-lab .admin-page__header { align-items: start; }
.team-tile-lab__section {
  background: #181122;
  border: 1px solid #4d3d62;
  border-radius: 10px;
  color: #f8f3e9;
  margin: 1.25rem 0;
  padding: 1.1rem;
}
.team-tile-lab__section h2,
.team-tile-lab__conference > h3,
.team-tile-lab__division h4,
.team-tile-lab__size-row h3 {
  color: #e7bd58;
  font-family: "Press Start 2P", ui-monospace, monospace;
  font-size: .65rem;
  letter-spacing: .03em;
  line-height: 1.65;
  margin: 0;
  text-transform: uppercase;
}
.team-tile-lab__conference { border-top: 1px solid #4d3d62; margin-top: 1rem; padding-top: 1rem; }
.team-tile-lab__conference > h3 { color: #c5a2ed; }
.team-tile-lab__division { margin-top: 1rem; }
.team-tile-lab__division h4 { color: #cfc3db; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .7rem; font-weight: 800; margin-bottom: .65rem; }
.team-tile-lab__grid { align-items: start; display: flex; flex-wrap: wrap; gap: .85rem; }
.team-tile-lab__team { align-items: center; display: grid; gap: .42rem; justify-items: center; margin: 0; width: 80px; }
.team-tile-lab__team figcaption { color: #e5ddea; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .66rem; line-height: 1.25; text-align: center; }
.team-tile-lab__size-row { align-items: center; border-top: 1px solid #40314f; display: grid; gap: .9rem; grid-template-columns: 5.5rem minmax(0, 1fr); margin-top: 1rem; padding-top: 1rem; }
.team-tile-lab__size-row h3 { color: #cfc3db; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .7rem; font-weight: 800; }
.team-tile-lab__phone { background: #0e0a15; border: 5px solid #342640; border-radius: 22px; margin: 1rem auto 0; max-width: 390px; padding: 1rem .65rem; }
.team-tile-lab__mobile-grid { display: grid; gap: .55rem; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-items: center; }
.team-tile-lab__mobile-grid .team-tile { max-width: 100%; }
/* Home screen: compact mobile-first league selection. */
.app-shell .home-page-header { align-items: center; margin: 1rem 0 .9rem; padding-bottom: .8rem; }
.app-shell .home-page-header h1 { margin: 0; }
.app-shell .home-page-header__create { font-family: var(--app-display); font-size: .57rem; min-height: 38px; padding: .5rem .6rem; text-transform: uppercase; }
.app-shell .game-type-icon { align-items: center; color: var(--app-muted); display: inline-flex; gap: .45rem; min-width: 0; }
.app-shell .game-type-icon svg { background: #1a1326; border: 1px solid var(--app-border); border-radius: 5px; color: var(--app-accent); display: block; fill: none; flex: 0 0 auto; height: 34px; padding: 5px; stroke: currentColor; stroke-linecap: square; stroke-linejoin: miter; stroke-width: 2; width: 34px; }
.app-shell .game-type-icon__label { font-family: var(--app-sans); font-size: .76rem; font-weight: 650; line-height: 1.25; }
.app-shell .pool-card { align-items: center; border-left-color: var(--app-purple); display: grid; gap: .65rem; grid-template-columns: minmax(0, 1fr) auto; min-height: 76px; overflow: hidden; padding: .7rem .8rem; position: relative; }
.app-shell .pool-card__content { display: grid; gap: .15rem; max-width: min(60%, 18rem); min-width: 0; position: relative; z-index: 1; }
.app-shell .pool-card:has(.pool-card__watermark--wide) .pool-card__content { max-width: min(48%, 18rem); }
.app-shell .pool-card strong { align-self: end; font-size: 1rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .pool-card__watermark { align-items: center; display: flex; height: calc(100% - 1rem); justify-content: center; opacity: .75; pointer-events: none; position: absolute; right: 2.45rem; top: 50%; transform: translateY(-50%); width: clamp(54px, 20vw, 94px); }
.app-shell .pool-card__watermark--wide { width: clamp(81px, 30vw, 141px); }
.app-shell .pool-card__watermark img { display: block; height: auto; max-height: 100%; max-width: 100%; object-fit: contain; width: 100%; }
.app-shell .pool-card__watermark .team-tile { --team-tile-size: min(100%, 78px); max-height: 100%; max-width: 100%; }
.app-shell .pool-card__watermark .team-tile--logo .nfl-team-logo { height: 60%; max-height: 60%; max-width: 60%; width: 60%; }
.app-shell .pool-card__chevron { color: var(--app-accent); font-family: var(--app-sans); font-size: 1.65rem; position: relative; z-index: 1; }
.app-shell .invitation-card { padding: .7rem .8rem; }
.app-shell .invitation-card__content { align-items: center; display: grid; gap: .65rem; grid-template-columns: auto minmax(0, 1fr); }
.app-shell .invitation-card .game-type-icon svg { height: 40px; width: 40px; }
.app-shell .invitation-card strong { display: block; font-family: var(--app-sans); font-size: 1rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .invitation-card p { font-size: .75rem; line-height: 1.25; margin: .12rem 0 0; }
.app-shell .invitation-card .app-actions { gap: .5rem; margin-top: .6rem; }
.app-shell .invitation-card .app-button { font-size: .76rem; min-height: 38px; padding: .45rem .7rem; }
.app-shell .invitation-card .app-button--primary { box-shadow: 0 3px 0 #9c762b, 0 5px 11px rgba(231, 189, 88, .18); }

/* Cesspool game: retain the score-card language while making dense game data
   easier to scan on a phone. */
.app-shell .cesspool-current-week { padding: .85rem; }
.app-shell .cesspool-current-week > .eyebrow { margin-bottom: .15rem; }
.app-shell .cesspool-current-week > h2 { margin: 0; }
.app-shell .cesspool-current-week__deadline { color: var(--app-muted); font-family: var(--app-sans); font-size: .78rem; line-height: 1.35; margin: .35rem 0 .7rem; }
.app-shell .cesspool-current-week__selection-heading { font-family: var(--app-sans); font-size: .83rem; margin: .7rem 0 .45rem; }
.app-shell .cesspool-current-week .history-list { gap: .4rem; }
.app-shell .cesspool-selection-row { align-items: center; display: flex; gap: .55rem; justify-content: space-between; min-height: 48px; padding: .5rem .6rem; position: relative; }
.app-shell .cesspool-selection-row strong { font-family: var(--app-sans); font-size: .87rem; line-height: 1.25; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .cesspool-pick-card { display: block; min-height: 0; padding: .55rem .65rem; }
.app-shell .cesspool-pick-card > strong { display: block; }
.app-shell .cesspool-pick-card .selected-team-matchup { margin-top: .28rem; }
.app-shell .cesspool-selection-row .status-badge { flex: 0 1 auto; font-size: .59rem; text-align: right; }
.app-shell .cesspool-selection-row .status-badge--on_the_clock { box-shadow: 0 2px 0 #796022; }
.app-shell .cesspool-selection-row__selected-qb { color: var(--app-accent-strong); font-family: var(--app-sans); font-size: .78rem; font-weight: 700; left: 50%; max-width: 48%; overflow: hidden; position: absolute; text-align: center; text-overflow: ellipsis; transform: translateX(-50%); white-space: nowrap; }
.app-shell .cesspool-qb-selector { margin-top: .85rem; }
.app-shell .cesspool-qb-selector > header h3 { font-family: var(--app-display); font-size: .68rem; margin: 0; }
.app-shell .cesspool-qb-selector > header p { color: var(--app-muted); font-family: var(--app-sans); font-size: .76rem; margin: .3rem 0 .65rem; }
.app-shell .cesspool-qb-selector__search { display: grid; gap: .25rem; margin-bottom: .55rem; }
.app-shell .cesspool-qb-selector__search span { font-family: var(--app-sans); font-size: .72rem; font-weight: 700; }
.app-shell .cesspool-qb-selector__search input { font-family: var(--app-sans); min-height: 40px; }
.app-shell .cesspool-qb-selector__teams { border: 1px solid var(--app-border-subtle); border-radius: 8px; overflow: hidden; }
.app-shell .cesspool-qb-selector__team { background: #1d1629; border-bottom: 1px solid var(--app-border-subtle); }
.app-shell .cesspool-qb-selector__team:last-child { border-bottom: 0; }
.app-shell .cesspool-qb-selector__team summary { align-items: center; cursor: pointer; display: grid; gap: .5rem; grid-template-columns: auto minmax(0, 1fr) auto; list-style: none; min-height: 52px; padding: .35rem .5rem; }
.app-shell .cesspool-qb-selector__team summary::-webkit-details-marker { display: none; }
.app-shell .cesspool-qb-selector__team summary .team-tile { --team-tile-size: 34px; }
.app-shell .cesspool-qb-selector__team-label { display: grid; gap: .06rem; min-width: 0; }
.app-shell .cesspool-qb-selector__team-label strong { color: var(--app-accent); font-family: var(--app-sans); font-size: .76rem; letter-spacing: .04em; }
.app-shell .cesspool-qb-selector__team-label span { font-family: var(--app-sans); font-size: .83rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .cesspool-qb-selector__chevron { color: var(--app-accent); font-family: var(--app-sans); font-size: 1.3rem; }
.app-shell .cesspool-qb-selector__team[open] .cesspool-qb-selector__chevron { transform: rotate(90deg); }
.app-shell .cesspool-qb-selector__depth-chart { background: var(--app-panel); border-top: 1px solid var(--app-border-subtle); padding: .5rem; }
.app-shell .cesspool-qb-selector__depth-chart h4 { color: var(--app-muted); font-family: var(--app-sans); font-size: .69rem; letter-spacing: .04em; margin: 0 0 .35rem; text-transform: uppercase; }
.app-shell .cesspool-qb-selector__depth-chart .muted { font-family: var(--app-sans); font-size: .78rem; margin: .3rem 0; }
.app-shell .cesspool-qb-selector__player { align-items: center; border-top: 1px solid var(--app-border-subtle); display: grid; gap: .4rem; grid-template-columns: 2.3rem minmax(0, 1fr) auto; min-height: 44px; padding: .35rem .1rem; }
.app-shell .cesspool-qb-selector__player:first-of-type { border-top: 0; }
.app-shell .cesspool-qb-selector__player > strong { font-family: var(--app-sans); font-size: .84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .cesspool-qb-selector__depth, .app-shell .cesspool-qb-selector__state { color: var(--app-muted); font-family: var(--app-sans); font-size: .65rem; font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
.app-shell .cesspool-qb-selector__player form { margin: 0; }
.app-shell .cesspool-qb-selector__player .app-button { font-size: .61rem; min-height: 34px; padding: .38rem .5rem; }
.app-shell .cesspool-qb-selector__player--taken, .app-shell .cesspool-qb-selector__player--used, .app-shell .cesspool-qb-selector__player--unavailable { opacity: .52; }
.app-shell .cesspool-qb-selector__player--current { background: rgba(231, 189, 88, .1); }
.app-shell .cesspool-current-week__secondary-action { margin: .65rem 0 0; }
.app-shell .cesspool-qb-selector--waiver .cesspool-qb-selector__player, .app-shell .cesspool-qb-selector--free_agency .cesspool-qb-selector__player { grid-template-columns: 2.3rem minmax(0, 1fr); }
.app-shell .cesspool-qb-selector--waiver .cesspool-qb-selector__player > strong, .app-shell .cesspool-qb-selector--free_agency .cesspool-qb-selector__player > strong { overflow: visible; text-overflow: clip; white-space: normal; }
.app-shell .cesspool-qb-selector--waiver .cesspool-qb-selector__player form, .app-shell .cesspool-qb-selector--free_agency .cesspool-qb-selector__player form { grid-column: 2; }
.app-shell .cesspool-history-card { padding: .7rem .8rem; }
.app-shell .cesspool-history-card h3 { font-family: var(--app-display); font-size: .66rem; line-height: 1.5; margin: 0 0 .45rem; }
.app-shell .cesspool-history-results { display: grid; }
.app-shell .cesspool-history-result { border-top: 1px solid var(--app-border-subtle); padding: .48rem 0; }
.app-shell .cesspool-history-result:first-child { border-top: 0; padding-top: 0; }
.app-shell .cesspool-history-result:last-child { padding-bottom: 0; }
.app-shell .cesspool-history-result > strong { display: block; font-family: var(--app-sans); font-size: .86rem; line-height: 1.25; overflow-wrap: anywhere; }
.app-shell .cesspool-history-result__details { align-items: center; color: var(--app-muted); display: flex; flex-wrap: wrap; font-family: var(--app-sans); font-size: .72rem; gap: .16rem .48rem; line-height: 1.3; margin-top: .16rem; }
.app-shell .cesspool-history-result__details b { color: var(--app-accent-strong); font-size: .76rem; }
.app-shell .cesspool-history-result__score { color: var(--app-muted); }
.app-shell .cesspool-history-result__result { color: var(--app-muted); font-weight: 700; }
.app-shell .cesspool-history-result .status-badge { font-size: .56rem; margin-left: auto; }
.app-shell .selected-team-matchup { margin-top: .35rem; }
.app-shell .selected-team-matchup__title { color: var(--app-accent-strong); display: block; font-family: var(--app-sans); font-size: .78rem; font-weight: 700; line-height: 1.35; margin-bottom: .28rem; }
.app-shell .selected-team-matchup__timing { color: var(--app-muted); font-family: var(--app-sans); font-size: .58rem; font-weight: 800; line-height: 1.25; margin-bottom: .28rem; text-align: center; text-transform: uppercase; }
.app-shell .selected-team-matchup__teams { align-items: center; display: grid; gap: .3rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.app-shell .selected-team-matchup__team { display: grid; justify-items: center; min-width: 0; }
.app-shell .selected-team-matchup__team .team-tile { --team-tile-size: 34px; }
.app-shell .selected-team-matchup__state { align-items: center; color: var(--app-muted); display: grid; justify-items: center; margin-top: .28rem; text-align: center; }
.app-shell .selected-team-matchup__at { color: var(--app-accent); font-family: var(--app-display); font-size: .58rem; line-height: 1; }
.app-shell .selected-team-matchup__state .nfl-game-state { font-size: .58rem; margin: 0; }

/* Completed Team Draft dashboards prioritize live scoring and rosters over
   draft administration, using the existing score-card and team-tile system. */
.app-shell .pool-summary--team-draft { background: transparent; border-color: var(--app-border-subtle); box-shadow: none; font-family: var(--app-sans); font-size: .76rem; margin-bottom: .6rem; padding: .45rem 0; }
.app-shell .pool-summary--team-draft strong { font-weight: 700; }
.app-shell .pool-summary--team-draft a { font-size: .74rem; }
.app-shell .team-draft__standings-section { margin-top: .75rem; }
.app-shell .team-draft__standings { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; }
.app-shell .team-draft__standings li { padding: .55rem .65rem; }
.app-shell .team-draft__standing-rank { color: var(--app-accent); font-family: var(--app-display); font-size: .6rem; text-align: center; }
.app-shell .team-draft__standings li > :last-child { color: var(--app-accent-strong); font-family: var(--app-sans); font-size: .83rem; }
.app-shell .team-draft__weekly-scoring { margin-top: 1.25rem; }
.app-shell .team-draft__weekly-scroll { -webkit-overflow-scrolling: touch; border: 1px solid var(--app-border-subtle); border-radius: 8px; overflow-x: auto; }
.app-shell .team-draft__weekly-table { border-collapse: separate; border-spacing: 0; font-family: var(--app-sans); font-size: .76rem; min-width: max-content; width: 100%; }
.app-shell .team-draft__weekly-table th, .app-shell .team-draft__weekly-table td { border-bottom: 1px solid var(--app-border-subtle); padding: .48rem .6rem; text-align: center; white-space: nowrap; }
.app-shell .team-draft__weekly-table thead th { background: #1d1629; color: var(--app-accent); font-size: .65rem; letter-spacing: .04em; text-transform: uppercase; }
.app-shell .team-draft__weekly-table tbody tr:last-child > * { border-bottom: 0; }
.app-shell .team-draft__weekly-table th:first-child { background: var(--app-panel); color: var(--app-text); left: 0; max-width: 10rem; overflow: hidden; position: sticky; text-align: left; text-overflow: ellipsis; z-index: 1; }
.app-shell .team-draft__weekly-table thead th:first-child { background: #1d1629; z-index: 2; }
.app-shell .team-draft__score-detail { display: block; min-width: 4rem; }
.app-shell .team-draft__score-detail summary { color: var(--app-accent-strong); cursor: pointer; font-weight: 800; list-style: none; min-height: 28px; padding: .2rem; }
.app-shell .team-draft__score-detail summary::-webkit-details-marker { display: none; }
.app-shell .team-draft__score-detail[open] > div { background: #171121; border: 1px solid var(--app-accent); border-radius: 7px; box-shadow: var(--app-shadow); color: var(--app-text); margin-top: .3rem; min-width: 13rem; padding: .65rem; text-align: left; white-space: normal; }
.app-shell .team-draft__score-detail ul { list-style: none; margin: .45rem 0; padding: 0; }
.app-shell .team-draft__score-detail li { border-top: 1px solid var(--app-border-subtle); font-size: .72rem; padding: .34rem 0; }
.app-shell .team-draft__score-detail li b { color: var(--app-accent-strong); float: right; margin-left: .8rem; }
.app-shell .team-draft__score-detail p { font-size: .74rem; margin: .35rem 0 0; }
.app-shell .team-draft__weekly-schedule { margin-top: 1.1rem; max-width: 100%; min-width: 0; }
.app-shell .team-draft__week-nav { -ms-overflow-style: none; -webkit-overflow-scrolling: touch; display: flex; gap: .38rem; margin: 0 0 .65rem; max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; padding: .1rem 0 .35rem; scrollbar-width: none; touch-action: pan-x; white-space: nowrap; width: 100%; }
.app-shell .team-draft__week-nav::-webkit-scrollbar { display: none; }
.app-shell .team-draft__week-link { align-items: center; background: #2c213b; border: 1px solid var(--app-border-subtle); border-radius: 5px; color: var(--app-muted); display: inline-flex; flex: 0 0 auto; font-family: var(--app-sans); font-size: .67rem; font-weight: 800; justify-content: center; min-height: 34px; min-width: 38px; padding: .35rem .45rem; text-decoration: none; }
.app-shell .team-draft__week-link:hover { border-color: var(--app-accent); color: var(--app-text); }
.app-shell .team-draft__week-link--selected { background: var(--app-accent); border-color: var(--app-accent-strong); color: #241b32; }
.app-shell .team-draft__schedule-list { display: grid; gap: .5rem; }
.app-shell .team-draft__schedule-game { padding: .55rem .65rem; }
.app-shell .team-draft__schedule-status { color: var(--app-muted); font-family: var(--app-sans); font-size: .67rem; font-weight: 800; letter-spacing: .04em; line-height: 1.2; margin: 0 0 .45rem; min-height: .8rem; text-align: center; }
.app-shell .team-draft__schedule-status--scheduled { color: var(--app-muted); }
.app-shell .team-draft__schedule-status--live { color: var(--app-warning); }
.app-shell .team-draft__schedule-status--final { color: var(--app-success) !important; }
.app-shell .team-draft__schedule-matchup { align-items: center; display: grid; gap: .55rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.app-shell .team-draft__schedule-team { align-items: center; display: grid; gap: .28rem; justify-items: center; min-width: 0; }
.app-shell .team-draft__schedule-team .team-tile { --team-tile-size: 48px; }
.app-shell .team-draft__schedule-team--loser .team-tile { filter: grayscale(1) saturate(.18) brightness(.78); }
.app-shell .team-draft__schedule-score { color: var(--app-accent-strong); font-family: var(--app-display); font-size: .8rem; line-height: 1; min-height: .8rem; }
.app-shell .team-draft__schedule-score[hidden] { display: block; visibility: hidden; }
.app-shell .team-draft__schedule-team > span { font-family: var(--app-sans); font-size: .7rem; font-weight: 750; max-width: 100%; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .team-draft__schedule-owner--unowned { color: var(--app-muted); font-weight: 600; }
.app-shell .team-draft__schedule-center { align-items: center; align-self: stretch; display: grid; justify-items: center; }
.app-shell .team-draft__schedule-at { color: var(--app-muted); font-family: var(--app-display); font-size: .65rem; }
.app-shell .team-draft__rosters { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.app-shell .team-draft__roster { padding: .75rem; }
.app-shell .team-draft__roster > header { align-items: baseline; display: flex; font-family: var(--app-sans); font-size: .88rem; gap: .6rem; justify-content: space-between; margin-bottom: .6rem; }
.app-shell .team-draft__roster > header > span { color: var(--app-accent-strong); font-size: .78rem; font-weight: 800; white-space: nowrap; }
.app-shell .team-draft__roster-grid { display: grid; gap: .45rem; grid-template-columns: repeat(auto-fill, minmax(44px, 1fr)); }
.app-shell .team-draft__scoring-rules details > summary { cursor: pointer; list-style: none; padding: .25rem 0; }
.app-shell .team-draft__scoring-rules details > summary::-webkit-details-marker { display: none; }
.app-shell .team-draft__scoring-rules details[open] > summary { margin-bottom: .55rem; }
.app-shell .team-draft__scoring-rules .app-panel { font-family: var(--app-sans); font-size: .84rem; padding: .8rem; }
.app-shell .team-draft__scoring-rules .app-panel p { margin: .38rem 0; }

/* Live Team Draft keeps the persisted snake state readable without moving
   teams around as picks arrive. */
.app-shell .team-draft__live { display: grid; gap: 1rem; min-width: 0; }
.app-shell .team-draft__live > * { min-width: 0; }
.app-shell .team-draft__rail { -webkit-overflow-scrolling: touch; display: flex; gap: .6rem; max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; padding: .1rem .05rem .5rem; scroll-snap-type: x proximity; width: 100%; }
.app-shell .team-draft__rail-card { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; flex: 0 0 min(82vw, 17rem); scroll-snap-align: start; }
.app-shell .team-draft__rail-card--active { border-color: var(--app-accent); box-shadow: 0 0 0 2px rgba(231,189,88,.2); }
.app-shell .team-draft__rail-card { color: var(--app-text); font: inherit; padding: 0; text-align: left; }
.app-shell .team-draft__rail-card > span { align-items: center; cursor: pointer; display: flex; gap: .55rem; justify-content: space-between; min-height: 56px; padding: .6rem .7rem; }
.app-shell .team-draft__rail-card > span > span { min-width: 0; }
.app-shell .team-draft__rail-card strong { display: block; font-family: var(--app-sans); font-size: .86rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .team-draft__rail-card small,.app-shell .team-draft__rail-card em { color: var(--app-muted); display: block; font-family: var(--app-sans); font-size: .67rem; font-style: normal; margin-top: .15rem; }
.app-shell .team-draft__rail-card b { color: var(--app-accent-strong); font-family: var(--app-display); font-size: .48rem; line-height: 1.5; text-align: right; }
.app-shell .team-draft__order-rosters { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; display: grid; gap: .55rem; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); margin-top: .55rem; padding: .65rem; }
.app-shell .team-draft__order-rosters[hidden] { display: none; }
.app-shell .team-draft__order-roster { border: 1px solid var(--app-border-subtle); border-radius: 6px; padding: .5rem; }
.app-shell .team-draft__order-roster > strong { display: block; font-family: var(--app-sans); font-size: .77rem; margin-bottom: .42rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .team-draft__order-roster > div { align-items: center; display: flex; flex-wrap: wrap; gap: .38rem; min-height: 44px; }
.app-shell .team-draft__order-roster .muted { font-size: .72rem; }
.app-shell .team-draft__orders-section { margin-bottom: .7rem; max-width: 100%; min-width: 0; }
.app-shell .team-draft__orders-heading { align-items: center; display: flex; gap: .6rem; justify-content: space-between; }
.app-shell .team-draft__orders-heading form { margin: 0; }
.app-shell .team-draft__orders-heading .app-button { min-height: 36px; padding: .4rem .6rem; }
.app-shell .team-draft__orders { -ms-overflow-style: none; padding-bottom: .3rem; scrollbar-width: none; }
.app-shell .team-draft__orders::-webkit-scrollbar { display: none; }
.app-shell .team-draft__order-card { flex-basis: min(78vw, 16rem); }
.app-shell .team-draft__order-card em { color: var(--app-muted); font-family: var(--app-display); font-size: .48rem; line-height: 1.5; text-align: right; }
.app-shell .team-draft__my-team { align-self: start; border-color: var(--app-accent); margin: 0 0 .9rem; max-width: 100%; min-width: 0; padding: .55rem .65rem; position: sticky; top: .5rem; width: 100%; z-index: 5; }
.app-shell .team-draft__my-team > header { align-items: baseline; display: flex; gap: .6rem; justify-content: space-between; min-width: 0; }
.app-shell .team-draft__my-team .section-heading { margin: 0; }
.app-shell .team-draft__my-team > header > span { color: var(--app-muted); font-family: var(--app-sans); font-size: .68rem; overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .team-draft__my-team-roster { -webkit-overflow-scrolling: touch; align-items: center; display: flex; gap: .45rem; max-width: 100%; min-height: 48px; min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; padding: .45rem 0 .05rem; width: 100%; }
.app-shell .team-draft__my-team-roster .team-tile { flex: 0 0 auto; }
.app-shell .team-draft__my-team-roster .muted { font-family: var(--app-sans); font-size: .73rem; margin: 0; }
.app-shell .team-draft__board-hint { font-size: .75rem; margin: -.35rem 0 .5rem; }
.app-shell .team-draft__division-board { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.app-shell .team-draft__conference { display: grid; gap: .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.app-shell .team-draft__conference > h3 { color: var(--app-accent); font-family: var(--app-display); font-size: .56rem; grid-column: 1 / -1; margin: 0; }
.app-shell .team-draft__division { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; min-width: 0; padding: .48rem; }
.app-shell .team-draft__division h4 { color: var(--app-muted); font-family: var(--app-sans); font-size: .66rem; letter-spacing: .05em; margin: 0 0 .42rem; text-transform: uppercase; }
.app-shell .team-draft__division > div { display: grid; gap: .38rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.app-shell .team-draft__team-choice { align-items: center; background: transparent; border: 0; color: var(--app-text); display: grid; gap: .2rem; justify-items: center; min-height: 86px; min-width: 0; padding: .18rem; text-align: center; }
.app-shell .team-draft__team-choice .team-tile { --team-tile-size: min(68px, 100%); max-width: 100%; }
.app-shell button.team-draft__team-choice { cursor: pointer; }
.app-shell button.team-draft__team-choice:hover .team-tile { box-shadow: 0 0 0 2px var(--app-accent), 0 4px 10px rgba(8,5,12,.3); }
.app-shell button.team-draft__team-choice:focus-visible { outline: 3px solid var(--app-accent-strong); outline-offset: 2px; }
.app-shell .team-draft__team-choice > span { color: var(--app-muted); font-family: var(--app-sans); font-size: .58rem; white-space: nowrap; }
.app-shell .team-draft__team-choice--taken { opacity: .48; pointer-events: none; }
.app-shell .team-draft__confirm-tray { align-items: center; border-color: var(--app-accent); bottom: .7rem; display: grid; gap: .55rem; grid-template-columns: minmax(0, 1fr) auto auto; left: max(.7rem, env(safe-area-inset-left)); position: fixed; right: max(.7rem, env(safe-area-inset-right)); z-index: 10; }
.app-shell .team-draft__confirm-tray[hidden] { display: none; }
.app-shell .team-draft__confirm-tray strong { display: block; font-family: var(--app-sans); font-size: .86rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .team-draft__confirm-tray span { color: var(--app-muted); display: block; font-family: var(--app-sans); font-size: .68rem; margin-top: .12rem; }
.app-shell .team-draft__confirm-tray .app-button { min-height: 42px; padding: .45rem .6rem; }
@media (min-width: 641px) {
  .app-shell .team-draft__rail-card { flex-basis: 15rem; }
  .app-shell .team-draft__order-card { flex-basis: 15rem; }
}
@media (max-width: 380px) {
  .app-shell .team-draft__division { padding: .35rem; }
  .app-shell .team-draft__division > div { gap: .25rem; }
  .app-shell .team-draft__confirm-tray { grid-template-columns: 1fr 1fr; }
  .app-shell .team-draft__confirm-tray > div { grid-column: 1 / -1; }
}

/* Locked Pick the Schedule: the season grid becomes the primary game board. */
.app-shell .pick-schedule__entry-header { align-items: center; border: 0; display: grid; justify-items: center; margin: 0 0 .65rem; padding: .2rem 0 .6rem; }
.app-shell .pick-schedule__entry-header h2 { font-family: var(--app-sans); font-size: 1rem; margin: .1rem 0; }
.app-shell .pick-schedule__entry-header p:last-child { color: var(--app-muted); font-family: var(--app-sans); font-size: .77rem; margin: .25rem 0 0; text-align: center; }
.app-shell .pick-schedule__entry { margin-top: .35rem; max-width: 52rem; }
.app-shell .pick-schedule__entry-intro { align-items: baseline; display: flex; font-family: var(--app-sans); font-size: .8rem; gap: .5rem 1rem; justify-content: space-between; margin: 0 0 .45rem; }
.app-shell .pick-schedule__entry-intro p { color: var(--app-muted); margin: 0; }
.app-shell .pick-schedule__entry-intro strong, .app-shell .pick-schedule__submit-tray strong { color: var(--app-accent-strong); font-size: .72rem; letter-spacing: .04em; white-space: nowrap; }
.app-shell .pick-schedule__games { border: 1px solid var(--app-border-subtle); border-radius: 8px; overflow: hidden; }
.app-shell .pick-schedule__game { background: var(--app-panel); border-bottom: 1px solid var(--app-border-subtle); padding: .38rem .45rem .45rem; }
.app-shell .pick-schedule__game:last-child { border-bottom: 0; }
.app-shell .pick-schedule__game--bye { background: color-mix(in srgb, var(--app-panel) 82%, #171121); }
.app-shell .pick-schedule__game--bye > header > span:last-child { color: var(--app-muted); font-size: .67rem; font-weight: 400; }
.app-shell .pick-schedule__game > header { align-items: center; color: var(--app-muted); display: flex; font-family: var(--app-sans); font-size: .64rem; font-weight: 750; gap: .35rem; justify-content: center; letter-spacing: .035em; padding: 0; text-transform: uppercase; }
.app-shell .pick-schedule__game > header span { color: var(--app-accent); }
.app-shell .pick-schedule__game > header i { color: var(--app-muted); font-style: normal; }
.app-shell .pick-schedule__matchup { align-items: stretch; display: grid; gap: .4rem; grid-template-columns: 1fr auto 1fr; margin-top: .25rem; }
.app-shell .pick-schedule__team-choice { cursor: pointer; display: block; min-width: 0; position: relative; }
.app-shell .pick-schedule__team-choice input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.app-shell .pick-schedule__team-choice-surface { align-items: center; border: 1px solid transparent; border-radius: 7px; display: flex; min-height: 52px; padding: .2rem; }
.app-shell .pick-schedule__team-choice:first-child .pick-schedule__team-choice-surface { justify-content: flex-end; }
.app-shell .pick-schedule__team-choice:last-child .pick-schedule__team-choice-surface { justify-content: flex-start; }
.app-shell .pick-schedule__team-choice .team-tile { --team-tile-size: 42px; flex: 0 0 auto; }
.app-shell .pick-schedule__team-choice input:focus-visible + .pick-schedule__team-choice-surface { outline: 3px solid var(--app-accent-strong); outline-offset: 2px; }
.app-shell .pick-schedule__team-choice input:checked + .pick-schedule__team-choice-surface .team-tile { box-shadow: 0 0 0 3px var(--app-accent-strong), 0 0 12px rgba(231, 189, 88, .45), 0 3px 8px rgba(8, 5, 12, .35); }
.app-shell .pick-schedule__matchup:has(input:checked) .pick-schedule__team-choice:not(:has(input:checked)) .team-tile { filter: saturate(.55) brightness(.78); }
.app-shell .pick-schedule__at { align-self: center; color: var(--app-muted); font-family: var(--app-display); font-size: .55rem; }
.app-shell .pick-schedule__submit-tray { align-items: center; background: #1d1629; border: 1px solid var(--app-accent); border-radius: 8px; bottom: max(.55rem, env(safe-area-inset-bottom)); box-shadow: var(--app-shadow); display: grid; gap: .6rem; grid-template-columns: minmax(0, 1fr) auto; left: max(.6rem, env(safe-area-inset-left)); padding: .5rem .55rem; position: fixed; right: max(.6rem, env(safe-area-inset-right)); z-index: 10; }
.app-shell .pick-schedule__submit-tray .app-button { min-height: 42px; padding: .45rem .65rem; }
.app-shell .pick-schedule__submit-tray .app-button:disabled { cursor: not-allowed; opacity: .48; }
.app-shell .pick-schedule__entry form { padding-bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
.app-shell .pick-schedule__locked-header { align-items: center; border: 0; display: grid; justify-items: center; margin: 0 0 .7rem; padding: .2rem 0 .65rem; }
.app-shell .pick-schedule__locked-header .team-tile, .app-shell .pick-schedule__entry-header .team-tile { --team-tile-size: 84px; }
.app-shell .pick-schedule__locked-header .team-tile--logo .nfl-team-logo, .app-shell .pick-schedule__entry-header .team-tile--logo .nfl-team-logo { height: 60%; max-height: 60%; max-width: 60%; width: 60%; }
.app-shell .pick-schedule__matrix-scroll { -webkit-overflow-scrolling: touch; border: 1px solid var(--app-border-subtle); border-radius: 8px; box-shadow: var(--app-shadow); overflow-x: auto; }
.app-shell .pick-schedule__matrix { border-collapse: separate; border-spacing: 0; font-family: var(--app-sans); font-size: .76rem; min-width: max-content; width: 100%; }
.app-shell .pick-schedule__matrix th, .app-shell .pick-schedule__matrix td { border-bottom: 1px solid var(--app-border-subtle); padding: .5rem .6rem; text-align: center; white-space: nowrap; }
.app-shell .pick-schedule__matrix thead th { background: #1d1629; color: var(--app-accent); font-size: .64rem; letter-spacing: .035em; max-width: 7rem; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; }
.app-shell .pick-schedule__matrix tbody tr:last-child > * { border-bottom: 0; }
.app-shell .pick-schedule__matrix-row--unresolved { opacity: .58; }
.app-shell .pick-schedule__matrix-row--bye { color: var(--app-muted); }
.app-shell .pick-schedule__matrix th:first-child { background: var(--app-panel); color: var(--app-text); left: 0; min-width: 9.5rem; position: sticky; text-align: left; z-index: 1; }
.app-shell .pick-schedule__matrix thead th:first-child { background: #1d1629; z-index: 2; }
.app-shell .pick-schedule__matrix th[scope="row"] > strong { display: block; font-size: .8rem; }
.app-shell .pick-schedule__matrix th[scope="row"] > span { color: var(--app-muted); display: block; font-size: .66rem; line-height: 1.25; margin-top: .13rem; }
.app-shell .pick-schedule__game-timing .nfl-game-state { justify-content: flex-start; margin: .13rem 0 0; text-align: left; }
.app-shell .pick-schedule__prediction { border: 1px solid transparent; border-radius: 5px; color: var(--app-text); display: inline-flex; font-weight: 850; gap: .2rem; justify-content: center; min-width: 2.2rem; padding: .25rem .3rem; }
.app-shell .pick-schedule__prediction--correct { background: #1f4837; border-color: #4e9c76; color: #d9ffe9; }
.app-shell .pick-schedule__prediction--incorrect { background: #4e222a; border-color: #b65c66; color: #ffe2e1; }
.app-shell .pick-schedule__prediction--unresolved { background: #39333f; border-color: #655b6b; color: #d6d0d8; filter: grayscale(1); }
.app-shell .pick-schedule__standings { margin-top: 1.15rem; }
.app-shell .pick-schedule__standings .team-draft__standings { background: #1d1629; border: 1px solid var(--app-border-subtle); border-radius: 8px; }
.app-shell .pick-schedule__standings .team-draft__standings li { padding: .55rem .65rem; }
.app-shell .pick-schedule__standings .team-draft__standing-rank { color: var(--app-accent); font-family: var(--app-display); font-size: .6rem; text-align: center; }
.app-shell .pick-schedule__standings .team-draft__standing-name { font-family: var(--app-sans); font-size: .85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .pick-schedule__standings .team-draft__standings li > strong { color: var(--app-accent-strong); font-family: var(--app-sans); font-size: .74rem; white-space: nowrap; }

/* Survivor current status is a compact, tappable scoreboard rather than two
   repeated lists of the same members. */
.app-shell .survivor-game__utilities { margin: .25rem 0 .65rem; }
.app-shell .survivor-game__utilities .app-button { font-size: .72rem; min-height: 36px; padding: .45rem .65rem; }
.app-shell .survivor-member-list { margin-top: .7rem; }
.app-shell .survivor-member-list .survivor-board { gap: .45rem; }
.app-shell .survivor-member-row { min-height: 82px; padding: 0; }
.app-shell .survivor-member-row__link { align-items: center; color: var(--app-text); display: grid; gap: .5rem .65rem; grid-template-columns: minmax(6.8rem, .8fr) minmax(10rem, 1.2fr) 1.1rem; min-height: 82px; padding: .55rem .65rem; text-decoration: none; }
.app-shell .survivor-member-row__link:hover { color: var(--app-text); }
.app-shell .survivor-member-row__identity { display: grid; gap: .08rem; min-width: 0; }
.app-shell .survivor-member-row__identity > strong { color: var(--app-text); font-family: var(--app-sans); font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .survivor-member-row__matchup { align-items: center; display: grid; justify-self: stretch; min-width: 0; }
.app-shell .survivor-member-row__matchup > .status-badge { justify-self: center; }
.app-shell .survivor-member-row__matchup .team-tile { --team-tile-size: 36px; }
.app-shell .survivor-member-row__matchup .team-tile__abbreviation { font-size: clamp(9px, 29cqi, 11px); letter-spacing: 0; }
.app-shell .survivor-member-row__matchup .status-badge { font-size: .54rem; }
.app-shell .survivor-member-row__lives { color: var(--app-accent); font-family: var(--app-sans); font-size: .76rem; font-weight: 700; letter-spacing: .035em; white-space: nowrap; }
.app-shell .survivor-member-row__chevron { color: var(--app-accent); font-family: var(--app-sans); font-size: 1.4rem; }
.app-shell .survivor-member-row--needs-pick { border-left-color: var(--app-accent); }
.app-shell .survivor-member-row--needs-pick .survivor-member-row__link { min-height: 82px; }
.app-shell .survivor-member-row__action { box-shadow: 0 3px 0 #9c762b, 0 5px 11px rgba(231, 189, 88, .18); margin: 0 .65rem .65rem; width: calc(100% - 1.3rem); }
.app-shell .survivor-history-list { gap: .45rem; }
.app-shell .survivor-history__current-action { margin: 0 0 .8rem; }
.app-shell .survivor-history-row { align-items: center; display: grid; gap: .5rem .65rem; grid-template-columns: minmax(4.5rem, .45fr) minmax(10rem, 1.2fr); min-height: 76px; padding: .5rem .65rem; }
.app-shell .survivor-history-row > strong { font-family: var(--app-sans); font-size: .8rem; }
.app-shell .survivor-history-row__matchup { min-width: 0; }
.app-shell .survivor-history-row .status-badge { font-size: .54rem; }
.app-shell .survivor-last-results { margin-top: 1rem; }
.app-shell .survivor-last-results .history-list { gap: .4rem; }
.app-shell .survivor-last-results__row { align-items: center; display: grid; gap: .5rem .65rem; grid-template-columns: minmax(6.8rem, .8fr) minmax(10rem, 1.2fr); min-height: 76px; padding: .5rem .65rem; }
.app-shell .survivor-last-results__row > strong { font-family: var(--app-sans); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-shell .survivor-last-results__matchup { min-width: 0; }
.app-shell .survivor-last-results__row .status-badge { font-size: .53rem; }

/* One matchup/status stack is shared by Survivor and Cesspool. Scheduled,
   live, and final games only replace its content; its geometry stays fixed. */
.app-shell .selected-team-matchup { display: grid; gap: .28rem; margin: 0; }
.app-shell .selected-team-matchup__state { align-items: center; display: flex; flex-wrap: wrap; gap: .25rem .45rem; justify-content: center; margin-top: 0; min-height: 1.25rem; }
.app-shell .selected-team-matchup__state .nfl-game-state { margin: 0; white-space: nowrap; }
.app-shell .selected-team-matchup__state time { color: var(--app-muted); font-family: var(--app-sans); font-size: .58rem; font-weight: 800; line-height: 1.25; text-transform: uppercase; }

@media (max-width: 420px) {
  .app-shell .survivor-member-row__link { grid-template-columns: minmax(5.5rem, .75fr) minmax(0, 1.25fr) 1.1rem; }
  .app-shell .survivor-last-results__row { grid-template-columns: minmax(5.5rem, .75fr) minmax(0, 1.25fr); }
  .app-shell .survivor-history-row { grid-template-columns: minmax(4.25rem, .45fr) minmax(0, 1.25fr); }
}

@media (max-width: 640px) {
  .app-shell .pick-schedule__entry-intro { align-items: start; flex-direction: column; gap: .15rem; }
  .app-shell .pick-schedule__team-choice-surface strong { font-size: .69rem; }
  .app-shell .pick-schedule__matrix th, .app-shell .pick-schedule__matrix td { padding: .46rem .5rem; }
  .app-shell .pick-schedule__matrix th:first-child { min-width: 8.8rem; }
}

@media (max-width: 640px) {
  .app-shell .team-draft__weekly-table { font-size: .72rem; }
  .app-shell .team-draft__weekly-table th, .app-shell .team-draft__weekly-table td { padding: .44rem .55rem; }
  .app-shell .team-draft__weekly-table th:first-child { max-width: 8.8rem; }
  .app-shell .team-draft__rosters { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .app-shell .cesspool-standings th:first-child, .app-shell .cesspool-standings tbody th { width: 44%; }
  .app-shell .cesspool-standings th:nth-child(2), .app-shell .cesspool-standings td:nth-child(2) { width: 30%; }
  .app-shell .cesspool-standings th:nth-child(3), .app-shell .cesspool-standings td:nth-child(3) { width: 26%; }
  .app-shell .cesspool-standings th, .app-shell .cesspool-standings td { padding: .5rem .35rem; }
  .app-shell .cesspool-selection-row { gap: .4rem; }
  .app-shell .cesspool-selection-row .status-badge { max-width: 55%; white-space: normal; }
}

@media (max-width: 640px) {
  .app-shell .app-header__inner { flex-wrap: nowrap; min-height: 56px; }
  .app-shell .app-nav { display: none; }
  .app-shell .app-header__account { margin-left: auto; width: auto; }
  .app-shell .app-header__welcome, .app-shell .app-nav__sign-out { font-size: .75rem; min-height: 36px; padding: .4rem .5rem; }
  .app-shell .page-header.home-page-header { display: flex; gap: .7rem; justify-content: space-between; }
  .app-shell .home-page-header .app-button { margin-top: 0; width: auto; }
  .app-shell .app-section { margin: 1.1rem 0; }
  .app-shell .history-list { gap: .55rem; }
}

@media (max-width: 520px) {
  .team-tile-lab__section { padding: .8rem; }
  .team-tile-lab__size-row { grid-template-columns: 1fr; }
  .team-tile-lab__phone { margin-left: 0; margin-right: 0; width: 100%; }
}
