/* Directorio oficial */
.dir{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.dir-h{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}
.dir-h h3{font-size:19px}
.dir-tabs{display:flex;gap:6px;flex-wrap:wrap}
.dir-tabs button{border:1.5px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:999px;font:inherit;font-weight:700;font-size:13.5px;cursor:pointer}
.dir-tabs button[aria-selected="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.dir-tools{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.dir-tools[hidden]{display:none}
.dir-tools label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;flex:1;min-width:200px}
.dir-tools select,.dir-tools input{font:inherit;font-weight:400;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%}
.dir-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-height:150px}
.dcard{background:var(--card);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 4px 14px #0a2a6b12}
.dtop{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 0}
.dtop svg{color:var(--blue)}
.dtag{color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border-radius:8px}
.dcard .b{padding:10px 12px;flex:1}
.dcard h3{font-size:16px;line-height:1.25}
.dcard p{font-size:13.5px;color:var(--mut);margin-top:4px}
.dact{display:grid;gap:8px;padding:0 12px 12px}
.dbtn{justify-content:center;padding:9px;font-size:13.5px;border-radius:8px;text-align:center;white-space:normal}
.dir-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px;font-size:14px;color:var(--mut)}
.dir-pager .btn{padding:8px 16px;font-size:13.5px}
.dir-pager .btn:disabled{opacity:.4;cursor:default;filter:none}
.dir-src{font-size:12.5px;color:var(--mut);margin-top:10px;text-align:center}
@media (max-width:1180px){.dir-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.dir-cards{grid-template-columns:1fr}}

/* Armá tu CV */
.cv-page{padding-top:28px;padding-bottom:50px;max-width:980px}
.cv-page h1{font-size:30px;line-height:1.15}
.cv-lead{color:var(--mut);margin:6px 0 18px;max-width:46rem}
.cv-gate{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.cv-gate ul{list-style:none;padding:0;display:grid;gap:8px;margin:12px 0 18px}
.cv-gate li::before{content:"✔";color:#fff;background:#1eaa5e;border-radius:50%;font-size:10px;display:inline-grid;place-items:center;width:17px;height:17px;margin-right:9px}
.cv-steps{list-style:none;padding:0;display:flex;gap:6px 14px;flex-wrap:wrap;margin:14px 0}
.cv-steps li{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--mut)}
.cv-steps li span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--soft)}
.cv-steps li.on{color:var(--blue)}
.cv-steps li.on span{background:var(--blue);color:#fff}
.cv-steps li.ok span{background:#1eaa5e;color:#fff}
.cv-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}
.cv-card h2{font-size:21px;margin-bottom:4px}
.cv-tip{color:var(--mut);font-size:14px;margin-bottom:14px}
.cv-nav{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.cv-foot{margin-top:14px;text-align:center}
.cv-link{border:0;background:none;color:var(--mut);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}
.cv-item{border:1px dashed var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
.cv-item-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700}
.cv-item-h .btn{padding:6px 14px;font-size:13px}
.cv-photo{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.cv-photo .ph{width:96px;height:96px;border-radius:50%;background:var(--soft);display:grid;place-items:center;overflow:hidden;color:var(--blue);flex:none}
.cv-photo .ph img{width:100%;height:100%;object-fit:cover}
.cv-sw{display:flex;gap:10px;margin:8px 0 16px}
.cv-sw button{width:34px;height:34px;border-radius:50%;border:3px solid var(--card);outline:1.5px solid var(--line);cursor:pointer}
.cv-sw button[aria-pressed="true"]{outline:3px solid var(--ink)}
.cv-prev{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#e9eef8;padding:14px}

/* Hoja del CV (siempre clara, también en modo oscuro) */
.cv-sheet{background:#fff;color:#111;max-width:794px;margin:0 auto;padding:32px 36px;font:14px/1.45 "Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.cv-sheet *{color:inherit;margin:0}
.cv-h{display:flex;gap:22px;align-items:center;border-bottom:3px solid var(--c);padding-bottom:16px;margin-bottom:6px}
.cv-ph{width:112px;height:112px;border-radius:50%;object-fit:cover;flex:none;border:3px solid var(--c)}
.cv-sheet h1{font-size:28px;line-height:1.1;color:var(--c)}
.cv-role{font-size:16px;font-weight:600;margin:4px 0 8px!important}
.cv-ct{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:#444}
.cv-sheet h2{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--c);border-bottom:1px solid #d6dbe6;padding-bottom:3px;margin:16px 0 8px}
.cv-it{margin-bottom:9px}
.cv-it b{display:block}
.cv-it small{color:#555;font-size:12.5px}
.cv-tags{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.cv-tags li{background:#eef3ff;border:1px solid #d3def8;border-radius:999px;padding:2px 10px;font-size:13px}
@media (max-width:600px){.cv-sheet{padding:20px 16px}.cv-h{flex-direction:column;align-items:flex-start}}

/* Impresión (CV y lista de organismos) */
#vp-print-root{display:none}
.pl{font:12pt/1.4 "Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#111}
.pl h1{font-size:20pt;margin:0 0 6px}
.pl h2{font-size:14pt;margin:16px 0 4px}
.pl p{margin:0 0 6px}
.pl-s{color:#444;font-size:10.5pt}
.pl table{width:100%;border-collapse:collapse;margin-top:14px}
.pl th,.pl td{border:1px solid #888;padding:6px 8px;font-size:10.5pt;text-align:left;vertical-align:top;word-break:break-word}
.pl th{background:#eee}
@page{size:A4;margin:12mm}
@media print{
 body.vp-printing>*:not(#vp-print-root){display:none!important}
 body.vp-printing{background:#fff}
 body.vp-printing #vp-print-root{display:block}
 body.vp-printing #vp-print-root .cv-sheet{max-width:none;padding:0}
}

/* Aviso de aporte antes de imprimir el CV */
#vp-aport{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;background:#06143acc;backdrop-filter:blur(3px)}
.ap-box{background:var(--card);color:var(--ink);border-radius:18px;max-width:460px;width:100%;padding:26px;box-shadow:0 30px 80px #0008;animation:pop .25s ease}
.ap-box h2{font-size:22px;margin-bottom:10px}
.ap-box p{color:var(--mut);line-height:1.55;margin-bottom:18px}
.ap-btns{display:flex;flex-wrap:wrap;gap:10px}
@media print{#vp-aport{display:none!important}}

.dir-tools label[hidden]{display:none}
/* Pie: aviso legal y corazón latiendo */
.legal{text-align:center;padding:14px 20px 22px;border-top:1px solid var(--line);margin-top:14px;font-size:13.5px;color:var(--mut);line-height:1.55}
.legal p{margin:3px 0}
.legal-h{font-weight:700;color:var(--ink);font-size:15px}
.latido{display:inline-block;vertical-align:-4px;color:#e11d48;transform-origin:center;animation:latido 1.3s ease-in-out infinite}
@keyframes latido{0%,100%{transform:scale(1)}14%{transform:scale(1.25)}28%{transform:scale(1)}42%{transform:scale(1.2)}70%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.latido{animation:none}}
