/* stylesReportes2026.css */
    :root {
      --primary: #af1e1e;
      --primary-light: #f63b3b;
      --primary-dark: #8a1e1e;
      --accent: #d40606;
      --success: #10b981;
      --warning: #f59e0b;
      --danger: #ef4444;
      --bg: #f9fafb;
      --card: #ffffff;
      --text: #111827;
      --text-muted: #6b7280;
      --border: #e5e7eb;
      --glass: rgba(255, 255, 255, 0.7);
      --radius: 12px;
      --shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
      --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.1);
      
      /* Colores de tabla - Modo claro (plano) */
      --table-header-bg: #a21414;
      --table-header-text: #D5DDE5;
      --table-row-hover: #4E5066;
      --table-row-alt: #EBEBEB;
      --table-border: #C1C3D1;
      --table-footer-bg: #f8fafc;
      --low-stock-bg: #fef2f2;
      --low-stock-text: #991b1b;

      /* Fila de totales/cálculos */
      --calc-row-bg: #1e293b;
      --calc-row-text: #f8fafc;
    }

    * { box-sizing: border-box; }

    html, body {
      height: 100%;
      margin: 0;
      padding: 0;
      background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--text);
      line-height: 1.6;
    }

    .container {
      max-width: 80%;
      margin: 0 auto;
      padding: 24px;
    }

    /* Header */
    header {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 24px;
      margin-bottom: 32px;
      align-items: start;
      animation: slideDown 0.5s ease-out;
    }

    @keyframes slideDown {
      from { opacity: 0; transform: translateY(-20px); }
      to { opacity: 1; transform: translateY(0); }
    }

   
    .header-content {
      display: flex;
      align-items: center;
      gap: 20px;
    }

    .logo-box {
      /* width: 164px; */
      height: 64px;
      border-radius: 14px;
      background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      font-weight: 700;
      font-size: 24px;
      box-shadow: 0 8px 24px rgba(175, 30, 30, 0.2);
      flex-shrink: 0;
      align-items: stretch;
    flex: auto;
    padding: 5px;
    }

    .header-text h1 {
      margin: 0;
      font-family: "Playfair Display", serif;
      font-size: 32px;
      font-weight: 700;
      color: var(--primary-dark);
    }

    .header-text p {
      margin: 4px 0 0 0;
      color: var(--text-muted);
      font-size: 14px;
    }

    .toolbar {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      align-items: center;
    }

    .search-box {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 16px;
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
      transition: all 0.2s ease;
    }

    .search-box:focus-within {
      box-shadow: 0 4px 16px rgba(30, 64, 175, 0.1);
      border-color: var(--primary);
    }

    .search-box input {
      border: none;
      background: transparent;
      outline: none;
      font-size: 14px;
      min-width: 200px;
      color: var(--text);
    }

    .search-box input::placeholder {
      color: var(--text-muted);
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 10px 16px;
      border: none;
      border-radius: 10px;
      font-weight: 500;
      font-size: 14px;
      cursor: pointer;
      transition: all 0.2s ease;
      text-decoration: none;
    }

    .btn:disabled {
      opacity: 0.5;
      cursor: not-allowed;
    }

    .btn-primary {
      background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
      color: white;
      box-shadow: 0 4px 12px rgba(175, 30, 30, 0.2);
    }

    .btn-primary:hover:not(:disabled) {
      transform: translateY(-2px);
      box-shadow: 0 6px 20px rgba(175, 30, 30, 0.3);
    }

    .btn-secondary {
      background: var(--card);
      color: var(--primary);
      border: 1px solid var(--border);
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    }

    .btn-secondary:hover:not(:disabled) {
      background: var(--bg);
      border-color: var(--primary);
    }

    .btn-icon {
      padding: 10px 12px;
    }

    /* Main Card */
    .main-card {
      background: var(--card);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 24px;
      border: 1px solid var(--border);
      animation: fadeIn 0.4s ease-out 0.1s both;
    }

    @keyframes fadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    /* Controls */
    .controls-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 20px;
      flex-wrap: wrap;
    }

    .groupby-wrapper {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .groupby-wrapper label {
      font-weight: 500;
      color: var(--text-muted);
      font-size: 14px;
    }

    .groupby-wrapper select {
      padding: 8px 12px;
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 14px;
      color: var(--text);
      background: var(--card);
      cursor: pointer;
      transition: all 0.2s ease;
    }

    .groupby-wrapper select:focus {
      outline: none;
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(175, 30, 30, 0.1);
    }

    .stats {
      display: flex;
      gap: 16px;
      align-items: center;
      font-size: 14px;
      color: var(--text-muted);
    }

    .stat-item {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .stat-item strong {
      color: var(--text);
    }

    /* Loader */
    .loader-wrap {
      display: none;
      margin-bottom: 20px;
      animation: fadeIn 0.3s ease-out;
    }

    .loader-bar {
      width: 100%;
      height: 4px;
      background: var(--border);
      border-radius: 10px;
      overflow: hidden;
    }

    .loader-progress {
      height: 100%;
      background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
      width: 0;
      transition: width 0.15s ease;
      border-radius: 10px;
    }

    .loader-text {
      font-size: 12px;
      color: var(--text-muted);
      margin-top: 6px;
    }

    /* Column Panel */
    .column-panel {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: rgba(0, 0, 0, 0.4);
      align-items: center;
      justify-content: center;
      z-index: 1000;
      animation: fadeIn 0.2s ease-out;
    }

    .column-panel.active {
      display: flex;
    }

    .column-panel-content {
      background: var(--card);
      padding: 24px;
      border-radius: var(--radius);
      max-width: 400px;
      width: 90%;
      box-shadow: var(--shadow-lg);
      max-height: 70vh;
      overflow-y: auto;
    }

    .column-panel-header {
      font-size: 16px;
      font-weight: 600;
      margin-bottom: 16px;
      color: var(--text);
    }

    .column-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .column-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px;
      border-radius: 8px;
      cursor: pointer;
      transition: all 0.2s ease;
    }

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

    .column-item input[type="checkbox"] {
      cursor: pointer;
      width: 18px;
      height: 18px;
      accent-color: var(--primary);
    }

    .column-item label {
      flex: 1;
      cursor: pointer;
      font-size: 14px;
      color: var(--text);
    }

    .column-panel-footer {
      display: flex;
      gap: 10px;
      margin-top: 20px;
      justify-content: flex-end;
    }

    /* Modal */
    .modal {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: rgba(0, 0, 0, 0.5);
      align-items: center;
      justify-content: center;
      z-index: 1100;
      animation: fadeIn 0.2s ease-out;
    }

    .modal.active {
      display: flex;
    }

    .modal-content {
      background: var(--card);
      padding: 32px;
      border-radius: var(--radius);
      max-width: 500px;
      width: 90%;
      box-shadow: var(--shadow-lg);
      animation: slideUp 0.3s ease-out;
    }

    @keyframes slideUp {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: translateY(0); }
    }

    .modal-header {
      font-size: 20px;
      font-weight: 600;
      margin-bottom: 16px;
      color: var(--text);
    }

    .modal-body {
      display: grid;
      gap: 12px;
      margin-bottom: 24px;
      color: var(--text-muted);
      font-size: 14px;
    }

    .modal-field {
      display: grid;
      gap: 4px;
    }

    .modal-field-label {
      font-weight: 600;
      color: var(--text);
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.5px;
    }

    .modal-field-value {
      color: var(--text);
      font-size: 15px;
    }

    .modal-footer {
      display: flex;
      gap: 10px;
      justify-content: flex-end;
    }

    /* ==================== TABULATOR ==================== */
    .tabulator {
      background: white;
      border-radius: 3px;
      border-collapse: collapse;
      box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
      border: none;
      font-size: 16px;
    }

    .tabulator .tabulator-header {
      background: var(--table-header-bg);
      border-bottom: 4px solid #9ea7af;
    }

    .tabulator .tabulator-header .tabulator-col {
      font-weight: 100;
      color: var(--table-header-text);
      padding: 24px;
      font-size: 18px;
      border-right: 1px solid #343a45;
      background: transparent;
      text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
    }

    .tabulator .tabulator-header .tabulator-col:last-child {
      border-right: none;
    }

    .tabulator .tabulator-header .tabulator-col:hover {
      background: rgba(255, 255, 255, 0.05);
    }

    .tabulator .tabulator-header .tabulator-col .tabulator-col-content {
      padding: 0;
    }

    .tabulator .tabulator-tableholder .tabulator-table {
      background: white;
    }

    .tabulator .tabulator-row {
      border-top: 1px solid var(--table-border);
      background: #FFFFFF;
      color: #666B85;
      text-shadow: 0 1px 1px rgba(256, 256, 256, 0.1);
    }

    .tabulator .tabulator-row:nth-child(odd) {
      background: var(--table-row-alt);
    }

    .tabulator .tabulator-row:nth-child(even) {
      background: #FFFFFF;
    }

    .tabulator .tabulator-row:hover {
      background: var(--table-row-hover) !important;
    }

    .tabulator .tabulator-row:hover .tabulator-cell {
      color: #FFFFFF !important;
      border-top: 1px solid #22262e;
    }

    .tabulator .tabulator-row .tabulator-cell {
      padding: 20px;
      border-right: 1px solid var(--table-border);
      color: #666B85;
      font-weight: 300;
      font-size: 16px;
      text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.1);
    }

    .tabulator .tabulator-row .tabulator-cell:last-child {
      border-right: none;
    }

    .tabulator .tabulator-footer {
      background: var(--card);
      border-top: 1px solid var(--table-border);
      padding: 8px;
      font-size: 13px;
      color: var(--text-muted);
    }

    .tabulator .tabulator-footer .tabulator-page {
      background: var(--card);
      color: var(--primary);
      border: 1px solid var(--table-border);
      border-radius: 3px;
      padding: 4px 10px;
      cursor: pointer;
      font-weight: 500;
    }

    .tabulator .tabulator-footer .tabulator-page:hover {
      background: var(--primary);
      color: white;
      border-color: var(--primary);
    }

    .tabulator .tabulator-footer .tabulator-page.active {
      background: var(--primary);
      color: white;
      border-color: var(--primary);
    }

    /* Bajo stock */
    .low-stock {
      background: var(--low-stock-bg) !important;
    }

    .low-stock .tabulator-cell {
      color: var(--low-stock-text) !important;
    }

    /* Fila de totales/cálculos */
    .tabulator .tabulator-calcs-bottom {
      background: var(--calc-row-bg) !important;
      border-top: 1px solid var(--table-border);
    }

    .tabulator .tabulator-calcs-bottom .tabulator-row {
      background: transparent !important;
    }

    .tabulator .tabulator-calcs-bottom .tabulator-cell {
      color: var(--calc-row-text) !important;
      font-weight: 600;
      font-size: 13px;
      padding: 10px 8px;
    }

    /* Toast notification */
    .toast {
      position: fixed;
      bottom: 24px;
      right: 24px;
      background: var(--card);
      padding: 16px 20px;
      border-radius: 10px;
      box-shadow: var(--shadow-lg);
      border-left: 4px solid var(--success);
      z-index: 2000;
      display: none;
      animation: slideInRight 0.3s ease-out;
      max-width: 300px;
      color: var(--text);
    }

    .toast.show {
      display: block;
    }

    .toast.error {
      border-left-color: var(--danger);
    }

    .toast.warning {
      border-left-color: var(--warning);
    }

    @keyframes slideInRight {
      from { opacity: 0; transform: translateX(100px); }
      to { opacity: 1; transform: translateX(0); }
    }

    /* Responsive */
    @media (max-width: 768px) {
      .container {
        padding: 16px;
      }

      header {
        grid-template-columns: 1fr;
      }

      .header-text h1 {
        font-size: 24px;
      }

      .toolbar {
        width: 100%;
        flex-direction: column;
      }

      .search-box {
        width: 100%;
      }

      .search-box input {
        min-width: 0;
        flex: 1;
      }

      .controls-row {
        flex-direction: column;
        align-items: stretch;
      }

      .groupby-wrapper {
        width: 100%;
      }

      .stats {
        justify-content: center;
      }

      .btn {
        flex: 1;
        width: 100%;
      }

      .btn-icon {
        flex: 0;
      }

      .tabulator {
        font-size: 12px;
      }

      .tabulator .tabulator-row .tabulator-cell {
        padding: 8px;
      }

      .logo-box {
           width: auto;
            height: 60px;
            padding: 5px;
      }
    }

    .spinner {
  width: 20px;
  height: 20px;
  border: 3px solid #ccc;
  border-top-color: #3498db;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  display: inline-block;
  margin-right: 8px;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}


    /* ==================== MODO OSCURO ==================== */
    body.dark-mode {
      background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
      --bg: #0f172a;
      --card: #1e293b;
      --text: #f1f5f9;
      --text-muted: #94a3b8;
      --border: #334155;
      
      /* Colores de tabla - Modo oscuro (plano) */
      --table-header-bg: #334155;
      --table-header-text: #e2e8f0;
      --table-row-hover: #334155;
      --table-row-alt: #263548;
      --table-border: #475569;
      --table-footer-bg: #1e293b;
      --low-stock-bg: #3b1111;
      --low-stock-text: #fca5a5;

      /* Fila de totales/cálculos - Modo oscuro */
      --calc-row-bg: #0f172a;
      --calc-row-text: #e2e8f0;
    }

    body.dark-mode .header-text h1 {
      color: #e2e8f0;
    }

    body.dark-mode .btn-secondary {
      background: var(--card);
      color: var(--primary-light);
      border-color: var(--border);
    }

    body.dark-mode .btn-secondary:hover:not(:disabled) {
      background: #334155;
      border-color: var(--primary-light);
    }

    body.dark-mode .search-box {
      background: var(--card);
      border-color: var(--border);
    }

    body.dark-mode .search-box input {
      color: var(--text);
    }

    body.dark-mode .search-box input::placeholder {
      color: var(--text-muted);
    }

    /* Tabulator - Modo oscuro */
    body.dark-mode .tabulator {
      background: var(--card);
      border: none;
      box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    }

    body.dark-mode .tabulator .tabulator-header {
      background: var(--table-header-bg);
      border-bottom: 4px solid #9ea7af;
    }

    body.dark-mode .tabulator .tabulator-header .tabulator-col {
      color: var(--table-header-text);
      border-right: 1px solid #343a45;
    }

    body.dark-mode .tabulator .tabulator-header .tabulator-col:last-child {
      border-right: none;
    }

    body.dark-mode .tabulator .tabulator-header .tabulator-col:hover {
      background: rgba(255, 255, 255, 0.05);
    }

    body.dark-mode .tabulator .tabulator-tableholder .tabulator-table {
      background: var(--card);
    }

    body.dark-mode .tabulator .tabulator-row {
      background: var(--card);
      border-top: 1px solid var(--table-border);
    }

    body.dark-mode .tabulator .tabulator-row:nth-child(odd) {
      background: var(--table-row-alt);
    }

    body.dark-mode .tabulator .tabulator-row:nth-child(even) {
      background: var(--card);
    }

    body.dark-mode .tabulator .tabulator-row:hover {
      background: var(--table-row-hover) !important;
    }

    body.dark-mode .tabulator .tabulator-row:hover .tabulator-cell {
      color: #FFFFFF !important;
    }

    body.dark-mode .tabulator .tabulator-row .tabulator-cell {
      color: var(--text);
      border-right: 1px solid var(--table-border);
    }

    body.dark-mode .tabulator .tabulator-row .tabulator-cell:last-child {
      border-right: none;
    }

    body.dark-mode .tabulator .tabulator-footer {
      background: var(--table-footer-bg);
      border-top-color: var(--table-border);
      color: var(--text-muted);
    }

    body.dark-mode .tabulator .tabulator-footer .tabulator-page {
      background: var(--card);
      color: var(--primary-light);
      border-color: var(--table-border);
    }

    body.dark-mode .tabulator .tabulator-footer .tabulator-page:hover {
      background: var(--primary);
      color: white;
      border-color: var(--primary);
    }

    body.dark-mode .tabulator .tabulator-footer .tabulator-page.active {
      background: var(--primary);
      color: white;
    }

    /* Low stock en modo oscuro */
    body.dark-mode .low-stock {
      background: var(--low-stock-bg) !important;
    }

    body.dark-mode .low-stock .tabulator-cell {
      color: var(--low-stock-text) !important;
    }

    /* Fila de totales en modo oscuro */
    body.dark-mode .tabulator .tabulator-calcs-bottom {
      background: var(--calc-row-bg) !important;
    }

    body.dark-mode .tabulator .tabulator-calcs-bottom .tabulator-cell {
      color: var(--calc-row-text) !important;
      border-right-color: rgba(255, 255, 255, 0.05);
    }

    /* Modales en modo oscuro */
    body.dark-mode .column-panel-content,
    body.dark-mode .modal-content {
      background: var(--card);
      color: var(--text);
    }

    body.dark-mode .column-item:hover {
      background: #334155;
    }

    body.dark-mode .column-item label,
    body.dark-mode .modal-field-label,
    body.dark-mode .modal-field-value {
      color: var(--text);
    }

    body.dark-mode .toast {
      background: var(--card);
      color: var(--text);
    }

    /* Loading state */
    .loading-skeleton {
      background: linear-gradient(90deg, var(--border) 25%, #d1d5db 50%, var(--border) 75%);
      background-size: 200% 100%;
      animation: loading 1.5s infinite;
    }

    @keyframes loading {
      0% { background-position: 200% 0; }
      100% { background-position: -200% 0; }
    }
  

    
   .loaderInicial{
      display: block;
      position: relative;
      height: auto;
      width: 100%;
      border: 1px solid #fff;
      border-radius: 10px;
      overflow: hidden;
      font-size: large;
    }
    .loaderInicial::after {
      content: '';
      width: 40%;
      height: 100%;
      background: #FF3D00;
      position: absolute;
      top: 0;
      left: 0;
      box-sizing: border-box;
      animation: animloader 2s linear infinite;
    }
    
    @keyframes animloader {
      0% {
        left: 0;
        transform: translateX(-100%);
      }
      100% {
        left: 100%;
        transform: translateX(0%);
      }
    }
    