/*
  Golden Shuttle colour system.
  This is the shared source of truth for the cabinet and every tournament UI.
*/
:root {
  --gs-color-page: #f7f5f1;
  --gs-color-page-top: #f8f3e8;
  --gs-color-page-middle: #f5f0e6;
  --gs-color-surface: rgba(255, 255, 255, .88);
  --gs-color-surface-solid: #ffffff;
  --gs-color-surface-soft: #faf7f0;
  --gs-color-line: #e8dfcf;
  --gs-color-line-soft: #efe7da;
  --gs-color-text: #172033;
  --gs-color-muted: #6d7891;
  --gs-color-primary: #15233f;
  --gs-color-primary-2: #203153;
  --gs-color-accent: #c9a44a;
  --gs-color-accent-2: #e8cb76;
  --gs-color-accent-soft: #fbf4df;
  --gs-color-success: #167a4a;
  --gs-color-success-soft: #e7f6ee;
  --gs-color-warning: #a76612;
  --gs-color-warning-soft: #fff3dc;
  --gs-color-danger: #be4334;
  --gs-color-danger-soft: #fdecea;
  --gs-gradient-page: radial-gradient(circle at top left, rgba(231, 207, 142, .18), transparent 24%), linear-gradient(180deg, var(--gs-color-page-top) 0%, var(--gs-color-page-middle) 20%, var(--gs-color-page) 100%);
  --gs-gradient-primary: linear-gradient(145deg, var(--gs-color-primary), var(--gs-color-primary-2));
  --gs-gradient-accent: linear-gradient(145deg, var(--gs-color-accent), var(--gs-color-accent-2));
  --gs-gradient-surface: linear-gradient(180deg, var(--gs-color-surface-solid), var(--gs-color-surface-soft));
  --gs-shadow-sm: 0 6px 18px rgba(21, 35, 63, .06);
  --gs-shadow: 0 18px 50px rgba(21, 35, 63, .10);

  /* Shared compatibility aliases used by the existing cabinet components. */
  --bg: var(--gs-color-page);
  --surface: var(--gs-color-surface);
  --surface-strong: var(--gs-color-surface-solid);
  --line: var(--gs-color-line);
  --line-soft: var(--gs-color-line-soft);
  --text: var(--gs-color-text);
  --muted: var(--gs-color-muted);
  --navy: var(--gs-color-primary);
  --navy-2: var(--gs-color-primary-2);
  --navy2: var(--gs-color-primary-2);
  --gold: var(--gs-color-accent);
  --gold-2: var(--gs-color-accent-2);
  --gold-soft: var(--gs-color-accent-soft);
  --success: var(--gs-color-success);
  --success-soft: var(--gs-color-success-soft);
  --warn: var(--gs-color-warning);
  --warn-soft: var(--gs-color-warning-soft);
  --danger: var(--gs-color-danger);
  --danger-soft: var(--gs-color-danger-soft);
  --danger-bg: var(--gs-color-danger-soft);
  --shadow-sm: var(--gs-shadow-sm);
  --shadow: var(--gs-shadow);

  /* Tournament and Americano aliases point to the same tokens. */
  --tn: var(--gs-color-primary);
  --tn2: var(--gs-color-primary-2);
  --green: var(--gs-color-success);
  --red: var(--gs-color-danger);
  --orange: var(--gs-color-warning);
  --am-navy: var(--gs-color-primary);
  --am-navy-2: var(--gs-color-primary-2);
  --am-gold: var(--gs-color-accent);
  --am-bg: var(--gs-color-page);
  --am-card: var(--gs-color-surface-solid);
  --am-line: var(--gs-color-line);
  --am-soft: var(--gs-color-line-soft);
  --am-muted: var(--gs-color-muted);
  --am-green: var(--gs-color-success);
  --am-green-soft: var(--gs-color-success-soft);
  --am-red: var(--gs-color-danger);
  --am-red-soft: var(--gs-color-danger-soft);
  --am-warn: var(--gs-color-warning);
  --am-warn-soft: var(--gs-color-warning-soft);
}

html,
body {
  color: var(--gs-color-text);
  background: var(--gs-gradient-page);
}

.tn-top,
.am-topbar {
  border-color: var(--gs-color-line);
  background: rgba(247, 245, 241, .78);
  box-shadow: var(--gs-shadow-sm);
}

.tn-card,
.tn-stat,
.tn-match,
.tn-court,
.tn-bracket-match,
.tp-facts,
.tp-section,
.tp-entry-row,
.tp-category,
.tr-division-card,
.am-card {
  border-color: var(--gs-color-line);
  background: var(--gs-gradient-surface);
}

.tn-date,
.tn-btn.primary,
.tn-tab.active,
.tn-primary-action,
.tn-hero > .tn-card:first-child,
.tp-hero-main,
.tp-category-code,
.tp-payment-menu summary,
.tr-mode-tabs button.active,
.selected .tr-check,
.am-btn-primary,
.am-icon-btn,
.am-stepper output,
.am-tab.active,
.am-round-chip.active,
.am-toast,
.am-hero {
  border-color: var(--gs-color-primary);
  background: var(--gs-gradient-primary);
}

.tn-btn.gold,
.tp-payment-all summary,
.tr-checkout > button,
.tr-confirm-submit {
  border-color: var(--gs-color-accent);
  background: var(--gs-gradient-accent);
}

.tn-badge.green,
.tp-status.green,
.tn-success,
.tr-confirm-icon,
.am-status.active {
  color: var(--gs-color-success);
  background: var(--gs-color-success-soft);
}

.tn-badge.orange,
.tp-status.orange,
.tn-notice,
.am-status.draft,
.am-note,
.am-rest {
  color: var(--gs-color-warning);
  background: var(--gs-color-warning-soft);
}

.tn-badge.red,
.tn-error,
.tn-btn.danger,
.tp-cancel-btn:hover,
.am-btn-danger,
.am-remove {
  color: var(--gs-color-danger);
  background: var(--gs-color-danger-soft);
}

.tn-progress,
.am-soft,
.am-match-head {
  background: var(--gs-color-line-soft);
}

.tn-progress span,
.am-progress-line i {
  background: var(--gs-gradient-accent);
}

.gs-dialog {
  background: rgba(21, 35, 63, .52);
}

.gs-dialog-card {
  border-color: var(--gs-color-line);
  background: var(--gs-color-surface-solid);
  color: var(--gs-color-text);
}

.gs-dialog-button.primary {
  border-color: var(--gs-color-primary);
  background: var(--gs-gradient-primary);
}

.gs-dialog-button.primary.danger {
  border-color: var(--gs-color-danger);
  background: var(--gs-color-danger);
}

/* Deep links from the tournament catalogue briefly identify the target slot. */
.training-card.is-catalog-focus {
  border-color: var(--gs-color-accent);
  box-shadow: 0 0 0 4px rgba(201, 164, 74, .2), var(--gs-shadow-sm);
  transition: border-color .2s ease, box-shadow .2s ease;
}
