:root {
    --bg: #f6f3ea;
    --bg-accent: #d6eed4;
    --panel: rgba(255, 252, 245, 0.88);
    --panel-strong: #fffdf7;
    --line: rgba(18, 56, 44, 0.14);
    --text: #14382d;
    --muted: #5e766a;
    --primary: #0e8f59;
    --primary-strong: #08623d;
    --secondary: #e3b341;
    --danger: #cc4c43;
    --success: #157347;
    --shadow: 0 24px 60px rgba(20, 56, 45, 0.12);
    --font-body: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --font-heading: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--text);
    background:
        radial-gradient(circle at top left, rgba(227, 179, 65, 0.18), transparent 30%),
        radial-gradient(circle at top right, rgba(14, 143, 89, 0.18), transparent 35%),
        linear-gradient(180deg, #f8f5ec 0%, #eef6e9 100%);
}

h1, h2, h3, strong {
    font-family: var(--font-heading);
    margin: 0;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid rgba(98, 47, 140, 0.18);
    background: linear-gradient(135deg, rgba(87, 36, 128, 0.92), rgba(126, 63, 176, 0.9));
    backdrop-filter: blur(12px);
}

.site-header__inner {
    width: min(100%, 1480px);
    margin: 0 auto;
    padding: 14px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.site-header__topline {
    display: contents;
}

.site-menu-panel {
    display: flex;
    flex: 1 1 auto;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.site-menu-toggle,
.site-menu-backdrop {
    display: none;
}

.site-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.site-brand__logo {
    display: block;
    width: auto;
    height: 56px;
    max-width: min(280px, 100%);
}

.site-nav {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.site-nav__link {
    padding: 9px 14px;
    border-radius: 999px;
    color: rgba(248, 241, 255, 0.82);
    text-decoration: none;
    font-weight: 600;
    transition: background 180ms ease, color 180ms ease;
}

.site-nav__link:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.site-nav__link--active {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
}

.auth-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.auth-nav__link {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 8px;
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    transition: background 180ms ease, border-color 180ms ease;
}

.auth-nav__link:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.56);
}

.auth-nav__link--primary {
    background: #ffffff;
    color: #5f2b8a;
}

.auth-nav__link--primary:hover {
    background: #f5edf9;
}

.auth-shell {
    display: grid;
    place-items: start center;
}

.auth-panel {
    width: min(100%, 520px);
    display: grid;
    justify-items: center;
}

.auth-panel__status,
.auth-panel__fallback {
    width: 100%;
    padding: 24px;
    border: 1px solid rgba(20, 56, 45, 0.12);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 38px rgba(34, 24, 44, 0.08);
}

.auth-panel__fallback h1 {
    margin: 0 0 10px;
    font-size: 1.35rem;
}

.shell {
    width: min(100%, 1480px);
    margin: 0 auto;
    padding: 32px 16px 64px;
    flex: 1 0 auto;
}

.site-footer {
    margin-top: auto;
    border-top: 1px solid rgba(20, 56, 45, 0.12);
    background: rgba(255, 252, 245, 0.78);
    backdrop-filter: blur(12px);
}

.site-footer__inner {
    width: min(100%, 1480px);
    margin: 0 auto;
    padding: 20px 16px 28px;
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 16px;
}

.site-footer__meta,
.site-footer__nav {
    display: grid;
    gap: 6px;
}

.site-footer__title,
.site-footer__copy {
    margin: 0;
}

.site-footer__title {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 700;
}

.site-footer__copy {
    color: var(--muted);
    font-size: 0.92rem;
}

.site-footer__nav {
    justify-items: end;
}

.site-footer__link,
.footer-sitemap__link {
    color: var(--primary-strong);
    text-decoration: none;
    font-weight: 600;
}

.site-footer__link:hover,
.footer-sitemap__link:hover {
    text-decoration: underline;
}

.footer-sitemap {
    display: grid;
    gap: 12px;
}

.hero {
    display: block;
    margin-bottom: 24px;
}

.home-hero {
    display: grid;
    gap: 24px;
    margin-bottom: 24px;
}

.home-hero__copy {
    display: grid;
    gap: 12px;
}

.home-actions {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    align-items: stretch;
}

.home-manual {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hero__lede,
.workspace__meta,
.summary__note,
.pitch__hint,
.rules p,
.load-card__hint {
    color: var(--muted);
}

.load-card,
.card {
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--panel);
    box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
}

.load-card {
    padding: 24px;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.load-card__title {
    font-size: 1.45rem;
    line-height: 1.05;
}

.load-card__hint {
    margin: 0;
}

.load-card__button {
    width: 100%;
    margin-top: auto;
}

.load-card .field {
    margin-bottom: 0;
}

.card--warning {
    background: rgba(227, 179, 65, 0.18);
}

.field {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 0.95rem;
    font-weight: 600;
}

.field span {
    color: var(--muted);
}

.field input,
.field select {
    width: 100%;
    padding: 13px 14px;
    border-radius: 16px;
    border: 1px solid rgba(20, 56, 45, 0.18);
    background: rgba(255, 255, 255, 0.9);
    color: var(--text);
    font: inherit;
}

.field--compact {
    margin-bottom: 0;
}

.eyebrow {
    margin: 0 0 10px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.72rem;
    color: var(--primary-strong);
    font-weight: 700;
}

.button,
.button-icon {
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    font: inherit;
    transition: transform 180ms ease, opacity 180ms ease, background 180ms ease, box-shadow 180ms ease, color 180ms ease;
}

.button:hover,
.button-icon:hover {
    transform: translateY(-1px);
}

.button {
    padding: 12px 18px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.button:not(:disabled):hover,
.button-icon:not(:disabled):hover {
    box-shadow: 0 8px 18px rgba(12, 24, 20, 0.16);
}

.button:disabled,
.button-icon:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
}

.button--primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-strong));
    color: white;
}

.button--secondary {
    background: rgba(20, 56, 45, 0.08);
    color: var(--text);
}

.button--secondary:not(:disabled):hover {
    background: rgba(20, 56, 45, 0.16);
}

.button--edit {
    background: rgba(255, 253, 247, 0.94);
    color: var(--primary-strong);
    border: 1px solid rgba(14, 143, 89, 0.22);
}

.button--edit:not(:disabled):hover {
    background: rgba(14, 143, 89, 0.12);
    color: #0a6c3a;
}

.button--muted {
    background: rgba(88, 99, 94, 0.18);
    color: var(--muted);
}

.button--muted:disabled {
    opacity: 0.82;
}

.button--ghost {
    background: rgba(227, 179, 65, 0.18);
    color: #7a5905;
}

.button--table {
    width: 100%;
    background: linear-gradient(135deg, rgba(14, 143, 89, 0.22), rgba(8, 98, 61, 0.28));
    color: #0a3f28;
    border: 1px solid rgba(14, 143, 89, 0.34);
    padding: 10px 14px;
}

.button--table:not(:disabled):hover {
    background: linear-gradient(135deg, rgba(14, 143, 89, 0.3), rgba(8, 98, 61, 0.38));
    color: #08361f;
}

.button--table:disabled {
    background: rgba(88, 99, 94, 0.12);
    color: var(--muted);
    border-color: rgba(88, 99, 94, 0.14);
}

.button--table-compact {
    width: 42px;
    min-width: 42px;
    min-height: 42px;
    padding: 0;
    justify-self: end;
}

.button--table-icon {
    padding: 0;
}

.button--table-icon svg {
    display: block;
    width: 18px;
    height: 18px;
    stroke: currentColor;
    stroke-width: 2.1;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

.button--table-icon:disabled {
    opacity: 1;
    background: rgba(204, 76, 67, 0.08);
    color: #a34037;
    border-color: rgba(204, 76, 67, 0.18);
}

.button-icon {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(204, 76, 67, 0.14);
    color: var(--danger);
    font-size: 1.2rem;
    line-height: 1;
}

.button-icon svg {
    display: block;
}

.button-icon:not(:disabled):hover {
    background: rgba(204, 76, 67, 0.24);
}

.button-icon--swap {
    background: rgba(255, 255, 255, 0.18);
    color: inherit;
}

.button-icon--swap:not(:disabled):hover {
    background: rgba(255, 255, 255, 0.3);
    color: #ffffff;
}

.button-icon--swap-ready {
    background: linear-gradient(135deg, rgba(14, 143, 89, 0.92), rgba(8, 98, 61, 0.96));
    color: #f4fff7;
    box-shadow: 0 0 0 2px rgba(114, 227, 168, 0.28);
}

.button-icon--swap-active {
    background: rgba(227, 179, 65, 0.28);
    color: #fff8df;
}

.button-icon--swap-disabled {
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.55);
}

.messages {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
}

.message {
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid transparent;
    background: rgba(14, 143, 89, 0.08);
    border-color: rgba(14, 143, 89, 0.15);
}

.message--success {
    background: rgba(21, 115, 71, 0.1);
    border-color: rgba(21, 115, 71, 0.2);
}

.message--error {
    background: rgba(204, 76, 67, 0.1);
    border-color: rgba(204, 76, 67, 0.22);
}

.workspace__header,
.card {
    padding: 24px;
}

.timeline {
    display: grid;
    gap: 18px;
    margin-bottom: 18px;
}

.timeline__tabs {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.timeline__tab {
    min-width: 104px;
    padding: 12px 16px;
    border-radius: 18px;
    border: 1px solid rgba(20, 56, 45, 0.14);
    background: rgba(255, 255, 255, 0.7);
    color: var(--text);
    display: grid;
    gap: 4px;
    text-align: left;
}

.timeline__tab small {
    color: var(--muted);
    text-transform: capitalize;
}

.timeline__tab--active {
    border-color: rgba(14, 143, 89, 0.28);
    background: rgba(14, 143, 89, 0.12);
}

.workspace__header {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: start;
    margin-bottom: 18px;
}

.workspace {
    position: relative;
    display: grid;
    gap: 18px;
}

.workspace__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.button[aria-busy="true"] {
    opacity: 0.8;
    cursor: progress;
}

.button--link {
    text-decoration: none;
}

.workspace__grid {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 18px;
    align-items: stretch;
}

.mobile-planner-toolbar,
.player-drawer__close,
.player-drawer-backdrop,
.player-drawer__filter-toggle,
.player-mobile-sort-field,
.shirt-card__mobile-action,
.shirt-card__mobile-leadership,
.shirt-card__mobile-status-tags,
.shirt-card__actions-heading,
.shirt-card__actions-close,
.shirt-card-actions-backdrop {
    display: none;
}

.workspace__header-card {
    width: 100%;
}

.catalog-column {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: visible;
    min-width: 0;
}

.workspace__summary,
.workspace__chips {
    margin-bottom: 18px;
}

.summary-card {
    display: grid;
    gap: 14px;
}

.summary-card .summary__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.summary-card__header {
    margin-bottom: 0;
}

.summary {
    display: grid;
    gap: 14px;
}

.summary__top {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    align-items: start;
}

.summary__grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.summary__grid strong {
    font-size: 1.2rem;
}

.summary__value--positive {
    color: #0e8f59;
}

.summary__value--negative {
    color: #c23b22;
}

.summary__label {
    display: block;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted);
    margin-bottom: 6px;
}

.summary__notes {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-content: start;
}

.summary__notes .summary__note {
    margin: 0;
}

.comparison-page {
    padding: 24px;
}

.comparison-page__header {
    align-items: start;
    gap: 16px;
    flex-wrap: wrap;
}

.comparison-page__intro {
    display: grid;
    gap: 10px;
    flex: 1 1 30rem;
}

.comparison-page__lede {
    margin: 0;
    max-width: 42rem;
    color: var(--muted);
}

.comparison-brief,
.comparison-panel,
.comparison-report {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.54);
}

.comparison-brief {
    flex: 1 1 18rem;
    max-width: 26rem;
    padding: 16px 18px;
}

.comparison-brief__label {
    margin: 0 0 6px;
    font-family: var(--font-heading);
    font-size: 0.86rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--primary-strong);
}

.comparison-brief--method summary {
    cursor: pointer;
}

.comparison-brief--method .pitch__hint {
    margin-bottom: 0;
}

.comparison-page__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}

.comparison-panel,
.comparison-report {
    padding: 18px;
}

.comparison-panel__title {
    font-size: 1.15rem;
    line-height: 1.1;
}

.comparison-stat-picker {
    display: grid;
    gap: 12px;
}

.comparison-player-picker__controls,
.comparison-stat-picker__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    position: relative;
}

.comparison-player-dropdown,
.comparison-stat-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 240px;
    overflow-y: auto;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--panel-strong);
    box-shadow: 0 18px 40px rgba(20, 56, 45, 0.14);
    display: grid;
    gap: 6px;
    z-index: 5;
}

.comparison-player-dropdown[hidden],
.comparison-stat-dropdown[hidden] {
    display: none;
}

.comparison-player-dropdown__option,
.comparison-stat-dropdown__option {
    width: 100%;
    border: 0;
    border-radius: 12px;
    padding: 10px 12px;
    background: transparent;
    color: var(--text);
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: background 180ms ease, color 180ms ease;
}

.comparison-player-dropdown__option:hover,
.comparison-player-dropdown__option:focus-visible,
.comparison-stat-dropdown__option:hover,
.comparison-stat-dropdown__option:focus-visible {
    background: rgba(14, 143, 89, 0.12);
    color: var(--primary-strong);
    outline: none;
}

.comparison-player-dropdown__empty,
.comparison-stat-dropdown__empty {
    margin: 0;
    padding: 10px 12px;
    color: var(--muted);
}

.comparison-stat-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.comparison-stat-pill {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 10px 14px;
    background: rgba(20, 56, 45, 0.06);
    color: var(--text);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.comparison-stat-pill:hover {
    transform: translateY(-1px);
}

.comparison-stat-pill--active {
    background: rgba(14, 143, 89, 0.14);
    border-color: rgba(14, 143, 89, 0.45);
    color: var(--primary-strong);
}

.comparison-page__visual {
    display: grid;
    gap: 20px;
    min-width: 0;
}

.comparison-scout-grid {
    display: grid;
    grid-template-columns: minmax(260px, 0.78fr) minmax(520px, 1.7fr) minmax(260px, 0.78fr);
    gap: 16px;
    align-items: stretch;
}

.comparison-scout-grid__chart {
    display: grid;
    gap: 20px;
    min-width: 0;
    align-self: stretch;
}

.comparison-mobile-profile-tabs {
    display: none;
}

.comparison-report {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: start;
}

.comparison-chart {
    width: 100%;
    height: 100%;
    padding: 20px;
    min-height: 640px;
    display: grid;
    gap: 14px;
    align-content: start;
    justify-items: center;
}

.comparison-chart__toolbar {
    width: 100%;
    display: grid;
    gap: 8px;
}

.comparison-chart__toolbar .comparison-stat-picker {
    display: grid;
    grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
    gap: 8px;
    align-items: start;
}

.comparison-chart__toolbar .field {
    margin-bottom: 0;
    font-size: 0.82rem;
}

.comparison-chart__toolbar input {
    padding: 8px 10px;
    border-radius: 10px;
    font-size: 0.84rem;
}

.comparison-chart__toolbar .comparison-stat-pills {
    gap: 6px;
}

.comparison-chart__toolbar .comparison-stat-pill {
    min-height: 32px;
    padding: 6px 9px;
    font-size: 0.76rem;
    gap: 6px;
}

.comparison-stat-count {
    font-size: 0.78rem;
    line-height: 1.35;
}

.comparison-chart__frame {
    width: min(100%, 620px);
    aspect-ratio: 1 / 1;
}

.comparison-chart canvas {
    width: 100%;
    height: 100%;
}

.comparison-error {
    margin: 0;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(204, 76, 67, 0.12);
    color: var(--danger);
    font-weight: 600;
}

.mini-league-page {
    display: grid;
    gap: 18px;
}

.mini-league-dashboard {
    display: grid;
    grid-template-columns: minmax(260px, 0.65fr) minmax(0, 2fr);
    gap: 18px;
    align-items: stretch;
}

.mini-league-menu {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
    height: 100%;
    padding: 16px;
    overflow: hidden;
}

.mini-league-menu h1,
.mini-league-analysis h2 {
    line-height: 1.1;
}

.mini-league-menu > *,
.mini-league-menu label,
.mini-league-menu .summary__note {
    min-width: 0;
    max-width: 100%;
}

.mini-league-menu h1,
.mini-league-menu .summary__note,
.mini-league-menu .field span {
    overflow-wrap: anywhere;
}

.mini-league-menu form {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.mini-league-menu .field,
.mini-league-menu input,
.mini-league-menu select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.mini-league-menu select {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mini-league-overview {
    display: grid;
    gap: 14px;
    padding: 14px 18px;
    min-width: 0;
    height: 100%;
}

.mini-league-overview--empty {
    min-height: 180px;
    place-items: center;
}

.mini-league-select-form {
    display: grid;
    gap: 10px;
}

.mini-league-analysis {
    display: grid;
    gap: 18px;
}

.mini-league-summary__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.mini-league-summary__grid [class^="recap-stat--"] {
    cursor: help;
}

.mini-league-summary--compact {
    display: grid;
    grid-template-columns: minmax(180px, 0.7fr) minmax(0, 2fr);
    align-items: center;
    gap: 16px;
    padding-block: 14px;
}

.mini-league-summary--compact .card__header {
    margin: 0;
}

.mini-league-summary--compact .summary__grid > div {
    padding: 7px 9px;
}

.mini-league-summary--compact .summary__grid strong {
    font-size: 1.05rem;
}

.mini-league-rivals--compact {
    border-top: 1px solid rgba(20, 56, 45, 0.1);
    padding-top: 12px;
    padding-block: 14px;
}

.mini-league-rivals--compact .card__header {
    margin-bottom: 8px;
}

.mini-league-rivals--compact .card__header h2 {
    font-size: 1.05rem;
}

.mini-league-rivals--compact .mini-league-table th,
.mini-league-rivals--compact .mini-league-table td {
    padding: 6px 9px;
    font-size: 0.82rem;
}

.mini-league-rivals--compact .mini-league-table td span {
    font-size: 0.74rem;
    margin-top: 0;
}

.mini-league-rivals--compact .mini-league-table-wrap {
    max-height: 248px;
    overflow: auto;
}

.mini-league-rivals--compact .mini-league-table th {
    position: sticky;
    z-index: 1;
    top: 0;
    background: var(--surface, #fff);
}

.mini-league-signals-card {
    padding: 14px;
}

.mini-league-profile {
    padding: 18px;
}

.mini-league-profile__summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 14px;
}

.mini-league-profile__summary > div {
    min-width: 0;
    padding: 9px 10px;
}

.mini-league-profile__summary strong {
    font-size: 0.9rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}


.mini-league-page:has(.recap-stat--highest:hover) .rival-row--highest,
.mini-league-page:has(.recap-stat--highest:focus) .rival-row--highest,
.mini-league-page:has(.recap-stat--lowest:hover) .rival-row--lowest,
.mini-league-page:has(.recap-stat--lowest:focus) .rival-row--lowest,
.mini-league-page:has(.recap-stat--climber:hover) .rival-row--climber,
.mini-league-page:has(.recap-stat--climber:focus) .rival-row--climber,
.mini-league-page:has(.recap-stat--faller:hover) .rival-row--faller {
    background: rgba(62, 189, 140, 0.16);
    outline: 2px solid rgba(31, 135, 95, 0.35);
    outline-offset: -2px;
}

.mini-league-page:has(.recap-stat--faller:focus) .rival-row--faller {
    background: rgba(62, 189, 140, 0.16);
    outline: 2px solid rgba(31, 135, 95, 0.35);
    outline-offset: -2px;
}

.mini-league-summary__grid [class^="recap-stat--"]:focus-visible {
    outline: 2px solid #1f875f;
    outline-offset: 2px;
}

.mini-league-recap__table {
    min-width: 620px;
}

.mini-league-profile-host,
.mini-league-profile__grid {
    display: grid;
    gap: 18px;
}

.mini-league-profile-dialog {
    width: min(1200px, 94vw);
    max-width: none;
    height: min(900px, 90dvh);
    max-height: none;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(20, 56, 45, 0.16);
    border-radius: 18px;
    background: var(--surface, #fff);
    box-shadow: 0 24px 80px rgba(11, 42, 32, 0.3);
}

.mini-league-profile-dialog[open] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.mini-league-profile-dialog::backdrop {
    background: rgba(8, 29, 23, 0.58);
    backdrop-filter: blur(3px);
}

.mini-league-profile-dialog__header {
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(20, 56, 45, 0.1);
    background: #fff;
}

.mini-league-profile-dialog__header h2,
.mini-league-profile-dialog__header p {
    margin: 0;
}

.mini-league-profile-dialog__close {
    flex: 0 0 auto;
}

.mini-league-profile-dialog .mini-league-profile-host {
    overflow-y: auto;
    overscroll-behavior: contain;
}

.mini-league-profile-dialog .mini-league-profile {
    min-height: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.mini-league-profile-loading {
    display: grid;
    min-height: 240px;
    place-items: center;
    padding: 24px;
    color: var(--muted);
    text-align: center;
}

.mini-league-profile-empty {
    padding: 18px;
    text-align: center;
}

.mini-league-profile__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mini-league-profile__grid > section {
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(20, 56, 45, 0.1);
    border-radius: 12px;
}

.mini-league-profile__wide {
    grid-column: 1 / -1;
}

.mini-league-leadership {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(20, 56, 45, 0.1);
    border-radius: 10px;
    background: rgba(20, 56, 45, 0.08);
}

.mini-league-leadership > div {
    display: grid;
    grid-template-columns: 68px repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 7px 9px;
    background: var(--surface, #fff);
    font-size: 0.82rem;
}

.mini-league-leadership__head {
    color: var(--muted);
}

.mini-league-leadership span,
.mini-league-leadership strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.mini-league-leadership__effective {
    padding: 4px 6px;
    border-radius: 7px;
    background: rgba(62, 189, 140, 0.16);
    box-shadow: inset 3px 0 #1f875f;
}

.mini-league-leadership__effective strong {
    display: block;
    margin-top: 2px;
    color: #175e46;
    font-size: 0.72rem;
}

.mini-league-hit-strategy {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: 10px;
}

.mini-league-hit-strategy > div {
    display: grid;
    gap: 3px;
    padding: 8px 9px;
    border-radius: 8px;
    background: rgba(20, 56, 45, 0.05);
}

.mini-league-hit-strategy span {
    color: var(--muted);
    font-size: 0.72rem;
}

.mini-league-hit-strategy strong {
    font-size: 0.82rem;
}

.mini-league-chip-matrix-wrap {
    overflow-x: auto;
}

.mini-league-chip-matrix {
    width: 100%;
    border-collapse: separate;
    border-spacing: 5px;
    text-align: center;
}

.mini-league-chip-matrix th {
    color: var(--muted);
    font-size: 0.72rem;
    white-space: nowrap;
}

.mini-league-chip-matrix td {
    min-width: 78px;
}

.mini-league-chip-badge {
    display: block;
    padding: 6px 8px;
    border: 1px solid rgba(31, 135, 95, 0.22);
    border-radius: 8px;
    background: rgba(62, 189, 140, 0.14);
    color: #175e46;
    font-size: 0.74rem;
    font-weight: 700;
    white-space: nowrap;
}

.mini-league-chip-badge--empty {
    border-color: transparent;
    background: rgba(20, 56, 45, 0.04);
    color: var(--muted);
    font-weight: 400;
}

.mini-league-head-to-head-signals {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.mini-league-head-to-head-signals > div {
    display: grid;
    align-content: start;
    gap: 6px;
    min-width: 0;
    padding: 10px;
    border-radius: 10px;
    background: rgba(20, 56, 45, 0.04);
}

.mini-league-head-to-head-signals h4,
.mini-league-head-to-head-signals p {
    margin: 0;
}

.mini-league-head-to-head-signals > div > span {
    padding: 5px 7px;
    border-radius: 7px;
    background: #fff;
    font-size: 0.78rem;
}

.mini-league-trend-chart {
    position: relative;
    min-width: 0;
    border-radius: 10px;
    outline: none;
}

.mini-league-trend-chart:focus-visible {
    box-shadow: 0 0 0 3px rgba(31, 135, 95, 0.24);
}

.mini-league-trend-chart__svg {
    display: block;
    width: 100%;
    min-height: 200px;
}

.mini-league-trend-chart__grid {
    stroke: rgba(20, 56, 45, 0.12);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.mini-league-trend-chart__axis-label {
    fill: var(--muted);
    font-size: 11px;
}

.mini-league-trend-chart__user-line,
.mini-league-trend-chart__rival-line {
    fill: none;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.mini-league-trend-chart__user-line { stroke: #1f875f; }
.mini-league-trend-chart__rival-line { stroke: #7d55c7; }

.mini-league-trend-chart__hover-line {
    display: none;
    stroke: rgba(20, 56, 45, 0.5);
    stroke-width: 1;
    stroke-dasharray: 4 3;
    vector-effect: non-scaling-stroke;
}

.mini-league-trend-chart__user-marker,
.mini-league-trend-chart__rival-marker {
    display: none;
    stroke: #fff;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.mini-league-trend-chart__user-marker { fill: #1f875f; }
.mini-league-trend-chart__rival-marker { fill: #7d55c7; }

.mini-league-trend-chart.is-inspecting .mini-league-trend-chart__hover-line,
.mini-league-trend-chart.is-inspecting .mini-league-trend-chart__user-marker:not(.is-missing),
.mini-league-trend-chart.is-inspecting .mini-league-trend-chart__rival-marker:not(.is-missing) {
    display: block;
}

.mini-league-trend-chart__legend {
    display: flex;
    justify-content: center;
    gap: 16px;
    font-size: 0.82rem;
}

.mini-league-trend-chart__legend span::before {
    display: inline-block;
    width: 18px;
    height: 3px;
    margin-right: 6px;
    vertical-align: middle;
    border-radius: 999px;
    content: "";
}

.mini-league-trend-chart__legend-user::before { background: #1f875f; }
.mini-league-trend-chart__legend-rival::before { background: #7d55c7; }

.mini-league-trend-chart__tooltip {
    position: absolute;
    z-index: 2;
    top: 8px;
    display: none;
    min-width: 150px;
    padding: 8px 10px;
    border: 1px solid rgba(20, 56, 45, 0.14);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 8px 24px rgba(20, 56, 45, 0.14);
    transform: translateX(-50%);
    pointer-events: none;
}

.mini-league-trend-chart.is-inspecting .mini-league-trend-chart__tooltip {
    display: grid;
    gap: 2px;
}

.mini-league-trend-chart__tooltip span,
.mini-league-trend-chart__hint {
    color: var(--muted);
    font-size: 0.78rem;
}

.mini-league-trend-chart__hint {
    margin: 6px 0 0;
    text-align: center;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.mini-league-table-wrap {
    overflow-x: auto;
}

.mini-league-rival-cards {
    display: none;
}

.mini-league-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}

.mini-league-table th,
.mini-league-table td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(20, 56, 45, 0.1);
    text-align: left;
    vertical-align: top;
}

.mini-league-table th {
    color: var(--muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.mini-league-table td span {
    display: block;
    color: var(--muted);
    font-size: 0.86rem;
    margin-top: 2px;
}

.mini-league-exposure-list {
    display: grid;
    gap: 10px;
}

.mini-league-exposure,
.rival-impact {
    display: grid;
    gap: 8px;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid rgba(20, 56, 45, 0.12);
    background: rgba(255, 255, 255, 0.62);
}

.mini-league-exposure span,
.rival-impact__top span {
    color: var(--muted);
    font-size: 0.88rem;
}

.mini-league-exposure__counts,
.rival-impact__counts,
.rival-impact-threat-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.mini-league-exposure__counts span,
.rival-impact__counts span,
.rival-impact-threat-list span {
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(14, 143, 89, 0.1);
    color: var(--primary-strong);
    font-size: 0.78rem;
    font-weight: 700;
}

.rival-impact-panel {
    grid-column: 1 / -1;
    grid-row: 2;
    display: grid;
    gap: 12px;
    align-self: start;
}

.rival-impact-list {
    display: grid;
    gap: 10px;
}

.rival-impact__top {
    display: grid;
    gap: 2px;
}

.rival-impact-threats {
    display: grid;
    gap: 8px;
}

.rival-impact-threats h4 {
    font-size: 0.96rem;
}

.planner-league-signals {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
}

.planner-league-signal {
    min-width: 0;
    padding: 10px;
    border-radius: 12px;
    background: rgba(14, 143, 89, 0.06);
}

.planner-league-signal h4 {
    margin-bottom: 7px;
    font-size: 0.88rem;
}

.planner-league-signal__players {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(145px, 100%), 1fr));
    gap: 6px;
}

.mini-league-exposure--compact {
    position: relative;
    gap: 4px;
    padding: 6px 8px;
    border-radius: 10px;
    cursor: help;
}

.mini-league-exposure--compact strong {
    font-size: 0.82rem;
}

.mini-league-exposure--compact > div > span {
    font-size: 0.72rem;
}

.mini-league-exposure--compact .mini-league-exposure__counts {
    gap: 4px;
}

.mini-league-exposure--compact .mini-league-exposure__counts span {
    padding: 3px 5px;
    font-size: 0.68rem;
}

.planner-player-stats {
    position: absolute;
    z-index: 20;
    left: 50%;
    bottom: calc(100% + 8px);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 12px;
    width: min(280px, 80vw);
    padding: 10px;
    border-radius: 10px;
    background: var(--text);
    color: white;
    transform: translateX(-50%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    box-shadow: 0 10px 24px rgba(20, 56, 45, 0.2);
}

.planner-player-stats > strong {
    grid-column: 1 / -1;
    font-size: 0.76rem;
    line-height: 1.3;
}

.planner-player-stats span {
    display: flex;
    justify-content: space-between;
    gap: 6px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.72rem;
}

.planner-player-stats b {
    color: white;
}

.mini-league-exposure--compact:hover .planner-player-stats,
.mini-league-exposure--compact:focus-visible .planner-player-stats {
    opacity: 1;
    visibility: visible;
}

.rival-threat {
    position: relative;
    cursor: help;
}

.rival-threat__tooltip {
    position: absolute;
    z-index: 10;
    left: 50%;
    bottom: calc(100% + 8px);
    width: min(260px, 80vw);
    padding: 9px 11px;
    border-radius: 10px;
    background: var(--text);
    color: white;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    transform: translateX(-50%);
    opacity: 0;
    pointer-events: none;
}

.rival-threat:hover .rival-threat__tooltip,
.rival-threat:focus-visible .rival-threat__tooltip {
    opacity: 1;
}

.comparison-summary {
    display: grid;
}

.comparison-detail-panel {
    min-width: 0;
    display: grid;
    align-self: stretch;
}

.comparison-fixture-report {
    display: grid;
    gap: 16px;
    height: 100%;
    padding: 18px;
    align-content: start;
}

.comparison-fixture-report__header {
    display: grid;
    gap: 10px;
}

.comparison-fixture-report__header h2 {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.15;
}

.comparison-fixture-report__body {
    display: grid;
    gap: 16px;
}

.comparison-fixture-report__meta {
    display: grid;
    gap: 4px;
}

.comparison-fixture-report__meta h2 {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.15;
}

.comparison-fixture-section {
    display: grid;
    gap: 8px;
}

.comparison-fixture-section h3 {
    margin: 0;
    font-size: 0.98rem;
}

.comparison-mini-table-wrap {
    overflow-x: auto;
}

.comparison-mini-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
    table-layout: auto;
}

.comparison-mini-table th,
.comparison-mini-table td {
    padding: 6px 7px;
    border: 1px solid rgba(20, 56, 45, 0.08);
    text-align: center;
    white-space: nowrap;
}

.comparison-mini-table th {
    background: rgba(42, 14, 50, 0.96);
    color: #fff8ff;
    font-weight: 700;
}

.comparison-mini-table td {
    background: rgba(255, 255, 255, 0.58);
}

.comparison-difficulty {
    display: block;
    min-width: 34px;
    padding: 3px 6px;
    border-radius: 6px;
    font-weight: 800;
}

.comparison-summary__card {
    padding: 20px;
}

.comparison-summary__headline {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: start;
    margin-bottom: 12px;
}

.comparison-summary__signals,
.comparison-summary__notes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.comparison-summary__notes {
    margin-bottom: 18px;
}

.comparison-signal {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(20, 56, 45, 0.06);
    border: 1px solid var(--line);
    font-size: 0.92rem;
    font-weight: 600;
}

.comparison-summary__players {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}

.comparison-player {
    position: relative;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.6);
}

.comparison-player__tag {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin-bottom: 10px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(14, 143, 89, 0.12);
    color: var(--primary-strong);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.comparison-player__tag--alt {
    background: rgba(227, 179, 65, 0.18);
    color: #8a5d00;
}

.comparison-player h3 {
    margin-bottom: 8px;
}

.comparison-table th:first-child,
.comparison-table td:first-child {
    width: 28%;
}

.summary__lines {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: flex-start;
}

.summary__lines--filled {
    margin-top: 2px;
}

.transfer-line {
    display: inline-grid;
    gap: 3px;
    width: fit-content;
    max-width: 100%;
    padding: 8px 9px;
    border-radius: 12px;
    background: rgba(20, 56, 45, 0.04);
}

.transfer-line__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.transfer-line__slot,
.transfer-line__prices {
    font-size: 0.74rem;
    color: var(--muted);
}

.transfer-line__players {
    font-size: 0.84rem;
    line-height: 1.15;
}

.transfer-line__undo {
    margin: 0;
}

.transfer-line__undo-button {
    width: 17px;
    height: 17px;
    box-shadow: none;
    background: rgba(255, 255, 255, 0.14);
}

.transfer-line__undo-button svg {
    width: 10px;
    height: 10px;
}

.card__header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: start;
    margin-bottom: 18px;
}

.card__header--stack {
    align-items: start;
}

.card__header--compact {
    margin-bottom: 12px;
}

.pitch-header {
    display: grid;
    gap: 18px;
    margin-bottom: 0;
}

.pitch-header__overview {
    display: grid;
    gap: 18px;
    width: 100%;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 1fr);
    align-items: start;
}

.pitch-header__actions {
    width: 100%;
    justify-content: flex-start;
    align-items: center;
}

.pitch-header__actions--compact {
    gap: 8px;
    flex-wrap: nowrap;
}

.pitch__top {
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    margin-bottom: 18px;
}

.pitch__controls {
    display: grid;
    gap: 10px;
    align-content: start;
    padding-top: 12px;
    border-top: 1px solid rgba(20, 56, 45, 0.12);
}

.pitch__controls-label {
    margin: 0;
}

.workspace-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(12, 25, 20, 0.46);
}

.workspace-modal {
    width: min(100%, 480px);
    box-shadow: 0 24px 60px rgba(12, 25, 20, 0.28);
}

.workspace-modal--confirm {
    background: rgba(255, 252, 244, 0.98);
    border: 1px solid rgba(227, 179, 65, 0.38);
    color: var(--text);
}

.workspace-modal--confirm .eyebrow {
    color: #8a5d00;
}

.workspace-modal--confirm h3 {
    color: #1b2f24;
}

.workspace-modal--confirm .summary__note {
    color: rgba(27, 47, 36, 0.78);
}

.workspace-modal--notice {
    background: rgba(255, 252, 244, 0.98);
    border: 1px solid rgba(20, 56, 45, 0.12);
    color: var(--text);
}

.workspace-modal--notice .summary__note {
    color: rgba(27, 47, 36, 0.78);
}

.workspace-modal__topline {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.workspace-modal__close {
    flex: 0 0 auto;
}

.workspace-modal--chips {
    width: min(100%, 920px);
    background: rgba(255, 252, 244, 0.98);
    border: 1px solid rgba(20, 56, 45, 0.12);
    color: var(--text);
}

.workspace-modal--chips .summary__note {
    color: rgba(27, 47, 36, 0.78);
}

.workspace-modal--leadership {
    width: min(100%, 420px);
    background: rgba(255, 252, 244, 0.98);
    border: 1px solid rgba(20, 56, 45, 0.12);
    color: var(--text);
}

.workspace-modal__actions {
    justify-content: flex-end;
}

.workspace-modal__leadership-actions {
    display: grid;
    gap: 18px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.workspace-modal__leadership-actions form {
    margin: 0;
}

.pitch-header__timeline {
    display: grid;
    gap: 10px;
}

.workspace__overview-summary {
    align-content: start;
}

.workspace__overview-summary .summary__lines {
    gap: 8px;
}

.pitch__summary {
    display: grid;
    gap: 10px;
    width: 100%;
}

.pitch__summary-header {
    margin-bottom: 0;
}

.pitch-header__timeline .eyebrow {
    margin-bottom: 0;
}

.timeline__note {
    margin: -4px 0 0;
    font-size: 0.84rem;
    line-height: 1.3;
}

.workspace__grid > .pitch {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
}

.catalog-column {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    min-height: 0;
}

.catalog-column > .card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.week-summary-panel {
    display: grid;
    gap: 12px;
    width: 100%;
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
}

.week-summary-panel .summary-card__header {
    margin-bottom: 0;
}

.week-summary-panel .summary__notes {
    gap: 8px;
}

.week-summary-panel__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}

.week-summary-panel h4 {
    font-size: 1rem;
}

.week-summary-panel--compact {
    gap: 10px;
}

.week-summary-panel--compact .summary-card__header {
    margin-bottom: 0;
}

.week-summary-panel--compact .summary__grid {
    gap: 10px;
}

.week-summary-panel--compact .summary__grid > div {
    display: grid;
    gap: 4px;
    grid-template-rows: minmax(1.8rem, auto) auto;
    align-content: start;
}

.week-summary-panel--compact .summary__grid strong {
    font-size: 1.05rem;
}

.week-summary-panel--compact .summary__label {
    font-size: 0.76rem;
    line-height: 1.15;
    margin-bottom: 0;
    min-height: calc(2 * 1.15em);
}

.week-summary-panel--compact .summary__note {
    font-size: 0.88rem;
}

.pitch__surface {
    position: relative;
    display: grid;
    gap: 20px;
    padding: 22px 20px;
    min-height: 580px;
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(10, 108, 58, 0.92), rgba(7, 83, 45, 0.94)),
        repeating-linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.03) 0,
            rgba(255, 255, 255, 0.03) 48px,
            rgba(255, 255, 255, 0.01) 48px,
            rgba(255, 255, 255, 0.01) 96px
        );
    overflow: visible;
}

.pitch__surface::before {
    content: "";
    position: absolute;
    inset: 20px;
    border: 2px solid rgba(255, 255, 255, 0.16);
    border-radius: 20px;
    pointer-events: none;
    z-index: 0;
}

.board-share-capture--export {
    width: 1080px;
    padding: 24px;
    border-radius: 28px;
    background:
        radial-gradient(circle at top left, rgba(227, 179, 65, 0.22), transparent 28%),
        radial-gradient(circle at top right, rgba(14, 143, 89, 0.2), transparent 34%),
        linear-gradient(180deg, #f8f5ec 0%, #eef6e9 100%);
}

.board-share-capture--export .pitch__surface {
    min-height: 660px;
}

.board-share-capture--export .pitch__row {
    gap: 10px;
}

.board-share-capture--export .pitch__board,
.board-share-capture--export .pitch__board-logo {
    display: inline-grid;
    visibility: visible;
    opacity: 1;
}

.board-share-capture--export .shirt-card {
    width: min(164px, calc((100% - 40px) / 5));
    padding: 12px 12px 14px;
    border-radius: 24px;
}

.board-share-capture--export .shirt {
    width: 76px;
    height: 90px;
}

.board-share-capture--export .shirt-card__top {
    min-height: 92px;
}

.board-share-capture--export .shirt-card__body {
    min-height: 72px;
    font-size: 0.84rem;
}

.board-share-capture--export .shirt-card__body strong {
    font-size: 0.94rem;
}

.board-share-capture--export .bench__row {
    gap: 14px;
    grid-template-columns: repeat(4, minmax(148px, 1fr));
}

.board-share-capture--export .shirt-card__controls,
.board-share-capture--export .shirt-card__select,
.board-share-capture--export .shirt-card__leadership-form {
    display: none !important;
}

.board-share-capture--export .shirt-card--captaincy-selectable {
    cursor: default;
}

.board-share-capture--export .shirt-card--captaincy-selectable:hover {
    transform: none;
    background: linear-gradient(180deg, rgba(52, 146, 113, 0.78), rgba(47, 179, 133, 0.74));
    border-color: rgba(255, 255, 255, 0.3);
    box-shadow: 0 18px 30px rgba(0, 0, 0, 0.26);
}

.board-share-export-stage {
    position: fixed;
    left: -10000px;
    top: 0;
    pointer-events: none;
    opacity: 0;
    z-index: -1;
}

.pitch__markings {
    position: absolute;
    inset: 20px;
    pointer-events: none;
    z-index: 0;
}

.pitch__branding {
    position: absolute;
    inset: 20px;
    pointer-events: none;
    z-index: 2;
}

.pitch__line,
.pitch__circle,
.pitch__spot,
.pitch__box,
.pitch__arc,
.pitch__board {
    position: absolute;
    pointer-events: none;
}

.pitch__board {
    display: inline-grid;
    place-items: center;
    padding: 4px 8px;
    border-radius: 6px;
    border: 1px solid rgba(255, 255, 255, 0.34);
    background: linear-gradient(180deg, rgba(70, 11, 78, 0.98), rgba(53, 7, 60, 1));
    box-shadow: 0 3px 8px rgba(7, 20, 15, 0.26);
}

.pitch__board-logo {
    display: block;
    width: 74px;
    height: auto;
}

.pitch__line--halfway {
    left: 0;
    right: 0;
    top: 50%;
    height: 0;
    border-top: 2px solid rgba(255, 255, 255, 0.16);
}

.pitch__circle {
    top: 50%;
    left: 50%;
    width: 110px;
    height: 110px;
    transform: translate(-50%, -50%);
    border: 2px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
}

.pitch__spot {
    width: 8px;
    height: 8px;
    margin-left: -4px;
    margin-top: -4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.2);
}

.pitch__spot--center {
    left: 50%;
    top: 50%;
}

.pitch__spot--top-penalty,
.pitch__spot--bottom-penalty {
    left: 50%;
}

.pitch__spot--top-penalty {
    top: 16%;
}

.pitch__spot--bottom-penalty {
    top: 84%;
}

.pitch__box {
    left: 50%;
    transform: translateX(-50%);
    border: 2px solid rgba(255, 255, 255, 0.16);
    border-radius: 0 0 14px 14px;
}

.pitch__box--top-penalty {
    top: 0;
    width: min(58%, 330px);
    height: 18%;
    border-top: 0;
}

.pitch__box--bottom-penalty {
    bottom: 0;
    width: min(58%, 330px);
    height: 18%;
    border-top: 2px solid rgba(255, 255, 255, 0.16);
    border-bottom: 0;
    border-radius: 14px 14px 0 0;
}

.pitch__box--top-six {
    top: 0;
    width: min(28%, 150px);
    height: 8%;
    border-top: 0;
    border-radius: 0 0 10px 10px;
}

.pitch__box--bottom-six {
    bottom: 0;
    width: min(28%, 150px);
    height: 8%;
    border-top: 2px solid rgba(255, 255, 255, 0.16);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
}

.pitch__arc {
    left: 50%;
    width: 84px;
    height: 42px;
    transform: translateX(-50%);
    border: 2px solid rgba(255, 255, 255, 0.16);
}

.pitch__arc--top {
    top: 13.5%;
    border-top: 0;
    border-left-color: transparent;
    border-right-color: transparent;
    border-bottom-left-radius: 42px;
    border-bottom-right-radius: 42px;
}

.pitch__arc--bottom {
    bottom: 13.5%;
    border-bottom: 0;
    border-left-color: transparent;
    border-right-color: transparent;
    border-top-left-radius: 42px;
    border-top-right-radius: 42px;
}

.pitch__board--top-left,
.pitch__board--top-right {
    top: 2px;
}

.pitch__board--bottom-left,
.pitch__board--bottom-right {
    bottom: 2px;
}

.pitch__board--top-left,
.pitch__board--bottom-left {
    left: clamp(12px, 6vw, 50px);
}

.pitch__board--top-right,
.pitch__board--bottom-right {
    right: clamp(12px, 6vw, 50px);
}

.pitch__row {
    display: flex;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 8px;
    position: relative;
    z-index: 1;
}

.shirt-card {
    position: relative;
    width: min(144px, calc((100% - 32px) / 5));
    padding: 10px 10px 12px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(52, 146, 113, 0.78), rgba(47, 179, 133, 0.74));
    border: 2px solid rgba(255, 255, 255, 0.3);
    color: #f7fff8;
    box-shadow: 0 18px 30px rgba(0, 0, 0, 0.26);
    backdrop-filter: blur(6px);
    min-width: 0;
}

.shirt-card--captaincy-selectable,
.shirt-card--bench {
    transition: transform 180ms ease, background 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.shirt-card--captaincy-selectable {
    cursor: pointer;
}

.shirt-card--captaincy-selectable:hover,
.shirt-card--bench:hover {
    transform: translateY(-2px);
    background: linear-gradient(180deg, rgba(47, 118, 92, 0.82), rgba(32, 89, 69, 0.78));
    border-color: rgba(227, 179, 65, 0.44);
    box-shadow: 0 22px 34px rgba(0, 0, 0, 0.22);
}

.shirt-card--captaincy-selectable:focus-visible {
    outline: 2px solid rgba(227, 179, 65, 0.72);
    outline-offset: 3px;
}

.shirt-card__leadership-form {
    display: none;
}

.shirt-card__top {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    min-height: 82px;
    margin-bottom: 12px;
}

.shirt-card--open {
    background: rgba(88, 99, 94, 0.38);
    border-style: dashed;
}

.shirt-card--warning {
    border-color: rgba(255, 255, 255, 0.22);
    box-shadow: 0 18px 30px rgba(0, 0, 0, 0.18);
}

.shirt-card--bench {
    color: #f7fff8;
}

.shirt-card--swap-origin {
    border-color: rgba(227, 179, 65, 0.9);
    box-shadow: 0 0 0 2px rgba(227, 179, 65, 0.28), 0 18px 30px rgba(0, 0, 0, 0.18);
}

.shirt-card--swap-target {
    border-color: rgba(114, 227, 168, 0.82);
    box-shadow: 0 0 0 2px rgba(114, 227, 168, 0.2), 0 18px 30px rgba(0, 0, 0, 0.18);
}

.shirt-card--selected {
    border-color: rgba(227, 179, 65, 0.92);
    box-shadow: 0 0 0 2px rgba(227, 179, 65, 0.24), 0 18px 30px rgba(0, 0, 0, 0.18);
}

.shirt {
    position: relative;
    width: 68px;
    height: 80px;
    flex-shrink: 0;
}

.shirt__svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
    filter: drop-shadow(0 7px 10px rgba(9, 18, 14, 0.2));
}

.shirt__outline {
    fill: none;
    stroke: rgba(17, 32, 25, 0.24);
    stroke-width: 1.4;
    stroke-linejoin: round;
}

.shirt__seam {
    fill: none;
    stroke: rgba(255, 255, 255, 0.32);
    stroke-width: 1.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.shirt__badge {
    stroke: rgba(17, 32, 25, 0.12);
    stroke-width: 0.8;
}

.shirt__badge-text {
    font-family: var(--font-heading);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.shirt__armband-text {
    font-family: var(--font-heading);
    font-size: 4.4px;
    font-weight: 800;
    letter-spacing: 0.35px;
    text-transform: uppercase;
}

.shirt-card__headline {
    display: inline-flex;
    align-items: flex-start;
    gap: 6px;
}

.shirt-card__availability-warning {
    position: relative;
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.18);
    border: 1px solid rgba(230, 126, 34, 0.4);
    color: #c35a11;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
    flex-shrink: 0;
    cursor: help;
}

.shirt-card__availability-warning--yellow {
    background: #e3b341;
    border-color: #e3b341;
    color: #ffffff;
}

.shirt-card__availability-warning--red {
    background: #cc4c43;
    border-color: #cc4c43;
    color: #ffffff;
}

.shirt-card__availability-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    transform: translateX(-50%);
    width: max-content;
    max-width: 180px;
    padding: 8px 10px;
    border-radius: 10px;
    background: rgba(20, 56, 45, 0.96);
    color: #f7fbf8;
    font-size: 0.74rem;
    font-weight: 600;
    line-height: 1.3;
    box-shadow: 0 10px 22px rgba(12, 24, 20, 0.2);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 120ms ease, visibility 120ms ease;
    z-index: 5;
    white-space: normal;
}

.shirt-card__availability-tooltip::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-style: solid;
    border-width: 6px 6px 0 6px;
    border-color: rgba(20, 56, 45, 0.96) transparent transparent transparent;
}

.shirt-card__availability-warning:hover .shirt-card__availability-tooltip,
.shirt-card__availability-warning:focus-visible .shirt-card__availability-tooltip {
    opacity: 1;
    visibility: visible;
}

.shirt-card__body {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 3px;
    min-height: 64px;
    font-size: 0.8rem;
    justify-items: stretch;
}

.shirt-card__body strong {
    font-size: 0.88rem;
    line-height: 1.15;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.24);
}

.shirt-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(247, 255, 248, 0.86);
}

.shirt-card__select {
    margin-top: 8px;
}

.shirt-card__select .button--table {
    width: 100%;
    min-width: 0;
    padding: 8px 10px;
}

.shirt-card__tags {
    display: flex;
    gap: 6px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.shirt-card__fixtures {
    display: flex;
    justify-content: center;
    gap: 3px;
    margin-top: 8px;
    align-items: start;
    width: calc(100% + 12px);
    margin-left: -6px;
    margin-right: -6px;
}

.fixture-block {
    display: grid;
    gap: 2px;
    place-content: center;
    place-items: center;
    flex: 1 1 0;
    max-width: calc((100% - 6px) / 3);
    min-width: 0;
    min-height: 42px;
    padding: 4px 3px;
    border-radius: 10px;
    background: rgba(7, 22, 17, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.16);
    text-align: center;
}

.shirt-card--bench .fixture-block {
    background: rgba(20, 56, 45, 0.06);
    border-color: rgba(20, 56, 45, 0.08);
}

.fixture-block__event {
    display: block;
    width: 100%;
    font-size: 0.46rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: inherit;
    opacity: 0.84;
    text-align: center;
}

.fixture-block__items {
    display: grid;
    gap: 2px;
    align-content: center;
    justify-items: center;
    width: 100%;
}

.fixture-item {
    display: block;
    min-width: 0;
    width: 100%;
    padding: 1px 2px;
    border-radius: 6px;
    font-size: 0.46rem;
    line-height: 1.05;
    text-align: center;
    font-weight: 700;
    color: #173626;
    white-space: nowrap;
}

.fixture-item--difficulty-1 {
    background: #27c46a;
}

.fixture-item--difficulty-2 {
    background: #84db7a;
}

.fixture-item--difficulty-3 {
    background: #f0d36a;
}

.fixture-item--difficulty-4 {
    background: #f1a34f;
}

.fixture-item--difficulty-5 {
    background: #df6658;
    color: #fff8f7;
}

.tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 0.72rem;
    font-weight: 700;
}

.shirt-card__remove {
    flex: 0 0 auto;
}

.shirt-card__controls {
    display: grid;
    justify-items: end;
    gap: 6px;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 3;
}

.shirt-card__controls form {
    margin: 0;
}

.shirt-card__status-tags {
    display: grid;
    gap: 4px;
    justify-items: end;
    margin-top: 2px;
}

.shirt-card__remove .button-icon {
    width: 24px;
    height: 24px;
    background: rgba(255, 255, 255, 0.18);
    color: var(--danger);
}

.shirt-card__remove .button-icon svg {
    width: 12px;
    height: 12px;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

.shirt-card__remove .button-icon:not(:disabled):hover {
    background: rgba(255, 255, 255, 0.3);
    color: #c73f34;
}

.shirt-card__controls .button-icon--swap {
    width: 24px;
    height: 24px;
}

.shirt-card__controls .button-icon--swap svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    stroke-width: 2.1;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

.button-icon--undo {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(0, 0, 0, 0.65);
    box-shadow: 0 6px 14px rgba(249, 249, 249, 0.14);
    color: #7a7f7c;
}

.button-icon--undo:not(:disabled):hover {
    background: rgba(255, 255, 255, 0.28);
    color: #5c615e;
}

.button-icon--undo svg {
    display: block;
    width: 14px;
    height: 14px;
    stroke: #000000;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

.shirt-card__status-tags .tag {
    min-width: 24px;
    min-height: 24px;
    padding: 0 6px;
    font-size: 0.68rem;
}

.shirt-card:hover,
.shirt-card:focus-within {
    z-index: 6;
}

.bench {
    margin-top: 18px;
}

.bench__title {
    font-family: var(--font-heading);
    color: #f7fff8;
    margin-bottom: 10px;
}

.bench__row {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    padding: 16px;
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(10, 108, 58, 0.88), rgba(7, 83, 45, 0.9)),
        repeating-linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.03) 0,
            rgba(255, 255, 255, 0.03) 48px,
            rgba(255, 255, 255, 0.01) 48px,
            rgba(255, 255, 255, 0.01) 96px
        );
    border: 2px solid rgba(255, 255, 255, 0.18);
}

.bench__row .shirt-card {
    width: 100%;
}

.filters {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 16px;
}

.table-wrap {
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow-x: auto;
    overflow-y: auto;
}

.catalog-column .table-wrap {
    flex: 1;
    height: 100%;
    max-height: none;
}

.catalog-column .filters {
    grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(108px, 0.8fr));
    gap: 10px;
    align-items: end;
}

.catalog-column .filters .field {
    gap: 6px;
}

.catalog-column .filters .field span {
    font-size: 0.78rem;
}

.catalog-column .filters input,
.catalog-column .filters select {
    padding: 10px 11px;
    font-size: 0.9rem;
}

.catalog-column .player-table {
    font-size: 0.9rem;
}

.catalog-column .player-table th,
.catalog-column .player-table td {
    padding: 10px 8px;
}

.player-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.player-table th,
.player-table td {
    padding: 12px 10px;
    border-bottom: 1px solid rgba(20, 56, 45, 0.08);
    text-align: left;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.player-table th {
    position: sticky;
    top: 0;
    background: var(--panel-strong);
    z-index: 1;
}

.player-table__sort {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
}

.player-table__sort:hover {
    color: var(--primary-strong);
}

.player-table__sort-indicator {
    min-width: 0.8em;
    color: var(--primary-strong);
}

.player-table th:nth-child(1),
.player-table td:nth-child(1) {
    width: 33%;
}

.player-table th:nth-child(2),
.player-table td:nth-child(2) {
    width: 10%;
}

.player-table th:nth-child(3),
.player-table td:nth-child(3) {
    width: 10%;
}

.player-table th:nth-child(4),
.player-table td:nth-child(4) {
    width: 13%;
}

.player-table th:nth-child(5),
.player-table td:nth-child(5) {
    width: 24%;
}

.player-table th:nth-child(6),
.player-table td:nth-child(6) {
    width: 10%;
    padding-left: 4px;
    padding-right: 4px;
}

.player-table td form {
    width: 100%;
}

.player-table__name {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
    overflow-wrap: normal;
    word-break: normal;
}

.player-table__player-name {
    display: -webkit-box;
    min-width: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-height: 1.2;
    hyphens: manual;
    overflow-wrap: anywhere;
}

.player-table__name .shirt-card__availability-tooltip {
    left: 0;
    transform: none;
}

.player-table__name .shirt-card__availability-tooltip::after {
    left: 10px;
    transform: none;
}

.player-table__action-form {
    display: flex;
    justify-content: center;
}

.player-table__action {
    position: relative;
    display: inline-flex;
    justify-content: center;
}

.player-table__action--disabled {
    cursor: help;
}

.player-table__action--disabled:focus-visible {
    outline: 2px solid rgba(14, 143, 89, 0.28);
    outline-offset: 3px;
    border-radius: 999px;
}

.player-table__tooltip {
    position: absolute;
    right: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    width: max-content;
    max-width: 220px;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(20, 56, 45, 0.96);
    color: #f7fbf8;
    font-size: 0.78rem;
    line-height: 1.35;
    box-shadow: 0 10px 22px rgba(12, 24, 20, 0.2);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 180ms ease, visibility 180ms ease;
    z-index: 3;
}

.player-table__tooltip::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -6px;
    transform: translateY(-50%);
    border-style: solid;
    border-width: 6px 0 6px 6px;
    border-color: transparent transparent transparent rgba(20, 56, 45, 0.96);
}

.player-table__action--disabled:hover .player-table__tooltip,
.player-table__action--disabled:focus-visible .player-table__tooltip,
.player-table__action--disabled:focus-within .player-table__tooltip {
    opacity: 1;
    visibility: visible;
}

.rules {
    display: grid;
    gap: 10px;
}

.privacy-policy {
    display: grid;
    gap: 22px;
    padding: 28px;
}

.privacy-policy__todo {
    margin: 0;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(227, 179, 65, 0.4);
    background: rgba(227, 179, 65, 0.14);
}

.privacy-policy__section {
    display: grid;
    gap: 10px;
    padding: 18px 20px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.58);
    border: 1px solid rgba(20, 56, 45, 0.08);
}

.privacy-policy__section p,
.privacy-policy__section ul {
    margin: 0;
    color: var(--muted);
}

.privacy-policy__section ul {
    padding-left: 18px;
}

.chip-strip__grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.chip-strip__grid--modal {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.chip-strip__grid--compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.workspace__chips--full {
    margin-top: 18px;
}

.chip-card {
    display: grid;
    gap: 8px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(20, 56, 45, 0.12);
    background: rgba(255, 255, 255, 0.72);
}

.chip-card__set {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--muted);
}

.chip-card--selected {
    border-color: rgba(14, 143, 89, 0.28);
    background: rgba(14, 143, 89, 0.12);
}

.chip-strip__grid--compact .chip-card {
    gap: 6px;
    padding: 10px;
    border-radius: 14px;
}

.chip-strip__grid--compact .chip-card strong {
    font-size: 0.92rem;
}

.chip-strip__grid--compact .button {
    padding: 8px 12px;
}

.shell--narrow {
    width: min(100%, 1080px);
}

.rules-page {
    display: grid;
    gap: 24px;
}

.rules-page__intro {
    display: grid;
    gap: 12px;
}

.rules-page__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.rules-page__grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rules-panel {
    display: grid;
    gap: 10px;
    padding: 20px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.54);
    border: 1px solid rgba(20, 56, 45, 0.08);
}

.rules-panel p,
.rules-panel ul {
    margin: 0;
    color: var(--muted);
}

.rules-panel ul {
    padding-left: 18px;
}

@media (max-width: 1080px) {
    .hero,
    .home-actions,
    .home-manual,
    .workspace__grid,
    .mini-league-dashboard,
    .mini-league-profile__grid,
    .mini-league-signals {
        grid-template-columns: 1fr;
    }

    .rules-page__grid {
        grid-template-columns: 1fr;
    }

    .rival-impact-panel,
    .catalog-column {
        grid-column: auto;
        grid-row: auto;
    }

    .planner-league-signals {
        grid-template-columns: 1fr;
    }

    .mini-league-summary--compact {
        grid-template-columns: 1fr;
    }

    .week-summary-panel__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .summary__top {
        grid-template-columns: 1fr;
    }

    .pitch-header__top {
        grid-template-columns: 1fr;
    }

    .pitch__top {
        grid-template-columns: 1fr;
    }

    .pitch-header__overview {
        grid-template-columns: 1fr;
    }

    .chip-strip__grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }

    .chip-strip__grid--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .chip-strip__grid--modal {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .summary__grid,
    .bench__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .comparison-page__layout {
        grid-template-columns: 1fr;
    }

    .comparison-scout-grid {
        grid-template-columns: 1fr;
    }

    .comparison-chart {
        min-height: 460px;
    }

    .comparison-chart__frame {
        width: min(100%, 460px);
    }

    .comparison-chart__toolbar .comparison-stat-picker {
        grid-template-columns: 1fr;
    }

    .comparison-stat-picker__controls {
        grid-template-columns: 1fr;
    }

    .timeline__tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pitch-header__actions {
        justify-content: flex-start;
    }

    .catalog-column .filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-column .filters .field:first-child {
        grid-column: 1 / -1;
    }

    .pitch__row {
        flex-wrap: wrap;
    }

    .shirt-card {
        width: min(148px, calc((100% - 20px) / 3));
    }
}

@media (min-width: 701px) and (max-width: 1080px) {
    .site-header__inner,
    .site-menu-panel {
        gap: 8px;
    }

    .site-brand__logo {
        height: 44px;
    }

    .site-nav,
    .auth-nav {
        gap: 4px;
        flex-wrap: nowrap;
    }

    .site-nav__link {
        padding: 8px 9px;
        font-size: 0.9rem;
    }

    .auth-nav__link {
        padding: 7px 9px;
        font-size: 0.88rem;
        white-space: nowrap;
    }
}

@media (max-width: 700px) {
    .mini-league-profile__summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mini-league-head-to-head-signals {
        grid-template-columns: 1fr;
    }

    .mini-league-profile-dialog {
        width: calc(100vw - 12px);
        height: calc(100dvh - 12px);
        border-radius: 12px;
    }

    .mini-league-profile-dialog__header {
        padding: 10px 12px;
    }
    .site-brand__logo {
        height: 42px;
    }

    .shell {
        width: min(100vw - 20px, 100%);
        padding-top: 20px;
    }

    .site-footer__inner {
        flex-direction: column;
        align-items: stretch;
    }

    .site-header__inner {
        min-height: 66px;
        padding: 8px 12px;
    }

    .site-header__topline {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        position: relative;
        z-index: 24;
    }

    .site-menu-toggle {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        display: inline-grid;
        place-content: center;
        gap: 5px;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.38);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.1);
        color: #ffffff;
        cursor: pointer;
    }

    .site-menu-toggle:focus-visible {
        outline: 3px solid #ffffff;
        outline-offset: 2px;
    }

    .site-menu-toggle__line {
        width: 21px;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
        transition: transform 180ms ease, opacity 180ms ease;
    }

    .site-menu-toggle[aria-expanded="true"] .site-menu-toggle__line:first-child {
        transform: translateY(7px) rotate(45deg);
    }

    .site-menu-toggle[aria-expanded="true"] .site-menu-toggle__line:nth-child(2) {
        opacity: 0;
    }

    .site-menu-toggle[aria-expanded="true"] .site-menu-toggle__line:last-child {
        transform: translateY(-7px) rotate(-45deg);
    }

    .site-menu-panel {
        position: fixed;
        z-index: 23;
        inset: 0 0 0 auto;
        width: min(88vw, 360px);
        height: 100dvh;
        padding: 84px 18px 24px;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: stretch;
        gap: 24px;
        overflow-y: auto;
        background: linear-gradient(160deg, #572480, #7e3fb0 72%, #512177);
        box-shadow: -18px 0 42px rgba(24, 12, 34, 0.28);
        transform: translateX(105%);
        visibility: hidden;
        transition: transform 180ms ease, visibility 180ms ease;
    }

    .site-menu-open .site-menu-panel {
        transform: translateX(0);
        visibility: visible;
    }

    .site-menu-backdrop {
        position: fixed;
        z-index: 22;
        inset: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(16, 12, 19, 0.48);
        opacity: 0;
        visibility: hidden;
        transition: opacity 180ms ease, visibility 180ms ease;
    }

    .site-menu-open .site-menu-backdrop {
        display: block;
        opacity: 1;
        visibility: visible;
    }

    .site-menu-open {
        overflow: hidden;
    }

    .site-nav,
    .auth-nav {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .site-nav__link,
    .auth-nav__link {
        min-height: 46px;
        display: flex;
        align-items: center;
        padding: 11px 14px;
    }

    .auth-nav {
        padding-top: 20px;
        border-top: 1px solid rgba(255, 255, 255, 0.22);
    }

    .site-footer__nav {
        justify-items: start;
    }

    .hero__copy,
    .load-card,
    .workspace__header,
    .card {
        padding: 18px;
    }

    .home-hero.card {
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
    }

    .home-hero__copy {
        padding: 0 2px;
    }

    .summary__grid {
        grid-template-columns: 1fr;
    }

    .bench__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        padding: 10px;
    }

    .catalog-column .filters {
        grid-template-columns: 1fr;
    }

    .catalog-column .filters .field:first-child {
        grid-column: auto;
    }

    .comparison-summary__players {
        grid-template-columns: 1fr;
    }

    .mini-league-summary__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mini-league-table-wrap {
        display: none;
    }

    .mini-league-rival-cards {
        display: grid;
        gap: 12px;
    }

    .mini-league-rival-card {
        display: grid;
        gap: 14px;
        padding: 14px;
        border: 1px solid rgba(20, 56, 45, 0.12);
        border-radius: 18px;
        background: rgba(255, 255, 255, 0.68);
    }

    .mini-league-rival-card__header {
        display: flex;
        align-items: center;
        gap: 12px;
        min-width: 0;
    }

    .mini-league-rival-card__header > span:last-child {
        display: grid;
        gap: 2px;
        min-width: 0;
    }

    .mini-league-rival-card__header strong,
    .mini-league-rival-card__header small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mini-league-rival-card__header small,
    .mini-league-rival-card__summary small {
        color: var(--muted);
    }

    .mini-league-rival-card__rank {
        min-width: 54px;
        padding: 8px 10px;
        border-radius: 12px;
        background: rgba(14, 143, 89, 0.12);
        color: var(--primary-strong);
        font-weight: 800;
        text-align: center;
    }

    .mini-league-rival-card__summary {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .mini-league-rival-card__summary > span {
        display: grid;
        gap: 4px;
        padding: 9px;
        border-radius: 12px;
        background: rgba(20, 56, 45, 0.05);
    }

    .mini-league-rival-card__details summary {
        min-height: 44px;
        display: flex;
        align-items: center;
        color: var(--primary-strong);
        cursor: pointer;
        font-weight: 700;
    }

    .mini-league-rival-card__details dl {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin: 0 0 12px;
    }

    .mini-league-rival-card__details dl > div {
        display: grid;
        gap: 3px;
    }

    .mini-league-rival-card__details dt {
        color: var(--muted);
        font-size: 0.75rem;
    }

    .mini-league-rival-card__details dd {
        margin: 0;
        font-weight: 700;
    }

    .mini-league-rival-card .button {
        width: 100%;
        min-height: 44px;
    }

    .comparison-report,
    .comparison-summary__headline {
        flex-direction: column;
    }

    .comparison-page {
        padding: 14px;
    }

    .comparison-page__header {
        gap: 12px;
    }

    .comparison-page__intro,
    .comparison-brief {
        flex: 0 0 auto;
    }

    .comparison-brief--method {
        padding: 12px 14px;
    }

    .comparison-scout-grid > .comparison-detail-panel:first-child {
        order: 1;
    }

    .comparison-scout-grid > .comparison-detail-panel:last-child {
        order: 2;
    }

    .comparison-scout-grid__chart {
        order: 3;
    }

    .comparison-chart {
        min-height: 360px;
        padding: 12px;
    }

    .comparison-chart__frame {
        width: min(100%, 320px);
    }

    .comparison-chart__toolbar .comparison-stat-pill {
        min-height: 44px;
    }

    .comparison-table {
        min-width: 0;
        table-layout: auto;
    }

    .comparison-table th,
    .comparison-table td {
        padding: 9px 6px;
        font-size: 0.78rem;
    }

    .week-summary-panel__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .timeline__tabs {
        grid-template-columns: 1fr;
    }

    .workspace__header,
    .card__header {
        flex-direction: column;
    }

    .comparison-brief {
        max-width: none;
        width: 100%;
    }

    .pitch-header__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .pitch-header__actions form,
    .pitch-header__actions .button {
        width: 100%;
    }

    .pitch-header__actions > form:first-child .button {
        background: linear-gradient(135deg, var(--primary), var(--primary-strong));
        color: #ffffff;
    }

    .pitch__controls {
        gap: 10px;
    }

    .workspace-modal-backdrop {
        padding: 16px;
    }

    .workspace-modal__actions {
        justify-content: stretch;
    }

    .chip-strip__grid--modal {
        grid-template-columns: 1fr;
    }

    .pitch__surface {
        min-height: auto;
        padding: 14px 10px;
    }

    .summary__top {
        grid-template-columns: 1fr;
    }

    .chip-strip__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .chip-strip__grid--compact {
        grid-template-columns: 1fr;
    }

    .mobile-planner-toolbar {
        position: sticky;
        top: 74px;
        z-index: 12;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 10px 12px;
        border: 1px solid rgba(20, 56, 45, 0.12);
        border-radius: 16px;
        background: rgba(255, 253, 247, 0.96);
        box-shadow: 0 10px 24px rgba(20, 56, 45, 0.12);
        backdrop-filter: blur(12px);
    }

    .mobile-planner-toolbar > span {
        display: grid;
        gap: 2px;
        min-width: 0;
    }

    .mobile-planner-toolbar small {
        color: var(--muted);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-planner-toolbar .button {
        min-height: 44px;
        padding: 10px 14px;
        white-space: nowrap;
    }

    .pitch__row {
        gap: 8px;
    }

    .shirt-card,
    .bench__row .shirt-card {
        width: min(150px, calc((100% - 8px) / 2));
        padding: 9px;
        border-radius: 18px;
    }

    .shirt-card__top {
        min-height: 76px;
        margin-bottom: 8px;
    }

    .shirt-card__controls {
        gap: 5px;
    }

    .shirt-card__controls .button-icon,
    .shirt-card__remove .button-icon,
    .button-icon--undo {
        width: 40px;
        height: 40px;
        min-width: 40px;
    }

    .shirt-card__controls .button-icon svg,
    .shirt-card__remove .button-icon svg,
    .button-icon--undo svg {
        width: 17px;
        height: 17px;
    }

    .shirt-card__controls form[hx-post="/planner/remove-player"] .button-icon,
    .shirt-card__controls form[hx-post="/planner/select-swap-slot"] .button-icon,
    .shirt-card__controls form[hx-post="/planner/swap-slots"] .button-icon,
    .shirt-card__controls form[hx-post="/planner/clear-swap-slot"] .button-icon {
        width: auto;
        gap: 4px;
        padding: 0 7px;
        font-size: 0.62rem;
        font-weight: 700;
    }

    .shirt-card__controls form[hx-post="/planner/remove-player"] .button-icon::after {
        content: "Transfer";
    }

    .shirt-card__controls form[hx-post="/planner/select-swap-slot"] .button-icon::after,
    .shirt-card__controls form[hx-post="/planner/swap-slots"] .button-icon::after {
        content: "Swap";
    }

    .shirt-card__controls form[hx-post="/planner/clear-swap-slot"] .button-icon::after {
        content: "Cancel";
    }

    .shirt-card--captaincy-selectable .shirt-card__body::after {
        content: "Captain options";
        margin-top: 6px;
        padding: 5px 7px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.16);
        color: #ffffff;
        font-size: 0.66rem;
        font-weight: 700;
        text-align: center;
    }

    .shirt-card__fixtures {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }

    .fixture-block {
        min-height: 38px;
        padding: 3px 2px;
    }

    .fixture-item,
    .fixture-block__event {
        font-size: 0.5rem;
    }

    .player-drawer-backdrop {
        position: fixed;
        z-index: 39;
        inset: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(12, 24, 20, 0.52);
        opacity: 0;
        visibility: hidden;
        transition: opacity 180ms ease, visibility 180ms ease;
    }

    .player-drawer-open .player-drawer-backdrop {
        display: block;
        opacity: 1;
        visibility: visible;
    }

    body.player-drawer-open {
        overflow: hidden;
    }

    .catalog-column {
        position: fixed;
        z-index: 40;
        inset: 10px 0 0;
        width: 100%;
        height: calc(100dvh - 10px);
        overflow: hidden;
        transform: translateY(105%);
        visibility: hidden;
        transition: transform 200ms ease, visibility 200ms ease;
    }

    body.player-drawer-open [data-player-drawer] {
        display: block;
        z-index: 41;
        transform: translateY(0);
        visibility: visible;
    }

    .catalog-column > .card {
        height: 100%;
        padding: 14px;
        border-radius: 22px 22px 0 0;
        background: #fffdf7;
    }

    .catalog-column .card__header {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        margin-bottom: 12px;
    }

    .player-drawer__close {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        display: inline-flex;
        background: rgba(20, 56, 45, 0.1);
        color: var(--text);
        font-size: 1.5rem;
    }

    .player-mobile-sort-field {
        display: grid;
    }

    .catalog-column .filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-height: 38dvh;
        overflow-y: auto;
        padding: 2px;
    }

    .catalog-column .filters .field:first-child {
        grid-column: 1 / -1;
    }

    .catalog-column .table-wrap {
        overflow-x: hidden;
        overflow-y: auto;
    }

    .catalog-column .player-table,
    .catalog-column .player-table tbody {
        display: block;
        width: 100%;
    }

    .catalog-column .player-table thead {
        display: none;
    }

    .catalog-column .player-table tr {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin-bottom: 10px;
        padding: 12px;
        border: 1px solid rgba(20, 56, 45, 0.12);
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.76);
    }

    .catalog-column .player-table tr[hidden] {
        display: none;
    }

    .catalog-column .player-table td,
    .catalog-column .player-table td:nth-child(n) {
        display: grid;
        gap: 3px;
        width: auto;
        padding: 0;
        border: 0;
        overflow-wrap: anywhere;
    }

    .catalog-column .player-table td::before {
        content: attr(data-label);
        color: var(--muted);
        font-size: 0.66rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .catalog-column .player-table td:first-child,
    .catalog-column .player-table td:last-child {
        grid-column: 1 / -1;
    }

    .catalog-column .player-table td:last-child::before {
        display: none;
    }

    .catalog-column .player-table__action-form,
    .catalog-column .player-table__action,
    .catalog-column .player-table__action .button {
        width: 100%;
    }

    .catalog-column .player-table__action .button {
        min-height: 44px;
    }

    .catalog-column .button--table:not(.button--table-icon)::after {
        content: "Add player";
        margin-left: 7px;
    }

    .catalog-column .button--table.is-loading::after {
        display: none;
    }

    .catalog-column .player-table__tooltip {
        right: 0;
        top: auto;
        bottom: calc(100% + 8px);
        transform: none;
    }

    .workspace-modal {
        max-height: calc(100dvh - 32px);
        overflow-y: auto;
    }

    /* Keep the 320px planner a football pitch, not a stack of player forms. */
    .site-brand__logo {
        height: 34px;
    }

    .site-header__inner {
        min-height: 56px;
        padding-block: 6px;
    }

    .site-menu-panel {
        padding-top: 70px;
    }

    .shell {
        padding-top: 12px;
    }

    .home-hero,
    .home-manual {
        gap: 12px;
        margin-bottom: 14px;
    }

    .home-hero__copy {
        gap: 8px;
    }

    .home-hero__copy h1 {
        font-size: clamp(1.7rem, 9vw, 2.25rem);
    }

    .home-hero__copy .hero__lede {
        font-size: 0.92rem;
        line-height: 1.45;
    }

    .home-actions {
        gap: 10px;
    }

    .load-card {
        gap: 9px;
        padding: 14px;
        border-radius: 18px;
    }

    .load-card__title {
        font-size: 1.15rem;
    }

    .load-card .eyebrow,
    .load-card__hint {
        margin-bottom: 0;
    }

    .home-manual .rules-panel {
        padding: 14px;
        border-radius: 16px;
    }

    .hero .messages {
        margin-bottom: 10px;
    }

    .hero .message {
        padding: 10px 12px;
        border-radius: 14px;
        font-size: 0.9rem;
        line-height: 1.35;
    }

    .hero .home-actions {
        gap: 8px;
    }

    .hero .load-card:first-child {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        padding: 10px;
    }

    .hero .load-card:first-child > .eyebrow,
    .hero .load-card:first-child > .load-card__title,
    .hero .load-card:first-child > .load-card__hint,
    .hero .load-card:first-child .field > span {
        display: none;
    }

    .hero .load-card:first-child .field {
        margin: 0;
    }

    .hero .load-card:first-child .field input {
        min-height: 48px;
        padding: 10px 12px;
        border-radius: 999px;
    }

    .hero .load-card:first-child .load-card__button {
        width: auto;
        min-width: 84px;
        min-height: 48px;
        margin: 0;
        padding: 10px 16px;
        font-size: 0;
    }

    .hero .load-card:first-child .load-card__button::after {
        content: "Load";
        font-size: 0.9rem;
    }

    .hero .load-card:nth-child(n + 2) {
        display: block;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
    }

    .hero .load-card:nth-child(n + 2) > :not(.load-card__button, input) {
        display: none;
    }

    .hero .load-card:nth-child(n + 2) .load-card__button {
        min-height: 44px;
        margin: 0;
    }

    .workspace {
        gap: 10px;
    }

    .workspace__header-card.card {
        padding: 12px;
        border-radius: 16px;
    }

    .pitch-header,
    .pitch-header__overview,
    .pitch-header__timeline {
        gap: 8px;
    }

    .pitch-header__timeline .timeline__note,
    .workspace__overview-summary .card__header {
        display: none;
    }

    .timeline__tabs {
        display: flex;
        gap: 6px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
    }

    .timeline__tabs::-webkit-scrollbar {
        display: none;
    }

    .timeline__tabs form {
        flex: 0 0 auto;
    }

    .timeline__tab {
        min-width: 72px;
        min-height: 44px;
        padding: 7px 10px;
    }

    .workspace__overview-summary {
        gap: 6px;
    }

    .workspace__overview-summary .summary__lines {
        display: flex;
        gap: 6px;
        overflow-x: auto;
    }

    .workspace__overview-summary .transfer-line {
        min-width: min(250px, 82vw);
        padding: 8px 10px;
    }

    .mobile-planner-toolbar {
        top: 62px;
        padding: 7px 9px;
        border-radius: 13px;
    }

    .workspace__grid > .pitch.card {
        padding: 0;
        overflow: hidden;
        border-radius: 18px;
    }

    .pitch__top {
        gap: 8px;
        margin: 0;
        padding: 12px;
    }

    .pitch__summary-header,
    .pitch__controls-label {
        display: none;
    }

    .week-summary-panel__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .week-summary-panel__grid > div:nth-child(1),
    .week-summary-panel__grid > div:nth-child(3),
    .week-summary-panel__grid > div:nth-child(5) {
        display: none;
    }

    .week-summary-panel--compact .summary__grid > div {
        min-width: 0;
        grid-template-rows: auto auto;
        padding: 7px;
        border-radius: 10px;
        background: rgba(20, 56, 45, 0.05);
    }

    .week-summary-panel--compact .summary__label {
        min-height: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .week-summary-panel--compact .summary__grid strong {
        overflow: hidden;
        font-size: 0.92rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .week-summary-panel .summary__notes {
        display: none;
    }

    .pitch__controls {
        display: block;
        padding-top: 8px;
        overflow: hidden;
    }

    .pitch-header__actions,
    .pitch-header__actions--compact {
        display: flex;
        flex-flow: row nowrap;
        gap: 6px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .pitch-header__actions::-webkit-scrollbar {
        display: none;
    }

    .pitch-header__actions form,
    .pitch-header__actions .button {
        width: auto;
        flex: 0 0 auto;
    }

    .pitch-header__actions .button {
        min-height: 44px;
        padding: 9px 13px;
    }

    .pitch__surface {
        min-height: 356px;
        gap: 7px;
        padding: 18px 5px 12px;
        border-radius: 0;
        overflow: hidden;
    }

    .pitch__surface::before {
        inset: 8px;
        border-radius: 12px;
    }

    .pitch__branding,
    .pitch__arc,
    .pitch__spot {
        display: none;
    }

    .pitch__row {
        flex-wrap: nowrap;
        gap: 3px;
        min-height: 74px;
        align-items: center;
    }

    .shirt-card,
    .bench__row .shirt-card {
        width: calc((100% - 12px) / 5);
        min-height: 72px;
        padding: 3px 2px 5px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
    }

    .shirt-card--open {
        border: 1px dashed rgba(255, 255, 255, 0.46);
        background: rgba(20, 56, 45, 0.2);
    }

    .shirt-card--selected,
    .shirt-card--swap-origin,
    .shirt-card--swap-target {
        border: 2px solid rgba(227, 179, 65, 0.9);
    }

    .shirt-card__top {
        min-height: 43px;
        margin: 0;
        justify-content: center;
    }

    .shirt {
        width: 39px;
        height: 43px;
    }

    .shirt-card__body {
        display: block;
        min-height: 22px;
        text-align: center;
    }

    .shirt-card__headline {
        display: block;
        width: 100%;
    }

    .shirt-card__body strong {
        display: block;
        overflow: hidden;
        font-size: 0.58rem;
        line-height: 1.1;
        text-overflow: ellipsis;
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
        white-space: nowrap;
    }

    .shirt-card__meta,
    .shirt-card__fixtures,
    .shirt-card--captaincy-selectable .shirt-card__body::after {
        display: none;
    }

    .shirt-card__availability-warning {
        position: absolute;
        top: 1px;
        left: 1px;
        width: 16px;
        height: 16px;
        z-index: 3;
    }

    .shirt-card__mobile-status-tags {
        position: absolute;
        z-index: 3;
        top: 1px;
        right: 1px;
        display: grid;
        min-width: 18px;
        height: 18px;
        place-items: center;
        padding-inline: 3px;
        border-radius: 999px;
        background: #e3b341;
        color: #342704;
        font-size: 0.56rem;
        font-weight: 800;
    }

    .shirt-card__mobile-action {
        position: absolute;
        z-index: 2;
        inset: 0;
        display: block;
        width: 100%;
        min-height: 72px;
        padding: 0;
        border: 0;
        border-radius: inherit;
        background: transparent;
        cursor: pointer;
    }

    .shirt-card__mobile-action:focus-visible {
        outline: 3px solid #ffffff;
        outline-offset: -3px;
    }

    .shirt-card__select {
        position: absolute;
        z-index: 3;
        inset: 0;
        margin: 0;
    }

    .shirt-card__select .button--table {
        width: 100%;
        height: 100%;
        min-height: 72px;
        padding: 0;
        overflow: hidden;
        border-radius: 9px;
        background: transparent;
        color: transparent;
    }

    .shirt-card__select .button--table:focus-visible {
        outline: 3px solid #ffffff;
        outline-offset: -3px;
    }

    .shirt-card__controls {
        position: fixed;
        z-index: 46;
        right: 8px;
        bottom: 8px;
        left: 8px;
        top: auto;
        display: flex;
        flex-wrap: wrap;
        justify-content: stretch;
        gap: 8px;
        padding: 14px 54px 14px 14px;
        border-radius: 18px;
        background: #fffdf7;
        box-shadow: 0 20px 50px rgba(12, 24, 20, 0.3);
        color: var(--text);
        opacity: 0;
        visibility: hidden;
        transform: translateY(calc(100% + 16px));
        transition: transform 180ms ease, opacity 180ms ease, visibility 180ms ease;
    }

    .shirt-card--actions-open .shirt-card__controls {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .shirt-card__controls form {
        flex: 1 1 92px;
    }

    .shirt-card__controls .button-icon,
    .shirt-card__controls form[hx-post] .button-icon,
    .shirt-card__mobile-leadership {
        display: inline-flex;
        width: 100%;
        min-width: 0;
        min-height: 44px;
        justify-content: center;
        gap: 6px;
        padding: 8px 10px;
        border-radius: 999px;
        background: rgba(20, 56, 45, 0.08);
        color: var(--text);
        font-size: 0.76rem;
        font-weight: 700;
    }

    .shirt-card__leadership-form {
        display: block;
    }

    .shirt-card__controls .button-icon--undo::after {
        content: "Undo";
    }

    .shirt-card__actions-close {
        position: absolute;
        top: 12px;
        right: 10px;
        display: inline-flex;
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 0;
        font-size: 1.4rem;
    }

    .shirt-card__status-tags {
        display: none;
    }

    .shirt-card-actions-backdrop {
        position: fixed;
        z-index: 45;
        inset: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(12, 24, 20, 0.48);
        opacity: 0;
        visibility: hidden;
        transition: opacity 180ms ease, visibility 180ms ease;
    }

    .player-actions-open .shirt-card-actions-backdrop {
        display: block;
        opacity: 1;
        visibility: visible;
    }

    body.player-actions-open {
        overflow: hidden;
    }

    .bench {
        margin-top: 8px;
        padding: 0 5px 8px;
        background: #08683b;
    }

    .bench__title {
        margin: 0;
        padding: 7px 2px 5px;
        font-size: 0.72rem;
    }

    .bench__row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px;
        padding: 5px;
        border-width: 1px;
        border-radius: 12px;
    }

    .bench__row .shirt-card {
        width: 100%;
    }

    /* Fluid planner scale: visual dimensions adapt, touch targets stay usable. */
    :root {
        --mobile-control-height: 44px;
        --mobile-player-height: clamp(68px, 21vw, 84px);
        --mobile-shirt-width: clamp(35px, 12vw, 47px);
        --mobile-shirt-height: clamp(40px, 13.5vw, 53px);
        --mobile-ui-font: clamp(0.72rem, 2.6vw, 0.84rem);
    }

    .mobile-planner-toolbar .button,
    .pitch-header__actions .button {
        width: max-content;
        min-width: 0;
        min-height: var(--mobile-control-height);
        padding: 0 clamp(10px, 3.2vw, 14px);
        border-radius: 12px;
        font-size: var(--mobile-ui-font);
        line-height: 1;
        white-space: nowrap;
    }

    .pitch-header__actions,
    .pitch-header__actions--compact {
        align-items: center;
    }

    .pitch-header__actions form,
    .pitch-header__actions > *,
    .pitch-header__actions form .button {
        flex: 0 0 auto;
        width: max-content;
        max-width: none;
    }

    .pitch__surface {
        min-height: clamp(338px, 112vw, 410px);
    }

    .pitch__row {
        min-height: calc(var(--mobile-player-height) + 3px);
    }

    .shirt-card,
    .bench__row .shirt-card {
        min-height: var(--mobile-player-height);
    }

    .shirt-card__top {
        min-height: var(--mobile-shirt-height);
    }

    .shirt {
        width: var(--mobile-shirt-width);
        height: var(--mobile-shirt-height);
    }

    .shirt-card__body {
        min-height: clamp(18px, 5.5vw, 24px);
    }

    .shirt-card__body strong {
        font-size: clamp(0.6rem, 2.25vw, 0.7rem);
    }

    .shirt-card__mobile-action,
    .shirt-card__select .button--table {
        min-height: var(--mobile-player-height);
    }

    .shirt-card__controls {
        right: auto;
        bottom: max(8px, env(safe-area-inset-bottom));
        left: 50%;
        width: min(calc(100vw - 16px), 360px);
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        padding: 12px;
        border: 1px solid rgba(20, 56, 45, 0.12);
        border-radius: 16px;
        transform: translate(-50%, calc(100% + 20px));
    }

    .shirt-card--actions-open .shirt-card__controls {
        transform: translate(-50%, 0);
    }

    body > .shirt-card__controls--open {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
    }

    .shirt-card__actions-heading {
        display: grid;
        grid-column: 1 / -1;
        gap: 2px;
        min-width: 0;
        min-height: 44px;
        align-content: center;
        padding-right: 48px;
    }

    .shirt-card__actions-heading span {
        color: var(--muted);
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .shirt-card__actions-heading strong {
        overflow: hidden;
        font-size: clamp(0.94rem, 4vw, 1.08rem);
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .shirt-card__controls form {
        width: 100%;
        min-width: 0;
    }

    .shirt-card__controls .button-icon,
    .shirt-card__controls form[hx-post] .button-icon,
    .shirt-card__mobile-leadership {
        height: var(--mobile-control-height);
        min-height: var(--mobile-control-height);
        padding: 0 10px;
        border: 1px solid rgba(20, 56, 45, 0.1);
        border-radius: 11px;
        font-size: var(--mobile-ui-font);
    }

    .shirt-card__actions-close {
        top: 12px;
        right: 12px;
        width: var(--mobile-control-height);
        min-width: var(--mobile-control-height);
        height: var(--mobile-control-height);
        border-radius: 11px;
    }

    .catalog-column {
        inset: 0;
        height: 100dvh;
    }

    .catalog-column > .card {
        padding: 10px;
        border-radius: 0;
    }

    .catalog-column .card__header {
        align-items: center;
        gap: 8px;
        margin-bottom: 8px;
    }

    .catalog-column .card__header .eyebrow {
        margin-bottom: 4px;
    }

    .catalog-column .card__header h3 {
        font-size: clamp(1.05rem, 5vw, 1.3rem);
    }

    .player-drawer__header-actions {
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .player-drawer__filter-toggle {
        display: inline-flex;
        min-height: var(--mobile-control-height);
        padding: 0 12px;
        border-radius: 11px;
        font-size: var(--mobile-ui-font);
    }

    .player-drawer__filter-toggle[aria-expanded="true"] {
        background: rgba(14, 143, 89, 0.16);
        color: var(--primary-strong);
    }

    .player-drawer__close {
        border-radius: 11px;
    }

    .catalog-column .filters {
        grid-template-columns: minmax(0, 1fr) minmax(92px, 0.42fr);
        gap: 6px;
        max-height: none;
        margin-bottom: 8px;
        overflow: visible;
        padding: 0;
    }

    .catalog-column .filters .field:first-child {
        grid-column: auto;
    }

    .catalog-column .filters .field {
        gap: 3px;
    }

    .catalog-column .filters .field span {
        font-size: 0.66rem;
    }

    .catalog-column .filters input,
    .catalog-column .filters select {
        min-height: var(--mobile-control-height);
        padding: 8px 10px;
        border-radius: 11px;
        font-size: 0.82rem;
    }

    .catalog-column .filters .field:nth-child(n + 3) {
        display: none;
    }

    .catalog-column .filters--expanded .field:nth-child(n + 3) {
        display: grid;
    }

    .catalog-column .player-table tr {
        grid-template-columns: minmax(0, 1fr) auto auto 44px;
        gap: 3px 8px;
        margin-bottom: 6px;
        padding: 8px;
        border-radius: 12px;
    }

    .catalog-column .player-table td:first-child {
        grid-column: 1 / 4;
        grid-row: 1;
        align-content: center;
    }

    .catalog-column .player-table td:nth-child(2) {
        grid-column: 1;
        grid-row: 2;
    }

    .catalog-column .player-table td:nth-child(3) {
        grid-column: 2;
        grid-row: 2;
    }

    .catalog-column .player-table td:nth-child(4) {
        grid-column: 3;
        grid-row: 2;
    }

    .catalog-column .player-table td:nth-child(5) {
        display: flex;
        grid-column: 1 / 4;
        grid-row: 3;
        align-items: center;
        gap: 4px;
        color: var(--muted);
        font-size: 0.72rem;
    }

    .catalog-column .player-table td:last-child {
        grid-column: 4;
        grid-row: 1 / 4;
        align-content: center;
    }

    .catalog-column .player-table td::before {
        display: none;
    }

    .catalog-column .player-table td:nth-child(5)::before {
        content: attr(data-label) ":";
        display: inline;
        font-size: inherit;
        letter-spacing: 0;
        text-transform: none;
    }

    .catalog-column .player-table td:nth-child(2),
    .catalog-column .player-table td:nth-child(3),
    .catalog-column .player-table td:nth-child(4) {
        color: var(--muted);
        font-size: 0.72rem;
    }

    .catalog-column .player-table__player-name {
        font-size: 0.88rem;
        font-weight: 700;
    }

    .catalog-column .player-table__action-form,
    .catalog-column .player-table__action,
    .catalog-column .player-table__action .button {
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
    }

    .catalog-column .player-table__action .button {
        padding: 0;
        border-radius: 11px;
        font-size: 1rem;
    }

    .catalog-column .button--table:not(.button--table-icon)::after {
        content: none;
    }

    /* A player tap opens a compact contextual dock, not a full modal menu. */
    .shirt-card__controls {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        padding: 10px;
        border-radius: 14px;
        transform: translate(-50%, calc(100% + 20px));
    }

    .shirt-card--actions-open .shirt-card__controls {
        transform: translate(-50%, 0);
    }

    .shirt-card__actions-heading {
        flex: 0 0 100%;
        min-height: 40px;
        padding-right: 48px;
    }

    .shirt-card__actions-heading strong {
        font-size: clamp(0.9rem, 3.8vw, 1.02rem);
    }

    .shirt-card__actions-heading span {
        font-size: 0.7rem;
        font-weight: 600;
        letter-spacing: 0;
        text-transform: none;
    }

    .shirt-card__controls form {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }

    .shirt-card__controls .button-icon,
    .shirt-card__controls form[hx-post] .button-icon,
    .shirt-card__mobile-leadership {
        height: var(--mobile-control-height);
        min-height: var(--mobile-control-height);
        padding: 0 clamp(6px, 2vw, 10px);
        border-radius: 10px;
        font-size: clamp(0.68rem, 2.4vw, 0.78rem);
    }

    .shirt-card__mobile-leadership {
        background: rgba(14, 143, 89, 0.12);
        color: var(--primary-strong);
    }

    .shirt-card__controls .shirt-card__remove .button-icon:not(.button-icon--undo) {
        background: rgba(204, 76, 67, 0.1);
        color: #a53b34;
    }

    .shirt-card__controls .button-icon--swap {
        background: rgba(87, 36, 128, 0.09);
        color: #572480;
    }

    .shirt-card__actions-close {
        top: 8px;
        right: 8px;
        border-radius: 10px;
    }

    .shirt-card-actions-backdrop {
        background: rgba(12, 24, 20, 0.3);
        backdrop-filter: blur(1px);
    }

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    @supports (overflow: clip) {
        html,
        body {
            overflow-x: clip;
        }
    }

    .workspace,
    .workspace__grid,
    .workspace__grid > .pitch,
    .pitch__top,
    .pitch__controls {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    /* Closed controls must not contribute viewport-sized overflow inside a card. */
    .shirt-card__controls {
        display: none;
    }

    body > .shirt-card__controls--open {
        position: fixed;
        top: 50%;
        right: auto;
        bottom: auto;
        left: 50%;
        display: flex;
        width: min(calc(100vw - 24px), 360px);
        max-width: calc(100% - 24px);
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, -50%);
    }

    .workspace__overview-summary .summary__lines {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        overflow: visible;
    }

    .workspace__overview-summary .transfer-line {
        width: 100%;
        min-width: 0;
        max-width: none;
    }

    .workspace__overview-summary .transfer-line__players,
    .workspace__overview-summary .transfer-line__prices {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    body > .shirt-card__controls--open > .shirt-card__actions-close {
        position: absolute;
        top: 8px;
        right: 8px;
        display: grid;
        width: 32px;
        min-width: 32px;
        height: 32px;
        min-height: 32px;
        place-items: center;
        flex: 0 0 32px;
        padding: 0;
        border: 1px solid rgba(20, 56, 45, 0.12);
        border-radius: 8px;
        background: rgba(20, 56, 45, 0.08);
        color: var(--text);
        font-size: 1.05rem;
        line-height: 1;
    }

    body > .shirt-card__controls--open > .shirt-card__actions-close::before {
        content: "";
        position: absolute;
        inset: -6px;
    }

    .comparison-scout-grid__chart {
        order: 1;
        width: calc(100% + 28px);
        max-width: none;
        min-width: 0;
        margin-inline: -14px;
    }

    .comparison-mobile-profile-tabs {
        order: 2;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        width: 100%;
        min-width: 0;
    }

    .comparison-mobile-profile-tab {
        min-width: 0;
        min-height: 52px;
        display: grid;
        gap: 2px;
        align-content: center;
        padding: 7px 9px;
        border: 1px solid rgba(20, 56, 45, 0.14);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.72);
        color: var(--text);
        text-align: left;
    }

    .comparison-mobile-profile-tab span {
        color: var(--muted);
        font-size: 0.65rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.06em;
    }

    .comparison-mobile-profile-tab strong {
        overflow: hidden;
        font-size: 0.78rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .comparison-mobile-profile-tab--active {
        border-color: rgba(14, 143, 89, 0.42);
        background: rgba(14, 143, 89, 0.13);
        color: var(--primary-strong);
    }

    .comparison-scout-grid > .comparison-detail-panel,
    .comparison-scout-grid > .comparison-detail-panel:first-child,
    .comparison-scout-grid > .comparison-detail-panel:last-child {
        order: 3;
        display: none;
        min-width: 0;
    }

    .comparison-scout-grid > .comparison-detail-panel.comparison-detail-panel--mobile-active {
        display: block;
    }

    .comparison-chart {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        min-height: 0;
        display: flex;
        flex-direction: column;
        padding: 6px 4px 10px;
        overflow: hidden;
    }

    .comparison-chart__frame {
        order: 1;
        width: min(100%, 340px);
        max-width: 100%;
        margin-inline: auto;
        overflow: hidden;
    }

    .comparison-chart__toolbar {
        order: 2;
        min-width: 0;
        padding-inline: 8px;
    }

    .comparison-chart canvas {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        max-height: 100% !important;
    }

}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
