/*
================================================================================
   PlaceToWork — Mode sombre
   Activé via [data-theme="dark"] sur <html> (bouton sidebar + localStorage)
================================================================================
*/

/* --------------------------------------------------------------------------
   Bootstrap 5.3
   -------------------------------------------------------------------------- */
[data-theme="dark"] {
    --bs-body-bg: var(--bg-primary);
    --bs-body-color: var(--text-primary);
    --bs-border-color: var(--border-color);
    --bs-link-color: var(--primary-light);
    --bs-link-hover-color: #a5b4fc;
    --bs-emphasis-color: var(--gray-900);
    --bs-secondary-color: var(--text-muted);
    --bs-tertiary-color: var(--gray-500);
    --bs-secondary-bg: var(--gray-100);
    --bs-tertiary-bg: var(--gray-200);
}

[data-theme="dark"] .card {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .card-header,
[data-theme="dark"] .card-footer {
    background-color: var(--gray-100);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .list-group-item {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .list-group-item-action:hover,
[data-theme="dark"] .list-group-item-action:focus {
    background-color: var(--gray-200);
    color: var(--text-primary);
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--gray-100);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .form-control::placeholder {
    color: var(--gray-500);
}

[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-select:disabled {
    background-color: var(--gray-200);
    color: var(--gray-500);
}

[data-theme="dark"] .form-label,
[data-theme="dark"] .col-form-label {
    color: var(--gray-700);
}

[data-theme="dark"] .input-group-text {
    background-color: var(--gray-200);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

[data-theme="dark"] .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--text-primary);
    --bs-table-border-color: var(--border-color);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-hover-bg: rgba(99, 102, 241, 0.08);
    --bs-table-active-bg: rgba(99, 102, 241, 0.12);
}

[data-theme="dark"] .table > :not(caption) > * > * {
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .dropdown-menu {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    box-shadow: var(--shadow-lg);
}

[data-theme="dark"] .dropdown-item {
    color: var(--text-primary);
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: var(--gray-200);
    color: var(--text-primary);
}

[data-theme="dark"] .dropdown-divider {
    border-color: var(--border-color);
}

[data-theme="dark"] .modal-content {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer {
    border-color: var(--border-color);
}

[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

[data-theme="dark"] .pagination-top {
    background-color: transparent !important;
}

[data-theme="dark"] .pagination {
    background-color: transparent !important;
}

[data-theme="dark"] .pagination .page-link {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .pagination .page-link:hover {
    background-color: var(--gray-200) !important;
    color: var(--primary-light) !important;
}

[data-theme="dark"] .pagination .page-item.active .page-link {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: #fff !important;
}

[data-theme="dark"] .pagination .page-item.disabled .page-link {
    background-color: var(--gray-200) !important;
    border-color: var(--border-color) !important;
    color: var(--gray-500) !important;
    pointer-events: none;
}

[data-theme="dark"] .nav-tabs {
    border-bottom-color: var(--border-color);
}

[data-theme="dark"] .nav-tabs .nav-link {
    color: var(--text-muted);
}

[data-theme="dark"] .nav-tabs .nav-link:hover {
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .nav-tabs .nav-link.active {
    background-color: var(--bg-card);
    border-color: var(--border-color) var(--border-color) var(--bg-card);
    color: var(--primary-light);
}

[data-theme="dark"] .breadcrumb-item a {
    color: var(--primary-light);
}

[data-theme="dark"] .breadcrumb-item.active {
    color: var(--text-muted);
}

[data-theme="dark"] .text-muted {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .text-dark {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .bg-white {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] .bg-light {
    background-color: var(--gray-100) !important;
    color: var(--text-primary);
}

[data-theme="dark"] .border,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6,
[data-theme="dark"] .h1,
[data-theme="dark"] .h2,
[data-theme="dark"] .h3,
[data-theme="dark"] .h4,
[data-theme="dark"] .h5,
[data-theme="dark"] .h6 {
    color: var(--text-primary);
}

[data-theme="dark"] hr {
    border-color: var(--border-color);
    opacity: 1;
}

[data-theme="dark"] .btn-outline-secondary {
    color: var(--gray-700);
    border-color: var(--gray-400);
}

[data-theme="dark"] .btn-outline-secondary:hover {
    background-color: var(--gray-200);
    border-color: var(--gray-500);
    color: var(--text-primary);
}

[data-theme="dark"] .btn-outline-primary {
    color: var(--primary-light);
    border-color: var(--primary-color);
}

[data-theme="dark"] .btn-outline-primary:hover {
    background-color: var(--primary-color);
    color: #fff;
}

[data-theme="dark"] .badge.bg-light {
    background-color: var(--gray-200) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .badge.bg-white {
    background-color: var(--gray-300) !important;
    color: var(--primary-light) !important;
}

/* --------------------------------------------------------------------------
   Select2
   -------------------------------------------------------------------------- */
[data-theme="dark"] .select2-container--bootstrap4 .select2-selection {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .select2-container--bootstrap4 .select2-selection__rendered {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .select2-container--bootstrap4 .select2-selection__placeholder {
    color: var(--gray-500) !important;
}

[data-theme="dark"] .select2-dropdown {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .select2-container--bootstrap4 .select2-results__option {
    color: var(--text-primary);
}

[data-theme="dark"] .select2-container--bootstrap4 .select2-results__option--highlighted {
    background-color: var(--primary-color) !important;
    color: #fff !important;
}

[data-theme="dark"] .select2-search__field {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* --------------------------------------------------------------------------
   Composants PlaceToWork (general.css)
   -------------------------------------------------------------------------- */
[data-theme="dark"] .table-modern thead {
    background: linear-gradient(135deg, var(--gray-100), var(--bg-card));
}

[data-theme="dark"] .table-modern tbody tr:hover {
    background: rgba(99, 102, 241, 0.08);
}

[data-theme="dark"] .btn-outline-modern {
    border-color: var(--gray-400);
    color: var(--gray-700);
}

[data-theme="dark"] .btn-outline-modern:hover {
    color: #fff;
}

[data-theme="dark"] .alert-modern .btn-close:hover {
    background: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .scroll-to-top {
    background: var(--primary-color);
    color: #fff;
    box-shadow: var(--shadow-lg);
}

[data-theme="dark"] .skip-to-content {
    background: var(--primary-color);
    color: #fff;
}

/* --------------------------------------------------------------------------
   Sous-menu moderne (inline dans _modern_submenu.html.twig)
   -------------------------------------------------------------------------- */
[data-theme="dark"] .modern-submenu {
    background: var(--bg-card);
    box-shadow: var(--shadow-md);
}

[data-theme="dark"] .submenu-header {
    background: linear-gradient(135deg, var(--gray-100), var(--gray-200));
}

[data-theme="dark"] .submenu-title {
    color: var(--text-primary);
}

[data-theme="dark"] .submenu-nav {
    background: var(--bg-card);
}

[data-theme="dark"] .nav-pill {
    background: var(--gray-100);
    color: var(--text-muted);
}

[data-theme="dark"] .nav-pill:hover {
    background: var(--primary-ultra-light);
    color: var(--primary-light);
    border-color: rgba(129, 140, 248, 0.35);
}

[data-theme="dark"] .nav-pill.active {
    color: #fff;
}

[data-theme="dark"] .nav-pill .badge.bg-white {
    background-color: rgba(255, 255, 255, 0.15) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------------------
   Header (compléments modern-header.css)
   -------------------------------------------------------------------------- */
[data-theme="dark"] .modern-header {
    background: var(--surface-overlay);
}

[data-theme="dark"] .language-dropdown {
    background: var(--bg-card);
    border-color: var(--border-color);
    box-shadow: var(--shadow-lg);
}

[data-theme="dark"] .language-option {
    color: var(--text-primary);
}

[data-theme="dark"] .language-option:hover {
    background: var(--gray-200);
}

[data-theme="dark"] .language-option.active {
    background: var(--primary-ultra-light);
    color: var(--primary-light);
}

/* --------------------------------------------------------------------------
   Sidebar — bouton thème actif
   -------------------------------------------------------------------------- */
[data-theme="dark"] .theme-toggle-btn {
    background: rgba(129, 140, 248, 0.15);
    border-color: rgba(129, 140, 248, 0.35);
    color: #c7d2fe;
}

[data-theme="dark"] .theme-toggle-btn:hover {
    background: rgba(129, 140, 248, 0.25);
    color: #e0e7ff;
}

/* --------------------------------------------------------------------------
   FullCalendar & widgets tiers (pages calendrier)
   -------------------------------------------------------------------------- */
[data-theme="dark"] .fc {
    --fc-border-color: var(--border-color);
    --fc-page-bg-color: var(--bg-card);
    --fc-neutral-bg-color: var(--gray-100);
    --fc-list-event-hover-bg-color: var(--gray-200);
}

[data-theme="dark"] .fc-theme-standard td,
[data-theme="dark"] .fc-theme-standard th {
    border-color: var(--border-color);
}

[data-theme="dark"] .fc-col-header-cell-cushion,
[data-theme="dark"] .fc-daygrid-day-number,
[data-theme="dark"] .fc-toolbar-title {
    color: var(--text-primary);
}

[data-theme="dark"] .fc-button-primary {
    background-color: var(--primary-dark);
    border-color: var(--primary-dark);
}

[data-theme="dark"] .fc-button-primary:not(:disabled).fc-button-active,
[data-theme="dark"] .fc-button-primary:not(:disabled):active {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

/* --------------------------------------------------------------------------
   TinyMCE zone éditable
   -------------------------------------------------------------------------- */
[data-theme="dark"] .tox .tox-edit-area__iframe {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] .tox .tox-edit-area {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] .tox .tox-edit-area__iframe iframe {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] .tox {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .tox .tox-editor-header {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .tox .tox-toolbar,
[data-theme="dark"] .tox .tox-toolbar__primary,
[data-theme="dark"] .tox .tox-toolbar__overflow {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .tox .tox-tbtn {
    color: var(--text-primary) !important;
    fill: var(--text-primary) !important;
}

[data-theme="dark"] .tox .tox-tbtn:hover {
    background-color: var(--gray-200) !important;
}

[data-theme="dark"] .tox .tox-tbtn--enabled,
[data-theme="dark"] .tox .tox-tbtn--enabled:hover {
    background-color: var(--primary-ultra-light) !important;
    color: var(--primary-color) !important;
    fill: var(--primary-color) !important;
}

[data-theme="dark"] .tox .tox-statusbar {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .tox .tox-statusbar__path-item {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .tox .tox-statusbar__path-item:hover {
    color: var(--primary-light) !important;
}

[data-theme="dark"] .tox .tox-sidebar-wrap {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] .tox .tox-sidebar {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .tox .tox-menu {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .tox .tox-menu__item {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .tox .tox-menu__item:hover,
[data-theme="dark"] .tox .tox-menu__item.selected {
    background-color: var(--gray-200) !important;
}

[data-theme="dark"] .tox .tox-dialog {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .tox .tox-dialog__header {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .tox .tox-dialog__title {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .tox .tox-dialog__body {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .tox .tox-dialog__footer {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
}

/* TinyMCE content styling inside iframe */
[data-theme="dark"] .tox .tox-edit-area__iframe html,
[data-theme="dark"] .tox .tox-edit-area__iframe body {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

/* --------------------------------------------------------------------------
   Page Interventions (styles inline dans index.html.twig)
   -------------------------------------------------------------------------- */
[data-theme="dark"] .dashboard-header,
[data-theme="dark"] .sidebar-compact,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .filters-panel,
[data-theme="dark"] .filter-item:not(.active),
[data-theme="dark"] .search-input,
[data-theme="dark"] .search-input-compact,
[data-theme="dark"] .filter-chip:not(.active),
[data-theme="dark"] .empty-state {
    background: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

[data-theme="dark"] .search-input-compact {
    background: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

[data-theme="dark"] .search-input-compact:focus,
[data-theme="dark"] .search-input:focus {
    background: var(--gray-200) !important;
    border-color: var(--primary-color) !important;
}

[data-theme="dark"] .dashboard-subtitle,
[data-theme="dark"] .stat-label,
[data-theme="dark"] .filter-title,
[data-theme="dark"] .meta-item,
[data-theme="dark"] .empty-description {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .filter-item:not(.active) {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .recent-tickets-list .btn-outline-secondary {
    color: var(--text-secondary) !important;
    background: transparent !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .recent-tickets-list .btn-outline-secondary:hover {
    background: var(--gray-200) !important;
    border-color: var(--gray-400) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .recent-tickets-list .btn-primary {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: #fff !important;
}

[data-theme="dark"] .filter-item.clear {
    background: var(--danger-light) !important;
    color: var(--danger-color) !important;
    border-color: rgba(248, 113, 113, 0.35) !important;
}

[data-theme="dark"] .filter-title,
[data-theme="dark"] .sidebar-info {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .intervention-card {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-md);
}

[data-theme="dark"] .intervention-card.in_progress {
    background: linear-gradient(135deg, var(--bg-card) 0%, rgba(249, 115, 22, 0.15) 100%) !important;
}

[data-theme="dark"] .intervention-card:not(.closed):not(.in_progress) {
    background: linear-gradient(135deg, var(--bg-card) 0%, rgba(16, 185, 129, 0.1) 100%) !important;
}

[data-theme="dark"] .intervention-card.closed {
    background: linear-gradient(135deg, var(--bg-card) 0%, rgba(239, 68, 68, 0.1) 100%) !important;
}

[data-theme="dark"] .intervention-card.unassigned:not(.closed):not(.in_progress),
[data-theme="dark"] .intervention-card.unassigned.in_progress,
[data-theme="dark"] .intervention-card.unassigned.closed {
    border-color: #a78bfa;
}

[data-theme="dark"] .card-title,
[data-theme="dark"] .empty-title {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .filter-chip.open {
    background: rgba(99, 102, 241, 0.15) !important;
    color: var(--primary-light) !important;
}

[data-theme="dark"] .filter-chip.closed {
    background: rgba(52, 211, 153, 0.12) !important;
    color: var(--success-color) !important;
}

[data-theme="dark"] .inline-edit-select,
[data-theme="dark"] .inline-edit .form-select {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* --------------------------------------------------------------------------
   Dashboard accueil
   -------------------------------------------------------------------------- */
[data-theme="dark"] .dashboard-card,
[data-theme="dark"] .quick-action-card,
[data-theme="dark"] .stat-widget {
    background: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

/* --------------------------------------------------------------------------
   Page login
   -------------------------------------------------------------------------- */
[data-theme="dark"] .login-card,
[data-theme="dark"] .auth-card {
    background: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

/* --------------------------------------------------------------------------
   Page Clocking
   -------------------------------------------------------------------------- */
[data-theme="dark"] .alert-success,
[data-theme="dark"] .alert-danger {
    background-color: var(--gray-100) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .modern-clocking-item.alert-success {
    background: linear-gradient(135deg, var(--success-light), var(--gray-100)) !important;
    border-color: var(--success-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .modern-clocking-item.alert-danger {
    background: linear-gradient(135deg, var(--danger-light), var(--gray-100)) !important;
    border-color: var(--danger-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .btn-success-modern {
    background: linear-gradient(135deg, var(--success-color), #047857) !important;
    color: white !important;
    border-color: var(--success-color) !important;
}

[data-theme="dark"] .btn-danger-modern {
    background: linear-gradient(135deg, var(--danger-color), #b91c1c) !important;
    color: white !important;
    border-color: var(--danger-color) !important;
}
