/* =========================================================
   Golf Club admin theme — friendly SaaS, dense, hi-fi
   Applies the design tokens from the redesign on top of
   Orchid's default Bootstrap-based UI.
   ========================================================= */

:root,
[data-bs-theme="light"] {
  /* Brand (indigo) */
  --brand-50:  #eef4ff;
  --brand-100: #dbe6ff;
  --brand-200: #b9ceff;
  --brand-300: #8aabff;
  --brand-400: #5d83fb;
  --brand-500: #3a62f0;
  --brand-600: #2848d6;
  --brand-700: #2138ab;
  --brand-800: #1f3289;
  --brand-900: #1d2d6e;

  /* Surfaces */
  --gc-bg:        #f6f7fb;
  --gc-surface:   #ffffff;
  --gc-surface-2: #fbfbfd;
  --gc-surface-3: #f1f3f9;
  --gc-border:    #e6e8ef;
  --gc-border-strong: #d6d9e3;
  --gc-text:   #0f1530;
  --gc-text-2: #474d63;
  --gc-text-3: #737a92;
  --gc-text-4: #a4aabd;

  --gc-green-50:#e8f8ee; --gc-green-500:#1aa863; --gc-green-600:#147c4a;
  --gc-amber-50:#fff5e0; --gc-amber-500:#e0a219; --gc-amber-600:#a87311;
  --gc-red-50:#fdecec;   --gc-red-500:#d83a3a;   --gc-red-600:#a32a2a;
  --gc-violet-50:#efeafe;--gc-violet-500:#7c5cf2;--gc-violet-600:#5b3edd;
  --gc-teal-50:#e2f6f4;  --gc-teal-500:#13a89e;  --gc-teal-600:#0c7d76;

  --gc-radius-sm: 8px;
  --gc-radius:    12px;
  --gc-radius-lg: 18px;
  --gc-shadow-sm: 0 1px 2px rgba(20,28,60,.06), 0 1px 1px rgba(20,28,60,.04);
  --gc-shadow:    0 4px 14px rgba(20,28,60,.06), 0 1px 2px rgba(20,28,60,.04);
  --gc-shadow-lg: 0 22px 40px -16px rgba(20,28,60,.18), 0 6px 16px -8px rgba(20,28,60,.10);

  /* Bootstrap variable overrides */
  --bs-body-font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --bs-body-font-size: 14px;
  --bs-body-color: var(--gc-text);
  --bs-body-bg: var(--gc-bg);
  --bs-body-color-rgb: 15, 21, 48;
  --bs-body-bg-rgb: 246, 247, 251;
  --bs-secondary-color: var(--gc-text-3);
  --bs-tertiary-color: var(--gc-text-4);
  --bs-tertiary-bg: var(--gc-surface-3);
  --bs-secondary-bg: var(--gc-surface-2);
  --bs-border-color: var(--gc-border);
  --bs-border-color-translucent: var(--gc-border);
  --bs-link-color: var(--brand-600);
  --bs-link-hover-color: var(--brand-700);
  --bs-primary: var(--brand-500);
  --bs-primary-rgb: 58, 98, 240;
  --bs-primary-bg-subtle: var(--brand-50);
  --bs-primary-text-emphasis: var(--brand-700);
  --bs-border-radius: var(--gc-radius);
  --bs-border-radius-sm: var(--gc-radius-sm);
  --bs-border-radius-lg: var(--gc-radius-lg);
}

[data-bs-theme="dark"] {
  --gc-bg:        #0d1020;
  --gc-surface:   #151933;
  --gc-surface-2: #1a1f3d;
  --gc-surface-3: #232850;
  --gc-border:    #262c52;
  --gc-border-strong: #343b6a;
  --gc-text:   #f1f3ff;
  --gc-text-2: #c5cae6;
  --gc-text-3: #8b91b8;
  --gc-text-4: #5b6088;

  --bs-body-color: var(--gc-text);
  --bs-body-bg: var(--gc-bg);
  --bs-secondary-color: var(--gc-text-3);
  --bs-tertiary-bg: var(--gc-surface-3);
  --bs-secondary-bg: var(--gc-surface-2);
  --bs-border-color: var(--gc-border);
  --bs-border-color-translucent: var(--gc-border);
}

/* ---------- Typography ---------- */
body {
  font-family: var(--bs-body-font-family) !important;
  background: var(--gc-bg) !important;
  color: var(--gc-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  letter-spacing: -.005em;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--bs-body-font-family);
  letter-spacing: -.02em;
  font-weight: 700;
  color: var(--gc-text);
}
.text-muted, .small.text-muted { color: var(--gc-text-3) !important; }

code, pre, kbd, samp, .font-monospace {
  font-family: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace !important;
}

/* ---------- Sidebar / Nav ---------- */
.sidebar,
nav.sidebar,
aside.sidebar,
.layout-sidebar,
.h-100.position-fixed.bg-body {
  background: var(--gc-surface) !important;
  border-right: 1px solid var(--gc-border) !important;
}
.sidebar .nav-link,
.sidebar a.nav-link,
.layout-sidebar a {
  color: var(--gc-text-2) !important;
  font-weight: 500;
  font-size: 13.5px;
  padding: 8px 12px;
  border-radius: 10px;
  margin: 1px 6px;
  transition: background .12s ease, color .12s ease;
}
.sidebar .nav-link:hover,
.sidebar a.nav-link:hover,
.layout-sidebar a:hover {
  background: var(--gc-surface-3) !important;
  color: var(--gc-text) !important;
}
.sidebar .nav-link.active,
.sidebar a.nav-link.active,
.sidebar .active > .nav-link,
.layout-sidebar a.active {
  background: color-mix(in srgb, var(--brand-500) 10%, transparent) !important;
  color: var(--brand-700) !important;
  box-shadow: none !important;
}
[data-bs-theme="dark"] .sidebar .nav-link.active,
[data-bs-theme="dark"] .sidebar a.nav-link.active {
  background: color-mix(in srgb, var(--brand-500) 22%, transparent) !important;
  color: var(--brand-200) !important;
}
.sidebar .nav-link .icon,
.sidebar .nav-link svg,
.sidebar .nav-link i {
  opacity: .85;
}
.sidebar .menu-title,
.sidebar .text-uppercase,
.layout-sidebar .text-uppercase,
.sidebar small.text-muted {
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gc-text-4) !important;
  padding: 12px 14px 6px;
}

/* Brand area */
.brand,
.layout-sidebar .brand,
.sidebar > .p-3:first-child,
.sidebar header {
  padding: 14px 14px 10px !important;
  border-bottom: 1px solid var(--gc-border);
}

/* ---------- Topbar / Header ---------- */
.navbar,
header.navbar,
.layout-header {
  background: var(--gc-surface) !important;
  border-bottom: 1px solid var(--gc-border);
  min-height: 56px;
  padding-left: 20px;
  padding-right: 20px;
  box-shadow: none;
}
.breadcrumb {
  font-size: 13px;
  margin: 0;
}
.breadcrumb a { color: var(--gc-text-3); }
.breadcrumb-item.active { color: var(--gc-text); font-weight: 600; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--gc-text-4); }

/* ---------- Content area ---------- */
main, .main, .layout-content {
  background: var(--gc-bg) !important;
}
.content,
.layout-content > .container-fluid,
.layout-content > .container {
  padding: 20px 24px 40px !important;
}

/* ---------- Cards ---------- */
.card {
  background: var(--gc-surface);
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-lg);
  box-shadow: var(--gc-shadow-sm);
}
.card + .card { margin-top: 12px; }
.card-header {
  background: transparent;
  border-bottom: 1px solid var(--gc-border);
  padding: 14px 18px;
  font-weight: 700;
  font-size: 14.5px;
  color: var(--gc-text);
}
.card-header .card-title,
.card-title { font-weight: 700; font-size: 14.5px; margin-bottom: 0; color: var(--gc-text); }
.card-body { padding: 16px 18px; }
.card-footer {
  background: transparent;
  border-top: 1px solid var(--gc-border);
  padding: 12px 18px;
}

/* ---------- Buttons ---------- */
.btn {
  border-radius: 10px;
  font-weight: 600;
  font-size: 13px;
  padding: 8px 14px;
  border-width: 1px;
  transition: background-color .12s ease, border-color .12s ease, transform .04s ease;
  letter-spacing: -.005em;
}
.btn:active { transform: translateY(.5px); }
.btn-sm { padding: 6px 10px; font-size: 12.5px; border-radius: 8px; }
.btn-lg { padding: 10px 16px; font-size: 14px; border-radius: 11px; }

.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info {
  border-color: transparent !important;
  color: #fff !important;
}
.btn-primary {
  background: var(--brand-500) !important;
  box-shadow: 0 6px 14px -6px color-mix(in srgb, var(--brand-500) 60%, transparent);
}
.btn-primary:hover, .btn-primary:focus {
  background: var(--brand-600) !important;
}
.btn-success { background: var(--gc-green-500) !important; }
.btn-success:hover { background: var(--gc-green-600) !important; }
.btn-danger  { background: var(--gc-red-500) !important; }
.btn-danger:hover { background: var(--gc-red-600) !important; }
.btn-warning { background: var(--gc-amber-500) !important; color: #fff !important; }
.btn-warning:hover { background: var(--gc-amber-600) !important; }
.btn-info    { background: var(--gc-teal-500) !important; }
.btn-info:hover { background: var(--gc-teal-600) !important; }

.btn-secondary,
.btn-outline-secondary,
.btn-light,
.btn-default {
  background: var(--gc-surface) !important;
  border-color: var(--gc-border) !important;
  color: var(--gc-text) !important;
}
.btn-secondary:hover,
.btn-outline-secondary:hover,
.btn-light:hover {
  background: var(--gc-surface-3) !important;
  color: var(--gc-text) !important;
}

.btn-link { color: var(--brand-600) !important; text-decoration: none; }
.btn-link:hover { color: var(--brand-700) !important; }

/* ---------- Forms ---------- */
.form-control,
.form-select,
input.form-control,
textarea.form-control {
  background: var(--gc-surface-2);
  border: 1px solid var(--gc-border);
  border-radius: 10px;
  padding: 8px 12px;
  font-size: 13.5px;
  color: var(--gc-text);
  min-height: 38px;
}
.form-control:focus,
.form-select:focus {
  background: var(--gc-surface);
  border-color: var(--brand-400);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-400) 18%, transparent);
}
.form-label { font-size: 12.5px; font-weight: 600; color: var(--gc-text-2); margin-bottom: 4px; }
.form-text { color: var(--gc-text-3); font-size: 11.5px; }

.input-group-text {
  background: var(--gc-surface-3);
  border-color: var(--gc-border);
  color: var(--gc-text-3);
}

/* ---------- Tables ---------- */
.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--gc-text);
  --bs-table-border-color: var(--gc-border);
  --bs-table-hover-bg: var(--gc-surface-2);
  --bs-table-striped-bg: var(--gc-surface-2);
  font-size: 13px;
  margin-bottom: 0;
}
.table thead th {
  font-size: 11px;
  font-weight: 600;
  color: var(--gc-text-3);
  text-transform: uppercase;
  letter-spacing: .06em;
  background: var(--gc-surface-2);
  border-bottom: 1px solid var(--gc-border);
  padding: 10px 14px;
  white-space: nowrap;
}
.table tbody td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--gc-border);
  vertical-align: middle;
  color: var(--gc-text);
}
.table tbody tr:hover { background: var(--gc-surface-2); }
.table tbody tr:last-child td { border-bottom: 0; }

.table .text-muted { color: var(--gc-text-3) !important; }

/* Tables inside cards: remove redundant top border */
.card > .table-responsive > .table > thead > tr > th,
.card .table thead th { border-top: 0; }

/* ---------- Badges ---------- */
.badge {
  font-size: 11.5px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 999px;
  letter-spacing: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.badge.bg-primary    { background: color-mix(in srgb, var(--brand-500) 12%, transparent) !important; color: var(--brand-700) !important; }
.badge.bg-success    { background: var(--gc-green-50) !important;  color: var(--gc-green-600) !important; }
.badge.bg-warning    { background: var(--gc-amber-50) !important;  color: var(--gc-amber-600) !important; }
.badge.bg-danger     { background: var(--gc-red-50) !important;    color: var(--gc-red-600) !important; }
.badge.bg-info       { background: var(--gc-teal-50) !important;   color: var(--gc-teal-600) !important; }
.badge.bg-secondary  { background: var(--gc-surface-3) !important; color: var(--gc-text-2) !important; }
.badge.bg-dark       { background: var(--gc-surface-3) !important; color: var(--gc-text) !important; }
.badge.bg-light      { background: var(--gc-surface-3) !important; color: var(--gc-text-2) !important; }

[data-bs-theme="dark"] .badge.bg-primary { color: var(--brand-200) !important; }

/* ---------- Alerts ---------- */
.alert {
  border-radius: var(--gc-radius);
  border: 1px solid var(--gc-border);
  padding: 12px 14px;
  font-size: 13px;
  background: var(--gc-surface);
  box-shadow: var(--gc-shadow-sm);
}
.alert-primary { background: var(--brand-50);    color: var(--brand-700);     border-color: color-mix(in srgb, var(--brand-500) 20%, transparent); }
.alert-success { background: var(--gc-green-50); color: var(--gc-green-600);  border-color: color-mix(in srgb, var(--gc-green-500) 20%, transparent); }
.alert-warning { background: var(--gc-amber-50); color: var(--gc-amber-600);  border-color: color-mix(in srgb, var(--gc-amber-500) 24%, transparent); }
.alert-danger  { background: var(--gc-red-50);   color: var(--gc-red-600);    border-color: color-mix(in srgb, var(--gc-red-500) 24%, transparent); }
.alert-info    { background: var(--gc-teal-50);  color: var(--gc-teal-600);   border-color: color-mix(in srgb, var(--gc-teal-500) 24%, transparent); }

/* ---------- Metrics (Orchid Layout::metrics) ---------- */
.metric,
.metric .card,
[class*="metric"] .card {
  border-radius: var(--gc-radius-lg);
  background: var(--gc-surface);
  box-shadow: var(--gc-shadow-sm);
}
.metric .h3,
.metric .h2,
.metric .display-4,
.metric .display-5,
.metric strong,
.metric .fw-bold {
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: -.02em;
  color: var(--gc-text);
}
.metric .small,
.metric small,
.metric .text-muted {
  font-size: 12.5px !important;
  color: var(--gc-text-3) !important;
  font-weight: 500;
}

/* ---------- Pagination ---------- */
.pagination .page-link {
  border-radius: 8px;
  margin: 0 2px;
  border: 1px solid var(--gc-border);
  color: var(--gc-text-2);
  font-size: 12.5px;
  padding: 6px 10px;
}
.pagination .page-item.active .page-link {
  background: var(--brand-500);
  border-color: var(--brand-500);
  color: #fff;
}

/* ---------- Dropdowns / Modals ---------- */
.dropdown-menu {
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-lg);
  padding: 6px;
  background: var(--gc-surface);
}
.dropdown-item {
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 13px;
  color: var(--gc-text-2);
}
.dropdown-item:hover, .dropdown-item:focus {
  background: var(--gc-surface-3);
  color: var(--gc-text);
}
.dropdown-divider { border-top-color: var(--gc-border); margin: 4px 2px; }

.modal-content {
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-lg);
  background: var(--gc-surface);
  box-shadow: var(--gc-shadow-lg);
}
.modal-header { border-bottom-color: var(--gc-border); padding: 16px 20px; }
.modal-body   { padding: 18px 20px; }
.modal-footer { border-top-color: var(--gc-border); padding: 14px 20px; }
.modal-title  { font-weight: 700; font-size: 16px; letter-spacing: -.01em; }

/* ---------- Tabs / Nav-tabs ---------- */
.nav-tabs {
  border-bottom: 1px solid var(--gc-border);
}
.nav-tabs .nav-link {
  border: 0;
  color: var(--gc-text-3);
  font-weight: 600;
  padding: 10px 14px;
  font-size: 13px;
  border-bottom: 2px solid transparent;
  border-radius: 0;
}
.nav-tabs .nav-link:hover { color: var(--gc-text); border-bottom-color: var(--gc-border-strong); }
.nav-tabs .nav-link.active {
  color: var(--brand-700);
  background: transparent;
  border-bottom-color: var(--brand-500);
}

/* ---------- Login ---------- */
body.platform-login,
body[data-controller="login"],
.layout-login,
.bg-login {
  background: linear-gradient(160deg, var(--brand-700), var(--brand-900)) !important;
  min-height: 100vh;
}
.layout-login .card,
.bg-login .card,
form[action*="login"] {
  border-radius: var(--gc-radius-lg);
  box-shadow: var(--gc-shadow-lg);
}

/* ---------- Misc ---------- */
hr { border-color: var(--gc-border); opacity: 1; }

.text-primary { color: var(--brand-600) !important; }
.text-success { color: var(--gc-green-600) !important; }
.text-danger  { color: var(--gc-red-600) !important; }
.text-warning { color: var(--gc-amber-600) !important; }

.bg-light, .bg-body-tertiary { background-color: var(--gc-surface-2) !important; }
.bg-body                     { background-color: var(--gc-surface)   !important; }
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--gc-border) !important; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--gc-text-4) 50%, transparent);
  border-radius: 999px;
  border: 2px solid var(--gc-bg);
}
::-webkit-scrollbar-thumb:hover { background: var(--gc-text-3); }

/* Smooth focus rings everywhere */
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.nav-link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-400) 22%, transparent);
}
