:root {
  --primary: #1a56db;
  --secondary: #f59e0b;
  --dark: #111827;
}
body { font-family: 'Segoe UI', sans-serif; background: #f8fafc; }

/* Hero */
.hero-section {
  background: linear-gradient(135deg, #1a56db 0%, #0e3a8c 100%);
  color: white;
  padding: 90px 0 70px;
}
.hero-section h1 { font-size: 2.8rem; font-weight: 800; }

/* Cards */
.card { border: none; box-shadow: 0 2px 12px rgba(0,0,0,.08); transition: transform .2s, box-shadow .2s; }
.card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.13); }
.card-img-top { height: 180px; object-fit: cover; background:#e2e8f0; }
.badge-categoria { background: var(--primary); font-size:.75rem; }

/* Precio */
.precio { font-size: 1.5rem; font-weight: 700; color: var(--primary); }
.precio-gratis { color: #16a34a; }

/* Navbar */
.navbar-brand { font-size: 1.2rem; }

/* Dashboard */
.stat-card { background: white; border-radius: 12px; padding: 24px; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.stat-icon { width: 52px; height: 52px; border-radius: 12px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; }

/* Progreso */
.progress { height: 8px; border-radius: 4px; }

/* Curso detalle */
.course-header { background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); color:white; padding: 50px 0; }
.lesson-item { padding: 12px 16px; border-radius: 8px; cursor: pointer; transition: background .15s; }
.lesson-item:hover { background: #f1f5f9; }
.lesson-item.active { background: #dbeafe; }
.lesson-item.completada i.check { color: #16a34a; }

/* Examen */
.opcion-label { display:block; padding:12px 16px; border:2px solid #e2e8f0; border-radius:8px; cursor:pointer; transition:all .15s; margin-bottom:8px; }
.opcion-label:hover { border-color: var(--primary); background:#eff6ff; }
input[type=radio]:checked + .opcion-label { border-color: var(--primary); background:#dbeafe; }

/* Certificado */
.cert-container {
  background: white;
  border: 12px solid #1a56db;
  border-radius: 8px;
  padding: 60px;
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
  position: relative;
}
.cert-container::before {
  content: '';
  position: absolute;
  inset: 8px;
  border: 3px solid #f59e0b;
  border-radius: 4px;
  pointer-events: none;
}
.cert-logo { font-size: 3rem; color: #1a56db; }
.cert-title { font-size: 1.1rem; color: #64748b; text-transform: uppercase; letter-spacing: 3px; }
.cert-name { font-size: 2.4rem; font-weight: 700; color: #1e293b; border-bottom: 3px solid #f59e0b; display:inline-block; padding-bottom:6px; margin: 16px 0; }
.cert-course { font-size: 1.2rem; color: #1a56db; font-weight: 600; }
.cert-footer { display:flex; justify-content:space-between; margin-top:40px; padding-top:20px; border-top:1px solid #e2e8f0; font-size:.85rem; color:#64748b; }

/* Video player */
.video-wrapper { position:relative; padding-bottom:56.25%; height:0; }
.video-wrapper iframe { position:absolute; top:0; left:0; width:100%; height:100%; border-radius:8px; }

/* Pago */
.metodo-pago { border: 2px solid #e2e8f0; border-radius:10px; padding:20px; cursor:pointer; transition:all .2s; }
.metodo-pago:hover, .metodo-pago.selected { border-color: var(--primary); background:#eff6ff; }
.yape-qr { background:#6b21a8; color:white; border-radius:12px; padding:24px; text-align:center; }

/* Admin sidebar */
.admin-sidebar { background: #1e293b; min-height: 100vh; padding-top:20px; }
.admin-sidebar .nav-link { color: #94a3b8; padding: 10px 20px; border-radius:8px; margin:2px 10px; }
.admin-sidebar .nav-link:hover, .admin-sidebar .nav-link.active { color:white; background:#334155; }
.admin-sidebar .nav-link i { width:20px; }

/* Alerts */
.alert { border: none; border-radius: 10px; }

/* Footer */
.footer { margin-top: auto; }

@media print {
  nav, .no-print { display: none !important; }
  .cert-container { border-width: 8px; }
}

@media (max-width: 768px) {
  .hero-section h1 { font-size: 1.8rem; }
  .cert-container { padding: 30px 20px; }
  .cert-name { font-size: 1.6rem; }
}
