/*
  Local visual experiment based on Refero Exante style.
  Keep this file as an override layer; remove the link in base.html to roll back.
*/
:root {
  --ex-obsidian: #173b29;
  --ex-paper: #fafcfa;
  --ex-black: #0f6b3e;
  --ex-graphite: #5d7465;
  --ex-ash: #cfe3d3;
  --ex-mint: #9dff8f;
  --ex-mint-soft: #eef8f0;
  --ex-leaf: #1f7a45;
  --ex-leaf-hover: #176238;
  --ex-sport: #0f6b3e;
  --ex-radius: 2px;
  --ex-image-radius: 8px;

  --bg: var(--ex-paper);
  --bg-soft: #f1f8f2;
  --surface: var(--ex-paper);
  --surface-soft: #ffffff;
  --text: var(--ex-obsidian);
  --muted: var(--ex-graphite);
  --muted-2: #6f8376;
  --border: var(--ex-ash);
  --border-strong: var(--ex-sport);
  --primary: var(--ex-leaf);
  --primary-hover: var(--ex-leaf-hover);
  --primary-soft: var(--ex-mint);
  --primary-soft-2: var(--ex-mint-soft);
  --accent: var(--ex-leaf);
  --accent-soft: var(--ex-mint);
  --navy: var(--ex-sport);
  --navy-soft: var(--ex-leaf);
  --radius-sm: var(--ex-radius);
  --radius-md: var(--ex-radius);
  --radius-lg: var(--ex-radius);
  --shadow-xs: none;
  --shadow-sm: none;
  --shadow-md: none;
}

html {
  background: var(--ex-paper);
}

body {
  background: var(--ex-paper) !important;
  color: var(--ex-obsidian);
  font-family: "Geist Variable", "Geist", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  letter-spacing: -0.01em;
}

.main-shell {
  max-width: 1200px;
  padding-top: 18px;
}

.topbar {
  background: var(--ex-paper) !important;
  border-bottom: 1px solid var(--ex-ash);
  backdrop-filter: none;
}

.topbar-inner {
  padding-top: 12px;
  padding-bottom: 12px;
}

.brand-mark {
  width: 38px;
  height: 38px;
  border-radius: var(--ex-radius);
  background: var(--ex-sport) !important;
  color: var(--ex-mint);
  box-shadow: none !important;
}

.brand-title,
.page-hero__title,
.card-title,
.section-card h5,
.section-card h6,
.tm-title,
.mrds-title,
.psi-title,
.school-tm-title,
.tournament-list-title {
  color: var(--ex-obsidian) !important;
  font-family: "Alliance No.2", "Geist", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight: 400 !important;
  letter-spacing: -0.04em;
}

.brand-subtitle,
.page-hero__text,
.card-subtitle,
.section-card__subtitle,
.tm-subtitle,
.mrds-text,
.mrds-card__meta,
.psi-subtitle,
.tm-note {
  color: var(--ex-graphite) !important;
}

.tabs-wrap {
  top: 63px;
  background: var(--ex-paper) !important;
  border-bottom: 1px solid var(--ex-ash);
  backdrop-filter: none;
}

.tabs-inner {
  padding-top: 8px;
  padding-bottom: 8px;
}

.tabs-top {
  gap: 6px;
}

.tabs-top .nav-link {
  border-radius: var(--ex-radius) !important;
  border: 1px solid transparent;
  color: var(--ex-graphite);
  font-size: 13px;
  font-weight: 500;
  padding: 9px 12px;
}

.tabs-top .nav-link:hover {
  background: var(--ex-mint-soft);
  border-color: var(--ex-ash);
  color: var(--ex-obsidian);
}

.tabs-top .nav-link.active {
  background: var(--ex-leaf) !important;
  color: var(--ex-paper) !important;
  border-color: var(--ex-leaf) !important;
  box-shadow: none !important;
}

.inline-pill,
.page-hero__eyebrow,
.metric-card__label,
.tm-eyebrow,
.mrds-eyebrow,
.psi-eyebrow,
.tm-mini-label {
  border-radius: var(--ex-radius) !important;
  color: var(--ex-obsidian) !important;
  font-family: "Geist Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
}

.inline-pill {
  background: var(--ex-mint) !important;
  border: 1px solid var(--ex-leaf);
  padding: 6px 9px;
}

.menu-trigger,
.btn,
.tm-primary,
.tm-secondary,
.tm-action,
.tm-danger-soft,
.tm-dark-soft,
.mrds-button,
.psi-button,
.school-tm-primary,
.school-tm-secondary,
.school-tm-event,
.tournament-calendar-event {
  border-radius: var(--ex-radius) !important;
  box-shadow: none !important;
  transform: none !important;
  font-weight: 500 !important;
}

.btn-primary,
.btn-success,
.tm-primary,
.tm-action,
.mrds-button,
.psi-button,
.school-tm-primary {
  background: var(--ex-leaf) !important;
  border-color: var(--ex-leaf) !important;
  color: var(--ex-paper) !important;
}

.btn-primary:hover,
.btn-success:hover,
.tm-primary:hover,
.tm-action:hover,
.mrds-button:hover,
.psi-button:hover {
  background: var(--ex-leaf-hover) !important;
  border-color: var(--ex-leaf-hover) !important;
  color: var(--ex-paper) !important;
}

.btn-outline-primary,
.btn-outline-success,
.btn-outline-secondary,
.btn-secondary,
.tm-secondary,
.school-tm-secondary,
.mrds-button--soft,
.psi-button--muted {
  background: var(--ex-paper) !important;
  border: 1px solid var(--ex-leaf) !important;
  color: var(--ex-leaf) !important;
}

.btn-outline-primary:hover,
.btn-outline-success:hover,
.btn-outline-secondary:hover,
.btn-secondary:hover,
.tm-secondary:hover,
.school-tm-secondary:hover,
.mrds-button--soft:hover,
.psi-button--muted:hover {
  background: var(--ex-mint) !important;
  color: var(--ex-obsidian) !important;
}

.btn-danger,
.btn-outline-danger,
.tm-danger-soft {
  background: #fff !important;
  border: 1px solid #dc2626 !important;
  color: #b91c1c !important;
}

.page-hero,
.fiz-card,
.card,
.section-card,
.metric-card,
.results-card,
.selection-card,
.btn-list,
.auth-card,
.auth-card__aside,
.auth-card__form,
.tm-panel,
.tm-modal,
.tm-metric,
.tm-conflicts,
.tm-team-card,
.tm-group-card,
.tm-match,
.tm-chat-message,
.mrds-head,
.mrds-card,
.mrds-stat,
.psi-head,
.psi-panel,
.psi-card,
.psi-row,
.training-diary-card,
.school-tm-head,
.school-tm-card,
.school-tm-event,
.school-tm-stat {
  border-radius: var(--ex-radius) !important;
  border-color: var(--ex-ash) !important;
  box-shadow: none !important;
}

.page-hero {
  background: linear-gradient(135deg, var(--ex-sport), var(--ex-leaf)) !important;
  color: var(--ex-paper) !important;
  border-color: var(--ex-leaf) !important;
}

.page-hero::after {
  display: none !important;
}

.page-hero .page-hero__title,
.page-hero .page-hero__text,
.page-hero .page-hero__eyebrow {
  color: var(--ex-paper) !important;
}

.page-hero .page-hero__eyebrow {
  border-color: rgba(255,255,255,.35) !important;
}

.metric-card {
  background: var(--ex-mint) !important;
  border-color: var(--ex-leaf) !important;
}

.metric-card__value {
  color: var(--ex-obsidian) !important;
  font-family: "Alliance No.2", "Geist", Inter, sans-serif;
  font-weight: 300 !important;
  letter-spacing: -0.05em;
}

.section-card__head,
.card-header {
  background: var(--ex-paper) !important;
  border-color: var(--ex-ash) !important;
}

.form-control,
.form-select,
.tm-input,
input,
select,
textarea {
  border-radius: var(--ex-radius) !important;
  border-color: var(--ex-ash) !important;
  background-color: var(--ex-paper) !important;
  color: var(--ex-obsidian) !important;
  box-shadow: none !important;
}

.form-control:focus,
.form-select:focus,
.tm-input:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: var(--ex-leaf) !important;
  box-shadow: 0 0 0 2px rgba(157, 255, 143, .45) !important;
}

.table,
table {
  color: var(--ex-obsidian);
  border-color: var(--ex-ash) !important;
}

.table thead th,
table thead th {
  background: var(--ex-mint-soft) !important;
  color: var(--ex-graphite) !important;
  border-bottom: 1px solid var(--ex-leaf) !important;
  font-family: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.badge,
.tm-counter,
.tm-chip,
.psi-chip {
  border-radius: var(--ex-radius) !important;
  box-shadow: none !important;
}

.tm-shell,
.mrds-page,
.psi-page,
.school-tm-page,
.tm-chat-page {
  background: var(--ex-paper) !important;
}

.tm-sticky {
  background: var(--ex-paper) !important;
  border-bottom: 1px solid var(--ex-ash) !important;
  backdrop-filter: none !important;
}

.tm-title {
  font-size: clamp(28px, 4vw, 52px) !important;
  line-height: 1.02 !important;
}

.tm-metric strong {
  color: var(--ex-obsidian) !important;
  font-family: "Alliance No.2", "Geist", Inter, sans-serif;
  font-weight: 300 !important;
  letter-spacing: -0.05em;
}

.tm-team-card,
.tm-group-card,
.tm-match,
.tm-standing-row,
.tm-final-row,
.score-box,
.school-card,
.tm-venue-picker-card,
.tm-venue-address-row,
.tm-selected-venue {
  background: var(--ex-paper) !important;
  border-color: var(--ex-ash) !important;
  border-radius: var(--ex-radius) !important;
}

.tm-team-card:hover,
.mrds-card:hover,
.psi-card:hover,
.selection-card:hover,
.btn-list:hover,
.school-card.is-selected {
  border-color: var(--ex-leaf) !important;
  background: var(--ex-mint-soft) !important;
}

.tm-team-card__title,
.tm-standing-row__team,
.tm-team-name,
.mrds-card__title,
.psi-card__title {
  color: var(--ex-obsidian) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em;
}

.tm-team-card__club,
.tm-team-card__school,
.tm-team-card__rep,
.tm-match__time,
.tm-note {
  color: var(--ex-graphite) !important;
}

.tm-status-pill,
.tm-status-finished,
.tm-status-live,
.tm-status-scheduled,
.tm-status-technical_loss,
.tm-status-absent,
.scoreboard-match--finished,
.scoreboard-match--live,
.scoreboard-match--technical_loss,
.scoreboard-match--absent,
.text-bg-success,
.text-bg-warning,
.text-bg-danger {
  /* Sport status colors intentionally stay functional. */
}

.tm-status-finished { border-color: #22c55e !important; background: #f0fdf4 !important; }
.tm-status-live { border-color: #facc15 !important; background: #fefce8 !important; }
.tm-status-scheduled { border-color: var(--ex-ash) !important; background: #f7f8f7 !important; }
.tm-status-technical_loss { border-color: #ef4444 !important; background: #fff1f2 !important; }
.tm-status-absent { border-color: #475569 !important; background: #f3f4f6 !important; }
.tm-status-pill--finished { background: #dcfce7 !important; color: #166534 !important; }
.tm-status-pill--live { background: #fef3c7 !important; color: #92400e !important; }
.tm-status-pill--scheduled { background: #e5e7eb !important; color: #374151 !important; }
.tm-status-pill--technical_loss { background: #fee2e2 !important; color: #991b1b !important; }
.tm-status-pill--absent { background: #475569 !important; color: #fff !important; }

.auth-card {
  max-width: 1040px;
}

.auth-card__aside {
  background: var(--ex-sport) !important;
}

.auth-card__badge {
  border-radius: var(--ex-radius) !important;
  background: var(--ex-mint) !important;
  color: var(--ex-obsidian) !important;
}

.side-menu {
  background: var(--ex-sport) !important;
}

.side-menu .menu-link {
  border-radius: var(--ex-radius) !important;
  border-color: rgba(255,255,255,.18) !important;
  background: transparent !important;
}

.side-menu .menu-link:hover,
.side-menu .menu-link.is-active {
  background: var(--ex-mint) !important;
  color: var(--ex-sport) !important;
}

.modal-content,
.offcanvas {
  border-radius: var(--ex-radius) !important;
  box-shadow: none !important;
}

@media (max-width: 767px) {
  .main-shell {
    padding: 14px 10px 40px;
  }

  .topbar-inner {
    padding: 10px;
  }

  .brand-mark {
    width: 34px;
    height: 34px;
  }

  .tabs-wrap {
    top: 55px;
  }

  .tabs-inner {
    padding: 7px 10px;
  }

  .page-hero,
  .section-card__body,
  .card .card-body,
  .tm-panel,
  .mrds-card,
  .psi-card {
    padding: 14px !important;
  }
}
