/* OPTIMIZACIÓN DEFINITIVA POS SIN SCROLL - Versión Mejorada */
/* Combina todas las optimizaciones + nuevas mejoras para eliminar completamente el scroll */

/* ==================== RESET Y BASE PARA NO-SCROLL ==================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
  font-size: 14px; /* Base font size más pequeña */
}

/* ==================== VARIABLES OPTIMIZADAS PARA PANTALLA COMPLETA ==================== */
:root {
  /* Factores de escala agresivos */
  --scale-factor: 0.7;
  --space-unit: 0.2rem;
  --font-unit: 0.7rem;
  
  /* Espaciados ultra-compactos */
  --space-pos-xs: 0.125rem; /* 2px */
  --space-pos-sm: 0.25rem;  /* 4px */
  --space-pos-md: 0.375rem; /* 6px */
  --space-pos-lg: 0.5rem;   /* 8px */
  --space-pos-xl: 0.75rem;  /* 12px */
  
  /* Fuentes escaladas */
  --font-pos-xs: 0.625rem;  /* 10px */
  --font-pos-sm: 0.75rem;   /* 12px */
  --font-pos-md: 0.825rem;  /* 13px */
  --font-pos-lg: 0.875rem;  /* 14px */
  --font-pos-xl: 1rem;      /* 16px */
  
  /* Alturas fijas calculadas */
  --height-header-fixed: 45px;
  --height-input-fixed: 32px;
  --height-button-fixed: 32px;
  --height-boat-option: 65px;
  
  /* Anchos calculados */
  --width-sidebar-fixed: 300px;
  --width-form-panel: calc(100vw - 300px - 24px); /* Resta sidebar + gaps */
}

/* ==================== LAYOUT PRINCIPAL - GRID FIJO ==================== */
.pos-screen {
  height: 100vh !important;
  max-height: 100vh !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

.pos-header {
  height: var(--height-header-fixed) !important;
  min-height: var(--height-header-fixed) !important;
  max-height: var(--height-header-fixed) !important;
  padding: var(--space-pos-sm) var(--space-pos-lg) !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  box-shadow: var(--shadow-md) !important;
  background: var(--card-bg) !important;
}

.header-left h1 {
  font-size: var(--font-pos-lg) !important;
  font-weight: 700 !important;
  margin-bottom: 0 !important;
  line-height: 1.2 !important;
}

.header-left h1 i {
  font-size: var(--font-pos-xl) !important;
}

.header-subtitle {
  font-size: var(--font-pos-xs) !important;
  line-height: 1 !important;
  margin-top: 2px !important;
}

.user-info {
  font-size: var(--font-pos-xs) !important;
}

.logout-btn {
  padding: var(--space-pos-sm) var(--space-pos-md) !important;
  font-size: var(--font-pos-xs) !important;
  height: var(--height-button-fixed) !important;
  display: flex !important;
  align-items: center !important;
  gap: var(--space-pos-xs) !important;
}

.pos-main {
  display: grid !important;
  grid-template-columns: 1fr var(--width-sidebar-fixed) !important;
  gap: var(--space-pos-lg) !important;
  padding: var(--space-pos-md) !important;
  height: calc(100vh - var(--height-header-fixed)) !important;
  max-height: calc(100vh - var(--height-header-fixed)) !important;
  overflow: hidden !important;
  flex: 1 !important;
}

/* ==================== PANEL IZQUIERDO - FORMULARIO COMPACTO ==================== */
.pos-form-panel {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-pos-sm) !important;
  height: 100% !important;
  overflow-y: auto !important;
  padding-right: var(--space-pos-xs) !important;
}

/* Scrollbar minimalista */
.pos-form-panel::-webkit-scrollbar {
  width: 4px !important;
}

.pos-form-panel::-webkit-scrollbar-track {
  background: transparent !important;
}

.pos-form-panel::-webkit-scrollbar-thumb {
  background: var(--accent-teal) !important;
  border-radius: 2px !important;
}

.form-section {
  background: var(--card-bg) !important;
  padding: var(--space-pos-md) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-md) !important;
  flex-shrink: 0 !important;
  margin-bottom: var(--space-pos-lg) !important;
}

.form-section h3 {
  font-size: var(--font-pos-md) !important;
  font-weight: 600 !important;
  margin-bottom: var(--space-pos-md) !important;
  display: flex !important;
  align-items: center !important;
  gap: var(--space-pos-sm) !important;
}

.form-section h3 i {
  font-size: var(--font-pos-lg) !important;
  color: var(--accent-teal) !important;
}

/* ==================== FORMULARIO DE PASAJERO - UNA SOLA LÍNEA ==================== */
.passenger-form {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  margin-bottom: var(--space-pos-md) !important;
}

.form-input {
  height: var(--height-input-fixed) !important;
  padding: var(--space-pos-sm) !important;
  font-size: var(--font-pos-sm) !important;
  border-radius: var(--radius-md) !important;
  border: 2px solid var(--border-color) !important;
  background: var(--input-bg) !important;
  color: var(--text-primary) !important;
  line-height: 1.2 !important;
}

/* ==================== FILA DE FECHA Y CONTADORES - OPTIMIZADA ==================== */
.trip-date-passenger-row {
  display: grid !important;
  grid-template-columns: 1.5fr 1fr 1fr !important;
  gap: var(--space-pos-md) !important;
  align-items: end !important;
  margin-bottom: var(--space-pos-md) !important;
}

.trip-date {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-pos-xs) !important;
}

.trip-date label {
  font-size: var(--font-pos-sm) !important;
  font-weight: 500 !important;
  color: var(--text-primary) !important;
  line-height: 1.2 !important;
}

.count-group {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-pos-xs) !important;
}

.count-group label {
  font-size: var(--font-pos-xs) !important;
  font-weight: 500 !important;
  color: var(--text-primary) !important;
  text-align: center !important;
  line-height: 1.1 !important;
}

.count-controls {
  display: flex !important;
  align-items: center !important;
  background: var(--input-bg) !important;
  border-radius: var(--radius-md) !important;
  border: 2px solid var(--border-color) !important;
  overflow: hidden !important;
  height: var(--height-input-fixed) !important;
}

.count-btn {
  background: transparent !important;
  border: none !important;
  color: var(--text-primary) !important;
  width: 28px !important;
  height: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  font-size: var(--font-pos-sm) !important;
  transition: background-color 0.2s ease !important;
}

.count-btn:hover {
  background: var(--accent-teal) !important;
  color: var(--dark-navy) !important;
}

.count-display {
  flex: 1 !important;
  text-align: center !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  font-size: var(--font-pos-md) !important;
  background: var(--dark-navy) !important;
  height: 28px !important;
  line-height: 28px !important;
  border-left: 1px solid var(--border-color) !important;
  border-right: 1px solid var(--border-color) !important;
}

/* ==================== PRECIO Y VENDEDOR - COMPACTO ==================== */
.price-vendor {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: var(--space-pos-md) !important;
}

.price-group,
.vendor-group {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-pos-xs) !important;
}

.price-group label,
.vendor-group label {
  font-size: var(--font-pos-sm) !important;
  font-weight: 500 !important;
  color: var(--text-primary) !important;
}

/* ==================== SELECTOR DE EMBARCACIONES - UNA SOLA LÍNEA ==================== */
.boat-selector {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  gap: var(--space-pos-xs) !important;
}

.boat-option {
  background: var(--input-bg) !important;
  border: 2px solid var(--border-color) !important;
  border-radius: var(--radius-md) !important;
  padding: var(--space-pos-sm) !important;
  cursor: pointer !important;
  transition: all var(--transition-normal) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  height: var(--height-boat-option) !important;
  min-height: var(--height-boat-option) !important;
  max-height: var(--height-boat-option) !important;
  gap: var(--space-pos-xs) !important;
  min-width: 0 !important; /* Permitir encogimiento */
  overflow: hidden !important; /* Prevenir overflow */
}

.boat-option:hover {
  border-color: var(--accent-teal) !important;
  transform: none !important; /* Eliminar transform para pantallas pequeñas */
}

.boat-option.selected {
  border-color: var(--accent-teal) !important;
  background: rgba(79, 209, 199, 0.1) !important;
}

.boat-option i {
  font-size: var(--font-pos-lg) !important;
  color: var(--accent-teal) !important;
  flex-shrink: 0 !important;
}

.boat-name {
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  font-size: var(--font-pos-xs) !important;
  line-height: 1.1 !important;
  word-break: break-word !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  white-space: nowrap !important; /* Evitar que el texto se ajuste */
  width: 100% !important;
}

.boat-price {
  font-weight: 700 !important;
  color: var(--accent-teal) !important;
  font-size: var(--font-pos-xs) !important;
  line-height: 1.1 !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  white-space: nowrap !important; /* Evitar que el texto se ajuste */
  width: 100% !important;
}

/* ==================== BOTONES DE ACCIÓN - COMPACTOS ==================== */
.form-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: var(--space-pos-sm) !important;
  margin-top: var(--space-pos-sm) !important;
}

.action-btn {
  height: var(--height-button-fixed) !important;
  padding: var(--space-pos-sm) var(--space-pos-md) !important;
  border: none !important;
  border-radius: var(--radius-md) !important;
  font-family: var(--font-primary) !important;
  font-weight: 600 !important;
  font-size: var(--font-pos-sm) !important;
  cursor: pointer !important;
  transition: all var(--transition-normal) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--space-pos-xs) !important;
}

/* ==================== PANEL DEL TICKET - FIJO ==================== */
.pos-ticket-panel {
  height: 100% !important;
  overflow: hidden !important;
  min-width: var(--width-sidebar-fixed) !important;
  max-width: var(--width-sidebar-fixed) !important;
}

.virtual-ticket {
  background: var(--text-primary) !important;
  color: var(--dark-navy) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-xl) !important;
  overflow: hidden !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  transform: none !important; /* Sin efectos 3D */
}

.ticket-header {
  background: var(--gradient-primary) !important;
  color: var(--text-primary) !important;
  padding: var(--space-pos-md) !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}

.ticket-header h2 {
  font-size: var(--font-pos-lg) !important;
  font-weight: 700 !important;
  margin-bottom: var(--space-pos-xs) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--space-pos-sm) !important;
}

.ticket-header h2 i {
  color: var(--light-teal) !important;
  font-size: var(--font-pos-xl) !important;
}

.ticket-number {
  background: rgba(255, 255, 255, 0.1) !important;
  padding: var(--space-pos-xs) var(--space-pos-sm) !important;
  border-radius: var(--radius-md) !important;
  font-weight: 600 !important;
  font-size: var(--font-pos-xs) !important;
  display: inline-block !important;
}

.ticket-content {
  padding: 15px !important;
  flex: 1 !important;
  overflow-y: auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-pos-sm) !important;
  border: 1px sold red !important;

}

/* Scrollbar para ticket content */
.ticket-content::-webkit-scrollbar {
  width: 3px !important;
}

.ticket-content::-webkit-scrollbar-track {
  background: #e2e8f0 !important;
}

.ticket-content::-webkit-scrollbar-thumb {
  background: var(--secondary-blue) !important;
  border-radius: 2px !important;
}

.ticket-section {
  border-bottom: 1px dashed #e2e8f0 !important;
  padding-bottom: var(--space-pos-sm) !important;
  margin-bottom: var(--space-pos-sm) !important;
  flex-shrink: 0 !important;
}

.ticket-section:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.ticket-section h4 {
  font-size: var(--font-pos-sm) !important;
  font-weight: 600 !important;
  color: var(--primary-blue) !important;
  margin-bottom: var(--space-pos-xs) !important;
  display: flex !important;
  align-items: center !important;
  gap: var(--space-pos-xs) !important;
}

.ticket-section p {
  font-size: var(--font-pos-xs) !important;
  line-height: 1.3 !important;
  margin-bottom: var(--space-pos-xs) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
}

.ticket-section p strong {
  color: var(--secondary-blue) !important;
  font-weight: 600 !important;
  flex-shrink: 0 !important;
  margin-right: var(--space-pos-xs) !important;
}

.ticket-section p span {
  font-weight: 500 !important;
  color: var(--dark-navy) !important;
  text-align: right !important;
  word-break: break-word !important;
}

.ticket-total {
  background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%) !important;
  margin: 0 calc(-1 * var(--space-pos-md)) !important;
  padding: var(--space-pos-md) !important;
  border-top: 1px dashed #e2e8f0 !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}

.ticket-total h3 {
  font-size: var(--font-pos-lg) !important;
  font-weight: 700 !important;
  color: var(--primary-blue) !important;
  margin: 0 !important;
}

.ticket-total span {
  color: var(--accent-teal) !important;
  font-weight: 800 !important;
}

.ticket-logo {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: var(--space-pos-sm) !important;
  flex-shrink: 0 !important;
}

.ticket-logo img {
  max-width: 250px !important;

  object-fit: contain !important;
  opacity: 0.9 !important;
}

.ticket-footer {
  background: var(--dark-navy) !important;
  color: var(--text-primary) !important;
  padding: var(--space-pos-sm) !important;
  text-align: center !important;
  margin: 0 calc(-1 * var(--space-pos-md)) !important;
  flex-shrink: 0 !important;
}

.ticket-footer p {
  font-size: var(--font-pos-xs) !important;
  margin-bottom: var(--space-pos-xs) !important;
  opacity: 0.8 !important;
  line-height: 1.2 !important;
}

.ticket-footer p:last-child {
  margin-bottom: 0 !important;
  font-weight: 500 !important;
}

/* ==================== RESPONSIVE PARA PANTALLAS MÁS PEQUEÑAS ==================== */
@media (max-width: 1200px) {
  :root {
    --width-sidebar-fixed: 280px;
    --height-boat-option: 60px;
  }
  
  .passenger-form {
    grid-template-columns: repeat(4, 1fr) !important; /* Mantener 4 columnas */
  }
  
  .boat-selector {
    grid-template-columns: repeat(6, 1fr) !important; /* Mantener 6 columnas */
  }
}

@media (max-width: 1024px) {
  :root {
    --width-sidebar-fixed: 260px;
    --height-boat-option: 55px;
    --font-pos-xs: 0.6rem;
    --font-pos-sm: 0.7rem;
  }
  
  .pos-main {
    gap: var(--space-pos-sm) !important;
    padding: var(--space-pos-sm) !important;
  }
  
  .passenger-form {
    grid-template-columns: repeat(4, 1fr) !important; /* Mantener 4 columnas */
    gap: var(--space-pos-xs) !important;
  }
  
  .trip-date-passenger-row {
    grid-template-columns: 1fr auto auto !important;
    gap: var(--space-pos-sm) !important;
  }
  
  .boat-selector {
    grid-template-columns: repeat(6, 1fr) !important; /* Mantener 6 columnas */
    gap: 1px !important; /* Gap más pequeño para que quepan */
  }
  
  .boat-option {
    padding: var(--space-pos-xs) !important;
    min-height: 50px !important; /* Altura más pequeña */
  }
  
  .boat-name,
  .boat-price {
    font-size: 0.55rem !important; /* Fuente más pequeña */
    line-height: 1 !important;
  }
}

/* ==================== MEDIA QUERY ESPECÍFICA PARA 1024x768 ==================== */
@media screen and (width: 1024px) and (height: 768px),
       screen and (min-width: 1020px) and (max-width: 1030px) and (min-height: 760px) and (max-height: 780px) {
  
  :root {
    --height-header-fixed: 40px;
    --height-input-fixed: 28px;
    --height-button-fixed: 28px;
    --height-boat-option: 50px;
    --width-sidebar-fixed: 250px;
    
    --space-pos-xs: 0.1rem;
    --space-pos-sm: 0.2rem;
    --space-pos-md: 0.3rem;
    --space-pos-lg: 0.4rem;
    --space-pos-xl: 0.6rem;
    
    --font-pos-xs: 0.55rem;
    --font-pos-sm: 0.65rem;
    --font-pos-md: 0.75rem;
    --font-pos-lg: 0.8rem;
    --font-pos-xl: 0.9rem;
  }
  
  .boat-selector {
    grid-template-columns: repeat(6, 1fr) !important; /* 6 embarcaciones en una línea */
    gap: 1px !important; /* Gap mínimo */
  }
  
  .passenger-form {
    grid-template-columns: repeat(4, 1fr) !important; /* 4 campos en una línea */
    gap: 20px !important;
  }
  
  .boat-option {
    padding: var(--space-pos-xs) !important;
    min-height: 45px !important; /* Altura muy compacta */
  }
  
  .boat-name,
  .boat-price {
    font-size: 0.5rem !important; /* Fuente muy pequeña pero legible */
    line-height: 0.9 !important;
  }
  
  .form-input {
    padding: var(--space-pos-xs) !important;
    font-size: var(--font-pos-xs) !important;
  }
  
  .form-section {
    padding: 20px !important;
  }
  
  .ticket-content {
    padding: 15px !important;
  }
  
  .ticket-logo img {
    max-width: 200px !important;

  }
  
  /* Indicador visual para debug */
  body::after {
    content: "🎯 NO-SCROLL POS OPTIMIZED" !important;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    background: #38a169 !important;
    color: white !important;
    padding: 2px 6px !important;
    font-size: 10px !important;
    z-index: 10001 !important;
    font-family: monospace !important;
    border-radius: 0 0 0 4px !important;
  }
}

/* ==================== AJUSTES ADICIONALES PARA PANTALLAS MENORES ==================== */

/* Para pantallas de 900px - mantener layout en línea */
@media (max-width: 900px) {
  .passenger-form {
    grid-template-columns: repeat(4, minmax(70px, 1fr)) !important;
    gap: 20px !important;
  }
  
  .boat-selector {
    grid-template-columns: repeat(6, minmax(60px, 1fr)) !important;
    gap: 1px !important;
  }
  
  .form-input {
    font-size: 0.65rem !important;
    padding: 4px !important;
    height: 30px !important;
  }
  
  .boat-option {
    padding: 2px !important;
    min-height: 42px !important;
  }
  
  .boat-name,
  .boat-price {
    font-size: 0.48rem !important;
  }
}

/* Para pantallas de 768px - última línea de defensa */
@media (max-width: 768px) {
  .passenger-form {
    grid-template-columns: repeat(4, minmax(60px, 1fr)) !important;
    gap: 20px !important;
  }
  
  .boat-selector {
    grid-template-columns: repeat(6, minmax(50px, 1fr)) !important;
    gap: 1px !important;
  }
  
  .form-input {
    font-size: 0.6rem !important;
    height: 28px !important;
    padding: 3px !important;
  }
  
  .boat-option {
    min-height: 38px !important;
    padding: 1px !important;
  }
  
  .boat-option i {
    font-size: 0.75rem !important;
  }
  
  .boat-name,
  .boat-price {
    font-size: 0.44rem !important;
    line-height: 0.8 !important;
  }
}

/* Ajustes específicos para textos largos en embarcaciones */
.boat-name {
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  font-size: var(--font-pos-xs) !important;
  line-height: 1.1 !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  width: 100% !important;
  display: block !important;
}

.boat-price {
  font-weight: 700 !important;
  color: var(--accent-teal) !important;
  font-size: var(--font-pos-xs) !important;
  line-height: 1.1 !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  width: 100% !important;
  display: block !important;
}

/* ==================== OVERRIDES FINALES - MÁXIMA PRIORIDAD ==================== */
.pos-screen,
.pos-main,
.pos-form-panel,
.virtual-ticket {
  overflow: hidden !important;
}

.pos-form-panel,
.ticket-content {
  overflow-y: auto !important;
}

/* Asegurar que nada cause scroll horizontal */
* {
  max-width: 100% !important;
}

/* Estados de formulario - sin animaciones que causen problemas */
.form-section:hover {
  box-shadow: var(--shadow-md) !important;
  transform: none !important;
}

.boat-option:hover {
  transform: none !important;
}

.virtual-ticket:hover {
  transform: none !important;
}


#query-database-btn {
  height: 28px !important;
  font-size: 0.7rem !important;
  padding: 4px 8px !important;
  min-width: auto !important;
}








/* Estilos específicos para modal de venta */
.sale-actions {
  display: flex;
  gap: var(--space-md);
  justify-content: center;
  flex-wrap: wrap;
}

.sale-actions .modal-btn {
  flex: 1;
  min-width: 120px;
  max-width: 150px;
}

.whatsapp-btn {
  background: #25d366;
  color: white;
  order: 1;
}

.whatsapp-btn:hover {
  background: #128c7e;
  transform: translateY(-2px);
}

.print-btn {
  background: #dc3545;
  color: white;
  order: 2;
}

.print-btn:hover {
  background: #c82333;
  transform: translateY(-2px);
}

.close-btn {
  background: var(--input-bg);
  color: var(--text-primary);
  border: 2px solid var(--border-color);
  order: 3;
}

.close-btn:hover {
  background: var(--secondary-blue);
  border-color: var(--secondary-blue);
  transform: translateY(-2px);
}

@media (max-width: 768px) {
  .sale-actions {
    flex-direction: column;
  }
  
  .sale-actions .modal-btn {
    max-width: none;
  }
}