/* ============================================================
   TEMA PERSONALIZADO - SISTEMA DE CONTRALORÍA / OCI
   H. Ayuntamiento de Martínez de la Torre 2026 - 2029
   ============================================================ */

:root {
  --oci-primary: #96242F;
  --oci-primary-dark: #7F1E29;
  --oci-primary-light: #AE2333;
  --oci-accent: #C72438;
  --oci-gold: #D1905D;
  --oci-dark: #221E1F;
  --oci-gray: #6E6668;
  --oci-light: #F8F3F1;
  --oci-white: #FFFFFF;

  --oci-primary-rgb: 150, 36, 47;
  --oci-accent-rgb: 199, 36, 56;
  --oci-gold-rgb: 209, 144, 93;
  --oci-dark-rgb: 34, 30, 31;
}

/* ============================================================
   BASE GENERAL
   ============================================================ */

.theme-contraloria {
  background: var(--oci-light);
  color: var(--oci-dark);
}

.theme-contraloria a {
  color: var(--oci-primary);
}

.theme-contraloria a:hover {
  color: var(--oci-primary-dark);
}

.theme-contraloria .text-primary {
  color: var(--oci-primary) !important;
}

.theme-contraloria .text-success {
  color: var(--oci-primary-light) !important;
}

.theme-contraloria .text-warning {
  color: var(--oci-gold) !important;
}

.theme-contraloria .bg-primary {
  background-color: var(--oci-primary) !important;
}

.theme-contraloria .bg-success {
  background-color: var(--oci-primary-light) !important;
}

.theme-contraloria .bg-warning {
  background-color: var(--oci-gold) !important;
}

.theme-contraloria .border-primary {
  border-color: var(--oci-primary) !important;
}

/* ============================================================
   BOTONES BOOTSTRAP / SKYDASH
   ============================================================ */

.theme-contraloria .btn-primary,
.theme-contraloria .auth form .auth-form-btn {
  background: linear-gradient(135deg, var(--oci-primary), var(--oci-accent)) !important;
  border-color: var(--oci-primary) !important;
  color: var(--oci-white) !important;
  box-shadow: 0 4px 12px rgba(var(--oci-primary-rgb), 0.25);
}

.theme-contraloria .btn-primary:hover,
.theme-contraloria .btn-primary:focus,
.theme-contraloria .btn-primary:active,
.theme-contraloria .auth form .auth-form-btn:hover,
.theme-contraloria .auth form .auth-form-btn:focus {
  background: linear-gradient(135deg, var(--oci-primary-dark), var(--oci-primary)) !important;
  border-color: var(--oci-primary-dark) !important;
  color: var(--oci-white) !important;
  box-shadow: 0 6px 16px rgba(var(--oci-primary-rgb), 0.35);
}

.theme-contraloria .btn-outline-primary {
  color: var(--oci-primary) !important;
  border-color: var(--oci-primary) !important;
}

.theme-contraloria .btn-outline-primary:hover,
.theme-contraloria .btn-outline-primary:focus {
  background-color: var(--oci-primary) !important;
  border-color: var(--oci-primary) !important;
  color: var(--oci-white) !important;
}

.theme-contraloria .btn-secondary {
  background-color: var(--oci-dark) !important;
  border-color: var(--oci-dark) !important;
}

.theme-contraloria .btn-warning {
  background-color: var(--oci-gold) !important;
  border-color: var(--oci-gold) !important;
  color: var(--oci-dark) !important;
}

.theme-contraloria .btn-danger {
  background-color: var(--oci-accent) !important;
  border-color: var(--oci-accent) !important;
}

/* ============================================================
   LOGIN / AUTH
   ============================================================ */

.theme-contraloria .content-wrapper.auth {
  background:
    radial-gradient(circle at top left, rgba(var(--oci-primary-rgb), 0.12), transparent 32%),
    radial-gradient(circle at bottom right, rgba(var(--oci-gold-rgb), 0.18), transparent 35%),
    var(--oci-light);
}

.theme-contraloria .auth-form-light {
  border-radius: 20px;
  border-top: 5px solid var(--oci-primary);
  box-shadow: 0 14px 40px rgba(var(--oci-dark-rgb), 0.12);
}

.theme-contraloria .auth .brand-logo img {
  width: 190px;
  max-height: 130px;
  object-fit: contain;
}

.theme-contraloria .login-title {
  color: var(--oci-primary);
  font-weight: 800;
}

.theme-contraloria .login-subtitle {
  color: var(--oci-gray);
}

.theme-contraloria .system-footer {
  color: var(--oci-gray);
}

/* ============================================================
   NAVBAR HORIZONTAL SKYDASH
   Barra superior institucional + barra inferior blanca
   ============================================================ */

.theme-contraloria .horizontal-menu {
  background: transparent;
}

/* Barra superior */
.theme-contraloria .horizontal-menu .top-navbar {
  background: var(--oci-primary) !important;
  min-height: 64px !important;
  box-shadow: none !important;
}

/* El contenedor de la barra superior debe ser transparente */
.theme-contraloria .horizontal-menu .top-navbar .container,
.theme-contraloria .horizontal-menu .top-navbar .container-fluid {
  background: transparent !important;
}

/* Logo y wrapper superior */
.theme-contraloria .horizontal-menu .top-navbar .navbar-brand-wrapper,
.theme-contraloria .horizontal-menu .top-navbar .navbar-menu-wrapper {
  background: transparent !important;
  min-height: 64px !important;
}

.theme-contraloria .horizontal-menu .top-navbar .navbar-brand-wrapper {
  width: auto !important;
  min-width: auto !important;
}

.theme-contraloria .horizontal-menu .top-navbar .navbar-brand-wrapper .navbar-brand {
  color: var(--oci-white) !important;
}

.theme-contraloria .horizontal-menu .top-navbar .navbar-brand-wrapper .navbar-brand img {
  max-height: 42px !important;
  width: auto !important;
  object-fit: contain;
}

.theme-contraloria .horizontal-menu .top-navbar .navbar-brand-wrapper .brand-logo-mini img {
  max-height: 38px !important;
  width: auto !important;
  object-fit: contain;
}

/* Buscador superior */
.theme-contraloria .horizontal-menu .top-navbar .nav-search .input-group,
.theme-contraloria .horizontal-menu .top-navbar .nav-search .input-group-prepend,
.theme-contraloria .horizontal-menu .top-navbar .nav-search .input-group-text,
.theme-contraloria .horizontal-menu .top-navbar .nav-search .form-control {
  background: transparent !important;
  border: 0 !important;
}

.theme-contraloria .horizontal-menu .top-navbar .nav-search .form-control {
  color: var(--oci-white) !important;
  box-shadow: none !important;
}

.theme-contraloria .horizontal-menu .top-navbar .nav-search .form-control::placeholder {
  color: rgba(255, 255, 255, 0.9) !important;
}

.theme-contraloria .horizontal-menu .top-navbar .nav-search i,
.theme-contraloria .horizontal-menu .top-navbar .nav-search .input-group-text,
.theme-contraloria .horizontal-menu .top-navbar .nav-link i {
  color: var(--oci-white) !important;
}

/* Usuario / notificaciones */
.theme-contraloria .horizontal-menu .top-navbar .navbar-nav .nav-item .nav-link {
  color: var(--oci-white) !important;
}

.theme-contraloria .horizontal-menu .top-navbar .navbar-nav .nav-item .nav-link:hover,
.theme-contraloria .horizontal-menu .top-navbar .navbar-nav .nav-item .nav-link:focus {
  color: var(--oci-white) !important;
}

.theme-contraloria .horizontal-menu .top-navbar .nav-profile img {
  width: 40px !important;
  height: 40px !important;
  object-fit: cover;
}

/* Dropdowns del navbar superior */
.theme-contraloria .horizontal-menu .top-navbar .dropdown-menu {
  border: 0;
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(var(--oci-dark-rgb), 0.14);
}

.theme-contraloria .horizontal-menu .top-navbar .dropdown-item {
  color: var(--oci-dark) !important;
}

.theme-contraloria .horizontal-menu .top-navbar .dropdown-item:hover {
  background: rgba(var(--oci-primary-rgb), 0.08);
  color: var(--oci-primary) !important;
}

/* Barra inferior del menú */
.theme-contraloria .horizontal-menu .bottom-navbar {
  display: block !important;
  background: var(--oci-white) !important;
  box-shadow: 0 4px 10px rgba(var(--oci-dark-rgb), 0.04) !important;
}

.theme-contraloria .horizontal-menu .bottom-navbar .container,
.theme-contraloria .horizontal-menu .bottom-navbar .container-fluid {
  background: var(--oci-white) !important;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation {
  justify-content: flex-start;
}

/* Menú principal inferior */
.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item > .nav-link {
  color: var(--oci-dark) !important;
  font-weight: 500;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item > .nav-link .menu-icon {
  color: var(--oci-primary) !important;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item.active > .nav-link,
.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item > .nav-link:hover {
  color: var(--oci-primary) !important;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item.active > .nav-link .menu-icon,
.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item > .nav-link:hover .menu-icon {
  color: var(--oci-primary) !important;
}

/* Submenús inferiores */
.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item .submenu {
  border: 0;
  border-radius: 0 0 14px 14px;
  box-shadow: 0 12px 28px rgba(var(--oci-dark-rgb), 0.12);
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item .submenu .nav-link {
  color: var(--oci-dark) !important;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item .submenu .nav-link:hover,
.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item .submenu .nav-link.active {
  color: var(--oci-primary) !important;
}

/* Oculta cualquier menú custom de una sola barra si quedó en HTML anterior */
.theme-contraloria .oci-navbar-menu,
.theme-contraloria .oci-navbar-menu-mobile {
  display: none !important;
}

/* ============================================================
   SIDEBAR / MENÚ VERTICAL
   Se deja por compatibilidad si alguna vista lo llegara a usar.
   ============================================================ */

.theme-contraloria .sidebar {
  background: var(--oci-white);
}

.theme-contraloria .sidebar .nav .nav-item .nav-link {
  color: var(--oci-dark);
}

.theme-contraloria .sidebar .nav .nav-item .nav-link i,
.theme-contraloria .sidebar .nav .nav-item .nav-link .menu-icon {
  color: var(--oci-gray);
}

.theme-contraloria .sidebar .nav .nav-item.active > .nav-link,
.theme-contraloria .sidebar .nav .nav-item:hover > .nav-link {
  background: rgba(var(--oci-primary-rgb), 0.08);
  color: var(--oci-primary);
}

.theme-contraloria .sidebar .nav .nav-item.active > .nav-link i,
.theme-contraloria .sidebar .nav .nav-item.active > .nav-link .menu-icon,
.theme-contraloria .sidebar .nav .nav-item:hover > .nav-link i,
.theme-contraloria .sidebar .nav .nav-item:hover > .nav-link .menu-icon {
  color: var(--oci-primary);
}

.theme-contraloria .sidebar .nav.sub-menu .nav-item .nav-link.active {
  color: var(--oci-primary);
}

/* ============================================================
   CARDS / CONTENEDORES
   ============================================================ */

.theme-contraloria .card {
  border: 0;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(var(--oci-dark-rgb), 0.06);
}

.theme-contraloria .card .card-title {
  color: var(--oci-primary);
  font-weight: 700;
}

.theme-contraloria .card-header {
  background: var(--oci-white);
  border-bottom: 1px solid rgba(var(--oci-primary-rgb), 0.10);
}

/* Tarjetas Skydash adaptadas */
.theme-contraloria .card-tale,
.theme-contraloria .data-icon-card-primary {
  background: linear-gradient(135deg, var(--oci-primary), var(--oci-accent)) !important;
}

.theme-contraloria .card-dark-blue {
  background: linear-gradient(135deg, var(--oci-dark), #3b3133) !important;
}

.theme-contraloria .card-light-blue {
  background: linear-gradient(135deg, var(--oci-gold), #e3aa78) !important;
}

.theme-contraloria .card-light-danger {
  background: linear-gradient(135deg, var(--oci-accent), var(--oci-primary-dark)) !important;
}

/* ============================================================
   BADGES / ESTATUS
   ============================================================ */

.theme-contraloria .badge-primary,
.theme-contraloria .badge.bg-primary {
  background-color: var(--oci-primary) !important;
  color: var(--oci-white) !important;
}

.theme-contraloria .badge-warning,
.theme-contraloria .badge.bg-warning {
  background-color: var(--oci-gold) !important;
  color: var(--oci-dark) !important;
}

.theme-contraloria .badge-danger,
.theme-contraloria .badge.bg-danger {
  background-color: var(--oci-accent) !important;
}

.theme-contraloria .badge-dark,
.theme-contraloria .badge.bg-dark {
  background-color: var(--oci-dark) !important;
}

/* Estatus genéricos del sistema */
.theme-contraloria .badge-borrador {
  background-color: #6c757d;
  color: #fff;
}

.theme-contraloria .badge-pendiente {
  background-color: var(--oci-primary);
  color: #fff;
}

.theme-contraloria .badge-completa {
  background-color: #198754;
  color: #fff;
}

.theme-contraloria .badge-cancelada {
  background-color: var(--oci-accent);
  color: #fff;
}

.theme-contraloria .badge-firmada {
  background-color: var(--oci-gold);
  color: var(--oci-dark);
}

/* ============================================================
   DATATABLES
   ============================================================ */

.theme-contraloria table.dataTable thead th {
  background-color: var(--oci-primary);
  color: var(--oci-white);
  border-color: var(--oci-primary-dark);
}

.theme-contraloria table.dataTable tbody tr:hover {
  background-color: rgba(var(--oci-primary-rgb), 0.04);
}

.theme-contraloria .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.theme-contraloria .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--oci-primary) !important;
  border-color: var(--oci-primary) !important;
  color: var(--oci-white) !important;
}

.theme-contraloria .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: rgba(var(--oci-primary-rgb), 0.12) !important;
  border-color: rgba(var(--oci-primary-rgb), 0.25) !important;
  color: var(--oci-primary) !important;
}

.theme-contraloria .page-item.active .page-link {
  background-color: var(--oci-primary) !important;
  border-color: var(--oci-primary) !important;
}

.theme-contraloria .page-link {
  color: var(--oci-primary);
}

.theme-contraloria .page-link:hover {
  color: var(--oci-primary-dark);
}

/* ============================================================
   MODALES
   ============================================================ */

.theme-contraloria .modal-content {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(var(--oci-dark-rgb), 0.18);
}

.theme-contraloria .modal-header {
  background: linear-gradient(135deg, var(--oci-primary), var(--oci-accent));
  color: var(--oci-white);
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
}

.theme-contraloria .modal-header .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.theme-contraloria .modal-title {
  color: var(--oci-white);
  font-weight: 700;
}

/* ============================================================
   SWEETALERT ORIGINAL
   ============================================================ */

.theme-contraloria .swal-button {
  border-radius: 8px;
}

.theme-contraloria .swal-button--confirm {
  background-color: var(--oci-primary);
}

.theme-contraloria .swal-button--confirm:hover {
  background-color: var(--oci-primary-dark) !important;
}

.theme-contraloria .swal-button--danger {
  background-color: var(--oci-accent);
}

.theme-contraloria .swal-button--danger:hover {
  background-color: var(--oci-primary-dark) !important;
}

.theme-contraloria .swal-title {
  color: var(--oci-dark);
}

.theme-contraloria .swal-icon--warning {
  border-color: var(--oci-gold);
}

.theme-contraloria .swal-icon--warning__body,
.theme-contraloria .swal-icon--warning__dot {
  background-color: var(--oci-gold);
}

/* ============================================================
   TOASTR
   ============================================================ */

.theme-contraloria #toast-container > .toast-success {
  background-color: var(--oci-primary);
}

.theme-contraloria #toast-container > .toast-error {
  background-color: var(--oci-accent);
}

.theme-contraloria #toast-container > .toast-warning {
  background-color: var(--oci-gold);
  color: var(--oci-dark);
}

.theme-contraloria #toast-container > .toast-info {
  background-color: var(--oci-dark);
}

/* ============================================================
   FORMULARIOS
   ============================================================ */

.theme-contraloria label {
  color: var(--oci-dark);
  font-weight: 600;
}

.theme-contraloria .form-control,
.theme-contraloria .form-select {
  border-radius: 10px;
}

.theme-contraloria .form-control:focus,
.theme-contraloria .form-select:focus {
  border-color: var(--oci-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--oci-primary-rgb), 0.15) !important;
}

.theme-contraloria .input-group .btn-outline-secondary {
  border-color: #ced4da;
  color: var(--oci-primary);
}

.theme-contraloria .input-group .btn-outline-secondary:hover {
  background-color: var(--oci-primary);
  border-color: var(--oci-primary);
  color: var(--oci-white);
}

.theme-contraloria .form-check-input:checked {
  background-color: var(--oci-primary);
  border-color: var(--oci-primary);
}

/* ============================================================
   DROPDOWNS
   ============================================================ */

.theme-contraloria .dropdown-item.active,
.theme-contraloria .dropdown-item:active {
  background-color: var(--oci-primary);
  color: var(--oci-white);
}

.theme-contraloria .dropdown-item:hover {
  background-color: rgba(var(--oci-primary-rgb), 0.08);
  color: var(--oci-primary);
}

/* ============================================================
   UTILIDADES PROPIAS
   ============================================================ */

.theme-contraloria .oci-text-primary {
  color: var(--oci-primary) !important;
}

.theme-contraloria .oci-bg-primary {
  background-color: var(--oci-primary) !important;
  color: var(--oci-white) !important;
}

.theme-contraloria .oci-bg-gradient {
  background: linear-gradient(135deg, var(--oci-primary), var(--oci-accent)) !important;
  color: var(--oci-white) !important;
}

.theme-contraloria .oci-border-left {
  border-left: 5px solid var(--oci-primary) !important;
}

.theme-contraloria .oci-border-gold {
  border-color: var(--oci-gold) !important;
}

.theme-contraloria .oci-shadow {
  box-shadow: 0 8px 22px rgba(var(--oci-dark-rgb), 0.10) !important;
}

/* ============================================================
   FONT AWESOME 7 - MENÚ HORIZONTAL
   No usar .menu-icon porque Skydash lo sobreescribe
   ============================================================ */

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item > .nav-link .oci-menu-icon {
  font-size: 17px;
  width: 24px;
  min-width: 24px;
  margin-right: 10px;
  text-align: center;
  line-height: 1;
  color: var(--oci-primary) !important;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item.active > .nav-link .oci-menu-icon,
.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item:hover > .nav-link .oci-menu-icon {
  color: var(--oci-primary-dark) !important;
}

/* Modal visor encima de otros modales */
#modalVisorDocumento,
#modalVisorArchivo {
  z-index: 1085 !important;
}

.modal-backdrop.modal-visor-backdrop {
  z-index: 1080 !important;
}

/* ============================================================
   TOASTR / ALERTAS DEL SISTEMA
   ============================================================ */

.toast-success {
  background-color: #198754 !important;
  color: #ffffff !important;
}

.toast-warning {
  background-color: #ffc107 !important;
  color: #212529 !important;
}

.toast-error {
  background-color: #dc3545 !important;
  color: #ffffff !important;
}

.toast-info {
  background-color: #0d6efd !important;
  color: #ffffff !important;
}

/* Títulos y mensajes */
#toast-container > div {
  opacity: 1 !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18) !important;
  font-size: 14px !important;
}

#toast-container > div.toast-success {
  border-left: 5px solid #0f5132 !important;
}

#toast-container > div.toast-warning {
  border-left: 5px solid #cc9a06 !important;
}

#toast-container > div.toast-error {
  border-left: 5px solid #842029 !important;
}

#toast-container > div.toast-info {
  border-left: 5px solid #084298 !important;
}

.toast-title {
  font-weight: 700 !important;
}

.toast-message {
  font-weight: 400 !important;
}

/* ============================================================
   SELECT2 - AJUSTE VISUAL EN MODALES
   ============================================================ */

.select2-container {
  width: 100% !important;
}

.select2-container--default .select2-selection--single {
  height: 56px !important;
  min-height: 56px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 12px !important;
  background-color: #ffffff !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #212529 !important;
  line-height: normal !important;
  padding-left: 0 !important;
  padding-right: 28px !important;
  width: 100% !important;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #9ca3af !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 56px !important;
  right: 10px !important;
  top: 0 !important;
}

.select2-container--default .select2-selection--single .select2-selection__clear {
  position: absolute !important;
  right: 34px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin-right: 0 !important;
  font-size: 18px !important;
  color: #333 !important;
}

.select2-dropdown {
  border: 1px solid #d1d5db !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  z-index: 20000 !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid #d1d5db !important;
  border-radius: 8px !important;
  padding: 8px 10px !important;
}

.select2-container--default .select2-results__option {
  padding: 9px 12px !important;
}

.modal .form-control,
.modal .form-select {
  min-height: 56px;
  border-radius: 10px;
}

.page-tablas .filtro-tabla-select {
  min-width: 185px;
  max-width: 220px;
  height: 32px;
  padding-top: 3px;
  padding-bottom: 3px;
}

.page-tablas #bloqueFiltrosTabla label {
  white-space: nowrap;
}

@media (max-width: 768px) {
  .page-tablas #bloqueFiltrosTabla {
    justify-content: flex-start !important;
  }

  .page-tablas .filtro-tabla-select {
    min-width: 180px;
    max-width: 100%;
  }
}

.page-tablas .badge-observada,
.badge-observada {
  background-color: #d99a2b !important;
  color: #2b1b00 !important;
  border: 1px solid #b87916 !important;
  font-weight: 700 !important;
  padding: 6px 10px !important;
  border-radius: 999px !important;
  opacity: 1 !important;
  display: inline-block !important;
  min-width: 70px;
  text-align: center;
}

.page-tablas #tablaDatos {
  table-layout: fixed;
  width: 100% !important;
}

.page-tablas #tablaDatos th,
.page-tablas #tablaDatos td {
  vertical-align: middle;
}

.page-tablas #tablaDatos td {
  white-space: normal !important;
}

.page-tablas .texto-tabla-wrap {
  white-space: normal !important;
  word-break: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
  max-width: 100%;
}

.page-tablas #tablaDatos td:nth-child(1),
.page-tablas #tablaDatos td:nth-child(2),
.page-tablas #tablaDatos td:nth-child(3),
.page-tablas #tablaDatos td:nth-child(6),
.page-tablas #tablaDatos td:nth-child(7),
.page-tablas #tablaDatos td:nth-child(8) {
  white-space: nowrap !important;
}

.page-tablas #tablaDatos td:nth-child(8) .btn-group {
  white-space: nowrap;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item .submenu {
  min-width: 260px;
}

.theme-contraloria .oci-submenu-group {
  list-style: none;
}

.theme-contraloria .oci-submenu-title {
  padding: 9px 16px 5px 16px;
  font-weight: 800;
  font-size: 13px;
  color: var(--oci-primary);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.theme-contraloria .oci-submenu-title.nivel-2,
.theme-contraloria .oci-submenu-title.nivel-3 {
  padding-left: 28px;
  font-size: 12px;
  color: var(--oci-gray);
}

.theme-contraloria .oci-submenu-children {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.theme-contraloria .oci-submenu-children .nav-link.nivel-2 {
  padding-left: 32px !important;
}

.theme-contraloria .oci-submenu-children .nav-link.nivel-3 {
  padding-left: 44px !important;
}

.theme-contraloria .horizontal-menu .bottom-navbar .page-navigation > .nav-item .submenu .nav-link {
  white-space: nowrap;
}

/* ============================================================
   OFICIOS - TABLA CON TEXTO EN VARIAS LÍNEAS
   ============================================================ */

.page-oficios #tablaOficios {
  table-layout: fixed;
  width: 100% !important;
}

.page-oficios #tablaOficios th,
.page-oficios #tablaOficios td {
  vertical-align: middle;
}

/* Permitir saltos de línea en todas las celdas */
.page-oficios #tablaOficios td {
  white-space: normal !important;
  word-break: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

/* Columnas cortas que sí deben mantenerse en una sola línea */
.page-oficios #tablaOficios td:nth-child(1),
.page-oficios #tablaOficios td:nth-child(2),
.page-oficios #tablaOficios td:nth-child(3),
.page-oficios #tablaOficios td:nth-child(7),
.page-oficios #tablaOficios td:nth-child(8),
.page-oficios #tablaOficios td:nth-child(9) {
  white-space: nowrap !important;
}

/* Asunto e instancias: permitir varias líneas */
.page-oficios #tablaOficios .col-asunto,
.page-oficios #tablaOficios .col-instancia {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.35;
}

/* Botones de acciones sin partirse */
.page-oficios #tablaOficios td:nth-child(9) .btn,
.page-oficios #tablaOficios td:nth-child(7) .btn,
.page-oficios #tablaOficios td:nth-child(8) .btn {
  white-space: nowrap;
}

/* Anchos sugeridos */
.page-oficios #tablaOficios th:nth-child(1) {
  width: 45px;
}

.page-oficios #tablaOficios th:nth-child(2) {
  width: 120px;
}

.page-oficios #tablaOficios th:nth-child(3) {
  width: 105px;
}

.page-oficios #tablaOficios th:nth-child(4) {
  width: 18%;
}

.page-oficios #tablaOficios th:nth-child(5) {
  width: 28%;
}

.page-oficios #tablaOficios th:nth-child(6) {
  width: 18%;
}

.page-oficios #tablaOficios th:nth-child(7),
.page-oficios #tablaOficios th:nth-child(8) {
  width: 80px;
}

.page-oficios #tablaOficios th:nth-child(9) {
  width: 130px;
}

/* ============================================================
   ORGANIGRAMA
   ============================================================ */

.page-organigrama .oci-card-stat {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-organigrama .organigrama-wrapper {
  width: 100%;
}

.page-organigrama .organigrama-nivel {
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 18px;
  padding: 16px;
  background: #fff;
}

.page-organigrama .organigrama-nivel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.page-organigrama .organigrama-nivel-header h5 {
  font-weight: 800;
  color: var(--oci-primary);
}

.page-organigrama .organigrama-nivel-header small {
  color: #64748b;
}

.page-organigrama .organigrama-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.page-organigrama .organigrama-card {
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 16px;
  padding: 14px;
  background: #ffffff;
  min-height: 145px;
  transition: all 0.18s ease;
}

.page-organigrama .organigrama-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.08);
}

.page-organigrama .organigrama-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.page-organigrama .organigrama-code {
  font-weight: 800;
  font-size: 12px;
  color: var(--oci-primary);
  background: rgba(140, 30, 45, 0.08);
  padding: 4px 9px;
  border-radius: 999px;
}

.page-organigrama .organigrama-title {
  font-size: 15px;
  font-weight: 800;
  color: #1f2937;
  line-height: 1.25;
  margin-bottom: 10px;
}

.page-organigrama .organigrama-meta {
  font-size: 12.5px;
  color: #64748b;
  line-height: 1.45;
}

.page-organigrama .organigrama-meta strong {
  color: #334155;
}

.page-organigrama #tablaOrganigrama {
  table-layout: fixed;
  width: 100% !important;
}

.page-organigrama #tablaOrganigrama td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  vertical-align: middle;
}

/* ============================================================
   ÁREAS / DEPENDENCIAS
   ============================================================ */

.page-areas #tablaAreas {
  table-layout: fixed;
  width: 100% !important;
}

.page-areas #tablaAreas th,
.page-areas #tablaAreas td {
  vertical-align: middle;
}

.page-areas #tablaAreas td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.page-areas #tablaAreas th:nth-child(1) {
  width: 45px;
}

.page-areas #tablaAreas th:nth-child(2) {
  width: 32%;
}

.page-areas #tablaAreas th:nth-child(3) {
  width: 160px;
}

.page-areas #tablaAreas th:nth-child(4) {
  width: 22%;
}

.page-areas #tablaAreas th:nth-child(5) {
  width: 110px;
}

.page-areas #tablaAreas th:nth-child(6) {
  width: 170px;
}

.page-areas #tablaAreas td:nth-child(1),
.page-areas #tablaAreas td:nth-child(3),
.page-areas #tablaAreas td:nth-child(5),
.page-areas #tablaAreas td:nth-child(6) {
  white-space: nowrap !important;
}

/* ============================================================
   BIENES MUEBLES
   ============================================================ */

.page-bienes-muebles .oci-card-main {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-bienes-muebles #lista_bienes {
  table-layout: fixed;
  width: 100% !important;
}

.page-bienes-muebles #lista_bienes th,
.page-bienes-muebles #lista_bienes td {
  vertical-align: middle;
}

.page-bienes-muebles #lista_bienes td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.page-bienes-muebles #lista_bienes th:nth-child(1) {
  width: 50px;
}

.page-bienes-muebles #lista_bienes th:nth-child(2) {
  width: 35%;
}

.page-bienes-muebles #lista_bienes th:nth-child(3),
.page-bienes-muebles #lista_bienes th:nth-child(4) {
  width: 120px;
}

.page-bienes-muebles #lista_bienes th:nth-child(5) {
  width: 160px;
}

.page-bienes-muebles #lista_bienes th:nth-child(6),
.page-bienes-muebles #lista_bienes th:nth-child(7) {
  width: 120px;
}

.page-bienes-muebles #lista_bienes td:nth-child(1),
.page-bienes-muebles #lista_bienes td:nth-child(3),
.page-bienes-muebles #lista_bienes td:nth-child(4),
.page-bienes-muebles #lista_bienes td:nth-child(5),
.page-bienes-muebles #lista_bienes td:nth-child(6),
.page-bienes-muebles #lista_bienes td:nth-child(7) {
  white-space: nowrap !important;
  text-align: center;
}

.page-bienes-muebles #lista_bienes .progress {
  background-color: rgba(148, 163, 184, 0.25);
  border-radius: 999px;
  overflow: hidden;
}

/* ============================================================
   BIENES MUEBLES - MODALES
   ============================================================ */

.page-bienes-muebles .modal-xl {
  max-width: 1180px;
}

.page-bienes-muebles #modal_detalle_bien .list-group-item {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  font-size: 13px;
}

.page-bienes-muebles #modal_detalle_bien .list-group-item b {
  color: #334155;
  min-width: 145px;
}

.page-bienes-muebles #galeria_bien img {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.page-bienes-muebles #galeria_bien img:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

.page-bienes-muebles #tabla_bienes_modal {
  table-layout: fixed;
  width: 100% !important;
}

.page-bienes-muebles #tabla_bienes_modal td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  vertical-align: middle;
}

.page-bienes-muebles #tabla_bienes_modal th:nth-child(1) {
  width: 46%;
}

.page-bienes-muebles #tabla_bienes_modal th:nth-child(2) {
  width: 120px;
}

.page-bienes-muebles #tabla_bienes_modal th:nth-child(3) {
  width: 28%;
}

.page-bienes-muebles #tabla_bienes_modal th:nth-child(4) {
  width: 140px;
}

.page-bienes-muebles #contenedorPdf iframe {
  display: block;
  min-height: 80vh;
  border: 0;
}

/* ============================================================
   FIX MODALES GRANDES BIENES MUEBLES
   ============================================================ */

.page-bienes-muebles #agregar_bien .modal-dialog,
.page-bienes-muebles #modal_editar_bien .modal-dialog {
  max-width: calc(100vw - 48px);
  width: 96%;
  margin: 16px auto;
}

.page-bienes-muebles #agregar_bien .modal-content,
.page-bienes-muebles #modal_editar_bien .modal-content {
  max-height: calc(100vh - 32px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 18px;
}

.page-bienes-muebles #agregar_bien .modal-header,
.page-bienes-muebles #modal_editar_bien .modal-header {
  flex: 0 0 auto;
  position: sticky;
  top: 0;
  z-index: 5;
  background: #b91f33;
  color: #fff;
}

.page-bienes-muebles #agregar_bien .modal-header .btn-close,
.page-bienes-muebles #modal_editar_bien .modal-header .btn-close {
  filter: invert(1);
  opacity: .8;
}

.page-bienes-muebles #agregar_bien .modal-body,
.page-bienes-muebles #modal_editar_bien .modal-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 28px 32px;
}

.page-bienes-muebles #agregar_bien .modal-footer,
.page-bienes-muebles #modal_editar_bien .modal-footer {
  flex: 0 0 auto;
  position: sticky;
  bottom: 0;
  z-index: 5;
  background: #fff;
  border-top: 1px solid rgba(148, 163, 184, .35);
}

.page-bienes-muebles #agregar_bien .form-control,
.page-bienes-muebles #modal_editar_bien .form-control,
.page-bienes-muebles #agregar_bien .select2-container--bootstrap-5 .select2-selection,
.page-bienes-muebles #modal_editar_bien .select2-container--bootstrap-5 .select2-selection {
  min-height: 44px;
  border-radius: 10px;
}

.page-bienes-muebles #agregar_bien textarea.form-control,
.page-bienes-muebles #modal_editar_bien textarea.form-control {
  min-height: 90px;
}

@media (max-width: 768px) {
  .page-bienes-muebles #agregar_bien .modal-dialog,
  .page-bienes-muebles #modal_editar_bien .modal-dialog {
    width: calc(100vw - 20px);
    max-width: calc(100vw - 20px);
    margin: 10px auto;
  }

  .page-bienes-muebles #agregar_bien .modal-body,
  .page-bienes-muebles #modal_editar_bien .modal-body {
    padding: 20px;
  }
}

.page-bienes-muebles .btn-icon-only {
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-bienes-muebles .btn-icon-only i {
  font-size: 18px;
  line-height: 1;
}

/* ============================================================
   INVENTARIO GENERAL
   ============================================================ */

.page-inventario .oci-card-main {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-inventario #tablaInventario {
  table-layout: fixed;
  width: 100% !important;
}

.page-inventario #tablaInventario th,
.page-inventario #tablaInventario td {
  vertical-align: middle;
}

.page-inventario #tablaInventario td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.page-inventario #tablaInventario th:nth-child(1) {
  width: 45px;
}

.page-inventario #tablaInventario th:nth-child(2) {
  width: 28%;
}

.page-inventario #tablaInventario th:nth-child(3) {
  width: 120px;
}

.page-inventario #tablaInventario th:nth-child(4),
.page-inventario #tablaInventario th:nth-child(5) {
  width: 130px;
}

.page-inventario #tablaInventario th:nth-child(6) {
  width: 20%;
}

.page-inventario #tablaInventario th:nth-child(7),
.page-inventario #tablaInventario th:nth-child(8),
.page-inventario #tablaInventario th:nth-child(9) {
  width: 130px;
}

.page-inventario #tablaInventario td:nth-child(1),
.page-inventario #tablaInventario td:nth-child(3),
.page-inventario #tablaInventario td:nth-child(4),
.page-inventario #tablaInventario td:nth-child(5),
.page-inventario #tablaInventario td:nth-child(7),
.page-inventario #tablaInventario td:nth-child(8),
.page-inventario #tablaInventario td:nth-child(9) {
  white-space: nowrap !important;
  text-align: center;
}

.page-inventario .inventario-bien {
  display: flex;
  align-items: center;
  gap: 12px;
}

.page-inventario .inventario-bien img {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  object-fit: cover;
  border: 1px solid rgba(148, 163, 184, .35);
  background: #f8fafc;
}

.page-inventario #zonaCambioMasivo {
  border-top: 1px solid rgba(148, 163, 184, .25);
  padding-top: 14px;
}

/* ============================================================
   BIENES INMUEBLES
   ============================================================ */

.page-bienes-inmuebles .oci-card-main {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-bienes-inmuebles #tablaInmuebles {
  table-layout: fixed;
  width: 100% !important;
}

.page-bienes-inmuebles #tablaInmuebles th,
.page-bienes-inmuebles #tablaInmuebles td {
  vertical-align: middle;
}

.page-bienes-inmuebles #tablaInmuebles td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(1) {
  width: 70px;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(2) {
  width: 120px;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(3) {
  width: 18%;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(4) {
  width: 28%;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(5) {
  width: 150px;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(6) {
  width: 140px;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(7) {
  width: 110px;
}

.page-bienes-inmuebles #tablaInmuebles th:nth-child(8) {
  width: 90px;
}

.page-bienes-inmuebles #tablaInmuebles td:nth-child(1),
.page-bienes-inmuebles #tablaInmuebles td:nth-child(2),
.page-bienes-inmuebles #tablaInmuebles td:nth-child(5),
.page-bienes-inmuebles #tablaInmuebles td:nth-child(6),
.page-bienes-inmuebles #tablaInmuebles td:nth-child(7),
.page-bienes-inmuebles #tablaInmuebles td:nth-child(8) {
  white-space: nowrap !important;
}

.page-bienes-inmuebles .btn-icon-only {
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-bienes-inmuebles .btn-icon-only i {
  font-size: 16px;
  line-height: 1;
}

/* ============================================================
   BIENES INMUEBLES - MODALES
   ============================================================ */

.page-bienes-inmuebles #modalVerInmueble .modal-dialog,
.page-bienes-inmuebles #modalPoligono .modal-dialog {
  max-width: calc(100vw - 48px);
  width: 96%;
}

.page-bienes-inmuebles #modalVerInmueble .modal-content,
.page-bienes-inmuebles #modalPoligono .modal-content {
  max-height: calc(100vh - 32px);
  overflow: hidden;
  border-radius: 18px;
}

.page-bienes-inmuebles #modalVerInmueble .modal-header,
.page-bienes-inmuebles #modalPoligono .modal-header {
  flex: 0 0 auto;
}

.page-bienes-inmuebles #modalVerInmueble .modal-body,
.page-bienes-inmuebles #modalPoligono .modal-body {
  overflow-y: auto;
}

.page-bienes-inmuebles .inmueble-info-list .list-group-item {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 13px;
}

.page-bienes-inmuebles .inmueble-info-list .list-group-item b {
  color: #334155;
  min-width: 130px;
}

.page-bienes-inmuebles .inmueble-map-box {
  height: 430px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .35);
  background: #f8fafc;
}

.page-bienes-inmuebles .inmueble-map {
  width: 100%;
  height: 100%;
}

.page-bienes-inmuebles .inmueble-map-empty {
  height: 100%;
  min-height: 430px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  background: #f8fafc;
}

.page-bienes-inmuebles .inmueble-map-poligono {
  height: 620px;
  min-height: 620px;
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .35);
}

.page-bienes-inmuebles #txtCoordenadasPoligono {
  font-family: Consolas, Monaco, monospace;
  font-size: 12px;
  line-height: 1.45;
  resize: vertical;
}

@media (max-width: 768px) {
  .page-bienes-inmuebles .inmueble-map-poligono {
    height: 420px;
    min-height: 420px;
  }
}

.page-bienes-inmuebles #galeriaFotos img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, .35);
}

.page-bienes-inmuebles .documento-row {
  border-bottom: 1px solid rgba(148, 163, 184, .25);
  padding: 10px 0;
}

.page-bienes-inmuebles .documento-row:last-child {
  border-bottom: 0;
}

@media (max-width: 768px) {
  .page-bienes-inmuebles #modalVerInmueble .modal-dialog,
  .page-bienes-inmuebles #modalPoligono .modal-dialog {
    width: calc(100vw - 20px);
    max-width: calc(100vw - 20px);
  }

  .page-bienes-inmuebles .inmueble-map-box,
  .page-bienes-inmuebles .inmueble-map-empty {
    height: 320px;
    min-height: 320px;
  }

  .page-bienes-inmuebles .inmueble-map-poligono {
    height: 480px;
    min-height: 480px;
  }
}

.page-bienes-inmuebles .inmueble-foto-card {
  position: relative;
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 14px;
  overflow: hidden;
  background: #f8fafc;
}

.page-bienes-inmuebles .inmueble-foto-img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: contain;
  background: #fff;
}

.page-bienes-inmuebles .inmueble-foto-actions {
  padding: 8px;
  text-align: center;
  border-top: 1px solid rgba(148, 163, 184, .25);
  background: #fff;
}

.page-bienes-inmuebles .inmueble-foto-card.foto-error {
  display: none;
}

.page-bienes-inmuebles .inmueble-foto-card {
  position: relative;
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 14px;
  overflow: hidden;
  background: #f8fafc;
}

.page-bienes-inmuebles .inmueble-foto-card a {
  display: block;
  cursor: zoom-in;
}

.page-bienes-inmuebles .inmueble-foto-img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: contain;
  background: #fff;
}

.page-bienes-inmuebles .inmueble-foto-actions {
  padding: 8px;
  text-align: center;
  border-top: 1px solid rgba(148, 163, 184, .25);
  background: #fff;
}

.page-bienes-inmuebles .inmueble-foto-card.foto-error {
  display: none;
}

/* ============================================================
   MAPA DE INMUEBLES
   ============================================================ */

.page-mapa-inmuebles .oci-card-main {
  border: 0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-mapa-inmuebles #mapaInmueblesGeneral {
  width: 100%;
  height: calc(100vh - 230px);
  min-height: 620px;
  background: #f8fafc;
}

.page-mapa-inmuebles .popup-inmueble {
  min-width: 250px;
}

.page-mapa-inmuebles .popup-inmueble .popup-title {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 6px;
  color: #0f172a;
}

.page-mapa-inmuebles .popup-inmueble .popup-row {
  font-size: 12px;
  margin-bottom: 4px;
}

.page-mapa-inmuebles .popup-inmueble .popup-row b {
  color: #334155;
}

@media (max-width: 768px) {
  .page-mapa-inmuebles #mapaInmueblesGeneral {
    height: calc(100vh - 260px);
    min-height: 520px;
  }
}

/* ============================================================
   DECLARACIONES
   ============================================================ */

.page-declaraciones .oci-card-main {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-declaraciones #tablaUsuarios {
  table-layout: fixed;
  width: 100% !important;
}

.page-declaraciones #tablaUsuarios th,
.page-declaraciones #tablaUsuarios td {
  vertical-align: middle;
}

.page-declaraciones #tablaUsuarios td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.page-declaraciones #tablaUsuarios th:nth-child(1) {
  width: 50px;
}

.page-declaraciones #tablaUsuarios th:nth-child(2) {
  width: 26%;
}

.page-declaraciones #tablaUsuarios th:nth-child(3) {
  width: 16%;
}

.page-declaraciones #tablaUsuarios th:nth-child(4) {
  width: 150px;
}

.page-declaraciones #tablaUsuarios th:nth-child(5) {
  width: 130px;
}

.page-declaraciones #tablaUsuarios th:nth-child(6) {
  width: 120px;
}

.page-declaraciones #tablaUsuarios th:nth-child(7) {
  width: 170px;
}

.page-declaraciones #tablaUsuarios td:nth-child(1),
.page-declaraciones #tablaUsuarios td:nth-child(4),
.page-declaraciones #tablaUsuarios td:nth-child(5),
.page-declaraciones #tablaUsuarios td:nth-child(6),
.page-declaraciones #tablaUsuarios td:nth-child(7) {
  white-space: nowrap !important;
  text-align: center;
}

/* Tabla declaraciones del usuario */
.page-declaraciones #tablaDeclaracionesUsuario {
  table-layout: fixed;
  width: 100% !important;
}

.page-declaraciones #tablaDeclaracionesUsuario th,
.page-declaraciones #tablaDeclaracionesUsuario td {
  vertical-align: middle;
}

/* # */
.page-declaraciones #tablaDeclaracionesUsuario th:nth-child(1),
.page-declaraciones #tablaDeclaracionesUsuario td:nth-child(1) {
  width: 45px;
  max-width: 45px;
  text-align: center;
  white-space: nowrap !important;
}

/* Tipo */
.page-declaraciones #tablaDeclaracionesUsuario th:nth-child(2),
.page-declaraciones #tablaDeclaracionesUsuario td:nth-child(2) {
  width: 95px;
  max-width: 95px;
  white-space: nowrap !important;
}

/* Año */
.page-declaraciones #tablaDeclaracionesUsuario th:nth-child(3),
.page-declaraciones #tablaDeclaracionesUsuario td:nth-child(3) {
  width: 75px;
  max-width: 75px;
  text-align: center;
  white-space: nowrap !important;
}

/* Firmada */
.page-declaraciones #tablaDeclaracionesUsuario th:nth-child(4),
.page-declaraciones #tablaDeclaracionesUsuario td:nth-child(4) {
  width: 95px;
  max-width: 95px; 
  text-align: center;
  white-space: nowrap !important;
}

/* Formato */
.page-declaraciones #tablaDeclaracionesUsuario th:nth-child(5),
.page-declaraciones #tablaDeclaracionesUsuario td:nth-child(5) {
  width: 120px;
  max-width: 120px;
  text-align: center;
  white-space: nowrap !important;
}

/* Fecha */
.page-declaraciones #tablaDeclaracionesUsuario th:nth-child(6),
.page-declaraciones #tablaDeclaracionesUsuario td:nth-child(6) {
  width: 165px;
  max-width: 165px;
  text-align: center;
  white-space: nowrap !important;
}

/* Acciones */
.page-declaraciones #tablaDeclaracionesUsuario th:nth-child(7),
.page-declaraciones #tablaDeclaracionesUsuario td:nth-child(7) {
  width: 150px;
  max-width: 150px;
  text-align: center;
  white-space: nowrap !important;
}

.page-declaraciones #tablaDeclaracionesUsuario .btn-group {
  flex-wrap: nowrap;
}

.page-declaraciones .declaracion-resumen-box {
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 14px;
  background: #f8fafc;
  padding: 14px;
  height: 100%;
}

.page-declaraciones .modal-xl {
  max-width: 1180px;
}

.page-declaraciones .btn-icon-only {
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-declaraciones .btn-icon-only i {
  font-size: 14px;
}

.page-declaraciones .select2-container--bootstrap-5 .select2-selection {
  min-height: 38px;
  border-radius: 10px;
}

/* ============================================================
   REGLAS DE TESTADO
   ============================================================ */

.page-reglas-testado .oci-card-main {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-reglas-testado #tablaReglasTestado {
  table-layout: fixed;
  width: 100% !important;
}

.page-reglas-testado #tablaReglasTestado th,
.page-reglas-testado #tablaReglasTestado td {
  vertical-align: middle;
}

.page-reglas-testado #tablaReglasTestado td {
  line-height: 1.35;
  overflow-wrap: anywhere;
}

/* # */
.page-reglas-testado #tablaReglasTestado th:nth-child(1),
.page-reglas-testado #tablaReglasTestado td:nth-child(1) {
  width: 50px;
  text-align: center;
  white-space: nowrap !important;
}

/* Perfil */
.page-reglas-testado #tablaReglasTestado th:nth-child(2),
.page-reglas-testado #tablaReglasTestado td:nth-child(2) {
  width: 270px;
  max-width: 270px;
  white-space: normal !important;
}

/* Tipo declaración */
.page-reglas-testado #tablaReglasTestado th:nth-child(3),
.page-reglas-testado #tablaReglasTestado td:nth-child(3) {
  width: 135px;
  text-align: center;
  white-space: nowrap !important;
}

/* Tipo regla */
.page-reglas-testado #tablaReglasTestado th:nth-child(4),
.page-reglas-testado #tablaReglasTestado td:nth-child(4) {
  width: 105px;
  text-align: center;
  white-space: nowrap !important;
}

/* Etiqueta */
.page-reglas-testado #tablaReglasTestado th:nth-child(5),
.page-reglas-testado #tablaReglasTestado td:nth-child(5) {
  width: 230px;
  white-space: normal !important;
}

/* Path campo */
.page-reglas-testado #tablaReglasTestado th:nth-child(6),
.page-reglas-testado #tablaReglasTestado td:nth-child(6) {
  width: 280px;
  white-space: normal !important;
}

/* Orden */
.page-reglas-testado #tablaReglasTestado th:nth-child(7),
.page-reglas-testado #tablaReglasTestado td:nth-child(7) {
  width: 75px;
  text-align: center;
  white-space: nowrap !important;
}

/* Activo */
.page-reglas-testado #tablaReglasTestado th:nth-child(8),
.page-reglas-testado #tablaReglasTestado td:nth-child(8) {
  width: 90px;
  text-align: center;
  white-space: nowrap !important;
}

/* Acciones */
.page-reglas-testado #tablaReglasTestado th:nth-child(9),
.page-reglas-testado #tablaReglasTestado td:nth-child(9) {
  width: 125px;
  text-align: center;
  white-space: nowrap !important;
}

.page-reglas-testado .rt-perfil {
  max-width: 260px;
  white-space: normal;
}

.page-reglas-testado .rt-perfil-nombre {
  font-weight: 600;
  font-size: 13px;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.page-reglas-testado #tablaReglasTestado code {
  display: inline-block;
  max-width: 100%;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 8px;
  padding: 3px 6px;
  color: #334155;
  font-size: 12px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.page-reglas-testado .btn-icon-only {
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-reglas-testado .btn-icon-only i {
  font-size: 14px;
}

.page-reglas-testado .select2-container--bootstrap-5 .select2-selection {
  min-height: 38px;
  border-radius: 10px;
}

/* ============================================================
   PROVEEDORES ADQUISICIONES
   ============================================================ */

.page-proveedores-adquisiciones .oci-card-main {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.page-proveedores-adquisiciones #tablaProveedoresAdq {
  table-layout: fixed;
  width: 100% !important;
}

.page-proveedores-adquisiciones #tablaProveedoresAdq th,
.page-proveedores-adquisiciones #tablaProveedoresAdq td {
  vertical-align: middle;
}

.page-proveedores-adquisiciones #tablaProveedoresAdq td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(1) { width: 50px; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(2) { width: 23%; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(3) { width: 130px; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(4) { width: 18%; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(5) { width: 18%; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(6) { width: 135px; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(7) { width: 75px; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(8) { width: 75px; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(9) { width: 75px; }
.page-proveedores-adquisiciones #tablaProveedoresAdq th:nth-child(10) { width: 170px; }

.page-proveedores-adquisiciones #tablaProveedoresAdq td:nth-child(1),
.page-proveedores-adquisiciones #tablaProveedoresAdq td:nth-child(3),
.page-proveedores-adquisiciones #tablaProveedoresAdq td:nth-child(6),
.page-proveedores-adquisiciones #tablaProveedoresAdq td:nth-child(7),
.page-proveedores-adquisiciones #tablaProveedoresAdq td:nth-child(8),
.page-proveedores-adquisiciones #tablaProveedoresAdq td:nth-child(9),
.page-proveedores-adquisiciones #tablaProveedoresAdq td:nth-child(10) {
  white-space: nowrap !important;
  text-align: center;
}

.page-proveedores-adquisiciones .adq-info-box {
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 14px;
  background: #f8fafc;
  padding: 14px;
  height: 100%;
}

.page-proveedores-adquisiciones .btn-icon-only {
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-proveedores-adquisiciones .btn-icon-only i {
  font-size: 14px;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq {
  table-layout: fixed;
  width: 100% !important;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th,
.page-proveedores-adquisiciones #tablaDocsProveedorAdq td {
  vertical-align: middle;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq td {
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th:nth-child(1) {
  width: 50px;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th:nth-child(2) {
  width: 42%;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th:nth-child(3) {
  width: 105px;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th:nth-child(4) {
  width: 90px;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th:nth-child(5) {
  width: 90px;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th:nth-child(6) {
  width: 150px;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq th:nth-child(7) {
  width: 110px;
}

.page-proveedores-adquisiciones #tablaDocsProveedorAdq td:nth-child(1),
.page-proveedores-adquisiciones #tablaDocsProveedorAdq td:nth-child(3),
.page-proveedores-adquisiciones #tablaDocsProveedorAdq td:nth-child(4),
.page-proveedores-adquisiciones #tablaDocsProveedorAdq td:nth-child(5),
.page-proveedores-adquisiciones #tablaDocsProveedorAdq td:nth-child(6),
.page-proveedores-adquisiciones #tablaDocsProveedorAdq td:nth-child(7) {
  text-align: center;
  white-space: nowrap !important;
}

.page-proveedores-adquisiciones .adq-doc-ruta {
  max-width: 100%;
  font-size: 11px;
  opacity: .75;
  white-space: normal;
  word-break: break-all;
}

.page-dashboard-oci .oci-dash-card {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
  color: #1f2937;
  transition: transform .15s ease, box-shadow .15s ease;
}

.page-dashboard-oci .oci-dash-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(15, 23, 42, .11);
}

.page-dashboard-oci .oci-card-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  margin-bottom: 14px;
}

.page-dashboard-oci .oci-card-label {
  color: #64748b;
  font-weight: 600;
  margin-bottom: 4px;
}

.page-dashboard-oci .oci-dash-card h3 {
  font-weight: 800;
  margin-bottom: 2px;
  color: #111827;
}

.page-dashboard-oci .oci-dash-card small {
  color: #64748b;
}

.page-dashboard-oci .oci-card-main {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
}

.page-dashboard-oci .oci-chart-wrap {
  height: 330px;
  position: relative;
}

.page-dashboard-oci .oci-chart-wrap-sm {
  height: 260px;
  position: relative;
}

.page-dashboard-oci .oci-money-box {
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 16px;
  padding: 16px;
  background: #f8fafc;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.page-dashboard-oci .oci-money-box span {
  color: #64748b;
  font-weight: 600;
}

.page-dashboard-oci .oci-money-box strong {
  font-size: 18px;
  color: #4e232e;
}

.page-dashboard-oci .oci-area-row {
  padding: 10px 0;
  border-bottom: 1px solid rgba(148, 163, 184, .25);
}

.page-dashboard-oci .oci-area-row:last-child {
  border-bottom: 0;
}

.page-dashboard-oci .oci-area-row .progress {
  height: 8px;
  border-radius: 999px;
  background: #eef2f7;
}

.page-dashboard-oci .oci-area-row .progress-bar {
  background: #4e232e;
  border-radius: 999px;
}

.page-dashboard-oci .oci-oficio-item {
  padding: 12px 0;
  border-bottom: 1px solid rgba(148, 163, 184, .25);
}

.page-dashboard-oci .oci-oficio-item:last-child {
  border-bottom: 0;
}

.page-dashboard-oci .oci-oficio-item p {
  font-size: 13px;
  line-height: 1.35;
  margin-top: 6px;
}

.page-dashboard-oci .oci-money-box-total {
  background: #4e232e;
  border-color: #4e232e;
}

.page-dashboard-oci .oci-money-box-total span,
.page-dashboard-oci .oci-money-box-total strong {
  color: #fff;
}

.select2-container {
  width: 100% !important;
}

.select2-container .select2-selection--single {
  min-height: 46px;
  border: 1px solid #ced4da;
  border-radius: 0.375rem;
  display: flex;
  align-items: center;
}

.select2-container .select2-selection--single .select2-selection__rendered {
  padding-left: 0.75rem;
  padding-right: 2rem;
  line-height: normal;
}

.select2-container .select2-selection--single .select2-selection__arrow {
  height: 44px;
}

.select2-container .select2-selection--single .select2-selection__clear {
  margin-right: 10px;
  font-size: 18px;
}

#tablaUnidadesOficiales th.col-descripcion,
#tablaUnidadesOficiales td.col-descripcion {
  min-width: 260px;
  white-space: normal;
}

#tablaUnidadesOficiales th.col-responsable,
#tablaUnidadesOficiales td.col-responsable {
  min-width: 230px;
  white-space: normal;
}

#tablaUnidadesOficiales th.col-dependencia,
#tablaUnidadesOficiales td.col-dependencia {
  min-width: 220px;
  white-space: normal;
}

.page-spm-bitacoras .table-responsive {
    overflow: visible !important;
}

.page-spm-bitacoras .dataTables_wrapper,
.page-spm-bitacoras .card,
.page-spm-bitacoras .card-body {
    overflow: visible !important;
}

.page-spm-bitacoras .dropdown-menu {
    z-index: 1080;
}

/* ============================================================
   ALUMBRADO - SALIDAS
   ============================================================ */

.page-alumbrado-salidas .tabla-salida-materiales {
    table-layout: fixed;
}

.page-alumbrado-salidas .tabla-salida-materiales td {
    vertical-align: middle;
}

.page-alumbrado-salidas .tabla-salida-materiales .select2-container {
    width: 100% !important;
    max-width: 100%;
}

.page-alumbrado-salidas .tabla-salida-materiales .select2-selection--single {
    height: 42px;
}

.page-alumbrado-salidas .tabla-salida-materiales .select2-selection__rendered {
    line-height: 40px !important;
    padding-right: 28px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.page-alumbrado-salidas .tabla-salida-materiales .select2-selection__arrow {
    height: 40px !important;
}

.page-alumbrado-salidas .tabla-salida-materiales .js-existencia,
.page-alumbrado-salidas .tabla-salida-materiales .js-unidad {
    white-space: nowrap;
}

.page-alumbrado-salidas #modalAlumbradoSalida .modal-content {
    overflow: hidden;
}

.page-alumbrado-salidas #modalAlumbradoSalida .modal-footer {
    border-top: 1px solid #e9ecef;
}

.page-alumbrado-salidas #modalAlumbradoSalida .modal-footer {
    padding: 1rem 1.5rem 1.15rem;
}

/* ============================================================
   ALUMBRADO - INSTALACIONES / EVIDENCIAS
   ============================================================ */

.page-alumbrado-salidas #tablaAlumbradoInstalaciones {
    width: 100% !important;
    table-layout: fixed;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th,
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td {
    vertical-align: middle;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th:nth-child(1),
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(1) {
    width: 6%;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th:nth-child(2),
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(2) {
    width: 38%;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th:nth-child(3),
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(3) {
    width: 14%;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th:nth-child(4),
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(4) {
    width: 10%;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th:nth-child(5),
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(5) {
    width: 10%;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th:nth-child(6),
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(6) {
    width: 10%;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones th:nth-child(7),
.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(7) {
    width: 12%;
}

.page-alumbrado-salidas #tablaAlumbradoInstalaciones td:nth-child(2) {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.4;
}

.page-alumbrado-salidas .alumbrado-material-descripcion {
    white-space: normal !important;
    overflow-wrap: anywhere;
    line-height: 1.4;
}

/* ============================================================
   ALUMBRADO - MAPA DE INSTALACIÓN
   ============================================================ */

.page-alumbrado-salidas #mapaInstalacionAlumbrado {
    width: 100%;
    height: 380px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    overflow: hidden;
}

.page-alumbrado-salidas #modalAlumbradoInstalacion .modal-body {
    overflow-y: auto;
}

.page-alumbrado-salidas #modalAlumbradoInstalacion .modal-footer {
    flex-shrink: 0;
    padding: 1rem 1.5rem;
}

/* ============================================================
   TABLA INCORPORACIÓN DE BIENES
   ============================================================ */

#tabla_bienes_incorporaciones {
    width: 100% !important;
    table-layout: fixed;
}

#tabla_bienes_incorporaciones th,
#tabla_bienes_incorporaciones td {
    white-space: normal !important;
    overflow-wrap: break-word;
    word-wrap: break-word;
    vertical-align: middle;
}

/* # */
#tabla_bienes_incorporaciones th:nth-child(1),
#tabla_bienes_incorporaciones td:nth-child(1) {
    width: 45px;
}

/* No. inventario */
#tabla_bienes_incorporaciones th:nth-child(2),
#tabla_bienes_incorporaciones td:nth-child(2) {
    width: 130px;
}

/* Descripción */
#tabla_bienes_incorporaciones th:nth-child(3),
#tabla_bienes_incorporaciones td:nth-child(3) {
    width: 210px;
}

/* Características */
#tabla_bienes_incorporaciones th:nth-child(4),
#tabla_bienes_incorporaciones td:nth-child(4) {
    width: 230px;
}

/* Área */
#tabla_bienes_incorporaciones th:nth-child(5),
#tabla_bienes_incorporaciones td:nth-child(5) {
    width: 160px;
}

/* Marca */
#tabla_bienes_incorporaciones th:nth-child(6),
#tabla_bienes_incorporaciones td:nth-child(6) {
    width: 110px;
}

/* Modelo */
#tabla_bienes_incorporaciones th:nth-child(7),
#tabla_bienes_incorporaciones td:nth-child(7) {
    width: 110px;
}

/* Serie */
#tabla_bienes_incorporaciones th:nth-child(8),
#tabla_bienes_incorporaciones td:nth-child(8) {
    width: 135px;
}

/* Factura */
#tabla_bienes_incorporaciones th:nth-child(9),
#tabla_bienes_incorporaciones td:nth-child(9) {
    width: 100px;
}

/* Importe */
#tabla_bienes_incorporaciones th:nth-child(10),
#tabla_bienes_incorporaciones td:nth-child(10) {
    width: 105px;
}

/* Fecha */
#tabla_bienes_incorporaciones th:nth-child(11),
#tabla_bienes_incorporaciones td:nth-child(11) {
    width: 95px;
}

/* Acciones */
#tabla_bienes_incorporaciones th:nth-child(12),
#tabla_bienes_incorporaciones td:nth-child(12) {
    width: 105px;
}

#contenedor_foto_resguardo {
    text-align: center;
    padding: 10px 0 20px;
}

#detalle_foto_resguardo {
    width: auto;
    max-width: 450px;
    height: 280px;
    object-fit: contain;
    border-radius: 8px;
    border: 1px solid #dee2e6;
    background: #f8f9fa;
}

#modal_revisar_incorporacion .form-control.bg-light {
    min-height: 42px;
    height: auto;
    white-space: normal;
    overflow-wrap: break-word;
}

#modal_revisar_incorporacion .bien-campo-multilinea {
    min-height: 70px;
}

#modal_revisar_incorporacion .select2-container {
    width: 100% !important;
}