/*
 * FastRoute – Koyu Premium Theme
 * ---------------------------------------------------------------
 * Wird automatisch in jede HTML-Seite eingebunden (includes/theme.php).
 * Alle Stylesheets nutzen var(--t-…, <alte Hellfarbe>): ohne diese Datei
 * sieht alles wie früher (hell) aus. Ausschalten: in config/db.php
 *   define('FASTROUTE_THEME', 'light');
 * Beim Drucken gilt automatisch wieder das helle Layout (Tokens nur @media screen).
 */

@media screen {
  :root {
    color-scheme: dark;

    /* Flächen */
    --t-bg: #0b0f14;
    --t-surface: #131a22;
    --t-surface-sunk: #0f151c;
    --t-surface-raised: #1c2531;
    --t-glass-hi: #131a22;
    --t-glass-lo: rgba(255, 255, 255, 0.035);
    --t-hover: rgba(255, 255, 255, 0.05);

    /* Linien */
    --t-border: #232e3b;
    --t-border-strong: #2f3c4c;
    --t-border-soft: rgba(255, 255, 255, 0.07);

    /* Text */
    --t-text: #e6edf3;
    --t-text-2: #cbd5e1;
    --t-text-muted: #a0adbb;
    --t-text-faint: #8a99ab;

    /* Farbige Schrift (ehemals dunkle Statusfarben auf hellem Grund) */
    --t-ink-red: #fda4af;
    --t-ink-orange: #fdba74;
    --t-ink-yellow: #fde68a;
    --t-ink-green: #86efac;
    --t-ink-teal: #5eead4;
    --t-ink-blue: #93c5fd;
    --t-ink-purple: #c4b5fd;
    --t-ink-pink: #f9a8d4;

    /* Getönte Flächen (ehemals Pastell) */
    --t-tint-red: rgba(244, 63, 94, 0.14);
    --t-tint-orange: rgba(251, 146, 60, 0.14);
    --t-tint-yellow: rgba(250, 204, 21, 0.12);
    --t-tint-green: rgba(34, 197, 94, 0.14);
    --t-tint-teal: rgba(45, 212, 191, 0.13);
    --t-tint-blue: rgba(59, 130, 246, 0.16);
    --t-tint-purple: rgba(139, 92, 246, 0.16);
    --t-tint-pink: rgba(236, 72, 153, 0.14);
    --t-tint-line-red: rgba(244, 63, 94, 0.35);
    --t-tint-line-orange: rgba(251, 146, 60, 0.35);
    --t-tint-line-yellow: rgba(250, 204, 21, 0.3);
    --t-tint-line-green: rgba(34, 197, 94, 0.35);
    --t-tint-line-teal: rgba(45, 212, 191, 0.35);
    --t-tint-line-blue: rgba(59, 130, 246, 0.38);
    --t-tint-line-purple: rgba(139, 92, 246, 0.38);
    --t-tint-line-pink: rgba(236, 72, 153, 0.35);

    /* Akzent */
    --t-accent: #2dd4bf;
    --t-accent-ink: #04201c;
    --t-accent-soft: rgba(45, 212, 191, 0.12);

    /* Bestehende Marken-Tokens an das dunkle Thema anpassen */
    --fr-content-bg: var(--t-bg);
    --fr-surface: var(--t-surface);
    --fr-surface-muted: var(--t-surface-sunk);
    --fr-border: var(--t-border);
    --fr-border-strong: var(--t-border-strong);
    --fr-brand-dark: #14b8a6;
    --fr-brand-darker: #2dd4bf;
    --fr-brand-muted: #99f6e4;
    --fr-brand-50: rgba(45, 212, 191, 0.08);
    --fr-brand-100: rgba(45, 212, 191, 0.14);
    --fr-brand-200: rgba(45, 212, 191, 0.24);
    --fr-charcoal: #0e141b;
    --fr-charcoal-deep: #0b0f14;
    --fr-charcoal-mid: #131a22;
    --fr-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
    --fr-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
    --fr-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.45);
    --light: var(--t-bg);
    --white: var(--t-surface);
    --gray-100: var(--t-surface-sunk);
    --gray-200: var(--t-border);
    --gray-600: var(--t-text-muted);
    --gray-800: var(--t-text);
    --premium-gray: var(--t-surface-sunk);
    --primary-color: var(--t-accent);

    /* Website (site-premium.css) und Bewerbung */
    --fr-bg: var(--t-bg);
    --fr-bg-elevated: var(--t-surface);
    --fr-surface-strong: var(--t-surface-raised);
    --fr-glass-border: var(--t-border);
    --fr-text: var(--t-text);
    --fr-text-muted: var(--t-text-muted);
    --fr-text-dim: var(--t-text-faint);
    --fr-muted: var(--t-text-muted);
    --fr-dark: var(--t-text);
    --fr-blue: #2dd4bf;
    --fr-shadow-blue: 0 8px 24px rgba(0, 0, 0, 0.35);
    --fr-shadow-orange: 0 10px 30px rgba(0, 0, 0, 0.35);
    --fr-text-on-dark: #c8d1dc;
    --fr-text-on-dark-muted: #8b98a8;
  }

  /* ---------- Website: Startseite / Hero ---------- */
  .fr-hero__bg--gradient {
    background:
      radial-gradient(ellipse 70% 60% at 15% 35%, rgba(45, 212, 191, 0.10) 0%, transparent 60%),
      radial-gradient(ellipse 60% 50% at 90% 10%, rgba(59, 130, 246, 0.06) 0%, transparent 55%),
      linear-gradient(160deg, #0b0f14 0%, #0e141b 60%, #0b0f14 100%) !important;
  }
  .fr-hero__van, .fr-page-hero__van { opacity: 0.38 !important; filter: saturate(0.5) brightness(0.55) contrast(1.1) !important; }
  .fr-hero__overlay {
    background:
      linear-gradient(105deg, rgba(11, 15, 20, 0.96) 0%, rgba(11, 15, 20, 0.82) 42%, rgba(11, 15, 20, 0.45) 72%, rgba(11, 15, 20, 0.6) 100%),
      linear-gradient(0deg, #0b0f14 0%, transparent 30%) !important;
  }
  .fr-hero__title span {
    background: linear-gradient(135deg, #f8fafc 25%, #5eead4) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
  }
  .fr-glass { border-color: var(--t-border-strong) !important; }

  /* ---------- Bootstrap 5.3 (data-bs-theme="dark") an die Palette anpassen ---------- */
  [data-bs-theme="dark"] {
    --bs-body-bg: var(--t-bg);
    --bs-body-bg-rgb: 11, 15, 20;
    --bs-body-color: var(--t-text);
    --bs-body-color-rgb: 230, 237, 243;
    --bs-emphasis-color: #f8fafc;
    --bs-secondary-color: rgba(230, 237, 243, 0.68);
    --bs-tertiary-color: rgba(230, 237, 243, 0.5);
    --bs-secondary-bg: var(--t-surface-raised);
    --bs-tertiary-bg: var(--t-surface);
    --bs-border-color: var(--t-border);
    --bs-border-color-translucent: rgba(255, 255, 255, 0.08);
    --bs-heading-color: #f8fafc;
    --bs-link-color: #5eead4;
    --bs-link-color-rgb: 94, 234, 212;
    --bs-link-hover-color: #99f6e4;
    --bs-link-hover-color-rgb: 153, 246, 228;
    --bs-primary: #2dd4bf;
    --bs-primary-rgb: 45, 212, 191;
    --bs-primary-text-emphasis: #5eead4;
    --bs-primary-bg-subtle: rgba(45, 212, 191, 0.12);
    --bs-primary-border-subtle: rgba(45, 212, 191, 0.35);
    --bs-focus-ring-color: rgba(45, 212, 191, 0.3);
    --bs-form-valid-color: #86efac;
    --bs-form-invalid-color: #fda4af;
  }

  html, body {
    background-color: var(--t-bg) !important;
    color: var(--t-text);
  }
  ::selection { background: rgba(45, 212, 191, 0.3); color: #fff; }
  * { scrollbar-color: #2f3c4c transparent; }

  /* Karten, Modals, Menüs */
  .card { --bs-card-bg: var(--t-surface); --bs-card-border-color: var(--t-border); --bs-card-cap-bg: var(--t-surface-sunk); color: var(--t-text); }
  .modal-content { background-color: var(--t-surface); border-color: var(--t-border); color: var(--t-text); }
  .modal-header, .modal-footer { border-color: var(--t-border) !important; }
  .modal-backdrop.show { opacity: 0.7; }
  .dropdown-menu { --bs-dropdown-bg: var(--t-surface-raised); --bs-dropdown-border-color: var(--t-border-strong); --bs-dropdown-link-color: var(--t-text); --bs-dropdown-link-hover-bg: var(--t-hover); --bs-dropdown-link-hover-color: #fff; --bs-dropdown-divider-bg: var(--t-border); }
  .offcanvas { background-color: var(--t-surface); color: var(--t-text); }
  .list-group { --bs-list-group-bg: var(--t-surface); --bs-list-group-border-color: var(--t-border); --bs-list-group-color: var(--t-text); --bs-list-group-action-hover-bg: var(--t-hover); }
  .popover { --bs-popover-bg: var(--t-surface-raised); --bs-popover-border-color: var(--t-border-strong); }
  .toast { --bs-toast-bg: var(--t-surface-raised); --bs-toast-color: var(--t-text); }

  /* Tabellen */
  .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--t-text);
    --bs-table-border-color: var(--t-border);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.025);
    --bs-table-striped-color: var(--t-text);
    --bs-table-hover-bg: var(--t-hover);
    --bs-table-hover-color: #fff;
    --bs-table-active-bg: rgba(45, 212, 191, 0.1);
  }
  .table > thead > tr > th, .table thead th { color: var(--t-text-muted); }
  .table-light, .table > thead.table-light > tr > th, .table-light > :not(caption) > * > * {
    --bs-table-bg: var(--t-surface-sunk) !important;
    --bs-table-color: var(--t-text-muted) !important;
    --bs-table-border-color: var(--t-border) !important;
    background-color: var(--t-surface-sunk) !important;
    color: var(--t-text-muted) !important;
  }
  .table-responsive { scrollbar-color: #2f3c4c transparent; }

  /* Formulare */
  .form-control, .form-select, .input-group-text, textarea, select,
  input[type="text"], input[type="email"], input[type="password"], input[type="search"],
  input[type="number"], input[type="tel"], input[type="date"], input[type="time"],
  input[type="datetime-local"], input[type="month"], input[type="url"] {
    background-color: var(--t-surface-sunk) !important;
    border-color: var(--t-border-strong) !important;
    color: var(--t-text) !important;
  }
  .form-control:focus, .form-select:focus, textarea:focus, select:focus, input:focus {
    border-color: rgba(45, 212, 191, 0.6) !important;
    box-shadow: 0 0 0 0.2rem rgba(45, 212, 191, 0.18) !important;
  }
  .form-control:disabled, .form-select:disabled, .form-control[readonly] { background-color: #0d1218 !important; color: var(--t-text-muted) !important; }
  ::placeholder { color: #6b7a8c !important; opacity: 1; }
  .form-check-input { background-color: var(--t-surface-sunk); border-color: var(--t-border-strong); }
  .form-check-input:checked { background-color: #14b8a6; border-color: #14b8a6; }
  .form-text, .form-label { color: var(--t-text-muted); }
  input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--t-text);
    -webkit-box-shadow: 0 0 0 1000px var(--t-surface-sunk) inset;
    transition: background-color 9999s ease-out 0s;
  }
  .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2393a1b0' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }

  /* Buttons */
  .btn-primary, .btn-success.btn-brand, .btn-premium-primary, .btn-pr {
    --bs-btn-bg: #2dd4bf; --bs-btn-border-color: #2dd4bf; --bs-btn-color: #04201c;
    --bs-btn-hover-bg: #5eead4; --bs-btn-hover-border-color: #5eead4; --bs-btn-hover-color: #04201c;
    --bs-btn-active-bg: #14b8a6; --bs-btn-active-border-color: #14b8a6; --bs-btn-active-color: #04201c;
    --bs-btn-disabled-bg: #1f6f66; --bs-btn-disabled-border-color: #1f6f66; --bs-btn-disabled-color: #9fb3b0;
  }
  .btn-outline-primary { --bs-btn-color: #5eead4; --bs-btn-border-color: rgba(45, 212, 191, 0.5); --bs-btn-hover-bg: rgba(45, 212, 191, 0.12); --bs-btn-hover-color: #99f6e4; --bs-btn-hover-border-color: #2dd4bf; --bs-btn-active-bg: rgba(45, 212, 191, 0.2); --bs-btn-active-color: #99f6e4; }
  .btn-light, .btn-white { --bs-btn-bg: var(--t-surface-raised); --bs-btn-border-color: var(--t-border-strong); --bs-btn-color: var(--t-text); --bs-btn-hover-bg: #253041; --bs-btn-hover-border-color: #3a4a5d; --bs-btn-hover-color: #fff; --bs-btn-active-bg: #253041; --bs-btn-active-color: #fff; }
  .btn-outline-secondary, .btn-outline-dark, .btn-outline-light { --bs-btn-color: var(--t-text-2); --bs-btn-border-color: var(--t-border-strong); --bs-btn-hover-bg: var(--t-hover); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: #3a4a5d; --bs-btn-active-bg: rgba(255, 255, 255, 0.08); --bs-btn-active-color: #fff; }
  .btn-dark { --bs-btn-bg: #e6edf3; --bs-btn-color: #0b0f14; --bs-btn-border-color: #e6edf3; --bs-btn-hover-bg: #fff; --bs-btn-hover-color: #0b0f14; }
  .btn-secondary { --bs-btn-bg: var(--t-surface-raised); --bs-btn-border-color: var(--t-border-strong); --bs-btn-color: var(--t-text); --bs-btn-hover-bg: #253041; --bs-btn-hover-color: #fff; }
  .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

  /* Bootstrap-Hilfsklassen, die im Hellmodus fest weiß/hell sind */
  .bg-white, .bg-light, .bg-body, .bg-body-tertiary { background-color: var(--t-surface) !important; }
  .bg-body-secondary { background-color: var(--t-surface-raised) !important; }
  .text-bg-light { background-color: var(--t-surface-raised) !important; color: var(--t-text) !important; }
  .badge.bg-light, .badge.text-bg-light { background-color: var(--t-surface-raised) !important; color: var(--t-text-2) !important; }
  .text-dark, .text-black, .text-body, .link-dark { color: var(--t-text) !important; }
  .text-muted, .text-secondary, .text-body-secondary { color: var(--t-text-muted) !important; }
  .text-primary { color: #5eead4 !important; }
  .border, .border-top, .border-bottom, .border-start, .border-end, .border-light { border-color: var(--t-border) !important; }
  hr { border-color: var(--t-border); opacity: 1; }
  .shadow-sm { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) !important; }
  .shadow { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35) !important; }
  code { color: #f9a8d4; }
  kbd { background: var(--t-surface-raised); color: var(--t-text); }
  .nav-tabs { --bs-nav-tabs-border-color: var(--t-border); --bs-nav-tabs-link-active-bg: var(--t-surface); --bs-nav-tabs-link-active-color: #fff; --bs-nav-tabs-link-active-border-color: var(--t-border) var(--t-border) var(--t-surface); --bs-nav-tabs-link-hover-border-color: var(--t-border); }
  .nav-pills { --bs-nav-pills-link-active-bg: #2dd4bf; --bs-nav-pills-link-active-color: #04201c; }
  .nav-link { color: var(--t-text-2); }
  .pagination { --bs-pagination-bg: var(--t-surface); --bs-pagination-border-color: var(--t-border); --bs-pagination-color: var(--t-text-2); --bs-pagination-hover-bg: var(--t-hover); --bs-pagination-hover-color: #fff; --bs-pagination-active-bg: #2dd4bf; --bs-pagination-active-border-color: #2dd4bf; --bs-pagination-active-color: #04201c; --bs-pagination-disabled-bg: var(--t-surface-sunk); --bs-pagination-disabled-color: var(--t-text-faint); }
  .progress { --bs-progress-bg: var(--t-surface-raised); }
  .accordion { --bs-accordion-bg: var(--t-surface); --bs-accordion-border-color: var(--t-border); --bs-accordion-btn-bg: var(--t-surface); --bs-accordion-active-bg: rgba(45, 212, 191, 0.08); --bs-accordion-active-color: #5eead4; --bs-accordion-color: var(--t-text); }
  .alert-light { --bs-alert-bg: var(--t-surface-raised); --bs-alert-color: var(--t-text); --bs-alert-border-color: var(--t-border-strong); }
  .tooltip { --bs-tooltip-bg: #e6edf3; --bs-tooltip-color: #0b0f14; }

  /* Drittanbieter */
  .ts-control, .ts-dropdown, .ts-wrapper .ts-control input { background: var(--t-surface-sunk) !important; color: var(--t-text) !important; border-color: var(--t-border-strong) !important; }
  .ts-dropdown .active { background: var(--t-hover) !important; color: #fff !important; }
  .leaflet-container { background: #0b0f14; }
  .leaflet-popup-content-wrapper, .leaflet-popup-tip { background: var(--t-surface-raised); color: var(--t-text); }
  .leaflet-bar a { background: var(--t-surface-raised); color: var(--t-text); border-color: var(--t-border); }
  .pac-container { background: var(--t-surface-raised); border-color: var(--t-border-strong); }
  .pac-item { color: var(--t-text-muted); border-color: var(--t-border); }
  .pac-item-query { color: var(--t-text); }
  .pac-item:hover { background: var(--t-hover); }
  /* ---------- Türkise Aktions-Buttons: helles Türkis mit dunkler Schrift (Kontrast) ---------- */
  .btn-premium-primary, .fr-btn--primary, .fr-nav-cta, .fr-nav-shop, .fr-mobile-shop, .fr-quote-launch__cta,
  .fr-shop-promo__cta, .fr-cookie-accept, .login-body .btn-login, .fo-btn-primary, .btn-buchen,
  .btn-primary-vermietung, .navbar-rental .btn-vermietung, .shop-btn-primary, .fr-booking-page .btn-step,
  .pr-fu-chip.is-active, .abr-tabs .nav-link.abr-tab-monatsauswertung, .bh-tab.active, .fl-chip.active,
  .pr-subnav-link.is-active, .btn-pr, .sp-camera-btn, .login-lang a.is-active, .fr-booking-page .step-dot.active {
    background: linear-gradient(135deg, #2dd4bf, #14b8a6) !important;
    border-color: #2dd4bf !important;
    color: #04201c !important;
  }
  .btn-premium-primary *, .fr-btn--primary *, .fr-nav-cta *, .fr-nav-shop *, .fr-mobile-shop *, .fr-quote-launch__cta *,
  .fr-shop-promo__cta *, .login-body .btn-login *, .fo-btn-primary *, .btn-buchen *, .shop-btn-primary *,
  .pr-fu-chip.is-active *, .bh-tab.active *, .fl-chip.active *, .pr-subnav-link.is-active *, .btn-pr * { color: inherit !important; }
  .fl-avatar-initials, .sidebar-user__avatar--initials, .admin-topbar__user-avatar--initials, .login-admin-avatar,
  .fr-rider-initials, .fr-progress-step.is-active .fr-progress-num, .fr-stage.is-open .fr-stage-num,
  .fr-stage.is-done .fr-stage-num, .fr-size-badge, .fr-cat-check {
    background: #2dd4bf !important;
    color: #04201c !important;
  }
  .fr-cro-fab__label { color: #04201c !important; }
  .rcal-day--today .rcal-day-num, .rental-cal .day.selected { color: #04201c !important; background: #2dd4bf !important; }
  .login-choice-icon--kunde, .login-choice-icon--fahrer { color: #04201c !important; }
  .login-choice-icon--admin { color: #fff !important; }
  .login-choice-icon i { color: inherit !important; }

  /* Bootstrap-Statusfarben auf dunklem Grund lesbar machen */
  .text-danger { color: #fda4af !important; }
  .text-success { color: #86efac !important; }
  .text-warning { color: #fde68a !important; }
  .text-info { color: #7dd3fc !important; }
  .btn-outline-danger { --bs-btn-color: #fda4af; --bs-btn-border-color: rgba(244, 63, 94, 0.5); --bs-btn-hover-bg: rgba(244, 63, 94, 0.15); --bs-btn-hover-color: #fecdd3; --bs-btn-hover-border-color: #fb7185; }
  .btn-outline-success { --bs-btn-color: #86efac; --bs-btn-border-color: rgba(34, 197, 94, 0.5); --bs-btn-hover-bg: rgba(34, 197, 94, 0.15); --bs-btn-hover-color: #bbf7d0; --bs-btn-hover-border-color: #4ade80; }
  .btn-outline-warning { --bs-btn-color: #fde68a; --bs-btn-border-color: rgba(250, 204, 21, 0.45); --bs-btn-hover-bg: rgba(250, 204, 21, 0.14); --bs-btn-hover-color: #fef3c7; }
  .btn-outline-info { --bs-btn-color: #7dd3fc; --bs-btn-border-color: rgba(56, 189, 248, 0.45); --bs-btn-hover-bg: rgba(56, 189, 248, 0.14); --bs-btn-hover-color: #e0f2fe; }

  /* Rozetten: getönt statt grell (modern, gut lesbar) */
  .badge.bg-warning, .badge.text-bg-warning, .text-bg-warning { background-color: rgba(250, 204, 21, 0.16) !important; color: #fde68a !important; }
  .badge.bg-info, .badge.text-bg-info, .text-bg-info { background-color: rgba(56, 189, 248, 0.16) !important; color: #7dd3fc !important; }
  .badge.bg-success, .badge.text-bg-success, .text-bg-success { background-color: rgba(34, 197, 94, 0.16) !important; color: #86efac !important; }
  .badge.bg-danger, .badge.text-bg-danger, .text-bg-danger { background-color: rgba(244, 63, 94, 0.18) !important; color: #fda4af !important; }
  .badge.bg-primary, .badge.text-bg-primary, .text-bg-primary { background-color: rgba(45, 212, 191, 0.16) !important; color: #5eead4 !important; }
  .badge.bg-secondary, .badge.text-bg-secondary, .text-bg-secondary { background-color: var(--t-surface-raised) !important; color: var(--t-text-2) !important; }
  .badge.bg-dark, .badge.text-bg-dark, .text-bg-dark { background-color: #e6edf3 !important; color: #0b0f14 !important; }
  .badge.bg-light, .badge.text-bg-light { background-color: transparent !important; color: var(--t-text-muted) !important; box-shadow: inset 0 0 0 1px var(--t-border-strong); }
  .fl-art-badge-sfu { background: rgba(250, 204, 21, 0.16) !important; color: #fde68a !important; border-color: rgba(250, 204, 21, 0.35) !important; }

  /* Dunkle Leisten an die Theme-Fläche angleichen */
  .admin-mobile-dock { background: rgba(15, 21, 28, 0.96) !important; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
}

/* Drucken: immer helles Papier-Layout */
@media print {
  :root, [data-bs-theme="dark"] {
    color-scheme: light;
    --bs-body-bg: #fff; --bs-body-bg-rgb: 255, 255, 255;
    --bs-body-color: #212529; --bs-body-color-rgb: 33, 37, 41;
    --bs-emphasis-color: #000; --bs-secondary-color: rgba(33, 37, 41, 0.75);
    --bs-secondary-bg: #e9ecef; --bs-tertiary-bg: #f8f9fa;
    --bs-border-color: #dee2e6; --bs-heading-color: inherit;
  }
  html, body { background: #fff !important; color: #000 !important; }
}
