/* AlfaPed Flotta — letisztult felület, világos és sötét témával (Bootstrap 5 data-bs-theme) */

:root {
  --app-bg: #f4f6fb;
  --app-surface: #ffffff;
  --app-surface-2: #eef1f9;
  --app-navbar-bg: #ffffff;
  --app-border: #dbe2f0;
  --app-text: #1b1e22;
  --app-text-muted: #69707d;
  --app-accent: #5b7fd6;
  --app-accent-strong: #435fb0;
  --app-accent-soft: #e6ecfa;
  --app-accent-contrast: #ffffff;

  --app-success-text: #1f6b3f;
  --app-success-border: #2f8f5a;
  --app-success-bg: rgba(47, 143, 90, 0.1);
  --app-warning-text: #8a5a06;
  --app-warning-border: #c68a1f;
  --app-warning-bg: rgba(198, 138, 31, 0.12);
  --app-danger-text: #a4342a;
  --app-danger-border: #b8493e;
  --app-danger-bg: rgba(184, 73, 62, 0.1);

  --bs-body-bg: var(--app-bg);
  --bs-body-color: var(--app-text);
  --bs-secondary-bg: var(--app-surface);
  --bs-tertiary-bg: var(--app-surface-2);
  --bs-border-color: var(--app-border);
  --bs-border-color-translucent: var(--app-border);
  --bs-emphasis-color: #0b0d0f;
  --bs-secondary-color: var(--app-text-muted);
  --bs-primary: var(--app-accent);
  --bs-primary-rgb: 91, 127, 214;
  --bs-link-color: var(--app-accent-strong);
  --bs-link-hover-color: var(--app-accent);
  --bs-link-color-rgb: 67, 95, 176;
}

[data-bs-theme="dark"] {
  --app-bg: #10131c;
  --app-surface: #171b26;
  --app-surface-2: #1d2230;
  --app-navbar-bg: #0b0e16;
  --app-border: #2a3040;
  --app-text: #e7e9ec;
  --app-text-muted: #8b92a2;
  --app-accent: #7b9be6;
  --app-accent-strong: #5f82d6;
  --app-accent-soft: rgba(123, 155, 230, 0.14);
  --app-accent-contrast: #081020;

  --app-success-text: #a9dab9;
  --app-success-border: #2f6b46;
  --app-success-bg: rgba(63, 174, 103, 0.1);
  --app-warning-text: #e2b768;
  --app-warning-border: #7a5c22;
  --app-warning-bg: rgba(216, 166, 61, 0.08);
  --app-danger-text: #e6a49b;
  --app-danger-border: #7a3630;
  --app-danger-bg: rgba(209, 89, 79, 0.1);

  --bs-body-bg: var(--app-bg);
  --bs-body-color: var(--app-text);
  --bs-secondary-bg: var(--app-surface);
  --bs-tertiary-bg: var(--app-surface-2);
  --bs-border-color: var(--app-border);
  --bs-border-color-translucent: var(--app-border);
  --bs-emphasis-color: #f4f5f6;
  --bs-secondary-color: var(--app-text-muted);
  --bs-primary: var(--app-accent);
  --bs-primary-rgb: 123, 155, 230;
  --bs-link-color: var(--app-accent);
  --bs-link-hover-color: #9db4ec;
  --bs-link-color-rgb: 123, 155, 230;
}

body {
  background-color: var(--app-bg);
  font-size: 0.94rem;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  letter-spacing: -0.015em;
}

/* Navbar */

.app-navbar {
  background-color: var(--app-navbar-bg);
  border-bottom: 1px solid var(--app-border);
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
}

.app-navbar .navbar-brand {
  font-weight: 600;
  font-size: 1rem;
  color: var(--app-text);
  letter-spacing: -0.01em;
}

.app-navbar .brand-mark {
  color: var(--app-accent);
  font-weight: 700;
}

.app-navbar .nav-link {
  color: var(--app-text-muted);
  font-size: 0.9rem;
  font-weight: 500;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus,
.app-navbar .nav-link.active {
  color: var(--app-text);
}

.app-navbar .navbar-text {
  color: var(--app-text-muted);
  font-size: 0.85rem;
}

.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  padding: 0;
}

.theme-toggle svg {
  width: 1.05rem;
  height: 1.05rem;
}

.theme-toggle-floating {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 1030;
  background-color: var(--app-surface);
}

.dropdown-menu {
  background-color: var(--app-surface-2);
  border: 1px solid var(--app-border);
}

.dropdown-item {
  color: var(--app-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--app-border);
  color: var(--app-text);
}

/* Cards */

.card {
  background-color: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: 8px;
  box-shadow: none;
}

.login-card {
  background-color: var(--app-surface);
}

.login-eyebrow {
  color: var(--app-text-muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
}

.stat-value {
  font-size: 1.65rem;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.stat-label {
  font-size: 0.7rem;
  color: var(--app-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 600;
}

/* Buttons */

.btn {
  border-radius: 6px;
  font-weight: 500;
  font-size: 0.9rem;
}

.btn-primary {
  background-color: var(--app-accent-strong);
  border-color: var(--app-accent-strong);
  color: var(--app-accent-contrast);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--app-accent);
  border-color: var(--app-accent);
  color: var(--app-accent-contrast);
}

.btn-outline-primary {
  color: var(--app-accent-strong);
  border-color: var(--app-accent-strong);
}

.btn-outline-primary:hover {
  background-color: var(--app-accent-strong);
  border-color: var(--app-accent-strong);
  color: var(--app-accent-contrast);
}

.btn-outline-secondary {
  color: var(--app-text-muted);
  border-color: var(--app-border);
}

.btn-outline-secondary:hover {
  background-color: var(--app-surface-2);
  border-color: var(--app-border);
  color: var(--app-text);
}

.btn-outline-danger {
  --bs-btn-color: var(--app-danger-text);
  --bs-btn-border-color: var(--app-danger-border);
  --bs-btn-hover-bg: var(--app-danger-border);
  --bs-btn-hover-border-color: var(--app-danger-border);
  --bs-btn-hover-color: var(--app-accent-contrast);
}

/* Forms */

.form-control,
.form-select {
  background-color: var(--app-surface-2);
  border-color: var(--app-border);
  color: var(--app-text);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--app-surface-2);
  border-color: var(--app-accent-strong);
  color: var(--app-text);
  box-shadow: 0 0 0 0.2rem var(--app-accent-soft);
}

.form-label {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--app-text-muted);
}

.form-text {
  font-size: 0.78rem;
}

/* Tables */

.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--app-text);
  --bs-table-border-color: var(--app-border);
}

.table > thead {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--app-text-muted);
  font-weight: 600;
}

.table-hover > tbody > tr:hover > * {
  background-color: var(--app-surface-2);
  color: var(--app-text);
}

/* Progress bar */

.progress {
  background-color: var(--app-surface-2);
  border-radius: 999px;
  overflow: hidden;
}

.progress-bar {
  border-radius: 999px;
}

/* Status panels (replaces loud alert boxes on the dashboard) */

.status-panel {
  border: 1px solid var(--app-border);
  border-left: 3px solid var(--app-text-muted);
  border-radius: 8px;
  background-color: var(--app-surface);
  padding: 1rem 1.15rem;
  margin-bottom: 1.5rem;
  font-size: 0.9rem;
}

.status-panel-success {
  border-left-color: var(--app-success-border);
  color: var(--app-success-text);
}

.status-panel-warning {
  border-left-color: var(--app-warning-border);
}

.status-panel-warning h2 {
  color: var(--app-warning-text);
}

/* Flash alerts */

.alert {
  border-radius: 8px;
  border: 1px solid;
  font-size: 0.9rem;
}

.alert-success {
  background-color: var(--app-success-bg);
  border-color: var(--app-success-border);
  color: var(--app-success-text);
}

.alert-info {
  background-color: var(--app-accent-soft);
  border-color: var(--app-accent-strong);
  color: var(--app-accent-strong);
}

.alert-danger {
  background-color: var(--app-danger-bg);
  border-color: var(--app-danger-border);
  color: var(--app-danger-text);
}

/* Badges */

.badge {
  font-weight: 600;
  letter-spacing: 0.01em;
}

@media (max-width: 576px) {
  .stat-value {
    font-size: 1.3rem;
  }
}
