/* ==========================================================================
   MaxApex — theme-base.css
   Shared structure for ALL colour variants + light/dark mode.
   This file must NEVER contain a hardcoded colour value.
   Every colour comes from a CSS variable, defined per-variant in files like
   OceanBlue.css (:root for light, [data-theme="dark"] for dark).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Font
   -------------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

html, body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background-color: var(--bg);
  color: var(--text);
  transition: background-color 0.2s ease, color 0.2s ease;
}

/* --------------------------------------------------------------------------
   Shared spacing / radius tokens (not colour, safe to keep here)
   -------------------------------------------------------------------------- */
:root {
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --shadow-card: 0 2px 10px rgba(0, 0, 0, 0.06);
}
[data-theme="dark"] {
  --shadow-card: 0 2px 14px rgba(0, 0, 0, 0.45);
}

/* --------------------------------------------------------------------------
   Cards (wraps most panel content: dashboard blocks, order form, login form)
   -------------------------------------------------------------------------- */
.body .card,
.card {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  color: var(--text);
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.btn-primary,
.refill-button,
.bg-primary {
  background-color: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #ffffff !important;
}
.btn-primary:hover,
.refill-button:hover {
  filter: brightness(0.92);
}
.btn-outline-primary {
  background-color: transparent !important;
  border: 1px solid var(--accent) !important;
  color: var(--accent) !important;
}
.btn-outline-primary:hover {
  background-color: var(--accent) !important;
  color: #ffffff !important;
}

/* --------------------------------------------------------------------------
   Form inputs (login, signup, order forms, tickets, etc.)
   -------------------------------------------------------------------------- */
.form-control {
  background-color: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: var(--radius-sm);
}
.form-control:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.15);
  background-color: var(--surface);
  color: var(--text);
}
.form-control::placeholder {
  color: var(--muted);
}
label {
  color: var(--muted);
  font-weight: 500;
}

/* --------------------------------------------------------------------------
   Status badges (order status: pending / completed / cancelled etc.)
   -------------------------------------------------------------------------- */
.badge-success, .status-completed {
  background-color: var(--success) !important;
  color: #ffffff !important;
}
.badge-warning, .status-pending {
  background-color: var(--warning) !important;
  color: #ffffff !important;
}
.badge-danger, .status-cancelled {
  background-color: var(--danger) !important;
  color: #ffffff !important;
}
.badge.badge-secondary {
  background-color: var(--accent) !important;
  color: #ffffff !important;
}

/* --------------------------------------------------------------------------
   Alerts (login errors/success, form feedback)
   -------------------------------------------------------------------------- */
.alert-danger {
  background-color: rgba(var(--danger-rgb), 0.12);
  border: 1px solid var(--danger);
  color: var(--danger);
  border-radius: var(--radius-sm);
}
.alert-success {
  background-color: rgba(var(--success-rgb), 0.12);
  border: 1px solid var(--success);
  color: var(--success);
  border-radius: var(--radius-sm);
}

/* --------------------------------------------------------------------------
   Balance / stat blocks (dashboard summary cards)
   -------------------------------------------------------------------------- */
.balance-dropdown__name {
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.08);
}
.balance-dropdown__item:hover {
  background-color: rgba(var(--accent-rgb), 0.09);
}
.balance-dropdown__link:hover {
  color: var(--accent);
}
.totals-block__icon-preview {
  border: 1px solid var(--accent);
}

/* --------------------------------------------------------------------------
   Links / misc accent text
   -------------------------------------------------------------------------- */
a {
  color: var(--accent);
}
a:hover {
  color: var(--accent);
  filter: brightness(0.85);
}

/* --------------------------------------------------------------------------
   Muted / secondary text helper
   -------------------------------------------------------------------------- */
.text-muted {
  color: var(--muted) !important;
}