:root {
    color-scheme: light;
    --app-height: 100vh;
    --screen-green: #58b957;
    --screen-green-dark: #3d9341;
    --ink: #071807;
    --focus: #d9f06c;
    --role-gr-background: #b7f000;
    --role-gr-foreground: #000000;
    --role-def-background: #00d7d7;
    --role-def-foreground: #000000;
    --role-med-background: #f2df00;
    --role-med-foreground: #000000;
    --role-ava-background: #f0f0f0;
    --role-ava-foreground: #000000;
    --metric-morale: #f2df00;
    --metric-formation-background: #d70000;
    --metric-formation-foreground: #ffffff;
    --metric-energy-background: #0000d7;
    --metric-energy-foreground: #ffffff;
    --status-yellow-background: #d7d700;
    --status-yellow-foreground: #000000;
    --status-suspended-background: #d70000;
    --status-suspended-foreground: #ffffff;
    --physical-complaint-background: #ffffff;
    --physical-complaint-cross: #d70000;
    --physical-complaint-border: #000000;
    --fixture-grid-columns: minmax(0, 1fr) 7ch minmax(0, 1fr);
    --safe-x: clamp(18px, 4vw, 76px);
    --safe-y: clamp(14px, 3.5vh, 44px);
    --screen-gap: clamp(8px, 1.2vh, 16px);
    --squad-row-height: clamp(21px, 2.45vh, 40px);
    font-family: "Courier New", Courier, monospace;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: var(--screen-green);
}

body {
    min-height: 100vh;
    margin: 0;
    background: var(--screen-green);
    color: var(--ink);
    font-family: inherit;
    font-size: clamp(16px, 1vw, 30px);
    line-height: 1.25;
}

.game-body {
    height: var(--app-height);
    min-height: 0;
    overflow: hidden;
}

button,
input,
a {
    font: inherit;
}

button {
    border-radius: 0;
}

h2,
h3,
p {
    margin: 0;
}

h2 {
    font-size: 1rem;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.laboratory {
    display: grid;
    gap: 1.1em;
}

.laboratory-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55em 1em;
    border-block: 2px solid var(--ink);
    padding: 0.75em 0;
}

.laboratory-form select {
    min-height: 2.4em;
    border: 2px solid var(--ink);
    border-radius: 0;
    background: var(--screen-green);
    color: var(--ink);
    font: inherit;
}

.laboratory-results {
    max-width: 52ch;
}

.terminal {
    width: min(100%, 1500px);
    margin: 0 auto;
    padding: 28px 24px 38px;
}

.game-shell {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    gap: var(--screen-gap);
    width: 100%;
    max-width: 1800px;
    height: var(--app-height);
    padding: var(--safe-y) var(--safe-x);
    overflow: hidden;
}

.terminal-header,
.terminal-footer {
    min-width: 0;
    text-align: center;
}

.terminal-header > div,
.terminal-footer > div {
    overflow: hidden;
    white-space: nowrap;
}

.terminal-header h1 {
    margin: 0.2em 0 0.1em;
    font-size: clamp(1.55rem, 2.1vw, 2.45rem);
    line-height: 1;
}

.terminal-footer p {
    margin: 0.15em 0;
    font-size: 0.78rem;
    font-weight: 700;
}

.screen-stage,
.game-screen,
.screen-content {
    min-width: 0;
    min-height: 0;
}

.screen-stage {
    overflow: hidden;
}

.game-screen {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: var(--screen-gap);
    height: 100%;
    overflow: hidden;
}

.screen-header {
    min-height: 2.5em;
}

.screen-content {
    overflow: hidden;
}

.screen-content-centered {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.1em;
    text-align: center;
}

.screen-actions {
    min-height: 2.6em;
    border-top: 2px solid var(--ink);
}

.terminal-menu {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 0.25em 0.6em;
    margin: 0.35em 0 0;
}

.terminal-option {
    display: inline-block;
    min-width: 11ch;
    max-width: 100%;
    padding: 0.32em 0.65em 0.32em 1.8em;
    border: 3px solid transparent;
    background: transparent;
    color: var(--ink);
    font-weight: 700;
    text-align: left;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
}

.terminal-option::before {
    content: "  ";
    display: inline-block;
    width: 2ch;
    margin-left: -2ch;
}

.terminal-option.is-selected,
.terminal-option:focus-visible,
.kit-row.is-selected,
.kit-row:focus-visible {
    border-color: var(--ink);
    outline: none;
    background: var(--focus);
    color: var(--ink);
}

.terminal-option.is-selected::before,
.terminal-option:focus-visible::before {
    content: "> ";
}

.home-dashboard {
    display: grid;
    grid-template-columns: minmax(300px, 0.68fr) minmax(0, 1.32fr);
    gap: clamp(24px, 4vw, 72px);
}

.system-panel,
.saves-panel {
    min-height: 0;
}

.system-panel h2,
.saves-panel h2 {
    margin: 0 0 0.45em;
}

.system-panel h2:not(:first-child) {
    margin-top: 1.05em;
}

.status-grid {
    display: grid;
    grid-template-columns: minmax(12ch, 1fr) minmax(8ch, 1fr);
    max-width: 28em;
    margin: 0;
}

.status-grid dt,
.status-grid dd {
    margin: 0 0 0.2em;
}

.status-grid dd {
    font-weight: 700;
    text-transform: uppercase;
}

.machine-value {
    overflow-wrap: anywhere;
    font-size: 0.82rem;
    font-weight: 700;
}

.saves-panel {
    display: flex;
    flex-direction: column;
}

.games-list {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.3em;
    min-height: 0;
    padding-right: 0.25em;
    overflow-y: auto;
    scrollbar-color: var(--ink) var(--screen-green-dark);
}

.save-entry {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.4em;
    align-items: stretch;
}

.save-continue {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    min-width: 0;
}

.save-title,
.save-details {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.save-title {
    font-size: 0.95rem;
}

.save-details {
    margin-top: 0.1em;
    font-size: 0.76rem;
    font-weight: 400;
}

.save-delete {
    align-self: stretch;
    min-width: 13ch;
}

.setup-title {
    margin: 0;
    overflow: hidden;
    text-align: center;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setup-title::before,
.setup-title::after {
    content: "========================================";
    display: block;
    overflow: hidden;
    margin: 0.2em 0;
    white-space: nowrap;
    font-weight: 400;
}

.setup-prompt {
    font-size: 1.08rem;
    font-weight: 700;
}

.help-text {
    font-size: 0.8rem;
    font-weight: 700;
}

.value-selector {
    display: block;
    min-width: 8ch;
    text-align: center;
    font-size: 1.35rem;
}

.touch-selector-control,
.table-touch-selector,
.auction-bid-mask {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.touch-selector-value {
    min-width: 3ch;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.touch-nav-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(44px, 2.2em, 64px);
    min-width: 44px;
    height: clamp(44px, 2.2em, 64px);
    min-height: 44px;
    font-weight: 900;
    line-height: 1;
    touch-action: manipulation;
    user-select: none;
}

button:not(:disabled) .touch-nav-arrow,
.auction-bid-mask .touch-nav-arrow,
.table-touch-selector .touch-nav-arrow {
    cursor: pointer;
}

button:disabled .touch-nav-arrow {
    pointer-events: none;
}

.form-screen {
    justify-content: flex-start;
    padding-top: min(12vh, 110px);
}

.terminal-label {
    display: block;
    width: min(100%, 34ch);
    text-align: left;
    font-weight: 700;
}

.terminal-input {
    width: min(100%, 34ch);
    padding: 0.5em 0.65em;
    border: 3px solid var(--ink);
    border-radius: 0;
    outline: none;
    background: #8bd278;
    color: var(--ink);
}

.terminal-input:focus,
.terminal-input.is-selected {
    outline: 0.28em solid var(--focus);
    outline-offset: 0;
}

.kit-workspace,
.confirm-workspace,
.ready-layout {
    display: grid;
    align-items: center;
    gap: clamp(20px, 5vw, 90px);
}

.kit-workspace {
    grid-template-columns: minmax(0, 1.4fr) minmax(180px, 0.6fr);
}

.kit-editor {
    width: 100%;
    max-width: 760px;
}

.kit-row {
    display: grid;
    grid-template-columns: minmax(16ch, 1fr) minmax(18ch, 1fr);
    width: 100%;
    padding: 0.38em 0.65em;
    border: 3px solid transparent;
    background: transparent;
    color: var(--ink);
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
}

.kit-row > span:first-child::after {
    content: " ..........";
}

.kit-row > .kit-selector::before {
    content: "[ ";
}

.kit-row > .kit-selector::after {
    content: " ]";
}

.kit-selector {
    justify-content: flex-start;
}

.kit-row:disabled {
    cursor: default;
    opacity: 0.62;
}

.kit-preview-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    margin: 0;
}

.kit-preview {
    width: clamp(112px, 8vw, 180px);
    height: auto;
    max-height: 100%;
    image-rendering: pixelated;
    shape-rendering: crispEdges;
}

.kit-preview-large {
    width: clamp(150px, 12vw, 230px);
}

.confirm-workspace {
    grid-template-columns: minmax(0, 1fr) minmax(180px, 0.5fr);
}

.setup-summary {
    display: grid;
    grid-template-columns: minmax(12ch, 18ch) minmax(0, 1fr);
    max-width: 760px;
    margin: 0;
}

.setup-summary dt,
.setup-summary dd {
    margin: 0 0 0.32em;
}

.setup-summary dd {
    overflow: hidden;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.team-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12em;
    min-height: 0;
}

.team-row {
    width: min(100%, 62ch);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.review-content {
    overflow-y: auto;
}

.ready-layout {
    grid-template-columns: minmax(260px, 0.55fr) minmax(0, 1.45fr);
    align-items: start;
    overflow: hidden;
}

.world-ready-summary {
    grid-template-columns: minmax(10ch, 15ch) 1fr;
}

.ready-layout .team-list {
    overflow-y: auto;
}

.team-identity-list,
.ready-layout .team-list {
    gap: 0.08em;
}

.team-identity-row {
    display: grid;
    grid-template-columns: 3.2rem 3ch minmax(0, 1fr) 7ch;
    align-items: center;
    gap: 0.5em;
    width: min(100%, 68ch);
    min-height: clamp(38px, 5.2vh, 64px);
    padding-block: 0.08em;
}

.team-identity-row::before {
    grid-column: 1;
    grid-row: 1;
    z-index: 1;
    align-self: center;
}

.team-list-kit {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
}

.team-list-slot {
    text-align: right;
}

.team-list-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.team-list-type {
    font-size: 0.8em;
    text-align: right;
}

.preseason-editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(180px, 0.6fr);
    align-items: center;
    gap: clamp(20px, 5vw, 90px);
}

.preseason-editor-fields {
    display: grid;
    align-content: center;
    gap: 0.55em;
    min-height: 0;
}

.team-select-content {
    display: flex;
    justify-content: center;
    min-height: 0;
    overflow: hidden;
}

.team-select-content .team-list {
    width: min(100%, 72ch);
}

.team-name-heading {
    font-size: 1.2rem;
    font-weight: 700;
}

.team-detail-content {
    overflow: hidden;
}

.team-management-layout {
    display: grid;
    grid-template-columns: minmax(620px, 1.55fr) minmax(230px, 0.45fr);
    gap: clamp(12px, 2vw, 34px);
    height: 100%;
    min-height: 0;
}

.team-roster-area {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.team-roster-panel {
    min-height: 0;
}

.team-roster-panel h3 {
    padding: 0.14em 0.35em;
    border-block: 2px solid var(--ink);
    text-align: center;
}

.team-player-columns,
.team-player-row {
    display: grid;
    grid-template-columns: 4ch minmax(10ch, 1fr) 3.4ch 4ch 4ch 6ch 9ch;
    align-items: center;
    column-gap: 0.35em;
    min-width: 0;
    padding-inline: 0.3em;
}

.team-player-columns {
    min-height: 1.35em;
    border-bottom: 2px solid var(--ink);
    font-weight: 700;
}

.team-player-columns span {
    font-size: 0.68em;
}

.team-player-row {
    height: var(--squad-row-height);
    border-bottom: 1px solid var(--ink);
    line-height: 1;
}

.team-player-columns span:not(:nth-child(2)),
.team-player-row span:not(:nth-child(2)) {
    text-align: right;
}

.team-player-name,
.team-player-rating {
    font-weight: 800;
}

.team-player-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.team-player-role {
    font-weight: 800;
    text-align: center !important;
}

.team-player-status {
    padding-inline: 0.16em;
    font-weight: 700;
    text-align: center !important;
}

.team-player-status.is-yellow {
    background: var(--status-yellow-background);
    color: var(--status-yellow-foreground);
}

.team-player-status.is-suspended {
    background: var(--status-suspended-background);
    color: var(--status-suspended-foreground);
}

.physical-complaint-badge {
    display: inline-grid;
    inline-size: 0.95em;
    block-size: 0.95em;
    position: relative;
    box-sizing: border-box;
    overflow: hidden;
    vertical-align: -0.08em;
    border: 0.08em solid var(--physical-complaint-border);
    background: var(--physical-complaint-background);
    text-decoration: none;
    text-shadow: none;
}

.physical-complaint-badge::before,
.physical-complaint-badge::after {
    position: absolute;
    background: var(--physical-complaint-cross);
    content: "";
    transform: none;
}

.physical-complaint-badge::before {
    inset: 42% 14% auto;
    height: 16%;
}

.physical-complaint-badge::after {
    inset: 14% auto 14% 42%;
    width: 16%;
}

.team-management-sidebar {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    align-items: stretch;
    gap: 0.5em;
    min-height: 0;
    overflow: hidden;
}

.team-manager-name {
    overflow: hidden;
    font-weight: 800;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.team-kit-panel .team-kit-preview .kit-preview {
    width: clamp(135px, 10vw, 220px);
    max-width: 100%;
    max-height: 100%;
}

.team-collective-stats {
    display: grid;
    grid-template-columns: minmax(9ch, 1fr) auto;
    gap: 0.12em 0.6em;
    margin: 0;
    padding: 0.4em;
    border: 2px solid var(--ink);
    text-align: left;
}

.team-collective-stats dd {
    margin: 0;
    font-weight: 800;
    text-align: right;
}

.team-training-entry {
    min-width: 7ch;
    margin: -0.08em -0.2em;
    padding: 0.08em 0.2em;
    border: 0;
    background: transparent;
    color: inherit;
    font-weight: 800;
    text-align: right;
}

.team-training-entry::before {
    content: "> ";
}

.team-training-entry:focus-visible,
.team-training-entry:hover {
    outline: 2px solid var(--ink);
    background: var(--focus);
}

.training-content {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    align-content: start;
    max-width: 1100px;
    width: 100%;
    margin-inline: auto;
    overflow: hidden;
}

.training-hours {
    padding-block: 0.15em 0.35em;
    text-align: right;
}

.training-columns,
.training-player {
    display: grid;
    grid-template-columns: minmax(14ch, 1fr) 4ch 4ch 4ch 5ch;
    align-items: center;
    column-gap: 0.7em;
    width: 100%;
    min-width: 0;
    padding-inline: 0.5em;
}

.training-columns {
    min-height: 1.5em;
    border-block: 2px solid var(--ink);
    font-weight: 800;
}

.training-columns span {
    font-size: 0.75em;
}

.training-columns span:not(:first-child),
.training-player span:not(:first-child) {
    text-align: right;
}

.training-player-list {
    min-height: 0;
}

.training-player {
    height: var(--squad-row-height);
    border: 0;
    border-bottom: 1px solid var(--ink);
    background: transparent;
    color: inherit;
    line-height: 1;
    text-align: left;
}

.training-player .training-player-name,
.training-player .training-player-rating {
    font-weight: 800;
}

.training-player-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.training-player.is-selected,
.training-player:focus-visible {
    outline: 2px solid var(--ink);
    outline-offset: -2px;
    background: var(--focus);
}

.training-lock {
    padding-top: 0.5em;
    font-weight: 800;
    text-align: center;
}

.training-choice-content,
.training-preview-content,
.training-result-content {
    display: grid;
    place-content: center;
    gap: 1em;
    text-align: center;
}

.training-choice-content h3,
.training-preview-content h3,
.training-result-content h3 {
    font-size: 1.35em;
}

.training-stats {
    display: grid;
    grid-template-columns: minmax(14ch, auto) minmax(8ch, auto);
    gap: 0.3em 1.2em;
    min-width: min(100%, 36ch);
    margin: 0 auto;
    text-align: left;
}

.training-stats dd {
    margin: 0;
    font-weight: 800;
    text-align: right;
}

.training-probability,
.training-result-status {
    padding: 0.45em 0.8em;
    border-block: 2px solid var(--ink);
    font-weight: 800;
}

.training-menu .terminal-option[disabled] {
    opacity: 0.5;
}

.formation-panel {
    border: 3px solid var(--ink);
}

.formation-panel h3 {
    padding: 0.18em 0.4em;
    border-bottom: 2px solid var(--ink);
    font-size: 0.78em;
    text-align: center;
}

.formation-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 5ch 4ch;
    align-items: center;
    padding: 0.12em 0.5em;
}

.formation-sector-rating {
    font-size: 1.06em;
    font-weight: 900;
    text-align: right;
}

.formation-player-count {
    font-size: 0.76em;
    font-weight: 700;
    text-align: right;
}

.role-gr {
    background: var(--role-gr-background);
    color: var(--role-gr-foreground);
}

.role-def {
    background: var(--role-def-background);
    color: var(--role-def-foreground);
}

.role-med {
    background: var(--role-med-background);
    color: var(--role-med-foreground);
}

.role-ava {
    background: var(--role-ava-background);
    color: var(--role-ava-foreground);
}

.team-overview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 0.34fr);
    align-items: center;
    min-height: 0;
    padding-bottom: 0.4em;
    border-bottom: 2px solid var(--ink);
}

.team-metadata {
    display: grid;
    gap: 0.22em;
    font-weight: 700;
}

.team-kit-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    overflow: hidden;
}

.team-kit-preview {
    width: 100%;
    height: 100%;
}

.squad-table {
    width: 100%;
    height: auto;
    align-self: start;
    min-width: 620px;
    border-collapse: collapse;
    table-layout: fixed;
    font: inherit;
}

.squad-table th,
.squad-table td {
    height: var(--squad-row-height);
    padding: 0 0.45em;
    border-bottom: 1px solid var(--ink);
    line-height: 1;
    text-align: right;
    vertical-align: middle;
    white-space: nowrap;
}

.squad-table th {
    font-size: 0.86rem;
    font-weight: 700;
}

.squad-table th:first-child,
.squad-table td:first-child {
    width: 42%;
    text-align: left;
}

.squad-table th:nth-child(2),
.squad-table td:nth-child(2),
.squad-table th:nth-child(3),
.squad-table td:nth-child(3),
.squad-table th:nth-child(4),
.squad-table td:nth-child(4) {
    width: 8%;
}

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

.squad-table th:last-child,
.squad-table td:last-child {
    width: 24%;
}

.player-name,
.player-rating {
    font-weight: 700;
}

.player-name {
    overflow: hidden;
    text-overflow: ellipsis;
}

.squad-table tr.is-selected,
.squad-table tr:focus-visible {
    outline: 3px solid var(--ink);
    outline-offset: -3px;
    background: var(--focus);
}

.kit-preview[data-kit-size="large"] {
    width: clamp(150px, 12vw, 240px);
}

.kit-preview[data-kit-size="medium"] {
    width: clamp(105px, 8vw, 170px);
}

.kit-preview[data-kit-size="small"] {
    width: clamp(42px, 5.2vh, 72px);
}

.kit-preview[data-kit-size="tiny"] {
    width: clamp(28px, 3.4vh, 48px);
}

.matchday-content {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 0.35em;
    overflow: hidden;
}

.matchday-fixtures {
    display: grid;
    grid-template-rows: repeat(4, minmax(0, 1fr));
    min-height: 0;
    border-top: 2px solid var(--ink);
}

.fixture-row {
    display: grid;
    grid-template-columns: var(--fixture-grid-columns);
    align-items: center;
    min-height: 0;
    border-bottom: 1px solid var(--ink);
}

.fixture-versus {
    white-space: nowrap;
    font-weight: 700;
    text-align: center;
}

.fixture-team {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.45em;
    min-width: 0;
    height: 100%;
    padding: 0.12em 0.35em;
    border: 3px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    text-align: left;
}

.fixture-team-away {
    grid-template-columns: auto minmax(0, 1fr) auto;
    text-align: right;
}

.fixture-team-away .fixture-kit {
    order: 3;
}

.fixture-team-away .fixture-team-name {
    order: 2;
}

.fixture-team-away .fixture-ready {
    order: 1;
}

.fixture-team:not(:disabled).is-selected,
.fixture-team:not(:disabled):focus-visible {
    border-color: var(--ink);
    outline: none;
    background: var(--focus);
}

.fixture-team:disabled {
    opacity: 1;
}

.fixture-kit {
    display: flex;
    align-items: center;
    justify-content: center;
}

.fixture-team-name {
    min-width: 0;
    overflow: hidden;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fixture-ready {
    min-width: 3ch;
    font-weight: 700;
}

.matchday-readiness {
    min-height: 1.25em;
    font-weight: 700;
    text-align: center;
}

.fixtures-page {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 0.6em;
    overflow: hidden;
}

.fixtures-page h3 {
    text-align: center;
}

.fixtures-list {
    display: grid;
    grid-template-rows: repeat(4, minmax(0, 1fr));
    min-height: 0;
    border-top: 2px solid var(--ink);
}

.fixture-result-row {
    display: grid;
    grid-template-columns: var(--fixture-grid-columns);
    align-items: center;
    border-bottom: 1px solid var(--ink);
}

.fixture-result-home {
    overflow: hidden;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fixture-result-score {
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
}

.fixture-result-away {
    overflow: hidden;
    font-weight: 700;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hotseat-identity {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(0.45em, 1.5vh, 1em);
    text-align: center;
}

.hotseat-context {
    font-size: 0.8em;
    font-weight: 700;
}

.hotseat-team-banner {
    width: min(100%, 44ch);
    padding: 0.45em 1em;
    border: 3px solid var(--ink);
    font-size: clamp(1.2rem, 2vw, 2.2rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.preparation-content {
    --preparation-grid-columns: minmax(0, 1fr) 4.5rem 4.5rem 4.5rem 9rem;
    --preparation-grid-gap: 0.35rem;
    --preparation-grid-padding: 0.35rem;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 0.2em;
    overflow: hidden;
}

.preparation-opponent,
.preparation-summary {
    font-weight: 700;
}

.preparation-opponent {
    text-align: center;
    white-space: pre-line;
}

.preparation-columns,
.preparation-player {
    display: grid;
    grid-template-columns: var(--preparation-grid-columns);
    align-items: center;
    column-gap: var(--preparation-grid-gap);
    min-width: 620px;
    padding-inline: var(--preparation-grid-padding);
    border-inline: 2px solid transparent;
}

.preparation-columns {
    border-bottom: 2px solid var(--ink);
    font-weight: 700;
}

.preparation-columns span {
    font-size: 0.82em;
}

.preparation-columns span:not(:first-child) {
    text-align: right;
}

.preparation-player-list {
    min-height: 0;
    overflow: hidden;
}

.preparation-player {
    width: 100%;
    height: var(--squad-row-height);
    padding-block: 0;
    border: 2px solid transparent;
    border-bottom: 1px solid var(--ink);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    line-height: 1;
    text-align: left;
}

.preparation-player span:not(:first-child) {
    text-align: right;
}

.preparation-player .player-name,
.preparation-player .player-rating {
    font-weight: 700;
}

.preparation-player.is-unavailable {
    text-decoration: line-through;
}

.preparation-player.is-selected,
.preparation-player:focus-visible,
.tactics-player.is-selected,
.tactics-player:focus-visible {
    border-color: var(--ink);
    outline: none;
    background: var(--focus);
}

.tactics-content {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 0.5em 1.5em;
    overflow: hidden;
}

.tactics-player-list {
    display: grid;
    grid-template-rows: repeat(7, minmax(0, 1fr));
    min-height: 0;
}

.tactics-player {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(9rem, 11ch) 5ch;
    align-items: center;
    width: 100%;
    min-height: 0;
    padding: 0.12em 0.4em;
    border: 3px solid transparent;
    border-bottom: 1px solid var(--ink);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    text-align: left;
}

.tactics-player > span:first-child,
.tactics-player > span:last-child {
    font-weight: 700;
}

.tactics-player > span:not(:first-child) {
    text-align: right;
}

.tactics-role.touch-selector-control {
    justify-content: flex-end;
}

.tactics-summary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.6em;
}

.tactics-quick-formation {
    width: 100%;
    margin: 0;
    padding: 0.35em 0.45em;
    text-align: center;
    white-space: nowrap;
}

.tactics-quick-formation:disabled {
    opacity: 0.55;
}

.cup-winner-icon .pixel-cup-icon {
    width: clamp(3.5rem, 8vw, 7rem);
    height: auto;
}

.base-line-ratings {
    display: grid;
    grid-template-columns: 5ch 1fr;
    gap: 0.18em 1em;
    margin: 0;
}

.base-line-ratings dd {
    margin: 0;
    font-weight: 700;
}

.live-header {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: start;
}

.live-header h2 {
    grid-column: 2;
}

.live-clock {
    grid-column: 3;
    justify-self: end;
    min-width: 4ch;
    font-size: 1.25rem;
    text-align: right;
}

.live-match-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: clamp(8px, 1.25vh, 18px) clamp(12px, 1.5vw, 26px);
}

.live-match-card {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-height: 0;
    border: 2px solid var(--ink);
    overflow: hidden;
}

.live-scoreboard {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    min-height: 0;
    padding: 0.2em 0.5em;
}

.live-team {
    display: grid;
    grid-template-columns: clamp(32px, 3vw, 58px) minmax(0, 1fr);
    align-items: center;
    gap: 0.45em;
    min-width: 0;
    font-weight: 700;
}

.live-team-away {
    grid-template-columns: minmax(0, 1fr) clamp(32px, 3vw, 58px);
    text-align: right;
}

.live-team .kit-preview {
    width: 100%;
    max-height: clamp(48px, 8vh, 90px);
}

.live-team-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.live-score {
    min-width: 6ch;
    font-size: clamp(1.25rem, 2.2vw, 2.4rem);
    font-weight: 700;
    text-align: center;
}

.live-commentary {
    min-height: 2.1em;
    padding: 0.42em 0.65em;
    border-top: 2px solid var(--ink);
    overflow: hidden;
    font-size: 0.8rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.live-commentary.is-goal-flash {
    animation-duration: var(--goal-flash-duration, 1200ms);
    animation-iteration-count: 1;
    animation-name: commentary-goal-flash;
    animation-timing-function: steps(1, end);
}

@keyframes commentary-goal-flash {
    0%, 9.99%, 20%, 29.99%, 40%, 49.99%, 60%, 69.99%, 80%, 89.99%, 100% {
        background-color: var(--goal-primary-background);
        color: var(--goal-primary-foreground);
    }

    10%, 19.99%, 30%, 39.99%, 50%, 59.99%, 70%, 79.99%, 90%, 99.99% {
        background-color: var(--goal-flash-background);
        color: var(--goal-flash-foreground);
    }
}

.halftime-content {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto auto;
    gap: 0.25em;
}

.halftime-score {
    font-weight: 700;
    text-align: center;
}

.halftime-screen {
    --halftime-grid-columns: 8.5rem minmax(8rem, 1fr) 3.5rem 4rem 4rem 6.5rem;
    --halftime-grid-gap: 0.45rem;
    --halftime-grid-padding: 0;
}

.halftime-columns,
.halftime-player {
    display: grid;
    grid-template-columns: var(--halftime-grid-columns);
    align-items: center;
    column-gap: var(--halftime-grid-gap);
    padding-inline: var(--halftime-grid-padding);
    border-inline: 2px solid transparent;
}

.halftime-columns {
    border-block: 2px solid var(--ink);
    font-weight: 700;
}

.halftime-columns .halftime-cell {
    font-size: 0.72em;
}

.halftime-player-list {
    display: grid;
    grid-template-rows: repeat(10, minmax(0, 1fr));
    min-height: 0;
}

.halftime-player {
    width: 100%;
    min-height: 0;
    padding-block: 0.05em;
    border-block: 2px solid transparent;
    border-bottom: 1px solid var(--ink);
    background: transparent;
    color: var(--ink);
    text-align: left;
}

.halftime-role {
    align-self: stretch;
    min-width: 0;
    overflow: hidden;
    text-align: center;
}

.halftime-role.touch-selector-control {
    display: grid;
    grid-template-columns: 2.75rem minmax(3ch, 1fr) 2.75rem;
    width: 100%;
    height: 100%;
    padding: 0;
}

.halftime-role.touch-selector-control .touch-nav-arrow {
    width: 100%;
    min-width: 0;
    height: 100%;
    min-height: 0;
}

.halftime-role.touch-selector-control .touch-selector-value {
    min-width: 0;
    overflow: hidden;
}

.halftime-rating,
.halftime-energy,
.halftime-morale {
    text-align: right;
}

.halftime-name,
.halftime-status {
    min-width: 0;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.halftime-player .halftime-role,
.halftime-player .halftime-name,
.halftime-player .halftime-rating {
    font-weight: 800;
}

.halftime-player .halftime-rating {
    font-size: 1.05em;
}

.halftime-player[disabled] {
    opacity: 0.65;
}

.halftime-player.is-selected,
.halftime-player:focus-visible {
    border-color: var(--ink);
    outline: none;
    background: var(--focus);
}

.halftime-player.is-out,
.halftime-player.is-in {
    background: var(--focus);
}

.halftime-player.is-out::after,
.halftime-player.is-in::after {
    font-weight: 700;
}

.halftime-substitution {
    min-height: 1.25em;
}

.fulltime-results {
    display: grid;
    align-content: center;
    gap: 0.75em;
    max-width: 70ch;
    width: 100%;
    margin: 0 auto;
}

.fulltime-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 8ch minmax(0, 1fr);
    gap: 1em;
    border-bottom: 2px solid var(--ink);
    font-size: 1.1rem;
    font-weight: 700;
}

.fulltime-result span:nth-child(2) {
    text-align: center;
}

.fulltime-result span:last-child {
    text-align: right;
}

.postmatch-results {
    display: grid;
    grid-template-rows: repeat(4, minmax(0, 1fr));
    align-items: center;
}

.postmatch-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 8ch minmax(0, 1fr);
    gap: 1em;
    border-bottom: 2px solid var(--ink);
    font-size: 1.1rem;
    font-weight: 700;
}

.postmatch-result span:nth-child(2) {
    text-align: center;
}

.postmatch-result span:last-child {
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.postmatch-team-content {
    --postmatch-grid-columns: minmax(14rem, 24rem) 11rem 11rem 11rem;
    --postmatch-grid-gap: 0.6rem;
    --postmatch-grid-padding: 0.35rem;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 0.2em;
    min-height: 0;
}

.postmatch-team-morale {
    margin: 0;
    font-weight: 700;
}

.postmatch-columns,
.postmatch-player {
    display: grid;
    grid-template-columns: var(--postmatch-grid-columns);
    column-gap: var(--postmatch-grid-gap);
    align-items: center;
    width: min(100%, 60rem);
    min-width: 0;
    padding-inline: var(--postmatch-grid-padding);
    border-inline: 2px solid transparent;
}

.postmatch-columns {
    border-block: 2px solid var(--ink);
    font-weight: 700;
}

.postmatch-columns span {
    font-size: 0.72em;
}

.postmatch-player-list {
    display: grid;
    grid-template-rows: repeat(10, minmax(0, 1fr));
    min-height: 0;
}

.postmatch-player {
    border-bottom: 1px solid var(--ink);
    line-height: 1;
}

.postmatch-player span:first-child {
    overflow: hidden;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.postmatch-player span:nth-child(2),
.postmatch-player span:nth-child(3),
.postmatch-columns span:nth-child(2),
.postmatch-columns span:nth-child(3) {
    text-align: right;
}

.postmatch-player span:not(:first-child),
.postmatch-columns span:not(:first-child) {
    white-space: nowrap;
}

.postmatch-player span:last-child {
    font-weight: 700;
}

.postmatch-goals {
    display: grid;
    grid-template-columns: 8ch minmax(0, 1fr);
    gap: 0.6em;
    align-items: baseline;
}

.postmatch-goals p {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.table-content {
    --league-grid-columns: 3rem minmax(12rem, 1fr) repeat(8, 4rem);
    --league-grid-gap: 0.35rem;
    --league-grid-padding: 0.35rem;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
}

.league-table-head,
.league-table-row {
    display: grid;
    grid-template-columns: var(--league-grid-columns);
    align-items: center;
    column-gap: var(--league-grid-gap);
    padding-inline: var(--league-grid-padding);
    border-inline: 2px solid transparent;
}

.league-table-head {
    border-block: 2px solid var(--ink);
    font-weight: 700;
}

.league-table-head span {
    font-size: 0.72em;
}

.league-table-rows {
    display: grid;
    grid-template-rows: repeat(8, minmax(0, 1fr));
}

.league-table-row {
    border-bottom: 1px solid var(--ink);
}

button.league-table-row {
    width: 100%;
    min-width: 0;
    margin: 0;
    border-top: 0;
    border-bottom: 1px solid var(--ink);
    background: transparent;
    color: var(--ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

button.league-table-row.is-selected,
button.league-table-row:focus-visible {
    border-inline-color: var(--ink);
    outline: none;
    background: var(--focus);
}

.league-table-row span:not(:nth-child(2)),
.league-table-head span:not(:nth-child(2)) {
    text-align: right;
}

.league-table-row span:last-child {
    font-weight: 700;
}

.league-table-row span:nth-child(2) {
    font-weight: 700;
}

.table-draw-note {
    margin: 0.25em 0 0;
    font-size: 0.72rem;
    font-weight: 700;
}

.table-report-hint {
    margin-inline-start: clamp(0.5rem, 2vw, 2rem);
    white-space: nowrap;
}

.league-table-head.club-value-grid,
.league-table-row.club-value-grid {
    grid-template-columns: 5ch minmax(12rem, 1fr) 16ch;
}

.auction-pool-content {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    align-content: center;
    width: min(100%, 84rem);
    margin-inline: auto;
}

.auction-pool-head,
.auction-pool-row {
    display: grid;
    grid-template-columns: minmax(16rem, 1fr) 5ch 13ch minmax(24ch, 0.8fr);
    align-items: center;
    gap: 0.75rem;
}

.auction-pool-head {
    padding: 0.28em 0.45em;
    border-block: 2px solid var(--ink);
    font-size: 0.78em;
    font-weight: 800;
}

.auction-pool-rows {
    display: grid;
    align-content: start;
}

.auction-pool-row {
    position: relative;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0.42em 0.45em;
    border: 0;
    border-bottom: 1px solid var(--ink);
    background: transparent;
    color: var(--ink);
    font: inherit;
    text-align: left;
    text-transform: uppercase;
}

button.auction-pool-row {
    padding-left: 2em;
    cursor: pointer;
}

button.auction-pool-row::before {
    position: absolute;
    left: 0.45em;
    width: 1.5ch;
    margin: 0;
}

.auction-pool-row span:first-child,
.auction-pool-row span:nth-child(2) {
    font-weight: 900;
}

.auction-pool-row span:nth-child(2),
.auction-pool-row span:nth-child(3) {
    text-align: right;
}

.auction-pool-row span:last-child {
    overflow: hidden;
    font-size: 0.82em;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.auction-pool-row.is-selected,
.auction-pool-row:focus-visible {
    border: 2px solid var(--ink);
    background: var(--focus);
    outline: 0;
}

.auction-pool-context {
    margin: 0.65em 0 0;
    font-weight: 800;
    text-align: center;
}

.auction-centre {
    display: grid;
    align-content: center;
    justify-items: center;
    gap: clamp(0.5rem, 2vh, 1.3rem);
    text-align: center;
}

.auction-centre p {
    margin: 0;
}

.auction-player-name,
.auction-bid-player strong {
    font-size: clamp(1.5rem, 3vw, 3rem);
    font-weight: 900;
    letter-spacing: 0.05em;
}

.auction-player-rating,
.auction-confirm-value {
    font-size: clamp(1.25rem, 2.2vw, 2.2rem);
    font-weight: 900;
}

.auction-player-value {
    font-size: clamp(1.1rem, 1.8vw, 1.8rem);
    font-weight: 800;
}

.auction-bid-content,
.auction-winner-content {
    display: grid;
    align-content: center;
    gap: clamp(0.4rem, 1.2vh, 0.9rem);
    width: min(100%, 70rem);
    margin-inline: auto;
}

.auction-bid-player {
    display: grid;
    gap: 0.15rem;
    justify-items: center;
    padding-bottom: 0.4rem;
    border-bottom: 2px solid var(--ink);
    text-align: center;
}

.auction-player-flash-band {
    display: block;
    width: min(100%, 32rem);
    padding: 0.28em 0.75em;
    background: var(--physical-complaint-background);
    color: var(--physical-complaint-border);
    font-size: 1.08em;
    font-weight: 900;
    text-align: center;
    animation: auction-player-attributes-flash 1.8s steps(1, end) infinite;
}

@keyframes auction-player-attributes-flash {
    0%, 49.99%, 100% {
        background: var(--physical-complaint-background);
        color: var(--physical-complaint-border);
    }

    50%, 99.99% {
        background: var(--status-suspended-background);
        color: var(--status-suspended-foreground);
    }
}

@media (prefers-reduced-motion: reduce) {
    .auction-player-flash-band {
        background: var(--physical-complaint-background);
        color: var(--physical-complaint-border);
        animation: none;
    }
}

.auction-private-grid {
    display: grid;
    grid-template-columns: minmax(13rem, 1fr) minmax(16rem, 1.2fr);
    gap: 0.3rem 1rem;
    margin: 0;
}

.auction-private-grid dd {
    margin: 0;
    font-weight: 800;
    text-align: right;
}

.auction-private-note {
    margin: 0;
    border-top: 2px solid var(--ink);
    padding-top: 0.45rem;
    font-size: 0.82em;
    text-align: center;
}

.auction-bid-mask {
    margin: 0;
    padding: 0.35em;
    border-block: 2px solid var(--ink);
    font-size: 1.1em;
    font-weight: 900;
    text-align: center;
}

.auction-bid-peek-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.7rem;
}

.auction-bid-peek-row .auction-bid-mask {
    flex: 0 1 28rem;
}

.auction-peek-button {
    min-width: 9ch;
    text-align: center;
    white-space: nowrap;
}

.table-touch-selector {
    width: 100%;
    gap: 0.25em;
}

.table-touch-selector #table-view-label {
    min-width: 16ch;
    text-align: center;
}

.auction-peek-help {
    margin: 0;
    font-size: 0.72em;
    font-weight: 700;
    text-align: center;
}

.auction-winner-content > p {
    margin: 0;
    font-size: 1.25em;
}

.auction-winner-bar {
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    width: min(100%, 54rem);
    padding: clamp(1rem, 3vh, 2.2rem);
    border: 4px solid var(--ink);
}

.auction-winner-bar strong {
    font-size: clamp(1.7rem, 4vw, 4rem);
    font-weight: 900;
}

.auction-winner-bar span {
    font-size: clamp(1.3rem, 2.5vw, 2.5rem);
    font-weight: 900;
}

@media (max-height: 820px) {
    .auction-player-name,
    .auction-bid-player strong {
        font-size: clamp(1.25rem, 2.4vw, 2rem);
    }

    .auction-private-grid {
        gap: 0.15rem 0.7rem;
    }

    .auction-private-note {
        font-size: 0.72em;
    }

    .auction-pool-row {
        padding-block: 0.25em;
    }

    .auction-pool-context {
        margin-top: 0.35em;
    }
}

.tactics-content > .help-text {
    grid-column: 1 / -1;
}

.delete-summary {
    gap: 0.65em;
}

.delete-summary > strong {
    max-width: 100%;
    overflow: hidden;
    font-size: 1.2rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.danger-warning {
    margin-top: 1.1em;
    font-weight: 700;
}

.danger-option.is-selected,
.danger-option:focus-visible {
    border-style: double;
}

.terminal-message {
    min-height: 1.25em;
    overflow: hidden;
    font-size: 0.82rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.terminal-message.is-error {
    border-left: 0.45em solid var(--ink);
    padding-left: 0.6em;
}

.terminal-message.is-success::before {
    content: "OK: ";
}

.terminal-detail {
    margin: 1.2em 0;
    padding: 0.7em 0;
    border-top: 2px solid var(--ink);
    border-bottom: 2px solid var(--ink);
}

.terminal-detail pre {
    margin: 0.5em 0;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
    font: inherit;
}

.installer form {
    max-width: 620px;
}

.installer label {
    display: block;
    margin: 1em 0 0.25em;
    font-weight: 700;
}

.installer input {
    width: 100%;
    padding: 0.5em 0.65em;
    border: 2px solid var(--ink);
    border-radius: 0;
    background: #8bd278;
    color: var(--ink);
}

.installer input:focus {
    outline: 0.25em solid var(--focus);
    outline-offset: 0;
}

.form-actions {
    margin-top: 1.2em;
}

.installation-result {
    margin-top: 1.3em;
}

.migration-list {
    margin: 0.5em 0 1.2em;
    padding-left: 3ch;
}

[hidden] {
    display: none !important;
}

@media (min-width: 2500px) {
    .game-shell {
        max-width: 3000px;
    }

    .kit-editor,
    .setup-summary {
        max-width: 1200px;
    }

    .kit-preview {
        width: 220px;
    }

    .kit-preview-large {
        width: 300px;
    }

    .team-kit-preview .kit-preview {
        width: 240px;
    }
}

@media (max-height: 820px) {
    :root {
        --safe-y: 14px;
        --screen-gap: 6px;
    }

    .terminal-header h1 {
        font-size: 1.45rem;
    }

    .terminal-footer {
        display: none;
    }

    .screen-header {
        min-height: 2em;
    }

    .setup-title::before,
    .setup-title::after {
        margin: 0.08em 0;
    }

    .kit-preview-large {
        width: 150px;
    }

    .team-kit-preview .kit-preview {
        width: 102px;
    }

    .team-metadata {
        gap: 0.08em;
    }

    .fixture-team {
        padding-top: 0;
        padding-bottom: 0;
    }

    .match-pass-label {
        margin-top: 0.6em;
    }

    .live-commentary {
        min-height: 1.75em;
        padding-block: 0.18em;
    }

    .halftime-player {
        font-size: 0.88rem;
    }

}

@media (max-width: 820px) {
    .home-dashboard,
    .kit-workspace,
    .confirm-workspace,
    .ready-layout {
        grid-template-columns: 1fr;
    }

    .home-dashboard,
    .screen-content {
        overflow-y: auto;
    }

    .system-panel {
        display: none;
    }

    .kit-workspace,
    .confirm-workspace {
        align-items: start;
    }

    .kit-preview-wrap {
        max-height: 180px;
    }

    .team-overview {
        grid-template-columns: minmax(0, 1fr) 120px;
    }

    .team-detail-content {
        overflow-x: auto;
    }

    .matchday-content,
    .preparation-content,
    .tactics-content {
        overflow-x: auto;
    }

    .tactics-content {
        grid-template-columns: minmax(520px, 1fr);
    }

    .live-match-grid {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, minmax(150px, 1fr));
        overflow-y: auto;
    }

    .league-table-head,
    .league-table-row {
        min-width: 760px;
    }

    .table-content {
        overflow-x: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .live-commentary.is-goal-flash {
        animation: none;
        background-color: var(--goal-flash-background) !important;
        color: var(--goal-flash-foreground) !important;
    }
}

@media (max-width: 560px) {
    body {
        font-size: 16px;
    }

    .terminal:not(.game-shell) {
        padding: 18px 14px 28px;
    }

    .save-entry {
        grid-template-columns: 1fr;
    }

    .save-delete {
        justify-self: start;
    }

    .screen-actions .terminal-menu {
        gap: 0;
    }

    .terminal-option {
        padding-left: 1.5em;
    }

    .kit-row {
        grid-template-columns: 1fr;
    }

    .kit-row > span:first-child::after {
        content: "";
    }

    .setup-summary {
        grid-template-columns: 11ch minmax(0, 1fr);
    }
}
.cup-bracket {
    max-width: 72rem;
    margin: 0 auto;
}

.pixel-cup-icon {
    width: 1em;
    height: 1em;
    margin-right: .45ch;
    vertical-align: -.14em;
}

.cup-bracket-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem 1.5rem;
}

.cup-draw-presentation {
    min-height: 5.5rem;
    text-align: center;
}

.cup-draw-status {
    margin: 0 0 .4rem;
    font-weight: 900;
}

.cup-reveal-band {
    max-width: 38rem;
    margin: 0 auto .45rem;
    padding: .65rem 1rem;
    border: 3px solid var(--ink);
    background: var(--cup-reveal-colour, #d7d7d7);
    color: var(--cup-reveal-ink, #000);
    font-size: clamp(1.15rem, 2.2vw, 1.7rem);
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
    animation: cup-team-reveal 1.7s steps(2, end) infinite;
}

@keyframes cup-team-reveal {
    0%, 49% {
        background: var(--cup-reveal-colour, #d7d7d7);
        color: var(--cup-reveal-ink, #000);
    }

    50%, 100% {
        background: #d7d7d7;
        color: #000;
    }
}

.cup-tie-row {
    display: grid;
    grid-template-columns: 10rem minmax(0, 1fr);
    gap: .75rem;
    margin: 0;
    padding: .35rem .25rem;
    border-bottom: 1px solid var(--ink);
}

.cup-tie-row span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cup-round-final {
    grid-column: 1 / -1;
}

.cup-resolution-row {
    text-align: center;
}

@media (max-width: 900px) {
    .cup-bracket-list {
        grid-template-columns: 1fr;
    }

    .cup-round-final {
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cup-reveal-band {
        animation: none;
    }
}

/* Phase 11: compact, TV-safe Season history and honours presentation. */
.hall-panel {
    flex: 0 0 auto;
    margin-top: .75em;
    padding-top: .55em;
    border-top: 2px solid var(--ink);
}

.hall-list {
    display: grid;
    gap: .2em;
}

.hall-entry {
    display: grid;
    grid-template-columns: 2.25em minmax(0, 1fr);
    align-items: center;
    gap: .55em;
    min-width: 0;
    font-size: .78rem;
    font-weight: 700;
}

.hall-entry span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hall-kit {
    width: 2.15em;
    height: 2.35em;
}

.season-setup-content,
.season-complete-content {
    max-width: 48rem;
    margin: 0 auto;
}

.season-honours-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(.25rem, 1vh, .7rem);
    text-align: center;
}

.season-honours-icon {
    min-height: 1.8em;
    font-size: clamp(2rem, 5vh, 4.5rem);
}

.season-honours-label,
.season-honours-winners {
    font-size: clamp(1.15rem, 2.2vw, 2.1rem);
    font-weight: 900;
}

.season-honours-kit {
    width: clamp(4.5rem, 9vh, 8rem);
    height: clamp(5.5rem, 12vh, 10rem);
}

.season-honours-manager,
.season-honours-value {
    font-weight: 700;
}

.season-joint-winner {
    display: grid;
    grid-template-columns: 2.6em minmax(0, 1fr);
    align-items: center;
    gap: .65em;
    margin: .15em 0;
    text-align: left;
}

.season-joint-kit {
    width: 2.5em;
    height: 2.8em;
}

.history-content,
.history-detail-content {
    min-height: 0;
    overflow-y: auto;
    scrollbar-color: var(--ink) var(--screen-green-dark);
}

.history-season-list {
    display: grid;
    gap: .25em;
    max-width: 62rem;
    margin: 0 auto;
}

.history-season-row {
    width: 100%;
}

.history-summary {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(14rem, .45fr);
    align-items: center;
    gap: clamp(1rem, 4vw, 4rem);
    max-width: 72rem;
    margin: 0 auto .85em;
    padding-block: .55em;
    border-block: 2px solid var(--ink);
}

.history-honours {
    display: grid;
    gap: .25em;
    min-width: 0;
}

.history-honours p {
    display: grid;
    grid-template-columns: minmax(18ch, .85fr) minmax(0, 1.15fr);
    gap: 1em;
}

.history-honours p span {
    overflow-wrap: anywhere;
}

.history-treble {
    display: block !important;
    color: #fff;
    background: #000;
    padding: .2em .5em;
    text-align: center;
}

.history-champion {
    display: grid;
    justify-items: center;
    align-content: center;
    min-width: 0;
    text-align: center;
}

.history-champion-kit {
    width: clamp(5rem, 8vw, 7.5rem);
    height: clamp(6rem, 10vw, 9rem);
}

.history-champion-label,
.history-champion-name,
.history-champion-manager {
    overflow-wrap: anywhere;
}

.history-champion-label {
    margin-top: .15em;
    font-size: .82em;
    font-weight: 900;
}

.history-champion-name {
    font-size: 1.05em;
}

.history-champion-manager {
    font-size: .76em;
    font-weight: 700;
}

.history-view {
    max-width: 72rem;
    margin: 0 auto;
}

.history-grid {
    display: grid;
    border-block: 2px solid var(--ink);
    font-size: clamp(.72rem, 1.25vw, 1rem);
}

.history-grid-row {
    display: grid;
    align-items: center;
    min-height: 1.7em;
    border-bottom: 1px solid var(--ink);
}

.history-grid-row:last-child {
    border-bottom: 0;
}

.history-grid-row span {
    min-width: 0;
    padding-inline: .25ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: right;
}

.history-grid-row span:nth-child(2) {
    text-align: left;
}

.history-grid-head {
    font-weight: 900;
}

.history-table-grid .history-grid-row {
    grid-template-columns: 3ch minmax(10ch, 1fr) repeat(8, minmax(3ch, 4ch));
}

.history-value-grid .history-grid-row {
    grid-template-columns: 3ch minmax(10ch, 1fr) minmax(9ch, .7fr) minmax(11ch, .8fr);
}

.history-cup-row {
    padding: .3em .4em;
    border-bottom: 1px solid var(--ink);
    overflow-wrap: anywhere;
}

/* Phase 12: public, read-only ZX-style Match preview. */
.pre-match-content {
    width: min(100%, 74rem);
    margin-inline: auto;
    overflow: hidden;
}

.pre-match-context {
    margin: 0 0 .35em;
    text-align: center;
    font-weight: 900;
}

.pre-match-versus {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 3ch minmax(0, 1fr);
    align-items: center;
    gap: clamp(.45rem, 1.8vw, 1.6rem);
}

.pre-match-team {
    min-width: 0;
}

.pre-match-side {
    margin: 0 0 .1em;
    text-align: center;
    font-size: clamp(.78rem, 1.25vw, 1.05rem);
    font-weight: 900;
}

.pre-match-team-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(2.6rem, 5vw, 4.2rem);
    align-items: center;
    min-height: clamp(2.8rem, 6vh, 4.6rem);
    margin-bottom: .25em;
    padding-inline: .45em;
    background: #d7d7d7;
    color: var(--ink);
    border: 2px solid var(--ink);
}

.pre-match-team-heading h3 {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: clamp(1rem, 2vw, 1.55rem);
}

.pre-match-kit {
    width: clamp(2.35rem, 4.5vw, 3.8rem);
    height: clamp(2.7rem, 5.4vw, 4.6rem);
    justify-self: end;
}

.pre-match-role {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 4ch;
    align-items: center;
    min-height: 1.55em;
    margin: 0 0 2px;
    padding-inline: .45em;
    border: 1px solid var(--ink);
    font-size: clamp(.8rem, 1.55vw, 1.2rem);
    font-weight: 900;
}

.pre-match-role strong {
    text-align: right;
}

.pre-match-morale {
    display: flex;
    justify-content: space-between;
    margin: .48em .35em .32em;
    color: var(--metric-morale);
    font-size: clamp(.9rem, 1.75vw, 1.3rem);
    font-weight: 900;
}

.pre-match-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(.3rem, 1vw, .8rem);
}

.pre-match-metrics p {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .4em;
    margin: 0;
    font-weight: 900;
}

.metric-formation,
.metric-energy {
    padding: .15em .35em;
    text-align: center;
    white-space: nowrap;
}

.metric-formation {
    background: var(--metric-formation-background);
    color: var(--metric-formation-foreground);
}

.metric-energy {
    background: var(--metric-energy-background);
    color: var(--metric-energy-foreground);
}

.pre-match-position {
    margin: .45em 0 0;
    padding: .15em .4em;
    background: var(--role-def-background);
    border: 1px solid var(--ink);
    color: var(--ink);
    font-weight: 900;
}

.pre-match-position strong {
    float: right;
}

.pre-match-v {
    font-size: clamp(1.2rem, 2.6vw, 2rem);
    font-weight: 900;
    text-align: center;
}

.universe-complete-content {
    gap: clamp(.8rem, 3vh, 2rem);
}

.universe-complete-content .setup-prompt {
    color: var(--metric-morale);
    font-size: clamp(1.15rem, 2.6vw, 2rem);
}

@media (max-width: 900px) {
    .hall-entry {
        font-size: .7rem;
    }

    .history-summary {
        grid-template-columns: minmax(0, 1fr) minmax(8.5rem, .35fr);
        gap: .65em;
    }

    .history-honours p {
        grid-template-columns: 1fr;
        gap: .05em;
    }

    .history-table-grid .history-grid-row {
        grid-template-columns: 2.5ch minmax(8ch, 1fr) repeat(8, minmax(2.4ch, 3.2ch));
    }

    .pre-match-versus {
        gap: .35rem;
        grid-template-columns: minmax(0, 1fr) 2ch minmax(0, 1fr);
    }

    .pre-match-team-heading {
        padding-inline: .25em;
    }

    .pre-match-role {
        padding-inline: .25em;
    }

    .pre-match-metrics {
        grid-template-columns: 1fr;
        gap: .2em;
    }
}

@media (max-height: 800px) {
    .pre-match-content {
        font-size: .9em;
    }

    .pre-match-team-heading {
        min-height: 2.55rem;
    }

    .pre-match-morale,
    .pre-match-position {
        margin-top: .28em;
        margin-bottom: .18em;
    }
}

/* Optional Game Master layer; Party Manager screens keep their existing layout. */
.gm-mode-choice { gap: .7em; }
.gm-mode-option { display: block; width: min(100%, 42ch); border-color: var(--ink); padding-block: .6em; }
.gm-mode-option span { display: block; margin-left: 1ch; font-size: .72em; font-weight: 400; }
.gm-mode-option.is-selected { background: var(--focus); }
.gm-owner-panel { gap: .35em; }
.gm-owner-panel p { margin: .45em 0; }
.gm-owner-panel a { color: var(--ink); overflow-wrap: anywhere; max-width: 100%; }
.gm-pair-code { display: block; padding: .25em .5em; background: #d9ee73; border: 3px solid var(--ink); font-size: clamp(1.2em, 3vw, 2em); letter-spacing: .08em; }
.gm-checkpoint-panel { gap: .5em; }
#gm-checkpoint-status { padding: .4em .8em; border: 3px solid var(--ink); font-weight: 700; }
.gm-continue:disabled { background: #838d83; color: #263326; border-color: #555f55; opacity: 1; cursor: not-allowed; }
.gm-continue.is-ready:not(:disabled) { background: #2470f5; color: #fff; border-color: #061e57; }
.gm-continue.is-ready:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
