/* These styles are generated from project.scss. */

/* Estilos personalizados para proyecto Trauma */

/* Modern, geometric font stack - Satoshi for cutting-edge SaaS applications */
* {
  font-family: 'Satoshi', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* Minimalist base styles */
body {
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.01em;
}

/* Typography hierarchy */
h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.25;
}

/* Minimalist button styles */
button, .btn {
  font-weight: 500;
  letter-spacing: -0.01em;
}

/* ========================================
   GLOBAL CURSOR STYLES FOR INTERACTIVE ELEMENTS
   ======================================== */

/* All clickable elements should have pointer cursor */
button,
.btn,
a[href],
[role="button"],
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="file"],
input[type="checkbox"],
input[type="radio"],
select,
option,
[onclick],
[x-on\:click],
[hx-get],
[hx-post],
[hx-put],
[hx-patch],
[hx-delete],
[hx-boost],
[data-modal-target],
[data-modal-toggle],
[data-collapse-toggle],
[data-dropdown-toggle],
[data-tab-target],
.clickable,
.cursor-pointer {
  cursor: pointer !important;
}

/* Also apply to pseudo-elements and specific use cases */
.table tbody tr:hover,
.pagination li a,
.pagination li span,
.breadcrumb-item a,
.nav-link,
.dropdown-item,
.modal-close,
.close,
[aria-label="Close"],
.sortable th,
[data-sort] {
  cursor: pointer !important;
}

/* Disabled states should show not-allowed cursor */
button:disabled,
.btn:disabled,
input:disabled,
select:disabled,
textarea:disabled,
[disabled],
.disabled {
  cursor: not-allowed !important;
}

/* Loading states */
.loading,
[data-loading] {
  cursor: wait !important;
}

/* ======================================== */

/* Minimalist sidebar and navigation styles */
.sidebar-minimalist {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Clean focus states */
button:focus,
a:focus,
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid rgba(59, 130, 246, 0.5);
  outline-offset: 2px;
}

/* Smooth transitions for all interactive elements */
button,
a,
input,
select,
textarea {
  transition: all 0.2s ease-in-out;
}

/* Minimalist scrollbar */
::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Estilos de alerta que se conservan para compatibilidad */
.alert-debug {
  color: #1e3a8a;
  background-color: #eff6ff;
  border-color: #bfdbfe;
}

.alert-error {
  color: #b91c1c;
  background-color: #fee2e2;
  border-color: #fecaca;
}

/* Estilos personalizados adicionales para el proyecto */
.prose img {
  max-width: 100%;
  height: auto;
  border-radius: 0.375rem;
}


/* Estilos que usan variables de branding */
.btn-primary {
  background-color: var(--color-primary);
  color: white;
}

.btn-primary:hover {
  background-color: var(--color-secondary);
}

.bg-brand {
  background-color: var(--color-primary);
}

.text-brand {
  color: var(--color-primary);
}

.border-brand {
  border-color: var(--color-primary);
}

/* Estilos de datepicker y elementos de formulario */
.flatpickr-day.selected {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.flatpickr-day.selected:hover {
  background: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
}

.flatpickr-day.selected:focus {
  background: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
}

.flatpickr-day.selected:active {
  background: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
}

.flatpickr-day.selected:focus-visible {
  background: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
}

.flatpickr-calendar {
  border-radius: 0.75rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.flatpickr-day.today {
  background: var(--color-accent) !important;
  color: white;
  border-radius: 9999px;
}

.flatpickr-months .flatpickr-month {
  font-weight: 600;
}

.flatpickr-weekday {
  color: #4b5563;
  font-size: 0.875rem;
}

/* Soporte básico para modo oscuro */
/*
@media (prefers-color-scheme: dark) {
  .bg-white {
    background-color: #1f2937;
  }
  .text-gray-800 {
    color: #f3f4f6;
  }
  .text-gray-700 {
    color: #e5e7eb;
  }
  .text-gray-600 {
    color: #d1d5db;
  }
}
*/

/* ========================================
   ALPINE.JS & MODAL FIXES
   ======================================== */

/* Alpine.js - Ocultar elementos con x-cloak hasta que Alpine se inicialice */
[x-cloak] {
  display: none !important;
}

/* Mejorar rendimiento de transiciones */
.modal-backdrop {
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* Prevenir scroll del body cuando el modal está abierto */
body.modal-open {
  overflow: hidden;
}

/* ========================================
   HTMX INDICATORS FOR FILTERS
   ======================================== */

/* Show loading indicator when HTMX request is in progress */
.htmx-request .filter-loading {
    display: inline !important;
}

/* Hide normal text when HTMX request is in progress */
.htmx-request .filter-text {
    display: none !important;
}

/* Default state: hide loading, show text */
.filter-loading {
    display: none;
}

.filter-text {
    display: inline;
}

/* ========================================
   FORM FIELD ENHANCEMENTS
   ======================================== */

/* Custom Radio Button Styles */
input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 1rem;
  height: 1rem;
  border: 2px solid #d1d5db;
  border-radius: 50%;
  outline: none;
  transition: all 0.2s ease-in-out;
  position: relative;
  background-color: white;
}

input[type="radio"]:hover {
  border-color: var(--color-primary, #3b82f6);
}

input[type="radio"]:checked {
  border-color: var(--color-primary, #3b82f6);
  background-color: var(--color-primary, #3b82f6);
}

input[type="radio"]:checked::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: white;
}

input[type="radio"]:focus {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}

/* Custom Checkbox Styles */
input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid #d1d5db;
  border-radius: 0.25rem;
  outline: none;
  transition: all 0.2s ease-in-out;
  position: relative;
  background-color: white;
}

input[type="checkbox"]:hover {
  border-color: var(--color-primary, #3b82f6);
}

input[type="checkbox"]:checked {
  border-color: var(--color-primary, #3b82f6);
  background-color: var(--color-primary, #3b82f6);
}

input[type="checkbox"]:checked::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 5px;
  height: 9px;
  border: solid white;
  border-width: 0 2px 2px 0;
}

input[type="checkbox"]:focus {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}

/* Textarea Enhancement */
textarea {
  font-family: inherit;
  line-height: 1.5;
}

textarea:focus {
  outline: none;
}

/* Select Enhancement */
select {
  background-image: none;
}

select option {
  padding: 0.5rem;
}

/* File Input Enhancement */
input[type="file"]::file-selector-button {
  padding: 0.5rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  background-color: white;
  color: #374151;
  font-weight: 500;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

input[type="file"]::file-selector-button:hover {
  background-color: #f9fafb;
  border-color: var(--color-primary, #3b82f6);
}

/* Form Field Error States */
input.error,
textarea.error,
select.error {
  border-color: #ef4444 !important;
}

/* Form Field Success States */
input.success,
textarea.success,
select.success {
  border-color: #10b981 !important;
}

/* Disabled Field States */
input:disabled,
textarea:disabled,
select:disabled {
  background-color: #f3f4f6;
  cursor: not-allowed;
  opacity: 0.6;
}

/* Focus Within Enhancement for Textarea Container */
.focus-within\:border-\[var\(--color-primary\)\]:focus-within {
  border-color: var(--color-primary, #3b82f6);
}

/* Smooth Transitions for Form Elements */
input,
textarea,
select {
  transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

/* Better Number Input Appearance */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  opacity: 0.5;
}

input[type="number"]:hover::-webkit-inner-spin-button,
input[type="number"]:hover::-webkit-outer-spin-button {
  opacity: 1;
}

/* Placeholder Enhancement */
::placeholder {
  color: #9ca3af;
  opacity: 1;
}
