:root{
  --ink:#16262c; --muted:#5b6b71; --line:#d5dcde; --bg:#f2f5f4; --card:#fff;
  --brand:#0c4a5c; --brand-2:#0f6a82; --ok:#23744a; --warn:#b9770e; --bad:#a63a2f;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Segoe UI",system-ui,-apple-system,Roboto,sans-serif}
h1{font-size:1.75rem;margin:0 0 .25rem;letter-spacing:-.01em}
h2{font-size:1.1rem;margin:0 0 1rem}
.lead{color:var(--muted);margin:0 0 1.5rem;max-width:62ch}
.wrap{max-width:1040px;margin:0 auto;padding:1.5rem 1rem 4rem}
.top{background:var(--brand);color:#fff}
.top__in{max-width:1040px;margin:0 auto;padding:.6rem 1rem;display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.1rem}
.brand span{font-weight:400;opacity:.8;margin-left:.35rem}
.top nav{display:flex;gap:.25rem;flex-wrap:wrap}
.top nav a{color:#dcebef;text-decoration:none;padding:.4rem .75rem;border-radius:4px}
.top nav a:hover{background:rgba(255,255,255,.12)}
.top nav a.on{background:#fff;color:var(--brand);font-weight:600}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e0a526;outline-offset:2px}

.menu{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.menu a{display:block;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--brand-2);padding:1.1rem 1.2rem;color:inherit;text-decoration:none;border-radius:4px}
.menu a:hover{border-left-color:#e0a526}
.menu strong{display:block;font-size:1.05rem;margin-bottom:.25rem}
.menu span{color:var(--muted);font-size:.95rem}

fieldset{background:var(--card);border:1px solid var(--line);border-radius:6px;margin:0 0 1.25rem;padding:1.1rem 1.25rem 1.25rem}
legend{font-weight:700;padding:0 .5rem;color:var(--brand)}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.f{display:flex;flex-direction:column;gap:.3rem}
.f label,.lbl{font-weight:600;font-size:.92rem}
.f small{color:var(--muted)}
input[type=text],input[type=tel],input[type=email],input[type=date],input[type=number],select,textarea{
  width:100%;padding:.65rem .7rem;border:1px solid #9fb0b5;border-radius:4px;font:inherit;background:#fff;color:var(--ink);min-height:44px}
input.err,select.err{border-color:var(--bad);background:#fdf3f2}
.radios{display:flex;gap:1.25rem;flex-wrap:wrap;padding:.3rem 0}
.radios label{font-weight:400;display:flex;gap:.45rem;align-items:center;min-height:44px}
.radios input{width:20px;height:20px}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.95rem}
.check input{width:20px;height:20px;margin-top:.15rem;flex:none}
.hidden{display:none!important}

.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:4px;padding:.8rem 1.4rem;font:inherit;font-weight:600;cursor:pointer;min-height:44px}
.btn:hover{background:var(--brand-2)}
.btn:disabled{opacity:.6;cursor:wait}
.btn--ghost{background:#fff;color:var(--brand);border:1px solid var(--brand)}
.btn--ghost:hover{background:#eaf2f4}
.btn--sm{padding:.4rem .8rem;min-height:36px;font-size:.9rem}

.msg{padding:.9rem 1rem;border-radius:4px;margin:0 0 1rem;border:1px solid}
.msg--err{background:#fdf3f2;border-color:#e3b3ae;color:#6e2019}
.msg--ok{background:#eef8f2;border-color:#a9d3bb;color:#17482f}
.msg--info{background:#eef5f8;border-color:#b3cfd9;color:#17414f}
.msg ul{margin:.3rem 0 0 1.1rem;padding:0}
.codigo{font-size:2.2rem;font-weight:700;letter-spacing:.06em;margin:.25rem 0;font-variant-numeric:tabular-nums}

.bar{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;margin-bottom:1rem}
.bar .f{min-width:200px;flex:1}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line)}
th,td{padding:.6rem .75rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.95rem}
th{background:#e8eef0;font-size:.85rem}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.scroll{overflow-x:auto}
.tag{display:inline-block;padding:.1rem .5rem;border-radius:99px;font-size:.8rem;font-weight:600;border:1px solid}
.tag--eg{color:var(--brand);border-color:var(--brand);background:#e8f3f6}
.tag--contratado{color:var(--ok);border-color:var(--ok);background:#eaf6ef}
.tag--preseleccionado{color:var(--warn);border-color:var(--warn);background:#fcf3e3}
.tag--postulado{color:#5b6b71;border-color:#9fb0b5;background:#f1f4f5}
.tag--entrevistado{color:#42607a;border-color:#42607a;background:#edf2f7}
.tag--no_contratado{color:var(--bad);border-color:var(--bad);background:#fbeeec}
.empty{padding:1.5rem;text-align:center;color:var(--muted)}

dialog{border:1px solid var(--line);border-radius:6px;padding:1.25rem;width:min(520px,94vw)}
dialog::backdrop{background:rgba(10,30,36,.5)}
dialog .grid{grid-template-columns:1fr}
.actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1.1rem}

.kpis{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1rem 1.1rem}
.kpi b{display:block;font-size:2rem;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi span{color:var(--muted);font-size:.9rem}
.kpi--main{background:var(--brand);color:#fff;border-color:var(--brand)}
.kpi--main span{color:#cfe3e8}
.meter{background:#e3eaec;height:10px;border-radius:5px;min-width:90px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--brand-2)}
@media (prefers-reduced-motion:no-preference){.btn{transition:background .15s}}
.cta{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.25rem 0}
a.btn{text-decoration:none}
@media print{.top,.btn,.msg{display:none!important}}
