/* =========================================================
   01. Variables globales y soporte modo oscuro
========================================================= */

:root {
  /* Superficies de catálogo */
  --catalog-surface-bg: #ffffff;
  --catalog-surface-bg-soft: #f8fafc;
  --catalog-surface-border: rgba(15, 23, 42, .08);
  --catalog-surface-shadow: 0 10px 24px rgba(15, 23, 42, .035);
  --catalog-text-color: #0f172a;
  --catalog-muted-color: #64748b;
  --catalog-input-bg: #ffffff;
  --catalog-input-border: #dbe3ef;

  /* Tablas */
  --admin-table-head-bg: #f8fafc;
  --admin-table-head-color: #475569;
  --admin-table-head-border: #e5e7eb;
  --admin-table-body-bg: #ffffff;
  --admin-table-body-color: #0f172a;
  --admin-table-row-hover-bg: #f8fafc;

  /* Notificaciones */
  --notif-item-border: #edf1f5;
  --notif-item-hover-bg: #f8fafc;
  --notif-icon-bg: #f1f5f9;
  --notif-icon-color: #334155;
  --notif-order-bg: #fff7ed;
  --notif-order-color: #ea580c;
  --notif-whatsapp-bg: #ecfdf5;
  --notif-whatsapp-color: #16a34a;
  --notif-order-message-bg: #eff6ff;
  --notif-order-message-color: #2563eb;
  --notif-title-color: #0f172a;
  --notif-text-color: #64748b;
  --notif-detail-color: #475569;
  --notif-muted-color: #94a3b8;
}

[data-pc-theme="dark"],
[data-bs-theme="dark"] {
  /* Superficies de catálogo */
  --catalog-surface-bg: #1f2937;
  --catalog-surface-bg-soft: #111827;
  --catalog-surface-border: rgba(255, 255, 255, .10);
  --catalog-surface-shadow: 0 10px 24px rgba(0, 0, 0, .24);
  --catalog-text-color: #e5e7eb;
  --catalog-muted-color: #9ca3af;
  --catalog-input-bg: #111827;
  --catalog-input-border: rgba(255, 255, 255, .14);

  /* Tablas */
  --admin-table-head-bg: #111827;
  --admin-table-head-color: #d1d5db;
  --admin-table-head-border: rgba(255, 255, 255, .12);
  --admin-table-body-bg: #1f2937;
  --admin-table-body-color: #e5e7eb;
  --admin-table-row-hover-bg: rgba(255, 255, 255, .05);

  /* Notificaciones */
  --notif-item-border: rgba(255, 255, 255, .10);
  --notif-item-hover-bg: rgba(255, 255, 255, .05);
  --notif-icon-bg: rgba(255, 255, 255, .08);
  --notif-icon-color: #cbd5e1;
  --notif-order-bg: rgba(234, 88, 12, .16);
  --notif-order-color: #fdba74;
  --notif-whatsapp-bg: rgba(22, 163, 74, .16);
  --notif-whatsapp-color: #86efac;
  --notif-order-message-bg: rgba(37, 99, 235, .18);
  --notif-order-message-color: #93c5fd;
  --notif-title-color: #e5e7eb;
  --notif-text-color: #cbd5e1;
  --notif-detail-color: #d1d5db;
  --notif-muted-color: #94a3b8;
}

/* =========================================================
   02. Base del layout, autenticación y elementos generales
========================================================= */
.table tbody td, .dataTable tbody td, .dt-container table.dataTable tbody td {
    font-size: 0.8rem;
    text-wrap: auto;
}
.auth-main .auth-form .card {
  border: 0;
  box-shadow: 0 18px 45px rgba(19, 25, 32, 0.12);
}

.tienda-auth-logo {
  max-height: 72px;
  max-width: 220px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.tienda-auth-logo--brand {
  max-height: 96px;
  max-width: 220px;
}

.admin-brand-login .auth-main .auth-form .card {
  border-top: 3px solid var(--admin-brand-primary, #4680ff);
}

.admin-brand-login .btn-primary {
  --bs-btn-bg: var(--admin-brand-primary, #4680ff);
  --bs-btn-border-color: var(--admin-brand-primary, #4680ff);
  --bs-btn-hover-bg: color-mix(in srgb, var(--admin-brand-primary, #4680ff) 88%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--admin-brand-primary, #4680ff) 88%, #000);
}

.pc-sidebar .pc-navbar .pc-link {
  align-items: center;
}

.pc-sidebar .pc-micon i,
.pc-header .pc-head-link i {
  font-size: 20px;
}

.tienda-order-sound {
  gap: 8px;
}

.tienda-order-sound .form-check-input {
  cursor: pointer;
}

.tienda-page-note {
  border-left: 3px solid var(--bs-primary);
}

/* =========================================================
   03. Tablas simples / simple-datatables
========================================================= */

.pc-content .datatable-wrapper .datatable-top,
.pc-content .datatable-wrapper .datatable-bottom {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  padding: 0 0 16px;
}

.pc-content .datatable-wrapper .datatable-bottom {
  padding: 16px 0 0;
}

.pc-content .datatable-wrapper .datatable-selector,
.pc-content .datatable-wrapper .datatable-input {
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  color: var(--bs-body-color);
  min-height: 44px;
}

.pc-content .datatable-wrapper .datatable-selector {
  min-width: 82px;
  padding: 8px 32px 8px 12px;
}

.pc-content .datatable-wrapper .datatable-input {
  min-width: 220px;
  padding: 8px 14px;
}

.pc-content .datatable-wrapper .datatable-table {
  border-collapse: collapse;
  margin: 0;
  width: 100%;
}

.pc-content .datatable-wrapper .datatable-table thead th {
  background-color: var(--bs-body-bg);
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  padding: 13px 12px;
  text-transform: uppercase;
  vertical-align: middle;
}

.pc-content .datatable-wrapper .datatable-table tbody td {
  border-bottom: 1px solid var(--bs-border-color);
  padding: 13px 12px;
  vertical-align: middle;
}

.pc-content .datatable-wrapper .datatable-sorter,
.pc-content .datatable-wrapper .datatable-filter button,
.pc-content .datatable-wrapper .datatable-pagination button {
  appearance: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: inherit;
  font: inherit;
}

.pc-content .datatable-wrapper .datatable-sorter {
  display: inline-flex;
  min-height: 20px;
  padding: 0 18px 0 0;
  position: relative;
  text-align: left;
  width: 100%;
}

.pc-content .datatable-wrapper .datatable-sorter::before,
.pc-content .datatable-wrapper .datatable-sorter::after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  content: "";
  height: 0;
  opacity: 0.35;
  position: absolute;
  right: 4px;
  width: 0;
}

.pc-content .datatable-wrapper .datatable-sorter::before {
  border-bottom: 4px solid currentColor;
  top: 5px;
}

.pc-content .datatable-wrapper .datatable-sorter::after {
  border-top: 4px solid currentColor;
  top: 12px;
}

.pc-content .datatable-wrapper .datatable-ascending .datatable-sorter::before,
.pc-content .datatable-wrapper .datatable-descending .datatable-sorter::after {
  opacity: 0.9;
}

.pc-content .datatable-wrapper .datatable-pagination-list {
  display: flex;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.pc-content .datatable-wrapper .datatable-pagination button {
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  color: var(--bs-body-color);
  min-width: 34px;
  padding: 6px 10px;
}

.pc-content .datatable-wrapper .datatable-pagination .datatable-active button,
.pc-content .datatable-wrapper .datatable-pagination button:hover {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.pc-content .datatable-wrapper .datatable-info {
  color: var(--bs-secondary-color);
  font-size: 13px;
}

/* =========================================================
   04. DataTables - pedidos / monitoreo
========================================================= */

.orders-page .dataTables_wrapper .row {
  align-items: center;
  row-gap: 12px;
}

.orders-page .dataTables_length select {
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  color: var(--bs-body-color);
  min-height: 40px;
  padding: 6px 28px 6px 10px;
}

.orders-page .dataTables_info {
  color: var(--bs-secondary-color);
  font-size: 13px;
  padding-top: 12px;
}

.orders-page .dataTables_paginate {
  display: flex;
  justify-content: flex-end;
  padding-top: 12px;
}

.orders-page .dataTables_paginate .pagination {
  gap: 4px;
  margin: 0;
}

.orders-page .dataTables_paginate .paginate_button a,
.orders-page .dataTables_paginate .paginate_button span,
.orders-page .dataTables_paginate .paginate_button {
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  color: var(--bs-body-color);
  display: inline-flex;
  min-width: 34px;
  padding: 6px 10px;
}

.orders-page .dataTables_paginate .paginate_button.active a,
.orders-page .dataTables_paginate .paginate_button a:hover,
.orders-page .dataTables_paginate .paginate_button.current,
.orders-page .dataTables_paginate .paginate_button:hover {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.orders-page table.dataTable thead th,
.orders-page table.dataTable thead td {
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  padding: 13px 12px;
  text-transform: uppercase;
}

.orders-page table.dataTable tbody td {
  border-bottom: 1px solid var(--bs-border-color);
  padding: 13px 12px;
  vertical-align: middle;
}

.table-responsive {
    overflow-x: visible;
}

/* =========================================================
   05. Contenedor avanzado de tablas administrativas
========================================================= */

.admin-table-shell {
  background: var(--bs-card-bg, var(--bs-body-bg));
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  overflow: visible;
}

.admin-table-toolbar {
  align-items: center;
  border-bottom: 1px solid var(--bs-border-color);
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  padding: 12px;
}

.admin-table-toolbar .btn {
  align-items: center;
  display: inline-flex;
  min-height: 34px;
  white-space: nowrap;
}

.admin-table-toolbar .badge {
  align-items: center;
  display: inline-flex;
  min-height: 28px;
}

.admin-table-columns-menu {
  max-height: min(420px, 70vh);
  min-width: 240px;
  overflow-y: auto;
}

.admin-table-column-option {
  align-items: center;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  gap: 8px;
  margin: 0;
  min-height: 34px;
  padding: 6px 8px;
}

.admin-table-column-option:hover {
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.admin-table-column-option .form-check-input {
  margin: 0;
}

.admin-table-shell.is-editing {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  box-shadow: 0 0 0 0.12rem rgba(var(--bs-primary-rgb), 0.08);
}

.admin-table-shell .admin-table-responsive {
  border-radius: 0 0 6px 6px;
}

body.admin-table-expanded {
  overflow: hidden;
}

.admin-table-shell.is-expanded {
  border-radius: 8px;
  bottom: 16px;
  box-shadow: 0 18px 48px rgba(19, 25, 32, 0.18);
  display: flex;
  flex-direction: column;
  left: 16px;
  position: fixed;
  right: 16px;
  top: 16px;
  z-index: 1080;
}

.admin-table-shell.is-expanded .admin-table-toolbar {
  flex: 0 0 auto;
}

.admin-table-shell.is-expanded .admin-table-responsive {
  flex: 1 1 auto;
  overflow: auto;
}

/* =========================================================
   06. Estados de pedidos y cotizaciones
========================================================= */

.orders-page .btn-status-order,
.orders-page .estado-dropdown .dropdown-item {
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  padding: 6px 10px;
}

.orders-page .estado-dropdown {
  max-height: 60vh;
  min-width: 230px;
  overflow-y: auto;
}

.orders-page .estado-dropdown .dropdown-item {
  cursor: pointer;
  margin-bottom: 3px;
  white-space: normal;
}

.orders-page .estado-dropdown .dropdown-item[style] {
  color: inherit !important;
}

.orders-page .estado-dropdown .estado-inactivo {
  cursor: not-allowed;
  opacity: 0.45;
}

.orders-page .btn-Pendiente,
.orders-page .btn-PresupuestoPendiente,
.orders-page .btn-PresupuestoCaducado {
  background-color: rgba(var(--bs-warning-rgb), 0.15);
  border-color: rgba(var(--bs-warning-rgb), 0.2);
  color: var(--bs-warning);
}

.orders-page .btn-Aprobado,
.orders-page .btn-PagoAprobado,
.orders-page .btn-Alistando {
  background-color: rgba(var(--bs-primary-rgb), 0.12);
  border-color: rgba(var(--bs-primary-rgb), 0.18);
  color: var(--bs-primary);
}

.orders-page .btn-Preparado,
.orders-page .btn-ParaRecoger,
.orders-page .btn-Encamino,
.orders-page .btn-EnServicio,
.orders-page .btn-Atendido {
  background-color: rgba(var(--bs-info-rgb), 0.14);
  border-color: rgba(var(--bs-info-rgb), 0.2);
  color: var(--bs-info);
}

.orders-page .btn-Completado,
.orders-page .btn-Calificacion,
.orders-page .btn-Entregado,
.orders-page .btn-Finalizado {
  background-color: rgba(var(--bs-success-rgb), 0.14);
  border-color: rgba(var(--bs-success-rgb), 0.2);
  color: var(--bs-success);
}

.orders-page .btn-Cancelado,
.orders-page .btn-Reembolsado,
.orders-page .btn-Fallido,
.orders-page .btn-PagoRechazado,
.orders-page .btn-PresupuestoRechazado {
  background-color: rgba(var(--bs-danger-rgb), 0.12);
  border-color: rgba(var(--bs-danger-rgb), 0.18);
  color: var(--bs-danger);
}

/* =========================================================
   07. Perfil, aliados y formularios relacionados
========================================================= */

.tienda-profile-avatar {
  height: 112px;
  object-fit: cover;
  width: 112px;
}

.aliados-logo {
  height: 40px;
  object-fit: contain;
  width: 40px;
}

.aliado-form .nav-tabs .nav-link {
  border-radius: 6px 6px 0 0;
  font-weight: 600;
}

.aliado-form .form-label {
  color: var(--bs-primary-color);
  font-size: 13px;
  font-weight: 600;
}

.aliado-form .form-control,
.aliado-form .form-select,
.aliado-form .input-group-text {
  border-radius: 6px;
}

.aliado-form .aliado-section-title {
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-body-color);
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 16px;
  padding-bottom: 8px;
  text-transform: uppercase;
}

.aliado-form .aliado-upload {
  align-items: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  display: flex;
  gap: 14px;
  padding: 12px;
}

.aliado-form .aliado-image-preview {
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  height: 72px;
  object-fit: contain;
  width: 92px;
}

.aliado-form .aliado-switch {
  align-items: center;
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  display: flex;
  gap: 10px;
  min-height: 46px;
  padding: 10px 12px 10px 44px;
}

.aliado-form .aliado-map-shell {
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  min-height: 220px;
  overflow: hidden;
}

.aliado-form .aliado-map-shell:empty {
  display: none;
}

.aliado-form .aliado-map-shell .pac-card {
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  box-shadow: none;
  margin: 12px;
  width: calc(100% - 24px);
}

.aliado-form .aliado-map-shell #map_mylocation {
  height: 360px;
}

.aliado-form .aliado-map-shell #pac-input-mylocation {
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  min-height: 40px;
}

.aliado-form .aliado-document {
  align-items: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  display: flex;
  gap: 14px;
  min-height: 122px;
  padding: 12px;
}

.aliado-form .aliado-doc-preview {
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  height: 88px;
  object-fit: cover;
  width: 88px;
}

.aliado-form .aliado-module-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.aliado-form .aliado-module-option {
  align-items: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  min-height: 56px;
  padding: 12px;
}

/* =========================================================
   08. Gestores, empresas y categorías
========================================================= */

.gestor-form .tab-pane {
  min-height: 220px;
}

.gestor-form #module-table th,
.gestor-form #module-table td {
  vertical-align: middle;
}

.gestor-form #module-table .form-control,
.gestor-form #module-table .form-select {
  min-width: 120px;
}

.gestor-form #module-table td:first-child .form-control {
  min-width: 220px;
}

.empresa-form .empresa-color-swatch {
  background: transparent;
  border: 0;
  height: 30px;
  padding: 0;
  width: 34px;
}

.category-form .category-upload {
  align-items: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  display: flex;
  gap: 14px;
  min-height: 112px;
  padding: 12px;
}

.category-form .category-upload .aliado-image-preview {
  height: 88px;
  width: 104px;
}

.category-form .nav-tabs .nav-link {
  font-size: 14px;
  font-weight: 500;
}

.category-form .category-attributes-table .category-order {
  max-width: 88px;
  min-width: 72px;
}

.category-form .category-attributes-table td {
  vertical-align: middle;
}

/* =========================================================
   09. Catálogo, productos y soporte modo oscuro
========================================================= */

.catalog-page .catalog-toolbar {
    background-color: var(--catalog-surface-bg);
    border: 1px solid var(--catalog-surface-border);
    border-radius: 8px;
    padding: 16px;
    color: var(--catalog-text-color);
    box-shadow: var(--catalog-surface-shadow);
}

.catalog-page .catalog-toolbar .form-control,
.catalog-page .catalog-toolbar .form-select,
.catalog-page .catalog-toolbar .input-group-text {
    background-color: var(--catalog-input-bg);
    border-color: var(--catalog-input-border);
    color: var(--catalog-text-color);
}

.catalog-page .catalog-toolbar .text-muted,
.catalog-page .catalog-toolbar small {
    color: var(--catalog-muted-color) !important;
}

.catalog-page .catalog-product-icon {
  align-items: center;
  background-color: var(--bs-primary-bg-subtle);
  border-radius: 6px;
  color: var(--bs-primary);
  display: inline-flex;
  flex: 0 0 34px;
  font-size: 18px;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.catalog-page .catalog-product-cell {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 240px;
}

.catalog-page .catalog-product-image {
  align-items: center;
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  color: var(--bs-secondary-color);
  display: inline-flex;
  flex: 0 0 48px;
  height: 48px;
  justify-content: center;
  overflow: hidden;
  width: 48px;
}

.catalog-page .catalog-product-image img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.catalog-page .catalog-product-image.is-empty {
  background-color: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  font-size: 22px;
}

.catalog-page .catalog-product-copy {
  display: grid;
  min-width: 0;
}

.catalog-page .catalog-product-title {
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalog-page .catalog-status {
  min-width: 118px;
  white-space: nowrap;
}

.catalog-page .form-switch .form-check-input {
  cursor: pointer;
}

.catalog-filter-card {
  background: var(--catalog-surface-bg);
  border: 1px solid var(--catalog-surface-border);
  border-radius: 16px;
  box-shadow: var(--catalog-surface-shadow);
  color: var(--catalog-text-color);
  padding: 16px;
}

.catalog-filter-card .form-control,
.catalog-filter-card .form-select,
.catalog-filter-card .input-group-text {
    background-color: var(--catalog-input-bg);
    border-color: var(--catalog-input-border);
    color: var(--catalog-text-color);
}

.catalog-filter-card .form-control::placeholder {
    color: var(--catalog-muted-color);
}

.catalog-filter-card .text-muted,
.catalog-filter-card small {
    color: var(--catalog-muted-color) !important;
}

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

.catalog-page .table th,
.catalog-page .table td {
    color: var(--catalog-text-color);
    border-color: var(--catalog-surface-border);
}

.catalog-page .table thead th {
    background-color: var(--catalog-surface-bg-soft);
    color: var(--catalog-muted-color);
}

.catalog-page .btn-light,
.catalog-page .btn-light-secondary {
    background-color: var(--catalog-surface-bg-soft) !important;
    border-color: var(--catalog-surface-border) !important;
    color: var(--catalog-text-color) !important;
}

/* =========================================================
   10. Importación y formulario de productos
========================================================= */

.product-import-page .card {
  position: relative;
}

.product-import-page .product-import-loader {
  align-items: center;
  background-color: rgba(var(--bs-body-bg-rgb), 0.72);
  bottom: 0;
  display: flex;
  justify-content: center;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 5;
}

.product-import-page .product-import-loader[hidden] {
  display: none;
}

.product-import-page #respuestaVistaPrev center {
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  padding: 18px;
}

.product-import-page #respuestaVistaPrev h2 {
  font-size: 16px !important;
  margin: 0;
}

.product-form .product-form-section {
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  margin-bottom: 18px;
  padding: 18px;
}

.product-form .product-form-section h6 {
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-heading-color);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 18px;
  padding-bottom: 10px;
  text-transform: uppercase;
}

.product-form .product-form-toggle {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-form .product-form-toggle .btn {
  min-height: 43px;
}

.product-form .product-form-option-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.product-form .product-form-radio-list {
  display: grid;
  gap: 10px;
}

.product-form .product-form-option {
  align-items: center;
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  display: flex;
  gap: 10px;
  min-height: 46px;
  padding: 10px 12px;
}

.product-form .product-form-option input {
  flex: 0 0 auto;
}

.product-form .product-tag-control {
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  padding: 8px;
}

.product-form .product-tag-control:focus-within {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.12);
}

.product-form .product-tag-control .form-control {
  border: 0;
  box-shadow: none;
  padding-left: 4px;
}

.product-form .product-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}

.product-form .product-tag {
  align-items: center;
  background-color: var(--bs-primary-bg-subtle);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: 6px;
  color: var(--bs-primary);
  display: inline-flex;
  font-size: 12px;
  font-weight: 600;
  gap: 6px;
  min-height: 28px;
  padding: 4px 8px;
}

.product-form .product-tag .ti {
  font-size: 14px;
}

.product-form .product-form-images {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.product-form .product-form-image {
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  padding: 12px;
}

.product-form .product-form-image-preview {
  align-items: center;
  background-color: var(--bs-tertiary-bg);
  border-radius: 6px;
  display: flex;
  height: 150px;
  justify-content: center;
  margin-bottom: 10px;
  overflow: hidden;
}

.product-form .product-form-image-preview img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.product-form .product-form-image-preview .ti {
  color: var(--bs-secondary-color);
  font-size: 34px;
}

.product-form .product-banner-cropper {
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  max-height: 460px;
  overflow: hidden;
  padding: 10px;
}

.product-form .product-banner-cropper img {
  display: block;
  max-width: 100%;
}

.product-form .product-banner-live-preview,
.product-form .product-banner-current {
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  padding: 12px;
}

.product-form .product-banner-preview-box {
  aspect-ratio: 1170 / 330;
  background-color: var(--bs-tertiary-bg);
  border-radius: 6px;
  overflow: hidden;
  width: 100%;
}

.product-form .product-banner-current img {
  aspect-ratio: 1170 / 330;
  border-radius: 6px;
  display: block;
  object-fit: cover;
  width: 100%;
}

.product-form .product-banner-device-preview {
  height: 92px;
}

.product-form .product-attribute-list,
.product-form .product-template-list {
  display: grid;
  gap: 12px;
}

.product-form .product-attribute-item,
.product-form .product-template-item {
  background-color: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  padding: 14px;
}

.product-form .product-attribute-item .choices {
  margin-bottom: 0;
}

.product-form .product-attribute-item .choices__inner {
  background-color: var(--bs-body-bg);
  border-color: var(--bs-border-color);
  border-radius: 6px;
  min-height: 43px;
}

.product-form .product-template-heading {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-bottom: 12px;
}

.product-form .product-template-editor {
  min-height: 180px;
}

.product-form .product-faq-list {
  display: grid;
  gap: 12px;
}

.product-form .product-faq-item {
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  padding: 14px;
}

/* =========================================================
   11. Subadministradores y permisos
========================================================= */

.subadmin-form .subadmin-section-title {
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-heading-color);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 18px;
  padding-bottom: 10px;
  text-transform: uppercase;
}

.subadmin-form .subadmin-dependencies,
.subadmin-form .subadmin-permission-group {
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  overflow: hidden;
}

.subadmin-form .subadmin-dependencies.is-disabled {
  background-color: var(--bs-tertiary-bg);
}

.subadmin-form .subadmin-dependencies {
  padding: 16px;
}

.subadmin-form .subadmin-checkbox-grid {
  display: grid;
  gap: 10px 16px;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.subadmin-form .subadmin-permission-grid {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.subadmin-form .subadmin-permission-toggle {
  align-items: center;
  background-color: var(--bs-tertiary-bg);
  border: 0;
  color: var(--bs-body-color);
  display: flex;
  font-size: 14px;
  font-weight: 600;
  justify-content: space-between;
  min-height: 50px;
  padding: 12px 16px;
  text-align: left;
  width: 100%;
}

.subadmin-form .subadmin-permission-toggle[aria-expanded="true"] {
  background-color: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.subadmin-form .subadmin-permission-toggle.is-static {
  cursor: default;
}

.subadmin-form .subadmin-permission-toggle[aria-expanded="true"] .ti-chevron-down {
  transform: rotate(180deg);
}

.subadmin-form .subadmin-permission-options {
  display: grid;
  gap: 11px 18px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  padding: 16px;
}

.subadmin-page .subadmin-status {
  cursor: pointer;
}

/* =========================================================
   12. Aliados - DataTables
========================================================= */

.aliados-page .dataTables_wrapper .row {
  align-items: center;
  row-gap: 12px;
}

.aliados-page .dataTables_length select,
.aliados-page .dataTables_filter input {
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  color: var(--bs-body-color);
  min-height: 40px;
}

.aliados-page .dataTables_length select {
  padding: 6px 28px 6px 10px;
}

.aliados-page .dataTables_filter input {
  margin-left: 8px;
  padding: 6px 12px;
}

.aliados-page table.dataTable thead th,
.aliados-page table.dataTable thead td {
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  padding: 13px 12px;
  text-transform: uppercase;
}

.aliados-page table.dataTable tbody td {
  border-bottom: 1px solid var(--bs-border-color);
  padding: 13px 12px;
  vertical-align: middle;
}

.aliados-page .dataTables_info {
  color: var(--bs-secondary-color);
  font-size: 13px;
  padding-top: 12px;
}

.aliados-page .dataTables_paginate {
  display: flex;
  justify-content: flex-end;
  padding-top: 12px;
}

.aliados-page .dataTables_paginate .pagination {
  gap: 4px;
  margin: 0;
}

.aliados-page .dataTables_paginate .paginate_button a,
.aliados-page .dataTables_paginate .paginate_button span,
.aliados-page .dataTables_paginate .paginate_button {
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  color: var(--bs-body-color);
  display: inline-flex;
  min-width: 34px;
  padding: 6px 10px;
}

.aliados-page .dataTables_paginate .paginate_button.active a,
.aliados-page .dataTables_paginate .paginate_button a:hover,
.aliados-page .dataTables_paginate .paginate_button.current,
.aliados-page .dataTables_paginate .paginate_button:hover {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

/* =========================================================
   13. Centro de notificaciones
========================================================= */

.notifcenter-dropdown {
    width: 390px;
    max-width: calc(100vw - 24px);
}

.notifcenter-scroll {
    max-height: min(520px, calc(100vh - 170px));
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0;
}

.notifcenter-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    white-space: normal;
    padding: 11px 14px;
    border-bottom: 1px solid var(--notif-item-border);
}

.notifcenter-item:last-child {
    border-bottom: 0;
}

.notifcenter-item:hover {
    background: var(--notif-item-hover-bg);
}

.notifcenter-icon {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    background: var(--notif-icon-bg);
    color: var(--notif-icon-color);
}

.notifcenter-order .notifcenter-icon {
    background: var(--notif-order-bg);
    color: var(--notif-order-color);
}

.notifcenter-whatsapp .notifcenter-icon {
    background: var(--notif-whatsapp-bg);
    color: var(--notif-whatsapp-color);
}

.notifcenter-body {
    min-width: 0;
    flex: 1;
}

.notifcenter-body strong {
    display: block;
    font-size: 13px;
    color: var(--notif-title-color);
    line-height: 1.2;
}

.notifcenter-body small {
    display: block;
    font-size: 11px;
    color: var(--notif-text-color);
    line-height: 1.35;
    margin-top: 2px;
}

.notifcenter-body .notifcenter-detail {
    color: var(--notif-detail-color);
    margin-top: 4px;
}

.notifcenter-body .notifcenter-meta {
    color: var(--notif-muted-color);
    font-size: 10px;
    margin-top: 5px;
}

.notifcenter-item em {
    font-style: normal;
    font-size: 10px;
    color: var(--notif-muted-color);
    flex: 0 0 auto;
    margin-left: 4px;
}

.notifcenter-label {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 2px 7px;
    margin-bottom: 4px;
    border-radius: 999px;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 600;
    background: var(--notif-icon-bg);
    color: var(--notif-detail-color);
}

.notifcenter-order-message .notifcenter-icon {
    background: var(--notif-order-message-bg);
    color: var(--notif-order-message-color);
}

.notifcenter-order-system .notifcenter-icon {
    background: var(--notif-order-bg);
    color: var(--notif-order-color);
}

.notifcenter-readonly {
    cursor: default;
}

.notifcenter-readonly:hover {
    background: var(--notif-item-hover-bg);
}

.notifcenter-readonly .notifcenter-body strong {
    color: var(--notif-icon-color);
}

/* =========================================================
   14. Reglas globales para tablas en modo oscuro
========================================================= */

.table thead th,
.dataTable thead th,
.dt-container table.dataTable thead th {
    background-color: var(--admin-table-head-bg) !important;
    color: var(--admin-table-head-color) !important;
    border-color: var(--admin-table-head-border) !important;
}

/* Texto interno del TH */

.table thead th .dt-column-title,
.dataTable thead th .dt-column-title {
    color: var(--admin-table-head-color) !important;
}

/* Icono/flecha de ordenamiento */

.table thead th .dt-column-order,
.dataTable thead th .dt-column-order {
    color: var(--admin-table-head-color) !important;
    opacity: .75;
}

/* TD generales */

.table tbody td,
.dataTable tbody td,
.dt-container table.dataTable tbody td {
    background-color: var(--admin-table-body-bg) !important;
    color: var(--admin-table-body-color) !important;
    border-color: var(--admin-table-head-border) !important;
}

/* Hover */

.table tbody tr:hover td,
.dataTable tbody tr:hover td,
.dt-container table.dataTable tbody tr:hover td {
    background-color: var(--admin-table-row-hover-bg) !important;
}

/* Bordes de tabla */

.table,
.dataTable,
.dt-container table.dataTable {
    border-color: var(--admin-table-head-border) !important;
}

[data-pc-theme="dark"] .dt-container,
[data-pc-theme="dark"] .dt-scroll,
[data-pc-theme="dark"] .dt-scroll-head,
[data-pc-theme="dark"] .dt-scroll-body,
[data-bs-theme="dark"] .dt-container,
[data-bs-theme="dark"] .dt-scroll,
[data-bs-theme="dark"] .dt-scroll-head,
[data-bs-theme="dark"] .dt-scroll-body {
  background-color: transparent !important;
}

.menu-form-tabs .nav-link {
    font-weight: 600;
}

.menu-form-help {
    font-size: 12px;
    color: var(--bs-body-color);
}

.menu-form-card {
    border: 1px solid var(--notif-item-border);
    border-radius: 16px;
}

.menu-form-card .card-header {
    border-bottom: 1px solid var(--notif-item-border);
}

.menu-link-panel {
    border: 1px dashed var(--notif-item-border);
    border-radius: 14px;
    padding: 16px;
}

.menu-actions-sticky {
    position: sticky;
    bottom: 0;
    z-index: 5;
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--notif-item-border);
    
    padding: 14px 0 0;
    margin-top: 20px;
}

.horarios-page .horarios-section {
    border: 1px solid var(--bs-border-color);
    border-radius: 14px;
    padding: 16px;
    background: var(--bs-card-bg, var(--bs-body-bg));
}

.horarios-page .horarios-table th {
    white-space: nowrap;
    font-size: 12px;
    text-transform: uppercase;
}

.horarios-page .horarios-table input[type="time"] {
    min-width: 118px;
}

.horarios-page .form-check-input {
    cursor: pointer;
}



[data-pc-theme="dark"] .horarios-page .horarios-section,
[data-bs-theme="dark"] .horarios-page .horarios-section {
    background: var(--admin-table-body-bg, var(--bs-body-bg));
    border-color: var(--admin-table-head-border, var(--bs-border-color));
}

@media (max-width: 767.98px) {
    .horarios-page .horarios-section {
        padding: 12px;
    }
}

.payment-methods-page .payment-method-card,
.payment-methods-page .payment-transfer-item {
    background: var(--catalog-surface-bg, var(--bs-card-bg, var(--bs-body-bg)));
    border: 1px solid var(--catalog-surface-border, var(--bs-border-color));
    border-radius: 14px;
    padding: 16px;
}

.payment-methods-page .payment-transfer-item + .payment-transfer-item {
    margin-top: 12px;
}

.payment-methods-page .payment-method-logo {
    width: 76px;
    height: 56px;
    border-radius: 12px;
    border: 1px solid var(--catalog-surface-border, var(--bs-border-color));
    background: var(--catalog-surface-bg-soft, var(--bs-tertiary-bg));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex: 0 0 auto;
}

.payment-methods-page .payment-method-logo img {
    max-width: 92%;
    max-height: 80%;
    object-fit: contain;
}

.payment-methods-page .nav-tabs .nav-link {
    font-weight: 600;
}

[data-pc-theme="dark"] .payment-methods-page .form-control,
[data-pc-theme="dark"] .payment-methods-page .form-select,
[data-bs-theme="dark"] .payment-methods-page .form-control,
[data-bs-theme="dark"] .payment-methods-page .form-select {
    background-color: var(--catalog-input-bg, var(--bs-body-bg));
    border-color: var(--catalog-input-border, var(--bs-border-color));
    color: var(--catalog-text-color, var(--bs-body-color));
}


.store-appearance-page .appearance-section,
.store-appearance-page .appearance-preview,
.store-appearance-page .asset-status-card {
    background: var(--catalog-surface-bg, var(--bs-card-bg, var(--bs-body-bg)));
    border: 1px solid var(--catalog-surface-border, var(--bs-border-color));
    border-radius: 14px;
    padding: 16px;
    margin-bottom: 16px;
}

.store-appearance-page .appearance-section h6 {
    margin-bottom: 14px;
    font-weight: 700;
}

.store-appearance-page .form-control-color {
    width: 100%;
    height: 42px;
}

.store-appearance-page .appearance-preview {
    overflow: hidden;
    top: 90px;
}

.store-appearance-page .preview-topper,
.store-appearance-page .preview-header,
.store-appearance-page .preview-menu,
.store-appearance-page .preview-body,
.store-appearance-page .preview-footer,
.store-appearance-page .preview-copy {
    padding: 14px;
}

.store-appearance-page .preview-topper {
    text-align: center;
    font-size: 12px;
}

.store-appearance-page .preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.store-appearance-page .preview-logo {
    width: 90px;
    height: 42px;
    background: rgba(255,255,255,.18);
    color: #fff;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.store-appearance-page .preview-search {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    color: #fff;
}

.store-appearance-page .preview-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    background: var(--catalog-surface-bg-soft, #f8fafc);
}

.store-appearance-page .preview-body {
    background: var(--catalog-surface-bg-soft, #f8fafc);
}

.store-appearance-page .preview-card {
    background: var(--catalog-surface-bg, #fff);
    border: 1px solid var(--catalog-surface-border, #e5e7eb);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 12px;
}

.store-appearance-page .preview-mobile {
    border-radius: 12px;
    padding: 16px;
}

.store-appearance-page .preview-footer,
.store-appearance-page .preview-copy {
    text-align: center;
}

[data-pc-theme="dark"] .store-appearance-page .preview-menu,
[data-pc-theme="dark"] .store-appearance-page .preview-body,
[data-bs-theme="dark"] .store-appearance-page .preview-menu,
[data-bs-theme="dark"] .store-appearance-page .preview-body {
    background: rgba(255,255,255,.04);
}

.store-appearance-page .pwa-crop-shell {
    min-height: 360px;
    border: 1px dashed var(--bs-border-color);
    border-radius: 14px;
    background: var(--catalog-surface-bg-soft, #f8fafc);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.store-appearance-page .pwa-preview-box {
    width: 112px;
    height: 112px;
    border-radius: 22px;
    border: 1px solid var(--bs-border-color);
    background: var(--catalog-surface-bg-soft, #f8fafc);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.store-appearance-page .pwa-preview-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

[data-pc-theme="dark"] .store-appearance-page .pwa-crop-shell,
[data-pc-theme="dark"] .store-appearance-page .pwa-preview-box,
[data-bs-theme="dark"] .store-appearance-page .pwa-crop-shell,
[data-bs-theme="dark"] .store-appearance-page .pwa-preview-box {
    background: rgba(255, 255, 255, .04);
}

.store-appearance-page .pwa-current-card {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--catalog-surface-border, var(--bs-border-color));
    border-radius: 14px;
    padding: 12px;
    background: var(--catalog-surface-bg, var(--bs-body-bg));
}

.store-appearance-page .pwa-current-icon {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    border: 1px solid var(--catalog-surface-border, var(--bs-border-color));
    background: var(--catalog-surface-bg-soft, var(--bs-tertiary-bg));
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex: 0 0 auto;
}

.store-appearance-page .pwa-current-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.aliado-form .aliado-module-option.is-disabled,
.aliado-form .aliado-module-option.is-disabled-soft {
    opacity: .65;
}

.aliado-form .aliado-module-option.is-disabled {
    background: var(--bs-tertiary-bg);
}

.aliado-form .aliado-module-option small {
    max-width: 280px;
}

.aliado-form .aliado-module-grid.is-landing-readonly {
    opacity: .55;
    filter: grayscale(.25);
    pointer-events: none;
    position: relative;
}

.aliado-form .aliado-module-grid.is-landing-readonly .aliado-module-option {
    cursor: not-allowed;
}

.zonas-page .zonas-map {
    width: 100%;
    min-height: 640px;
    border-radius: 14px;
    border: 1px solid var(--bs-border-color);
    overflow: hidden;
}

.zonas-page .zonas-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.zonas-page #zones-list {
    max-height: 320px;
    overflow: auto;
}

[data-pc-theme="dark"] .zonas-page .zonas-map,
[data-bs-theme="dark"] .zonas-page .zonas-map {
    border-color: var(--bs-border-color);
}

.zonas-page .zonas-map {
    width: 100%;
    min-height: calc(100vh - 280px);
    height: calc(100vh - 280px);
    border-radius: 14px;
    border: 1px solid var(--bs-border-color);
    overflow: hidden;
}

.zonas-page .zonas-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.zonas-page .zonas-side-panel {
    position: sticky;
    top: 90px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    padding-right: 6px;
    padding-bottom: 16px;
}

.zonas-page .zonas-editor {
    position: static;
}

.zonas-page .zonas-editor .card-body {
    padding-bottom: 0;
}

.zonas-page #coordenadas_preview {
    min-height: 82px;
    resize: vertical;
}

.zonas-page .zonas-actions {
    position: sticky;
    bottom: 0;
    background: var(--bs-card-bg, #fff);
    border-top: 1px solid var(--bs-border-color);
    padding: 12px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    z-index: 5;
}

.zonas-page .zonas-list-card {
    margin-bottom: 16px;
}

.zonas-page #zones-list {
    max-height: 260px;
    overflow-y: auto;
}

[data-pc-theme="dark"] .zonas-page .zonas-actions,
[data-bs-theme="dark"] .zonas-page .zonas-actions {
    background: var(--bs-card-bg, #1f2937);
}

@media (max-width: 1199.98px) {
    .zonas-page .zonas-map {
        height: 520px;
        min-height: 520px;
    }

    .zonas-page .zonas-side-panel {
        position: static;
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }

    .zonas-page .zonas-actions {
        position: static;
    }
}

/* ==============================
   SIESA Explorer - Result Table
   ============================== */

.siesa-table-wrap,
#resultTableWrap {
    width: 100%;
    max-width: 100%;
}

.siesa-table-wrap.is-full-scroll {
    overflow-x: auto;
    overflow-y: hidden;
}

.siesa-table-wrap.is-compact {
    overflow-x: hidden;
}

#resultTable {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0;
}

.siesa-table-wrap.is-compact #resultTable {
    table-layout: fixed;
    min-width: 100% !important;
}

.siesa-table-wrap.is-full-scroll #resultTable {
    table-layout: auto;
    min-width: max-content;
}

#resultTable th,
#resultTable td {
    max-width: 280px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.siesa-table-wrap.is-compact #resultTable th,
.siesa-table-wrap.is-compact #resultTable td {
    max-width: none;
}

#resultTable td .siesa-cell-muted {
    max-width: 260px;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.siesa-table-wrap.is-compact #resultTable td .siesa-cell-muted {
    max-width: 100%;
}

#resultTable td:first-child,
#resultTable th:first-child,
.siesa-nowrap {
    white-space: nowrap;
}

/* Botón responsive de DataTables */
#resultTable td.dtr-control,
#resultTable th.dtr-control {
    max-width: none;
}

table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
    margin-right: .5rem;
}

/* DataTables wrapper - compatible con versiones viejas y nuevas */
.siesa-explorer-page .dataTables_wrapper,
.siesa-explorer-page .dt-container,
.siesa-explorer-page .dt-layout-table,
.siesa-explorer-page .dt-layout-cell,
.siesa-explorer-page .dataTables_scroll,
.siesa-explorer-page .dt-scroll {
    width: 100% !important;
    max-width: 100% !important;
}

.siesa-explorer-page .dataTables_wrapper,
.siesa-explorer-page .dt-container {
    overflow: hidden;
}

.siesa-explorer-page .dataTables_scrollBody,
.siesa-explorer-page .dt-scroll-body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
}

.siesa-explorer-page .dataTables_scrollHead,
.siesa-explorer-page .dt-scroll-head {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

/* Modal detalle de fila */
#rowDetailTable td {
    word-break: break-word;
    white-space: normal;
}

/* =========================================================
   Admin sidebar - submenu fallback responsive
   ========================================================= */

.pc-sidebar .pc-item.pc-hasmenu > .pc-submenu {
    display: none;
}

.pc-sidebar .pc-item.pc-hasmenu.pc-trigger > .pc-submenu,
.pc-sidebar .pc-item.pc-hasmenu.active.pc-trigger > .pc-submenu {
    display: block;
}

.pc-sidebar .pc-item.pc-hasmenu.pc-trigger > .pc-link .pc-arrow {
    transform: rotate(90deg);
}

.pc-sidebar .pc-item.pc-hasmenu > .pc-link .pc-arrow {
    transition: transform .18s ease;
}

@media (max-width: 1199.98px) {
    .pc-sidebar .pc-item.pc-hasmenu.pc-trigger > .pc-submenu {
        display: block !important;
        height: auto !important;
        max-height: none !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}

/* =========================================================
   15. Responsive
========================================================= */

@media (max-width: 767.98px) {
  .orders-page .dataTables_paginate {
    justify-content: flex-start;
  }
}

@media (max-width: 575.98px) {
    .notifcenter-dropdown {
        width: calc(100vw - 20px);
    }

    .notifcenter-scroll {
        max-height: calc(100vh - 145px);
    }
}

@media (max-width: 767.98px) {
  .aliado-form .aliado-upload,
  .aliado-form .aliado-document,
  .aliado-form .aliado-module-option {
    align-items: flex-start;
    flex-direction: column;
  }

  .aliados-page .dataTables_paginate {
    justify-content: flex-start;
  }
}

/* =========================================================
   V80.7.2 - Editor de favicon / icono PWA administrativo
========================================================= */
.admin-pwa-identity-card {
  background: var(--bs-tertiary-bg, #f8fafc);
  border: 1px solid var(--bs-border-color);
  border-radius: 14px;
  padding: 16px;
}

.admin-pwa-icon-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-pwa-icon-card {
  align-items: center;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  display: flex;
  gap: 12px;
  min-width: 0;
  padding: 12px;
}

.admin-pwa-icon-card small {
  color: var(--bs-secondary-color);
  display: block;
  margin-top: 2px;
}

.admin-pwa-icon-preview,
.admin-pwa-cropped-preview {
  align-items: center;
  background-color: #fff;
  background-image:
    linear-gradient(45deg, #eef1f5 25%, transparent 25%),
    linear-gradient(-45deg, #eef1f5 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #eef1f5 75%),
    linear-gradient(-45deg, transparent 75%, #eef1f5 75%);
  background-position: 0 0, 0 8px, 8px -8px, -8px 0;
  background-size: 16px 16px;
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  display: flex;
  flex: 0 0 auto;
  height: 64px;
  justify-content: center;
  overflow: hidden;
  width: 64px;
}

.admin-pwa-icon-preview img,
.admin-pwa-cropped-preview img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.admin-pwa-editor-panel {
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 14px;
  padding: 16px;
}

.admin-pwa-crop-shell {
  align-items: center;
  background-color: #f8fafc;
  background-image:
    linear-gradient(45deg, #e9edf3 25%, transparent 25%),
    linear-gradient(-45deg, #e9edf3 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #e9edf3 75%),
    linear-gradient(-45deg, transparent 75%, #e9edf3 75%);
  background-position: 0 0, 0 12px, 12px -12px, -12px 0;
  background-size: 24px 24px;
  border: 1px dashed var(--bs-border-color);
  border-radius: 12px;
  display: flex;
  justify-content: center;
  min-height: 360px;
  overflow: hidden;
}

.admin-pwa-crop-shell > img {
  display: block;
  max-height: 480px;
  max-width: 100%;
}

.admin-pwa-cropped-preview {
  height: 104px;
  width: 104px;
}

@media (max-width: 767.98px) {
  .admin-pwa-icon-grid {
    grid-template-columns: 1fr;
  }
  .admin-pwa-crop-shell {
    min-height: 280px;
  }
}

/* ============================================================
   V80.7.5 - Choices.js / AblePro dark-mode global consistency
   ============================================================ */
[data-pc-theme="dark"] .choices,
[data-bs-theme="dark"] .choices {
  --admin-choice-bg: var(--bs-body-bg, #111827);
  --admin-choice-bg-soft: var(--bs-tertiary-bg, #1f2937);
  --admin-choice-border: var(--bs-border-color, rgba(255,255,255,.14));
  --admin-choice-text: var(--bs-body-color, #e5e7eb);
  --admin-choice-muted: var(--bs-secondary-color, #9ca3af);
  --admin-choice-highlight: rgba(255,255,255,.075);
}

[data-pc-theme="dark"] .choices .choices__inner,
[data-bs-theme="dark"] .choices .choices__inner {
  background-color: var(--admin-choice-bg) !important;
  border-color: var(--admin-choice-border) !important;
  color: var(--admin-choice-text) !important;
}

[data-pc-theme="dark"] .choices .choices__list--single,
[data-pc-theme="dark"] .choices .choices__list--multiple,
[data-pc-theme="dark"] .choices .choices__item,
[data-bs-theme="dark"] .choices .choices__list--single,
[data-bs-theme="dark"] .choices .choices__list--multiple,
[data-bs-theme="dark"] .choices .choices__item {
  color: var(--admin-choice-text) !important;
}

[data-pc-theme="dark"] .choices .choices__input,
[data-bs-theme="dark"] .choices .choices__input {
  background-color: transparent !important;
  border-color: var(--admin-choice-border) !important;
  color: var(--admin-choice-text) !important;
  caret-color: var(--admin-choice-text) !important;
  -webkit-text-fill-color: var(--admin-choice-text) !important;
}

[data-pc-theme="dark"] .choices .choices__input::placeholder,
[data-bs-theme="dark"] .choices .choices__input::placeholder {
  color: var(--admin-choice-muted) !important;
  opacity: 1;
  -webkit-text-fill-color: var(--admin-choice-muted) !important;
}

[data-pc-theme="dark"] .choices .choices__list--dropdown,
[data-pc-theme="dark"] .choices .choices__list[aria-expanded],
[data-bs-theme="dark"] .choices .choices__list--dropdown,
[data-bs-theme="dark"] .choices .choices__list[aria-expanded] {
  background-color: var(--admin-choice-bg) !important;
  border-color: var(--admin-choice-border) !important;
  color: var(--admin-choice-text) !important;
}

[data-pc-theme="dark"] .choices .choices__list--dropdown .choices__item,
[data-pc-theme="dark"] .choices .choices__list[aria-expanded] .choices__item,
[data-bs-theme="dark"] .choices .choices__list--dropdown .choices__item,
[data-bs-theme="dark"] .choices .choices__list[aria-expanded] .choices__item {
  color: var(--admin-choice-text) !important;
}

[data-pc-theme="dark"] .choices .choices__list--dropdown .choices__item--selectable.is-highlighted,
[data-pc-theme="dark"] .choices .choices__list[aria-expanded] .choices__item--selectable.is-highlighted,
[data-bs-theme="dark"] .choices .choices__list--dropdown .choices__item--selectable.is-highlighted,
[data-bs-theme="dark"] .choices .choices__list[aria-expanded] .choices__item--selectable.is-highlighted {
  background-color: var(--admin-choice-highlight) !important;
  color: var(--admin-choice-text) !important;
}

[data-pc-theme="dark"] .choices .choices__heading,
[data-pc-theme="dark"] .choices .choices__placeholder,
[data-pc-theme="dark"] .choices .has-no-results,
[data-pc-theme="dark"] .choices .has-no-choices,
[data-bs-theme="dark"] .choices .choices__heading,
[data-bs-theme="dark"] .choices .choices__placeholder,
[data-bs-theme="dark"] .choices .has-no-results,
[data-bs-theme="dark"] .choices .has-no-choices {
  color: var(--admin-choice-muted) !important;
}

[data-pc-theme="dark"] .choices.is-disabled .choices__inner,
[data-bs-theme="dark"] .choices.is-disabled .choices__inner {
  background-color: var(--admin-choice-bg-soft) !important;
  opacity: .72;
}

[data-pc-theme="dark"] .choices .choices__input:-webkit-autofill,
[data-bs-theme="dark"] .choices .choices__input:-webkit-autofill {
  -webkit-text-fill-color: var(--admin-choice-text) !important;
  caret-color: var(--admin-choice-text) !important;
  transition: background-color 99999s ease-out 0s;
}
