:root {
    --bg: #2b2f36;
    --bg-secondary: #373c45;
    --bg-color: #373c45;
    --card-bg: #343942;
    --bg-card: #343942;
    --surface: #343942;
    --text: #e7ebf3;
    --text-primary: #f4f7fc;
    --text-muted: #aeb7c7;
    --border: #4b515d;
    --border-color: #4b515d;
    --divider: #4b515d;
    --radius: 10px;
    --info: #60a5fa;
    --info-banner-light: #1e3a5f;
    --info-banner-dark: #1a3652;
    --info-banner-border: #2d5a7a;
}

body {
    background: #2b2f36;
    color: var(--text);
}

.main-content {
    background: linear-gradient(180deg, #2f333b 0%, #2b2f36 100%);
    color: var(--text);
}

.main-content .card,
.main-content .stat-card,
.main-content .filter-bar,
.main-content .trip-card,
.main-content .tracker-card,
.main-content .line-card,
.main-content .catalog-card,
.main-content .fb-card,
.main-content .assign-card {
    background: #343942 !important;
    border-color: var(--border-color);
    box-shadow: 0 10px 24px rgba(10, 12, 16, 0.22);
}

.main-content .card-header {
    border-bottom-color: var(--border-color);
}

.main-content .table th {
    color: var(--text-muted);
    border-bottom-color: var(--border-color);
}

.main-content .table td {
    border-bottom-color: color-mix(in srgb, var(--border-color), #ffffff 8%);
}

.main-content .table tr:hover {
    background: #3d424b !important;
}

.main-content .disposition-table tr:hover,
.main-content .ma-assignment-table tr:hover,
.main-content .dispo-table tr:hover,
.main-content .run-row:hover {
    background: #3d424b !important;
}

/* Dark Mode: Editable Zellen Hover */
.main-content .dispo-table .editable:hover {
    background: rgba(99, 102, 241, 0.12) !important;
}

.main-content .form-control,
.main-content input,
.main-content select,
.main-content textarea {
    background: #2d323a;
    color: var(--text);
    border: 1px solid var(--border-color);
}

.main-content .form-control::placeholder,
.main-content input::placeholder,
.main-content textarea::placeholder {
    color: color-mix(in srgb, var(--text-muted), #ffffff 12%);
}

.main-content .form-control:focus,
.main-content input:focus,
.main-content select:focus,
.main-content textarea:focus {
    border-color: color-mix(in srgb, var(--primary), #a5b4fc 18%);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2);
    outline: none;
}

.main-content .btn-outline {
    border-color: var(--border-color);
    color: var(--text);
}

.main-content .btn-outline:hover {
    background: color-mix(in srgb, var(--bg-secondary), #ffffff 8%);
}

.main-content .btn-modern-outline {
    border-width: 1px;
    background: rgba(255, 255, 255, 0.01);
}

.main-content .btn-modern-outline:hover {
    background: rgba(255, 255, 255, 0.06);
}

.main-content .price-summary,
.main-content .trip-info-box,
.main-content .seat,
.main-content .duration-badge,
.main-content .season-badge,
.main-content .trip-cat-badge,
.main-content code,
.main-content pre,
.main-content .badge {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.main-content .badge-info,
.main-content .badge-daytype-schule_mo_fr,
.main-content .badge-daytype-schultag,
.main-content .badge-daytype-schule_montag,
.main-content .badge-daytype-schule_dienstag,
.main-content .badge-daytype-schule_mittwoch,
.main-content .badge-daytype-schule_donnerstag,
.main-content .badge-daytype-schule_freitag {
    color: var(--primary);
    background: color-mix(in srgb, var(--primary), transparent 86%);
    border: 1px solid color-mix(in srgb, var(--primary), transparent 62%);
}

.main-content .badge-daytype-ferien,
.main-content .badge-daytype-ferien_montag,
.main-content .badge-daytype-ferien_dienstag,
.main-content .badge-daytype-ferien_mittwoch,
.main-content .badge-daytype-ferien_donnerstag,
.main-content .badge-daytype-ferien_freitag {
    color: #86efac;
    background: rgba(34, 197, 94, 0.16);
    border: 1px solid rgba(34, 197, 94, 0.4);
}

.main-content .badge-vac-urlaub {
    color: #93c5fd;
    background: rgba(59, 130, 246, 0.16);
    border: 1px solid rgba(59, 130, 246, 0.4);
}

.main-content .badge-vac-krank {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.16);
    border: 1px solid rgba(239, 68, 68, 0.4);
}

.main-content .badge-vac-sonder {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.16);
    border: 1px solid rgba(245, 158, 11, 0.4);
}

.main-content .badge-vac-frei {
    color: #86efac;
    background: rgba(34, 197, 94, 0.16);
    border: 1px solid rgba(34, 197, 94, 0.4);
}

.main-content .page-header h1,
.main-content h1,
.main-content h2,
.main-content h3,
.main-content h4,
.main-content h5,
.main-content h6 {
    color: var(--text-primary);
}

.main-content hr {
    border-color: var(--border-color);
}

.main-content .alert {
    border: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--card-bg), #0f172a 18%);
    color: var(--text);
}

.main-content .modal-content,
.main-content .dropdown-menu {
    background: var(--card-bg);
    color: var(--text);
    border-color: var(--border-color);
}

/* Dark Mode: Disposition Row Colors (gedämpfte Farben) */
.main-content .row-sonder td:not(.tour-number-cell):not(.drag-handle) {
    background: rgba(245, 158, 11, 0.15) !important;
}

.main-content .row-turnschwimm td:not(.tour-number-cell):not(.drag-handle) {
    background: rgba(59, 130, 246, 0.15) !important;
}

.main-content .row-schule td:not(.tour-number-cell):not(.drag-handle) {
    background: rgba(34, 197, 94, 0.15) !important;
}

.main-content .row-verstärker td:not(.tour-number-cell):not(.drag-handle),
.main-content .row-verstaerker td:not(.tour-number-cell):not(.drag-handle) {
    background: rgba(236, 72, 153, 0.15) !important;
}

.main-content .row-reserve td:not(.tour-number-cell):not(.drag-handle) {
    background: rgba(99, 102, 241, 0.15) !important;
}

.main-content .row-pause td:not(.tour-number-cell):not(.drag-handle) {
    background: rgba(168, 85, 247, 0.15) !important;
}

.main-content .row-transfer td:not(.tour-number-cell):not(.drag-handle) {
    background: rgba(20, 184, 166, 0.15) !important;
}

/* Dark Mode: Color Dots (Legende & Kontextmenü) */
.main-content .dot-sonder {
    background: rgba(245, 158, 11, 0.2);
    border: 1px solid rgba(245, 158, 11, 0.5);
}

.main-content .dot-turnschwimm {
    background: rgba(59, 130, 246, 0.2);
    border: 1px solid rgba(59, 130, 246, 0.5);
}

.main-content .dot-schule {
    background: rgba(34, 197, 94, 0.2);
    border: 1px solid rgba(34, 197, 94, 0.5);
}

.main-content .dot-verstaerker {
    background: rgba(236, 72, 153, 0.2);
    border: 1px solid rgba(236, 72, 153, 0.5);
}

.main-content .dot-reserve {
    background: rgba(99, 102, 241, 0.2);
    border: 1px solid rgba(99, 102, 241, 0.5);
}

.main-content .dot-pause {
    background: rgba(168, 85, 247, 0.2);
    border: 1px solid rgba(168, 85, 247, 0.5);
}

.main-content .dot-transfer {
    background: rgba(20, 184, 166, 0.2);
    border: 1px solid rgba(20, 184, 166, 0.5);
}
