@media (max-width: 760px) {
  html {
    overflow-x: hidden;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  body {
    margin: 0;
    min-width: 0;
    overflow-x: hidden;
    padding: 0.75rem;
  }

  img,
  video,
  canvas {
    max-width: 100%;
  }

  h1 {
    font-size: clamp(1.85rem, 9vw, 2.45rem);
    line-height: 1.08;
    overflow-wrap: anywhere;
  }

  h2,
  h3 {
    overflow-wrap: anywhere;
  }

  p {
    max-width: 100%;
  }

  label,
  legend {
    line-height: 1.25;
  }

  select,
  textarea,
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="color"]) {
    font-size: 16px;
    max-width: 100%;
  }

  textarea {
    min-height: 7rem;
  }

  form p > select,
  form p > textarea,
  form p > input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="color"]) {
    width: min(100%, 24rem);
  }

  .primary-action-link,
  .updates-primary-button,
  input[type="submit"] {
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    text-align: center;
  }

  .page-heading-row {
    display: grid;
    gap: 0.75rem;
  }

  .page-heading-row h1 {
    min-width: 0;
  }

  .page-actions,
  .scores-expand-actions,
  .test-standings-actions,
  .draft-countdown-controls {
    gap: 0.55rem;
  }

  .page-actions,
  .season-selector,
  .tlfl-team-selector,
  .team-trades-left-form,
  .score-lab-controls,
  .test-standings-actions {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .season-selector-select,
  .tlfl-team-selector select,
  .team-trades-left-form input,
  .score-lab-controls select,
  .test-standings-editor select {
    width: 100%;
  }

  body > table,
  .player-assignment-roster-table,
  .player-assignment-players-table,
  .executed-trades-table,
  .injured-reserves-table,
  .super-bowl-champions-table,
  .leaders-table,
  .draft-pick-modal table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body > table th,
  body > table td {
    white-space: nowrap;
  }

  .flash {
    margin-left: 0;
    margin-right: 0;
  }

  .global-nav {
    border-radius: 8px;
    margin-bottom: 0.75rem;
  }

  .global-nav-brand img {
    height: 2.75rem;
    width: 2.75rem;
  }

  .global-nav.global-nav-open {
    max-height: calc(100dvh - 1.5rem);
    overflow-y: auto;
  }

  .global-nav.global-nav-open > a:not(.global-nav-brand),
  .global-nav.global-nav-open > .global-nav-auth,
  .global-nav.global-nav-open > details {
    min-width: 0;
  }

  .global-nav a:not(.global-nav-brand),
  .global-nav summary,
  .global-nav-button,
  .global-nav-compact a:not(.global-nav-brand),
  .global-nav-compact summary,
  .global-nav-compact .global-nav-button {
    min-height: 2.65rem;
    white-space: normal;
    width: 100%;
  }

  .global-nav .global-nav-brand {
    min-height: 0;
    padding: 0;
    width: auto;
  }

  .global-nav-auth {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .global-nav-auth form,
  .global-nav-auth .button_to,
  .global-nav-button {
    width: 100%;
  }

  .global-nav-profile-link span {
    max-width: none;
  }

  .global-nav-menu {
    box-shadow: none;
  }

  .global-nav-team-menu {
    gap: 0.75rem;
    grid-template-columns: 1fr;
    max-height: none;
    padding: 0.75rem;
  }

  .score-ticker {
    border-radius: 8px;
    margin-bottom: 1rem;
  }

  .score-ticker-game {
    flex-basis: 8rem;
  }

  .score-ticker-week-form {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .score-ticker-week-select {
    width: 100%;
  }

  .commissioner-roster-warnings {
    margin: 0 0 1rem;
    padding: 0.75rem;
  }

  .commissioner-roster-warnings summary {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: 1fr auto;
  }

  .commissioner-roster-warnings-count {
    justify-self: start;
  }

  .commissioner-roster-warnings-toggle {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .home-dashboard {
    gap: 1rem;
  }

  .home-panel,
  .draft-preview,
  .article-detail {
    padding: 0.85rem;
  }

  .article-card-overlay,
  .article-hero-overlay {
    padding: 1rem;
  }

  .article-card h1,
  .article-hero h1,
  .article-detail h1 {
    font-size: clamp(1.7rem, 9vw, 2.45rem);
  }

  .article-card p,
  .article-hero p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .article-inline-image img {
    margin-left: 0;
    width: 100%;
  }

  .article-byline span {
    display: block;
    margin-left: 0;
    margin-top: 0.25rem;
  }

  .article-byline span::before {
    content: "";
    margin-right: 0;
  }

  .home-schedule-game {
    gap: 0.35rem;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    padding: 0.55rem 0.35rem;
  }

  .home-schedule-team {
    white-space: normal;
  }

  .home-power-rankings-table {
    table-layout: fixed;
  }

  .home-power-rankings-team span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .scores-week-selector:not([data-scores-matchups-target="weekTrack"]),
  .standings-tabs {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .scores-matchups {
    gap: 0.85rem;
  }

  .scores-matchup-summary {
    grid-template-columns: 1fr;
  }

  .scores-team-row {
    gap: 0.45rem;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 0;
    padding: 0.65rem;
  }

  .scores-team-identity {
    min-width: 0;
  }

  .scores-team-identity span {
    font-size: 1rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .scores-team-row strong {
    font-size: 1.05rem;
  }

  .scores-players-remaining {
    grid-column: 1 / -1;
    justify-self: start;
    white-space: normal;
  }

  .scores-game-status {
    border-left: 0;
    border-top: 1px solid #d1d5db;
    padding: 0.55rem;
  }

  .scores-rosters {
    gap: 0.8rem;
    grid-template-columns: 1fr;
    padding: 0.75rem;
  }

  .scores-roster-heading {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .scores-players-remaining {
    justify-self: start;
  }

  .scores-roster {
    border-radius: 8px;
  }

  .scores-roster table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .scores-roster th,
  .scores-roster td {
    padding: 0.5rem 0.48rem;
    white-space: nowrap;
  }

  .score-overrides-save-bar,
  .update-ir-save-bar,
  .nfl-team-seniorities-actions,
  .sticky-form-actions {
    top: 0.5rem;
  }

  .score-overrides-save-bar,
  .update-ir-save-bar {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .score-overrides-save-bar .primary-action-link,
  .update-ir-save-bar .primary-action-link {
    width: 100%;
  }

  .standings-table {
    font-size: 0.8rem;
    min-width: 40rem;
  }

  .playoff-standings-table {
    min-width: 42rem;
  }

  .standings-team-column {
    width: 14rem;
  }

  .standings-table th,
  .standings-table td {
    padding: 0.38rem 0.35rem;
  }

  .standings-key-table {
    width: 100%;
  }

  .leaders-scroll {
    margin-top: 1rem;
  }

  .leaders-scroll-controls,
  .draft-scroll-controls {
    top: 0.5rem;
  }

  .leaders-grid {
    gap: 0.85rem;
  }

  .leaders-card {
    min-width: 0;
    width: 100%;
  }

  .leaders-table th,
  .leaders-table td {
    padding: 0.55rem 0.5rem;
  }

  .tlfl-team-page-controls {
    margin: 0.75rem 0;
  }

  .player-profile-hero {
    border-left-width: 0.32rem;
    border-radius: 8px;
    gap: 0.85rem;
    grid-template-columns: 1fr;
    margin-bottom: 1rem;
    min-height: 0;
    padding: 0.75rem;
  }

  .player-profile-hero::after {
    display: none;
  }

  .player-profile-media {
    min-height: 11rem;
  }

  .player-profile-headshot {
    height: min(12rem, 112%);
  }

  .tlfl-team-profile-logo {
    height: 9rem;
    width: 10.5rem;
  }

  .player-profile-summary h1 {
    font-size: clamp(1.75rem, 10vw, 2.4rem);
    line-height: 1.05;
    white-space: normal;
  }

  .player-profile-meta,
  .tlfl-team-profile-meta-row,
  .tlfl-team-user-contact {
    gap: 0.35rem 0.45rem;
  }

  .player-profile-stats-panel {
    border-left: 0;
    padding-left: 0;
  }

  .player-profile-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0.75rem;
  }

  .player-profile-stat strong {
    font-size: 1.85rem;
  }

  .tlfl-team-roster-layout {
    gap: 0.85rem;
    grid-template-columns: 1fr;
  }

  .tlfl-team-section {
    border-radius: 8px;
    margin-bottom: 1rem;
  }

  .tlfl-team-section-header {
    border-radius: 8px 8px 0 0;
    padding: 0.7rem 0.8rem;
  }

  .tlfl-team-roster-table {
    border-collapse: separate;
    border-spacing: 0;
    display: block;
    padding: 0.65rem;
  }

  .tlfl-team-roster-table thead {
    display: none;
  }

  .tlfl-team-roster-table tbody {
    display: grid;
    gap: 0.65rem;
  }

  .tlfl-team-roster-table tbody tr,
  .tlfl-team-roster-table tbody tr:nth-child(even) {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgb(17 24 39 / 0.06);
    display: grid;
    gap: 0.25rem 0.65rem;
    grid-template-columns: 3.9rem minmax(0, 1fr) auto;
    padding: 0.55rem;
  }

  .tlfl-team-roster-table td,
  .tlfl-team-roster-table.tlfl-team-roster-table td,
  .tlfl-team-roster-table tbody td:not(.tlfl-team-player-headshot-cell),
  .tlfl-team-roster-table tbody tr:nth-child(even) td:not(.tlfl-team-player-headshot-cell) {
    background: transparent;
    border: 0;
    border-radius: 0;
    height: auto;
    min-height: 0;
    padding: 0;
    text-align: left;
    width: auto;
  }

  .tlfl-team-roster-table .tlfl-team-player-headshot-cell,
  .tlfl-team-roster-table.tlfl-team-roster-table .tlfl-team-player-headshot-cell {
    grid-row: 1 / span 3;
    padding: 0;
    width: auto;
  }

  .tlfl-team-player-headshot-frame,
  .tlfl-team-player-headshot-spacer {
    height: 3.45rem;
    width: 3.45rem;
  }

  .tlfl-team-roster-table td:nth-child(2) {
    align-self: center;
    font-weight: 800;
    min-width: 0;
  }

  .tlfl-team-roster-table td:nth-child(3) {
    align-self: center;
    background: #eef4ff;
    border: 1px solid #bfd1f2;
    border-radius: 999px;
    color: #172554;
    font-size: 0.82rem;
    font-weight: 900;
    justify-self: end;
    line-height: 1;
    padding: 0.28rem 0.42rem;
    text-align: center;
  }

  .tlfl-team-roster-table td:nth-child(4),
  .tlfl-team-roster-table td:nth-child(5),
  .tlfl-team-roster-table td:nth-child(6),
  .tlfl-team-roster-table td:nth-child(7) {
    color: #475569;
    display: inline-flex;
    flex-wrap: wrap;
    font-size: 0.86rem;
    font-weight: 800;
    gap: 0.25rem;
    min-width: 0;
  }

  .tlfl-team-roster-table td:nth-child(4)::before {
    color: #64748b;
    content: "NFL";
    font-weight: 900;
  }

  .tlfl-team-roster-table td:nth-child(5)::before {
    color: #64748b;
    content: "Bye";
    font-weight: 900;
  }

  .tlfl-team-active-roster-table td:nth-child(6)::before {
    color: #64748b;
    content: "TLFL Pts";
    font-weight: 900;
  }

  .tlfl-team-ir-roster-table td:nth-child(6)::before {
    color: #64748b;
    content: "Replacement";
    font-weight: 900;
  }

  .tlfl-team-roster-table td:nth-child(7) {
    grid-column: 2 / -1;
  }

  .tlfl-team-roster-table td:nth-child(7)::before {
    color: #64748b;
    content: "Status";
    font-weight: 900;
  }

  .tlfl-team-roster-table td:empty::before {
    content: none;
  }

  .tlfl-team-player-name-with-injury {
    min-width: 0;
  }

  .tlfl-team-detail-table:not(.tlfl-team-roster-table) th,
  .tlfl-team-detail-table:not(.tlfl-team-roster-table) td {
    padding: 0.55rem 0.6rem;
  }

  .tlfl-team-schedule-table {
    font-size: 0.92rem;
  }

  .tlfl-team-schedule-table th:nth-child(1),
  .tlfl-team-schedule-table td:nth-child(1) {
    width: 3.4rem;
  }

  .tlfl-team-schedule-opponent {
    white-space: normal;
  }

  .tlfl-teams-card > table,
  .nfl-team-card table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .nfl-teams,
  .keepers-form .nfl-teams {
    grid-template-columns: 1fr;
  }

  .nfl-team-card {
    padding: 0.75rem;
  }

  .tlfl-teams-card {
    padding: 0;
  }

  .tlfl-teams-card .nfl-team-card-header {
    padding: 0.85rem 0.85rem 0;
  }

  .tlfl-teams-card > table {
    margin: 0 0.85rem;
    width: calc(100% - 1.7rem);
  }

  .nfl-team-card-header {
    align-items: flex-start;
  }

  .nfl-team-card-header h2 {
    font-size: 1.25rem;
  }

  .nfl-team-seniority-control {
    align-items: stretch;
  }

  .player-assignment-filters {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .player-assignment-filters fieldset {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.7rem;
    margin: 0;
    min-width: 0;
  }

  .player-assignment-filters .sticky-form-actions {
    width: 100%;
  }

  .player-assignment-roster-header {
    align-items: flex-start;
    gap: 0.75rem;
  }

  .player-assignment-roster-header img {
    height: 3rem;
    width: 3rem;
  }

  .player-assignment-roster-header h2 {
    font-size: 1.25rem;
  }

  .player-assignment-roster-table,
  .player-assignment-players-table {
    width: 100%;
  }

  .player-assignment-roster-table th,
  .player-assignment-roster-table td,
  .player-assignment-players-table th,
  .player-assignment-players-table td {
    padding: 0.5rem;
    white-space: nowrap;
  }

  .update-ir-replacements {
    max-width: 100%;
  }

  .transactions-layout,
  .trade-team-layout {
    grid-template-columns: 1fr;
  }

  .trade-team-selector,
  .trade-team-assets,
  .trade-asset-fieldset {
    max-width: none;
    width: 100%;
  }

  .trade-team-name {
    min-width: 0;
  }

  .trade-team-name span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .executed-trades-table,
  .injured-reserves-table {
    min-width: 34rem;
  }

  .updates-panel {
    max-width: none;
    padding: 0.85rem;
  }

  .updates-task-grid {
    grid-template-columns: 1fr;
  }

  .updates-function-card .updates-action-form {
    margin-left: -0.85rem;
    margin-right: -0.85rem;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }

  .updates-primary-button,
  .updates-inline-field {
    max-width: none;
    width: 100%;
  }

  .updates-readiness-list,
  .tank01-live-game-summary {
    grid-template-columns: 1fr;
  }

  .updates-readiness-heading {
    align-items: flex-start;
    display: grid;
    grid-template-columns: 1fr auto;
  }

  .updates-scheduled-table {
    min-width: 42rem;
  }

  .tank01-live-game-table,
  .test-standings-editor {
    min-width: 60rem;
  }

  .score-lab-game-box-header {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .score-lab-game-score {
    justify-content: start;
  }

  .draft-board-wrapper,
  .draft-recent-picks {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }

  .draft-current-team,
  .draft-countdown,
  .draft-recent-pick {
    flex-basis: 100%;
    width: 100%;
  }

  .draft-countdown {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .draft-countdown-display {
    margin-left: 0;
    text-align: left;
  }

  .draft-countdown-controls {
    justify-content: flex-start;
  }

  .draft-recent-pick {
    align-items: flex-start;
    gap: 0.75rem;
  }

  .draft-recent-pick-player div {
    font-size: 1.15rem;
  }

  .draft-pick-modal,
  .player-modal {
    max-height: calc(100dvh - 0.75rem);
    width: calc(100vw - 0.75rem);
  }

  .player-modal-content {
    max-height: calc(100dvh - 4.5rem);
    padding: 0.75rem;
  }

  .player-modal-content .player-profile-hero {
    grid-template-columns: 1fr;
  }

  .player-modal-content .player-profile-summary h1 {
    font-size: 1.65rem;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  .player-modal-content .player-profile-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .user-auth-page,
  .user-profile,
  .user-admin-form-page {
    max-width: none;
    padding: 0.9rem;
    width: 100%;
  }

  .user-profile-header {
    display: grid;
    gap: 0.75rem;
  }

  .users-admin-table {
    min-width: 46rem;
  }

  .super-bowl-champions-table {
    min-width: 44rem;
  }

  .super-bowl-banner-list {
    flex-wrap: nowrap;
    max-width: 24rem;
    overflow-x: auto;
    padding-bottom: 0.45rem;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 480px) {
  body {
    padding: 0.55rem;
  }

  h1 {
    margin-bottom: 1rem;
  }

  .global-nav {
    padding: 0.15rem 0.35rem;
  }

  .global-nav-menu-toggle {
    height: 2.65rem;
    width: 2.65rem;
  }

  .score-ticker-game {
    flex-basis: 7.45rem;
  }

  .score-ticker-scroll {
    flex-basis: 1.75rem;
    width: 1.75rem;
  }

  .article-card::after,
  .article-hero::after {
    background: linear-gradient(180deg, rgb(0 0 0 / 0.08) 0%, rgb(0 0 0 / 0.78) 100%);
  }

  .article-card-overlay,
  .article-hero-overlay {
    padding: 0.85rem;
  }

  .draft-preview-pick-list li {
    grid-template-columns: 1fr;
  }

  .scores-week-selector:not([data-scores-matchups-target="weekTrack"]),
  .standings-tabs {
    margin-left: -0.55rem;
    margin-right: -0.55rem;
    padding-left: 0.55rem;
    padding-right: 0.55rem;
  }

  .scores-team-identity img {
    height: 1.65rem;
    width: 1.65rem;
  }

  .scores-team-identity span {
    font-size: 0.94rem;
  }

  .scores-rosters {
    padding: 0.55rem;
  }

  .standings-table {
    min-width: 38rem;
  }

  .player-profile-media {
    min-height: 9.5rem;
  }

  .player-profile-stat-grid,
  .player-modal-content .player-profile-stat-grid {
    gap: 0.45rem 0;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
  }

  .player-profile-stat strong,
  .player-modal-content .player-profile-stat strong {
    font-size: 1.55rem;
  }

  .tlfl-team-roster-table {
    padding: 0.5rem;
  }

  .tlfl-team-roster-table tbody tr,
  .tlfl-team-roster-table tbody tr:nth-child(even) {
    grid-template-columns: 3.35rem minmax(0, 1fr) auto;
    padding: 0.48rem;
  }

  .tlfl-team-player-headshot-frame,
  .tlfl-team-player-headshot-spacer {
    height: 3rem;
    width: 3rem;
  }

  .tlfl-team-roster-table td:nth-child(4),
  .tlfl-team-roster-table td:nth-child(5),
  .tlfl-team-roster-table td:nth-child(6) {
    font-size: 0.8rem;
  }

  .nfl-team-card,
  .updates-panel,
  .home-panel,
  .draft-preview,
  .article-detail,
  .user-auth-page,
  .user-profile,
  .user-admin-form-page {
    padding: 0.75rem;
  }

  .tlfl-teams-card {
    padding: 0;
  }

  .draft-countdown-team {
    align-items: flex-start;
  }

  .draft-countdown-team img {
    height: 3rem;
    width: 3rem;
  }

  .draft-recent-pick {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
  }

  .draft-recent-pick-images {
    grid-column: 1;
  }

  .draft-recent-pick-player {
    grid-column: 2;
  }

  .player-modal-content {
    padding: 0.55rem;
  }

  .super-bowl-champions-table {
    min-width: 38rem;
  }
}
