:root{--tinta:#1f2933;--suave:#5f6b7a;--linea:#d9dee5;--fondo:#f5f7fa;--azul:#1d4ed8;--azul2:#e8efff;--ok:#0f7b45;--okf:#e6f5ec;--warn:#9a6700;--warnf:#fff6db;--mal:#b42318;--malf:#fdecea}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--tinta);background:var(--fondo)}
a{color:var(--azul)}h1{font-size:1.45rem;margin:.2rem 0 1rem}h2{font-size:1.1rem;margin:1.8rem 0 .6rem}h3{font-size:1rem;margin:1.2rem 0 .5rem}
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;background:#14213d;color:#fff;padding:.7rem 1.2rem}.top a{color:#cfe0ff}
.marca{font-weight:700;font-size:1.05rem}.marca small{display:block;font-weight:400;font-size:.8rem;color:#c8d3e6}.usr{font-size:.85rem}
.menu{display:flex;flex-wrap:wrap;gap:.2rem;background:#fff;border-bottom:1px solid var(--linea);padding:.3rem 1rem}.menu a{padding:.45rem .7rem;border-radius:6px;text-decoration:none;color:var(--tinta)}
.menu a.on,.menu a:hover{background:var(--azul2);color:var(--azul)}.menu .sep{flex:0 0 1px;background:var(--linea);margin:.2rem .5rem}
main{max-width:1200px;margin:0 auto;padding:1.2rem}footer{text-align:center;color:var(--suave);font-size:.75rem;padding:2rem 1rem}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--linea);margin:.4rem 0 1rem;font-size:.9rem}th,td{padding:.45rem .55rem;border-bottom:1px solid var(--linea);text-align:left;vertical-align:top}
th{background:#eef1f5;font-weight:600;font-size:.82rem}td.n,th.n{text-align:right;white-space:nowrap}tr.tot td{font-weight:700;background:#fafbfc}tr.mal td{background:var(--malf)}
.card{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:1rem 1.1rem;margin:.6rem 0 1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem 1rem}.grid .full,.grid label:has(textarea){grid-column:1/-1}
label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}label span{font-weight:600;color:#38424e}label small{color:var(--suave);font-size:.78rem}
label.chk{flex-direction:row;align-items:center;gap:.5rem;font-weight:600}
input,select,textarea{font:inherit;padding:.45rem .55rem;border:1px solid #c4ccd6;border-radius:6px;background:#fff;width:100%}input[type=checkbox]{width:auto}
input:focus,select:focus,textarea:focus{outline:2px solid #9db6f5;border-color:var(--azul)}
button,.btn{display:inline-block;font:inherit;font-weight:600;padding:.5rem .95rem;border-radius:6px;border:0;background:var(--azul);color:#fff;cursor:pointer;text-decoration:none}
button:disabled{background:#9aa5b1;cursor:not-allowed}button.sec{background:#e3e8ef;color:var(--tinta)}button.peligro{background:var(--mal)}
button.link{background:none;color:var(--azul);padding:0;font-weight:400;text-decoration:underline}form.inline{display:inline}
.barra{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.4rem 0 .8rem}.barra input{max-width:360px}.barra select{max-width:240px}
.msg{padding:.6rem .85rem;border-radius:8px;margin:.5rem 0;border:1px solid}.msg.ok{background:var(--okf);border-color:#a7dcbd;color:var(--ok)}
.msg.warn{background:var(--warnf);border-color:#f0d58a;color:var(--warn)}.msg.error{background:var(--malf);border-color:#f3b8b2;color:var(--mal)}
.nota{color:var(--suave);font-size:.85rem}.tag{display:inline-block;padding:.05rem .45rem;border-radius:99px;background:#e3e8ef;font-size:.78rem}.tag.warn{background:var(--warnf);color:var(--warn)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}.kpi{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:.9rem}
.kpi b{display:block;font-size:1.3rem}.kpi span{color:var(--suave);font-size:.82rem}
.etapas{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.et{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:.8rem;text-decoration:none;color:var(--tinta)}
.et b{display:block;font-size:1.4rem;color:var(--azul)}.et span{font-weight:600;font-size:.85rem}.et small{display:block;color:var(--suave)}
.pasos{display:flex;flex-wrap:wrap;gap:.3rem;margin:.6rem 0 1rem}.pasos a{flex:1 1 140px;text-align:center;padding:.5rem;border-radius:8px;background:#e9edf2;color:var(--suave);text-decoration:none;font-size:.85rem;font-weight:600;border:2px solid transparent}
.pasos a.hecho{background:var(--okf);color:var(--ok)}.pasos a.actual{background:var(--azul);color:#fff}.pasos a.ver{border-color:#14213d}
.resumen p{margin:.2rem 0}.acciones{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:.5rem 0}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}
.cols .card label{margin-bottom:.5rem}.cierre-etapa{border-left:4px solid var(--azul)}.login{max-width:420px}.login label{margin-bottom:.7rem}ul.lista li{margin:.4rem 0}
details{margin-top:.8rem}details form{display:flex;gap:.5rem;margin-top:.5rem}
@media print{.top,.menu,footer,form,.acciones{display:none}}

.guia{background:var(--azul2);border-left:4px solid var(--azul);border-radius:8px;padding:.7rem .9rem;margin:.4rem 0 .8rem;font-size:.9rem}
.fila{display:flex;gap:.5rem}.checks{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:.2rem 0 .4rem}.checks label.chk{font-weight:400}
.sugs{display:flex;flex-wrap:wrap;gap:.35rem}.chip{background:#eef1f5;color:var(--tinta);font-weight:400;font-size:.8rem;padding:.3rem .6rem;border-radius:99px;border:1px solid var(--linea)}
.chip.on,.chip:hover{background:var(--azul2);border-color:var(--azul);color:var(--azul)}.dif{color:var(--mal)}
details summary{cursor:pointer;color:var(--azul);margin:.4rem 0}
