/* Hoja de estilos de la plataforma de reclutamiento Fyware.
   Extraída del <style> inline de index.html (líneas 15-576 en la versión monolítica).
   Tokens de marca en :root; Manrope (títulos), Inter (texto), DM Mono (datos). */
:root{--bg:#ffffff;--bg2:#f5f6f6;--card:#ffffff;--card2:#f5f6f6;--brd:#e2e4e4;--cy:#16191a;--cy-d:rgba(22,25,26,.06);--tx:#16191a;--txm:#3d4244;--txd:#6b7071;--red:#d83b3b;--red-d:rgba(216,59,59,.1);--gld:#b57708;--gld-d:rgba(181,119,8,.12);--gld-l:#e8a33d;--grn-2:#1f8a6e;--cyn:#60d2dc;--ink2:#2b2e2e;--grn:#128a5e;--grn-d:rgba(18,138,94,.1);--pur:#6b7071;--pur-d:rgba(107,112,113,.1)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:linear-gradient(180deg,#ffffff 0%,#eef0f1 100%);background-attachment:fixed;color:var(--tx);min-height:100vh;font-size:17px}
/* Rejilla técnica con deriva lenta */
body::before{content:'';position:fixed;inset:-60px;background-image:linear-gradient(rgba(22,25,26,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(22,25,26,.045) 1px,transparent 1px);background-size:52px 52px;pointer-events:none;z-index:0;animation:gridDrift 26s linear infinite}
@keyframes gridDrift{0%{transform:translate(0,0)}100%{transform:translate(52px,52px)}}
/* Líneas horizontales que recorren el fondo — estética tech, en gris/dorado */
.bg-fx{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.bg-fx i{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(22,25,26,.16),transparent)}
.bg-fx i:nth-child(1){animation:fxScan 12s linear infinite}
.bg-fx i:nth-child(2){animation:fxScan 18s linear infinite 5s}
.bg-fx i:nth-child(3){background:linear-gradient(90deg,transparent,rgba(181,119,8,.28),transparent);animation:fxScan 15s linear infinite 9s}
@keyframes fxScan{0%{top:-2%;opacity:0}8%{opacity:.7}92%{opacity:.7}100%{top:102%;opacity:0}}
@media (prefers-reduced-motion:reduce){body::before,.bg-fx i{animation:none}}
.wrap{position:relative;z-index:1}

/* VIEWS */
#view-portal{display:block}
#view-admin-login,#view-admin-main{display:none}

/* HEADER */
.hdr{background:rgba(255,255,255,.96);border-bottom:1px solid var(--brd);padding:0 36px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;backdrop-filter:blur(12px)}
.logo img{height:26px;width:auto;display:block}
.hdr-r{display:flex;align-items:center;gap:12px;font-family:'Manrope',sans-serif;font-size:15px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--txd)}
.hdr-a{color:var(--cy);text-decoration:none;border:1px solid rgba(22,25,26,.3);border-radius:999px;padding:5px 13px;transition:all .2s}
.hdr-a:hover{background:var(--cy-d)}
.admin-btn{color:var(--txd)!important;border:none!important;background:none;cursor:pointer;font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;letter-spacing:2px;text-transform:uppercase;transition:color .2s}
.admin-btn:hover{color:var(--cy)!important}

/* HERO */
.hero{padding:44px 36px 50px;border-bottom:1px solid var(--brd);position:relative;overflow:hidden}
.hero-scan{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cy),transparent);opacity:.3;animation:scan 5s ease-in-out infinite}
@keyframes scan{0%{top:0;opacity:0}10%{opacity:.3}90%{opacity:.3}100%{top:100%;opacity:0}}
.hero-ey{font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--cy);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.hero-ey::before{content:'';width:28px;height:1px;background:var(--cy)}
.hero-ey::after{content:'';width:6px;height:6px;border-radius:50%;background:var(--cy);box-shadow:0 0 8px var(--cy);animation:pulse 2s ease infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}
.hero h1{font-family:'Manrope',sans-serif;font-size:clamp(24px,3.5vw,44px);font-weight:700;line-height:1;letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}
.hero h1 span{color:var(--cy)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;border:1px solid var(--brd);border-radius:999px;color:var(--txd);background:rgba(22,25,26,.03)}

/* PORTAL LAYOUT */
.portal{max-width:980px;margin:0 auto;padding:28px 20px 80px;display:grid;grid-template-columns:200px 1fr;gap:14px;align-items:start}

/* PHASE NAV */
.pnav{position:sticky;top:72px;background:var(--card);border:1px solid var(--brd)}
.pnav-title{padding:9px 13px;font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--txd);border-bottom:1px solid var(--brd);background:var(--bg2)}
.pni{display:flex;align-items:center;gap:8px;padding:9px 13px;border-bottom:1px solid var(--brd);cursor:pointer;border-left:2px solid transparent;transition:all .15s}
.pni:last-child{border-bottom:none}
.pni:hover{background:var(--cy-d)}
.pni.active{border-left-color:var(--cy);background:var(--cy-d)}
.pni.done{border-left-color:var(--grn)}
.pni-n{width:20px;height:20px;border:1px solid var(--brd);background:var(--bg);display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;color:var(--txd);flex-shrink:0}
.pni.active .pni-n{border-color:var(--cy);color:var(--cy)}
.pni.done .pni-n{border-color:var(--grn);color:var(--grn)}
.pni-lbl{font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;color:var(--tx)}
.pni-sub{font-size:14px;color:var(--txd)}

/* PHASE BLOCK */
.pb{background:var(--card);border:1px solid var(--brd);margin-bottom:12px;position:relative}
.pb::before,.pb::after{content:'';position:absolute;width:10px;height:10px;border-color:var(--brd);border-style:solid;opacity:.6}
.pb::before{top:-1px;left:-1px;border-width:2px 0 0 2px}
.pb::after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}
.pb.op::before,.pb.op::after{border-color:var(--cy)}
.pb.op{border-color:rgba(22,25,26,.35);box-shadow:0 0 20px rgba(22,25,26,.07)}
.pb.dn::before,.pb.dn::after{border-color:var(--grn)}
.pb.dn{border-color:rgba(18,138,94,.25)}
.ph{padding:15px 18px;display:flex;align-items:center;gap:11px;background:var(--bg2);border-bottom:1px solid var(--brd)}
.ph-num{width:32px;height:32px;border:1px solid var(--brd);background:var(--bg);display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-size:16px;font-weight:700;color:var(--txd);flex-shrink:0}
.pb.op .ph-num{border-color:var(--cy);color:var(--cy);background:var(--cy-d)}
.pb.dn .ph-num{border-color:var(--grn);color:var(--grn);background:var(--grn-d)}
.ph-info{flex:1}
.ph-lbl{font-family:'Manrope',sans-serif;font-size:16px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:2px}
.ph-sub{font-size:15px;color:var(--txm)}
.ph-badge{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:4px 8px}
.bdg-o{color:var(--cy);border:1px solid rgba(22,25,26,.4);background:var(--cy-d)}
.bdg-l{color:var(--txd);border:1px solid var(--brd)}
.bdg-d{color:var(--grn);border:1px solid rgba(18,138,94,.4);background:var(--grn-d)}

/* LOCK */
.lk-scr{padding:18px;display:flex;align-items:center;gap:13px}
.lk-ic{width:40px;height:40px;border:1px solid var(--brd);background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.lk-txt h3{font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--txm);margin-bottom:4px}
.lk-txt p{font-size:15px;color:var(--txd);line-height:1.5}
.unlock-btn{font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--cy);cursor:pointer;margin-top:6px;display:inline-block;background:none;border:none;border-bottom:1px solid rgba(22,25,26,.3);padding:0;transition:all .2s}
.unlock-btn:hover{color:#fff}

/* PIN FORM */
.pf{padding:0 18px 16px;display:none}
.pf-inner{background:var(--bg);border:1px solid var(--brd);border-radius:12px;overflow:hidden;padding:15px 17px;position:relative}
.pf-inner::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cy),transparent)}
.pf-title{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--cy);margin-bottom:11px}
.pf-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:9px}
.pf-g label{font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--txd);display:block;margin-bottom:4px}
.pf-g input{width:100%;background:var(--card);border:1px solid var(--brd);border-radius:9px;padding:10px 12px;font-family:'Inter',sans-serif;font-size:16px;color:var(--tx);outline:none;transition:border-color .2s}
.pf-g input:focus{border-color:var(--cy)}
.mono{font-family:monospace;letter-spacing:3px;text-transform:uppercase}
.pin-err{font-size:15px;color:var(--red);margin-bottom:8px;display:none}
.pf-acts{display:flex;gap:8px}

/* PHASE BODY */
.pbody{padding:18px;display:none}
.sec-lbl{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--cy);margin-bottom:12px;padding-bottom:7px;border-bottom:1px solid var(--brd);display:flex;align-items:center;gap:8px}
.sec-lbl::before{content:'';width:14px;height:1px;background:var(--cy)}
.subsec{margin-bottom:22px}
.field{margin-bottom:14px}
.field label{font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--txm);display:block;margin-bottom:5px;line-height:1.4}
.req{color:var(--red)}
.field input,.field select,.field textarea{width:100%;background:var(--bg);border:1px solid var(--brd);border-radius:10px;padding:11px 13px;font-family:'Inter',sans-serif;font-size:17px;color:var(--tx);outline:none;resize:none;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cy);box-shadow:0 0 0 2px var(--cy-d)}
.field textarea{min-height:82px}
/* En el portal del candidato, los cuadros de respuesta van en gris para que se distingan del fondo blanco */
#view-portal .field input,#view-portal .field select,#view-portal .field textarea{background:var(--card2)}
.field select{appearance:none;cursor:pointer}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.in-note{background:var(--cy-d);border-left:2px solid var(--cy);padding:9px 12px;font-size:15px;color:var(--txm);line-height:1.6;margin-bottom:12px}
.work-entry{background:var(--bg);border:1px solid var(--brd);padding:13px;margin-bottom:9px}
.we-title{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--txd);margin-bottom:11px;padding-bottom:6px;border-bottom:1px dashed var(--brd)}
.nav-btns{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--brd)}
.done-banner{display:none;margin:0 18px 18px;background:var(--grn-d);border:1px solid rgba(18,138,94,.3);padding:13px 16px;text-align:center;position:relative}
.done-banner::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--grn)}
.done-banner h3{font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--grn);margin-bottom:3px}
.done-banner p{font-size:15px;color:var(--txm)}

/* SUCCESS SCREEN */
.succ{display:none;text-align:center;padding:40px 18px}
.succ h2{font-family:'Manrope',sans-serif;font-size:24px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--cy);margin-bottom:12px}
.succ p{font-size:18px;color:var(--txm);line-height:1.8;max-width:500px;margin:0 auto 16px}
.succ-num{font-family:'Manrope',sans-serif;font-size:18px;font-weight:700;color:var(--cy);letter-spacing:2px;margin-top:12px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;white-space:nowrap;padding:11px 22px;border:none;border-radius:999px;cursor:pointer;transition:all .2s}
.btn-cy{background:var(--cy);color:var(--bg)}
.btn-cy:hover{background:#2b2e2e;box-shadow:0 6px 18px rgba(22,25,26,.18);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--txd);border:1px solid var(--brd)}
.btn-ghost:hover{color:var(--tx);border-color:var(--txm)}
.btn-grn{background:var(--grn);color:var(--bg);font-weight:800}
.btn-rd{background:var(--red-d);color:var(--red);border:1px solid rgba(216,59,59,.3)}
.abtn{font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;padding:7px 13px;border:1px solid var(--brd);border-radius:8px;background:transparent;color:var(--txm);cursor:pointer;transition:all .15s}
.abtn:hover{background:var(--card2);color:var(--tx)}
.abtn.cy{background:var(--cy-d);border-color:rgba(22,25,26,.3);color:var(--cy)}
.abtn.gn{background:var(--grn-d);border-color:rgba(18,138,94,.3);color:var(--grn)}
.abtn.rd{background:var(--red-d);border-color:rgba(216,59,59,.3);color:var(--red)}
.abtn.gld{background:rgba(181,119,8,.1);border-color:rgba(181,119,8,.35);color:var(--gld)}

/* CAL BOX */
.cal-box{background:var(--bg);border:1px solid var(--brd);border-radius:14px;overflow:hidden;padding:22px;text-align:center;position:relative;margin-top:12px}
.cal-box::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--cy),transparent)}
.cal-box h3{font-family:'Manrope',sans-serif;font-size:17px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--cy);margin-bottom:6px}
.cal-box p{font-size:15px;color:var(--txm);line-height:1.6;margin-bottom:15px;max-width:360px;margin-left:auto;margin-right:auto}

/* ADMIN LOGIN */
#view-admin-login{position:fixed;inset:0;background:var(--bg);display:none;align-items:center;justify-content:center;z-index:9999}
.al-box{background:var(--card);border:1px solid var(--brd);border-radius:18px;padding:36px;width:100%;max-width:340px;position:relative;box-shadow:0 20px 60px rgba(22,25,26,.1)}
.al-box::before,.al-box::after{content:'';position:absolute;width:12px;height:12px;border-color:var(--cy);border-style:solid;opacity:.7}
.al-box::before{top:-1px;left:-1px;border-width:2px 0 0 2px}
.al-box::after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}
.al-logo{text-align:center;margin-bottom:4px}
.al-logo img{height:34px;width:auto;display:inline-block}
.al-sub{font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--txd);text-align:center;margin-bottom:20px}
.al-scan{height:1px;background:linear-gradient(90deg,transparent,var(--cy),transparent);margin-bottom:18px;opacity:.5}
.al-f{margin-bottom:12px}
.al-f label{font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--txm);display:block;margin-bottom:5px}
.al-pw{position:relative;display:flex}
.al-pw input{flex:1;background:var(--bg);border:1px solid var(--brd);border-radius:10px;padding:11px 36px 11px 13px;font-family:'Inter',sans-serif;font-size:17px;color:var(--tx);outline:none;transition:border-color .2s}
.al-pw input:focus{border-color:var(--cy)}
.al-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--txd);cursor:pointer;font-size:17px;padding:2px;line-height:1}
.al-eye:hover{color:var(--cy)}
.login-err{font-size:15px;color:var(--red);text-align:center;margin-bottom:8px;display:none}
.btn-login{width:100%;background:var(--cy);color:var(--bg);font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:12px;border:none;border-radius:999px;cursor:pointer;transition:all .2s}
.btn-login:hover{background:#2b2e2e;box-shadow:0 6px 18px rgba(22,25,26,.18)}
.al-note{font-family:'Manrope',sans-serif;font-size:15px;color:var(--txd);text-align:center;margin-top:12px}

/* ADMIN MAIN */
#view-admin-main{display:none;min-height:100vh;flex-direction:row}
.a-side{width:206px;background:rgba(255,255,255,.98);border-right:1px solid var(--brd);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:100}
.a-logo{padding:14px 13px;border-bottom:1px solid var(--brd)}
.a-logo-t img{height:22px;width:auto;display:block}
.a-logo-s{font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--txd);margin-top:2px}
.a-sec{font-family:'Manrope',sans-serif;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--txd);padding:10px 13px 3px;border-top:1px solid var(--brd);margin-top:3px}
.a-sec-tog{cursor:pointer;user-select:none}
.a-sec-tog:hover{color:var(--tx)}
.a-ni{display:flex;align-items:center;gap:8px;padding:9px 13px;font-family:'Manrope',sans-serif;font-size:15px;font-weight:600;color:var(--txm);cursor:pointer;border-left:2px solid transparent;transition:all .15s}
.a-ni:hover{color:var(--tx);background:var(--cy-d)}
.a-ni.active{color:var(--cy);background:var(--cy-d);border-left-color:var(--cy)}
.a-ni-ic{font-size:15px;width:15px;text-align:center;flex-shrink:0}
.a-user{margin-top:auto;padding:11px 13px;border-top:1px solid var(--brd)}
.a-un{font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;margin-bottom:2px}
.a-ur{font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--txd)}
.a-logout{display:block;width:100%;margin-top:7px;font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:8px;background:transparent;border:1px solid var(--brd);border-radius:999px;color:var(--txd);cursor:pointer;transition:all .2s}
.a-logout:hover{border-color:var(--red);color:var(--red)}
.a-main{margin-left:206px;flex:1;min-width:0;padding:20px 22px 60px;position:relative;z-index:1}
.a-panel{display:none}
.a-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.a-topbar h1{font-family:'Manrope',sans-serif;font-size:19px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:2px}
.a-topbar p{font-size:15px;color:var(--txm)}

/* STATS */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.sc{background:var(--card);border:1px solid var(--brd);border-radius:12px;padding:15px 17px;position:relative;overflow:hidden;box-shadow:0 1px 2px rgba(22,25,26,.04)}
.sc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--cy),transparent);opacity:.3}
.sc-l{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--txd);margin-bottom:7px}
.sc-v{font-family:'Manrope',sans-serif;font-size:26px;font-weight:700;margin-bottom:2px}
.sc-s{font-size:14px;color:var(--txm)}

/* TABLE CARD */
.tcard{background:var(--card);border:1px solid var(--brd);border-radius:14px;overflow:hidden;margin-bottom:14px;box-shadow:0 1px 2px rgba(22,25,26,.04),0 10px 30px rgba(22,25,26,.05)}
.tcard-h{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--brd);background:var(--bg2);flex-wrap:wrap;gap:8px}
.tcard-h h2{font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.fb{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.si{background:var(--bg);border:1px solid var(--brd);border-radius:9px;padding:8px 12px;font-family:'Inter',sans-serif;font-size:15px;color:var(--tx);outline:none;transition:border-color .2s,box-shadow .2s}
.si:focus{border-color:var(--cy);box-shadow:0 0 0 3px var(--cy-d)}
.fsel{background:var(--bg);border:1px solid var(--brd);border-radius:9px;padding:7px 11px;font-family:'Inter',sans-serif;font-size:14px;color:var(--txm);outline:none;cursor:pointer}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--txd);padding:9px 13px;border-bottom:1px solid var(--brd);border-right:1px dotted rgba(22,25,26,.18);background:var(--bg2);white-space:nowrap}
td{padding:9px 13px;font-size:16px;border-bottom:1px dotted rgba(22,25,26,.18);border-right:1px dotted rgba(22,25,26,.18);vertical-align:middle}
th:last-child,td:last-child{border-right:none}
tr:last-child td{border-bottom:none}
.ctab td,.ctab th{padding:5px 7px}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:rgba(22,25,26,.02)}
tr.carpeta-h td{border-bottom:1px solid var(--brd)}
tr.carpeta-h:hover td{background:var(--card2)}
tr.subcarpeta-h td{border-bottom:1px solid var(--brd);background:var(--card)}
tr.subcarpeta-h:hover td{background:var(--card2)}
.th-sort{cursor:pointer;user-select:none;transition:color .15s,background .15s}
.th-sort:hover{color:var(--cy);background:var(--card2)}
.th-arrow{display:inline-block;margin-left:3px;font-size:9px;color:var(--cy);vertical-align:middle}
.preelim-filters{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.preelim-filters input,.preelim-filters select{background:var(--card);border:1px solid var(--brd);border-radius:10px;padding:8px 12px;font-family:'Inter',sans-serif;font-size:14px;color:var(--tx);outline:none;transition:border-color .15s}
.preelim-filters input{min-width:240px}
.preelim-filters input:focus,.preelim-filters select:focus{border-color:var(--cy)}
.preelim-filters select{cursor:pointer}
/* Columna "Nombre" fija: se queda visible al desplazar la tabla en horizontal.
   border-collapse:separate es necesario para que position:sticky funcione en las
   celdas (con "collapse" varios navegadores lo ignoran). */
.preelim-table{border-collapse:separate;border-spacing:0}
.preelim-table td.pe-stick,.preelim-table th.pe-stick{position:sticky;left:0;z-index:2;background:var(--card);box-shadow:6px 0 8px -6px rgba(22,25,26,.35)}
.preelim-table thead th.pe-stick{z-index:4;background:var(--bg2)}
.pf-count{font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--txd);margin-left:auto}
.badge{display:inline-flex;font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:3px 10px;border-radius:999px;white-space:nowrap}
.b-g{background:var(--grn-d);color:var(--grn);border:1px solid rgba(18,138,94,.25)}
.b-r{background:var(--red-d);color:var(--red);border:1px solid rgba(216,59,59,.25)}
.b-y{background:var(--gld-d);color:var(--gld);border:1px solid rgba(232,160,32,.25)}
.b-p{background:var(--pur-d);color:var(--pur);border:1px solid rgba(107,112,113,.25)}
.b-c{background:var(--cy-d);color:var(--cy);border:1px solid rgba(22,25,26,.25)}
.b-g2{background:rgba(120,160,30,.14);color:#5f7d16;border:1px solid rgba(120,160,30,.35)}
.b-br{background:rgba(150,105,60,.12);color:#8a5a2b;border:1px solid rgba(150,105,60,.3)}
.b-0{background:rgba(255,255,255,.04);color:var(--txm);border:1px solid var(--brd)}

/* OVERLAY / MODAL */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:300;align-items:flex-start;justify-content:center;padding:26px 18px;overflow-y:auto;backdrop-filter:blur(4px)}
.modal{background:var(--card);border:1px solid var(--brd);width:100%;max-width:800px;position:relative}
.modal::before,.modal::after{content:'';position:absolute;width:12px;height:12px;border-color:var(--cy);border-style:solid;opacity:.6}
.modal::before{top:-1px;left:-1px;border-width:2px 0 0 2px}
.modal::after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}
.modal-sm{max-width:460px}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:13px 17px;border-bottom:1px solid var(--brd);background:var(--bg2)}
.modal-h h2{font-family:'Manrope',sans-serif;font-size:16px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.modal-x{background:none;border:none;color:var(--txm);font-size:19px;cursor:pointer;line-height:1;padding:0}
.modal-x:hover{color:var(--tx)}
.modal-b{padding:18px}
.m-tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--brd);margin-bottom:15px}
.m-tab{font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:8px 11px;cursor:pointer;color:var(--txd);border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap}
.m-tab.active{color:var(--cy);border-bottom-color:var(--cy)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fs{margin-bottom:11px}
.fs label{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--txd);display:block;margin-bottom:5px}
.fs input,.fs select{width:100%;background:var(--bg);border:1px solid var(--brd);padding:9px 10px;font-family:'Inter',sans-serif;font-size:16px;color:var(--tx);outline:none;transition:border-color .2s}
.fs input:focus,.fs select:focus{border-color:var(--cy)}

/* VERIF */
.vdot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:5px}
.vdot.idle{background:var(--txd)}
.vdot.loading{background:var(--gld);box-shadow:0 0 8px var(--gld);animation:pulse 1s ease infinite}
.vdot.ok{background:var(--grn);box-shadow:0 0 8px var(--grn)}
.vdot.alert{background:var(--red);box-shadow:0 0 8px var(--red)}
.vres{font-size:15px;line-height:1.7;background:var(--bg2);border:1px solid var(--brd);padding:10px;display:none;white-space:pre-wrap;margin-top:7px}
.vres.show{display:block}
.vres.ok{border-color:rgba(18,138,94,.3);color:var(--grn)}
.vres.alert{border-color:rgba(216,59,59,.3);color:#d83b3b}

/* VAC */
.vac-item{padding:9px 11px;background:var(--bg);border:1px solid var(--brd);margin-bottom:5px;cursor:pointer;display:flex;align-items:center;gap:8px;border-left:2px solid transparent;transition:all .15s}
.vac-item:hover,.vac-item.sel{border-left-color:var(--cy);background:var(--cy-d)}
.vac-name{font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;flex:1}
.vac-cnt{font-family:'DM Mono',monospace;font-size:15px;color:var(--txd)}
.eq-ta{width:100%;background:var(--bg2);border:1px solid var(--brd);padding:8px 10px;font-family:'Inter',sans-serif;font-size:16px;color:var(--tx);outline:none;resize:none;min-height:38px;transition:border-color .2s}
.eq-ta:focus{border-color:var(--cy)}
.eq-del{background:none;border:none;color:var(--txd);font-size:16px;cursor:pointer;padding:4px;transition:color .2s}
.eq-del:hover{color:var(--red)}

/* SPIN / TOAST */
.spin{display:inline-block;width:10px;height:10px;border:2px solid rgba(22,25,26,.2);border-top-color:var(--cy);border-radius:50%;animation:rot .7s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}
.toast{position:fixed;bottom:20px;right:20px;background:var(--cy);color:var(--bg);font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:9px 15px;box-shadow:0 0 20px rgba(22,25,26,.4);transform:translateY(60px);opacity:0;transition:all .3s ease;z-index:9998;pointer-events:none}
.toast.show{transform:translateY(0);opacity:1}
::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--brd)}::-webkit-scrollbar-thumb:hover{background:var(--cy)}
@media(max-width:700px){.portal{grid-template-columns:1fr}.pnav{position:static}.hero{padding:28px 16px 34px}.hdr{padding:0 14px}.f2,.pf-fields,.frow{grid-template-columns:1fr}#view-admin-main{flex-direction:column}.a-side{position:static;width:100%;height:auto}.a-main{margin-left:0}.stat-grid{grid-template-columns:1fr 1fr}}

/* ── FILTRO CONDUCTUAL (oculto al candidato — solo input) ── */
.flt-block{background:var(--bg);border:1px solid var(--brd);padding:13px;margin-bottom:9px}
.flt-tag{font-family:Manrope,sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--cy);margin-bottom:5px}
.flt-title{font-family:Manrope,sans-serif;font-size:17px;font-weight:700;letter-spacing:1px;color:var(--tx);margin-bottom:7px}
.flt-prompt{font-size:15px;color:var(--txm);margin-bottom:10px;line-height:1.5}
.flt-prompt strong{color:var(--cy)}
.flt-scenario{background:var(--card2);border-left:2px solid var(--cy);padding:9px 12px;margin-bottom:10px;font-size:15px;color:var(--tx);line-height:1.5;font-style:italic}
.flt-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px}
.flt-card{background:var(--card2);border:1px solid var(--brd);padding:11px 12px;cursor:pointer;font-size:15px;line-height:1.4;color:var(--tx);transition:all .15s;display:flex;align-items:flex-start;gap:9px;min-height:64px}
.flt-card:hover{border-color:var(--cy);background:var(--cy-d)}
.flt-card.sel{border-color:var(--cy);background:var(--cy-d);box-shadow:inset 0 0 0 1px var(--cy)}
.flt-letter{flex-shrink:0;width:18px;font-family:DM Mono,monospace;font-size:15px;color:var(--cy);font-weight:700}
.flt-slider-row{margin-bottom:13px}
.flt-slider-row:last-child{margin-bottom:0}
.flt-slider-statement{font-size:15px;color:var(--tx);margin-bottom:6px;line-height:1.5}
.flt-slider-poles{display:flex;justify-content:space-between;font-size:14px;color:var(--txd);margin-bottom:5px}
.flt-slider-ticks{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.flt-tick{padding:8px 4px;background:var(--card2);border:1px solid var(--brd);text-align:center;font-family:DM Mono,monospace;font-size:14px;font-weight:700;color:var(--txd);cursor:pointer;transition:all .15s}
.flt-tick:hover{border-color:var(--cy);color:var(--cy)}
.flt-tick.sel{background:var(--cy);border-color:var(--cy);color:var(--bg)}
.flt-rank-list{display:flex;flex-direction:column;gap:6px}
.flt-rank-item{display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--card2);border:1px solid var(--brd)}
.flt-rank-num{width:26px;height:26px;background:var(--cy);color:var(--bg);display:flex;align-items:center;justify-content:center;font-family:Manrope,sans-serif;font-weight:700;font-size:15px;flex-shrink:0}
.flt-rank-text{flex:1;font-size:15px;color:var(--tx);line-height:1.4}
.flt-rank-ctrl{display:flex;gap:3px}
.flt-rank-btn{background:var(--bg);border:1px solid var(--brd);color:var(--txd);padding:5px 9px;cursor:pointer;font-size:14px;transition:all .15s}
.flt-rank-btn:hover{border-color:var(--cy);color:var(--cy)}
.flt-sec-head{background:linear-gradient(90deg,transparent,var(--cy-d),transparent);border:1px solid var(--brd);border-left:3px solid var(--cy);padding:12px 14px;margin:14px 0 10px}

/* ── INTRO PSICOMÉTRICOS ── */
.f3-intro{padding:14px 4px 24px;animation:stpFadeIn .5s cubic-bezier(.16,1,.3,1)}
.f3-intro-hero{text-align:center;padding:32px 16px 24px;
  background:radial-gradient(circle at 50% 0%, rgba(22,25,26,0.12) 0%, transparent 60%),
             radial-gradient(circle at 50% 100%, rgba(181,119,8,0.10) 0%, transparent 60%);
  border:1px solid var(--brd);border-radius:18px;margin-bottom:18px;position:relative;overflow:hidden}
.f3-intro-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--cy),var(--cy),var(--cy),transparent);
  background-size:200% 100%;animation:stpHeadGlow 4s linear infinite}
.f3-intro-emoji{font-size:64px;margin-bottom:14px;filter:drop-shadow(0 0 22px rgba(22,25,26,0.55));animation:stpIcFloat 3s ease-in-out infinite}
.f3-intro-eyebrow{font-family:DM Mono,monospace;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--cy);margin-bottom:11px;opacity:.9}
.f3-intro-title{font-family:Manrope,sans-serif;font-size:34px;font-weight:700;letter-spacing:1px;margin-bottom:11px;
  background:linear-gradient(135deg,var(--cy),var(--cy));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}
.f3-intro-sub{font-size:16px;color:var(--txm);line-height:1.6;max-width:560px;margin:0 auto}
.f3-intro-sub strong{color:var(--cy)}
.f3-intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:18px}
@media(max-width:700px){.f3-intro-grid{grid-template-columns:1fr}}
.f3-intro-card{background:linear-gradient(135deg,rgba(245,246,246,0.5),rgba(255,255,255,0.7));
  border:1px solid var(--brd);border-radius:14px;padding:18px 16px;text-align:center;transition:all .25s}
.f3-intro-card:hover{transform:translateY(-3px);border-color:var(--cy);box-shadow:0 8px 22px rgba(22,25,26,0.18)}
.f3-intro-ic{font-size:38px;margin-bottom:7px;filter:drop-shadow(0 0 12px rgba(22,25,26,0.4))}
.f3-intro-lbl{font-family:Manrope,sans-serif;font-size:18px;font-weight:700;letter-spacing:1px;color:var(--cy);margin-bottom:6px}
.f3-intro-desc{font-size:14px;color:var(--txm);line-height:1.5}
.f3-intro-rules{background:linear-gradient(135deg,rgba(181,119,8,0.06),rgba(0,0,0,0.02));
  border:1px solid var(--brd);border-left:3px solid var(--gld);border-radius:12px;padding:18px 22px;margin-bottom:20px}
.f3-intro-rules-title{font-family:Manrope,sans-serif;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gld);margin-bottom:11px}
.f3-intro-rules-list{list-style:none;padding:0;margin:0}
.f3-intro-rules-list li{font-size:15px;color:var(--tx);line-height:1.7;padding:5px 0;border-bottom:1px dashed rgba(0,0,0,0.08)}
.f3-intro-rules-list li:last-child{border-bottom:0}
.f3-intro-rules-list strong{color:var(--cy)}
.f3-intro-cta{text-align:center;padding:14px 0 4px}
.f3-intro-cta-hint{font-size:14px;color:var(--txd);font-style:italic;margin-bottom:13px}
.f3-intro-btn{font-size:17px!important;padding:15px 38px!important;letter-spacing:2px!important;
  background:linear-gradient(135deg,var(--cy),var(--cy))!important;color:var(--bg)!important;border:0!important;
  border-radius:12px!important;box-shadow:0 6px 22px rgba(22,25,26,0.4)!important;
  transition:all .25s!important;cursor:pointer;font-weight:700;font-family:Manrope,sans-serif!important;text-transform:uppercase!important}
.f3-intro-btn:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(22,25,26,0.5)!important;
  background:linear-gradient(135deg,var(--grn),var(--grn))!important}

/* ── STEPPER (paginated blocks) — VISUAL & DINÁMICO ── */
.stp-head{
  background:
    radial-gradient(circle at 0% 0%, rgba(22,25,26,0.12) 0%, transparent 50%),
    radial-gradient(circle at 100% 100%, rgba(181,119,8,0.10) 0%, transparent 50%),
    linear-gradient(135deg, rgba(255,255,255,0.95), rgba(245,246,246,0.85));
  border:1px solid var(--brd);border-radius:14px;
  padding:16px 18px;margin-bottom:14px;
  position:sticky;top:0;z-index:5;backdrop-filter:blur(14px);
  box-shadow:0 4px 24px rgba(22,25,26,0.08), inset 0 1px 0 rgba(255,255,255,0.04);
  overflow:hidden;
}
.stp-head::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--cy),var(--cy),var(--cy),transparent);
  background-size:200% 100%;animation:stpHeadGlow 4s linear infinite;}
@keyframes stpHeadGlow{0%{background-position:200% 0}100%{background-position:-200% 0}}
.stp-head-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px;gap:11px;flex-wrap:wrap;position:relative;z-index:1}
.stp-stage{font-family:Manrope,sans-serif;font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--cy);display:flex;align-items:center;gap:9px;
  text-shadow:0 0 12px rgba(22,25,26,0.4)}
.stp-stage .stp-ic{font-size:24px;filter:drop-shadow(0 0 8px rgba(22,25,26,0.6));animation:stpIcFloat 3s ease-in-out infinite}
@keyframes stpIcFloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-3px) rotate(2deg)}}
.stp-counter{font-family:DM Mono,monospace;font-size:13px;color:var(--txd);font-weight:700;letter-spacing:1.5px;
  background:rgba(0,0,0,0.04);padding:6px 12px;border-radius:18px;border:1px solid var(--brd)}
.stp-counter strong{color:var(--cy);font-size:18px;text-shadow:0 0 8px rgba(22,25,26,0.5)}
.stp-timer{font-family:DM Mono,monospace;font-size:15px;font-weight:700;color:var(--gld);
  background:linear-gradient(135deg,rgba(181,119,8,0.12),rgba(0,0,0,0.02));
  border:1px solid var(--gld);border-radius:18px;padding:6px 14px;letter-spacing:1px;
  display:flex;align-items:center;gap:7px;box-shadow:0 0 14px rgba(181,119,8,0.18)}
.stp-timer.warn{color:var(--red);border-color:var(--red);
  background:linear-gradient(135deg,rgba(216,59,59,0.15),rgba(0,0,0,0.02));
  box-shadow:0 0 16px rgba(216,59,59,0.35);animation:stpPulse 1s infinite}
@keyframes stpPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.02)}}
.stp-progress{height:10px;background:rgba(0,0,0,0.06);border:1px solid var(--brd);border-radius:6px;overflow:hidden;position:relative;box-shadow:inset 0 1px 3px rgba(0,0,0,0.08)}
.stp-progress-fill{height:100%;background:linear-gradient(90deg,var(--cy) 0%,var(--cy) 50%,var(--grn) 100%);background-size:200% 100%;
  transition:width .5s cubic-bezier(.4,.0,.2,1);position:relative;
  animation:stpProgGrad 3s linear infinite;border-radius:5px;
  box-shadow:0 0 12px rgba(22,25,26,0.4)}
@keyframes stpProgGrad{0%{background-position:0% 0}100%{background-position:200% 0}}
.stp-progress-fill::after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);
  width:14px;height:14px;border-radius:50%;background:var(--cy);
  box-shadow:0 0 12px var(--cy),0 0 22px var(--cy);animation:stpHeadPulse 1.2s ease-in-out infinite}
@keyframes stpHeadPulse{0%,100%{transform:translateY(-50%) scale(1);opacity:1}50%{transform:translateY(-50%) scale(1.3);opacity:.7}}
.stp-dots{display:flex;gap:4px;margin-top:9px;flex-wrap:wrap;position:relative;z-index:1}
.stp-dot{flex:1;min-width:8px;height:5px;background:rgba(0,0,0,0.06);border:1px solid var(--brd);border-radius:3px;transition:all .3s cubic-bezier(.4,0,.2,1)}
.stp-dot.done{background:linear-gradient(90deg,var(--grn),var(--grn));border-color:var(--grn);box-shadow:0 0 8px rgba(0,217,126,0.5)}
.stp-dot.curr{background:linear-gradient(90deg,var(--cy),var(--cy));border-color:var(--cy);
  box-shadow:0 0 12px var(--cy),0 0 22px rgba(22,25,26,0.4);transform:scaleY(1.6)}

/* PAGE animation — slide-in con escala */
.stp-page{animation:stpFadeIn .45s cubic-bezier(.16,1,.3,1)}
@keyframes stpFadeIn{
  0%{opacity:0;transform:translateY(20px) scale(0.97)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* NAVEGACIÓN */
.stp-nav{display:flex;justify-content:space-between;align-items:center;gap:11px;margin-top:18px;padding:14px 0 4px;border-top:1px solid rgba(22,25,26,0.15)}
.stp-btn{background:linear-gradient(135deg,var(--card2),rgba(245,246,246,0.7));border:1px solid var(--brd);color:var(--tx);
  padding:12px 22px;font-family:Manrope,sans-serif;font-size:14px;font-weight:700;letter-spacing:2px;
  text-transform:uppercase;cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:8px;
  border-radius:10px;position:relative;overflow:hidden}
.stp-btn::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(22,25,26,0.15),transparent);
  transform:translateX(-100%);transition:transform .5s}
.stp-btn:hover:not(:disabled)::before{transform:translateX(100%)}
.stp-btn:hover:not(:disabled){border-color:var(--cy);color:var(--cy);transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(22,25,26,0.25)}
.stp-btn:active:not(:disabled){transform:translateY(0)}
.stp-btn:disabled{opacity:.3;cursor:not-allowed}
.stp-btn-primary{background:linear-gradient(135deg,var(--cy),var(--cy));color:var(--bg);border-color:transparent;
  box-shadow:0 4px 18px rgba(22,25,26,0.35),inset 0 1px 0 rgba(255,255,255,0.25)}
.stp-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--grn),var(--grn));
  border-color:transparent;box-shadow:0 8px 24px rgba(0,217,126,0.4)}
.stp-hint{font-size:13px;color:var(--txd);font-style:italic;flex:1;text-align:center;transition:color .2s}

/* Timer por bloque — más visual */
.stp-blktimer{display:flex;align-items:center;gap:10px;margin-top:11px;padding-top:11px;border-top:1px dashed rgba(22,25,26,0.15);position:relative;z-index:1}
.stp-blktimer-lbl{font-family:DM Mono,monospace;font-size:11px;color:var(--txd);letter-spacing:1.5px;text-transform:uppercase;opacity:.85;display:flex;align-items:center;gap:5px}
.stp-blktimer-bar{flex:1;height:6px;background:rgba(0,0,0,0.06);border:1px solid var(--brd);border-radius:4px;overflow:hidden;position:relative;box-shadow:inset 0 1px 2px rgba(0,0,0,0.08)}
.stp-blktimer-fill{height:100%;width:100%;background:linear-gradient(90deg,var(--cy),var(--cy));opacity:.85;
  transition:width .12s linear,background .35s,opacity .35s;border-radius:3px;
  box-shadow:0 0 8px rgba(22,25,26,0.4)}
.stp-blktimer-fill.warning{background:linear-gradient(90deg,var(--gld),#ffd454);opacity:1;box-shadow:0 0 10px rgba(181,119,8,0.5)}
.stp-blktimer-fill.danger{background:linear-gradient(90deg,var(--red),#e86b6b);opacity:1;
  box-shadow:0 0 14px rgba(216,59,59,0.6);animation:stpBlkPulse .6s infinite}
.stp-blktimer-fill.grace{background:linear-gradient(90deg,var(--red),#e86b6b);opacity:1;
  box-shadow:0 0 14px rgba(216,59,59,0.5);animation:stpBlkPulse .4s infinite}
@keyframes stpBlkPulse{0%,100%{opacity:1}50%{opacity:.55}}
.stp-blktimer-val{font-family:DM Mono,monospace;font-size:13px;color:var(--cy);min-width:38px;text-align:right;opacity:.95;font-weight:700;letter-spacing:1px}
.stp-blktimer-val.warning{color:var(--gld);opacity:1;text-shadow:0 0 8px rgba(181,119,8,0.5)}
.stp-blktimer-val.danger{color:var(--red);opacity:1;font-weight:700;text-shadow:0 0 10px rgba(216,59,59,0.6)}
.stp-blktimer-grace{font-family:DM Mono,monospace;font-size:10px;color:var(--red);letter-spacing:1.5px;text-transform:uppercase;margin-left:4px;font-weight:700;text-shadow:0 0 8px rgba(216,59,59,0.4)}

/* ── PREGUNTAS DENTRO DEL STEPPER — Glow & lift ── */
.f2-tech-block, .flt-block{
  background:linear-gradient(135deg,rgba(245,246,246,0.5),rgba(255,255,255,0.7))!important;
  border:1px solid var(--brd)!important;border-radius:14px!important;padding:22px!important;
  box-shadow:0 4px 18px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.03)!important;
  position:relative;overflow:hidden;
}
.f2-tech-block::before, .flt-block::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--cy),transparent);opacity:.6
}
.flt-card{border-radius:10px!important;padding:14px 16px!important;font-size:16px!important;min-height:72px!important;
  transition:all .2s cubic-bezier(.4,0,.2,1)!important}
.flt-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(22,25,26,0.18)!important}
.flt-card.sel{border-color:var(--cy)!important;background:linear-gradient(135deg,rgba(22,25,26,0.12),rgba(181,119,8,0.08))!important;
  box-shadow:0 0 0 1px var(--cy),0 8px 20px rgba(22,25,26,0.25)!important;transform:translateY(-1px)}
.flt-letter{width:26px!important;height:26px!important;border-radius:50%!important;background:rgba(22,25,26,0.1)!important;
  display:flex!important;align-items:center;justify-content:center;font-weight:700!important;font-size:14px!important;
  flex-shrink:0;border:1px solid rgba(22,25,26,0.3)}
.flt-card.sel .flt-letter{background:var(--cy)!important;color:var(--bg)!important;border-color:var(--cy)!important;
  box-shadow:0 0 12px rgba(22,25,26,0.5)}
.flt-tick{border-radius:6px!important;padding:11px 4px!important;transition:all .15s!important}
.flt-tick:hover{transform:scale(1.05);background:rgba(22,25,26,0.08)!important}
.flt-tick.sel{background:linear-gradient(135deg,var(--cy),var(--cy))!important;color:white!important;border-color:var(--cy)!important;
  box-shadow:0 0 12px rgba(22,25,26,0.5);transform:scale(1.08)}
.flt-scenario{background:linear-gradient(135deg,rgba(181,119,8,0.08),rgba(22,25,26,0.05))!important;
  border-left:3px solid var(--cy)!important;border-radius:8px;font-style:italic;padding:14px 18px!important}
.flt-title{font-size:22px!important;font-weight:700!important;color:var(--tx)!important;
  font-family:Manrope,sans-serif;line-height:1.3}
.flt-tag{display:inline-block;padding:5px 12px;background:rgba(22,25,26,0.1);border:1px solid var(--cy);border-radius:6px;
  margin-bottom:11px}
.flt-prompt{font-size:16px!important;line-height:1.6}

/* Estilo dinámico para preguntas técnicas */
.f2-tech-block label{border-radius:10px!important;transition:all .2s!important;padding:12px 14px!important}
.f2-tech-block label:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(22,25,26,0.15)!important}
.f2-tech-block textarea{border-radius:10px!important;padding:14px!important;font-size:16px!important;
  transition:all .2s!important;background:var(--card2)!important}
.f2-tech-block textarea:focus{box-shadow:0 0 0 3px rgba(22,25,26,0.18),0 4px 14px rgba(22,25,26,0.15)!important}

/* DISC / ZAVIC / MOSS containers (dentro del F3 stepper) */
#f3-master > div{
  background:linear-gradient(135deg,rgba(245,246,246,0.5),rgba(255,255,255,0.7))!important;
  border:1px solid var(--brd)!important;border-radius:14px!important;padding:22px!important;
  box-shadow:0 4px 18px rgba(0,0,0,0.08)!important;margin-bottom:14px!important;position:relative;overflow:hidden;
}
#f3-master > div::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--cy),var(--cy),var(--cy),transparent);opacity:.7}
#f3-master label{border-radius:10px!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;padding:12px 14px!important;
  background:rgba(0,0,0,0.03)!important}
#f3-master label:hover{transform:translateY(-1px);background:rgba(22,25,26,0.06)!important;
  box-shadow:0 4px 14px rgba(22,25,26,0.15)!important}
#f3-master [id^="lk"] > div{border-radius:8px!important;transition:all .15s!important;font-size:17px!important}
#f3-master [id^="lk"] > div:hover{transform:scale(1.05);background:rgba(22,25,26,0.1)!important}
.flt-sec-head h3{font-family:Manrope,sans-serif;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--cy);margin-bottom:4px}
.flt-sec-head p{font-size:14px;color:var(--txm);line-height:1.5}
@media(max-width:700px){.flt-choices{grid-template-columns:1fr}}

/* ── FLUJO CANDIDATO · welcome + selector de fase ── */
.wlc-stage{display:none;animation:fadeInUp .35s ease}
.wlc-stage.active{display:block}
@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.wlc-wrap{max-width:880px;margin:0 auto;padding:28px 18px 60px}
.wlc-card-intro{background:var(--card);border:1px solid var(--brd);border-left:3px solid var(--cy);border-radius:16px;padding:30px 32px;position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(22,25,26,.05)}
.wlc-card-intro::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cy),transparent);opacity:.6}
.wlc-eyebrow{font-family:Manrope,sans-serif;font-size:14px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--cy);margin-bottom:9px}
.wlc-h1{font-family:Manrope,sans-serif;font-size:26px;font-weight:700;letter-spacing:1px;color:var(--tx);margin-bottom:13px;line-height:1.25}
.wlc-h1 span{color:var(--cy)}
.wlc-p{font-size:16px;color:var(--txm);line-height:1.65;margin-bottom:11px}
.wlc-p strong{color:var(--tx)}
.wlc-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;margin:18px 0 6px}
.wlc-step{background:var(--bg);border:1px solid var(--brd);border-radius:12px;padding:13px 15px;border-top:2px solid var(--cy)}
.wlc-step-n{font-family:DM Mono,monospace;font-size:15px;color:var(--cy);font-weight:700;margin-bottom:4px}
.wlc-step-t{font-family:Manrope,sans-serif;font-size:14px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--tx);margin-bottom:3px}
.wlc-step-d{font-size:15px;color:var(--txd);line-height:1.4}
.wlc-warn{background:rgba(181,119,8,.08);border-left:3px solid var(--gld);border-radius:10px;padding:13px 16px;margin:14px 0;font-size:15px;color:var(--txm);line-height:1.6}
.wlc-warn strong{color:var(--tx)}
.wlc-cta{display:flex;gap:9px;align-items:center;margin-top:22px;flex-wrap:wrap}
.wlc-btn-main{background:linear-gradient(135deg,var(--cy),var(--cy));color:#fff;border:none;padding:14px 32px;font-family:Manrope,sans-serif;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s}
.wlc-btn-main:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(22,25,26,.3)}
.wlc-mini{font-size:15px;color:var(--txd);font-family:Manrope,sans-serif;letter-spacing:1.5px;text-transform:uppercase}

.wlc-select-head{text-align:center;margin:28px 0 22px}
.wlc-select-head h2{font-family:Manrope,sans-serif;font-size:22px;font-weight:700;letter-spacing:1px;color:var(--tx);margin-bottom:6px}
.wlc-select-head p{font-size:15px;color:var(--txm);line-height:1.5}
.wlc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px}
.wlc-pcard{background:var(--card);border:1px solid var(--brd);border-radius:14px;padding:20px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.wlc-pcard::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--cy),transparent);opacity:0;transition:opacity .2s}
.wlc-pcard:hover{border-color:var(--cy);transform:translateY(-3px);box-shadow:0 12px 26px rgba(22,25,26,.12)}
.wlc-pcard:hover::before{opacity:1}
.wlc-pcard-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg);border:1px solid var(--cy);color:var(--cy);font-family:Manrope,sans-serif;font-size:18px;font-weight:700;margin-bottom:11px}
.wlc-pcard-lbl{font-family:Manrope,sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--cy);margin-bottom:5px}
.wlc-pcard-title{font-family:Manrope,sans-serif;font-size:18px;font-weight:700;color:var(--tx);margin-bottom:6px;letter-spacing:.3px}
.wlc-pcard-desc{font-size:14px;color:var(--txm);line-height:1.5;margin-bottom:11px;min-height:36px}
.wlc-pcard-foot{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--brd);font-family:Manrope,sans-serif;font-size:14px;letter-spacing:1.5px;text-transform:uppercase}
.wlc-pcard-state{color:var(--txd)}
.wlc-pcard-state.open{color:var(--grn)}
.wlc-pcard-state.lock{color:var(--gld)}
.wlc-pcard-arr{color:var(--cy);font-size:16px}
.wlc-back{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid var(--brd);color:var(--txd);padding:9px 15px;font-family:Manrope,sans-serif;font-size:15px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all .15s;margin-bottom:14px}
.wlc-back:hover{border-color:var(--cy);color:var(--cy)}

/* ── BOLSA DE TRABAJO PÚBLICA (js/bolsa.js) ── */
#view-bolsa{display:none}
/* El encabezado se adapta: estas ligas se abren sobre todo desde el celular */
#view-bolsa .hdr{height:auto;min-height:56px;padding:10px 20px;flex-wrap:wrap;gap:9px;row-gap:7px}
#view-bolsa .hdr-r{flex-wrap:wrap;gap:7px}
#view-bolsa .hdr-a{white-space:nowrap}
#view-bolsa .logo{display:flex;align-items:center;text-decoration:none}
.bolsa-wrap{position:relative;z-index:1;max-width:980px;margin:0 auto;padding:34px 20px 48px}
.bolsa-head{margin-bottom:26px}
.bolsa-ey{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--gld);margin-bottom:8px}
.bolsa-head h1{font-family:'Manrope',sans-serif;font-size:40px;line-height:1.1;letter-spacing:-.5px;color:var(--tx);margin-bottom:9px}
.bolsa-head p{font-size:17px;color:var(--txm);max-width:640px}
.bolsa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.bolsa-card{display:block;background:var(--card);border:1px solid var(--brd);border-left:3px solid var(--gld);border-radius:10px;padding:18px 19px;text-decoration:none;color:inherit;transition:border-color .18s,box-shadow .18s,transform .18s}
.bolsa-card:hover{border-color:var(--gld);box-shadow:0 6px 20px rgba(22,25,26,.1);transform:translateY(-2px)}
.bolsa-card h3{font-family:'Manrope',sans-serif;font-size:21px;line-height:1.25;color:var(--tx);margin-bottom:7px}
.bolsa-card p{font-size:15px;color:var(--txm);line-height:1.5;margin-bottom:10px}
.bolsa-card-mas{display:inline-block;margin-top:11px;font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;letter-spacing:1px;color:var(--gld)}
.bolsa-chips{display:flex;flex-wrap:wrap;gap:6px}
.bolsa-chip{font-family:'DM Mono',monospace;font-size:12.5px;color:var(--txm);background:var(--bg2);border:1px solid var(--brd);border-radius:999px;padding:4px 11px}
.bolsa-detalle{background:var(--card);border:1px solid var(--brd);border-radius:12px;padding:32px 34px}
.bolsa-detalle h1{font-family:'Manrope',sans-serif;font-size:34px;line-height:1.15;letter-spacing:-.4px;color:var(--tx);margin-bottom:11px}
.bolsa-resumen{font-size:18px;color:var(--txm);line-height:1.5;margin-bottom:13px}
.bolsa-desc{margin-top:20px;padding-top:20px;border-top:1px solid var(--brd)}
.bolsa-desc p{font-size:16.5px;line-height:1.65;color:var(--tx);margin-bottom:15px;white-space:normal}
.bolsa-cta{margin-top:26px;background:var(--ink2);border-radius:10px;padding:26px 28px;text-align:center}
.bolsa-cta h3{font-family:'Manrope',sans-serif;font-size:22px;color:#fff;margin-bottom:6px}
.bolsa-cta p{font-size:16px;color:rgba(255,255,255,.75);margin-bottom:15px}
.bolsa-btn{display:inline-block;background:var(--gld);color:#fff;text-decoration:none;font-family:'Manrope',sans-serif;font-size:16px;font-weight:700;letter-spacing:.5px;padding:12px 26px;border-radius:999px;transition:background .18s}
.bolsa-btn:hover{background:var(--gld-l)}
.bolsa-cta-mail{font-family:'DM Mono',monospace;font-size:13.5px;color:rgba(255,255,255,.6);margin-top:12px}
.bolsa-vacia{background:var(--card);border:1px solid var(--brd);border-radius:12px;padding:46px 32px;text-align:center;max-width:620px;margin:0 auto}
.bolsa-vacia-ic{font-size:40px;margin-bottom:12px}
.bolsa-vacia h2{font-family:'Manrope',sans-serif;font-size:25px;line-height:1.25;color:var(--tx);margin-bottom:11px}
.bolsa-vacia p{font-size:16.5px;line-height:1.6;color:var(--txm)}
.bolsa-vacia a,.bolsa-footer a{color:var(--gld)}
.bolsa-volver{margin-bottom:16px}
.bolsa-volver a{font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;letter-spacing:1px;color:var(--txd);text-decoration:none}
.bolsa-volver a:hover{color:var(--gld)}
.bolsa-footer{position:relative;z-index:1;max-width:980px;margin:0 auto;padding:22px 20px 40px;border-top:1px solid var(--brd);display:flex;flex-direction:column;gap:5px;font-size:14px;color:var(--txd);text-align:center;align-items:center}
@media (max-width:700px){
  #view-bolsa .hdr{padding:9px 14px}
  #view-bolsa .logo img{height:21px}
  #view-bolsa .hdr-a{font-size:12.5px;padding:4px 10px;letter-spacing:1px}
  .bolsa-wrap{padding:22px 15px 34px}
  .bolsa-head h1{font-size:30px}
  .bolsa-detalle{padding:22px 19px}
  .bolsa-detalle h1{font-size:26px}
  .bolsa-grid{grid-template-columns:1fr}
}

/* ── Barra de formato del Perfil del puesto (js/admin-config.js) ── */
.pf-bar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:var(--card2);border:1px solid var(--brd);border-bottom:none;padding:6px 8px}
.pf-btn{font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;color:var(--txm);background:var(--card);border:1px solid var(--brd);border-radius:5px;padding:5px 9px;cursor:pointer;line-height:1.1;transition:all .15s}
.pf-btn:hover{border-color:var(--gld);color:var(--gld);background:var(--gld-d)}
.pf-sep{width:1px;height:18px;background:var(--brd);margin:0 3px}
/* Vista previa: mismas reglas que la liga pública, para que se vea igual */
#vac-perfil-prev h2,#vac-perfil-prev h3,#vac-perfil-prev h4,.bolsa-desc h2,.bolsa-desc h3,.bolsa-desc h4{font-family:'Manrope',sans-serif;color:var(--tx);line-height:1.3;margin:20px 0 9px}
#vac-perfil-prev h2,.bolsa-desc h2{font-size:23px}
#vac-perfil-prev h3,.bolsa-desc h3{font-size:19px}
#vac-perfil-prev h4,.bolsa-desc h4{font-size:17px}
#vac-perfil-prev > :first-child,.bolsa-desc > :first-child{margin-top:0}
#vac-perfil-prev p{font-size:15.5px;line-height:1.6;color:var(--tx);margin-bottom:12px}
#vac-perfil-prev ul,#vac-perfil-prev ol,.bolsa-desc ul,.bolsa-desc ol{margin:0 0 14px 22px}
#vac-perfil-prev li,.bolsa-desc li{font-size:15.5px;line-height:1.6;color:var(--tx);margin-bottom:5px}
.bolsa-desc li{font-size:16.5px}
#vac-perfil-prev hr,.bolsa-desc hr{border:none;border-top:1px solid var(--brd);margin:18px 0}
#vac-perfil-prev a,.bolsa-desc a{color:var(--gld)}
#vac-perfil-prev strong,.bolsa-desc strong{font-weight:700}

/* Rutas públicas de la bolsa de trabajo: el marcador lo pone un script en el
   <head> (index.html) antes del primer pintado, para que NUNCA se vea el
   portal del candidato mientras carga el JS. */
html.ruta-bolsa #view-portal{display:none!important}
html.ruta-bolsa #view-bolsa{display:block}
