:root { --tx:#1d2330; --mu:#5d6675; --bd:#dde1e8; --bg:#f6f7f9; --ac:#1f5fbf; --ok:#17733a; --wa:#8a5a00; --er:#a32020; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--tx); background:var(--bg); }
header.barra { background:#fff; border-bottom:1px solid var(--bd); }
header.barra div { max-width:1080px; margin:0 auto; padding:12px 16px; display:flex; gap:16px; align-items:center; }
header.barra a { color:var(--tx); text-decoration:none; font-weight:600; }
main { max-width:1080px; margin:0 auto; padding:24px 16px 48px; }
h1 { font-size:22px; margin:0 0 4px; } h2 { font-size:17px; margin:24px 0 8px; } h3 { font-size:15px; margin:16px 0 6px; }
.sub { color:var(--mu); margin:0 0 20px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; align-items:start; }
section, .tarjeta { background:#fff; border:1px solid var(--bd); border-radius:8px; padding:16px; }
a.tarjeta { display:block; color:inherit; text-decoration:none; } a.tarjeta:hover { border-color:var(--ac); }
.tarjeta b { display:block; margin-bottom:4px; } .tarjeta span { color:var(--mu); font-size:14px; }
fieldset { border:0; padding:0; margin:0 0 8px; } legend { font-weight:600; font-size:14px; margin:12px 0 0; }
label { display:block; font-size:13px; color:var(--mu); margin:10px 0 4px; }
input, select, textarea { width:100%; padding:8px 10px; border:1px solid var(--bd); border-radius:6px; font:inherit; background:#fff; }
button { margin-top:16px; width:100%; padding:10px; border:0; border-radius:6px; background:var(--ac); color:#fff; font:inherit; font-weight:600; cursor:pointer; }
button.sec { background:#fff; color:var(--ac); border:1px solid var(--ac); }
.fila { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid var(--bg); }
.fila b { font-variant-numeric:tabular-nums; text-align:right; }
.total { font-size:20px; } .estado { font-size:12px; font-weight:700; letter-spacing:.02em; }
.estado.CALCULADO { color:var(--ok); } .estado.DATOS_INSUFICIENTES, .estado.NO_VERIFICADO { color:var(--wa); } .estado.NO_SOPORTADO { color:var(--er); }
table { width:100%; border-collapse:collapse; font-size:14px; } th, td { text-align:left; padding:6px 4px; border-bottom:1px solid var(--bg); }
td.n, th.n { text-align:right; font-variant-numeric:tabular-nums; }
ul { padding-left:18px; margin:6px 0; } li { margin:4px 0; } ul.aviso li { color:var(--wa); }
.fuente { font-size:13px; color:var(--mu); overflow-wrap:anywhere; } a { color:var(--ac); }
.oculto { display:none !important; }
@media print { header.barra, form, button { display:none !important; } body { background:#fff; } section { border:0; } }
a.boton { display:block; text-align:center; margin-top:10px; padding:10px; border-radius:6px; background:var(--tx); color:#fff; text-decoration:none; font-weight:600; }
.error { color:var(--er); }
