/**
 * TecnoVida - Hoja de Estilos Base y Reseteo
 * Incluye fuentes web, importación modular de hojas de estilo, reseteo CSS y utilidades globales.
 */

/* ==========================================================================
   Importación de Fuentes y Módulos CSS
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
@import url('variables.css');
@import url('components.css');
@import url('layout.css');
@import url('login.css');
@import url('app.css');

/* ==========================================================================
   Reseteo CSS y Configuración Global
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scrollbar-width: none; /* Firefox: oculta barra de desplazamiento para sensación nativa de app */
}

html::-webkit-scrollbar {
  display: none; /* Chrome, Safari y Edge */
}

body {
  font-family: var(--font-family);
  background-color: var(--color-bg-main);
  color: var(--color-text-primary);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-height: 100vh;
  overflow-x: hidden;
  scrollbar-width: none;
}

body::-webkit-scrollbar {
  display: none;
}

/* ==========================================================================
   Elementos Multimedia y Enlaces
   ========================================================================== */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color var(--transition-fast);
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: inherit;
  color: inherit;
  margin: 0;
}

/* ==========================================================================
   Clases de Utilidad Globales
   ========================================================================== */

/* Visibilidad */
.hidden {
  display: none !important;
}

/* Alineación y Color de Texto */
.text-center {
  text-align: center;
}

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

.text-secondary {
  color: var(--color-secondary) !important;
}

.text-danger {
  color: var(--color-danger) !important;
}

.text-success {
  color: var(--color-success) !important;
}

.text-muted {
  color: var(--color-text-muted) !important;
}

/* Espaciados - Margen Superior */
.mt-sm {
  margin-top: var(--space-sm) !important;
}

.mt-md {
  margin-top: var(--space-md) !important;
}

.mt-lg {
  margin-top: var(--space-lg) !important;
}

/* Espaciados - Margen Inferior */
.mb-sm {
  margin-bottom: var(--space-sm) !important;
}

.mb-md {
  margin-bottom: var(--space-md) !important;
}

.mb-lg {
  margin-bottom: var(--space-lg) !important;
}

/* Espaciados - Relleno (Padding) */
.p-sm {
  padding: var(--space-sm) !important;
}

.p-md {
  padding: var(--space-md) !important;
}

.p-lg {
  padding: var(--space-lg) !important;
}

/* Flexbox */
.flex {
  display: flex !important;
}

.flex-center {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.flex-between {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.flex-column {
  display: flex !important;
  flex-direction: column !important;
}

/* Brechas (Gap) */
.gap-sm {
  gap: var(--space-sm) !important;
}

.gap-md {
  gap: var(--space-md) !important;
}

.gap-lg {
  gap: var(--space-lg) !important;
}

/* Dimensiones */
.w-full {
  width: 100% !important;
}
