:root{--tinta:#1b2733;--tenue:#5d6b79;--fondo:#f2f4f6;--papel:#fff;--linea:#d9dee3;--acento:#0f5c6e;--acento-osc:#0a4452;
--verde:#1e8e5a;--amarillo:#e3a400;--rojo:#c8372d;--gris:#8a94a0;--r:10px}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--tinta);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--acento)}
.barra{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;background:var(--tinta);color:#fff;padding:10px 20px}
.barra a{color:#fff;text-decoration:none}
.marca{font-weight:700;font-size:1.05rem}
.barra nav{display:flex;flex-wrap:wrap;gap:4px}
.barra nav a{padding:6px 12px;border-radius:8px;color:#cfd8e0}
.barra nav a.activo,.barra nav a:hover{background:#2c3b4a;color:#fff}
.quien{margin-left:auto;font-size:.9rem;color:#cfd8e0}
.contenedor{max-width:1080px;margin:0 auto;padding:22px 16px 60px}
h1{font-size:1.6rem;margin:.2em 0 .6em}h2{font-size:1.2rem;margin:1.6em 0 .5em}h3{font-size:1.02rem;margin:1em 0 .3em}
.tenue{color:var(--tenue);font-size:.9rem}
.aviso{padding:12px 16px;border-radius:var(--r);margin-bottom:14px;border:1px solid}
.aviso.ok{background:#e6f4ec;border-color:#a8d5bb}.aviso.error{background:#fbeaea;border-color:#e3a9a5}.aviso.info{background:#e8f1f5;border-color:#a9c9d4}
.tarjeta{background:var(--papel);border:1px solid var(--linea);border-radius:var(--r);padding:16px 18px;margin-bottom:14px}
.cuadricula{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:18px}
.cifra{background:var(--papel);border:1px solid var(--linea);border-radius:var(--r);padding:12px 16px}
.cifra b{display:block;font-size:1.8rem;line-height:1.1}
/* semáforo */
.semaforo{display:inline-flex;flex-direction:column;gap:4px;background:#1b2128;padding:6px;border-radius:12px;flex:none}
.semaforo i{width:16px;height:16px;border-radius:50%;background:#39424c;display:block}
.semaforo.grande i{width:26px;height:26px}.semaforo.grande{padding:9px;gap:6px;border-radius:16px}
.semaforo i.rojo.on{background:var(--rojo);box-shadow:0 0 10px var(--rojo)}
.semaforo i.amarillo.on{background:var(--amarillo);box-shadow:0 0 10px var(--amarillo)}
.semaforo i.verde.on{background:var(--verde);box-shadow:0 0 10px var(--verde)}
.s-gris i{opacity:.5}
.fila-proy{display:flex;gap:16px;align-items:center;text-decoration:none;color:inherit}
.fila-proy:hover{border-color:var(--acento)}
.fila-proy .info{flex:1;min-width:0}
.fila-proy .nombre{font-weight:700;font-size:1.1rem}
.progreso{height:8px;background:#e6eaee;border-radius:99px;overflow:hidden;margin:8px 0 4px;max-width:340px}
.progreso span{display:block;height:100%;background:var(--acento)}
.pildora{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.82rem;background:#e6eaee;color:var(--tinta);white-space:nowrap}
.pildora.verificado,.pildora.aprobada,.pildora.activo{background:#d6efe1;color:#14603c}
.pildora.recibido,.pildora.en_revision,.pildora.evaluacion{background:#fdeebb;color:#7a5600}
.pildora.observado,.pildora.observada,.pildora.rechazada{background:#f7d5d2;color:#8d221a}
.pildora.pendiente{background:#e6eaee}.pildora.remax{background:#dbe9ef;color:#0a4452}.pildora.descartado{background:#d9dde1}
/* pestañas */
.pestanas{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--linea);margin:18px 0}
.pestanas a{padding:9px 14px;text-decoration:none;color:var(--tenue);border-radius:8px 8px 0 0;font-weight:600}
.pestanas a.activo{color:var(--acento);background:var(--papel);border:1px solid var(--linea);border-bottom:2px solid var(--papel);margin-bottom:-2px}
.cabecera-proy{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
/* formularios */
label{display:block;font-weight:600;margin:12px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;max-width:520px;padding:10px 12px;border:1px solid #b9c2cb;border-radius:8px;font:inherit;background:#fff}
textarea{min-height:80px}
input[type=file]{max-width:100%}
.marca-check{display:flex;gap:10px;align-items:center;font-weight:400;margin:8px 0}.marca-check input{width:20px;height:20px}
.btn,button{background:var(--acento);color:#fff;border:0;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer}
.btn:hover,button:hover{background:var(--acento-osc)}
.btn.sec{background:#fff;color:var(--acento);border:1px solid var(--acento)}
.btn.peligro{background:var(--rojo)}.btn.ok{background:var(--verde)}
:focus-visible{outline:3px solid #7fb6c4;outline-offset:2px}
.en-linea{display:inline-block;margin:2px 4px 2px 0}
.acciones{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
/* documentos */
.doc{background:var(--papel);border:1px solid var(--linea);border-radius:var(--r);margin-bottom:8px}
.doc>summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;cursor:pointer;list-style:none}
.doc>summary::-webkit-details-marker{display:none}
.doc>summary .nom{flex:1;min-width:220px;font-weight:600}
.doc .cuerpo{padding:4px 16px 16px;border-top:1px solid var(--linea)}
.doc.opcional>summary .nom{font-weight:400}
ul.archivos{margin:6px 0;padding-left:18px}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--linea);vertical-align:top}
.arbol{list-style:none;padding-left:0}.arbol ul{list-style:none;padding-left:22px;border-left:2px solid var(--linea);margin-left:8px}
.arbol li{margin:6px 0}
.login{max-width:420px;margin:8vh auto}
@media (max-width:640px){.fila-proy{align-items:flex-start}.quien{margin-left:0;width:100%}}
@media (prefers-reduced-motion:no-preference){.progreso span{transition:width .3s}}
