@charset "UTF-8";.btn-group-xs>.btn,.btn-xs{border-radius:.2rem;font-size:.875rem;line-height:.5;padding:.25rem .4rem}.btn.btn-icon.btn-xs{align-items:center;border-radius:.1rem;display:inline-flex;font-size:10px;height:2.5em;justify-content:center;line-height:0em;width:2.5em}.dataTables_filter,.dataTables_info{display:none}

/* Chrome, Safari, Edge, Opera */input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Firefox */input[type=number]{-moz-appearance:textfield}#kt_body.blockui>.app-action-blockui-overlay,body.blockui>.app-action-blockui-overlay{inset:0;position:fixed;z-index:10000!important}#login-svg-bg{background-image:url(../media/svg/illustrations/login.svg)}a.menu-link.active{text-decoration-line:underline;text-decoration-thickness:2px}.auth-body{background-image:url(/media/patterns/simple_dashed.png)}.btn.btn-black{background-color:#181a1e;color:#e4e4e4}.menu-font{color:#6d6f74;font-size:20px}

/* Document type switch (Cotización / Contrato) */.document-type-switch{align-items:center;display:inline-flex;gap:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.document-type-switch .dt-option{color:var(--bs-text-muted,#a0a7c5);cursor:pointer;font-size:.95rem;font-weight:600;margin:0;transition:color .2s ease}.document-type-switch .dt-option.active{color:var(--bs-primary,#3e97ff)}.document-type-switch .dt-track{background-color:var(--bs-primary,#3e97ff);border-radius:26px;box-shadow:inset 0 1px 3px rgba(0,0,0,.18);cursor:pointer;display:inline-block;flex-shrink:0;height:26px;position:relative;transition:opacity .2s ease;width:52px}.document-type-switch .dt-track.is-disabled{cursor:not-allowed;opacity:.55}.document-type-switch .dt-track input[type=checkbox]{cursor:inherit;height:100%;inset:0;margin:0;opacity:0;position:absolute;width:100%;z-index:2}.document-type-switch .dt-thumb{background-color:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);height:20px;left:29px;pointer-events:none;position:absolute;top:3px;transition:left .25s ease;width:20px;z-index:1}.document-type-switch .dt-track input[type=checkbox]:checked~.dt-thumb{left:3px}

/* ============================================================
   Receipt action buttons (Imprimir / Enviar / Ver / Nuevo / Devolución / Editar)
   Used in pages/payments/events/show.blade.php and pages/payments/Suppliers/show.blade.php
   Goal: legible in light & dark themes without relying on Metronic's btn-light-* defaults.
   ============================================================ */.bk-receipt-actions .btn{border:1px solid transparent;font-weight:600;transition:background-color .15s ease,color .15s ease,border-color .15s ease}

/* --- Light theme: pastel backgrounds + saturated text --- */.bk-receipt-actions .btn-light-success{background-color:#d1fae5;border-color:rgba(16,185,129,.25);color:#047857}.bk-receipt-actions .btn-light-success:hover{background-color:#a7f3d0;color:#065f46}.bk-receipt-actions .btn-light-info{background-color:#ede9fe;border-color:rgba(139,92,246,.25);color:#6d28d9}.bk-receipt-actions .btn-light-info:hover{background-color:#ddd6fe;color:#5b21b6}.bk-receipt-actions .btn-light-primary{background-color:#dbeafe;border-color:rgba(59,130,246,.25);color:#1d4ed8}.bk-receipt-actions .btn-light-primary:hover{background-color:#bfdbfe;color:#1e40af}.bk-receipt-actions .btn-light-danger{background-color:#fee2e2;border-color:rgba(239,68,68,.25);color:#b91c1c}.bk-receipt-actions .btn-light-danger:hover{background-color:#fecaca;color:#991b1b}

/* --- Dark theme overrides: translucent bg + bright pastel text --- */[data-bs-theme=dark] .bk-receipt-actions .btn-light-success,[data-theme=dark] .bk-receipt-actions .btn-light-success{background-color:rgba(52,211,153,.16);border-color:rgba(52,211,153,.4);color:#6ee7b7}[data-bs-theme=dark] .bk-receipt-actions .btn-light-success:hover,[data-theme=dark] .bk-receipt-actions .btn-light-success:hover{background-color:rgba(52,211,153,.26);color:#a7f3d0}[data-bs-theme=dark] .bk-receipt-actions .btn-light-info,[data-theme=dark] .bk-receipt-actions .btn-light-info{background-color:rgba(139,92,246,.18);border-color:rgba(139,92,246,.4);color:#c4b5fd}[data-bs-theme=dark] .bk-receipt-actions .btn-light-info:hover,[data-theme=dark] .bk-receipt-actions .btn-light-info:hover{background-color:rgba(139,92,246,.28);color:#ddd6fe}[data-bs-theme=dark] .bk-receipt-actions .btn-light-primary,[data-theme=dark] .bk-receipt-actions .btn-light-primary{background-color:rgba(96,165,250,.18);border-color:rgba(96,165,250,.4);color:#93c5fd}[data-bs-theme=dark] .bk-receipt-actions .btn-light-primary:hover,[data-theme=dark] .bk-receipt-actions .btn-light-primary:hover{background-color:rgba(96,165,250,.28);color:#bfdbfe}[data-bs-theme=dark] .bk-receipt-actions .btn-light-danger,[data-theme=dark] .bk-receipt-actions .btn-light-danger{background-color:rgba(251,113,133,.18);border-color:rgba(251,113,133,.4);color:#fda4af}[data-bs-theme=dark] .bk-receipt-actions .btn-light-danger:hover,[data-theme=dark] .bk-receipt-actions .btn-light-danger:hover{background-color:rgba(251,113,133,.28);color:#fecaca}

/* Solid btn-success (Imprimir): suaviza un poco en oscuro para que no quede tan brillante */[data-bs-theme=dark] .bk-receipt-actions .btn-success,[data-theme=dark] .bk-receipt-actions .btn-success{background-color:#16a34a;border-color:#16a34a;color:#fff}[data-bs-theme=dark] .bk-receipt-actions .btn-success:hover,[data-theme=dark] .bk-receipt-actions .btn-success:hover{background-color:#15803d;border-color:#15803d}

/* ============================================================
   Scrollbars modernas globales
   Aplica a TODOS los scrolls verticales y horizontales de la app:
   barra delgada "flotante", thumb redondeado semi-transparente con
   track invisible. Color neutro (gris-azulado) legible en tema claro
   y oscuro. La cadena flex de los modales de pago ya existe aparte.
   Nota: los elementos que ocultan su scrollbar a propósito usan
   `scrollbar-width: none` / `::-webkit-scrollbar { display:none }` en su
   propio selector, que por especificidad gana sobre estas reglas, así
   que se siguen ocultando correctamente.
   ============================================================ */*{scrollbar-color:rgba(125,137,161,.55) transparent;scrollbar-width:thin}

/* WebKit / Blink (Chrome, Edge, Safari, Opera) */::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:rgba(125,137,161,.45);border:2px solid transparent;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-clip:padding-box;background-color:rgba(125,137,161,.75)}::-webkit-scrollbar-corner{background:transparent}

/* Tema oscuro: un poco más de contraste para que el thumb no se pierda */[data-bs-theme=dark],[data-theme=dark]{scrollbar-color:rgba(148,161,189,.5) transparent}[data-bs-theme=dark] ::-webkit-scrollbar-thumb,[data-theme=dark] ::-webkit-scrollbar-thumb{background-color:rgba(148,161,189,.42)}[data-bs-theme=dark] ::-webkit-scrollbar-thumb:hover,[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background-color:rgba(148,161,189,.72)}

/* Controles nativos en tema oscuro
   --------------------------------------------------------------------------
   El desplegable del <input type="date"> lo dibuja el navegador, no nuestro
   CSS: la unica palanca es color-scheme. Se declara en la raiz —igual que
   hace el bundle de datatables del tema— para que tambien sigan el tema los
   <select> nativos, las barras de scroll y el autocompletado. Declaramos el
   modo claro de forma explicita para que ahi no cambie nada. */:root{color-scheme:light}

/* Y se repite en los campos de fecha y hora, que es donde se nota: el popup
   hereda el color-scheme del elemento que lo abre. */:root[data-bs-theme=dark],:root[data-theme=dark],[data-bs-theme=dark] input[type=date],[data-bs-theme=dark] input[type=datetime-local],[data-bs-theme=dark] input[type=month],[data-bs-theme=dark] input[type=time],[data-bs-theme=dark] input[type=week],[data-theme=dark] input[type=date],[data-theme=dark] input[type=datetime-local],[data-theme=dark] input[type=month],[data-theme=dark] input[type=time],[data-theme=dark] input[type=week]{color-scheme:dark}

/* ---------------------------------------------------------------------------
   Flatpickr (selector global de fecha y hora, bkInitFlatpickr en factory.js).
   Su CSS base es blanco fijo y los estilos del tema no entran en el build: lo
   llevamos a las variables del tema para que se lea bien en claro y en oscuro.
   --------------------------------------------------------------------------- */.flatpickr-calendar{background:var(--kt-dropdown-bg);border:1px solid var(--kt-gray-200);border-radius:.65rem;box-shadow:var(--kt-dropdown-box-shadow)}.flatpickr-calendar:after,.flatpickr-calendar:before{display:none}.flatpickr-calendar.noCalendar{min-width:180px;padding:.35rem;width:auto}.flatpickr-calendar.noCalendar .flatpickr-time{border-top:0}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{fill:var(--kt-gray-800);color:var(--kt-gray-800)}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:var(--kt-primary)}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year{color:var(--kt-gray-800);font-weight:600}.flatpickr-current-month .flatpickr-monthDropdown-months{background:transparent}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background:var(--kt-dropdown-bg);color:var(--kt-gray-800)}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:var(--kt-component-hover-bg)}span.flatpickr-weekday{background:transparent;color:var(--kt-gray-600)}.flatpickr-day{border-radius:.475rem;color:var(--kt-gray-800)}.flatpickr-day:focus,.flatpickr-day:hover{background:var(--kt-component-hover-bg);border-color:transparent}.flatpickr-day.today{border-color:var(--kt-primary)}.flatpickr-day.inRange{background:var(--kt-primary-light);border-color:transparent;box-shadow:none}.flatpickr-day.endRange,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange:hover{background:var(--kt-primary);border-color:var(--kt-primary);color:var(--kt-primary-inverse)}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.prevMonthDay{background:transparent;color:var(--kt-gray-400)}.flatpickr-time{border-top:1px solid var(--kt-gray-200)}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator,.flatpickr-time input{color:var(--kt-gray-800);font-size:1.1rem;font-weight:600}.flatpickr-time .flatpickr-am-pm,.flatpickr-time input{border-radius:.475rem}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:var(--kt-component-hover-bg)}.flatpickr-time .numInputWrapper:hover{background:transparent}.flatpickr-calendar.hasTime .flatpickr-time{border-top-color:var(--kt-gray-200)}.numInputWrapper span{border-color:transparent}.numInputWrapper span:hover{background:transparent}.numInputWrapper span.arrowUp:after{border-bottom-color:var(--kt-gray-500)}.numInputWrapper span.arrowDown:after{border-top-color:var(--kt-gray-500)}.numInputWrapper span.arrowUp:hover:after{border-bottom-color:var(--kt-primary)}.numInputWrapper span.arrowDown:hover:after{border-top-color:var(--kt-primary)}

/* Selector rápido de mes y año (components/datepicker-month-year.js): el encabezado
   "Octubre 2026" es un botón y el panel de años y meses tapa los días mientras está
   abierto. Solo variables del tema, para que se lea igual en claro y en oscuro. */.flatpickr-calendar.bk-fp-my .flatpickr-current-month{align-items:center;display:flex;font-size:1rem;justify-content:center;padding:0}.flatpickr-calendar.bk-fp-my .flatpickr-current-month>:not(.bk-fp-title){display:none}.flatpickr-calendar.bk-fp-my .flatpickr-innerContainer{position:relative}.flatpickr-calendar.bk-fp-my.bk-fp-open .flatpickr-next-month,.flatpickr-calendar.bk-fp-my.bk-fp-open .flatpickr-prev-month{visibility:hidden}.flatpickr-calendar.bk-fp-my.bk-fp-open .bk-fp-title svg{transform:rotate(180deg)}.bk-fp-title{align-items:center;background:transparent;border:0;border-radius:.475rem;color:var(--kt-gray-800);cursor:pointer;display:inline-flex;font-size:1.15rem;font-weight:600;gap:.45rem;height:30px;line-height:1;padding:0 .75rem;transition:background-color .15s ease,color .15s ease;white-space:nowrap}.bk-fp-title svg{height:6px;transition:transform .2s ease;width:10px}.bk-fp-open .bk-fp-title,.bk-fp-title:focus-visible,.bk-fp-title:hover{background:var(--kt-component-hover-bg);color:var(--kt-primary);outline:0}.bk-fp-panel{animation:bk-fp-panel-in .15s ease;background:var(--kt-dropdown-bg);display:flex;flex-direction:column;gap:.6rem;inset:0;padding:.25rem .5rem .5rem;position:absolute;z-index:2}.bk-fp-panel[hidden]{display:none}.bk-fp-panel button{background:transparent;border:0;border-radius:.475rem;color:var(--kt-gray-800);cursor:pointer;font-weight:600;transition:background-color .15s ease,color .15s ease}.bk-fp-panel button:focus-visible,.bk-fp-panel button:hover:not(:disabled){background:var(--kt-component-hover-bg);color:var(--kt-primary);outline:0}.bk-fp-panel button.today{box-shadow:inset 0 0 0 1px var(--kt-primary)}.bk-fp-panel button.active,.bk-fp-panel button.active:hover{background:var(--kt-primary);color:var(--kt-primary-inverse)}.bk-fp-panel button:disabled{background:transparent;color:var(--kt-gray-400);cursor:default}.bk-fp-years{align-items:center;border-bottom:1px solid var(--kt-gray-200);display:flex;gap:.2rem;padding-bottom:.6rem}.bk-fp-years .bk-fp-year{flex:1 1 0;font-size:1.05rem;height:32px;min-width:0;padding:0}.bk-fp-years .bk-fp-nav{align-items:center;color:var(--kt-gray-500);display:flex;flex:0 0 28px;height:32px;justify-content:center;padding:0}.bk-fp-years .bk-fp-nav svg{fill:currentColor;height:12px;width:12px}.bk-fp-months{display:grid;flex:1;gap:.35rem;grid-auto-rows:1fr;grid-template-columns:repeat(3,1fr);min-height:0}.bk-fp-months .bk-fp-month{font-size:1.05rem;padding:0}@keyframes bk-fp-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
/* ---------------------------------------------------------------------------
   Calendario del dashboard (dashboard.js): el estado se distingue por la forma
   y no solo por el color, porque en "Todos mis salones" el color es el del salón.
   - Cotización: rayada en diagonal sobre su color.
   - Contrato completo: palomita antes de la hora; en "Todos mis salones", color
     del salón con una franja verde a la izquierda.
   - Mantenimiento: gris rayado (dashboard.blade.php); en "Todos mis salones",
     con una franja del color del salón a la izquierda.
   El nombre del salón va en una línea chica.
   --------------------------------------------------------------------------- */.fc .fc-event.event-quotation{background-image:repeating-linear-gradient(135deg,hsla(0,0%,100%,.24),hsla(0,0%,100%,.24) 7px,transparent 0,transparent 14px);text-shadow:0 1px 2px rgba(0,0,0,.35)}.fc .fc-event.event-strip{box-shadow:inset 4px 0 0 var(--event-strip-color,transparent);padding-left:4px}.fc .fc-event-check{color:#fff;font-size:.95em;margin-right:.3em}

/* Leyenda de estados: muestra la misma forma que el evento. En "Todos mis
   salones" usa el color de un salón (--cal-sample) en vez del de cada estado. */.cal-swatch{--cal-swatch-color:#3b82f6;align-items:center;background-color:var(--cal-swatch-color);border-radius:4px;color:#fff;display:inline-flex;flex-shrink:0;font-size:9px;height:16px;justify-content:center;width:16px}.cal-swatch.is-complete{--cal-swatch-color:#22c55e}.cal-swatch.is-quotation{--cal-swatch-color:#f59e0b}.cal-swatch.is-maintenance{--cal-swatch-color:#6b7280}.cal-swatch.is-maintenance,.cal-swatch.is-quotation{background-image:repeating-linear-gradient(135deg,hsla(0,0%,100%,.32),hsla(0,0%,100%,.32) 3px,transparent 0,transparent 6px)}.cal-status-legend.is-all-salons .cal-swatch:not(.is-maintenance){--cal-swatch-color:var(--cal-sample)}.cal-status-legend.is-all-salons .cal-swatch.is-maintenance{box-shadow:inset 3px 0 0 var(--cal-sample)}.cal-status-legend.is-all-salons .cal-swatch.is-complete{box-shadow:inset 3px 0 0 #22c55e}

/* Contenido de evento en renglones (hora, evento, salón), calendarios de eventos y de proveedores.
   FullCalendar pinta los eventos con hora como una fila flex: sin esto se leen por columnas y se cortan. */.fc .fc-daygrid-event:has(.bk-calendar-event){align-items:stretch!important;white-space:normal!important}.fc .fc-daygrid-event .fc-event-main:has(.bk-calendar-event){display:block!important;min-width:0;width:100%}.bk-calendar-event{align-items:stretch;display:flex;flex-direction:column;gap:2px;line-height:1.2;min-width:0;width:100%}.bk-calendar-event__time{display:block;font-weight:700;white-space:nowrap}.bk-calendar-event__details,.bk-calendar-event__salon{display:block;line-height:1.2;min-width:0;overflow-wrap:anywhere;white-space:normal!important;width:100%;word-break:normal}.bk-calendar-event__details{font-weight:600}.bk-calendar-event__salon{font-size:.78em;opacity:.85}.fc .fc-event-tag{background:hsla(0,0%,100%,.25);border-radius:.25rem;display:inline-block;font-size:.75em;font-weight:600;padding:0 .3em}

/* Calendario de proveedores: el mismo proveedor en dos eventos que se cruzan. */.fc .event-supplier-overlap{box-shadow:0 0 0 2px var(--bs-danger,#f1416c)}.fc .event-supplier-overlap .fc-event-tag{background:var(--bs-danger,#f1416c);color:#fff}

/* Servicios del proveedor: precio y costo editables en línea (tipo Excel). */.bk-inline-money{align-items:center;border-bottom:1px dashed rgba(var(--bs-primary-rgb),.45);border-radius:.4rem;cursor:pointer;display:inline-flex;gap:.35rem;padding:.15rem .4rem;transition:background-color .2s ease}.bk-inline-money:focus,.bk-inline-money:hover{background:rgba(var(--bs-primary-rgb),.1);outline:none}.bk-inline-money__icon{color:var(--bs-primary);font-size:.65rem;opacity:.45}.bk-inline-money:focus .bk-inline-money__icon,.bk-inline-money:hover .bk-inline-money__icon{opacity:1}.bk-inline-money.is-editing{background:transparent;border-bottom:0;padding:0}.bk-inline-money.is-saved{background:rgba(80,205,137,.22)}.bk-inline-input{min-width:6rem;width:8.5rem}

/* Importar servicios: zona para soltar o elegir el archivo (claro y oscuro). */.services-dropzone{align-items:center;background:rgba(var(--bs-primary-rgb),.04);border:2px dashed rgba(var(--bs-primary-rgb),.35);border-radius:1rem;cursor:pointer;display:flex;flex-direction:column;gap:.35rem;justify-content:center;min-height:9.5rem;padding:1.5rem 1.25rem;position:relative;text-align:center;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.services-dropzone:focus-within,.services-dropzone:hover{background:rgba(var(--bs-primary-rgb),.08);border-color:rgba(var(--bs-primary-rgb),.7)}.services-dropzone.is-dragover{background:rgba(var(--bs-primary-rgb),.14);border-color:var(--bs-primary);transform:scale(1.01)}

/* El input queda accesible por teclado, pero invisible. */.services-dropzone__input{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.services-dropzone__icon{align-items:center;background:rgba(var(--bs-primary-rgb),.14);border-radius:50%;color:var(--bs-primary);display:inline-flex;font-size:1.4rem;height:3.25rem;justify-content:center;margin-bottom:.35rem;width:3.25rem}.services-dropzone__title{color:var(--bs-gray-800);font-size:1rem;font-weight:600;word-break:break-word}.services-dropzone__hint{color:var(--bs-gray-500);font-size:.82rem}.services-dropzone__clear{position:absolute;right:.75rem;top:.75rem}.services-dropzone.has-file{background:rgba(80,205,137,.08);border-color:rgba(80,205,137,.55);border-style:solid}.services-dropzone.has-file .services-dropzone__icon{background:rgba(80,205,137,.18);color:#50cd89}
