/* ==========================================================================
   LosPollos — Dual Theme System
   Light mode: Clean warm-neutral with teal accent
   Dark mode: Terminal Luxe — deep ink, electric cyan, glassmorphism
   Uses [data-coreui-theme] attribute set by CoreUI's color mode system.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Fonts
   -------------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* --------------------------------------------------------------------------
   A. Shared design tokens (theme-independent)
   -------------------------------------------------------------------------- */
:root {
  /* Typography scale */
  --lospollos-font-xs: 0.7rem;
  --lospollos-font-sm: 0.8rem;
  --lospollos-font-base: 0.875rem;
  --lospollos-font-md: 1rem;
  --lospollos-font-lg: 1.15rem;
  --lospollos-font-xl: 1.35rem;
  --lospollos-font-2xl: 1.75rem;

  /* Spacing */
  --lospollos-sp-1: 4px;
  --lospollos-sp-2: 8px;
  --lospollos-sp-3: 12px;
  --lospollos-sp-4: 16px;
  --lospollos-sp-5: 20px;
  --lospollos-sp-6: 24px;
  --lospollos-sp-8: 32px;

  /* Radius */
  --lospollos-radius-sm: 4px;
  --lospollos-radius: 8px;
  --lospollos-radius-lg: 12px;
  --lospollos-radius-xl: 16px;

  /* Transitions */
  --lospollos-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --lospollos-duration: 0.2s;

  /* CoreUI shared radius */
  --cui-border-radius: var(--lospollos-radius);
  --cui-border-radius-sm: var(--lospollos-radius-sm);
  --cui-border-radius-lg: var(--lospollos-radius-lg);
}

/* --------------------------------------------------------------------------
   B. LIGHT THEME — Clean, warm-neutral with teal accent
   -------------------------------------------------------------------------- */
[data-coreui-theme=light] {
  --lospollos-ink: #f5f7fa;
  --lospollos-surface: #ffffff;
  --lospollos-surface-raised: #f0f2f5;
  --lospollos-surface-overlay: rgba(255, 255, 255, 0.9);
  --lospollos-border: #e0e4ea;
  --lospollos-border-subtle: #eef0f4;

  /* Accent — deep teal */
  --lospollos-accent: #0d9488;
  --lospollos-accent-rgb: 13, 148, 136;
  --lospollos-accent-dim: #0f766e;
  --lospollos-accent-glow: rgba(13, 148, 136, 0.08);
  --lospollos-accent-glow-strong: rgba(13, 148, 136, 0.15);
  --lospollos-accent-hover: #0f766e;

  /* Market colors */
  --lospollos-bull: #16a34a;
  --lospollos-bull-bg: #f0fdf4;
  --lospollos-bear: #dc2626;
  --lospollos-bear-bg: #fef2f2;
  --lospollos-warn: #d97706;
  --lospollos-warn-bg: #fffbeb;
  --lospollos-info: #2563eb;
  --lospollos-info-bg: #eff6ff;

  /* Text */
  --lospollos-text-primary: #1a1f2e;
  --lospollos-text-secondary: #5b6478;
  --lospollos-text-muted: #8b95a8;
  --lospollos-text-inverse: #ffffff;

  /* Headings */
  --lospollos-heading: #0f172a;

  /* Sidebar — charcoal */
  --lospollos-sidebar-bg: #1e2536;
  --lospollos-sidebar-text: #a0aab8;
  --lospollos-sidebar-active-bg: var(--lospollos-accent);
  --lospollos-sidebar-active-text: #ffffff;
  --lospollos-sidebar-hover-bg: rgba(255, 255, 255, 0.06);
  --lospollos-sidebar-brand: #ffffff;
  --lospollos-sidebar-title: #6b7585;
  --lospollos-sidebar-border: rgba(255, 255, 255, 0.06);

  /* Header */
  --lospollos-header-bg: #ffffff;
  --lospollos-header-border: #e0e4ea;
  --lospollos-header-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);

  /* Card */
  --lospollos-card-bg: #ffffff;
  --lospollos-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 4px 16px rgba(0, 0, 0, 0.03);
  --lospollos-card-hover-border: rgba(13, 148, 136, 0.2);

  /* Table */
  --lospollos-table-header-bg: #f5f7fa;
  --lospollos-table-header-color: #5b6478;
  --lospollos-table-hover: rgba(13, 148, 136, 0.04);
  --lospollos-table-stripe: #fafbfc;

  /* Input */
  --lospollos-input-bg: #ffffff;
  --lospollos-input-focus-bg: #ffffff;
  --lospollos-input-border: #e0e4ea;

  /* Scrollbar */
  --lospollos-scroll-thumb: #cbd5e1;
  --lospollos-scroll-track: #f1f5f9;

  /* Misc */
  --lospollos-code-bg: rgba(13, 148, 136, 0.06);
  --lospollos-btn-close-filter: none;
  --lospollos-accordion-filter: none;
  --lospollos-sidebar-toggler-filter: invert(1);
}

/* --------------------------------------------------------------------------
   C. DARK THEME — Terminal Luxe
   -------------------------------------------------------------------------- */
[data-coreui-theme=dark] {
  --lospollos-ink: #0a0e17;
  --lospollos-surface: #111827;
  --lospollos-surface-raised: #1a2235;
  --lospollos-surface-overlay: rgba(17, 24, 39, 0.85);
  --lospollos-border: rgba(255, 255, 255, 0.06);
  --lospollos-border-subtle: rgba(255, 255, 255, 0.03);

  /* Accent — electric cyan */
  --lospollos-accent: #00e5ff;
  --lospollos-accent-rgb: 0, 229, 255;
  --lospollos-accent-dim: #0097a7;
  --lospollos-accent-glow: rgba(0, 229, 255, 0.15);
  --lospollos-accent-glow-strong: rgba(0, 229, 255, 0.3);
  --lospollos-accent-hover: #33ebff;

  /* Market colors */
  --lospollos-bull: #00e676;
  --lospollos-bull-bg: rgba(0, 230, 118, 0.1);
  --lospollos-bear: #ff1744;
  --lospollos-bear-bg: rgba(255, 23, 68, 0.1);
  --lospollos-warn: #ffab00;
  --lospollos-warn-bg: rgba(255, 171, 0, 0.1);
  --lospollos-info: #448aff;
  --lospollos-info-bg: rgba(68, 138, 255, 0.1);

  /* Text */
  --lospollos-text-primary: #e8edf5;
  --lospollos-text-secondary: #8899b0;
  --lospollos-text-muted: #4a5568;
  --lospollos-text-inverse: #0a0e17;

  /* Headings */
  --lospollos-heading: #ffffff;

  /* Sidebar */
  --lospollos-sidebar-bg: #0a0e17;
  --lospollos-sidebar-text: #8899b0;
  --lospollos-sidebar-active-bg: rgba(0, 229, 255, 0.12);
  --lospollos-sidebar-active-text: #00e5ff;
  --lospollos-sidebar-hover-bg: rgba(0, 229, 255, 0.15);
  --lospollos-sidebar-brand: #00e5ff;
  --lospollos-sidebar-title: #4a5568;
  --lospollos-sidebar-border: rgba(255, 255, 255, 0.06);

  /* Header */
  --lospollos-header-bg: rgba(17, 24, 39, 0.8);
  --lospollos-header-border: rgba(255, 255, 255, 0.06);
  --lospollos-header-shadow: none;

  /* Card */
  --lospollos-card-bg: rgba(17, 24, 39, 0.6);
  --lospollos-card-shadow: 0 0 0 1px rgba(255, 255, 255, 0.02), 0 4px 24px rgba(0, 0, 0, 0.2);
  --lospollos-card-hover-border: rgba(0, 229, 255, 0.1);

  /* Table */
  --lospollos-table-header-bg: #1a2235;
  --lospollos-table-header-color: #8899b0;
  --lospollos-table-hover: rgba(0, 229, 255, 0.03);
  --lospollos-table-stripe: rgba(255, 255, 255, 0.015);

  /* Input */
  --lospollos-input-bg: #1a2235;
  --lospollos-input-focus-bg: #111827;
  --lospollos-input-border: rgba(255, 255, 255, 0.06);

  /* Scrollbar */
  --lospollos-scroll-thumb: rgba(255, 255, 255, 0.1);
  --lospollos-scroll-track: transparent;

  /* Misc */
  --lospollos-code-bg: rgba(0, 229, 255, 0.08);
  --lospollos-btn-close-filter: invert(1);
  --lospollos-accordion-filter: invert(1);
  --lospollos-sidebar-toggler-filter: invert(1);
}

/* --------------------------------------------------------------------------
   D. Global typography (both themes)
   -------------------------------------------------------------------------- */
body,
.sidebar, .header, .table, .card, .modal,
.form-control, .form-select, .btn, .dropdown-menu,
.alert, .badge, .nav, .breadcrumb, .pagination,
.tooltip, .popover, .list-group {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

body {
  background-color: var(--lospollos-ink) !important;
  color: var(--lospollos-text-primary) !important;
  font-size: var(--lospollos-font-base);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  color: var(--lospollos-heading);
  letter-spacing: -0.01em;
}

h1 { font-size: var(--lospollos-font-2xl); }
h2 { font-size: var(--lospollos-font-xl); }
h3 { font-size: var(--lospollos-font-lg); }
h4, h5, h6 { font-size: var(--lospollos-font-md); }

.text-caption { font-size: var(--lospollos-font-xs); color: var(--lospollos-text-muted); }
.text-label  { font-size: var(--lospollos-font-sm); font-weight: 500; color: var(--lospollos-text-secondary); letter-spacing: 0.04em; text-transform: uppercase; }

td, .data-value, .font-mono {
  font-feature-settings: 'tnum' 1, 'ss01' 1;
}

/* --------------------------------------------------------------------------
   D2. Dark-only atmospheric effects
   -------------------------------------------------------------------------- */
[data-coreui-theme=dark] body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
  z-index: 0;
}

[data-coreui-theme=dark] body::after {
  content: '';
  position: fixed;
  top: -180px;
  right: -120px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(0,229,255,0.06) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* --------------------------------------------------------------------------
   E. Sidebar
   -------------------------------------------------------------------------- */
.sidebar {
  background-color: var(--lospollos-sidebar-bg) !important;
  border-right: 1px solid var(--lospollos-sidebar-border) !important;
  box-shadow: none !important;
}

.sidebar-brand {
  background-color: transparent !important;
  border-bottom: 1px solid var(--lospollos-sidebar-border) !important;
  padding: 16px 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
}

/* Show the LosPollos emblem; override the legacy invert filter from the bundle */
.sidebar-brand img {
  display: inline-block !important;
  height: 34px !important;
  width: 34px !important;
  filter: none !important;
}
.sidebar-brand-full { margin-left: 0 !important; }
.sidebar .border-top { display: none !important; }

.sidebar-brand-full,
.sidebar-brand-narrow {
  color: var(--lospollos-sidebar-brand) !important;
  font-weight: 700 !important;
  font-size: 1.15rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.sidebar .nav-link,
.sidebar-nav .nav-link {
  color: var(--lospollos-sidebar-text) !important;
  border-radius: 6px !important;
  margin: 1px 10px !important;
  padding: 9px 14px !important;
  font-weight: 500 !important;
  font-size: 0.84rem !important;
  transition: all var(--lospollos-duration) var(--lospollos-ease) !important;
  border: 1px solid transparent !important;
  position: relative;
}

.sidebar .nav-link:hover,
.sidebar-nav .nav-link:hover {
  background-color: var(--lospollos-sidebar-hover-bg) !important;
  color: #ffffff !important;
}

.sidebar .nav-link.active,
.sidebar-nav .nav-link.active {
  background-color: var(--lospollos-sidebar-active-bg) !important;
  color: var(--lospollos-sidebar-active-text) !important;
  font-weight: 600 !important;
}

.sidebar .nav-link .nav-icon,
.sidebar-nav .nav-link .nav-icon {
  color: inherit !important;
  opacity: 0.8;
}

.sidebar .nav-title {
  color: var(--lospollos-sidebar-title) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 16px 24px 6px !important;
}

.sidebar .nav-group > .nav-group-toggle {
  color: var(--lospollos-sidebar-text) !important;
  border-radius: 6px !important;
  margin: 1px 10px !important;
  padding: 9px 14px !important;
}

.sidebar .nav-group.show > .nav-group-toggle,
.sidebar .nav-group > .nav-group-toggle:hover {
  background-color: var(--lospollos-sidebar-hover-bg) !important;
  color: #ffffff !important;
}

.sidebar .nav-group-items .nav-link {
  padding-left: 40px !important;
  font-size: 0.8rem !important;
}

.sidebar-toggler {
  background-color: var(--lospollos-surface) !important;
  border-top: 1px solid var(--lospollos-sidebar-border) !important;
}

.sidebar-toggler::before {
  filter: var(--lospollos-sidebar-toggler-filter) !important;
}

/* Dark mode: cyan accent line on sidebar edge */
[data-coreui-theme=dark] .sidebar::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 1px; height: 100%;
  background: linear-gradient(to bottom, transparent 0%, #00e5ff 30%, #00e5ff 70%, transparent 100%);
  opacity: 0.3;
}

/* Dark mode: active indicator bar */
[data-coreui-theme=dark] .sidebar .nav-link.active::before {
  content: '';
  position: absolute;
  left: -10px; top: 50%;
  transform: translateY(-50%);
  width: 3px; height: 20px;
  background: #00e5ff;
  border-radius: 0 3px 3px 0;
  box-shadow: 0 0 8px rgba(0, 229, 255, 0.4);
}

[data-coreui-theme=dark] .sidebar .nav-link.active {
  border-color: rgba(0, 229, 255, 0.15) !important;
  box-shadow: 0 0 12px rgba(0, 229, 255, 0.08) !important;
}

/* Light mode: active with solid teal */
[data-coreui-theme=light] .sidebar .nav-link.active {
  box-shadow: none !important;
}

/* --------------------------------------------------------------------------
   F. Header / Topbar
   -------------------------------------------------------------------------- */
.header {
  background-color: var(--lospollos-header-bg) !important;
  border-bottom: 1px solid var(--lospollos-header-border) !important;
  box-shadow: var(--lospollos-header-shadow) !important;
  min-height: 54px;
  position: relative;
  z-index: 10;
}

[data-coreui-theme=dark] .header {
  backdrop-filter: blur(16px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(180%) !important;
}

.header .nav-link {
  color: var(--lospollos-text-secondary) !important;
  font-size: 0.84rem;
  font-weight: 500;
  padding: 6px 14px !important;
  border-radius: 6px !important;
  transition: all var(--lospollos-duration) var(--lospollos-ease) !important;
}

.header .nav-link:hover {
  background-color: var(--lospollos-accent-glow) !important;
  color: var(--lospollos-text-primary) !important;
}

.header .nav-link.active {
  background-color: var(--lospollos-accent-glow) !important;
  color: var(--lospollos-accent) !important;
}

.header-toggler {
  color: var(--lospollos-text-secondary) !important;
  border: none !important;
}

.header-toggler:hover {
  color: var(--lospollos-text-primary) !important;
  background-color: var(--lospollos-accent-glow) !important;
}

/* Breadcrumb */
.breadcrumb { background-color: transparent !important; padding: 0 !important; margin-bottom: 0 !important; }
.breadcrumb-item, .breadcrumb-item a { font-size: 0.78rem !important; color: var(--lospollos-text-muted) !important; }
.breadcrumb-item.active { color: var(--lospollos-text-secondary) !important; font-weight: 500 !important; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--lospollos-text-muted) !important; }

/* --------------------------------------------------------------------------
   G. Tables
   -------------------------------------------------------------------------- */
.table {
  background: transparent !important;
  font-size: 0.83rem;
  border-radius: var(--lospollos-radius);
  overflow: hidden;
  margin-bottom: 0 !important;
  color: var(--lospollos-text-primary) !important;
}

.table-responsive {
  border-radius: var(--lospollos-radius) !important;
  border: 1px solid var(--lospollos-border) !important;
  overflow: hidden !important;
  background-color: var(--lospollos-surface) !important;
}

.table thead th,
.table > thead > tr > th {
  background-color: var(--lospollos-table-header-bg) !important;
  color: var(--lospollos-table-header-color) !important;
  font-weight: 600 !important;
  font-size: 0.72rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 10px 12px !important;
  border: none !important;
  border-bottom: 1px solid var(--lospollos-border) !important;
  white-space: nowrap;
  vertical-align: middle !important;
}

.table tbody td,
.table > tbody > tr > td {
  padding: 8px 12px !important;
  border-color: var(--lospollos-border-subtle) !important;
  vertical-align: middle !important;
  color: var(--lospollos-text-primary);
  font-family: 'JetBrains Mono', 'DM Sans', monospace !important;
  font-size: 0.8rem !important;
}

.table tbody tr { transition: background-color var(--lospollos-duration) var(--lospollos-ease); }
.table tbody tr:hover, .table > tbody > tr:hover { background-color: var(--lospollos-table-hover) !important; }
.table-striped > tbody > tr:nth-of-type(odd) > * { background-color: var(--lospollos-table-stripe) !important; }

/* Market colors */
.text-success, td.text-success, span.text-success { color: var(--lospollos-bull) !important; font-weight: 600; }
.text-danger, td.text-danger, span.text-danger { color: var(--lospollos-bear) !important; font-weight: 600; }
.text-warning, td.text-warning { color: var(--lospollos-warn) !important; font-weight: 500; }
.text-info, td.text-info { color: var(--lospollos-info) !important; }
.text-muted { color: var(--lospollos-text-muted) !important; }

/* Dark mode glow on market colors */
[data-coreui-theme=dark] .text-success, [data-coreui-theme=dark] td.text-success { text-shadow: 0 0 8px rgba(0, 230, 118, 0.25); }
[data-coreui-theme=dark] .text-danger, [data-coreui-theme=dark] td.text-danger { text-shadow: 0 0 8px rgba(255, 23, 68, 0.25); }

/* --------------------------------------------------------------------------
   H. Cards
   -------------------------------------------------------------------------- */
.card {
  background-color: var(--lospollos-card-bg) !important;
  border: 1px solid var(--lospollos-border) !important;
  border-radius: var(--lospollos-radius-lg) !important;
  box-shadow: var(--lospollos-card-shadow) !important;
  overflow: hidden;
  transition: border-color var(--lospollos-duration) var(--lospollos-ease), box-shadow var(--lospollos-duration) var(--lospollos-ease);
}

.card:hover { border-color: var(--lospollos-card-hover-border) !important; }

[data-coreui-theme=dark] .card {
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.card-header {
  background-color: transparent !important;
  border-bottom: 1px solid var(--lospollos-border) !important;
  font-weight: 600 !important;
  font-size: 0.78rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--lospollos-text-secondary) !important;
  padding: 14px 18px !important;
}

.card-body { padding: 18px !important; }

.card-footer {
  background-color: var(--lospollos-surface-raised) !important;
  border-top: 1px solid var(--lospollos-border) !important;
  padding: 12px 18px !important;
}

[data-coreui-theme=dark] .card-footer { background-color: rgba(255, 255, 255, 0.02) !important; }

/* --------------------------------------------------------------------------
   I. Buttons
   -------------------------------------------------------------------------- */
.btn {
  border-radius: var(--lospollos-radius) !important;
  font-weight: 500 !important;
  font-size: 0.84rem !important;
  padding: 7px 18px !important;
  transition: all var(--lospollos-duration) var(--lospollos-ease) !important;
  letter-spacing: 0.01em;
  position: relative;
  overflow: hidden;
}

.btn-sm { padding: 4px 12px !important; font-size: 0.76rem !important; border-radius: var(--lospollos-radius-sm) !important; }
.btn-lg { padding: 10px 28px !important; font-size: 0.95rem !important; border-radius: var(--lospollos-radius) !important; }

.btn-primary {
  background-color: var(--lospollos-accent) !important;
  border-color: var(--lospollos-accent) !important;
  color: var(--lospollos-text-inverse) !important;
  font-weight: 600 !important;
}

.btn-primary:hover, .btn-primary:focus {
  background-color: var(--lospollos-accent-hover) !important;
  border-color: var(--lospollos-accent-hover) !important;
  color: var(--lospollos-text-inverse) !important;
  transform: translateY(-1px);
}

.btn-primary:active {
  background-color: var(--lospollos-accent-dim) !important;
  border-color: var(--lospollos-accent-dim) !important;
  transform: translateY(0);
}

[data-coreui-theme=dark] .btn-primary { box-shadow: 0 0 16px rgba(0, 229, 255, 0.2) !important; }
[data-coreui-theme=dark] .btn-primary:hover { box-shadow: 0 0 24px rgba(0, 229, 255, 0.35) !important; }
[data-coreui-theme=light] .btn-primary { box-shadow: 0 1px 3px rgba(13, 148, 136, 0.3) !important; }

.btn-secondary {
  background-color: var(--lospollos-surface-raised) !important;
  border-color: var(--lospollos-border) !important;
  color: var(--lospollos-text-primary) !important;
}

.btn-secondary:hover {
  background-color: var(--lospollos-accent-glow) !important;
  color: var(--lospollos-text-primary) !important;
}

.btn-success { background-color: var(--lospollos-bull) !important; border-color: var(--lospollos-bull) !important; color: var(--lospollos-text-inverse) !important; }
.btn-danger { background-color: var(--lospollos-bear) !important; border-color: var(--lospollos-bear) !important; color: #ffffff !important; }

[data-coreui-theme=dark] .btn-success { box-shadow: 0 0 12px rgba(0, 230, 118, 0.15) !important; }
[data-coreui-theme=dark] .btn-danger { box-shadow: 0 0 12px rgba(255, 23, 68, 0.15) !important; }

.btn-outline-primary { color: var(--lospollos-accent) !important; border-color: var(--lospollos-accent) !important; background-color: transparent !important; }
.btn-outline-primary:hover { background-color: var(--lospollos-accent) !important; color: var(--lospollos-text-inverse) !important; }

.btn-link { color: var(--lospollos-accent) !important; }
.btn-link:hover { color: var(--lospollos-accent-hover) !important; }

.btn-ghost {
  background-color: transparent !important;
  border: 1px solid transparent !important;
  color: var(--lospollos-accent) !important;
}

.btn-ghost:hover {
  background-color: var(--lospollos-accent-glow) !important;
}

.btn-light, .btn.btn-light {
  background-color: var(--lospollos-surface-raised) !important;
  border-color: var(--lospollos-border) !important;
  color: var(--lospollos-text-primary) !important;
}

.btn-light:hover, .btn.btn-light:hover {
  background-color: var(--lospollos-accent-glow) !important;
  color: var(--lospollos-text-primary) !important;
}

/* --------------------------------------------------------------------------
   J. Forms & Inputs
   -------------------------------------------------------------------------- */
.form-control, .form-select {
  border-color: var(--lospollos-input-border) !important;
  border-radius: var(--lospollos-radius) !important;
  background-color: var(--lospollos-input-bg) !important;
  color: var(--lospollos-text-primary) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: var(--lospollos-font-base) !important;
  padding: 8px 14px !important;
  transition: border-color var(--lospollos-duration) var(--lospollos-ease), box-shadow var(--lospollos-duration) var(--lospollos-ease) !important;
}

.form-control:focus, .form-select:focus {
  border-color: var(--lospollos-accent) !important;
  box-shadow: 0 0 0 3px var(--lospollos-accent-glow) !important;
  outline: none !important;
  background-color: var(--lospollos-input-focus-bg) !important;
}

.form-control::placeholder { color: var(--lospollos-text-muted) !important; }

.form-label {
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  color: var(--lospollos-text-secondary) !important;
  margin-bottom: 6px !important;
}

.input-group-text {
  background-color: var(--lospollos-surface-raised) !important;
  border-color: var(--lospollos-input-border) !important;
  color: var(--lospollos-text-muted) !important;
}

.form-check-input { background-color: var(--lospollos-input-bg) !important; border-color: var(--lospollos-input-border) !important; }
.form-check-input:checked { background-color: var(--lospollos-accent) !important; border-color: var(--lospollos-accent) !important; }
.form-check-input:focus { border-color: var(--lospollos-accent) !important; box-shadow: 0 0 0 3px var(--lospollos-accent-glow) !important; }

.form-select option {
  background-color: var(--lospollos-surface) !important;
  color: var(--lospollos-text-primary) !important;
}

/* Custom input classes used by React components */
input, input.input, input.filled, input.empty,
input[type="text"], input[type="number"], input[type="password"],
input[type="email"], input[type="search"], input[type="date"],
input[type="time"], input[type="datetime-local"],
select, textarea {
  background-color: var(--lospollos-input-bg) !important;
  color: var(--lospollos-text-primary) !important;
  border: 1px solid var(--lospollos-input-border) !important;
  caret-color: var(--lospollos-accent);
}

input::placeholder, textarea::placeholder { color: var(--lospollos-text-muted) !important; }

input:focus, select:focus, textarea:focus {
  background-color: var(--lospollos-input-focus-bg) !important;
  border-color: var(--lospollos-accent) !important;
  box-shadow: 0 0 0 2px var(--lospollos-accent-glow) !important;
  outline: none !important;
}

/* Table filter row inputs */
.table tbody tr td input,
.table tbody tr td select,
.table tbody tr td .btn-light {
  background-color: var(--lospollos-input-bg) !important;
  color: var(--lospollos-text-primary) !important;
  border-color: var(--lospollos-input-border) !important;
}

.btn-light.dropdown-toggle .input,
.btn-light.dropdown-toggle input,
.table tbody tr td .btn-light .input,
.table tbody tr td .btn-light input {
  background-color: transparent !important;
  border: none !important;
  color: var(--lospollos-text-primary) !important;
}

/* --------------------------------------------------------------------------
   K. Badges
   -------------------------------------------------------------------------- */
.badge {
  border-radius: var(--lospollos-radius-sm) !important;
  font-weight: 600 !important;
  font-size: 0.7rem !important;
  padding: 3px 9px !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.badge.bg-success, .badge.text-bg-success { background-color: var(--lospollos-bull-bg) !important; color: var(--lospollos-bull) !important; }
.badge.bg-danger, .badge.text-bg-danger { background-color: var(--lospollos-bear-bg) !important; color: var(--lospollos-bear) !important; }
.badge.bg-warning, .badge.text-bg-warning { background-color: var(--lospollos-warn-bg) !important; color: var(--lospollos-warn) !important; }
.badge.bg-info, .badge.text-bg-info { background-color: var(--lospollos-info-bg) !important; color: var(--lospollos-info) !important; }
.badge.bg-primary, .badge.text-bg-primary { background-color: var(--lospollos-accent-glow) !important; color: var(--lospollos-accent) !important; }
.badge.bg-secondary, .badge.text-bg-secondary { background-color: var(--lospollos-surface-raised) !important; color: var(--lospollos-text-secondary) !important; }

[data-coreui-theme=dark] .badge.bg-success { border: 1px solid rgba(0, 230, 118, 0.2); }
[data-coreui-theme=dark] .badge.bg-danger { border: 1px solid rgba(255, 23, 68, 0.2); }
[data-coreui-theme=dark] .badge.bg-warning { border: 1px solid rgba(255, 171, 0, 0.2); }
[data-coreui-theme=dark] .badge.bg-info { border: 1px solid rgba(68, 138, 255, 0.2); }

/* --------------------------------------------------------------------------
   L. Scrollbar
   -------------------------------------------------------------------------- */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--lospollos-scroll-track); }
::-webkit-scrollbar-thumb { background: var(--lospollos-scroll-thumb); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { opacity: 0.8; }
* { scrollbar-width: thin; scrollbar-color: var(--lospollos-scroll-thumb) var(--lospollos-scroll-track); }

/* --------------------------------------------------------------------------
   M. Layout
   -------------------------------------------------------------------------- */
.wrapper { background-color: var(--lospollos-ink) !important; }
.body { background-color: var(--lospollos-ink) !important; position: relative; z-index: 1; }
.container-lg, .container-fluid, .container { background-color: transparent !important; }
.bg-dark { background-color: var(--lospollos-surface) !important; }
.container-lg { padding-top: 20px !important; padding-bottom: 20px !important; }

/* Layout fix: parent flex container */
#root > div:first-child {
  display: flex !important;
  flex-direction: row !important;
  min-height: 100vh;
}

/* --------------------------------------------------------------------------
   N. Nav Tabs & Pills
   -------------------------------------------------------------------------- */
.nav-tabs { border-bottom: 1px solid var(--lospollos-border) !important; }

.nav-tabs .nav-link {
  border: none !important;
  border-bottom: 2px solid transparent !important;
  color: var(--lospollos-text-muted) !important;
  font-weight: 500 !important;
  font-size: 0.84rem !important;
  padding: 10px 18px !important;
  border-radius: 0 !important;
  margin-bottom: -1px;
  transition: all var(--lospollos-duration) var(--lospollos-ease) !important;
}

.nav-tabs .nav-link:hover {
  color: var(--lospollos-text-primary) !important;
  border-bottom-color: var(--lospollos-accent-glow-strong) !important;
  background-color: transparent !important;
}

.nav-tabs .nav-link.active {
  color: var(--lospollos-accent) !important;
  border-bottom-color: var(--lospollos-accent) !important;
  background-color: transparent !important;
  font-weight: 600 !important;
}

[data-coreui-theme=dark] .nav-tabs .nav-link.active { text-shadow: 0 0 12px rgba(0, 229, 255, 0.3); }

.nav-pills .nav-link { border-radius: var(--lospollos-radius) !important; color: var(--lospollos-text-secondary) !important; font-weight: 500 !important; }
.nav-pills .nav-link.active { background-color: var(--lospollos-accent-glow) !important; color: var(--lospollos-accent) !important; }

/* --------------------------------------------------------------------------
   O. Modals
   -------------------------------------------------------------------------- */
.modal-content {
  border: 1px solid var(--lospollos-border) !important;
  border-radius: var(--lospollos-radius-xl) !important;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2) !important;
  overflow: hidden;
  background-color: var(--lospollos-surface) !important;
}

[data-coreui-theme=dark] .modal-content { box-shadow: 0 0 0 1px rgba(255,255,255,0.03), 0 24px 80px rgba(0,0,0,0.4) !important; }

.modal-header { background-color: transparent !important; border-bottom: 1px solid var(--lospollos-border) !important; padding: 18px 22px !important; }
.modal-title { font-weight: 600 !important; font-size: 1.05rem !important; color: var(--lospollos-heading) !important; }
.modal-body { padding: 22px !important; background-color: transparent !important; color: var(--lospollos-text-primary) !important; }
.modal-footer { background-color: var(--lospollos-surface-raised) !important; border-top: 1px solid var(--lospollos-border) !important; padding: 14px 22px !important; }

[data-coreui-theme=dark] .modal-footer { background-color: rgba(255, 255, 255, 0.02) !important; }

.btn-close { filter: var(--lospollos-btn-close-filter) !important; opacity: 0.4 !important; }
.btn-close:hover { opacity: 0.8 !important; }

/* --------------------------------------------------------------------------
   P. Alerts
   -------------------------------------------------------------------------- */
.alert { border-radius: var(--lospollos-radius) !important; font-size: var(--lospollos-font-base) !important; padding: 14px 18px !important; }

.alert-success { background-color: var(--lospollos-bull-bg) !important; color: var(--lospollos-bull) !important; border-left: 3px solid var(--lospollos-bull) !important; }
.alert-danger { background-color: var(--lospollos-bear-bg) !important; color: var(--lospollos-bear) !important; border-left: 3px solid var(--lospollos-bear) !important; }
.alert-warning { background-color: var(--lospollos-warn-bg) !important; color: var(--lospollos-warn) !important; border-left: 3px solid var(--lospollos-warn) !important; }
.alert-info { background-color: var(--lospollos-info-bg) !important; color: var(--lospollos-info) !important; border-left: 3px solid var(--lospollos-info) !important; }

/* --------------------------------------------------------------------------
   Q. Dropdowns
   -------------------------------------------------------------------------- */
.dropdown-menu {
  border: 1px solid var(--lospollos-border) !important;
  border-radius: var(--lospollos-radius-lg) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15) !important;
  padding: 6px !important;
  background-color: var(--lospollos-surface) !important;
}

[data-coreui-theme=dark] .dropdown-menu { backdrop-filter: blur(16px) !important; box-shadow: 0 8px 32px rgba(0,0,0,0.3) !important; }

.dropdown-item { border-radius: 6px !important; font-size: var(--lospollos-font-base) !important; color: var(--lospollos-text-primary) !important; padding: 8px 14px !important; transition: all var(--lospollos-duration) var(--lospollos-ease); }
.dropdown-item:hover { background-color: var(--lospollos-accent-glow) !important; color: var(--lospollos-text-primary) !important; }
.dropdown-item:active { background-color: var(--lospollos-accent) !important; color: var(--lospollos-text-inverse) !important; }
.dropdown-divider { border-color: var(--lospollos-border) !important; margin: 4px 0 !important; }
.dropdown-header { color: var(--lospollos-text-secondary) !important; }

/* --------------------------------------------------------------------------
   R. Pagination
   -------------------------------------------------------------------------- */
.pagination { gap: 3px; }
.page-link { border-radius: var(--lospollos-radius-sm) !important; border: 1px solid var(--lospollos-border) !important; color: var(--lospollos-text-secondary) !important; font-size: 0.83rem !important; padding: 5px 12px !important; font-weight: 500 !important; background-color: transparent !important; }
.page-link:hover { background-color: var(--lospollos-accent-glow) !important; color: var(--lospollos-accent) !important; }
.page-item.active .page-link { background-color: var(--lospollos-accent) !important; border-color: var(--lospollos-accent) !important; color: var(--lospollos-text-inverse) !important; }
.page-item.disabled .page-link { color: var(--lospollos-text-muted) !important; background-color: transparent !important; }

/* --------------------------------------------------------------------------
   S. Tooltips & Popovers
   -------------------------------------------------------------------------- */
.tooltip-inner { background-color: var(--lospollos-surface-raised) !important; border-radius: 6px !important; font-size: 0.76rem !important; padding: 5px 12px !important; }
.popover { border: 1px solid var(--lospollos-border) !important; border-radius: var(--lospollos-radius-lg) !important; background-color: var(--lospollos-surface) !important; }
.popover-header { background-color: var(--lospollos-surface-raised) !important; border-bottom: 1px solid var(--lospollos-border) !important; font-weight: 600 !important; color: var(--lospollos-heading) !important; }
.popover-body { color: var(--lospollos-text-primary) !important; }

/* --------------------------------------------------------------------------
   T. Progress, Spinners, Code
   -------------------------------------------------------------------------- */
.progress { height: 5px !important; border-radius: 3px !important; background-color: var(--lospollos-surface-raised) !important; }
.progress-bar { background: linear-gradient(90deg, var(--lospollos-accent-dim), var(--lospollos-accent)) !important; border-radius: 3px !important; }
[data-coreui-theme=dark] .progress-bar { box-shadow: 0 0 8px rgba(0, 229, 255, 0.3) !important; }

.spinner-border, .spinner-grow { color: var(--lospollos-accent); }

code, pre { font-family: 'JetBrains Mono', 'Fira Code', monospace !important; font-size: 0.8rem !important; border-radius: var(--lospollos-radius-sm) !important; }
code { color: var(--lospollos-accent) !important; background-color: var(--lospollos-code-bg) !important; padding: 2px 7px !important; }
pre { background-color: var(--lospollos-ink) !important; color: var(--lospollos-text-primary) !important; padding: 18px !important; border: 1px solid var(--lospollos-border) !important; }

/* --------------------------------------------------------------------------
   U. Utilities
   -------------------------------------------------------------------------- */
a { color: var(--lospollos-accent); text-decoration: none; transition: color var(--lospollos-duration) var(--lospollos-ease); }
a:hover { color: var(--lospollos-accent-hover); }
hr { border-color: var(--lospollos-border) !important; opacity: 1 !important; }

.list-group-item { border-color: var(--lospollos-border) !important; color: var(--lospollos-text-primary) !important; background-color: transparent !important; }
.list-group-item:hover { background-color: var(--lospollos-accent-glow) !important; }
.list-group-item.active { background-color: var(--lospollos-accent-glow) !important; border-color: var(--lospollos-accent) !important; color: var(--lospollos-accent) !important; }

.bg-body-tertiary, .bg-light { background-color: var(--lospollos-surface-raised) !important; }
.bg-body-secondary { background-color: var(--lospollos-surface-raised) !important; color: var(--lospollos-text-primary) !important; }
.text-body-secondary { color: var(--lospollos-text-secondary) !important; }
.text-body-tertiary { color: var(--lospollos-text-muted) !important; }
.text-body, .text-dark { color: var(--lospollos-text-primary) !important; }

.border { border-color: var(--lospollos-border) !important; }
.border-top, .border-bottom, .border-start, .border-end { border-color: var(--lospollos-border) !important; }

.shadow-sm { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important; }
.shadow { box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1) !important; }
.shadow-lg { box-shadow: 0 8px 48px rgba(0, 0, 0, 0.15) !important; }
[data-coreui-theme=dark] .shadow-sm { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important; }
[data-coreui-theme=dark] .shadow { box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important; }

.rounded { border-radius: var(--lospollos-radius) !important; }
.rounded-lg { border-radius: var(--lospollos-radius-lg) !important; }

/* --------------------------------------------------------------------------
   V. Ace Editor
   -------------------------------------------------------------------------- */
.ace_editor { border-radius: var(--lospollos-radius) !important; border: 1px solid var(--lospollos-border) !important; font-family: 'JetBrains Mono', monospace !important; }
.ace_gutter { background: var(--lospollos-surface) !important; color: var(--lospollos-text-muted) !important; }
.ace_cursor { color: var(--lospollos-accent) !important; }
.ace_marker-layer .ace_selection { background: var(--lospollos-accent-glow) !important; }
.ace_keyword { color: var(--lospollos-accent) !important; }
.ace_string { color: var(--lospollos-warn) !important; }
.ace_comment { color: var(--lospollos-text-muted) !important; font-style: italic; }
.ace_variable { color: var(--lospollos-info) !important; }
.ace_numeric { color: #e879f9 !important; }

/* --------------------------------------------------------------------------
   W. Accordion, Toast, Footer, Offcanvas
   -------------------------------------------------------------------------- */
.accordion-item { background-color: transparent !important; border-color: var(--lospollos-border) !important; }
.accordion-button { background-color: var(--lospollos-surface) !important; color: var(--lospollos-text-primary) !important; font-weight: 500; }
.accordion-button:not(.collapsed) { background-color: var(--lospollos-surface-raised) !important; color: var(--lospollos-accent) !important; box-shadow: none !important; }
.accordion-button::after { filter: var(--lospollos-accordion-filter) !important; }
.accordion-body { background-color: var(--lospollos-surface) !important; color: var(--lospollos-text-primary) !important; }

.toast { background-color: var(--lospollos-surface) !important; border: 1px solid var(--lospollos-border) !important; color: var(--lospollos-text-primary) !important; }
.toast-header { background-color: var(--lospollos-surface-raised) !important; color: var(--lospollos-text-primary) !important; border-bottom: 1px solid var(--lospollos-border) !important; }

.footer, [class*="footer"] { background-color: var(--lospollos-surface) !important; border-top: 1px solid var(--lospollos-border) !important; color: var(--lospollos-text-muted) !important; }
.offcanvas { background-color: var(--lospollos-surface) !important; border-color: var(--lospollos-border) !important; color: var(--lospollos-text-primary) !important; }
.loading_cover { background-color: var(--lospollos-ink) !important; }
.wrapper.d-flex { background-color: var(--lospollos-ink) !important; }
select option { background-color: var(--lospollos-surface) !important; color: var(--lospollos-text-primary) !important; }

/* --------------------------------------------------------------------------
   X. Empty States & Skeletons
   -------------------------------------------------------------------------- */
.empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 56px 24px; text-align: center; color: var(--lospollos-text-muted); }
.empty-state-icon { font-size: 2.5rem; margin-bottom: 14px; opacity: 0.3; color: var(--lospollos-accent); }
.empty-state-title { font-size: 1rem; font-weight: 600; color: var(--lospollos-text-primary); margin-bottom: 8px; }
.empty-state-desc { font-size: var(--lospollos-font-base); color: var(--lospollos-text-secondary); }

@keyframes skeleton-shimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }
.skeleton { background: linear-gradient(90deg, var(--lospollos-surface) 25%, var(--lospollos-surface-raised) 50%, var(--lospollos-surface) 75%); background-size: 800px 100%; animation: skeleton-shimmer 1.6s ease infinite; border-radius: var(--lospollos-radius-sm); }
.skeleton-text { height: 14px; width: 60%; margin-bottom: 8px; }
.skeleton-title { height: 20px; width: 40%; margin-bottom: 12px; }
.skeleton-row { height: 40px; width: 100%; margin-bottom: 4px; }

/* --------------------------------------------------------------------------
   Y. Animations
   -------------------------------------------------------------------------- */
@keyframes lospollos-fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes lospollos-glow-pulse { 0%, 100% { box-shadow: 0 0 8px rgba(0, 229, 255, 0.15); } 50% { box-shadow: 0 0 20px rgba(0, 229, 255, 0.3); } }

.card { animation: lospollos-fade-in 0.3s var(--lospollos-ease) both; }
.card:nth-child(1) { animation-delay: 0s; }
.card:nth-child(2) { animation-delay: 0.05s; }
.card:nth-child(3) { animation-delay: 0.1s; }
.card:nth-child(4) { animation-delay: 0.15s; }
.card:nth-child(5) { animation-delay: 0.2s; }

.lospollos-pulse { animation: lospollos-glow-pulse 2s ease-in-out infinite; }

.body > .container-lg, .body > .container-fluid { animation: lospollos-fade-in 0.25s var(--lospollos-ease) both; }

/* --------------------------------------------------------------------------
   Z. Selection & Focus
   -------------------------------------------------------------------------- */
::selection { background-color: var(--lospollos-accent-glow-strong); color: var(--lospollos-heading); }
:focus-visible { outline: 2px solid var(--lospollos-accent) !important; outline-offset: 2px !important; }

/* --------------------------------------------------------------------------
   ZZ. CoreUI sidebar-light class override (used in both themes)
   -------------------------------------------------------------------------- */
.sidebar.sidebar-light, .sidebar-light {
  background-color: var(--lospollos-sidebar-bg) !important;
  color: var(--lospollos-sidebar-text) !important;
}

.sidebar.sidebar-light .nav-link, .sidebar-light .nav-link { color: var(--lospollos-sidebar-text) !important; }
.sidebar.sidebar-light .nav-link:hover { color: #ffffff !important; background-color: var(--lospollos-sidebar-hover-bg) !important; }
.sidebar.sidebar-light .nav-link.active { color: var(--lospollos-sidebar-active-text) !important; background-color: var(--lospollos-sidebar-active-bg) !important; }

/* ==========================================================================
   REFINE. Elegance refinement layer (v2) — modern polish, both themes
   Loaded last so it intentionally refines earlier declarations.
   ========================================================================== */

/* Softer, layered surfaces + airier ink */
[data-coreui-theme=light] {
  --lospollos-ink: #f6f8fb;
  --lospollos-card-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 6px 16px rgba(16, 24, 40, 0.05);
  --lospollos-border: #e6eaf0;
}

/* Sidebar — gentle vertical depth + refined brand lockup */
.sidebar {
  background-image: linear-gradient(180deg, #232b3e 0%, #1a2030 100%) !important;
}
.sidebar-brand {
  padding: 18px 16px !important;
  gap: 11px !important;
}
.sidebar-brand img { height: 32px !important; width: 32px !important; }
.sidebar-brand-full {
  font-size: 1.02rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
}
.sidebar .nav-link {
  margin: 2px 12px !important;
  border-radius: 10px !important;
}
.sidebar .nav-link.active,
.sidebar-nav .nav-link.active {
  box-shadow: 0 4px 14px rgba(13, 148, 136, 0.35) !important;
}
[data-coreui-theme=dark] .sidebar { background-image: linear-gradient(180deg, #0c111c 0%, #080b12 100%) !important; }

/* Header — glassy translucency in light mode + crisper divider */
[data-coreui-theme=light] .header {
  background-color: rgba(255, 255, 255, 0.82) !important;
  backdrop-filter: blur(12px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.04), 0 4px 16px rgba(16, 24, 40, 0.03) !important;
}

/* Cards — softer, rounder, with a refined hover lift */
.card {
  border-radius: 16px !important;
  transition: transform var(--lospollos-duration) var(--lospollos-ease),
              border-color var(--lospollos-duration) var(--lospollos-ease),
              box-shadow var(--lospollos-duration) var(--lospollos-ease) !important;
}
.card:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(16, 24, 40, 0.08) !important; }

/* Buttons — cohesive radius, subtle elevation, smooth press */
.btn {
  border-radius: 10px !important;
  letter-spacing: 0.015em !important;
  transition: transform 0.12s var(--lospollos-ease), box-shadow var(--lospollos-duration) var(--lospollos-ease), background-color var(--lospollos-duration) var(--lospollos-ease) !important;
}
.btn-primary, .btn-success, .btn-danger, .btn-warning, .btn-info {
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.10), 0 2px 6px rgba(16, 24, 40, 0.06) !important;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-warning { color: #3b2f00 !important; }

/* Inputs / selects — rounder, refined focus ring */
.form-control, .form-select, input, select, textarea {
  border-radius: 10px !important;
}
.form-control:focus, .form-select:focus, input:focus, select:focus, textarea:focus {
  box-shadow: 0 0 0 3px var(--lospollos-accent-glow) !important;
}

/* Tables — airier rows, refined header, softly elevated container */
.table-responsive {
  border-radius: 14px !important;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04), 0 10px 28px rgba(16, 24, 40, 0.05) !important;
}
.table thead th, .table > thead > tr > th {
  font-size: 0.69rem !important;
  letter-spacing: 0.08em !important;
  padding: 12px 14px !important;
}
.table tbody td, .table > tbody > tr > td { padding: 11px 14px !important; }

/* Dropdowns / modals — deeper, softer shadow */
.dropdown-menu { box-shadow: 0 12px 40px rgba(16, 24, 40, 0.14) !important; }
.modal-content { border-radius: 18px !important; }

/* Badges & pills — pill shape for a modern feel */
.badge { border-radius: 999px !important; padding: 4px 10px !important; }

/* Pagination — pill buttons */
.page-link { border-radius: 8px !important; }

/* Login page — branded logo badge above the form (scoped to the full-height auth layout) */
.min-vh-100 form::before {
  content: "";
  display: block;
  width: 132px;
  height: 132px;
  margin: 4px auto 22px;
  border-radius: 18px;
  background: url("/frontend/logo-login.png?v=lp3") center / cover no-repeat, #0d0d0d;
  box-shadow: 0 8px 28px rgba(16, 24, 40, 0.18);
}
.min-vh-100 form h1 { text-align: center !important; justify-content: center !important; }
.min-vh-100 form p.text-body-secondary,
.min-vh-100 form .text-medium-emphasis { text-align: center !important; }
