:root { --fondo:#f5f6f7; --panel:#fff; --texto:#1c2329; --suave:#5b6670; --borde:#d4d9de; --marca:#16527a;
        --error:#a4262c; --error-f:#fbeaea; --aviso:#7a5a00; --aviso-f:#fdf6df; }
* { 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; }
header { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; justify-content:space-between; padding:.75rem 1rem; background:var(--marca); color:#fff; }
nav { display:flex; flex-wrap:wrap; gap:.25rem 1rem; align-items:center; }
nav a { color:#fff; }
main { max-width:1000px; margin:0 auto; padding:1rem; }
section { background:var(--panel); border:1px solid var(--borde); border-radius:6px; padding:1.25rem; margin-bottom:1rem; }
.estrecho { max-width:440px; margin-left:auto; margin-right:auto; }
h1 { font-size:1.35rem; margin:0 0 1rem; } h2 { font-size:1.1rem; margin:0 0 .75rem; }
label { display:block; font-weight:600; margin:.75rem 0 .25rem; }
label.opcion { font-weight:400; }
input:not([type=radio]), select { width:100%; padding:.5rem; font:inherit; border:1px solid var(--borde); border-radius:4px; background:#fff; color:inherit; }
button { margin-top:1rem; padding:.55rem 1.1rem; font:inherit; font-weight:600; color:#fff; background:var(--marca); border:1px solid var(--marca); border-radius:4px; cursor:pointer; }
button.secundario { margin:0; padding:.2rem .6rem; font-weight:400; color:var(--marca); background:#fff; }
:focus-visible { outline:3px solid #e8a200; outline-offset:2px; }
fieldset { border:1px solid var(--borde); border-radius:4px; margin:0; padding:.5rem .9rem .9rem; }
legend { font-weight:600; padding:0 .3rem; }
.fila { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:0 1rem; margin-top:.5rem; }
.enlinea { display:inline; }
.ayuda { color:var(--suave); font-size:.875rem; margin:.3rem 0; }
.error { color:var(--error); background:var(--error-f); padding:.6rem .8rem; border-radius:4px; }
.aviso { color:var(--aviso); background:var(--aviso-f); padding:.6rem .8rem; border-radius:4px; }
.desplazable { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:.925rem; }
th, td { text-align:left; padding:.4rem .6rem; border-bottom:1px solid var(--borde); vertical-align:top; }
.num { text-align:right; font-variant-numeric:tabular-nums; }
.acciones { white-space:nowrap; }
code { background:#eef1f3; padding:.1rem .3rem; border-radius:3px; }
button.segundo { margin-left:.5rem; color:var(--marca); background:#fff; }
.botones { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; margin:.75rem 0; }
.botones button { margin:0; }
table.datos { font-size:.825rem; white-space:nowrap; }
