:root{--navy:#1B2559;--navy2:#2C3C8C;--navy-l:#E9ECF8;--green:#2E9D5B;--green-l:#E4F4EA;--bg:#F4F6FB;--ink:#1B2233;--muted:#5D667C;--line:#E0E4EE;--red:#D04545;--red-l:#FCE9E9;--amber-l:#FFF5DB}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Poppins,system-ui,sans-serif;font-size:15px;line-height:1.55}
a{color:var(--navy2)}
.top{background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(16px,4vw,48px);flex-wrap:wrap}
.top .marca{color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px}
.top .tag{background:#fff;color:var(--navy);font-weight:700;border-radius:0 10px 0 10px;padding:3px 12px;font-size:14px}
.top .sub{opacity:.8;font-size:13px}
.top nav{display:flex;gap:6px;flex-wrap:wrap}
.top nav a{color:#fff;text-decoration:none;font-size:14px;padding:6px 12px;border-radius:8px;background:rgba(255,255,255,.1)}
.top nav a:hover{background:rgba(255,255,255,.22)}
.wrap{max-width:1180px;margin:0 auto;padding:28px clamp(16px,4vw,48px) 48px}
h1,h2,h3{color:var(--navy);line-height:1.2;margin:0 0 .45em}
h1{font-size:clamp(26px,3.4vw,38px)}
h2{font-size:24px;margin-top:6px}
h3{font-size:17px}
.muted{color:var(--muted)}.small{font-size:13px}
.kicker{display:inline-block;background:var(--navy);color:#fff;font-weight:600;font-size:13px;border-radius:0 10px 0 10px;padding:4px 12px;margin-bottom:10px}
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:center;margin-bottom:34px}
.hero img{width:100%;height:auto;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(27,37,89,.12)}
@media (max-width:860px){.hero{grid-template-columns:1fr}}
section{margin-bottom:34px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width:980px){.grid4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:0 1px 2px rgba(20,30,60,.04)}
.card .btn{margin-top:6px}
.tip{display:block;font-size:12px;color:var(--muted);margin-top:8px}
.btn{display:inline-block;border:0;border-radius:9px;padding:10px 18px;font:600 14px Poppins,sans-serif;background:var(--navy);color:#fff;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--navy2)}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn.ghost:hover{background:var(--navy-l)}
.btn.green{background:var(--green)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.form-card{padding:24px 26px}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin:14px 0 18px}
.campos.uno{grid-template-columns:1fr}
.campos .ancho{grid-column:1/-1}
@media (max-width:700px){.campos{grid-template-columns:1fr}}
label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px;color:var(--navy)}
input[type=text],input[type=email],input[type=password],input[type=search],select,textarea{font:400 15px Poppins,sans-serif;border:1px solid #CCD2E0;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink)}
input[type=file]{font:400 14px Poppins,sans-serif;border:1px dashed #AEB6CC;border-radius:9px;padding:10px;background:var(--bg)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy2);outline-offset:1px}
.aviso{border-radius:10px;padding:12px 16px;margin:0 0 16px}
.aviso.ok{background:var(--green-l);color:#1E6E40;border:1px solid #BFE5CC}
.aviso.error{background:var(--red-l);color:#9A2A2A;border:1px solid #F3C6C6}
.aviso ul{margin:6px 0 0 18px;padding:0}
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0 12px}
.filtros input[type=search]{min-width:260px}
.opt{flex-direction:row;align-items:center;font-weight:500;color:var(--ink)}
.tabla-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
.tabla{border-collapse:collapse;width:100%;font-size:14px}
.tabla th{background:var(--navy);color:#fff;text-align:left;font-weight:600;padding:10px 12px;white-space:nowrap}
.tabla td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.tabla tr:nth-child(even) td{background:#FAFBFD}
.pill{display:inline-block;font-size:11px;font-weight:600;border-radius:20px;padding:1px 8px;background:var(--amber-l);color:#8a6200}
.stat .num{font-size:34px;font-weight:700;color:var(--navy);line-height:1.1}
.pie{text-align:center;color:var(--muted);font-size:12px;padding:20px}
.card.mat{display:flex;flex-direction:column}
.card.mat .btn{margin-top:auto;align-self:flex-start}
.login{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;max-width:1050px;margin:24px auto}
.login img{width:100%;height:auto;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(27,37,89,.12)}
@media (max-width:860px){.login{grid-template-columns:1fr}}
.clave-wrap{position:relative;display:block}
.clave-wrap input{width:100%;padding-right:46px}
.ojo{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#5D667C;cursor:pointer;padding:6px;border-radius:7px;display:flex}
.ojo:hover{background:#E9ECF8;color:#1B2559}
.ojo .ce{display:none}.ojo.on .ab{display:none}.ojo.on .ce{display:block}
.aviso.info{background:#E9ECF8;color:#1B2559;border:1px solid #CCD3F0}
.pasos{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:14px 0 0;counter-reset:p}
.pasos li{counter-increment:p;font-size:13px;font-weight:600;color:#5D667C;background:#fff;border:1px solid var(--line);border-radius:20px;padding:5px 12px 5px 6px;display:flex;align-items:center;gap:6px}
.pasos li:before{content:counter(p);display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#E9ECF8;color:#1B2559;font-size:11px}
.pasos li.actual{border-color:var(--navy2);color:var(--navy)}
.pasos li.actual:before{background:var(--navy);color:#fff}
.pasos li.listo{color:#1E6E40;border-color:#BFE5CC;background:var(--green-l)}
.pasos li.listo:before{content:'✓';background:var(--green);color:#fff}
.registrado{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.reg-grid{display:grid;grid-template-columns:2fr 1fr;gap:28px;align-items:start}
.ya-registrado{background:var(--bg);border-radius:12px;padding:16px 18px}
@media (max-width:860px){.reg-grid{grid-template-columns:1fr}}
.ex-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.avance{font-size:15px;color:var(--muted)}.avance b{font-size:22px;color:var(--green)}
.barra{height:8px;background:var(--navy-l);border-radius:6px;overflow:hidden;margin:6px 0 12px}
.barra i{display:block;height:100%;background:linear-gradient(90deg,var(--navy2),var(--green))}
.acts{display:flex;flex-direction:column;gap:8px}
.act{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff}
.act.hecha{background:#F6FBF8;border-color:#CFEBD9}
.act.final{border:2px solid var(--navy2)}
.act-info{display:flex;gap:12px;align-items:center;min-width:280px;flex:1}
.clave{font:700 12px/1 'JetBrains Mono',Consolas,monospace;background:var(--navy);color:#fff;border-radius:7px;padding:7px 8px;min-width:58px;text-align:center}
.act.hecha .clave{background:var(--green)}
.act-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.act-form input[type=file]{max-width:260px;padding:6px}
.act-form input[type=text]{min-width:220px;padding:8px 10px}
.ok-txt{color:#1E6E40}
.tabs-admin{display:flex;gap:8px;margin:20px 0 0}
.matriz td.celda{text-align:center;font-weight:700;width:52px}
.matriz td.si{background:#E4F4EA}.matriz td.si a{color:#1E6E40;text-decoration:none;font-size:16px}
.matriz td.no{color:#B8BFCF}
.matriz th{text-align:center}.matriz th:first-child,.matriz th:nth-child(2){text-align:left}
.row-btn{display:flex;gap:10px;flex-wrap:wrap}
.codigo{background:#0F1733;color:#E8ECFF;border-radius:10px;padding:12px 14px;overflow-x:auto;font-size:13px}
