*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --b:#2B5CE6;--b2:#3B6EF8;--b3:#6091FF;
  --blight:#EEF3FF;--bxlight:#F4F7FF;
  --dark:#18181B;--mid:#3F3F46;--gray:#71717A;--faint:#A8A8B2;
  --light:#FAFAFA;--w:#fff;
  --red:#E53E3E;--green:#16A34A;--amber:#D97706;--purple:#7C3AED;
  --brd:#E4E4E7;
  --shadow:0 2px 16px rgba(43,92,230,.10);
  --shadow-lg:0 8px 32px rgba(43,92,230,.14);
  --shadow-card:0 1px 2px rgba(15,23,42,.04),0 4px 16px rgba(15,23,42,.06);
  --shadow-card-hover:0 2px 4px rgba(15,23,42,.06),0 12px 28px rgba(43,92,230,.16);
  --ring:0 0 0 3px rgba(43,92,230,.25);
  --r:10px;--rl:16px;--rxl:24px;--rp:100px;
  /* fondo del "escritorio" detrás del teléfono */
  --page-bg:linear-gradient(145deg,#EEF2FF 0%,#E0E7FF 40%,#F0F4FF 100%);
}
/* ═══ DARK MODE ═══
   Remapea las variables semánticas. Como casi toda la UI usa var(--w),
   var(--light), var(--dark), etc., el tema oscuro adapta en cascada.
   Los gradientes oscuros (login/match/detalle/CV) se mantienen — ya lucen
   bien en ambos temas. */
html[data-theme="dark"]{
  --b:#5B8DEF;--b2:#6E9BF5;--b3:#8AB0FF;
  --blight:#1C2742;--bxlight:#23232F;
  --dark:#F2F2F5;--mid:#C2C2CC;--gray:#9595A0;--faint:#6E6E7A;
  --light:#15151D;--w:#1E1E29;
  --brd:#32323F;
  --shadow:0 2px 16px rgba(0,0,0,.45);
  --shadow-lg:0 8px 32px rgba(0,0,0,.55);
  --shadow-card:0 1px 2px rgba(0,0,0,.35),0 4px 16px rgba(0,0,0,.45);
  --shadow-card-hover:0 2px 4px rgba(0,0,0,.45),0 12px 28px rgba(0,0,0,.55);
  --ring:0 0 0 3px rgba(91,141,239,.35);
  --page-bg:linear-gradient(145deg,#0B0B12 0%,#101019 40%,#0B0B12 100%);
}
html{height:100%}
body{min-height:100%;background:var(--page-bg);display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:'cv11','ss01','ss03';line-height:1.5;color:var(--dark)}
/* Defensivo: cualquier input/textarea/select que escape al sistema debe heredar
   el color de texto del tema. En dark mode, sin esto, el browser usa negro y
   queda ilegible sobre superficies oscuras (bug reportado en .chatin). */
input,textarea,select{color:var(--dark);-webkit-text-fill-color:var(--dark);caret-color:var(--b)}
input::placeholder,textarea::placeholder{color:var(--gray);opacity:.75}
/* Webkit autofill no respeta color de texto: forzar */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,select:-webkit-autofill{-webkit-text-fill-color:var(--dark)!important;-webkit-box-shadow:0 0 0 30px var(--w) inset!important;transition:background-color 5000s ease-in-out 0s}
/* Numeric en stats, contadores, badges, fechas: glyph width estable */
.score-num,.detail-score-num,.k-count,.iv-status,.nbadge,.cpct,.stat-num,time,.bt{font-variant-numeric:tabular-nums}
/* Headings con Syne respiran mejor con letter-spacing apenas negativo */
.mtitle,.scrtitle,.schtitle,.cname,.detail-name,.brand{letter-spacing:-.3px}
/* Labels chiquitos: ahora con un token consistente (antes era #aaa hardcoded) */
.cp-section-title,.empty-body,.detail-lbl{color:var(--gray)}
/* Body text con un poco más de aire entre renglones para legibilidad */
.detail-about,.empty-body,.cp-input,.sm-inp{line-height:1.55}
#app{width:100%;max-width:390px;height:100vh;max-height:820px;background:var(--light);border-radius:var(--rxl);box-shadow:0 32px 80px rgba(43,92,230,.18),0 0 0 1px rgba(43,92,230,.06);display:flex;flex-direction:column;overflow:hidden;position:relative;}
.scr{display:none;flex-direction:column;flex:1;overflow:hidden}.scr.on{display:flex;animation:scrIn .34s cubic-bezier(.22,.61,.36,1) both}
.scr.on > .scrhead,.scr.on > .chatheader,.scr.on > .detail-hero,.scr.on > .cp-hero,.scr.on > .phero{animation:scrHeadIn .42s cubic-bezier(.22,.61,.36,1) both}
.scr.on > .bnav{animation:scrNavIn .42s cubic-bezier(.22,.61,.36,1) .04s both}
@keyframes scrIn{from{opacity:0;transform:translateY(10px) scale(.985);filter:blur(2px)}60%{opacity:1;filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes scrHeadIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes scrNavIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Microinteracciones: tap feedback en botones */
.bprimary:active,.empty-cta:active,.cv-view-btn:active,.dbtn:active,.bpass:active,.blike:active,.cp-save-btn:active{transform:scale(.96)}
.ni:active{transform:scale(.92)}
/* Burbujas de chat: fade-in suave al aparecer */
.bw{animation:bubbleIn .22s cubic-bezier(.2,.7,.2,1) both}
@keyframes bubbleIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
/* Notif del banner que cae de arriba */
.toast-in{animation:toastIn .3s cubic-bezier(.2,.7,.2,1) both}
@keyframes toastIn{from{opacity:0;transform:translateY(-10px) translateX(-50%)}to{opacity:1;transform:translateY(0) translateX(-50%)}}

/* Banner de nueva versión disponible (PWA update) ───────────────────────
   Aparece arriba del app shell cuando el SW detecta una nueva versión esperando.
   Posición absoluta dentro de #app, con animación slide-down. */
.update-banner{position:absolute;top:-100px;left:8px;right:8px;background:linear-gradient(135deg,var(--b) 0%,var(--b3) 100%);color:#fff;border-radius:14px;padding:11px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 32px rgba(43,92,230,.4),inset 0 1px 0 rgba(255,255,255,.15);z-index:9999;opacity:0;transition:top .45s cubic-bezier(.22,.61,.36,1),opacity .35s ease}
.update-banner.on{top:10px;opacity:1}
.update-banner-icon{font-size:22px;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
.update-banner-text{flex:1;min-width:0}
.update-banner-title{font-family:'Syne',sans-serif;font-size:13.5px;font-weight:800;letter-spacing:-.1px;line-height:1.2}
.update-banner-sub{font-size:11px;opacity:.85;margin-top:1px;line-height:1.3}
.update-banner-btn{background:#fff;color:var(--b);border:none;border-radius:20px;padding:7px 14px;font-size:12px;font-weight:800;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:transform .15s,box-shadow .2s;letter-spacing:.2px}
.update-banner-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.22)}
.update-banner-btn:active{transform:scale(.94)}
.update-banner-btn:disabled{opacity:.7;cursor:wait}
.update-banner-dismiss{background:rgba(255,255,255,.18);border:none;color:#fff;width:24px;height:24px;border-radius:50%;font-size:11px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s}
.update-banner-dismiss:hover{background:rgba(255,255,255,.28)}
/* Respetar usuarios que prefieren menos animación */
@media (prefers-reduced-motion:reduce){
  .scr.on,.scr.on>*,.bw,.toast-in{animation:none!important}
  *{transition-duration:.01ms!important}
}

/* TOPBAR */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;background:var(--w);flex-shrink:0;border-bottom:1px solid var(--brd)}
.modetabs{display:flex;background:var(--bxlight);border-radius:var(--rp);padding:3px;gap:2px}
.mtab{font-size:11px;font-weight:600;padding:5px 11px;border-radius:var(--rp);cursor:pointer;color:var(--gray);transition:all .2s}
.mtab.on{background:var(--b);color:#fff;box-shadow:0 2px 8px rgba(43,92,230,.25)}
.ibtn{width:34px;height:34px;border-radius:50%;background:var(--bxlight);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;position:relative}
.ndot{position:absolute;top:0;right:0;width:8px;height:8px;background:var(--red);border-radius:50%;border:2px solid var(--w);display:none}.ndot.on{display:block}

/* CARD AREA */
.card-area{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:12px 16px;overflow:hidden;background:var(--bxlight)}
.card-bg{position:absolute;width:calc(100% - 32px);background:var(--w);border-radius:var(--rxl);height:90%;transform:scale(.95) translateY(10px);box-shadow:0 2px 16px rgba(43,92,230,.07);opacity:.55}
.card{width:100%;background:var(--w);border-radius:var(--rxl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;padding:18px 18px 14px;position:relative;touch-action:none;user-select:none;cursor:grab;overflow-y:auto;max-height:98%}
.card:active{cursor:grabbing}
/* MODERN CARD — refinamiento visual sin perder la esencia tNic */
/* Avatar: anillo blanco + halo azul translúcido, sensación premium */
.cav{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;margin-bottom:14px;box-shadow:0 0 0 3px var(--w),0 0 0 5px rgba(43,92,230,.20),0 8px 22px rgba(43,92,230,.22);font-family:'Syne',sans-serif;flex-shrink:0;overflow:hidden;position:relative}
.cav img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.cav-upload{position:absolute;bottom:0;right:0;width:22px;height:22px;background:var(--b);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:10px;color:#fff;border:2px solid var(--w)}
input.photo-in{display:none}
.company-badge{background:var(--blight);color:var(--b);border-radius:6px;padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}
/* Badge "Ejemplo" para perfiles demo. Posicionado arriba a la derecha de la card,
   con tinte amarillo cálido para que no compita con elementos azules de la marca. */
.demo-badge{position:absolute;top:14px;right:14px;background:linear-gradient(135deg,#FCD34D,#F59E0B);color:#78350F;border-radius:20px;padding:4px 10px;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;box-shadow:0 2px 8px rgba(245,158,11,.35),0 0 0 2px rgba(255,255,255,.6);z-index:3;display:flex;align-items:center;gap:3px;animation:demo-pop .4s cubic-bezier(.34,1.56,.64,1)}
@keyframes demo-pop{from{opacity:0;transform:scale(.6) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}
/* Nombre — más presencia, tracking apretado, line-height más editorial */
.cname{font-family:'Syne',sans-serif;font-size:23px;font-weight:800;color:var(--dark);letter-spacing:-.5px;line-height:1.1;margin-top:2px;text-align:center}
.cloc{font-size:12px;color:var(--faint);margin-top:4px;font-weight:500}
/* Rol — peso mayor para definir mejor el segundo nivel de jerarquía */
.crole{font-size:13px;font-weight:700;color:var(--b);margin-top:6px;letter-spacing:.1px;text-align:center}
.skills{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:12px}
/* Chips — fondo neutro con borde sutil (feel más editorial, menos "tag-soup") */
.sk{background:var(--w);color:var(--b);border-radius:8px;padding:4px 11px;font-size:11px;font-weight:600;border:1.5px solid rgba(43,92,230,.16);transition:all .15s}
.sk:hover{background:var(--blight);border-color:var(--b)}
.csal{font-size:13px;color:var(--mid);margin-top:10px;font-weight:600;letter-spacing:-.1px}
.cabout{font-size:12.5px;color:var(--gray);margin-top:10px;line-height:1.55;text-align:center}
/* Match score — gradiente azul sutil para añadir profundidad */
.score-pill{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,rgba(43,92,230,.10),rgba(43,92,230,.04));border-radius:var(--rp);padding:5px 14px;margin-top:12px;border:1px solid rgba(43,92,230,.18)}
.score-bar-bg{width:70px;height:5px;background:rgba(43,92,230,.12);border-radius:10px;overflow:hidden}
.score-bar-fill{height:100%;background:linear-gradient(90deg,var(--b),var(--b3));border-radius:10px}
.score-num{font-size:13px;font-weight:800;color:var(--b);font-family:'Syne',sans-serif;letter-spacing:-.3px}
/* "Más info" — pill con fondo, más invitante (menos hostile-outline) */
.dbtn{margin-top:14px;background:var(--bxlight);border:none;border-radius:var(--rp);padding:7px 18px;font-size:11px;font-weight:700;color:var(--b);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:all .15s;letter-spacing:.3px}
.dbtn:hover{background:var(--blight);transform:translateY(-1px)}
.dbtn:active{transform:translateY(0)}
.cv-section{margin-top:12px;border-top:1px solid var(--brd);padding-top:12px}
.cv-label{font-size:10px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.cv-upload-btn{display:flex;align-items:center;gap:8px;background:var(--bxlight);border:1.5px dashed var(--b3);border-radius:var(--rl);padding:10px 14px;cursor:pointer;width:100%}
.cv-upload-btn span{font-size:12px;color:var(--b);font-weight:600}
.cv-file-info{display:flex;align-items:center;gap:8px;background:var(--bxlight);border:1.5px solid var(--b);border-radius:var(--rl);padding:10px 14px;width:100%}
.cv-file-name{font-size:12px;color:var(--dark);font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-view-btn{background:var(--b);color:#fff;border:none;border-radius:var(--r);padding:5px 10px;font-size:11px;font-weight:600;cursor:pointer;flex-shrink:0}
.cv-remove-btn{background:none;border:none;color:var(--red);font-size:14px;cursor:pointer;flex-shrink:0}
input.cv-in{display:none}
.extra{display:none;width:100%;margin-top:12px;border-top:1px solid var(--brd);padding-top:12px}.extra.on{display:block}
.erow{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.elbl{font-size:11px;color:var(--gray);font-weight:500}
.eval{font-size:12px;color:var(--dark);font-weight:600}
.stamp{position:absolute;top:16px;font-size:14px;font-weight:800;border:3px solid;border-radius:8px;padding:4px 10px;opacity:0;pointer-events:none}
.sl{left:12px;color:var(--b);border-color:var(--b);transform:rotate(-15deg)}
.sp{right:12px;color:var(--red);border-color:var(--red);transform:rotate(15deg)}

/* ACTIONS */
.actions{display:flex;justify-content:center;align-items:center;gap:40px;padding:8px 0 12px;flex-shrink:0;background:var(--w);border-top:1px solid var(--brd)}
.bpass{width:56px;height:56px;border-radius:50%;background:var(--w);border:2px solid var(--brd);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.06);transition:all .15s}
.blike{width:66px;height:66px;border-radius:50%;background:linear-gradient(135deg,var(--b),var(--b3));font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border:none;box-shadow:0 4px 16px rgba(43,92,230,.35);transition:all .15s}

/* BOTTOM NAV — polished */
.bnav{display:flex;justify-content:space-around;align-items:center;background:var(--w);padding:8px 6px 18px;border-top:1px solid var(--brd);flex-shrink:0;box-shadow:0 -1px 0 rgba(43,92,230,.04),0 -8px 24px rgba(0,0,0,.03)}
.ni{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;position:relative;color:var(--gray);padding:8px 10px 6px;border-radius:18px;transition:color .25s ease,background .25s ease,transform .2s cubic-bezier(.34,1.56,.64,1);min-width:54px}
.ni::before{content:'';position:absolute;top:0;left:50%;width:0;height:3px;background:linear-gradient(90deg,var(--b),var(--b3));border-radius:0 0 3px 3px;transform:translateX(-50%);transition:width .3s cubic-bezier(.34,1.56,.64,1);opacity:0}
.ni.on{color:var(--b);background:var(--bxlight)}
.ni.on::before{width:28px;opacity:1;height:3px}
.ni.on .ni-icon{transform:translateY(-2px) scale(1.08);filter:drop-shadow(0 2px 4px rgba(43,92,230,.3))}
.ni-icon{display:flex;align-items:center;justify-content:center;height:22px;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.ni-icon svg{display:block;transition:stroke-width .2s}
.ni.on .ni-icon svg{stroke-width:2.3}
.ni-lbl{font-size:9.5px;font-weight:700;color:var(--b);max-height:0;opacity:0;letter-spacing:.4px;text-transform:uppercase;overflow:hidden;transition:max-height .25s ease,opacity .2s ease .05s}
.ni.on .ni-lbl{display:block;max-height:14px;opacity:1}
.nbadge{position:absolute;top:2px;right:6px;background:var(--red);color:#fff;font-size:9px;font-weight:700;border-radius:10px;padding:1px 5px;display:none;box-shadow:0 2px 6px rgba(220,38,38,.35),0 0 0 2px var(--w);min-width:14px;text-align:center;line-height:1.3}.nbadge.on{display:block;animation:nbadge-pop .35s cubic-bezier(.34,1.56,.64,1)}
@keyframes nbadge-pop{from{transform:scale(0)}to{transform:scale(1)}}

/* MATCH SCREEN */
/* ═══ MATCH SCREEN — Modernized ═══
   Momento celebratorio. Background con burst radial + chispitas,
   choreografía escalonada, corazón pulsando, jerarquía clara de botones. */
#match-scr{
  align-items:center;justify-content:center;gap:16px;
  background:radial-gradient(ellipse at top,#2B5CE6 0%,#1B4FD8 38%,#0F172A 100%);
  padding:30px;
  position:relative;
  overflow:hidden;
}
/* Light burst from top-center (suave halo azul) */
#match-scr::before{
  content:'';position:absolute;top:-160px;left:50%;
  transform:translateX(-50%);
  width:600px;height:600px;
  background:radial-gradient(circle,rgba(120,160,255,.32) 0%,rgba(43,92,230,.12) 38%,transparent 65%);
  pointer-events:none;
  animation:match-glow 4s ease-in-out infinite;
}
@keyframes match-glow{
  0%,100%{opacity:.85}
  50%{opacity:1}
}
/* Chispitas decorativas (puntos blancos sutiles esparcidos) */
#match-scr::after{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(2px 2px at 14% 22%,rgba(255,255,255,.45) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 86% 32%,rgba(255,255,255,.35) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 24% 78%,rgba(255,255,255,.30) 50%,transparent 51%),
    radial-gradient(2px 2px at 78% 86%,rgba(255,255,255,.40) 50%,transparent 51%),
    radial-gradient(2px 2px at 52% 12%,rgba(255,255,255,.25) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 92% 64%,rgba(255,255,255,.28) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 10% 56%,rgba(255,255,255,.22) 50%,transparent 51%);
  pointer-events:none;
}
/* Children por encima de los pseudo-elementos */
#match-scr > *{position:relative;z-index:1}

.moji{
  font-size:64px;line-height:1;
  filter:drop-shadow(0 6px 16px rgba(255,255,255,.20));
  animation:moji-pop 650ms cubic-bezier(.34,1.56,.64,1) 80ms both;
}
@keyframes moji-pop{
  0%{opacity:0;transform:scale(.3) rotate(-18deg)}
  60%{transform:scale(1.15) rotate(8deg)}
  100%{opacity:1;transform:scale(1) rotate(0deg)}
}

.mtitle{
  font-family:'Syne',sans-serif;font-size:36px;font-weight:800;
  color:#fff;letter-spacing:-1.5px;line-height:1;
  background:linear-gradient(135deg,#fff 25%,#B5CCFF 100%);
  background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
  animation:match-up 550ms cubic-bezier(.2,.7,.2,1) 220ms both;
}
@keyframes match-up{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

.mbadge2{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.28);
  color:rgba(255,255,255,.92);
  border-radius:var(--rp);padding:5px 16px;
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:1.5px;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:match-up 550ms cubic-bezier(.2,.7,.2,1) 320ms both;
}

.msub{
  font-size:14px;color:rgba(255,255,255,.85);
  text-align:center;line-height:1.5;max-width:280px;
  animation:match-up 550ms cubic-bezier(.2,.7,.2,1) 420ms both;
}
.msub strong{color:#fff;font-weight:700}

.mavs{
  display:flex;align-items:center;gap:18px;
  margin:6px 0;
  animation:match-up 550ms cubic-bezier(.2,.7,.2,1) 520ms both;
}
.mav{
  width:78px;height:78px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:700;color:#fff;
  box-shadow:0 0 0 4px rgba(255,255,255,.95),0 10px 28px rgba(43,92,230,.45);
  font-family:'Syne',sans-serif;overflow:hidden;
}
.mav img{width:100%;height:100%;object-fit:cover}
/* Corazón pulsando entre avatares */
.mavs > div:nth-child(2){
  font-size:32px !important;
  animation:heart-beat 1.4s ease-in-out infinite;
  filter:drop-shadow(0 0 12px rgba(255,255,255,.45));
}
@keyframes heart-beat{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.20)}
}

/* Botones específicos del match-scr (sin tocar las clases globales) */
#match-scr .bprimary{
  padding:15px 0;font-weight:700;
  box-shadow:0 6px 24px rgba(43,92,230,.50);
  animation:match-up 550ms cubic-bezier(.2,.7,.2,1) 620ms both;
}
#match-scr .bprimary:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(43,92,230,.60)}
#match-scr .bprimary:active{transform:translateY(0)}
#match-scr .bschedule{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.40);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:match-up 550ms cubic-bezier(.2,.7,.2,1) 720ms both;
}
#match-scr .bschedule:hover{background:rgba(255,255,255,.18)}
#match-scr .bghost{
  color:rgba(255,255,255,.65);font-weight:500;
  border:none;text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.20);text-underline-offset:3px;
  animation:match-up 550ms cubic-bezier(.2,.7,.2,1) 820ms both;
}
#match-scr .bghost:hover{color:rgba(255,255,255,.90)}
.bprimary{background:linear-gradient(135deg,var(--b),var(--b3));color:#fff;border:none;border-radius:var(--rp);padding:14px 0;font-size:14px;font-weight:600;cursor:pointer;width:100%;max-width:280px;font-family:'Plus Jakarta Sans',sans-serif;transition:all .15s}
.bghost{background:transparent;color:rgba(255,255,255,.65);border:1px solid rgba(255,255,255,.25);border-radius:var(--rp);padding:12px 0;font-size:13px;cursor:pointer;width:100%;max-width:280px;font-family:'Plus Jakarta Sans',sans-serif}
.bschedule{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:var(--rp);padding:12px 0;font-size:13px;cursor:pointer;width:100%;max-width:280px;font-family:'Plus Jakarta Sans',sans-serif}

/* CHAT — editorial */
.chatheader{display:flex;align-items:center;gap:11px;padding:13px 16px;background:var(--w);border-bottom:1px solid var(--brd);flex-shrink:0;box-shadow:0 1px 0 rgba(43,92,230,.04)}
.backbtn{background:none;border:none;font-size:20px;color:var(--b);cursor:pointer;padding:4px;transition:transform .15s}
.backbtn:active{transform:translateX(-2px)}
.chav{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;flex-shrink:0;overflow:hidden;box-shadow:0 0 0 2px var(--w),0 0 0 3.5px rgba(43,92,230,.18),0 2px 6px rgba(43,92,230,.18)}
.chav img{width:100%;height:100%;object-fit:cover}
.chname{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--dark);letter-spacing:-.2px;line-height:1.1}
.chrole{font-size:10.5px;color:var(--gray);margin-top:2px;line-height:1.2}
.online{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--green);font-weight:600;letter-spacing:.2px}
.odot{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 0 3px rgba(16,185,129,.18);animation:online-pulse 2.4s ease-in-out infinite}
@keyframes online-pulse{0%,100%{box-shadow:0 0 0 3px rgba(16,185,129,.18)}50%{box-shadow:0 0 0 5px rgba(16,185,129,.08)}}
.chatbody{flex:1;display:flex;flex-direction:column;gap:3px;padding:16px 14px 18px;overflow-y:auto;background:linear-gradient(180deg,var(--light) 0%,var(--bxlight) 100%)}
.bw{display:flex;flex-direction:column;max-width:100%}
.bw.me{align-items:flex-end}
.bw.them{align-items:flex-start}
.bw + .bw{margin-top:10px}
.bw.me + .bw.me, .bw.them + .bw.them{margin-top:2px}
.bub{max-width:78%;border-radius:20px;padding:9px 14px;font-size:13.5px;line-height:1.5;letter-spacing:.1px;word-wrap:break-word;overflow-wrap:break-word;font-weight:450;transition:transform .12s}
.bub.them{background:var(--w);color:var(--dark);box-shadow:0 1px 3px rgba(0,0,0,.04),0 0 0 1px rgba(43,92,230,.07);border-bottom-left-radius:6px}
.bub.me{background:linear-gradient(135deg,var(--b) 0%,var(--b3) 100%);color:#fff;box-shadow:0 2px 10px rgba(43,92,230,.24),inset 0 1px 0 rgba(255,255,255,.14);border-bottom-right-radius:6px;font-weight:500}
.bw.me + .bw.me .bub.me{border-bottom-right-radius:20px;border-top-right-radius:6px}
.bw.them + .bw.them .bub.them{border-bottom-left-radius:20px;border-top-left-radius:6px}
.bt{font-size:10px;color:var(--faint);margin-top:5px;padding:0 6px;letter-spacing:.4px;font-variant-numeric:tabular-nums;opacity:.85}
.bw.me + .bw.me .bt, .bw.them + .bw.them .bt{display:none}
.typing{display:flex;gap:5px;align-items:center;padding:10px 14px;background:var(--w);border-radius:20px;border-bottom-left-radius:6px;width:fit-content;box-shadow:0 1px 3px rgba(0,0,0,.04),0 0 0 1px rgba(43,92,230,.07);margin-top:10px}
.td{width:6px;height:6px;background:var(--b);opacity:.55;border-radius:50%;animation:ta 1.2s infinite}
.td:nth-child(2){animation-delay:.2s}.td:nth-child(3){animation-delay:.4s}
@keyframes ta{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:.95}}
.chatinrow{display:flex;gap:8px;padding:10px 12px 16px;background:var(--w);border-top:1px solid var(--brd);flex-shrink:0;align-items:center}
.chatin{flex:1;border:1.5px solid var(--brd);border-radius:var(--rp);padding:10px 16px;font-size:13.5px;outline:none;background:var(--light);color:var(--dark);font-family:'Plus Jakarta Sans',sans-serif;transition:border-color .2s,box-shadow .2s,background .2s;letter-spacing:.1px}
.chatin:focus{border-color:var(--b);background:var(--w)}
.chatin::placeholder{color:var(--gray);opacity:.8}
.bsend{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--b) 0%,var(--b3) 100%);color:#fff;border:none;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 3px 12px rgba(43,92,230,.32),inset 0 1px 0 rgba(255,255,255,.18);transition:transform .15s,box-shadow .2s}
.bsend:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(43,92,230,.4),inset 0 1px 0 rgba(255,255,255,.2)}
.bsend:active{transform:scale(.94)}

/* PIPELINE — polished */
.kanban-wrap{flex:1;display:flex;gap:0;overflow-x:auto;padding:14px 8px;background:linear-gradient(180deg,var(--light) 0%,var(--bxlight) 100%)}
.kanban-col{min-width:152px;flex:1;display:flex;flex-direction:column;gap:8px;padding:0 6px}
.kcol-header{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:1px;padding:8px 12px;border-radius:12px;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 3px rgba(0,0,0,.04);position:relative;overflow:hidden}
.kcol-header::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:currentColor;opacity:.6}
.kcol-header.nuevo{background:#DBEAFE;color:#1D4ED8}.kcol-header.entrevista{background:#FEF3C7;color:#92400E}
.kcol-header.oferta{background:#D1FAE5;color:#065F46}.kcol-header.contratado{background:#EDE9FE;color:#5B21B6}
.kcol-header .k-count{background:rgba(255,255,255,.65);color:inherit;font-size:10px;font-weight:800;padding:2px 7px;border-radius:10px;min-width:18px;text-align:center}
.kcard{background:var(--w);border-radius:14px;padding:12px 14px;box-shadow:0 2px 8px rgba(0,0,0,.05),0 0 0 1px rgba(43,92,230,.06);cursor:pointer;border-left:3px solid var(--b);transition:transform .15s,box-shadow .2s}
.kcard:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(43,92,230,.12),0 0 0 1px rgba(43,92,230,.12)}
.kcard.entrevista{border-left-color:var(--amber)}.kcard.oferta{border-left-color:var(--green)}
/* Contratado — celebración visual: franja verde arriba + tint suave al fondo */
.kcard.contratado{border-left-color:#10B981;position:relative;padding-top:34px;background:linear-gradient(135deg,rgba(16,185,129,.10) 0%,var(--w) 60%);box-shadow:0 2px 10px rgba(16,185,129,.18),0 0 0 1px rgba(16,185,129,.20)}
.kcard.contratado::before{
  content:'✓ CONTRATADO';
  display:block;
  position:absolute;top:0;left:0;right:0;
  background:linear-gradient(90deg,#10B981 0%,#059669 100%);
  color:#fff;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:9.5px;
  font-weight:800;
  letter-spacing:1.6px;
  padding:6px 12px;
  text-align:center;
  border-radius:11px 11px 0 0;
  box-shadow:0 1px 2px rgba(16,185,129,.3);
}
.kcard.contratado:hover{box-shadow:0 6px 20px rgba(16,185,129,.28),0 0 0 1px rgba(16,185,129,.35)}
.kav{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;margin-bottom:7px;overflow:hidden;box-shadow:0 0 0 2px var(--w),0 0 0 3px rgba(43,92,230,.18)}
/* Header de la kcard: avatar + menú ⋯ a la derecha */
.kcard-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:0}
.kcard-menu{position:relative;margin-top:-2px}
.kcard-menu>summary{list-style:none;cursor:pointer;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:15px;font-weight:700;line-height:1;user-select:none;transition:background .15s,color .15s}
.kcard-menu>summary::-webkit-details-marker{display:none}
.kcard-menu>summary:hover{background:var(--bxlight);color:var(--b)}
.kcard-menu[open]>summary{background:var(--blight);color:var(--b)}
.kcard-menu-popover{position:absolute;top:calc(100% + 4px);right:0;background:var(--w);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18),0 0 0 1px rgba(43,92,230,.08);padding:6px;min-width:200px;z-index:50;display:flex;flex-direction:column;gap:2px;animation:menu-pop .18s ease-out both}
.kcard-menu-item{background:none;border:none;text-align:left;padding:8px 12px;font-size:12px;font-weight:600;color:var(--dark);border-radius:8px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;display:flex;align-items:center;gap:8px;transition:background .12s;white-space:nowrap}
.kcard-menu-item:hover{background:var(--bxlight)}
.kcard-menu-item-danger{color:var(--red)}
.kcard-menu-item-danger:hover{background:#FEE2E2}
/* Tag pill custom — display below name/role, brand-tinted */
.kcard-tag{display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,rgba(43,92,230,.12) 0%,rgba(91,141,239,.12) 100%);color:var(--b);font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:8px;margin-top:8px;border:1px solid rgba(43,92,230,.18);cursor:pointer;transition:all .15s;max-width:100%;letter-spacing:.1px}
.kcard-tag:hover{background:linear-gradient(135deg,rgba(43,92,230,.18) 0%,rgba(91,141,239,.18) 100%);transform:translateY(-1px)}
.kcard-tag-icon{font-size:11px;flex-shrink:0;line-height:1}
.kcard-tag-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Hover en kcard para indicar clickable */
.kcard{transition:transform .15s,box-shadow .2s,border-color .15s}
.kcard:hover{box-shadow:0 4px 14px rgba(43,92,230,.18),0 0 0 1px rgba(43,92,230,.18)}
.kav img{width:100%;height:100%;object-fit:cover}
.kname{font-size:12.5px;font-weight:700;color:var(--dark);letter-spacing:-.1px}.krole{font-size:10.5px;color:var(--gray);margin-top:2px;line-height:1.3}
.kmove{display:flex;gap:5px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(43,92,230,.07)}
.kmove-btn{flex:1;border:none;border-radius:8px;padding:5px;font-size:10px;font-weight:700;cursor:pointer;background:var(--bxlight);color:var(--b);transition:background .15s;letter-spacing:.2px}
.kmove-btn:hover{background:var(--blight)}

/* FORMS */
.scrhead{padding:16px 18px 10px;background:var(--w);border-bottom:1px solid var(--brd);flex-shrink:0}
.scrtitle{font-family:'Syne',sans-serif;font-size:20px;font-weight:800;color:var(--dark)}
.scrsub{font-size:12px;color:var(--gray);margin-top:2px}
.form-label{font-size:11px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:block}
.form-group{margin-bottom:14px}
.form-input{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:10px 14px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--w);transition:border-color .2s}
.form-input:focus{border-color:var(--b)}
.form-row{display:flex;gap:10px}.form-row .form-group{flex:1}
.candidate-select{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.csel-chip{padding:6px 12px;border-radius:var(--rp);font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--brd);color:var(--gray);background:var(--w)}
.csel-chip.on{background:var(--blight);border-color:var(--b);color:var(--b)}
.interview-type{display:flex;gap:8px}
.itype{flex:1;padding:10px;border-radius:var(--rl);border:1.5px solid var(--brd);text-align:center;cursor:pointer;font-size:20px;transition:all .15s}
.itype .itype-lbl{font-size:10px;font-weight:600;color:var(--gray);margin-top:2px}
.itype.on{border-color:var(--b);background:var(--blight)}.itype.on .itype-lbl{color:var(--b)}
.schhead{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--brd);flex-shrink:0}
.schtitle{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;color:var(--dark);flex:1}
.schbody{flex:1;overflow-y:auto;padding:16px}
.schfoot{padding:12px 16px 18px;flex-shrink:0;border-top:1px solid var(--brd)}
.sch-list{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.sch-item{background:var(--bxlight);border-radius:var(--rl);padding:12px 14px;display:flex;align-items:center;gap:10px;border-left:3px solid var(--b)}
.sch-icon{font-size:22px}.sch-info{flex:1}.sch-name{font-size:13px;font-weight:700;color:var(--dark)}
.sch-detail{font-size:11px;color:var(--gray);margin-top:2px}
.sch-badge{font-size:10px;font-weight:600;background:var(--blight);color:var(--b);border-radius:6px;padding:2px 8px}

/* MATCHES LIST */
.mlist{flex:1;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:8px}
.mitem{display:flex;align-items:center;gap:10px;background:var(--w);border-radius:var(--rl);padding:10px 12px;box-shadow:0 1px 8px rgba(0,0,0,.04);cursor:pointer;transition:all .15s;border:1px solid transparent}
.mitem:hover{border-color:rgba(43,92,230,.15);transform:translateY(-1px)}
.miav{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;flex-shrink:0;overflow:hidden}
.miav img{width:100%;height:100%;object-fit:cover}
.miinfo{flex:1;min-width:0}.miname{font-size:13px;font-weight:700;color:var(--dark)}
.mirole{font-size:11px;color:var(--gray);margin-top:1px}
.milast{font-size:10px;color:var(--faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.miright{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.mitime{font-size:10px;color:var(--faint)}
.miunread{background:var(--b);color:#fff;font-size:10px;font-weight:700;border-radius:8px;padding:2px 6px}
.nomatch{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--gray);font-size:14px;padding:40px 30px;text-align:center}
.nomatch>div:first-child{font-size:42px;opacity:.55;animation:empty-float 3.4s ease-in-out infinite}
/* Empty state unificado — modernizado v2 */
.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 30px;text-align:center;position:relative;overflow:hidden}
.empty-state::before{content:'';position:absolute;top:30%;left:50%;width:240px;height:240px;background:radial-gradient(circle,rgba(43,92,230,.10) 0%,rgba(43,92,230,0) 65%);transform:translate(-50%,-50%);pointer-events:none;animation:empty-glow 4s ease-in-out infinite}
.empty-state>*{position:relative;z-index:1}
.empty-icon{color:var(--b);opacity:.85;animation:empty-pop .55s cubic-bezier(.34,1.56,.64,1) both,empty-float 3.6s ease-in-out infinite 1s;filter:drop-shadow(0 4px 12px rgba(43,92,230,.22))}
.empty-icon svg{display:block}
.empty-title{font-family:'Syne',sans-serif;font-size:21px;font-weight:800;color:var(--dark);letter-spacing:-.4px;margin-top:2px}
.empty-body{font-size:13.5px;color:var(--gray);line-height:1.6;max-width:300px}
.empty-cta{background:linear-gradient(135deg,var(--b) 0%,var(--b3) 100%);color:#fff;border:none;border-radius:24px;padding:12px 28px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;margin-top:8px;transition:transform .15s,box-shadow .25s;box-shadow:0 4px 14px rgba(43,92,230,.28),inset 0 1px 0 rgba(255,255,255,.18);letter-spacing:.2px}
.empty-cta:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(43,92,230,.4),inset 0 1px 0 rgba(255,255,255,.2)}
.empty-secondary{background:none;border:none;color:var(--b);font-size:12.5px;font-weight:600;cursor:pointer;padding:6px 12px;font-family:'Plus Jakarta Sans',sans-serif;text-decoration:underline;text-decoration-color:rgba(43,92,230,.3);text-underline-offset:3px;transition:color .15s}
.empty-secondary:hover{color:var(--b3);text-decoration-color:var(--b3)}
@keyframes empty-pop{from{opacity:0;transform:scale(.6) translateY(8px)}to{opacity:.85;transform:scale(1) translateY(0)}}
@keyframes empty-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes empty-glow{0%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.55;transform:translate(-50%,-50%) scale(1.15)}}
.chat-filter-chip{padding:5px 12px;border-radius:var(--rp);font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--brd);color:var(--gray);background:var(--w);transition:all .15s}
.chat-filter-chip.on{background:var(--b);border-color:var(--b);color:#fff}
.mitem-actions{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--brd)}
.mitem-btn{flex:1;border:none;border-radius:var(--r);padding:7px;font-size:11px;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}
.mitem-btn-chat{background:var(--b);color:#fff}
.mitem-btn-sched{background:var(--bxlight);color:var(--b)}
.mitem-btn-info{background:var(--bxlight);color:var(--gray)}
/* Card archivada: dimmed para señalar que no es activa */
.mitem.mitem-archived{opacity:.72;background:var(--bxlight)}
.mitem.mitem-archived:hover{opacity:.92}
.miarchived{background:var(--bxlight);color:var(--gray);font-size:9.5px;font-weight:700;border-radius:8px;padding:2px 6px;letter-spacing:.3px;text-transform:uppercase;border:1px solid var(--brd)}
/* Menú ⋯ por card */
.mitem-menu{position:relative}
.mitem-menu>summary{list-style:none;cursor:pointer;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:18px;font-weight:700;line-height:1;user-select:none;transition:background .15s,color .15s}
.mitem-menu>summary::-webkit-details-marker{display:none}
.mitem-menu>summary:hover{background:var(--bxlight);color:var(--b)}
.mitem-menu[open]>summary{background:var(--blight);color:var(--b)}
.mitem-menu-popover{position:absolute;top:calc(100% + 4px);right:0;background:var(--w);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18),0 0 0 1px rgba(43,92,230,.08);padding:6px;min-width:180px;z-index:50;display:flex;flex-direction:column;gap:2px;animation:menu-pop .18s ease-out both}
@keyframes menu-pop{from{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.mitem-menu-item{background:none;border:none;text-align:left;padding:8px 12px;font-size:12.5px;font-weight:600;color:var(--dark);border-radius:8px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;display:flex;align-items:center;gap:8px;transition:background .12s}
.mitem-menu-item:hover{background:var(--bxlight)}
.mitem-menu-item-danger{color:var(--red)}
.mitem-menu-item-danger:hover{background:#FEE2E2}

/* PROFILE — polished */
.phero{padding:26px 20px 22px;background:linear-gradient(135deg,var(--b) 0%,var(--b3) 100%);display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0;position:relative;overflow:hidden}
.phero::before{content:'';position:absolute;top:-30%;left:50%;width:280px;height:280px;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 65%);transform:translateX(-50%);pointer-events:none}
.phero>*{position:relative;z-index:1}
.pav{width:84px;height:84px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;overflow:hidden;box-shadow:0 0 0 3px rgba(255,255,255,.55),0 0 0 5px rgba(255,255,255,.15),0 8px 24px rgba(15,23,42,.25);border:none}
.pname{font-family:'Syne',sans-serif;font-size:23px;font-weight:800;color:#fff;letter-spacing:-.4px;margin-top:2px}
.prole2{font-size:12px;color:rgba(255,255,255,.8);letter-spacing:.2px}
.pbody{flex:1;overflow-y:auto;padding:16px 14px 20px;display:flex;flex-direction:column;gap:12px}
.psec{background:var(--w);border-radius:var(--rl);padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 0 0 1px rgba(43,92,230,.06)}
.pstitle{font-size:10.5px;font-weight:800;color:var(--gray);letter-spacing:1.2px;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:6px}
.pstitle::before{content:'';width:14px;height:2px;background:var(--b);border-radius:2px;flex-shrink:0}
.statrow{display:flex;gap:8px}
.stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;background:var(--bxlight);border-radius:14px;transition:transform .15s}
.stat:hover{transform:translateY(-2px)}
.statnum{font-family:'Syne',sans-serif;font-size:26px;font-weight:800;background:linear-gradient(135deg,var(--b),var(--b3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.5px;line-height:1}
.statlbl{font-size:10.5px;color:var(--gray);font-weight:600;letter-spacing:.2px}

/* EMPTY — no más cartas en swipe */
#empty-scr{align-items:center;justify-content:center;padding:0;background:linear-gradient(180deg,var(--bxlight) 0%,var(--w) 100%);position:relative;overflow:hidden}
#empty-scr::before{content:'';position:absolute;top:18%;left:50%;width:340px;height:340px;background:radial-gradient(circle,rgba(43,92,230,.14) 0%,rgba(43,92,230,0) 60%);transform:translate(-50%,-50%);pointer-events:none;animation:empty-glow 4.5s ease-in-out infinite}
.empty-stack{position:relative;width:160px;height:140px;margin-bottom:6px;z-index:1}
.empty-stack-card{position:absolute;top:16px;left:40px;width:80px;height:108px;background:var(--w);border-radius:14px;box-shadow:0 8px 24px rgba(43,92,230,.18),0 0 0 1px rgba(43,92,230,.08);display:flex;align-items:center;justify-content:center;font-size:30px}
.empty-stack-card:nth-child(1){animation:stack-card-1 .55s cubic-bezier(.34,1.56,.64,1) 0s both}
.empty-stack-card:nth-child(2){animation:stack-card-2 .55s cubic-bezier(.34,1.56,.64,1) .08s both}
.empty-stack-card:nth-child(3){z-index:2;animation:stack-card-3 .55s cubic-bezier(.34,1.56,.64,1) .16s both,stack-card-float 3.6s ease-in-out 1.2s infinite}
@keyframes stack-card-1{from{opacity:0;transform:rotate(-12deg) translateX(-26px) scale(.7)}to{opacity:.5;transform:rotate(-12deg) translateX(-26px) scale(1)}}
@keyframes stack-card-2{from{opacity:0;transform:rotate(8deg) translateX(22px) scale(.7)}to{opacity:.7;transform:rotate(8deg) translateX(22px) scale(1)}}
@keyframes stack-card-3{from{opacity:0;transform:rotate(-2deg) translateY(8px) scale(.7)}to{opacity:1;transform:rotate(-2deg) translateY(0) scale(1)}}
@keyframes stack-card-float{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-6px)}}
.eemoji{font-size:42px}
.etitle{font-family:'Syne',sans-serif;font-size:22px;font-weight:800;color:var(--dark);letter-spacing:-.4px;text-align:center;z-index:1;position:relative}
.esub{font-size:13.5px;color:var(--gray);text-align:center;line-height:1.6;max-width:300px;padding:0 20px;z-index:1;position:relative}
#empty-scr .bprimary{max-width:240px;margin-top:14px;background:linear-gradient(135deg,var(--b) 0%,var(--b3) 100%);box-shadow:0 4px 14px rgba(43,92,230,.28),inset 0 1px 0 rgba(255,255,255,.18);z-index:1;position:relative}
#empty-scr .boutline{max-width:240px;margin-top:6px;background:transparent;color:var(--b);border:none;text-decoration:underline;text-decoration-color:rgba(43,92,230,.3);text-underline-offset:3px;font-weight:600;font-size:13px;padding:8px 0;z-index:1;position:relative}
.boutline{background:transparent;color:var(--b);border:1.5px solid var(--b);border-radius:var(--rp);padding:12px 0;font-size:13px;cursor:pointer;width:100%;font-family:'Plus Jakarta Sans',sans-serif}

/* Chat sin mensajes */
.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px 30px;text-align:center;color:var(--gray);position:relative}
.chat-empty-emoji{font-size:48px;animation:empty-pop .55s cubic-bezier(.34,1.56,.64,1) both,empty-float 3.6s ease-in-out infinite 1s;filter:drop-shadow(0 4px 12px rgba(43,92,230,.18))}
.chat-empty-title{font-family:'Syne',sans-serif;font-size:17px;font-weight:700;color:var(--dark);letter-spacing:-.3px}
.chat-empty-body{font-size:13px;color:var(--gray);line-height:1.6;max-width:280px}
.chat-empty-hint{margin-top:6px;background:var(--bxlight);border-radius:14px;padding:10px 14px;font-size:12.5px;color:var(--b);font-weight:600;display:inline-flex;align-items:center;gap:6px;border:1px dashed rgba(43,92,230,.3)}

/* NOTIF/SEARCH PANEL */
#npanel,#spanel{position:absolute;inset:0;background:var(--w);z-index:200;border-radius:var(--rxl);overflow:hidden;display:none;flex-direction:column}
#npanel.on,#spanel.on{display:flex}
.nhead{display:flex;align-items:center;padding:18px 18px 12px;border-bottom:1px solid var(--brd);flex-shrink:0}
.ntitle{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;color:var(--dark);flex:1}
.nclear{font-size:11px;color:var(--b);cursor:pointer;font-weight:600}
.nlist{flex:1;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:8px}
.nitem{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:var(--light);border-radius:var(--rl);cursor:pointer;position:relative}
.nitem.unread{background:var(--bxlight)}
.nicon{font-size:18px;flex-shrink:0}.ntext{font-size:12px;color:var(--dark);line-height:1.4}
.ntext strong{color:var(--b)}.ntime{font-size:10px;color:var(--faint);margin-top:2px}
.nudot{width:7px;height:7px;background:var(--b);border-radius:50%;position:absolute;top:12px;right:12px}
.nempty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--gray);font-size:14px}
.shead{display:flex;align-items:center;gap:10px;padding:18px 16px 12px;border-bottom:1px solid var(--brd);flex-shrink:0}
#search-inp{flex:1;border:1.5px solid var(--brd);border-radius:var(--rp);padding:9px 14px;font-size:13px;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);outline:none;background:var(--light);transition:border-color .2s}
#search-inp:focus{border-color:var(--b);background:var(--w)}
.sclear{background:var(--gray);color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sstats{padding:8px 18px 0;font-size:11px;color:var(--gray);font-weight:600}
.slist{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.sempty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}
.sresult{display:flex;gap:12px;align-items:center;padding:12px;background:var(--light);border-radius:var(--rl);cursor:pointer;border:1.5px solid transparent;transition:all .15s}
.sresult:hover{border-color:var(--b);background:var(--w)}
.sr-av{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0;font-family:'Syne',sans-serif;overflow:hidden}
.sr-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.sr-info{flex:1;min-width:0}
.sr-name{font-size:13px;font-weight:700;color:var(--dark);font-family:'Syne',sans-serif}
.sr-role{font-size:11px;color:var(--gray);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-meta{font-size:10px;color:var(--b);margin-top:3px;font-weight:600}
.sr-score{background:var(--bxlight);color:var(--b);font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;flex-shrink:0}

/* DETAIL SCREEN */
/* DETAIL — polished */
#detail-scr{background:var(--light)}
.detail-hero{background:linear-gradient(135deg,#0F172A 0%,#1B4FD8 100%);padding:24px 20px 28px;display:flex;flex-direction:column;align-items:center;gap:10px;flex-shrink:0;position:relative;overflow:hidden}
.detail-hero::before{content:'';position:absolute;top:-40%;left:50%;width:340px;height:340px;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,rgba(255,255,255,0) 65%);transform:translateX(-50%);pointer-events:none}
.detail-hero>*{position:relative;z-index:1}
.detail-back{position:absolute;top:16px;left:14px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.22);border-radius:50%;width:36px;height:36px;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .15s,transform .15s;z-index:2}
.detail-back:hover{background:rgba(255,255,255,.28)}
.detail-back:active{transform:scale(.92)}
.detail-av{width:86px;height:86px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;overflow:hidden;flex-shrink:0;box-shadow:0 0 0 3px rgba(255,255,255,.6),0 0 0 5px rgba(255,255,255,.15),0 10px 28px rgba(15,23,42,.4);border:none}
.detail-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.detail-name{font-family:'Syne',sans-serif;font-size:23px;font-weight:800;color:#fff;text-align:center;letter-spacing:-.4px;line-height:1.15;margin-top:2px}
.detail-role{font-size:13.5px;color:rgba(255,255,255,.85);text-align:center;font-weight:500}
.detail-loc{font-size:12px;color:rgba(255,255,255,.65);text-align:center;letter-spacing:.2px}
.detail-actions{display:flex;gap:10px;margin-top:10px}
.detail-btn-like{background:linear-gradient(135deg,#fff 0%,#E0E7FF 100%);color:var(--b);border:none;border-radius:var(--rp);padding:10px 22px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;box-shadow:0 4px 14px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.5);transition:transform .15s,box-shadow .2s}
.detail-btn-like:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.24)}
.detail-btn-chat{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:var(--rp);padding:10px 22px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .15s}
.detail-btn-chat:hover{background:rgba(255,255,255,.26)}
.detail-body{flex:1;overflow-y:auto;padding:16px 14px 24px;display:flex;flex-direction:column;gap:12px}
.detail-section{background:var(--w);border-radius:var(--rl);padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 0 0 1px rgba(43,92,230,.06)}
.detail-section-title{font-size:10.5px;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.detail-section-title::before{content:'';width:14px;height:2px;background:var(--b);border-radius:2px;flex-shrink:0}
.detail-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:9px;gap:8px;padding-bottom:9px;border-bottom:1px solid rgba(43,92,230,.05)}
.detail-row:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}
.detail-lbl{font-size:11.5px;color:var(--gray);font-weight:500;flex-shrink:0}
.detail-val{font-size:12.5px;color:var(--dark);font-weight:600;text-align:right;letter-spacing:.1px}
.detail-about{font-size:13.5px;color:var(--mid);line-height:1.65}
.detail-skills{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.detail-score-row{display:flex;align-items:center;gap:14px}
.detail-score-num{font-family:'Syne',sans-serif;font-size:34px;font-weight:800;background:linear-gradient(135deg,var(--b),var(--b3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.8px;line-height:1}
.detail-score-bar{flex:1;height:8px;background:var(--brd);border-radius:10px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.06)}
.detail-score-fill{height:100%;background:linear-gradient(90deg,var(--b),var(--b3));border-radius:10px;box-shadow:0 0 8px rgba(43,92,230,.4);transition:width .6s cubic-bezier(.34,1.56,.64,1)}

/* CV VIEWER */
#cv-viewer-scr{background:#1a1a2a}
.cv-viewer-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#0F172A;flex-shrink:0}
.cv-viewer-title{font-size:14px;font-weight:600;color:#fff;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-viewer-body{flex:1;overflow:hidden;display:flex;flex-direction:column}
.cv-tab-bar{display:flex;background:#0F172A;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}
.cv-tab{flex:1;padding:10px;text-align:center;font-size:12px;font-weight:600;color:rgba(255,255,255,.45);cursor:pointer;border-bottom:2px solid transparent}
.cv-tab.on{color:#3B82F6;border-bottom-color:#3B82F6}
.cv-pdf-frame{flex:1;border:none;width:100%;background:#fff}
.cv-text-body{flex:1;overflow-y:auto;padding:16px;color:#e2e8f0;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-word}
.cv-text-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:rgba(255,255,255,.35);font-size:13px;text-align:center;padding:30px}

/* JD RANKING */
.jd-section{background:var(--w);border-radius:var(--rl);padding:14px 16px}
.jd-textarea{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:10px 12px;font-size:12px;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);resize:none;outline:none;background:var(--light);min-height:80px;transition:border-color .2s}
.jd-textarea:focus{border-color:var(--b)}
.jd-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.jd-preset{padding:5px 11px;border-radius:var(--rp);font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--brd);color:var(--gray);background:var(--w);transition:all .15s}
.jd-preset.on{background:var(--blight);border-color:var(--b);color:var(--b)}
.rank-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.rank-item{display:flex;align-items:center;gap:10px;background:var(--bxlight);border-radius:var(--rl);padding:10px 12px}
.rank-pos{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;color:var(--b);min-width:24px;text-align:center}
.rank-pos.gold{color:#F59E0B}.rank-pos.silver{color:#94A3B8}.rank-pos.bronze{color:#B45309}
.rank-av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;flex-shrink:0;overflow:hidden}
.rank-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.rank-info{flex:1;min-width:0}.rank-name{font-size:13px;font-weight:700;color:var(--dark)}
.rank-role{font-size:10px;color:var(--gray);margin-top:1px}
.rank-keywords{font-size:10px;color:var(--b);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.rank-pct{font-family:'Syne',sans-serif;font-size:16px;font-weight:800;color:var(--b)}
.rank-bar-bg{width:60px;height:5px;background:var(--brd);border-radius:10px;overflow:hidden}
.rank-bar-fill{height:100%;background:linear-gradient(90deg,var(--b),var(--b3));border-radius:10px}
.rank-empty{font-size:12px;color:var(--gray);text-align:center;padding:16px 0}

/* LANG + ONBOARDING */
#lang-scr{background:linear-gradient(160deg,#0F172A,#1B4FD8);align-items:center;justify-content:center;gap:18px;padding:36px 28px;text-align:center}
.lopt{display:flex;align-items:center;gap:14px;border:2px solid rgba(255,255,255,.2);border-radius:var(--rl);padding:14px 18px;cursor:pointer;width:100%;max-width:280px;background:rgba(255,255,255,.07);transition:all .15s}
.lopt.sel{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.65)}
.lopt-flag{font-size:26px}.lopt-name{font-size:15px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;text-align:left}
.lopt-native{font-size:11px;color:rgba(255,255,255,.5);text-align:left;margin-top:1px}
.lopt-check{margin-left:auto;font-size:16px;color:#fff;opacity:0}.lopt.sel .lopt-check{opacity:1}
.lbtn{background:#fff;color:#1B4FD8;border:none;border-radius:var(--rp);padding:14px 0;font-size:15px;font-weight:700;cursor:pointer;width:100%;max-width:280px;font-family:'Syne',sans-serif}
/* ── LOGIN SCREEN ── */
#login-scr{background:linear-gradient(160deg,#0F172A 0%,#1B4FD8 100%);align-items:center;justify-content:center;gap:24px;padding:40px 28px;text-align:center}
.login-logo{display:flex;flex-direction:column;align-items:center;gap:8px}
.login-badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:4px 14px;font-size:10px;font-weight:700;color:rgba(255,255,255,.8);letter-spacing:1px;text-transform:uppercase}
.login-title{font-family:'Syne',sans-serif;font-size:28px;font-weight:800;color:#fff;letter-spacing:-.5px;line-height:1.2}
.login-sub{font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;max-width:260px}
.login-btn-google{display:flex;align-items:center;justify-content:center;gap:12px;background:#fff;color:#18181B;border:none;border-radius:100px;padding:14px 24px;font-size:15px;font-weight:700;cursor:pointer;width:100%;max-width:280px;font-family:'Plus Jakarta Sans',sans-serif;transition:all .2s;box-shadow:0 4px 20px rgba(0,0,0,.2)}
.login-btn-google:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.3)}
.login-btn-google img{width:20px;height:20px}
.login-divider{display:flex;align-items:center;gap:12px;width:100%;max-width:280px}
.login-divider-line{flex:1;height:1px;background:rgba(255,255,255,.15)}
.login-divider-text{font-size:11px;color:rgba(255,255,255,.4)}
.login-btn-guest{background:transparent;color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:12px 24px;font-size:13px;font-weight:600;cursor:pointer;width:100%;max-width:280px;font-family:'Plus Jakarta Sans',sans-serif;transition:all .2s}
.login-btn-guest:hover{background:rgba(255,255,255,.08)}
.login-terms{font-size:10px;color:rgba(255,255,255,.3);max-width:240px;line-height:1.5}
.login-terms a{color:rgba(255,255,255,.5);text-decoration:underline}
.login-loading{display:none;flex-direction:column;align-items:center;gap:12px}
.login-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.login-loading-text{font-size:13px;color:rgba(255,255,255,.6)}

#onboard-scr{background:linear-gradient(160deg,#0F172A 0%,#1B4FD8 100%);align-items:center;justify-content:center;gap:20px;padding:36px 28px;text-align:center}

/* ── WELCOME SCREEN ── */
#welcome-scr{background:linear-gradient(160deg,#0F172A 0%,#1B4FD8 100%);align-items:center;justify-content:center;padding:0;text-align:center;overflow:hidden}
.welcome-inner{display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:100%;padding:40px 28px 32px;gap:0}
.welcome-logo-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:20px}
.welcome-badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:4px 14px;font-size:10px;font-weight:700;color:rgba(255,255,255,.8);letter-spacing:1px;text-transform:uppercase}
.welcome-headline{font-family:'Syne',sans-serif;font-size:26px;font-weight:800;color:#fff;letter-spacing:-.5px;line-height:1.2;max-width:280px}
.welcome-sub{font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;max-width:260px}
.welcome-features{display:flex;flex-direction:column;gap:10px;width:100%;max-width:280px}
.welcome-feat{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:10px 14px;text-align:left}
.welcome-feat-icon{font-size:20px;flex-shrink:0}
.welcome-feat-text{font-size:12px;color:rgba(255,255,255,.8);line-height:1.4}
.welcome-feat-text strong{color:#fff;display:block;font-size:13px;margin-bottom:2px}
.welcome-bottom{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}
.welcome-tc{display:flex;align-items:flex-start;gap:8px;background:rgba(255,255,255,.05);border-radius:12px;padding:10px 14px;width:100%;max-width:280px;text-align:left}
.welcome-tc input[type=checkbox]{width:16px;height:16px;accent-color:#6091FF;margin-top:2px;flex-shrink:0;cursor:pointer}
.welcome-tc label{font-size:11px;color:rgba(255,255,255,.55);line-height:1.5;cursor:pointer}
.welcome-tc label a{color:#93C5FD;text-decoration:underline}
.welcome-btn{background:#fff;color:#1B4FD8;border:none;border-radius:28px;padding:14px 0;font-size:15px;font-weight:700;cursor:pointer;width:100%;max-width:280px;font-family:'Syne',sans-serif;transition:all .2s;opacity:.4;pointer-events:none}
.welcome-btn.on{opacity:1;pointer-events:auto}
.welcome-btn.on:hover{background:#EEF3FF}

/* TC modal en app */
#app-tc-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:999;align-items:flex-end;justify-content:center}
#app-tc-modal.open{display:flex}
.app-tc-sheet{background:var(--w);border-radius:24px 24px 0 0;width:100%;max-height:80vh;display:flex;flex-direction:column}
.app-tc-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--brd);flex-shrink:0}
.app-tc-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:800;color:var(--dark)}
.app-tc-close{background:none;border:none;font-size:22px;color:var(--gray);cursor:pointer}
.app-tc-body{flex:1;overflow-y:auto;padding:20px}
.app-tc-body h3{font-family:'Syne',sans-serif;font-size:13px;font-weight:800;color:var(--dark);margin:16px 0 6px}
.app-tc-body h3:first-child{margin-top:0}
.app-tc-body p{font-size:12px;color:var(--gray);line-height:1.7;margin-bottom:8px}
.app-tc-body .highlight{background:var(--blight);border-left:3px solid var(--b);padding:10px 14px;border-radius:0 8px 8px 0;font-size:11px;color:var(--mid);margin:10px 0}
.app-tc-footer{padding:14px 20px;border-top:1px solid var(--brd);flex-shrink:0}
.app-tc-footer button{width:100%;background:linear-gradient(135deg,#2B5CE6,#6091FF);color:#fff;border:none;border-radius:14px;padding:12px 0;font-size:14px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}
.role-card{width:100%;max-width:280px;border-radius:var(--rxl);padding:22px 20px;cursor:pointer;transition:all .2s;border:2px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07);text-align:left;display:flex;align-items:center;gap:16px}
.role-card.sel{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.65)}
.role-icon{font-size:36px;flex-shrink:0}.role-title{font-family:'Syne',sans-serif;font-size:17px;font-weight:800;color:#fff}
.role-desc{font-size:11px;color:rgba(255,255,255,.55);margin-top:3px;line-height:1.4}
.role-check{margin-left:auto;font-size:18px;color:#fff;opacity:0;flex-shrink:0}.role-card.sel .role-check{opacity:1}
.onboard-title{font-family:'Syne',sans-serif;font-size:24px;font-weight:800;color:#fff;letter-spacing:-.5px}
.onboard-sub{font-size:13px;color:rgba(255,255,255,.5);max-width:260px;line-height:1.5}

/* ═══════════════════════════════════════
   FIX #1: CANDIDATE PROFILE HERO
   Nuevo layout: banner arriba, luego row(avatar+info)
   SIN position:absolute que tape el texto
═══════════════════════════════════════ */
/* Perfiles: el scroll vive en la pantalla completa (no en un body interno),
   así el scrollbar abarca toda la altura del marco del app — más cómodo
   para el ojo que un thumb chico en una banda del medio. */
#candidate-profile-scr,#company-profile-scr{overflow-y:auto;overflow-x:hidden}
/* Scrollbar polish: fino, brand-tinted, casi invisible cuando no scrolleas */
#candidate-profile-scr::-webkit-scrollbar,#company-profile-scr::-webkit-scrollbar{width:8px}
#candidate-profile-scr::-webkit-scrollbar-track,#company-profile-scr::-webkit-scrollbar-track{background:transparent}
#candidate-profile-scr::-webkit-scrollbar-thumb,#company-profile-scr::-webkit-scrollbar-thumb{background:rgba(43,92,230,.28);border-radius:4px;border:2px solid transparent;background-clip:padding-box}
#candidate-profile-scr::-webkit-scrollbar-thumb:hover,#company-profile-scr::-webkit-scrollbar-thumb:hover{background:rgba(43,92,230,.55);background-clip:padding-box;border:2px solid transparent}
/* Firefox */
#candidate-profile-scr,#company-profile-scr{scrollbar-width:thin;scrollbar-color:rgba(43,92,230,.4) transparent}

#candidate-profile-scr{background:var(--light)}
.cp-hero{flex-shrink:0;background:#0F172A}
.cp-banner-area{position:relative;overflow:hidden}
.cp-banner-placeholder{width:100%;height:100px;background:linear-gradient(135deg,#1B4FD8,#7C3AED);display:flex;align-items:center;justify-content:center;font-size:12px;color:rgba(255,255,255,.35);letter-spacing:1px;cursor:pointer;position:relative}
.cp-info-row{display:flex;align-items:flex-end;gap:12px;padding:0 18px 14px;margin-top:-28px;position:relative;z-index:2}
.cp-avatar-wrap{position:relative;flex-shrink:0}
.cp-avatar{width:68px;height:68px;border-radius:50%;border:3px solid #fff;background:var(--b);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.22)}
.cp-avatar img{width:100%;height:100%;object-fit:cover}
.cp-avatar-edit{position:absolute;bottom:0;right:0;width:22px;height:22px;background:var(--b);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;border:2px solid #fff}
/* Info a la DERECHA del avatar — ya no superpuesto */
.cp-info{flex:1;padding-bottom:4px;min-width:0}
.cp-name-input{font-family:'Syne',sans-serif;font-size:17px;font-weight:800;color:#fff;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.3);outline:none;width:100%;padding-bottom:3px;margin-top:10px}
.cp-role-input{font-size:12px;color:rgba(255,255,255,.65);background:none;border:none;border-bottom:1px solid rgba(255,255,255,.15);outline:none;width:100%;margin-top:4px;padding-bottom:2px}
/* Placeholders legibles sobre el banner oscuro del perfil (antes caían al gris por defecto = ilegible) */
.cp-name-input::placeholder{color:rgba(255,255,255,.6)}
.cp-role-input::placeholder{color:rgba(255,255,255,.5)}

.cp-body{flex:initial;overflow:visible;padding:12px 14px}
.cp-section{background:var(--w);border-radius:var(--rl);padding:14px 16px;margin-bottom:10px}
.cp-section-title{font-size:10px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.cp-add-btn{font-size:11px;color:var(--b);font-weight:600;cursor:pointer;background:none;border:none;padding:0}

/* ═══ FIX #2: inputs con autocomplete=off y names únicos ═══ */
.cp-input{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);margin-bottom:8px;transition:border-color .2s}
.cp-input:focus{border-color:var(--b);background:var(--w)}
.cp-textarea{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);resize:none;min-height:80px;transition:border-color .2s}
.cp-textarea:focus{border-color:var(--b);background:var(--w)}

/* ═══ FIX #4: SKILL PRESETS ═══ */
.skill-role-selector{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.skill-role-chip{padding:5px 12px;border-radius:var(--rp);font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--brd);color:var(--gray);background:var(--w);transition:all .15s}
.skill-role-chip.on{background:var(--b);border-color:var(--b);color:#fff}
.skill-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;padding:10px;background:var(--bxlight);border-radius:var(--r);min-height:36px}
.skill-sug-chip{padding:4px 11px;border-radius:var(--rp);font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--b);color:var(--b);background:var(--w);transition:all .15s}
.skill-sug-chip.added{background:var(--b);color:#fff}
.skill-sug-placeholder{font-size:12px;color:var(--gray);align-self:center}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}
.gallery-item{aspect-ratio:1;border-radius:var(--r);overflow:hidden;position:relative;cursor:pointer;background:var(--bxlight)}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-item-del{position:absolute;top:4px;right:4px;width:20px;height:20px;background:rgba(239,68,68,.85);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;cursor:pointer;border:none}
.gallery-add{aspect-ratio:1;border-radius:var(--r);border:2px dashed var(--brd);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;background:var(--bxlight);gap:4px}
.gallery-add-icon{font-size:24px;color:var(--b)}.gallery-add-lbl{font-size:10px;color:var(--gray);font-weight:600}
#gallery-lightbox{display:none;position:absolute;inset:0;background:rgba(0,0,0,.92);z-index:500;align-items:center;justify-content:center;flex-direction:column;gap:12px;border-radius:var(--rxl)}
#gallery-lightbox.open{display:flex}
#lightbox-img{max-width:90%;max-height:70%;object-fit:contain;border-radius:var(--rl)}
.lightbox-nav{display:flex;gap:20px;align-items:center}
.lightbox-btn{background:rgba(255,255,255,.15);border:none;border-radius:50%;width:40px;height:40px;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lightbox-close{position:absolute;top:20px;right:20px;background:rgba(255,255,255,.15);border:none;border-radius:50%;width:36px;height:36px;color:#fff;font-size:18px;cursor:pointer}
.lightbox-counter{font-size:12px;color:rgba(255,255,255,.55)}
.cp-save-btn{background:linear-gradient(135deg,var(--b),var(--b3));color:#fff;border:none;border-radius:var(--rp);padding:14px 0;font-size:14px;font-weight:700;cursor:pointer;width:100%;font-family:'Syne',sans-serif;margin-top:4px}

/* COMPANY PROFILE */
#company-profile-scr{background:var(--light)}
.cop-hero{position:relative;flex-shrink:0}
.cop-banner-ph{width:100%;height:120px;background:linear-gradient(135deg,#0F172A,#1B4FD8);display:flex;align-items:center;justify-content:center;font-size:12px;color:rgba(255,255,255,.35);letter-spacing:1px;cursor:pointer;position:relative}
.cop-logo-wrap{position:absolute;bottom:-38px;left:18px;z-index:10}
.cop-logo{width:76px;height:76px;border-radius:var(--rl);border:3px solid #fff;background:#0F172A;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:22px;color:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.cop-logo img{width:100%;height:100%;object-fit:cover}
.cop-logo-edit{position:absolute;bottom:-4px;right:-4px;width:22px;height:22px;background:var(--b);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;border:2px solid #fff}
.cop-info{padding:48px 18px 14px;background:var(--w);border-bottom:1px solid var(--brd)}
.cop-name-inp{font-family:'Syne',sans-serif;font-size:20px;font-weight:800;color:var(--dark);border:none;border-bottom:1.5px solid var(--brd);outline:none;width:100%;padding-bottom:3px;background:transparent}
.cop-tagline-inp{font-size:12px;color:var(--gray);border:none;border-bottom:1px solid var(--brd);outline:none;width:100%;margin-top:4px;padding-bottom:2px;background:transparent}
.cop-body{flex:initial;overflow:visible;padding:12px 14px 20px;display:flex;flex-direction:column;gap:10px}
.cop-section{background:var(--w);border-radius:var(--rl);padding:14px 16px}
.cop-stitle{font-size:10px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.cop-inp{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);margin-bottom:8px;transition:border-color .2s}
.cop-inp:focus{border-color:var(--b);background:var(--w)}
.cop-textarea{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);resize:none;min-height:80px;transition:border-color .2s}
.cop-textarea:focus{border-color:var(--b);background:var(--w)}
.cop-select{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);margin-bottom:8px;appearance:none}
.cop-row{display:flex;gap:8px}.cop-row .cop-inp,.cop-row .cop-select{flex:1;margin-bottom:0}
.culture-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.culture-chip{padding:5px 12px;border-radius:var(--rp);font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--brd);color:var(--gray);background:var(--w);transition:all .15s}
.culture-chip.on{background:var(--blight);border-color:var(--b);color:var(--b)}
.social-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.social-icon{font-size:20px;flex-shrink:0;width:28px;text-align:center}
.social-inp{flex:1;border:1.5px solid var(--brd);border-radius:var(--r);padding:8px 12px;font-size:12px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);transition:border-color .2s}
.social-inp:focus{border-color:var(--b)}
.job-card{background:var(--bxlight);border-radius:var(--rl);padding:12px 14px;margin-bottom:10px;border-left:3px solid var(--b)}
.job-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.job-card-title{font-size:13px;font-weight:700;color:var(--dark)}
.job-card-actions{display:flex;gap:6px}
.job-edit-btn{background:none;border:1px solid var(--brd);border-radius:8px;padding:3px 8px;font-size:11px;color:var(--b);cursor:pointer}
.job-del-btn{background:none;border:1px solid #fee;border-radius:8px;padding:3px 8px;font-size:11px;color:var(--red);cursor:pointer}
.job-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.job-tag{background:var(--w);border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600;color:var(--mid)}
.job-urgent-tag{background:#FEF3C7;color:#92400E}
.add-job-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--blight);border:1.5px dashed var(--b3);border-radius:var(--rl);padding:12px;cursor:pointer;font-size:13px;font-weight:600;color:var(--b);width:100%;font-family:'Plus Jakarta Sans',sans-serif;border-left:none}
#job-modal{display:none;position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:400;align-items:flex-end;border-radius:var(--rxl)}
#job-modal.open{display:flex}
.job-modal-inner{background:var(--w);border-radius:var(--rxl) var(--rxl) 36px 36px;width:100%;max-height:88%;overflow-y:auto;padding:20px 18px 30px}
.job-modal-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;color:var(--dark);margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}
.jm-close{background:none;border:none;font-size:22px;color:var(--gray);cursor:pointer;padding:0}
.jm-label{font-size:11px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;display:block;margin-top:10px}
.jm-inp{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);transition:border-color .2s}
.jm-inp:focus{border-color:var(--b)}
.jm-textarea{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);resize:none;min-height:100px;transition:border-color .2s}
.jm-textarea:focus{border-color:var(--b)}
.jm-select{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light)}
.jm-row{display:flex;gap:8px}.jm-row .jm-inp,.jm-row .jm-select{flex:1}
.jm-save{background:linear-gradient(135deg,var(--b),var(--b3));color:#fff;border:none;border-radius:var(--rp);padding:13px 0;font-size:14px;font-weight:700;cursor:pointer;width:100%;font-family:'Syne',sans-serif;margin-top:16px}

/* AGENDA — polished */
#agenda-scr{background:var(--light)}
.agenda-header{padding:18px 18px 14px;background:var(--w);border-bottom:1px solid var(--brd);flex-shrink:0;box-shadow:0 1px 0 rgba(43,92,230,.04)}
.agenda-title{font-family:'Syne',sans-serif;font-size:22px;font-weight:800;color:var(--dark);letter-spacing:-.4px}
.agenda-sub{font-size:12.5px;color:var(--gray);margin-top:3px;letter-spacing:.1px}
.agenda-body{flex:1;overflow-y:auto;padding:14px 14px 20px;display:flex;flex-direction:column;gap:11px}
.agenda-tabs{display:flex;background:var(--bxlight);border-radius:var(--rp);padding:4px;gap:2px;margin-bottom:6px;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}
.agenda-tab{flex:1;font-size:12.5px;font-weight:700;padding:8px 0;border-radius:var(--rp);cursor:pointer;color:var(--gray);text-align:center;transition:all .25s;letter-spacing:.1px}
.agenda-tab:hover{color:var(--b)}
.agenda-tab.on{background:linear-gradient(135deg,var(--b) 0%,var(--b3) 100%);color:#fff;box-shadow:0 3px 10px rgba(43,92,230,.3),inset 0 1px 0 rgba(255,255,255,.18)}
.interview-card{background:var(--w);border-radius:var(--rl);padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.05),0 0 0 1px rgba(43,92,230,.06);border-left:3px solid var(--b);transition:transform .15s,box-shadow .2s}
.interview-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(43,92,230,.1),0 0 0 1px rgba(43,92,230,.12)}
.interview-card.pending{border-left-color:var(--amber)}.interview-card.confirmed{border-left-color:var(--green)}.interview-card.proposed{border-left-color:var(--purple)}
.iv-header{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.iv-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;font-family:'Syne',sans-serif;flex-shrink:0;overflow:hidden;box-shadow:0 0 0 2px var(--w),0 0 0 3px rgba(43,92,230,.18)}
.iv-avatar img{width:100%;height:100%;object-fit:cover}
.iv-name{font-size:13.5px;font-weight:700;color:var(--dark);letter-spacing:-.1px}.iv-role{font-size:11.5px;color:var(--gray);margin-top:1px}
.iv-status{margin-left:auto;font-size:10px;font-weight:800;border-radius:10px;padding:4px 9px;text-transform:uppercase;letter-spacing:.5px}
.iv-status.pending{background:#FEF3C7;color:#92400E;box-shadow:0 0 0 1px rgba(217,119,6,.15)}.iv-status.confirmed{background:#D1FAE5;color:#065F46;box-shadow:0 0 0 1px rgba(5,150,105,.15)}.iv-status.proposed{background:#EDE9FE;color:#5B21B6;box-shadow:0 0 0 1px rgba(124,58,237,.15)}
.iv-details{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.iv-detail-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mid)}
.iv-detail-icon{font-size:14px;width:18px;text-align:center}
.iv-actions{display:flex;gap:6px;flex-wrap:wrap}
.iv-btn{flex:1;border:none;border-radius:var(--r);padding:8px;font-size:11px;font-weight:600;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;min-width:70px}
.iv-btn-primary{background:var(--b);color:#fff}.iv-btn-meet{background:#1B7F4F;color:#fff}.iv-btn-zoom{background:#2D8CFF;color:#fff}.iv-btn-teams{background:#5059C9;color:#fff}
.iv-btn-ghost{background:var(--bxlight);color:var(--b)}.iv-btn-danger{background:#FEE2E2;color:var(--red)}
.iv-link{font-size:11px;color:var(--b);word-break:break-all;background:var(--bxlight);border-radius:8px;padding:6px 10px;margin-top:6px;display:flex;align-items:center;gap:6px}
.iv-link a{color:var(--b);text-decoration:none;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iv-copy-btn{background:var(--b);color:#fff;border:none;border-radius:6px;padding:3px 8px;font-size:10px;cursor:pointer;flex-shrink:0}
.proposal-card{background:#EDE9FE;border-radius:var(--rl);padding:10px 12px;margin-top:6px}
.proposal-title{font-size:11px;font-weight:700;color:#5B21B6;margin-bottom:6px}
.proposal-slot{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:var(--w);border-radius:8px;margin-bottom:4px}
.proposal-slot-text{font-size:12px;color:var(--dark)}
.proposal-accept-btn{background:#7C3AED;color:#fff;border:none;border-radius:8px;padding:4px 10px;font-size:11px;cursor:pointer;font-weight:600}

/* SCHEDULE MODAL */
#schedule-modal{display:none;position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:500;align-items:flex-end;border-radius:var(--rxl)}
#schedule-modal.open{display:flex}
.sch-modal-inner{background:var(--w);border-radius:var(--rxl) var(--rxl) 36px 36px;width:100%;max-height:90%;overflow-y:auto;padding:20px 18px 30px}
.sch-modal-title{font-family:'Syne',sans-serif;font-size:17px;font-weight:800;color:var(--dark);margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}
.platform-selector{display:flex;gap:8px;margin-bottom:14px}
.platform-opt{flex:1;padding:10px 6px;border-radius:var(--rl);border:1.5px solid var(--brd);text-align:center;cursor:pointer;transition:all .2s}
.platform-opt.on{border-color:var(--b);background:var(--bxlight)}
.platform-icon{font-size:22px;display:block;margin-bottom:2px}
.platform-name{font-size:10px;font-weight:600;color:var(--gray)}.platform-opt.on .platform-name{color:var(--b)}
.sm-label{font-size:11px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;display:block;margin-top:10px}
.sm-inp{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light);transition:border-color .2s}
.sm-inp:focus{border-color:var(--b)}
.sm-row{display:flex;gap:8px}.sm-row .sm-inp{flex:1}
.sm-select{width:100%;border:1.5px solid var(--brd);border-radius:var(--r);padding:9px 12px;font-size:13px;outline:none;font-family:'Plus Jakarta Sans',sans-serif;color:var(--dark);background:var(--light)}
.add-slot-btn{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--bxlight);border:1.5px dashed var(--b3);border-radius:var(--r);padding:9px;cursor:pointer;font-size:12px;font-weight:600;color:var(--b);width:100%;border-left:none;font-family:'Plus Jakarta Sans',sans-serif;margin-top:6px}
.slot-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.slot-row .sm-inp{flex:1;margin-bottom:0}
.slot-del{background:none;border:none;color:var(--red);font-size:18px;cursor:pointer;flex-shrink:0}
.sm-save{background:linear-gradient(135deg,var(--b),var(--b3));color:#fff;border:none;border-radius:var(--rp);padding:13px 0;font-size:14px;font-weight:700;cursor:pointer;width:100%;font-family:'Syne',sans-serif;margin-top:14px}

/* FILTERS */
.fhead{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--w);border-bottom:1px solid var(--brd);flex-shrink:0}
.ftitle{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;color:var(--dark);flex:1}
.fbody{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.fsec{background:var(--w);border-radius:var(--rl);padding:12px 14px}
.fstitle{font-size:10px;font-weight:700;color:var(--faint);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{padding:5px 12px;border-radius:var(--rp);font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--brd);color:var(--gray);background:var(--w);transition:all .15s}
.chip.on{background:var(--blight);border-color:var(--b);color:var(--b)}
input[type=range]{width:100%;accent-color:var(--b)}
.ffoot{padding:10px 14px 18px;background:var(--w);border-top:1px solid var(--brd);flex-shrink:0}

/* ─────────────────────────────────────────────────────────────
   POLISH #4 — Botones y cards más premium
   ───────────────────────────────────────────────────────────── */

/* Sombras layered en cards principales (Polish + accesibilidad de focus) */
.mitem{box-shadow:var(--shadow-card);transition:all .2s cubic-bezier(.2,.7,.2,1)}
.mitem:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px);border-color:var(--bxlight)}
.kcard{box-shadow:var(--shadow-card);transition:all .2s cubic-bezier(.2,.7,.2,1)}
.kcard:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}
.interview-card{box-shadow:var(--shadow-card);transition:all .2s cubic-bezier(.2,.7,.2,1)}
.interview-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}
.job-card{transition:all .2s cubic-bezier(.2,.7,.2,1)}
.job-card:hover{background:var(--blight);transform:translateX(2px)}

/* Primary button con halo + hover sutil */
.bprimary{box-shadow:0 2px 10px rgba(43,92,230,.22)}
.bprimary:hover{box-shadow:0 6px 22px rgba(43,92,230,.38);transform:translateY(-1px)}
.bprimary:focus-visible,.empty-cta:focus-visible{outline:none;box-shadow:var(--ring),0 4px 14px rgba(43,92,230,.28)}

/* Secondary button (.dbtn) más legible al hover */
.dbtn:hover{background:var(--bxlight);color:var(--b);border-color:var(--b3)}

/* Swipe action buttons con feedback más rico */
.bpass:hover{border-color:var(--gray);transform:scale(1.05)}
.blike:hover{box-shadow:0 8px 28px rgba(43,92,230,.5);transform:scale(1.05)}

/* Match item buttons más definidos */
.mitem-btn{transition:all .15s}
.mitem-btn-chat:hover{background:var(--b2)}
.mitem-btn-sched:hover{background:var(--blight)}

/* Inputs con focus ring uniforme */
.cp-input:focus,.sm-inp:focus,.cop-input:focus,.chatin:focus{box-shadow:var(--ring);border-color:var(--b)}

/* Chips con feedback más obvio */
.chip:hover{border-color:var(--b3);color:var(--b)}
.skill-role-chip{transition:all .15s}
.skill-role-chip:hover{border-color:var(--b);color:var(--b)}

/* Platform options del modal de schedule */
.platform-opt:hover{border-color:var(--b3);background:var(--bxlight)}

/* Bottom nav: tap state un poco más fuerte */
.bnav .ni:hover{color:var(--b);background:rgba(43,92,230,.05)}
.bnav .ni.on:hover{background:rgba(43,92,230,.12)}

/* ─────────────────────────────────────────────────────────────
   SUSCRIPCIÓN — modal de upgrade, banner, badge de plan
   ───────────────────────────────────────────────────────────── */
#upgrade-modal{
  display:none;position:absolute;inset:0;z-index:400;
  background:rgba(15,23,42,.6);backdrop-filter:blur(4px);
  align-items:center;justify-content:center;padding:24px;
  animation:scrIn .2s ease-out both;
}
.upgrade-card{
  background:var(--w);border-radius:24px;padding:28px 24px 22px;
  width:100%;max-width:340px;position:relative;text-align:center;
  box-shadow:0 16px 48px rgba(15,23,42,.32);
}
.upgrade-close{
  position:absolute;top:14px;right:16px;background:none;border:none;
  font-size:24px;color:var(--gray);cursor:pointer;line-height:1;
}
.upgrade-emoji{font-size:44px;margin-bottom:6px}
.upgrade-title{font-family:'Syne',sans-serif;font-size:21px;font-weight:800;color:var(--dark);letter-spacing:-.3px;margin-bottom:6px}
.upgrade-sub{font-size:13px;color:var(--gray);line-height:1.5;margin-bottom:18px}
.upgrade-feats{list-style:none;padding:0;margin:0 0 20px;text-align:left}
.upgrade-feats li{font-size:13px;color:var(--mid);margin-bottom:9px;line-height:1.4}
.upgrade-btn-primary{
  width:100%;background:linear-gradient(135deg,var(--b),var(--b3));color:#fff;
  border:none;border-radius:14px;padding:13px;font-size:13px;font-weight:700;
  cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;margin-bottom:8px;
  box-shadow:0 4px 14px rgba(43,92,230,.32);transition:transform .15s,box-shadow .15s;
}
.upgrade-btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(43,92,230,.42)}
.upgrade-btn-primary:active{transform:scale(.97)}
.upgrade-btn-secondary{
  width:100%;background:var(--bxlight);color:var(--b);
  border:1.5px solid var(--brd);border-radius:14px;padding:11px;
  font-size:12px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;
  margin-bottom:14px;transition:all .15s;
}
.upgrade-btn-secondary:hover{border-color:var(--b3);background:var(--blight)}
.upgrade-link{font-size:12px;color:var(--gray);text-decoration:none}
.upgrade-link:hover{color:var(--b);text-decoration:underline}

/* Banner de upgrade arriba del swipe (empresa Free) */
#upgrade-banner{
  display:none;align-items:center;gap:10px;
  background:linear-gradient(135deg,#0F172A,#2B5CE6);
  color:#fff;padding:9px 14px;flex-shrink:0;
}
#upgrade-banner .ub-text{flex:1;font-size:12px;font-weight:600;line-height:1.3}
#upgrade-banner .ub-text small{display:block;font-size:10px;color:rgba(255,255,255,.7);font-weight:400}
#upgrade-banner .ub-btn{
  background:#fff;color:var(--b);border:none;border-radius:999px;
  padding:6px 14px;font-size:11px;font-weight:800;cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap;
}

/* Badge del plan actual (perfil de empresa) */
.plan-badge{
  display:inline-block;font-size:11px;font-weight:800;
  padding:4px 12px;border-radius:999px;letter-spacing:.2px;
}
.plan-badge.plan-free{background:var(--bxlight);color:var(--gray)}
.plan-badge.plan-pro{background:var(--blight);color:var(--b)}
.plan-badge.plan-enterprise{background:#0F172A;color:#fff}

/* Theme toggle — control segmentado (Auto / Claro / Oscuro) en perfil */
.theme-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.theme-row-label{font-size:13px;color:var(--dark);font-weight:600}
.theme-seg{display:flex;background:var(--bxlight);border-radius:var(--rp);padding:3px;gap:2px}
.theme-seg button{border:none;background:none;border-radius:var(--rp);padding:6px 13px;font-size:12px;font-weight:600;color:var(--gray);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:all .15s}
.theme-seg button.on{background:var(--b);color:#fff;box-shadow:0 2px 8px rgba(43,92,230,.25)}
.theme-seg button:active{transform:scale(.94)}

/* ═══════════════════════════════════════════════
   DARK MODE — overrides puntuales
   Los chips de estado (pastel claro + texto oscuro) se convierten en
   fondos tintados translúcidos con texto claro para no quedar como
   parches brillantes sobre las cards oscuras.
═══════════════════════════════════════════════ */
/* Azul (Nuevo) */
html[data-theme="dark"] .kcol-header.nuevo{background:rgba(96,145,255,.16);color:#9BBCFF}
/* Ámbar (Entrevista / Pendiente / Urgente) */
html[data-theme="dark"] .kcol-header.entrevista,
html[data-theme="dark"] .iv-status.pending,
html[data-theme="dark"] .job-urgent-tag{background:rgba(217,119,6,.18);color:#FCD34D}
/* Verde (Oferta / Confirmada) */
html[data-theme="dark"] .kcol-header.oferta,
html[data-theme="dark"] .iv-status.confirmed{background:rgba(22,163,74,.18);color:#6EE7B7}
/* Violeta (Contratado / Propuesta) */
html[data-theme="dark"] .kcol-header.contratado,
html[data-theme="dark"] .iv-status.proposed{background:rgba(124,58,237,.22);color:#C9B6FF}
html[data-theme="dark"] .proposal-card{background:rgba(124,58,237,.14)}
html[data-theme="dark"] .proposal-title{color:#C9B6FF}
/* Botón de descarte (rojo claro) */
html[data-theme="dark"] .iv-btn-danger{background:rgba(229,62,62,.18);color:#FCA5A5}
/* Tags de oferta de trabajo */
html[data-theme="dark"] .job-tag{color:var(--mid)}
/* Plan Enterprise badge: el negro fijo se mantiene legible, pero le damos un borde sutil */
html[data-theme="dark"] .plan-badge.plan-enterprise{background:#000;color:#fff;box-shadow:0 0 0 1px var(--brd)}
/* Banner de notificaciones y barra superior ya usan var(--w) → adaptan solos */

/* ═══════════════════════════════════════════════
   ASESORÍA tNic — coach del candidato
   3 superficies: banner en swipe, sección en perfil, notif contextual.
═══════════════════════════════════════════════ */

/* — Superficie A: banner en la pantalla de swipe — */
.tip-banner{
  display:flex;align-items:flex-start;gap:11px;
  margin:9px 14px 0;padding:11px 12px 11px 14px;
  background:linear-gradient(135deg,var(--bxlight),var(--blight));
  border:1px solid rgba(43,92,230,.18);
  border-left:3px solid var(--b);
  border-radius:var(--rl);
  cursor:pointer;
  animation:tip-in .26s ease-out both;
  transition:transform .15s,box-shadow .15s;
}
.tip-banner:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(43,92,230,.12)}
.tip-banner:active{transform:translateY(0)}
@keyframes tip-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.tip-banner-icon{font-size:22px;line-height:1.1;flex-shrink:0;margin-top:1px}
.tip-banner-text{flex:1;min-width:0}
.tip-banner-title{font-size:11px;font-weight:700;color:var(--b);text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px;font-family:'Plus Jakarta Sans',sans-serif}
.tip-banner-body{font-size:12.5px;line-height:1.45;color:var(--dark);font-family:'Plus Jakarta Sans',sans-serif}
.tip-banner-close{
  background:none;border:none;color:var(--gray);
  font-size:20px;line-height:1;cursor:pointer;
  padding:0 2px;margin:-2px -2px 0 4px;flex-shrink:0;
  font-family:'Plus Jakarta Sans',sans-serif;
  transition:color .15s;
}
.tip-banner-close:hover{color:var(--dark)}

/* — Superficie B: sección "Mejorá tu perfil" en el perfil del candidato — */
.coach-section{
  border-left:3px solid var(--b);
}
.coach-pct{
  float:right;font-size:11px;color:var(--gray);font-weight:600;letter-spacing:0;text-transform:none
}
.coach-pct strong{font-family:'Syne','Plus Jakarta Sans',sans-serif;font-size:18px;color:var(--b);font-weight:800;margin-right:2px}
.coach-pct-bar{
  height:6px;background:var(--bxlight);border-radius:99px;overflow:hidden;margin:6px 0 12px
}
.coach-pct-fill{
  height:100%;background:linear-gradient(90deg,var(--b),var(--b3));
  border-radius:99px;transition:width .35s cubic-bezier(.2,.7,.2,1)
}
.coach-tips-list{
  list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;
}
.coach-tip{
  display:flex;gap:10px;align-items:flex-start;
  background:var(--light);border-radius:var(--r);padding:9px 11px;
}
.coach-tip-icon{font-size:18px;line-height:1.2;flex-shrink:0;margin-top:1px}
.coach-tip-body{flex:1;min-width:0}
.coach-tip-title{font-size:12.5px;font-weight:700;color:var(--dark);line-height:1.3;margin-bottom:2px;font-family:'Plus Jakarta Sans',sans-serif}
.coach-tip-text{font-size:11.5px;color:var(--gray);line-height:1.45;font-family:'Plus Jakarta Sans',sans-serif}
.coach-tip-done{
  display:flex;align-items:center;gap:8px;
  padding:11px 13px;border-radius:var(--r);
  background:linear-gradient(135deg,rgba(22,163,74,.10),rgba(22,163,74,.04));
  border:1px solid rgba(22,163,74,.25);
  color:var(--dark);font-size:13px;font-weight:600;line-height:1.4;
  font-family:'Plus Jakarta Sans',sans-serif;
}

/* Dark mode tweaks para el coach: bordes más sutiles sobre el fondo oscuro. */
html[data-theme="dark"] .tip-banner{
  border-color:rgba(91,141,239,.30);
  background:linear-gradient(135deg,rgba(91,141,239,.10),rgba(91,141,239,.05));
}
html[data-theme="dark"] .coach-tip{background:var(--bxlight)}
html[data-theme="dark"] .coach-tip-done{
  background:linear-gradient(135deg,rgba(110,231,183,.10),rgba(110,231,183,.04));
  border-color:rgba(110,231,183,.25);
}
