/* Campus Proyecto Estudio — estilos */
:root{
  --rojo:#E64046;--rojo-osc:#C9352F;--grafito:#25282B;--gris-graf:#4D4D4D;
  --gris-med:#9CA3AF;--gris-suave:#F7F7F8;--linea:#E7E7E9;--blanco:#fff;
  --texto:#25282B;--texto-suave:#5b6067;
  --tit:'Montserrat',system-ui,sans-serif;--txt:'Lato',system-ui,sans-serif;
  --radio:14px;--sombra:0 1px 2px rgba(37,40,43,.06),0 10px 30px rgba(37,40,43,.06);
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--txt);color:var(--texto);background:var(--gris-suave);line-height:1.6}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--tit);color:var(--grafito);line-height:1.2;margin:0}
.cx-wrap{max-width:960px;margin-inline:auto;padding-inline:20px}

/* Header */
.cx-head{background:#fff;border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:20}
.cx-head__in{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.cx-brand{display:flex;align-items:center;gap:10px}
.cx-brand__mark{width:36px;height:36px;border-radius:10px;background:var(--rojo);color:#fff;
  font-family:var(--tit);font-weight:800;font-size:1.2rem;display:grid;place-items:center}
.cx-brand__txt{font-family:var(--tit);font-weight:700;font-size:1rem}
.cx-brand__txt b{color:var(--rojo)}
.cx-nav{display:flex;align-items:center;gap:18px}
.cx-nav a{font-family:var(--tit);font-weight:600;font-size:.92rem;color:var(--gris-graf)}
.cx-nav a:hover{color:var(--rojo)}
.cx-nav__user{color:var(--texto-suave);font-size:.9rem}

/* Main */
.cx-main{min-height:70vh;padding-block:34px}
.cx-main--app{background:var(--gris-suave)}
.cx-foot{background:var(--grafito);color:#c3c6c9;padding:22px 0;font-size:.85rem;text-align:center}
.cx-h1{font-size:1.9rem;margin-bottom:6px}
.cx-h2{font-size:1.25rem;margin:30px 0 14px}
.cx-muted{color:var(--texto-suave)}
.cx-eyebrow{font-family:var(--tit);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--rojo);margin:0 0 6px}

/* Buttons */
.cx-btn{display:inline-flex;align-items:center;gap:.4em;font-family:var(--tit);font-weight:600;
  font-size:.95rem;padding:.7em 1.4em;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:.15s}
.cx-btn--primary{background:var(--rojo);color:#fff}
.cx-btn--primary:hover{background:var(--rojo-osc)}
.cx-btn--ghost{background:#fff;color:var(--grafito);border-color:var(--linea)}
.cx-btn--ghost:hover{border-color:var(--grafito)}
.cx-btn--disabled{background:#e9eaec;color:#a2a6ac;cursor:not-allowed;pointer-events:none}

/* Cards / auth */
.cx-card{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:32px;box-shadow:var(--sombra)}
.cx-auth{max-width:440px;margin-top:20px}
.cx-form{display:grid;gap:16px;margin-top:16px}
.cx-form label{display:grid;gap:6px;font-family:var(--tit);font-weight:600;font-size:.9rem;color:var(--grafito)}
.cx-form input{font-family:var(--txt);font-size:1rem;padding:12px 14px;border:1px solid var(--linea);border-radius:10px}
.cx-form input:focus{outline:none;border-color:var(--rojo)}
.cx-error{background:#fdecec;border:1px solid #f5c2c2;color:#9a2b2b;padding:12px 14px;border-radius:10px;margin-bottom:6px;font-size:.92rem}
.cx-flash{background:#eafaf0;border:1px solid #bfe6cd;color:#1f6b40;padding:12px 16px;border-radius:10px;margin-bottom:18px}
.cx-check{margin:10px 0;padding-left:20px}

/* Course grid */
.cx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.cx-course{display:block;background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:22px;transition:.18s}
a.cx-course:hover{transform:translateY(-3px);box-shadow:var(--sombra);border-color:transparent}
.cx-course__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cx-course__hours{font-family:var(--tit);font-weight:700;font-size:.78rem;color:var(--rojo);background:rgba(230,64,70,.1);padding:4px 10px;border-radius:999px}
.cx-course h3{font-size:1.1rem;margin-bottom:10px}
.cx-badge{font-family:var(--tit);font-weight:600;font-size:.72rem;padding:4px 10px;border-radius:999px}
.cx-badge--ok{background:#eafaf0;color:#1f6b40}

/* Progress bar */
.cx-bar{height:8px;background:#ececee;border-radius:999px;overflow:hidden;margin:8px 0 6px}
.cx-bar span{display:block;height:100%;background:var(--rojo);border-radius:999px}
.cx-bar--lg{height:12px;margin:16px 0 8px}

/* Course view */
.cx-back{display:inline-block;color:var(--texto-suave);font-family:var(--tit);font-weight:600;font-size:.88rem;margin-bottom:14px}
.cx-back:hover{color:var(--rojo)}
.cx-module{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:22px 24px;margin-top:16px}
.cx-lessons{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.cx-lessons a{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:8px;font-weight:600;color:var(--grafito)}
.cx-lessons a:hover{background:var(--gris-suave);color:var(--rojo)}
.cx-tick{width:22px;height:22px;border-radius:50%;border:2px solid var(--linea);display:grid;place-items:center;font-size:.8rem;color:#fff;flex:none}
.cx-tick.is-done{background:var(--rojo);border-color:var(--rojo)}
.cx-eval,.cx-cert-cta{border-color:#f0d3d4}
.cx-ok{color:#1f6b40;font-weight:700}

/* Lesson content */
.cx-lesson .cx-content{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:28px 32px;margin-top:8px}
.cx-content h3{font-size:1.05rem;margin:22px 0 8px}
.cx-content p{margin:0 0 12px}
.cx-content ol,.cx-content ul{margin:0 0 14px;padding-left:22px}
.cx-content li{margin-bottom:6px}
.cx-key{background:#fff7f0;border-left:4px solid var(--rojo);padding:12px 16px;border-radius:6px}
.cx-act{background:var(--gris-suave);border:1px dashed var(--gris-med);padding:12px 16px;border-radius:8px}
.cx-lesson__nav{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:14px}

/* Quiz */
.cx-q{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:20px 22px;margin:14px 0}
.cx-q__text{font-family:var(--tit);font-weight:600;margin-bottom:12px}
.cx-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--linea);border-radius:10px;margin-bottom:8px;cursor:pointer}
.cx-opt:hover{border-color:var(--rojo)}
.cx-opt input{accent-color:var(--rojo)}
.cx-q--review ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.cx-q--review li{padding:8px 12px;border-radius:8px;border:1px solid var(--linea)}
.cx-q--review li.is-correct{background:#eafaf0;border-color:#bfe6cd}
.cx-q--review li.is-wrong{background:#fdecec;border-color:#f5c2c2}
.cx-result{text-align:center;background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:28px;margin-bottom:20px}
.cx-result.is-pass{border-color:#bfe6cd}
.cx-result.is-fail{border-color:#f5c2c2}
.cx-result__score{font-family:var(--tit);font-weight:800;font-size:3rem;color:var(--rojo)}

@media(max-width:560px){
  .cx-h1{font-size:1.5rem}
  .cx-card{padding:22px}
}

/* ---------- Ejercicios en la lección ---------- */
.cx-btn--sm{padding:.5em 1em;font-size:.88rem}
.cx-ex{margin-top:26px;background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:24px 26px}
.cx-ex .cx-h2{margin-top:0}
.cx-exitem{border-top:1px solid var(--linea);padding:18px 0}
.cx-exitem:first-of-type{border-top:0}
.cx-exitem__q{margin-bottom:10px}
.cx-exarea{width:100%;font-family:var(--txt);font-size:1rem;padding:12px 14px;border:1px solid var(--linea);border-radius:10px;line-height:1.55;margin-bottom:10px}
.cx-exarea:focus{outline:none;border-color:var(--rojo)}
.cx-badfb{color:#c0392b;font-weight:600;margin-bottom:8px}
.cx-sent{color:#1f6b40;font-weight:600;margin-bottom:8px}
.cx-locked{font-family:var(--tit);font-weight:600;color:var(--gris-graf);background:#eef0f2;border-radius:999px;padding:.6em 1.1em}

/* ---------- Vídeo ---------- */
.cx-video{position:relative;aspect-ratio:16/9;border-radius:var(--radio);overflow:hidden;margin:8px 0 18px;background:#000}
.cx-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cx-video--soon{display:grid;place-items:center;background:linear-gradient(150deg,var(--grafito),#3a3f45)}
.cx-video--soon span{color:#fff;font-family:var(--tit);font-weight:600;opacity:.85}
.cx-aiwarn{background:#fff7f0;border:1px solid #f4d9b8;color:#7a5320;border-radius:10px;padding:12px 16px;font-size:.9rem;margin:6px 0 14px}
.cx-pastewarn{display:none;color:#c0392b;font-weight:600;font-size:.85rem;margin:4px 0 8px}

/* ===== Compra de cursos (Stripe) ===== */
.cx-price{font-family:var(--tit);font-weight:800;font-size:1.35rem;color:var(--grafito);margin:10px 0 12px}
.cx-price small{font-family:inherit;font-weight:600;font-size:.72rem;color:var(--gris-graf)}
.cx-buy__grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:start;margin-top:12px}
.cx-buy__list{list-style:none;padding:0;margin:20px 0 0}
.cx-buy__list li{position:relative;padding:7px 0 7px 28px}
.cx-buy__list li::before{content:"✓";position:absolute;left:0;top:6px;color:var(--rojo);font-weight:800}
.cx-buy__card{position:sticky;top:24px}
.cx-buy__price{font-family:var(--tit);font-weight:800;font-size:2.4rem;line-height:1;color:var(--grafito);margin:4px 0 6px}
.cx-buy__small{font-size:.85rem;margin:0 0 14px}
.cx-buy__methods{font-size:.88rem;font-weight:700;color:var(--grafito);margin:16px 0 4px;text-align:center}
.cx-accept{display:flex !important;font-family:var(--txt) !important;gap:10px;align-items:flex-start;font-size:.88rem;line-height:1.45;font-weight:400 !important}
.cx-accept input{width:18px !important;padding:0 !important;height:18px;margin-top:2px;flex:0 0 auto;accent-color:var(--rojo)}
.cx-accept a{color:var(--rojo)}
.cx-btn--block{display:block;width:100%;text-align:center}
@media (max-width:820px){.cx-buy__grid{grid-template-columns:1fr;gap:24px}.cx-buy__card{position:static}}

/* ===== Logo y recuperar contraseña ===== */
.cx-brand__logo{height:40px;width:auto;display:block}
.cx-brand__tag{font-family:var(--tit);font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rojo);background:rgba(230,64,70,.1);padding:4px 10px;border-radius:999px}
.cx-forgot{margin:12px 0 0;font-size:.9rem}
.cx-forgot a,.cx-auth .cx-muted a{color:var(--rojo);font-weight:700}
@media(max-width:560px){.cx-brand__logo{height:32px}.cx-brand__tag{display:none}}
/* Contenido de lecciones: plantillas de prompt y tablas */
.cx-prompt{background:#f6f8fb;border:1px solid var(--linea);border-left:4px solid #2b6cb0;border-radius:8px;padding:12px 16px;margin:0 0 14px;font-size:.95rem;line-height:1.55}
.cx-content table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:.93rem}
.cx-content th,.cx-content td{border:1px solid var(--linea);padding:8px 10px;text-align:left;vertical-align:top}
.cx-content th{background:var(--gris-suave);font-weight:700}
.cx-content code{background:var(--gris-suave);padding:1px 5px;border-radius:4px;font-size:.9em}
@media (max-width:640px){.cx-content table{display:block;overflow-x:auto}}
