:root { --fondo:#f4f5f7; --texto:#1c2430; --suave:#5b6675; --marca:#1f4e79; --borde:#d5dae1; --error:#9b1c1c; --ok:#1d6b3a; --info:#1f4e79; }
* { box-sizing: border-box; }
body { margin:0; background:var(--fondo); color:var(--texto); font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
.barra { display:flex; flex-wrap:wrap; gap:.5rem 1rem; justify-content:space-between; align-items:center; padding:.75rem 1rem; background:var(--marca); color:#fff; }
.barra a, .barra .enlace { color:#fff; text-decoration:none; font-size:.95rem; }
.barra .marca { font-weight:600; }
.barra nav { display:flex; gap:1rem; align-items:center; }
.barra form { margin:0; }
.enlace { background:none; border:0; padding:0; cursor:pointer; font:inherit; text-decoration:underline; }
.contenedor { max-width:960px; margin:0 auto; padding:1rem; }
.tarjeta { background:#fff; border:1px solid var(--borde); border-radius:10px; padding:1.25rem; margin-top:1rem; }
.angosta { max-width:420px; margin-left:auto; margin-right:auto; }
h1 { font-size:1.4rem; margin:0 0 .5rem; }
.sub { color:var(--suave); margin-top:0; }
label { display:block; margin:.9rem 0 .25rem; font-weight:600; }
input[type=email], input[type=password], input[type=text] { width:100%; padding:.75rem; font-size:1rem; border:1px solid var(--borde); border-radius:8px; }
.boton { width:100%; margin-top:1.25rem; padding:.85rem; font-size:1rem; font-weight:600; color:#fff; background:var(--marca); border:0; border-radius:8px; cursor:pointer; }
.alerta { padding:.7rem .9rem; border-radius:8px; border:1px solid; }
.alerta.error { color:var(--error); background:#fdecec; border-color:#f3bcbc; }
.alerta.ok { color:var(--ok); background:#e8f6ed; border-color:#b5dfc3; }
.alerta.info { color:var(--info); background:#e8f0f8; border-color:#b9cfe6; }
.insignia { display:inline-block; padding:.1rem .6rem; border-radius:999px; background:#e8f0f8; color:var(--info); font-weight:600; }
a { color:var(--marca); }

/* --- Etapa 3A --- */
h2 { font-size:1.1rem; margin:0 0 .6rem; }
.encabezado { display:flex; flex-wrap:wrap; gap:.5rem 1rem; justify-content:space-between; align-items:center; margin-top:.5rem; }
.encabezado h1 { margin:0; }
.selector-mes { display:flex; align-items:center; gap:.5rem; margin:0; }
.selector-mes input { padding:.5rem; font-size:1rem; border:1px solid var(--borde); border-radius:8px; }
.flecha { font-size:1.6rem; text-decoration:none; padding:0 .5rem; line-height:1; }
.acciones { display:flex; flex-wrap:wrap; gap:.5rem; margin:.75rem 0; align-items:center; }
.acciones form { margin:0; }
.boton.chico { width:auto; margin:0; padding:.55rem 1rem; display:inline-block; text-decoration:none; text-align:center; }
.boton.secundario { background:#fff; color:var(--marca); border:1px solid var(--marca); }
.boton.peligro { background:#9b1c1c; }
.peligro-texto { color:var(--error); }
.grilla-kpi { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr)); gap:.6rem; margin-top:.5rem; }
.kpi { background:#fff; border:1px solid var(--borde); border-radius:10px; padding:.7rem .9rem; }
.kpi span { display:block; font-size:.8rem; color:var(--suave); }
.kpi strong { font-size:1.2rem; }
.kpi-alerta { border-color:#e0b000; background:#fff8e1; }
.pe-espacio { border-style:dashed; color:var(--suave); }
.scroll { overflow-x:auto; }
.tabla { width:100%; border-collapse:collapse; font-size:.92rem; white-space:nowrap; }
.tabla th, .tabla td { padding:.5rem .6rem; border-bottom:1px solid var(--borde); text-align:left; }
.tabla .num { text-align:right; font-variant-numeric:tabular-nums; }
.tabla thead th { font-size:.8rem; color:var(--suave); font-weight:600; }
.tabla tbody tr[data-href] { cursor:pointer; }
.tabla tbody tr[data-href]:hover { background:#f0f4f9; }
.tabla tr.finde td:first-child { border-left:4px solid #9aa3af; }
.tabla.chica th, .tabla.chica td { padding:.4rem .6rem; }
.pill { display:inline-block; padding:.1rem .6rem; border-radius:999px; font-size:.8rem; font-weight:600; }
.pill-ok { background:#e1f4e7; color:#1d6b3a; }
.pill-warn { background:#fff3c4; color:#7a5a00; }
.pill-bad { background:#fbe0e0; color:#9b1c1c; }
.pill-na { background:#e6e9ee; color:#5b6675; }
.controles { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:.6rem; }
.control { border:1px solid var(--borde); border-radius:8px; padding:.6rem .8rem; }
.control p { margin:.3rem 0; }
.datos { display:grid; grid-template-columns:1fr 1fr; gap:.3rem .8rem; margin:0; }
.datos dt { color:var(--suave); }
.datos dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.nota { white-space:pre-wrap; }
.galeria { list-style:none; margin:0 0 1rem; padding:0; display:flex; flex-wrap:wrap; gap:.75rem; }
.galeria li { text-align:center; }
.galeria img { width:110px; height:110px; object-fit:cover; border-radius:8px; border:1px solid var(--borde); display:block; }
.galeria form { margin:.2rem 0 0; }
.icono-pdf { display:flex; align-items:center; justify-content:center; width:110px; height:110px; border-radius:8px; background:#fbe0e0; color:#9b1c1c; font-weight:700; }
fieldset.tarjeta { margin:1rem 0 0; }
fieldset legend { font-weight:700; padding:0 .4rem; }
textarea, input[type=date], input[type=month] { width:100%; padding:.75rem; font-size:1rem; border:1px solid var(--borde); border-radius:8px; font-family:inherit; }
input[type=text] { width:100%; }
.lista-archivos { list-style:none; padding:0; margin:.5rem 0; }
.lista-archivos .malo { color:var(--error); }
.form-archivos { margin-top:.5rem; }
@media (max-width:480px) { .datos { grid-template-columns:1fr; } .datos dd { text-align:left; margin-bottom:.4rem; } }
.barra .quien { font-size:.85rem; opacity:.85; }

/* Lectura con IA */
.lectura-ia { margin-top:1rem; }
input.autocompletado, textarea.autocompletado { background:#e3f0fd; border-color:#8db8e8; }
.ia-msg { margin:.5rem 0 0; padding:.6rem .8rem; border-radius:8px; border:1px solid; }
.ia-msg ul { margin:.3rem 0 0; padding-left:1.2rem; }
.ia-msg.cargando { background:#e8f0f8; border-color:#b9cfe6; color:var(--info); }
.ia-msg.error { background:#fdecec; border-color:#f3bcbc; color:var(--error); }
.ia-msg.ok { background:#e8f6ed; border-color:#b5dfc3; color:var(--ok); }
.ia-msg.dudas { background:#fff8e1; border-color:#e0b000; color:#5c4500; }
.ia-msg.difiere { background:#fff3c4; border-color:#e0b000; color:#5c4500; }
