/* ============================================================
   Nexode · AdminLTE 3 — PLUGIN OVERRIDES
   ------------------------------------------------------------
   Capa 3 de 3. Reskin de los plugins habituales del ecosistema
   AdminLTE: DataTables, Select2, FullCalendar, Leaflet (OSM),
   daterangepicker, toasts. Carga al final.
   (ChartJS se tematiza por JS — ver nexode-charts.js / la guía.)
============================================================ */

/* ════════════════ DataTables ════════════════ */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate { color: var(--ink-2); font-size: 13px; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  background: var(--bg-soft); border: 1px solid var(--line-2);
  border-radius: var(--r-ctrl); color: var(--ink); padding: 5px 10px;
}
.dataTables_wrapper .dataTables_filter input:focus {
  border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); outline: none;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
  color: var(--ink-2) !important; border-radius: var(--r-chip);
  border: 1px solid transparent !important; background: transparent !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  color: var(--ink) !important; background: var(--fill-soft) !important; border-color: var(--line-2) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--accent) !important; color: var(--on-accent) !important; border-color: var(--accent) !important;
}
table.dataTable thead .sorting:after, table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:after { color: var(--ink-3); opacity: .6; }
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before {
  background: var(--accent); border: none; box-shadow: 0 0 6px var(--accent-glow);
}

/* ════════════════ Select2 ════════════════ */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background: var(--bg-soft); border: 1px solid var(--line-2);
  border-radius: var(--r-ctrl); color: var(--ink);
}
.select2-container--default .select2-selection--single { height: calc(2.25rem + 2px); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--ink); line-height: 2.25rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }
.select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: var(--ink-3) transparent transparent; }
.select2-dropdown {
  background: var(--bg-2); border: 1px solid var(--line-2);
  border-radius: var(--r-card); box-shadow: var(--shadow-lg);
}
.select2-search--dropdown .select2-search__field {
  background: var(--bg-soft); border: 1px solid var(--line-2); border-radius: var(--r-chip); color: var(--ink);
}
.select2-container--default .select2-results__option { color: var(--ink-2); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--accent); color: var(--on-accent); }
.select2-container--default .select2-results__option[aria-selected=true] { background: var(--accent-soft); color: var(--accent-ink); }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: var(--accent-soft); border: 1px solid var(--accent-tint); color: var(--accent-ink);
  border-radius: var(--r-chip);
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default .select2-selection--single:focus {
  border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);
}

/* ════════════════ FullCalendar (v5/v6) ════════════════ */
.fc { --fc-border-color: var(--line); --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: var(--fill-soft); --fc-today-bg-color: var(--accent-soft);
  --fc-event-bg-color: var(--accent); --fc-event-border-color: var(--accent);
  --fc-event-text-color: var(--on-accent); color: var(--ink); font-family: var(--font-display);
}
.fc .fc-toolbar-title { font-size: 18px; font-weight: 550; letter-spacing: -0.01em; color: var(--ink); }
.fc .fc-col-header-cell-cushion { color: var(--ink-3); font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; padding: 8px; }
.fc .fc-daygrid-day-number { color: var(--ink-2); font-size: 12.5px; padding: 6px 8px; }
.fc .fc-daygrid-day.fc-day-today { background: var(--accent-soft); }
.fc .fc-button-primary {
  background: var(--bg-2); border: 1px solid var(--line-2); color: var(--ink-2);
  border-radius: var(--r-ctrl); text-transform: none; font-weight: 500; box-shadow: none;
}
.fc .fc-button-primary:hover { background: var(--fill-hover); color: var(--ink); border-color: var(--line-2); }
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.fc .fc-button-primary:focus { box-shadow: 0 0 0 3px var(--accent-soft); }
.fc .fc-event { border-radius: var(--r-chip); border: none; padding: 1px 4px; font-size: 12px; box-shadow: var(--shadow-xs); }
.fc .fc-list-event:hover td { background: var(--fill-soft); }
.fc-theme-standard td, .fc-theme-standard th, .fc-theme-standard .fc-scrollgrid { border-color: var(--line); }

/* ════════════════ Leaflet (OpenStreetMap) ════════════════ */
.leaflet-container { background: var(--bg-3); font-family: var(--font-display); border-radius: var(--r-card); }
/* Suaviza las teselas OSM al modo oscuro (no aplica en .theme-papel) */
.theme-noche .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.92) contrast(.92) saturate(.85); }
.leaflet-bar a, .leaflet-touch .leaflet-bar a {
  background: var(--bg-2); color: var(--ink) !important; border-bottom-color: var(--line);
}
.leaflet-bar a:hover { background: var(--fill-hover); }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: var(--bg-2); color: var(--ink); box-shadow: var(--shadow-lg); border: 1px solid var(--line-2); }
.leaflet-popup-content-wrapper { border-radius: var(--r-card); }
.leaflet-control-attribution { background: var(--surface-glass) !important; color: var(--ink-3) !important; }
.leaflet-control-attribution a { color: var(--accent-ink) !important; }

/* ════════════════ daterangepicker ════════════════ */
.daterangepicker {
  background: var(--bg-2); border: 1px solid var(--line-2);
  border-radius: var(--r-card); box-shadow: var(--shadow-lg); color: var(--ink); font-family: var(--font-display);
}
.daterangepicker td.available:hover, .daterangepicker th.available:hover { background: var(--fill-hover); }
.daterangepicker td.active, .daterangepicker td.active:hover { background: var(--accent); color: var(--on-accent); }
.daterangepicker td.in-range { background: var(--accent-soft); color: var(--accent-ink); }
.daterangepicker .calendar-table { background: var(--bg-2); border-color: var(--line); }
.daterangepicker:after, .daterangepicker:before { display: none; }

/* ════════════════ Toasts (AdminLTE) ════════════════ */
.toast { background: var(--bg-2); border: 1px solid var(--line-2); border-radius: var(--r-card); box-shadow: var(--shadow-lg); }
.toast-header { background: var(--fill-soft); color: var(--ink); border-bottom: 1px solid var(--line); }
.toast .toast-body { color: var(--ink-2); }

/* ════════════════ overlayScrollbars / cards de chat, etc. ════════════════ */
.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle { background: var(--ink-20); }

/* ════════════════ Indicador de app activa (opcional) ════════════════
   Una pastilla mono con el nombre de la app, útil en el sidebar/topbar. */
.nexode-app-tag {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-mono); font-size: 9px; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--ink-3);
}
.nexode-app-tag::before {
  content: ""; width: 7px; height: 7px; border-radius: 2px;
  background: var(--accent); box-shadow: 0 0 8px var(--accent-glow);
}
