/* ============ ZETRUM PERU — UI v2 ============ */
:root{
  --azul:#1d4e8f;--azul-osc:#0f1c33;--azul-medio:#16294a;
  --gold:#e2aa1f;--gold-osc:#b8860b;
  --gris:#f1f4f9;--borde:#e3e8f0;--texto:#26303e;
  --rojo:#d64541;--verde:#27ae60;
  --sombra:0 1px 3px rgba(15,28,51,.08),0 4px 14px rgba(15,28,51,.06);
  --sombra-hover:0 8px 28px rgba(15,28,51,.16);
  --radio:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;color:var(--texto);background:var(--gris);line-height:1.6;font-size:15.5px}
a{color:var(--azul);text-decoration:none}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
img{max-width:100%}
::selection{background:#ffe9b3}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#c4cdda;border-radius:8px}
::-webkit-scrollbar-track{background:transparent}

/* ---------- Topbar pública ---------- */
.topbar{background:linear-gradient(90deg,var(--azul-osc),var(--azul-medio));position:sticky;top:0;z-index:50;box-shadow:0 2px 14px rgba(0,0,0,.3)}
.topbar .container{max-width:1320px}
.nav-flex{display:flex;align-items:center;gap:14px;padding:11px 20px;flex-wrap:nowrap}
.logo{font-size:1.25rem;font-weight:800;color:#fff;letter-spacing:.8px;white-space:nowrap}
.logo span{color:var(--gold)}
.mainnav{display:flex;gap:2px;flex:1;justify-content:center;flex-wrap:nowrap}
.mainnav a{color:#c4d2e6;font-weight:600;font-size:.9rem;padding:7px 11px;border-radius:9px;transition:.18s;white-space:nowrap}
.mainnav a:hover{color:#fff;background:rgba(255,255,255,.09)}
.nav-user{display:flex;gap:7px;align-items:center;flex-wrap:nowrap;margin-left:auto}
.nav-user .btn-sm{padding:7px 12px;font-size:.8rem;white-space:nowrap}
@media(max-width:1080px){
  .nav-flex{flex-wrap:wrap;justify-content:center;gap:8px;padding:10px 14px}
  .mainnav{order:3;width:100%;justify-content:center;flex-wrap:wrap}
  .nav-user{margin-left:0}
}

/* ---------- Botones ---------- */
.btn{display:inline-block;background:var(--azul);color:#fff;padding:10px 22px;border-radius:10px;border:none;font-weight:700;cursor:pointer;font-size:.93rem;transition:.18s;box-shadow:0 1px 3px rgba(15,28,51,.15)}
.btn:hover{background:var(--azul-medio);transform:translateY(-1px);box-shadow:0 5px 16px rgba(15,28,51,.25)}
.btn-gold{background:linear-gradient(135deg,#f0bb35,var(--gold-osc));color:#241a02}
.btn-gold:hover{background:linear-gradient(135deg,var(--gold-osc),#9a7009);color:#fff}
.btn-outline{background:transparent;border:1.5px solid #6e84a5;color:#cdd8e8;box-shadow:none}
.btn-outline:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-sm{padding:7px 14px;font-size:.83rem;border-radius:8px}
.btn-danger{background:var(--rojo)}
.btn-danger:hover{background:#b03a36}
.btn-verde{background:var(--verde)}
.btn-verde:hover{background:#1f8b4d}
.btn-wsp{background:#25d366;color:#fff;margin-top:8px}
.btn-block{display:block;width:100%;text-align:center}

/* ---------- Hero ---------- */
.hero{background:radial-gradient(1100px 500px at 75% -10%,#2d5a9e 0%,transparent 60%),linear-gradient(135deg,var(--azul-osc) 20%,var(--azul-medio) 70%,#1d3a66);color:#fff;padding:88px 0;text-align:center;position:relative;overflow:hidden}
.hero h1{font-size:2.7rem;margin-bottom:14px;letter-spacing:-.5px}
.hero h1 em{color:var(--gold);font-style:normal}
.hero p{font-size:1.15rem;color:#cfdcef;max-width:720px;margin:0 auto 30px}
.hero .btn{margin:0 6px;padding:13px 28px;font-size:1rem}

/* ---------- Secciones / Grids ---------- */
.seccion{padding:58px 0}
.seccion h2{font-size:1.85rem;color:var(--azul-osc);margin-bottom:6px;letter-spacing:-.4px}
.seccion .sub{color:#69758a;margin-bottom:28px}
.grid{display:grid;gap:22px}
.grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}

/* ---------- Cards ---------- */
.card{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden;transition:.22s;display:flex;flex-direction:column;box-shadow:var(--sombra)}
.card:hover{transform:translateY(-5px);box-shadow:var(--sombra-hover);border-color:#cfd9e8}
.card-img{height:150px;background:linear-gradient(135deg,var(--azul-medio),#2d5a9e 70%,#3f74c4);display:flex;align-items:center;justify-content:center;font-size:3rem;color:#fff}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-body{padding:18px;flex:1;display:flex;flex-direction:column;gap:8px}
.card-body h3{font-size:1.05rem;color:var(--azul-osc);line-height:1.35}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{font-size:.71rem;font-weight:700;padding:3px 10px;border-radius:99px;background:#eef2f8;color:var(--azul)}
.badge.gold{background:#fcf2d5;color:#92690a}
.badge.verde{background:#e3f6eb;color:#1c7a40}
.badge.rojo{background:#fdeae8;color:#b03a36}
.precio{margin-top:auto;display:flex;align-items:baseline;gap:8px}
.precio .actual{font-size:1.3rem;font-weight:800;color:var(--azul-osc)}
.precio .antes{text-decoration:line-through;color:#9aa3b2;font-size:.9rem}
.meta{font-size:.84rem;color:#69758a}

.cat-card{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:26px 20px;text-align:center;font-weight:700;color:var(--azul-osc);transition:.2s;box-shadow:var(--sombra)}
.cat-card:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:var(--sombra-hover)}
.cat-card .ico{font-size:2.3rem;display:block;margin-bottom:10px}

.serv-card{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:30px 26px;text-align:center;box-shadow:var(--sombra);transition:.2s}
.serv-card:hover{transform:translateY(-4px);box-shadow:var(--sombra-hover)}
.serv-card .ico{font-size:2.6rem}
.serv-card h3{color:var(--azul-osc);margin:12px 0 6px}

/* ---------- Forms ---------- */
.form-box{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:32px;max-width:520px;margin:40px auto;box-shadow:var(--sombra)}
.form-box.ancho{max-width:860px}
label{display:block;font-weight:700;font-size:.85rem;margin:14px 0 5px;color:var(--azul-osc)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;padding:11px 13px;border:1.5px solid var(--borde);border-radius:10px;font-size:.93rem;font-family:inherit;background:#fbfcfe;transition:.15s}
input[type=color]{width:100%;height:42px;border:1.5px solid var(--borde);border-radius:10px;background:#fff;cursor:pointer}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--azul);background:#fff;box-shadow:0 0 0 3px rgba(29,78,143,.12)}
textarea{min-height:110px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}

/* ---------- Alerts ---------- */
.alert{padding:13px 16px;border-radius:11px;margin:16px 0;font-weight:600;border:1px solid;display:flex;align-items:center;gap:8px}
.alert-ok{background:#e9f9f0;color:#157347;border-color:#b7e4c7}
.alert-error{background:#fdeeec;color:#a93226;border-color:#f3c1bc}
.alert-info{background:#ebf3fd;color:#1a5276;border-color:#bcd8f5}

/* ---------- Tablas ---------- */
.tabla{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--radio);overflow:hidden;border:1px solid var(--borde);box-shadow:var(--sombra)}
.tabla th{background:linear-gradient(90deg,var(--azul-osc),var(--azul-medio));color:#fff;text-align:left;padding:12px 14px;font-size:.8rem;letter-spacing:.4px;text-transform:uppercase}
.tabla td{padding:11px 14px;border-top:1px solid #eef1f6;font-size:.91rem;vertical-align:middle}
.tabla tr:nth-child(even) td{background:#fafbfd}
.tabla tr:hover td{background:#f1f6fd}
.tabla code{background:#eef2f8;padding:2px 8px;border-radius:6px;font-size:.85rem;color:var(--azul)}

/* ---------- Detalle curso ---------- */
.curso-head{background:linear-gradient(135deg,var(--azul-osc),var(--azul-medio) 70%,#1d3a66);color:#fff;padding:50px 0}
.curso-head h1{font-size:2rem;margin:10px 0;letter-spacing:-.4px}
.curso-head .meta{color:#c2d1e6}
.curso-grid{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start;margin-top:-30px}
.panel{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:24px;box-shadow:var(--sombra)}
.panel h2{font-size:1.2rem;color:var(--azul-osc);margin-bottom:12px}
.box-compra{position:sticky;top:84px}
.box-compra .precio .actual{font-size:1.9rem}

/* ---------- Temario ---------- */
.temario{list-style:none}
.temario li{padding:9px 12px;border-bottom:1px solid var(--gris);display:flex;gap:10px;align-items:baseline;border-radius:8px}
.temario .num{font-weight:800;color:var(--gold-osc);min-width:48px}
.temario .niv-0{font-weight:800;color:var(--azul-osc);background:#f3f7fd}
.temario li a{flex:1}
.temario li:hover{background:#f6f9fe}

/* ================== ADMIN v2 ================== */
.admin-layout{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.sidebar{background:linear-gradient(180deg,var(--azul-osc) 0%,#13233f 100%);padding:22px 12px;color:#fff;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar::-webkit-scrollbar-thumb{background:#2c3e5c}
.sidebar .logo{display:block;padding:4px 12px 18px;font-size:1.12rem;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:14px}
.sidebar .grupo{font-size:.66rem;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#5e7396;padding:14px 14px 6px}
.sidebar a.item{display:flex;align-items:center;gap:10px;color:#aebdd4;padding:10px 14px;font-weight:600;font-size:.9rem;border-radius:10px;margin:2px 0;transition:.16s}
.sidebar a.item:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar a.item.act{background:linear-gradient(90deg,rgba(226,170,31,.18),rgba(226,170,31,.05));color:#ffd877;box-shadow:inset 3px 0 0 var(--gold)}
.admin-main{padding:30px 34px;max-width:1160px;width:100%}
.admin-main h1{color:var(--azul-osc);font-size:1.45rem;margin-bottom:20px;letter-spacing:-.3px}
.admin-main h1::after{content:'';display:block;width:52px;height:4px;background:linear-gradient(90deg,var(--gold),transparent);border-radius:4px;margin-top:8px}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:16px;margin-bottom:28px}
.stat{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:20px;box-shadow:var(--sombra);position:relative;overflow:hidden;transition:.2s}
.stat:hover{transform:translateY(-3px);box-shadow:var(--sombra-hover)}
.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--azul),var(--gold))}
.stat .n{font-size:1.85rem;font-weight:800;color:var(--azul-osc);letter-spacing:-.5px}
.stat .l{font-size:.8rem;color:#69758a;font-weight:700;text-transform:uppercase;letter-spacing:.5px}

.acciones-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap}

/* ---------- Footer ---------- */
.footer{background:linear-gradient(180deg,var(--azul-osc),#0a1322);color:#c2d1e6;margin-top:60px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px;padding:46px 20px}
.footer h3,.footer h4{color:#fff;margin-bottom:10px}
.footer a{display:block;color:#c2d1e6;padding:3px 0;transition:.15s}
.footer a:hover{color:var(--gold);padding-left:4px}
.copy{text-align:center;padding:16px;border-top:1px solid rgba(255,255,255,.1);font-size:.84rem;color:#8fa1bd}

/* ---------- Aula ---------- */
.aula-grid{display:grid;grid-template-columns:330px 1fr;gap:24px;align-items:start}
.video-frame{aspect-ratio:16/9;width:100%;border:none;border-radius:12px;background:#000;box-shadow:var(--sombra)}

/* ---------- Editor de certificados ---------- */
.editor-wrap{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}
.lienzo-scroll{overflow:auto;background:#76808f;padding:26px;border-radius:var(--radio)}
#lienzo{position:relative;margin:0 auto;box-shadow:0 10px 40px rgba(0,0,0,.45);background-size:cover;background-position:center}
.campo-cert{position:absolute;cursor:move;white-space:nowrap;user-select:none;padding:2px 6px;border:1px dashed transparent}
.campo-cert:hover,.campo-cert.sel{border-color:#e74c3c;background:rgba(231,76,60,.07)}

/* ---------- Certificado impresión ---------- */
.cert-page{position:relative;margin:20px auto;box-shadow:0 6px 30px rgba(0,0,0,.35);background-size:cover;background-position:center;overflow:hidden}
.cert-campo{position:absolute;white-space:nowrap}
@media print{
  body{background:#fff}
  .no-print{display:none!important}
  .cert-page{box-shadow:none;margin:0}
  @page{size:landscape;margin:0}
}

/* ---------- Tablas con scroll horizontal en pantallas chicas ---------- */
@media(max-width:980px){
  .tabla{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tabla th,.tabla td{white-space:nowrap}
}

@media(max-width:900px){
  .curso-grid,.aula-grid,.editor-wrap{grid-template-columns:1fr}
  .admin-layout{grid-template-columns:1fr}
  .sidebar{position:static;height:auto;display:flex;flex-wrap:wrap;gap:2px;padding:10px}
  .sidebar .logo{border:none;padding:6px 10px;margin:0;width:100%}
  .sidebar .grupo{display:none}
  .sidebar a.item{padding:8px 12px}
  .admin-main{padding:20px 16px}
  .form-row,.form-row-3{grid-template-columns:1fr}
  .hero h1{font-size:1.8rem}
  .box-compra{position:static}
}

/* ---------- Celulares ---------- */
@media(max-width:640px){
  body{font-size:15px}
  .container{padding:0 14px}
  .seccion{padding:36px 0}
  .seccion h2{font-size:1.45rem}
  .grid{gap:14px}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:1fr}
  .hero{padding:48px 0}
  .hero h1{font-size:1.55rem}
  .hero p{font-size:.98rem}
  .hero .btn{display:block;margin:10px auto;max-width:280px}
  .logo{font-size:1.05rem}
  .mainnav a{font-size:.82rem;padding:5px 8px}
  .nav-user .btn-sm{padding:6px 10px;font-size:.74rem}
  .curso-head{padding:30px 0}
  .curso-head h1{font-size:1.4rem}
  .panel{padding:16px}
  .form-box{padding:20px;margin:20px auto}
  .acciones-top{flex-direction:column;align-items:stretch}
  .acciones-top input,.acciones-top select,.acciones-top .btn{width:100%;max-width:100%!important}
  .stats{grid-template-columns:1fr 1fr;gap:10px}
  .stat{padding:14px}
  .stat .n{font-size:1.4rem}
  .admin-main{padding:14px 10px}
  .admin-main h1{font-size:1.2rem}
  .footer-grid{padding:30px 16px;gap:20px}
  .temario .num{min-width:38px}
  .btn{padding:10px 16px}
  .card-img{height:120px}
  .lienzo-scroll{padding:12px}
  .video-frame{border-radius:8px}
  /* Chat IA en celular */
  #iaChat{width:calc(100vw - 16px)!important;right:8px!important;bottom:8px!important;height:80vh!important}
  #iaBtn{right:14px!important;bottom:14px!important;padding:12px 18px!important;font-size:.85rem!important}
  #iaInput{font-size:16px!important}
}
@media(max-width:400px){
  .grid-4{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
}
