/* ==========================================================================
   DAPIN · Reclutamiento — interfaz estilo Apple con la marca DAPIN
   Paleta de marca tomada del logo: naranja #F9A30F→#F15A24, grafito #303030
   ========================================================================== */
:root{
  --bg:#f5f5f7;
  --bg2:#eeeef1;
  --card:#ffffff;
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --faint:#8e8e93;
  --line:rgba(0,0,0,.10);
  --hair:rgba(0,0,0,.06);
  --orange:#F5911E;
  --orange-2:#E9741A;
  --orange-3:#F15A24;
  --grad:linear-gradient(135deg,#F9A30F 0%,#F15A24 100%);
  --orange-soft:rgba(245,145,30,.12);
  --charcoal:#303030;
  --green:#248a3d;--red:#d70015;
  --radius:18px;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05);
  --shadow-sm:0 1px 2px rgba(0,0,0,.06);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  margin:0;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5;
  letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
a{color:var(--orange-2);text-decoration:none}
::selection{background:var(--orange-soft)}

/* ---------------- app shell ---------------- */
.app{display:flex;min-height:100vh}
.sidebar{
  width:252px;flex:0 0 252px;position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;
  background:rgba(255,255,255,.72);backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-right:1px solid var(--line);
}
.sidebar .brand{padding:24px 22px 14px}
.brand-logo{width:152px;height:auto;display:block}
.sidebar nav{padding:8px 12px;flex:1;display:flex;flex-direction:column;gap:2px}
.sidebar nav a{
  display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;
  color:#3a3a3c;font-weight:500;font-size:14.5px;transition:background .15s,color .15s;
}
.sidebar nav a .ico{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.sidebar nav a:hover{background:rgba(0,0,0,.045);color:var(--ink)}
.sidebar nav a.active{background:var(--orange-soft);color:var(--orange-2);font-weight:600}
.sidebar nav a.active .ico{opacity:1}
.side-foot{padding:14px;border-top:1px solid var(--hair)}
.side-user{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;
  font-weight:700;display:grid;place-items:center;font-size:15px;box-shadow:var(--shadow-sm)}
.su-meta{display:flex;flex-direction:column;line-height:1.25}
.su-meta b{font-size:13.5px}
.su-meta small{color:var(--muted);font-size:12px;text-transform:capitalize}
.logout{display:inline-block;font-size:12.5px;color:var(--muted);font-weight:600}
.logout:hover{color:var(--orange-2)}
.content{flex:1;min-width:0;padding:36px 42px}
.content-inner{max-width:1080px;margin:0 auto}

/* ---------------- cards & typography ---------------- */
.card{background:var(--card);border:1px solid var(--hair);border-radius:var(--radius);
  padding:22px 24px;margin-bottom:20px;box-shadow:var(--shadow)}
h1,h2,h3{margin:.1em 0 .55em;letter-spacing:-.022em;font-weight:700;color:var(--ink)}
h1{font-size:26px}
h2{font-size:20px;border:0;padding:0}
h3{font-size:17px}
h4{margin:16px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;
  color:var(--faint);font-weight:700}
p{margin:.4em 0}

/* ---------------- tables ---------------- */
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--hair);font-size:14px}
th{color:var(--faint);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em}
tr:last-child td{border-bottom:0}

/* ---------------- forms ---------------- */
input,select,textarea{padding:10px 12px;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:14px;width:100%;background:#fff;color:var(--ink);
  transition:border-color .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238e8e93' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;background-position:right 11px center;padding-right:32px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);
  box-shadow:0 0 0 3.5px var(--orange-soft)}
textarea{font-family:inherit;line-height:1.5;resize:vertical}
label.lbl{font-size:12px;color:var(--muted);display:block;margin-bottom:5px;font-weight:500}
.row{display:flex;gap:14px;flex-wrap:wrap}
.row>div{flex:1;min-width:190px}

/* ---------------- buttons ---------------- */
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--grad);color:#fff;border:0;
  padding:9px 17px;border-radius:11px;font-weight:600;font-size:14px;cursor:pointer;
  letter-spacing:-.01em;box-shadow:0 1px 2px rgba(0,0,0,.08);
  transition:transform .12s ease,box-shadow .18s,filter .15s}
.btn:hover{filter:brightness(1.04);box-shadow:0 6px 18px rgba(241,90,36,.26);transform:translateY(-1px)}
.btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,.1)}
.btn.sec{background:rgba(118,118,128,.12);color:var(--ink);box-shadow:none}
.btn.sec:hover{background:rgba(118,118,128,.2);filter:none;box-shadow:none;transform:none}
.btn.danger{background:#ff3b30}
.btn.danger:hover{box-shadow:0 6px 18px rgba(255,59,48,.28)}
.btn.busy-click[disabled]{opacity:.55}

/* ---------------- chips, badges, messages ---------------- */
.pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}
.pill.on{background:rgba(52,199,89,.15);color:var(--green)}
.pill.off{background:rgba(255,59,48,.12);color:var(--red)}
.badge{display:inline-block;background:var(--orange-soft);color:#b4610a;
  border:1px solid rgba(245,145,30,.25);padding:3px 9px;border-radius:8px;font-size:12px;font-weight:600}
.msg{background:var(--orange-soft);border:1px solid rgba(245,145,30,.3);padding:11px 15px;
  border-radius:12px;margin-bottom:16px;color:#93540a;font-weight:500;font-size:14px}
.conflict{background:rgba(255,59,48,.05);border:1px solid rgba(255,59,48,.2);
  padding:10px 13px;border-radius:12px;margin:6px 0}
.met-yes{color:var(--green);font-weight:600}.met-no{color:var(--red);font-weight:600}
.score{font-size:34px;font-weight:800;color:var(--orange-2);letter-spacing:-.03em}
small.muted{color:var(--muted)}

/* ---------------- overlay / spinner ---------------- */
#overlay{position:fixed;inset:0;background:rgba(245,245,247,.6);backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;
  flex-direction:column;z-index:9999}
.spinner{width:44px;height:44px;border:4px solid rgba(245,145,30,.25);border-top-color:var(--orange-3);
  border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#overlay p{margin-top:14px;font-weight:700;color:var(--orange-2)}

/* ---------------- accordions (compat) ---------------- */
details.acc{background:var(--card);border:1px solid var(--hair);border-radius:var(--radius);
  margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow)}
details.acc>summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:600;font-size:15px;
  display:flex;align-items:center;gap:10px;user-select:none}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary::before{content:'\25B8';color:var(--orange);font-size:13px;transition:transform .15s ease}
details.acc[open]>summary::before{transform:rotate(90deg)}
details.acc>summary .tag{margin-left:auto;font-weight:600;font-size:12px;color:var(--muted)}
.acc-body{padding:4px 18px 18px}
.dlrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.rowwrap{margin-bottom:10px}

/* ---------------- login ---------------- */
.login-wrap{max-width:380px;margin:11vh auto}

/* ---------------- ficha candidato: navegación por secciones ---------------- */
.cand-layout{display:flex;gap:24px;align-items:flex-start}
.sec-menu{flex:0 0 220px;position:sticky;top:24px;background:var(--card);
  border:1px solid var(--hair);border-radius:16px;padding:8px;box-shadow:var(--shadow)}
.sec-menu a{display:block;padding:10px 13px;border-radius:10px;color:#3a3a3c;font-weight:500;
  font-size:14px;cursor:pointer;margin-bottom:2px;transition:background .15s,color .15s}
.sec-menu a:hover{background:rgba(0,0,0,.045)}
.sec-menu a.active{background:var(--orange-soft);color:var(--orange-2);font-weight:600}
.sec-menu a .tag{float:right;font-size:11px;color:var(--faint);font-weight:700}
.panels{flex:1;min-width:0}
.panel{display:none}
.panel.active{display:block;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.kv{width:100%}
.kv td{padding:9px 10px;border-bottom:1px solid var(--hair);font-size:14px}
.kv td.k{color:var(--muted);width:220px;font-weight:500}

/* ---------------- panel de evaluación ---------------- */
.eval-top{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:4px 0 20px}
.eval-ring{--p:0;--c:var(--orange);width:100px;height:100px;flex:0 0 auto;border-radius:50%;
  background:conic-gradient(var(--c) calc(var(--p)*3.6deg),#e9e9ec 0);
  display:grid;place-items:center;position:relative;box-shadow:var(--shadow-sm)}
.eval-ring::after{content:"";position:absolute;inset:10px;background:var(--card);border-radius:50%}
.eval-ring .rc{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;line-height:1}
.eval-ring .rc b{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.03em}
.eval-ring .rc small{font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.6px;margin-top:3px}
.verdict{flex:1;min-width:220px;border:1px solid var(--hair);border-left:5px solid var(--c,#ccc);
  border-radius:16px;padding:14px 18px;background:var(--card);box-shadow:var(--shadow-sm)}
.verdict .vl{font-size:19px;font-weight:700;color:var(--c,#333);letter-spacing:-.02em}
.verdict .vr{color:var(--muted);font-size:13px;margin-top:3px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:0 0 16px}
.stat{background:#f7f7f9;border:1px solid var(--hair);border-radius:14px;padding:14px 16px}
.stat .sk{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.stat .sv{font-size:20px;font-weight:700;margin-top:4px;color:var(--ink);letter-spacing:-.02em}
.stat .sv.sm{font-size:15px;letter-spacing:-.01em}
.stat .ss{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.45}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}
.eval-sub{font-size:12px;color:var(--faint);text-transform:uppercase;letter-spacing:.5px;
  margin:18px 0 8px;font-weight:700}
.alert{display:flex;gap:9px;align-items:flex-start;padding:11px 14px;border-radius:12px;
  font-size:13px;margin-bottom:7px;border:1px solid;line-height:1.45}
.alert .ai{font-weight:800;flex:0 0 auto}
.alert.warn{background:rgba(255,59,48,.06);border-color:rgba(255,59,48,.22);color:#b3261e}
.alert.info{background:var(--orange-soft);border-color:rgba(245,145,30,.28);color:#8a5209}
.alert.ok{background:rgba(52,199,89,.1);border-color:rgba(52,199,89,.28);color:#1e7a37}
.crit-tbl td,.crit-tbl th{padding:10px 8px}
.st{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}
.st.yes{background:rgba(52,199,89,.15);color:var(--green)}
.st.no{background:rgba(255,59,48,.12);color:var(--red)}
.st.part{background:var(--orange-soft);color:#b4610a}
.tag-must{display:inline-block;background:#ff3b30;color:#fff;font-size:10px;font-weight:700;
  padding:1px 6px;border-radius:5px;margin-left:6px;vertical-align:middle;text-transform:uppercase;letter-spacing:.3px}
.empty-eval{padding:24px;text-align:center;color:var(--muted);background:var(--bg);
  border:1px dashed var(--line);border-radius:14px;font-size:14px}

/* ---------------- responsive ---------------- */
@media(max-width:860px){
  .app{flex-direction:column}
  .sidebar{width:100%;flex:none;height:auto;position:sticky;top:0;z-index:50;
    flex-direction:row;align-items:center;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}
  .sidebar .brand{padding:12px 16px}
  .brand-logo{width:120px}
  .sidebar nav{flex-direction:row;flex-wrap:wrap;padding:6px;gap:4px}
  .sidebar nav a{padding:8px 11px}
  .side-foot{border-top:0;padding:8px 14px;margin-left:auto}
  .side-user{margin-bottom:0}.su-meta{display:none}
  .content{padding:22px 18px}
  .cand-layout{flex-direction:column}
  .sec-menu{position:static;width:100%;display:flex;flex-wrap:wrap;gap:6px}
  .sec-menu a{margin:0}
}
