/* =====================================================
  VARIABLES GLOBALES DE DISEÑO
===================================================== */
:root {
  --primary: #1F6FB2;
  --light: #EAF2FB;
  --bg: #F5F7FA;
  --text: #2E2E2E;
  --success: #4CAF50;
  --warning: #FF9800;
  --danger: #F44336;
  --score-bg: #EAF2FB;
  --sidebar-width: 250px; /* Variable para ancho sidebar */
}

/* =====================================================
  RESET BÁSICO Y TIPOGRAFÍA
===================================================== */
* {
  box-sizing: border-box;
  font-family: 'Segoe UI', sans-serif;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  overflow-x: hidden; /* Evita scroll horizontal no deseado */
}

img, video {
  max-width: 100%;
  height: auto;
}

/* =====================================================
  LAYOUT GENERAL
===================================================== */
.layout {
  display: flex;
  min-height: 100vh;
  position: relative; /* Necesario para el overlay móvil */
}

/* Sidebar lateral */
.sidebar {
  width: var(--sidebar-width);
  background: var(--primary);
  color: white;
  min-height: 100vh;
  padding: 20px;
  flex-shrink: 0;
  transition: left 0.3s ease;
  z-index: 1000;
}

.sidebar nav a {
  display: block;
  color: white;
  padding: 12px 10px; /* Un poco más de área táctil */
  opacity: .8;
  cursor: pointer;
  text-decoration: none;
  border-radius: 4px;
}

.sidebar nav a.active,
.sidebar nav a:hover {
  opacity: 1;
  background: rgba(255,255,255,0.1);
}

/* Contenido principal */
.content {
  flex: 1;
  padding: 30px;
  width: 100%;
  
  /* --- ESTAS SON LAS LÍNEAS CLAVE --- */
  min-width: 0; /* Evita que el Flexbox se estire por culpa de tablas anchas */
  overflow-x: hidden; /* Corta cualquier cosa que intente salirse */
  position: relative; /* Mantiene el flujo correcto */
}

/* Barra superior */
.topbar {
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
}

/* Botón Hamburguesa (Oculto en PC) */
.menu-toggle {
  display: none;
  background: transparent;
  border: none;
  color: var(--primary);
  font-size: 24px;
  cursor: pointer;
  padding: 5px;
}

/* Overlay para cerrar menú en móvil */
.overlay {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.5);
  z-index: 999;
}

/* =====================================================
  COMPONENTES REUTILIZABLES
===================================================== */
.card {
  background: white;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Ajustado minmax */
  gap: 20px;
}

.grid-2 {
    grid-template-columns: 1fr 1fr;
}

.btn-primary, .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 6px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-size: 14px;
  transition: opacity 0.2s;
}

.btn-primary:hover, .btn-secondary:hover {
  opacity: 0.9;
}

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

.input, select.input {
  width: 100%;
  padding: 10px;
  border-radius: 6px;
  border: 1px solid #ccc;
  font-size: 14px;
}

/* =====================================================
  FILAS DE CHECKBOX Y RADIO
===================================================== */
.check-row, .radio-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 14px;
  cursor: pointer;
}

/* =====================================================
  RESULTADOS REBA & TABLAS
===================================================== */
.score-header {
  display: flex;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #eee;
  flex-wrap: wrap; /* Permitir wrap en móvil */
  gap: 15px;
}

.score-value {
  font-size: 40px;
  font-weight: 700;
  color: var(--primary);
  background: var(--score-bg);
  border-radius: 8px;
  padding: 10px 20px;
  min-width: 80px;
  text-align: center;
}

.risk-level-bar {
  flex-grow: 1;
  display: flex;
  height: 20px;
  border-radius: 10px;
  overflow: hidden;
  background: #eee;
  min-width: 200px;
}

.risk-level-segment {
  height: 100%;
  font-size: 10px;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}
.segment-success { background-color: var(--success); width: 30%; }
.segment-warning { background-color: var(--warning); width: 20%; }
.segment-danger { background-color: var(--danger); width: 15%; }
.segment-primary { background-color: var(--primary); width: 35%; }

/* Tablas Responsivas */
.table-responsive {
    overflow-x: auto;
    width: 100%;
    margin-top: 15px;
}

.risk-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  min-width: 400px; /* Fuerza scroll si es muy estrecho */
}

.risk-table th, .risk-table td {
  padding: 10px 12px;
  border: 1px solid #eee;
  text-align: left;
}

.risk-table th { background-color: var(--light); color: var(--primary); font-weight: 600; }
.risk-table td.level-cell { font-weight: 600; text-align: center; }
.risk-table tr.level-0 { background-color: #e8f5e9; }
.risk-table tr.level-1 { background-color: #f1f8e9; }
.risk-table tr.level-2 { background-color: #fffde7; }
.risk-table tr.level-3 { background-color: #fff3e0; }
.risk-table tr.level-4 { background-color: #fdecea; }

/* =====================================================
  ELEMENTOS ESPECÍFICOS (Icons, Cards IA, Textareas)
===================================================== */
.section-title {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 15px;
  color: var(--primary);
  border-left: 4px solid var(--primary);
  padding-left: 10px;
}

.card-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.icon-primary { font-size: 20px; color: var(--primary); }
.card-ia { background: linear-gradient(135deg, #ffffff, #f0f6ff); border-left: 5px solid var(--primary); }
.btn-icon { gap: 8px; }
.options-icons { display: flex; gap: 15px; margin-top: 10px; flex-wrap: wrap; }
.option-card { flex: 1; min-width: 120px; border: 1px solid #ddd; border-radius: 8px; padding: 15px; cursor: pointer; text-align: center; display: flex; flex-direction: column; gap: 8px; }
.option-card.active, .option-card:hover { border-color: var(--primary); background-color: #f0f6ff; }
.option-card i { font-size: 22px; color: var(--primary); }
.option-card input { display: none; }
.card-group:hover { transform: translateY(-3px); box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08); }
.btn-group { display: flex; gap: 10px; flex-wrap: wrap; }
.card-group .btn-secondary { width: 100%; justify-content: center; }
.textarea-main { width: 100%; min-height: 150px; padding: 14px; border-radius: 8px; border: 1px solid #ddd; font-size: 14px; resize: vertical; }

/* Pasos de progreso (Topbars de Informes) */
.progress-hint {
    display: flex;
    gap: 5px;
    font-size: 12px;
    margin-top: 5px;
    flex-wrap: wrap;
}
.progress-hint .step { padding: 2px 6px; border-radius: 4px; background: #eee; color: #777; }
.progress-hint .step.done { background: var(--success); color: white; }
.progress-hint .step.active { background: var(--primary); color: white; font-weight: bold; }


/* =====================================================
  MEDIA QUERIES - RESPONSIVE MOBILE
===================================================== */
@media (max-width: 768px) {
  /* Layout: Sidebar Fixed y Oculto */
  .layout {
    flex-direction: column;
  }
  
  .sidebar {
    position: fixed;
    top: 0;
    left: -100%; /* Oculto a la izquierda */
    height: 100%;
    width: 260px;
    box-shadow: 2px 0 10px rgba(0,0,0,0.2);
  }

  .sidebar.active {
    left: 0; /* Mostrar */
  }

  .overlay.active {
    display: block; /* Fondo oscuro al abrir menú */
  }

  .content {
    padding: 15px;
    padding-top: 20px;
  }

  /* Mostrar botón hamburguesa */
  .menu-toggle {
    display: block;
  }

  /* Ajustes en Cards */
  .grid-2 {
    grid-template-columns: 1fr; /* Una columna en móvil */
  }

  /* Resultados: Paneles laterales */
  .panel-side {
    width: 100%;
    margin-bottom: 20px;
  }

  /* Ajustes tipográficos y de espaciado */
  h1 { font-size: 22px; margin: 0; }
  .score-value { font-size: 32px !important; }
  
  /* Ajuste de imágenes en cuestionarios */
  .img-box img {
    width: 100% !important;
    height: auto;
  }
}

/* =========================================
   FIX VISOR PDF RESPONSIVO
========================================= */
.pdf-container {
    position: relative;
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #f0f0f0;
    /* Permite scroll suave en iOS/Android */
    overflow: auto; 
    -webkit-overflow-scrolling: touch; 
}

.pdf-container iframe {
    display: block;
    width: 100%;
    /* En escritorio usamos alto fijo o 100% */
    height: 920px; 
    border: none;
}

/* Botón de emergencia para móviles */
.mobile-pdf-link {
    display: none; /* Oculto en PC */
    margin-top: 10px;
    text-align: center;
}

@media (max-width: 768px) {
    .pdf-container {
        /* En móvil reducimos la altura para que no sea eterno */
        height: 500px; 
    }
    
    .mobile-pdf-link {
        display: block; /* Visible en móvil */
    }
    
    .mobile-pdf-link .btn-secondary {
        width: 100%;
        justify-content: center;
        background-color: #fff;
        border: 1px solid var(--primary);
    }
}