/* Shared NTDB layout: original Verdana, white pages, grey framing and NT colours. */
:root { --text: #333; --muted: #555; --line: #d5d5d5; --grey: #e1e1e1; --panel: #f6f6f6; --selected: #d7e3bc; --accent: #53752f; }
* { box-sizing: border-box; font-size: inherit; }
body { margin: 8px; background: #fff; color: var(--text); font: 12px/1.4 Verdana, Arial, Helvetica, sans-serif; }
main { width: 90%; margin: 0 auto 24px; }
a { color: #3f5133; text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; color: #24331a; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
h1 { margin: 0; font-size: 16px; color: var(--text); }
h2 { margin: 12px 0 6px; font-size: 14px; }
h3, h4 { margin: 10px 0 6px; padding: 0; font-size: 13px; }
h3 a, h4 a { font-size: inherit; }
p { margin: 7px 0; }
.site-header, .site-footer { background: var(--grey); padding: 6px 10px; }
.site-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.site-header a { display: inline-block; padding: 4px 1px; }
.site-header .header-logout { display: inline; margin: 0; }
.site-header .header-logout button { color: #3f5133; background: transparent; border: 0; padding: 4px 1px; min-height: 0; line-height: inherit; }
.site-header .header-logout button:hover, .site-header .header-logout button:focus-visible { color: #24331a; text-decoration: underline; }
nav { line-height: 1.5; }
.site-footer { padding: 8px; text-align: center; color: var(--muted); font-size: 11px; }
.title-bar { border: 1px solid var(--line); padding: 8px 10px; }
.page-content { padding: 10px; border: 1px solid var(--line); border-top: 0; min-width: 0; overflow-wrap: anywhere; }
.language-switch { margin-left: auto; white-space: nowrap; }
.language-switch [aria-current=true] { font-weight: bold; text-decoration: underline; }
.header-login { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; }
.header-login label { margin: 0; }
.header-login input { width: 95px; }
label { display: inline-block; margin: 3px 8px 3px 0; }
input, select, button, textarea { font: inherit; color: var(--text); max-width: 100%; border: 1px solid #999; border-radius: 0; padding: 3px 4px; background: #fff; }
input:not([type=hidden]) { min-height: 24px; }
select, button { min-height: 28px; }
button, .button-link { cursor: pointer; background: #e9e9e9; border: 1px solid #999; padding: 5px 8px; color: var(--text); }
.button-link { display: inline-block; min-height: 28px; }
button:hover, .button-link:hover { background: #dedede; }
input[type=number] { width: 68px; }
input[type=checkbox], input[type=radio] { min-height: 0; }
textarea { display: block; width: min(100%, 800px); resize: vertical; }
label:has(> textarea) { display: block; }
fieldset { min-width: 0; margin: 8px 0; padding: 8px; border: 1px solid var(--line); }
legend { font-weight: bold; }
summary { cursor: pointer; font-weight: bold; padding: 5px 0; }
table { border-collapse: collapse; table-layout: fixed; width: 100%; margin: 8px 0; color: var(--text); }
th, td { border: 1px solid var(--line); padding: 3px 5px; text-align: left; vertical-align: top; overflow-wrap: anywhere; min-width: 0; }
th { background: #ebeee4; font-weight: bold; }
tbody tr:not([class]):nth-child(even) { background: var(--panel); }
table a { text-decoration: underline; }
.scroll { max-width: 100%; min-width: 0; }
.scroll td { white-space: normal; }
.notice, .error, .archive-explanation, .ranking-explanation { padding: 7px 9px; border: 1px solid var(--line); background: var(--panel); }
.notice { background: #e9efdb; border-color: #bfcbb0; }
.error { color: #900; border-color: #d9aaaa; background: #fff5f5; }
.access-message { max-width: 640px; }
.access-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.pre { white-space: pre-wrap; }
.muted, .submission-hint, .export-date-note { color: var(--muted); }
.submission-panel { max-width: 620px; margin: 16px auto 24px; }
.submission-panel h2, .submission-hint, .public-links { text-align: center; }
.public-links { margin: 16px 0 4px; }
.player-form { margin-top: 16px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px 16px; }
.form-grid label { display: grid; grid-template-columns: 90px minmax(0,1fr); align-items: center; gap: 6px; margin: 0; text-align: right; }
.form-grid input, .form-grid select { width: 100%; min-width: 0; }
.submit-row { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.paste-box { max-width: 620px; margin: 8px auto 16px; padding: 8px 10px; border: 1px solid var(--line); }
.paste-box textarea { width: 100%; min-height: 150px; }
.paste-box form { margin-top: 10px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(280px,1fr) minmax(0,2fr); gap: 20px; }
.dashboard-grid section { min-width: 0; }
.scouting-team { width: 100%; max-width: 420px; }
.scouting-team th, .scouting-team td { padding: 4px 7px; vertical-align: middle; }
.scouting-team th:last-child { width: 100px; }
.scouting-club { display: block; color: var(--muted); font-size: 11px; }
.account-editor { max-width: 720px; }
.import-token-panel { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 6px; }
.token-create-row { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; margin: 8px 0; }
.token-create-row label { margin: 0; display: flex; flex-direction: column; gap: 3px; }
.import-token-copy { margin-top: 6px; }
.import-token-list form { margin: 0; }
.token-delete summary { font-weight: normal; }
.token-delete p { margin: 4px 0; }
.import-token-help > summary { display: flex; align-items: center; gap: 7px; width: fit-content; list-style: none; padding: 4px 0; }
.import-token-help > summary::-webkit-details-marker { display: none; }
.import-token-help h2 { margin: 0; }
.help-icon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-size: 12px; }
.import-help-content { max-width: 800px; padding: 8px 10px; margin: 6px 0; border: 1px solid var(--line); background: var(--panel); }
.import-help-content pre { white-space: pre-wrap; overflow-wrap: anywhere; margin: 8px 0; padding: 8px; border: 1px solid var(--line); background: #fff; }
.section-tabs { padding: 8px 0; border-bottom: 1px solid var(--line); }
.section-tabs a { display: inline-block; padding: 5px 3px; }
.requirements-table { max-width: 660px; }
.requirements-table th, .requirements-table td { vertical-align: middle; padding: 3px 4px; }
.requirements-table th:first-child { width: 62px; }
.requirements-table th:last-child { width: 88px; }
.requirements-table form { margin: 0; }
.requirements-table input { width: 100%; min-width: 0; padding: 2px 4px; }
.requirements-table button { min-height: 24px; padding: 3px 6px; }
.requirements-formulas { max-width: 660px; }
.requirements-table.stacked-table tr:not(.table-column-headings) { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; margin-bottom: 6px; }
.requirements-table.stacked-table tr > :first-child { padding: 4px 7px; }
.requirements-table.stacked-table tr > :first-child::before { display: inline; content: 'Alter '; }
.requirements-table.stacked-table td:last-child { align-content: end; }
.player-navigation { margin-bottom: 14px; }
.player-navigation h2 { margin: 0 0 8px; }
.player-nav-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
.player-nav-grid a, .ranking-modes a { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 6px 8px; border: 1px solid #aaa; background: var(--panel); color: var(--text); }
.player-nav-label, .ranking-modes strong { font-size: 13px; font-weight: bold; }
.player-nav-description, .ranking-modes span { color: var(--muted); font-size: 11px; }
.player-nav-grid a:hover, .ranking-modes a:hover { background: #ebeee4; text-decoration: none; }
.player-count { margin: 12px 0; }
.age-tabs, .position-tabs, .ranking-jumps { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0 12px; }
.age-tabs a, .position-tabs a, .ranking-jumps a { display: inline-block; min-height: 28px; padding: 5px 8px; border: 1px solid #aaa; background: var(--panel); color: var(--text); }
.position-tabs a { font-weight: bold; }
.player-nav-grid a[aria-current=page], .ranking-modes a[aria-current=page], .age-tabs a[aria-current=page], .position-tabs a[aria-current=page] { background: var(--selected); border-color: var(--accent); font-weight: bold; }
.ranking-modes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.ranking-presets { max-width: 760px; margin-bottom: 10px; }
.ranking-presets h2 { margin: 0 0 6px; }
.ranking-presets p { margin: 4px 0 8px; }
.ranking-preset-row { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding: 4px 0; border-bottom: 1px solid var(--line); }
.ranking-preset-row > strong { width: 52px; }
.ranking-preset-row > a { display: inline-block; padding: 5px 9px; border: 1px solid #aaa; background: var(--panel); text-align: center; min-width: 44px; }
.ranking-preset-row > a[aria-current=page] { background: var(--selected); border-color: var(--accent); font-weight: bold; }
.ranking-preset-bestof { padding-top: 8px; }
.ranking-options { margin: 10px 0; }
.toplist-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; padding: 10px; border: 1px solid var(--line); background: var(--panel); }
.toplist-filters label { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.ranking-group { margin-top: 18px; scroll-margin-top: 12px; }
.ranking-formula { overflow-wrap: anywhere; }
.ranking-year { margin: 14px 0; scroll-margin-top: 12px; }
.ranking-year h3 { padding: 6px 8px; background: var(--grey); }
.ranking-year h3 span { font-size: 12px; font-weight: normal; }
.top-ten-divider td { border-top: 2px solid var(--accent); background: #ebeee4; font-weight: bold; }
.ranking-export { margin: 12px 0; }
.forum-export { padding: 10px; border: 1px solid var(--accent); background: var(--panel); }
.forum-export h2, .forum-export h3 { margin: 0 0 8px; }
.forum-export textarea { width: 100%; min-height: 125px; max-height: 400px; font-family: monospace; }
.forum-export-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0; }
.copy-forum { font-weight: bold; background: var(--selected); border-color: var(--accent); }
.weights-table input { width: 68px; }
.player-search { margin: 12px 0; padding: 8px 10px; border: 1px solid var(--line); }
.player-search h2 { margin: 0 0 10px; }
.search-table { width: 100%; max-width: 680px; margin: 0; table-layout: auto; border-collapse: separate; border-spacing: 2px; }
.search-table td { border: 0; padding: 1px 3px; vertical-align: middle; }
.search-table tbody tr:not([class]):nth-child(even) { background: transparent; }
.search-table label { margin: 0; }
.search-table input { width: 96px; padding: 3px; }
.search-table select { padding: 3px; }
.search-table .search-comparison input { width: 34px; }
.search-comparison select { width: 48px; }
.search-table .search-spacer { min-width: 20px; }
.search-table .search-swatch { min-width: 30px; }
.search-options { margin: 8px 0 0 5px; }
.player-list th, .player-list td { padding: 3px 2px; }
.player-list th { font-size: 11px; }
.score-column { width: 4%; }
.name-column { width: 25%; }
.basic-column { width: 3%; }
.skill-column { width: 2.5%; }
.meta-column, .action-column { width: 6%; }
.status-column { width: 7%; }
.info-column { width: 4%; }
.stacked-table, .stacked-table tbody { display: block; width: 100%; }
.stacked-table colgroup { display: none; }
.stacked-table .table-column-headings { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
.stacked-table tr:not(.table-column-headings) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 10px; border: 1px solid var(--line); }
.stacked-table.wide-table tr:not(.table-column-headings) { grid-template-columns: repeat(4,minmax(0,1fr)); }
.stacked-table td, .stacked-table th { display: block; padding: 5px 7px; }
.stacked-table [data-label]::before { content: attr(data-label); display: block; font-weight: bold; margin-bottom: 2px; }
.stacked-table:not(.wide-table) tr > :first-child, .stacked-table .player-name-cell, .stacked-table .table-full-row { grid-column: 1 / -1; }
.stacked-table .player-name-cell { order: -1; font-weight: bold; }
.player-editor { max-width: 960px; margin: 0 auto; }
.player-edit-header { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--line); }
.player-edit-title { align-self: center; text-align: center; padding: 12px; }
.player-edit-title h2 { font-size: 24px; color: #777; }
.player-edit-forum { padding: 8px; border-left: 1px solid var(--line); min-width: 0; }
.player-edit-forum label { margin: 0; }
.player-edit-forum textarea { width: 100%; min-height: 130px; }
.player-edit-body { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 18px; padding: 16px 10px 8px; }
.player-edit-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 16px; }
.player-edit-fields label { display: grid; grid-template-columns: 78px minmax(0,1fr); align-items: center; gap: 5px; text-align: right; margin: 0; min-width: 0; }
.player-edit-fields label:nth-child(even) { text-align: left; direction: rtl; }
.player-edit-fields label:nth-child(even) > * { direction: ltr; }
.player-edit-fields input, .player-edit-fields select { width: 100%; min-width: 0; }
.player-edit-notes { min-width: 0; }
.player-edit-notes label { margin: 0; height: 100%; }
.player-edit-notes textarea { width: 100%; min-height: 260px; height: calc(100% - 24px); }
.player-edit-save { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin: 10px 0; }
.player-edit-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; border-top: 1px solid var(--line); padding: 8px; }
@media (max-width: 900px) {
  .player-edit-body { grid-template-columns: 1fr; }
  .player-edit-notes textarea { height: 120px; min-height: 120px; }
}
@media (max-width: 700px) {
  .stacked-table.wide-table tr:not(.table-column-headings) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .search-table, .search-table tbody { display: block; width: 100%; }
  .search-table tr { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 4px; margin-bottom: 6px; }
  .search-table td { display: block; padding: 2px; }
  .search-table td:empty:not(.search-swatch), .search-table .search-spacer { display: none; }
  .search-table .search-swatch { width: 30px; min-height: 20px; justify-self: end; }
  .search-table input { width: 100%; }
  .search-table .search-comparison { display: flex; gap: 4px; }
  .search-table .search-comparison input { width: 44px; }
  .player-edit-header, .player-edit-fields { grid-template-columns: 1fr; }
  .player-edit-forum { border-left: 0; border-top: 1px solid var(--line); }
  .player-edit-fields label, .player-edit-fields label:nth-child(even) { grid-template-columns: 85px minmax(0,1fr); text-align: right; direction: ltr; }
}
@media (max-width: 900px) {
  .dashboard-grid { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 680px) {
  body { margin: 6px; }
  main { width: 100%; }
  .page-content { padding: 8px; }
  .form-grid, .ranking-modes { grid-template-columns: 1fr; }
  .form-grid label { grid-template-columns: 90px minmax(0,1fr); }
  .player-nav-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 340px) { .player-nav-grid { grid-template-columns: 1fr; } }

.maintenance-tools { padding: 7px; border: 1px solid var(--line); background: #f1f3ee; font-weight: bold; }
.waiting-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 10px; margin: 0 0 12px; border: 1px solid #748265; background: #edf1e7; }
.waiting-actions strong, .waiting-actions span { display: block; }
.waiting-actions span { margin-top: 3px; }
.waiting-check-link { display: inline-block; padding: 8px 12px; border: 1px solid #38482e; background: #47593a; color: #fff; font-weight: bold; text-decoration: none; }
.waiting-check-link:hover, .waiting-check-link:focus-visible { background: #304125; color: #fff; text-decoration: underline; }
.maintenance-table.positions-preview th:nth-child(1) { width: 9%; }
.maintenance-table.positions-preview th:nth-child(2) { width: 17%; }
.maintenance-table.positions-preview th:nth-child(3) { width: 12%; }
.maintenance-table.positions-preview th:nth-child(4) { width: 33%; }
.proposal-skills { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px 10px; margin: 0; }
.proposal-skills > div { display: flex; justify-content: space-between; gap: 4px; min-width: 0; }
.proposal-skills dt { min-width: 0; }
.proposal-skills dd { margin: 0; font-weight: bold; font-variant-numeric: tabular-nums; }
.positions-preview.stacked-table .proposal-skills-cell { grid-column: 1 / -1; }
.maintenance-panel { max-width: 1000px; margin: auto; }
.maintenance-panel form { margin-bottom: 12px; }
.maintenance-panel input[type="checkbox"] { width: auto; min-width: 0; }
.maintenance-table { width: 100%; table-layout: fixed; }
.maintenance-table th:first-child { width: 12%; }
.maintenance-table th:nth-child(2) { width: 28%; }
.maintenance-table th:nth-child(3) { width: 18%; }
.maintenance-table td, .maintenance-table th { white-space: normal; overflow-wrap: anywhere; padding: 5px; vertical-align: top; }
.maintenance-panel details { border-top: 1px solid var(--line); padding-top: 8px; }
.maintenance-code { font-family: monospace; letter-spacing: 1px; }
.cleanup-checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 12px 0 16px; }
.cleanup-checks section { min-width: 0; padding: 10px; border: 1px solid var(--line); background: #f7f8f5; }
.cleanup-checks h2 { margin: 0 0 10px; font-size: 13px; }
.cleanup-checks label { display: block; margin: 5px 0; }
.cleanup-checks input[type="date"] { display: block; margin-top: 4px; }
.cleanup-checks .cleanup-check { margin-bottom: 10px; }
.cleanup-hint, .cleanup-progress small { color: #555; }
.cleanup-progress small { display: block; margin-top: 3px; }
.cleanup-checks details p { margin: 7px 0; }
.cleanup-checks code { overflow-wrap: anywhere; }
@media (max-width: 760px) { .cleanup-checks { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .maintenance-table, .maintenance-table tbody { display: block; }
  .maintenance-table thead { display: none; }
  .maintenance-table tr { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); border-bottom: 1px solid var(--line); }
  .maintenance-table td { display: block; min-width: 0; }
}
