/* Club workspace. Colours inherit the shared light/dark design tokens.
   The layout keeps the playing hall's dense data readable without decorating it. */
.club-eyebrow {
  display: block;
  margin: 0 0 var(--tc-space-2, .5rem);
  color: var(--tc-muted, var(--muted));
  font: 600 var(--tc-text-xs, .75rem)/1.4 var(--tc-font, inherit);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.club-intro { max-width: 65ch; margin: .5rem 0 0; color: var(--tc-muted, var(--muted)); font-size: var(--tc-text-sm, .875rem); line-height: 1.65; }
.club-workspace-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.club-workspace-heading > div { min-width: 0; }
.club-workspace-heading__date { color: var(--tc-muted); font: 500 var(--tc-text-xs)/1.5 var(--tc-font-mono); white-space: nowrap; }
.club-tasknav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--tc-space-1, .25rem);
  margin: 0 0 var(--tc-space-5, 1.5rem);
  padding: var(--tc-space-1, .25rem);
  border: 1px solid var(--tc-border);
  border-radius: var(--tc-radius-md, 10px);
  background: var(--tc-surface);
}
.club-tasknav__item {
  display: flex;
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  min-height: var(--tc-touch, 44px);
  padding: .625rem 1rem;
  border-radius: var(--tc-radius-sm, 6px);
  color: var(--tc-muted);
  font-size: var(--tc-text-sm, .875rem);
  font-weight: 600;
  text-decoration: none;
  transition: background var(--tc-dur-fast) var(--tc-ease), color var(--tc-dur-fast) var(--tc-ease);
}
.club-tasknav__item:hover { background: var(--tc-bg); color: var(--tc-text); }
.club-tasknav__item[aria-current="page"] { background: var(--tc-accent-bg); color: var(--tc-accent-text); }
.club-tasknav__number { color: var(--tc-muted); font-family: var(--tc-font-mono); font-size: .6875rem; font-variant-numeric: tabular-nums; }
.club-tasknav__item[aria-current="page"] .club-tasknav__number { color: inherit; }
.club-tasknav__item > i { margin-left: auto; font-size: .625rem; }
.club-tasknav__item:focus-visible { outline: 2px solid var(--tc-accent); outline-offset: 2px; }
.club-switcher { display: flex; align-items: center; gap: .75rem; max-width: 32rem; }
.club-switcher label { flex-shrink: 0; color: var(--tc-muted); font-size: .75rem; font-weight: 600; }
.club-switcher select { flex: 1; min-width: 0; min-height: 44px; max-width: 100%; color: var(--tc-text); background-color: var(--tc-surface); }
.club-switcher { margin-top: 1rem; }
.club-switcher .tc-btn { min-width: 44px; padding-inline: .75rem; }
.club-overview { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; margin: 0 0 1.5rem; padding: 1.125rem 0; border-top: 1px solid var(--tc-border); border-bottom: 1px solid var(--tc-border); }
.club-overview > div { display: flex; align-items: baseline; gap: .625rem; }
.club-overview dt { margin: 0; color: var(--tc-muted); font-size: .75rem; font-weight: 500; }
.club-overview dd { margin: 0; color: var(--tc-text); font: 600 1.125rem/1.4 var(--tc-font-mono); }

/* Core screens share a workspace rhythm. More specific than legacy module rules,
   and loaded last, to avoid a new set of competing tokens. */
.admin .admin-main:is(.dash, .tor, .ops, .club-reports) { max-width: 1540px; margin-inline: auto; padding: clamp(1.25rem, 2.4vw, 2.5rem); }
.admin .dash-head, .admin .tor-head, .admin .ops-head { margin-block: 0 1.75rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--tc-border); }
.admin :is(.dash-title, .tor-title, .ops-title) { font-size: 1.875rem; line-height: 1.2; letter-spacing: -.045em; font-weight: 800; }
.admin :is(.dash-date, .tor-lbl, .ops-lbl) { font-family: var(--tc-font); }
.admin :is(.tor-sub, .ops-sub) { max-width: 65ch; line-height: 1.65; }
.admin :is(.dash-now, .tor-next) { border: 1px solid var(--tc-border); border-radius: var(--tc-radius-lg); background: var(--tc-surface); box-shadow: var(--tc-shadow); }
.admin .dash-now { grid-template-columns: minmax(0, 1fr) minmax(230px, .4fr); overflow: hidden; margin-bottom: 1.75rem; }
.admin .dash-now-main { padding: 2rem; }
.admin .dash-now-name { font-size: 1.625rem; letter-spacing: -.04em; line-height: 1.25; }
.admin .dash-now-side { background: var(--tc-bg); padding: 1.5rem; border-left: 1px solid var(--tc-border); }
.admin .dash-now-stats { border-top: 1px solid var(--tc-border); padding-top: 1.25rem; margin-top: 1.5rem; }
.admin .dash-num { font-family: var(--tc-font-mono); font-size: 1.375rem; letter-spacing: -.04em; }
.admin .dash-summary { gap: 1rem 2rem; padding: 1rem 0; margin-bottom: 1.75rem; background: transparent; border-top: 1px solid var(--tc-border); border-bottom: 1px solid var(--tc-border); border-radius: 0; }
.admin .dash-grid { gap: 1.75rem; }
.admin .tc-section-head { align-items: baseline; margin-bottom: .875rem; }
.admin .tc-section-head h2 { font-size: 1rem; letter-spacing: -.025em; font-weight: 700; }
.admin .tc-table-wrap { border-radius: var(--tc-radius-md); box-shadow: none; }
.admin .tc-table thead th { padding-block: 1rem; font-size: .6875rem; letter-spacing: .055em; color: var(--tc-muted); }
.admin .tc-table tbody td { padding-block: 1rem; vertical-align: middle; }
.admin .tc-table tbody tr { transition: background-color var(--tc-dur-fast) var(--tc-ease); }
.admin .tc-table tbody tr:hover { background-color: var(--tc-bg); }
.admin :is(.tc-table__title, .tor-name, .ops-player) { font-weight: 650; letter-spacing: -.02em; }
.admin :is(.tor-filters, .ops-filters) { background: var(--tc-surface); border: 1px solid var(--tc-border); border-radius: var(--tc-radius-md); padding: 1rem 1.25rem; }
.admin :is(.tor-filter-input, .ops-search, .ops-switcher select, .tor-filters .form-control, .tor-filters .form-select) { min-height: 44px; }
.admin :is(.ops-head-actions, .tor-head-actions) .btn { min-height: 44px; }
.admin :is(.dash, .tor, .ops) .btn { min-height: 44px; border-radius: var(--tc-radius-sm); }
.admin .tor-next { padding: 1.75rem; gap: 1.5rem; margin-block: 1.5rem; }
.admin .tor-next-title { font-size: 1.5rem; line-height: 1.3; letter-spacing: -.035em; }
.admin .tor-next-sub { line-height: 1.65; max-width: 65ch; }
.admin .tor-kpis { padding: 1.25rem 0; gap: 0; border: 0; border-top: 1px solid var(--tc-border); border-bottom: 1px solid var(--tc-border); border-radius: 0; background: transparent; margin-bottom: 1.5rem; }
.admin .tor-kpi { background: transparent; border: 0; border-radius: 0; padding: .25rem 1.5rem; }
.admin .tor-kpi:first-child { padding-left: 0; }
.admin .tor-kpi + .tor-kpi { border-left: 1px solid var(--tc-border); }
.admin .tor-kpi-v { font-size: 1.625rem; letter-spacing: -.04em; }
.admin .tor-card { border-radius: var(--tc-radius-md); box-shadow: none; overflow: hidden; }
.admin .tor-card-h { min-height: 60px; padding-inline: 1.25rem; }
.admin .tor-card-h h2 { font-size: .875rem; }
.admin .tor-card-b { padding: 1.25rem; }
.admin .tor-upload input[type="file"]::file-selector-button { min-height: 44px; padding-inline: .875rem; color: var(--tc-text); background: var(--tc-bg); border: 0; border-right: 1px solid var(--tc-border); margin-right: .75rem; font: inherit; }
.admin .tor-stand > li { padding-inline: 1.25rem; }
.admin .tor-links a { min-height: 48px; }
.admin .cc-mh-wrapper { border-bottom: 0; padding: 1.5rem 2rem 0; }
.admin .cc-mh-top { gap: 1.5rem; padding-bottom: 1.5rem; }
.admin .cc-mh-kicker { color: var(--tc-muted); letter-spacing: .08em; font-size: .6875rem; }
.admin .cc-mh-title { font-size: 1.875rem; letter-spacing: -.045em; font-weight: 800; line-height: 1.25; }
.admin .cc-mh-actions .cc-btn-outline { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; border-radius: var(--tc-radius-sm); }
.admin .cc-mh-wrapper .club-tasknav { margin: 0; }
.admin .cc-modern-content { padding-top: 1.5rem; }
.club-footer { font-size: .75rem; color: var(--tc-muted); }
.club-round-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.club-text-start { text-align: left; }
.club-resize-none { resize: none; }
.club-resize-vertical { resize: vertical; }

[aria-busy="true"]:is(.tc-btn, .btn) { cursor: progress; }
.tc-row-saving { opacity: .7; }
.tc-row-saved { background: var(--tc-accent-bg); }
.tc-inline-status { min-height: 1.25rem; margin: .375rem 0 0; font-size: .75rem; color: var(--tc-muted); }
.tc-inline-status[role="alert"] { color: var(--tc-danger); }
.tc-edit-row > td { padding: 1.25rem; background: var(--tc-bg); }
.tc-inline-editor { display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(6rem, 1fr) minmax(10rem, 1fr); gap: 1rem; align-items: end; }
.tc-inline-editor label { display: block; margin-bottom: .375rem; color: var(--tc-muted); font-size: .75rem; font-weight: 600; }
.tc-inline-editor :is(input, select) { width: 100%; min-height: 44px; }
.tc-field-error { color: var(--tc-danger); font-size: .75rem; margin-top: .375rem; }
.tc-field-error:empty { display: none; }
.tc-save-state { display: inline-flex; gap: .375rem; align-items: center; min-height: 1.25rem; color: var(--tc-muted); font-size: .75rem; }
.tor-doc-content { min-width: 0; }

/* Standings are a working table, with the engine's order kept intact. */
.club-reports [hidden] { display: none !important; }
.admin .club-reports > .cc-mh-wrapper { padding: 0; margin-bottom: 1.75rem; }
.club-reports .cta-head { margin-block: 0 1.5rem; }
.club-reports .cta-title { font-size: 1.5rem; letter-spacing: -.035em; }
.club-reports .cta-back { min-height: 44px; }
.club-reports .cta-facts { gap: .625rem 1.25rem; padding-top: .75rem; }
.club-export-drawer { margin-bottom: 1.5rem; border: 1px solid var(--tc-border); border-radius: var(--tc-radius-md); background: var(--tc-surface); }
.club-export-drawer > summary { display: flex; align-items: center; min-height: 52px; gap: .75rem; padding: .75rem 1.125rem; color: var(--tc-text); font-size: .875rem; font-weight: 600; cursor: pointer; list-style: none; }
.club-export-drawer > summary::-webkit-details-marker { display: none; }
.club-export-drawer > summary > span:first-child { display: flex; align-items: center; gap: .75rem; flex: 1; }
.club-export-drawer > summary::after { content: '+'; color: var(--tc-muted); font-size: 1.25rem; font-weight: 400; }
.club-export-drawer[open] > summary::after { content: '−'; }
.club-export-drawer > section { padding: 0 1.125rem 1.125rem; }
.club-export-drawer .tc-section-head { display: none; }
.club-export-count { color: var(--tc-muted); font-family: var(--tc-font-mono); font-size: .75rem; font-weight: 500; }
.club-standings-toolbar { display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1fr) auto; gap: 1rem; align-items: end; padding: 1rem 1.125rem; margin-bottom: 1.5rem; border: 1px solid var(--tc-border); border-radius: var(--tc-radius-md); background: var(--tc-surface); }
.club-standings-toolbar label { display: block; color: var(--tc-muted); font-size: .75rem; font-weight: 600; margin-bottom: .375rem; }
.club-standings-toolbar :is(input, select) { width: 100%; min-height: 44px; }
.club-standings-toolbar > p { align-self: center; margin: 1.25rem 0 0; color: var(--tc-muted); font: 500 .75rem/1.5 var(--tc-font-mono); }
.club-standings-scroll { max-height: 700px; overflow: auto; overscroll-behavior: contain; }
.club-standings-scroll:focus-visible { outline: 2px solid var(--tc-accent); outline-offset: 3px; }
.club-standings-table { min-width: 620px; border-collapse: separate; border-spacing: 0; }
.club-standings-table thead th { position: sticky; top: 0; z-index: 2; background: var(--tc-bg); white-space: normal; min-width: 100px; max-width: 180px; }
.club-standings-table :is(th, td):first-child { position: sticky; left: 0; z-index: 1; min-width: 60px; width: 60px; background: var(--tc-surface); }
.club-standings-table :is(th, td):nth-child(2) { position: sticky; left: 60px; z-index: 1; min-width: 180px; background: var(--tc-surface); }
.club-standings-table thead :is(th:first-child, th:nth-child(2)) { z-index: 3; background: var(--tc-bg); }
.club-standings-table tbody tr:hover :is(td:first-child, td:nth-child(2)) { background: var(--tc-bg); }
.club-standings-empty { margin: 0; padding: 2rem 1rem; text-align: center; color: var(--tc-muted); font-size: .875rem; }
.club-report-loading { padding: 1rem 1.25rem; }
.club-team-mark { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--tc-radius-sm); background: var(--tc-accent-bg); color: var(--tc-accent-text); font: 600 .75rem/1 var(--tc-font); }

/* Public tournament surfaces inherit ui-kit tokens, without importing admin UI. */
.pub-page.club-public { --tc-font: 'Plus Jakarta Sans', system-ui, sans-serif; --tc-font-mono: 'IBM Plex Mono', ui-monospace, monospace; --tc-bg: var(--bg-soft); --tc-surface: var(--bg); --tc-text: var(--ink); --tc-border: var(--line); --tc-muted: var(--muted); --tc-accent: var(--gold); --tc-accent-bg: var(--gold-bg); }
.club-public .pub-index-header { border-bottom: 1px solid var(--line); padding-bottom: 1.75rem; margin-bottom: 1.75rem; }
.club-public .pub-index-title { font-size: 2rem; letter-spacing: -.045em; max-width: 28ch; }
.club-public .pub-index-subtitle { line-height: 1.65; max-width: 65ch; }
.club-public .pub-filter-bar { padding: 1rem; background: var(--bg); border: 1px solid var(--line); border-radius: 10px; }
.club-public .pub-filter-bar :is(input, select, button, .pub-act-btn) { min-height: 44px; }
.club-public .pub-table { font-size: .875rem; }
.club-public .pub-table th { padding-block: .875rem; font-size: .6875rem; letter-spacing: .055em; }
.club-public .pub-table td { padding-block: 1rem; }
.club-public .pub-live-head { align-items: flex-start; padding-bottom: 1.75rem; border-bottom: 1px solid var(--line); }
.club-public .pub-live-title h1 { font-size: 1.875rem; letter-spacing: -.045em; line-height: 1.2; }
.club-public .pub-section { margin-top: 2rem; }
.club-public .pub-section > h2 { font-size: 1rem; letter-spacing: -.02em; margin-bottom: 1rem; }
.club-public .pub-section .tc-skeleton { background: var(--line); }
.club-public .pub-filter-action, .club-public .pub-compact-action { min-height: 44px; padding: .5rem .875rem; font-size: .85rem; }
.club-public .pub-small-dot { font-size: 6px; }
.club-public .pub-accent { color: var(--gold); }
.club-public .pub-ok { color: var(--tc-ok); }
.club-public .pub-tablewrap--flush { border: 0; border-radius: 0; }
.club-public .pub-empty-heading { font-size: 1.05rem; font-weight: 700; margin: 0 0 .375rem; color: var(--ink); }
.club-public .pub-empty-copy { margin: 0 0 1rem; }
.club-public .pub-data-link--strong { font-weight: 600; }
.club-public .pub-meta-muted { color: var(--muted); }
.club-public .pub-live-note { margin-top: .625rem; }

@media (max-width: 1100px) {
  .admin .dash-now { grid-template-columns: minmax(0, 1fr) minmax(200px, .45fr); }
  .club-tasknav__item { padding-inline: .75rem; gap: .5rem; }
}
@media (max-width: 768px) {
  .club-workspace-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .admin .admin-main:is(.dash, .tor, .ops, .club-reports) { padding: 1.125rem; }
  .admin :is(.dash-title, .tor-title, .ops-title), .admin .cc-mh-title { font-size: 1.5rem; }
  .admin .dash-now { grid-template-columns: 1fr; }
  .admin .dash-now-main { padding: 1.25rem; }
  .admin .dash-now-side { border-left: 0; border-top: 1px solid var(--tc-border); padding: 1.25rem; }
  .admin .tor-next { padding: 1.25rem; }
  .admin .tor-kpi { padding: .875rem 0; }
  .admin .tor-kpi + .tor-kpi { border-left: 0; border-top: 1px solid var(--tc-border); }
  .admin .tor-kpi-v { font-size: 1.375rem; }
  .admin .cc-mh-wrapper { padding: 1.25rem 1.125rem 0; }
  .club-tasknav { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  .club-tasknav__item { min-height: 54px; flex-direction: column; justify-content: center; gap: .125rem; padding: .5rem .125rem; font-size: .75rem; }
  .club-tasknav__item > i { display: none; }
  .club-tasknav__number { font-size: .625rem; }
  .club-overview { gap: .875rem 1.25rem; }
  .club-overview > div { flex-direction: column; gap: .125rem; }
  .club-switcher { max-width: none; flex-wrap: wrap; }
  .club-switcher label { width: 100%; }
  .club-switcher select { flex: 1; min-width: 0; }
  .tc-inline-editor { grid-template-columns: 1fr; }
  .club-standings-toolbar { grid-template-columns: 1fr; gap: .75rem; }
  .club-standings-toolbar > p { margin: 0; }
  .club-reports .cta-title { font-size: 1.25rem; }
  .club-export-drawer > section { padding-inline: .75rem; }
  .club-public .pub-index-title { font-size: 1.625rem; }
  .club-public .pub-live-title h1 { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .tc-row-saving, .tc-row-saved { transition: none; }
}
