.form-switches .switch{position:relative;display:inline-block;width:50px;height:24px;vertical-align:middle}.form-switches .switch input{opacity:0;width:0;height:0}.form-switches .switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:4px}.form-switches .switch .slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:2px}.form-switches .switch input:checked+.slider{background-color:#28a745}.form-switches .switch input:checked+.slider:before{transform:translateX(26px)}.form-switches .switch-label{display:block;margin-bottom:4px;font-weight:500}.report-box{max-width:var(--report-width,100%);margin:20px auto;padding:15px 18px;border:1px solid #ddd;border-radius:6px;background:#fff}.btn-touch{min-width:48px;min-height:48px;padding:8px;border-radius:12px;transition:all 0.2s ease;box-shadow:0 2px 4px rgb(0 0 0 / .1);touch-action:manipulation}.btn-touch:hover,.btn-touch:focus-visible{transform:scale(1.05);background-color:rgb(13 110 253 / .1);box-shadow:0 4px 10px rgb(0 0 0 / .2)}.btn-touch:active{transform:scale(.95);background-color:rgb(13 110 253 / .2)}.btn-pulse{position:relative;overflow:hidden}.btn-pulse::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgb(13 110 253 / .5);opacity:0;transition:all 0.3s ease;pointer-events:none}.btn-pulse:hover::after,.btn-pulse:active::after{opacity:1;animation:pulse 1.5s ease-out}.btn-touch:hover::after{mix-blend-mode:screen}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(13 110 253 / .5)}70%{box-shadow:0 0 0 10px #fff0}100%{box-shadow:0 0 0 0 #fff0}}.fila-efecto{position:relative;cursor:pointer;overflow:hidden;transition:background-color 0.2s ease,box-shadow 0.2s ease}.fila-efecto::before{content:"";position:absolute;inset:0;background-color:#fff0;transition:background-color 0.2s ease;z-index:-1}.fila-efecto:hover::before,.fila-efecto:focus-within::before{background-color:rgb(13 110 253 / .08)}.fila-efecto:hover{box-shadow:0 2px 6px rgb(0 0 0 / .1)}[data-bs-theme="dark"] .select2-dropdown{background-color:#212529;border-color:var(--bs-border-color)}[data-bs-theme="dark"] .select2-results__option{background-color:#212529;color:var(--bs-body-color)}[data-bs-theme="dark"] .select2-results__option--highlighted{background-color:var(--bs-primary);color:#fff}[data-bs-theme="dark"] .select2-results__option--selected{background-color:#343a40}[data-bs-theme="dark"] .select2-container--default .select2-selection--single{background-color:#212529;border-color:var(--bs-border-color);color:var(--bs-body-color)}.filtros-label{font-size:12px;color:#6b7280;font-weight:500;display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none}.filtros-label i{font-size:16px;color:#6366f1}.rango-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}.rango-pair .separator{display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:18px;padding-bottom:6px}.report-box{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px;box-shadow:0 4px 10px rgb(0 0 0 / .05);color:#1f2937;transition:.25s}.report-box:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgb(0 0 0 / .1)}.report-box .report-title{font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.report-box .report-text{font-size:13px;color:#6b7280}[data-bs-theme="dark"] .report-box{background:#2d2f33;border:1px solid #3a3d42;color:#e5e7eb;box-shadow:0 4px 10px rgb(0 0 0 / .4)}[data-bs-theme="dark"] .report-box .report-title{color:#f3f4f6}[data-bs-theme="dark"] .report-box .report-text{color:#9ca3af}
/* Inputs y selects en modo oscuro */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background: #1f2125;
  border: 1px solid #3a3d42;
  color: #e5e7eb;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  border-color: #818cf8;
  box-shadow: 0 0 0 2px rgba(129,140,248,.25);
}

/* Labels en modo oscuro */
[data-bs-theme="dark"] .form-label {
  color: #9ca3af;
}
