/**
 * Obsidian Lux — formularios (Fase 2)
 */

html[data-theme="obsidian-lux"] .form-label,
html[data-theme="obsidian-lux"] .saas-label,
html[data-theme="obsidian-lux"] label:not(.btn):not(.form-check-label) {
  color: var(--text-secondary);
  font-weight: 500;
}

html[data-theme="obsidian-lux"] .form-check-label {
  color: var(--text-secondary);
}

html[data-theme="obsidian-lux"] .form-control,
html[data-theme="obsidian-lux"] .form-select,
html[data-theme="obsidian-lux"] textarea.form-control,
html[data-theme="obsidian-lux"] .saas-input,
html[data-theme="obsidian-lux"] .saas-select {
  background-color: var(--bg-input);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  color: var(--text-primary);
}

html[data-theme="obsidian-lux"] .form-control::placeholder,
html[data-theme="obsidian-lux"] textarea.form-control::placeholder {
  color: var(--text-muted);
}

html[data-theme="obsidian-lux"] .form-control:focus,
html[data-theme="obsidian-lux"] .form-select:focus,
html[data-theme="obsidian-lux"] textarea.form-control:focus,
html[data-theme="obsidian-lux"] .saas-input:focus,
html[data-theme="obsidian-lux"] .saas-select:focus {
  border-color: var(--accent-primary);
  box-shadow: var(--focus-ring);
  background-color: var(--bg-input);
  color: var(--text-primary);
}

html[data-theme="obsidian-lux"] .form-control:disabled,
html[data-theme="obsidian-lux"] .form-select:disabled,
html[data-theme="obsidian-lux"] textarea.form-control:disabled,
html[data-theme="obsidian-lux"] .form-control[readonly],
html[data-theme="obsidian-lux"] textarea.form-control[readonly] {
  background-color: color-mix(in srgb, var(--bg-input) 72%, var(--bg-main));
  border-color: var(--border-primary);
  color: var(--text-muted);
}

html[data-theme="obsidian-lux"] .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

html[data-theme="obsidian-lux"] .form-select option {
  background-color: var(--bg-elevated);
  color: var(--text-primary);
}

html[data-theme="obsidian-lux"] .form-check-input {
  background-color: #1e293b;
  border-color: var(--border-strong);
}

html[data-theme="obsidian-lux"] .form-check-input:checked {
  background-color: var(--accent-primary);
  border-color: var(--accent-primary);
}

html[data-theme="obsidian-lux"] .form-check-input:focus {
  border-color: var(--accent-primary);
  box-shadow: var(--focus-ring);
}

html[data-theme="obsidian-lux"] .form-check-input:disabled {
  background-color: color-mix(in srgb, var(--bg-input) 65%, var(--bg-main));
  border-color: var(--border-primary);
  opacity: 0.45;
}

/* Switches / toggles (disponibilidad, configuración) */
html[data-theme="obsidian-lux"] .form-switch .form-check-input,
html[data-theme="obsidian-lux"] .saas-switch-input {
  background-color: #1e293b;
  border-color: var(--border-strong);
}

html[data-theme="obsidian-lux"] .form-switch .form-check-input:checked,
html[data-theme="obsidian-lux"] .saas-switch-input:checked {
  background-color: var(--accent-primary);
  border-color: var(--accent-primary);
}

html[data-theme="obsidian-lux"] .form-switch .form-check-input:focus,
html[data-theme="obsidian-lux"] .saas-switch-input:focus-visible + .saas-switch-slider {
  box-shadow: var(--focus-ring);
}

html[data-theme="obsidian-lux"] .saas-switch-slider {
  background-color: #1e293b;
}

html[data-theme="obsidian-lux"] .saas-switch-input:checked + .saas-switch-slider {
  background-color: var(--accent-primary);
}

html[data-theme="obsidian-lux"] .saas-switch-slider::after {
  background-color: #ffffff;
}

html[data-theme="obsidian-lux"] .cfg-social-switch-input:checked + .cfg-social-switch__track {
  background: var(--accent-primary);
  border-color: color-mix(in srgb, var(--accent-primary) 35%, transparent);
}

html[data-theme="obsidian-lux"] .cfg-social-switch__track {
  background: #1e293b;
  border-color: var(--border-strong);
}

html[data-theme="obsidian-lux"] .cfg-social-switch__thumb {
  background: #ffffff;
}

html[data-theme="obsidian-lux"] .form-text,
html[data-theme="obsidian-lux"] .form-hint {
  color: var(--text-muted);
}

html[data-theme="obsidian-lux"] .input-group-text {
  background-color: var(--bg-elevated);
  border-color: var(--border-strong);
  color: var(--text-secondary);
}

html[data-theme="obsidian-lux"] .input-group > .form-control:focus,
html[data-theme="obsidian-lux"] .input-group > .form-select:focus {
  z-index: 3;
}

html[data-theme="obsidian-lux"] .form-control.is-invalid,
html[data-theme="obsidian-lux"] .form-select.is-invalid {
  border-color: var(--danger);
  color: var(--text-primary);
}

html[data-theme="obsidian-lux"] .form-control.is-valid,
html[data-theme="obsidian-lux"] .form-select.is-valid {
  border-color: var(--success);
  color: var(--text-primary);
}

html[data-theme="obsidian-lux"] .invalid-feedback {
  color: color-mix(in srgb, var(--danger) 75%, var(--text-primary));
}

html[data-theme="obsidian-lux"] .valid-feedback {
  color: color-mix(in srgb, var(--success) 70%, var(--text-primary));
}

html[data-theme="obsidian-lux"] .form-floating > label {
  color: var(--text-muted);
}

html[data-theme="obsidian-lux"] .form-floating > .form-control:focus ~ label,
html[data-theme="obsidian-lux"] .form-floating > .form-control:not(:placeholder-shown) ~ label,
html[data-theme="obsidian-lux"] .form-floating > .form-select ~ label {
  color: var(--text-secondary);
}

/* —— File inputs — premium dark (productos, config, popup, factura) —— */
html[data-theme="obsidian-lux"] input[type="file"].form-control,
html[data-theme="obsidian-lux"] input[type="file"] {
  background-color: var(--bg-input);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  color: var(--text-secondary);
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

html[data-theme="obsidian-lux"] input[type="file"].form-control::file-selector-button,
html[data-theme="obsidian-lux"] input[type="file"]::file-selector-button {
  margin-right: 0.75rem;
  padding: 0.38rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--accent-primary) 42%, var(--border-strong));
  border-radius: 8px;
  background: linear-gradient(145deg, var(--bg-elevated), var(--bg-card));
  color: var(--cta-text);
  font-weight: 600;
  font-size: 0.8125rem;
  cursor: pointer;
  transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

html[data-theme="obsidian-lux"] input[type="file"]::-webkit-file-upload-button {
  margin-right: 0.75rem;
  padding: 0.38rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--accent-primary) 42%, var(--border-strong));
  border-radius: 8px;
  background: linear-gradient(145deg, var(--bg-elevated), var(--bg-card));
  color: var(--cta-text);
  font-weight: 600;
  font-size: 0.8125rem;
  cursor: pointer;
}

html[data-theme="obsidian-lux"] input[type="file"].form-control::file-selector-button:hover,
html[data-theme="obsidian-lux"] input[type="file"]::file-selector-button:hover,
html[data-theme="obsidian-lux"] input[type="file"]::-webkit-file-upload-button:hover {
  border-color: var(--accent-primary);
  background: var(--bg-card-hover);
  color: var(--cta-text-hover);
}

html[data-theme="obsidian-lux"] input[type="file"]:focus,
html[data-theme="obsidian-lux"] input[type="file"].form-control:focus {
  border-color: var(--accent-primary);
  box-shadow: var(--focus-ring);
  outline: none;
}

html[data-theme="obsidian-lux"] input[type="file"]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

html[data-theme="obsidian-lux"] .agenda-empleado-msg {
  color: var(--olx-text-secondary);
  font-size: 1.05rem;
}

html[data-theme="obsidian-lux"] .crud-admin-saas .form-label,
html[data-theme="obsidian-lux"] .crud-admin-saas .saas-label,
html[data-theme="obsidian-lux"] .clientes-admin-saas .form-label,
html[data-theme="obsidian-lux"] .empleados-admin-saas .form-label,
html[data-theme="obsidian-lux"] .servicios-admin-saas .form-label,
html[data-theme="obsidian-lux"] .productos-admin-saas .form-label,
html[data-theme="obsidian-lux"] .productos-admin-saas .saas-label {
  color: var(--olx-text-secondary);
}

html[data-theme="obsidian-lux"] .crud-admin-saas .saas-subtitle,
html[data-theme="obsidian-lux"] .productos-admin-saas .saas-subtitle,
html[data-theme="obsidian-lux"] body.usuarios-admin-saas .text-muted,
html[data-theme="obsidian-lux"] body.historial-pagos-saas .text-muted,
html[data-theme="obsidian-lux"] body.caja-diaria-saas .text-muted,
html[data-theme="obsidian-lux"] body.facturar-admin-saas .text-muted {
  color: var(--olx-muted);
}

html[data-theme="obsidian-lux"] body.usuarios-admin-saas .form-label,
html[data-theme="obsidian-lux"] body.historial-pagos-saas .form-label,
html[data-theme="obsidian-lux"] body.caja-diaria-saas .form-label,
html[data-theme="obsidian-lux"] body.facturar-admin-saas .form-label {
  color: var(--olx-text-secondary);
}

html[data-theme="obsidian-lux"] body.facturar-admin-saas h1 {
  color: var(--olx-text);
}

/* Configuración formulario citas — coherencia Obsidian Lux */
html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-form-citas-intro,
html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-form-citas-intro.text-muted {
  color: var(--text-secondary) !important;
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-fc-panel {
  background: linear-gradient(
    165deg,
    color-mix(in srgb, var(--bg-card) 92%, var(--erp-cta-text, #ff5c7a) 8%) 0%,
    color-mix(in srgb, var(--bg-elevated) 88%, var(--bg-main) 12%) 100%
  );
  border-color: var(--border-primary);
  box-shadow: var(--shadow-card, 0 10px 32px rgba(0, 0, 0, 0.28));
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-fc-row {
  background: var(--bg-card);
  border-color: var(--border-strong);
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-fc-row__label {
  color: var(--text-primary);
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-fc-row__desc {
  color: var(--text-muted) !important;
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-fc-switch-label {
  color: var(--text-secondary);
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-fc-switch-group {
  background: var(--bg-input);
  border-color: var(--border-strong);
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-form-citas .cfg-social-switch--sm .cfg-social-switch__track {
  background: var(--bg-input) !important;
  border-color: var(--border-strong) !important;
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-form-citas .cfg-social-switch-input:checked + .cfg-social-switch__track {
  background: linear-gradient(135deg, #c2185b, var(--erp-cta-text, #ff5c7a)) !important;
  border-color: color-mix(in srgb, var(--erp-cta-text, #ff5c7a) 40%, transparent) !important;
  box-shadow: var(--focus-ring), 0 0 16px color-mix(in srgb, var(--erp-cta-text, #ff5c7a) 38%, transparent) !important;
}

html[data-theme="obsidian-lux"] .cfg-admin-page .cfg-fc-row--extend {
  border-color: color-mix(in srgb, var(--border-strong) 82%, var(--erp-cta-text, #ff5c7a) 18%);
}
