/* Menú de Jefes — portado de ascend-jefes-web-30.html. Todo bajo .jf (página,
   capa de modales y columna C del Portal) para no pisar ni heredar estilos de
   otras pantallas. Tokens y sidebar del mockup no se copian: son los de base.css. */
/* ── base del mockup ── */
.jf *{box-sizing:border-box;}
.jf .card{background:linear-gradient(180deg,var(--card),#121216);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px;position:relative;overflow:hidden;}
.jf .card-title{font-size:13px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:1px;
  margin-bottom:12px;display:flex;align-items:center;gap:7px;}
.jf .card-title .ic{display:inline-flex;color:var(--dim2);flex:none;}
.jf .card-title .ic svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;}
.jf .card-title .count{margin-left:auto;font-family:var(--font-stat);font-size:11px;color:var(--dim2);
  font-weight:700;text-transform:none;letter-spacing:0;}
.jf .card-sub{font-size:12px;color:var(--dim2);margin:-6px 0 12px;}
.jf .bar{height:9px;background:#0d0d10;border-radius:10px;overflow:hidden;border:1px solid var(--border);position:relative;}
.jf .bar .fill{height:100%;border-radius:10px;transition:width .6s cubic-bezier(.3,1,.4,1);}
.jf .subtabs{display:flex;gap:7px;margin-bottom:16px;flex-wrap:wrap;}
.jf .subtab{display:flex;align-items:center;gap:7px;padding:9px 14px;border-radius:11px;background:var(--card2);
  border:1px solid var(--border);color:var(--dim);font-size:12px;font-weight:700;cursor:pointer;
  transition:.18s;font-family:inherit;}
.jf .subtab .ic svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;}
.jf .subtab:hover{color:var(--text);border-color:var(--dim2);}
.jf .subtab.active{border-color:var(--gold);color:var(--gold);background:rgba(255,207,77,.08);}
.jf button{font-family:inherit;cursor:pointer;}
.jf button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
/* ═══════════ PÁGINA JEFES (css/jefes.css) ═══════════ */
.jf .page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.jf .eyebrow{font-size:10.5px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--dim2);margin:0;}
.jf .page-title{font-family:var(--font-stat);font-size:30px;font-weight:800;letter-spacing:-.5px;margin:3px 0 0;}
.jf .page-head .hstats{display:flex;gap:9px;}
.jf .hchip{background:var(--card2);border:1px solid var(--border);border-radius:11px;padding:7px 11px;
  font-family:var(--font-stat);font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px;}
.jf .hchip svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;}
.jf .hchip.fire{color:var(--red);}
.jf .hchip.gold{color:var(--gold);}
/* banda del bonus diario */
.jf .jf-buff{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:13px;
  border:1px solid rgba(255,207,77,.32);background:linear-gradient(100deg,rgba(255,207,77,.13),rgba(255,207,77,.03));
  position:relative;overflow:hidden;}
.jf .jf-buff::before{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,transparent 32%,rgba(255,207,77,.13) 50%,transparent 68%);
  transform:translateX(-100%);animation:jfSheen 4.4s ease-in-out infinite;}
@keyframes jfSheen{0%,62%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.jf .jf-buff .ic{color:var(--gold);display:flex;}
.jf .jf-buff .ic svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;}
.jf .jf-buff .t{font-family:var(--font-stat);font-size:12.5px;font-weight:800;color:var(--gold);letter-spacing:.8px;}
.jf .jf-buff .s{font-size:11.5px;color:var(--dim);margin-top:1px;}
.jf .jf-buff .when{margin-left:auto;font-size:11px;color:var(--dim2);font-weight:600;}
.jf .jf-buff.used{border-color:var(--border);background:var(--card);}
.jf .jf-buff.used::before{display:none;}
.jf .jf-buff.used .t,.jf .jf-buff.used .ic{color:var(--dim2);}
/* rejilla de la página: arena + costado */
.jf .jf-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:16px;align-items:start;}
@media(max-width:1080px){
.jf .jf-grid{grid-template-columns:1fr;}
}
.jf .jf-col{display:flex;flex-direction:column;gap:16px;min-width:0;}
/* ── ARENA ── */
.jf .arena-card{background:radial-gradient(circle at 62% 22%, rgba(140,15,15,.42), transparent 62%),
  linear-gradient(180deg,#1c0808,#0a0404);border:1px solid rgba(255,59,59,.4);
  box-shadow:inset 0 0 34px rgba(255,0,0,.13);transition:background .5s;}
.jf .arena-card.fase3{background:radial-gradient(circle at 62% 22%, rgba(200,90,10,.42), transparent 62%),
  linear-gradient(180deg,#1f1004,#0a0503);border-color:rgba(255,160,60,.45);}
.jf .jf-head{display:flex;align-items:flex-start;gap:12px;}
.jf .jf-kicker{font-family:var(--font-stat);font-size:10.5px;font-weight:700;letter-spacing:2px;
  text-transform:uppercase;color:#ff8a8a;}
.jf .jf-name{font-family:var(--font-stat);font-size:27px;font-weight:800;letter-spacing:-.5px;margin:4px 0 0;line-height:1.08;}
.jf .jf-phase{font-size:12.5px;color:var(--dim);margin-top:5px;}
.jf .jf-phase b{color:#ff9d9d;}
.jf .arena-card.fase3 .jf-phase b{color:var(--gold);}
.jf .jf-more{margin-left:auto;background:none;border:1px solid var(--border);border-radius:9px;color:var(--dim2);
  padding:5px 10px;font-size:15px;line-height:1;}
.jf .escena{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:20px;margin:14px 0 4px;}
@media(max-width:760px){
.jf .escena{grid-template-columns:1fr;justify-items:center;}
}
.jf .cent-wrap{position:relative;display:grid;place-items:center;justify-self:center;}
.jf .cent-wrap svg.placas{position:absolute;width:150px;height:150px;transform:rotate(-90deg);}
.jf .cent-art{filter:drop-shadow(0 0 14px rgba(52,211,153,.45));transition:.4s;}
.jf .cent-art.caido{filter:grayscale(.85) brightness(.5);}
.jf .cent-tag{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);white-space:nowrap;
  font-family:var(--font-stat);font-size:9.5px;font-weight:800;letter-spacing:1.2px;color:var(--green);
  background:#0b0f0d;border:1px solid rgba(52,211,153,.42);border-radius:20px;padding:3px 10px;}
.jf .cent-tag.roto{color:var(--gold);border-color:rgba(255,207,77,.45);}
.jf .titan-wrap{position:relative;display:grid;place-items:center;}
.jf .titan-art{filter:drop-shadow(0 0 16px rgba(255,59,59,.5));transition:.3s;}
.jf .titan-art.guardado::after{content:"";}
.jf .aura-guard{position:absolute;width:210px;height:210px;border-radius:50%;
  border:1px dashed rgba(52,211,153,.3);animation:jfSpin 26s linear infinite;pointer-events:none;}
@keyframes jfSpin{to{transform:rotate(360deg)}}
.jf .sacude{animation:jfShake .34s cubic-bezier(.36,.07,.19,.97);}
@keyframes jfShake{15%{transform:translateX(-5px)}30%{transform:translateX(6px)}
  45%{transform:translateX(-8px)}60%{transform:translateX(6px)}80%{transform:translateX(-2px)}}
.jf .cifra{position:absolute;font-family:var(--font-stat);font-weight:800;font-size:30px;color:#fff;
  text-shadow:0 2px 14px #000;pointer-events:none;animation:jfSube 1.1s cubic-bezier(.2,.9,.3,1) forwards;z-index:5;}
.jf .cifra.crit{font-size:38px;color:var(--gold);}
.jf .cifra.guard{font-size:20px;color:var(--green);}
@keyframes jfSube{0%{opacity:0;transform:translateY(12px) scale(.7)}
  18%{opacity:1;transform:translateY(-6px) scale(1.14)}
  100%{opacity:0;transform:translateY(-70px) scale(1)}}
/* panel del Centinela */
.jf .guard-panel{border:1px solid rgba(52,211,153,.32);border-radius:13px;padding:13px 14px;margin-top:8px;
  background:linear-gradient(180deg,rgba(52,211,153,.09),transparent);}
.jf .gp-top{display:flex;align-items:baseline;gap:10px;}
.jf .gp-k{font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--green);}
.jf .gp-v{margin-left:auto;font-family:var(--font-stat);font-size:12.5px;font-weight:700;}
.jf .gp-min{font-size:12px;color:var(--dim);margin-top:7px;line-height:1.45;}
.jf .gp-min b{color:var(--text);}
/* barra de guardia (0-100) con el umbral de caída marcado */
.jf .gp-bar{position:relative;height:14px;border-radius:8px;background:#0d0d10;border:1px solid var(--border);
  overflow:hidden;margin-top:12px;}
.jf .gp-bar .roto{position:absolute;left:0;top:0;bottom:0;border-radius:8px;
  background:linear-gradient(90deg,#1fa876,var(--green));box-shadow:0 0 12px rgba(52,211,153,.35);
  transition:width .6s cubic-bezier(.3,1,.4,1);}
.jf .gp-bar .umbral{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--gold);
  box-shadow:0 0 8px rgba(255,207,77,.8);}
.jf .gp-bar .umbral::after{content:"80%";position:absolute;top:-15px;left:50%;transform:translateX(-50%);
  font-family:var(--font-stat);font-size:8.5px;font-weight:800;color:var(--gold);letter-spacing:.5px;}
.jf .gp-objs{margin-top:16px;display:flex;flex-direction:column;gap:9px;}
.jf .gp-obj{display:flex;align-items:center;gap:11px;}
.jf .gp-obj .oq{width:26px;height:26px;flex:none;border-radius:8px;background:var(--card2);
  border:1px solid var(--border);display:grid;place-items:center;font-family:var(--font-stat);
  font-size:9.5px;font-weight:800;color:var(--dim2);}
.jf .gp-obj.hecho .oq{border-color:rgba(52,211,153,.5);color:var(--green);background:rgba(52,211,153,.12);}
.jf .gp-obj .ob{flex:1;min-width:0;}
.jf .gp-obj .on{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jf .gp-obj.hecho .on{color:var(--dim);}
.jf .gp-obj .om{height:5px;border-radius:6px;background:#0d0d10;border:1px solid var(--border);
  overflow:hidden;margin-top:5px;}
.jf .gp-obj .om i{display:block;height:100%;background:linear-gradient(90deg,#1fa876,var(--green));
  transition:width .5s cubic-bezier(.3,1,.4,1);}
.jf .gp-obj .og{font-family:var(--font-stat);font-size:11px;font-weight:800;color:var(--dim2);flex:none;}
.jf .gp-obj.hecho .og{color:var(--green);}
.jf .gp-meta{margin-top:11px;padding-top:10px;border-top:1px solid var(--border);display:flex;gap:14px;
  font-size:11px;color:var(--dim2);flex-wrap:wrap;}
.jf .gp-meta b{color:var(--dim);font-family:var(--font-stat);}
.jf .gp-bonus{margin-top:10px;padding:9px 12px;border-radius:10px;font-size:11.5px;font-weight:700;
  background:rgba(255,207,77,.09);border:1px solid rgba(255,207,77,.28);color:#ffe6ac;}
.jf .gp-bonus.used{background:none;border-color:var(--border);color:var(--dim2);font-weight:600;}
/* El Recuento del domingo */
.jf .recuento{margin-top:12px;padding:14px;border-radius:13px;border:1px solid rgba(255,207,77,.4);
  background:linear-gradient(180deg,rgba(255,207,77,.12),transparent);}
.jf .recuento .rk{font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:1.8px;
  text-transform:uppercase;color:var(--gold);}
.jf .recuento .rt{font-size:13px;color:var(--dim);margin-top:7px;line-height:1.5;}
.jf .recuento .rt b{color:var(--text);}
.jf .recuento button{width:100%;margin-top:12px;padding:12px;border-radius:11px;border:0;
  background:linear-gradient(180deg,var(--gold),#c98f00);color:#241a00;font-family:var(--font-stat);
  font-size:13.5px;font-weight:800;}
.jf .gp-dias{display:flex;gap:5px;margin-top:11px;}
.jf .gd{flex:1;height:27px;border-radius:8px;border:1px solid var(--border);display:grid;place-items:center;
  font-family:var(--font-stat);font-size:10.5px;font-weight:700;color:var(--dim2);transition:.25s;background:var(--card2);}
.jf .gd.rota{background:rgba(52,211,153,.18);border-color:rgba(52,211,153,.5);color:var(--text);}
.jf .gd.hoy{border-color:var(--text);color:var(--text);}
.jf .gd.fallada{border-style:dashed;}
.jf .gp-btn{width:100%;margin-top:11px;padding:11px;border-radius:11px;border:1px solid rgba(52,211,153,.45);
  background:linear-gradient(180deg,rgba(52,211,153,.2),rgba(52,211,153,.07));color:var(--text);
  font-size:12.5px;font-weight:700;transition:.16s;display:flex;align-items:center;justify-content:center;gap:8px;}
.jf .gp-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;}
.jf .gp-btn:hover:not(:disabled){filter:brightness(1.18);}
.jf .gp-btn:disabled{opacity:.45;cursor:default;}
.jf .gp-mult{margin-top:10px;font-size:11.5px;color:var(--green);font-weight:700;font-family:var(--font-stat);}
.jf .gp-mult span{color:var(--dim2);font-weight:600;font-family:inherit;}
/* vida del Titán */
.jf .jf-hp{margin-top:15px;}
.jf .jf-hp-top{display:flex;align-items:baseline;gap:8px;margin-bottom:7px;}
.jf .jf-hp-label{font-family:var(--font-stat);font-size:10.5px;font-weight:800;letter-spacing:1.6px;color:#ff8a8a;}
.jf .jf-hp-val{margin-left:auto;font-family:var(--font-stat);font-size:14px;font-weight:700;
  font-variant-numeric:tabular-nums;}
.jf .jf-hp-val i{color:var(--dim2);font-style:normal;}
.jf .bar.jf{height:18px;border-radius:9px;background:#1a0707;border-color:rgba(255,80,80,.35);
  box-shadow:inset 0 0 10px rgba(0,0,0,.6);}
.jf .bar.jf .fill{background:linear-gradient(90deg,#ff3b3b,#ff8d8d);box-shadow:0 0 10px rgba(255,59,59,.6);}
.jf .bar.jf .fill.exec{background:linear-gradient(90deg,#c97b16,var(--gold));box-shadow:0 0 12px rgba(255,207,77,.6);
  animation:jfLate 1.2s ease-in-out infinite;}
@keyframes jfLate{0%,100%{filter:brightness(1)}50%{filter:brightness(1.32)}}
.jf .bar.jf .semana{position:absolute;top:0;bottom:0;transition:.5s;
  background:repeating-linear-gradient(115deg,rgba(52,211,153,.55) 0 6px,rgba(52,211,153,.2) 6px 12px);}
.jf .bar.jf .blindaje{position:absolute;top:0;bottom:0;transition:.4s;
  background:repeating-linear-gradient(115deg,#4b5468 0 5px,#39414f 5px 10px);}
.jf .bar.jf .marca{position:absolute;top:0;bottom:0;width:2px;background:rgba(0,0,0,.6);}
.jf .jf-hp-foot{display:flex;justify-content:space-between;margin-top:7px;font-family:var(--font-stat);
  font-size:9.5px;font-weight:700;color:var(--dim2);letter-spacing:.8px;}
.jf .jf-leyenda{display:flex;gap:16px;margin-top:9px;font-size:10.5px;color:var(--dim2);flex-wrap:wrap;}
.jf .jf-leyenda i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:-1px;}
.jf .jf-traduce{margin-top:13px;padding:11px 13px;border-radius:12px;font-size:12.5px;font-weight:600;
  background:rgba(255,207,77,.08);border:1px solid rgba(255,207,77,.26);color:#ffe6ac;
  display:flex;gap:10px;align-items:center;}
.jf .jf-traduce svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none;}
.jf .jf-blindaje{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12px;color:var(--dim);}
.jf .jf-blindaje b{color:#c3cadb;}
.jf .jf-mini{margin-left:auto;font-size:11.5px;font-weight:700;padding:6px 11px;border-radius:9px;
  background:rgba(255,255,255,.05);border:1px solid var(--border);color:var(--text);}
.jf .jf-cta{margin-top:15px;display:flex;gap:9px;}
.jf .jf-golpe{flex:1;border:1px solid rgba(255,59,59,.5);border-radius:13px;padding:15px;
  background:linear-gradient(180deg,#ff3b3b,#c21f1f);color:#fff;font-family:var(--font-stat);
  font-size:16px;font-weight:800;letter-spacing:.3px;transition:.14s;
  box-shadow:0 10px 26px -12px rgba(255,59,59,.9);}
.jf .jf-golpe:hover{filter:brightness(1.1);}
.jf .jf-golpe:active{transform:translateY(1px);}
.jf .jf-golpe small{display:block;font-family:'Segoe UI',system-ui,sans-serif;font-size:11.5px;
  font-weight:600;opacity:.88;margin-top:3px;letter-spacing:0;}
.jf .jf-golpe.exec{background:linear-gradient(180deg,var(--gold),#c98f00);border-color:rgba(255,207,77,.6);
  color:#241a00;box-shadow:0 10px 26px -12px rgba(255,207,77,.9);}
.jf .jf-alt{width:54px;border-radius:13px;background:var(--card2);border:1px solid var(--border);
  color:var(--dim);font-size:18px;}
/* frentes */
.jf .frente{display:flex;gap:12px;width:100%;text-align:left;padding:12px;border-radius:13px;
  border:1px solid var(--border);background:var(--card2);color:var(--text);margin-bottom:9px;transition:.16s;}
.jf .frente:hover{border-color:var(--dim2);}
.jf .frente.on{border-color:rgba(255,59,59,.5);background:linear-gradient(150deg,rgba(255,59,59,.10),var(--card2));}
.jf .frente .fi{width:40px;height:40px;flex:none;border-radius:11px;display:grid;place-items:center;
  background:#0f0f13;border:1px solid var(--border);}
.jf .frente .fi svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;color:var(--dim);}
.jf .frente.on .fi svg{color:var(--red);}
.jf .frente .fk{font-family:var(--font-stat);font-size:9.5px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--dim2);}
.jf .frente.on .fk{color:#ff8a8a;}
.jf .frente .fn{font-size:13.5px;font-weight:700;margin-top:2px;}
.jf .frente .fs{font-size:11px;color:var(--dim2);margin-top:6px;}
.jf .frente.add{justify-content:center;align-items:center;border-style:dashed;color:var(--dim2);
  font-weight:700;font-size:13px;padding:14px;background:none;margin-bottom:0;gap:8px;}
.jf .frente.add:hover{color:var(--text);border-color:rgba(255,59,59,.5);}
.jf .frente.add svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;}
/* registro de golpes */
.jf .logrow{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--border);}
.jf .logrow:last-child{border-bottom:0;padding-bottom:0;}
.jf .logrow .lic{width:30px;height:30px;flex:none;border-radius:9px;background:var(--card2);
  border:1px solid var(--border);display:grid;place-items:center;color:var(--dim2);}
.jf .logrow .lic svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;}
.jf .logrow .lt{font-size:13px;font-weight:600;}
.jf .logrow .ls{font-size:11px;color:var(--dim2);margin-top:1px;}
.jf .logrow .ld{margin-left:auto;font-family:var(--font-stat);font-weight:800;font-size:14px;color:#ff8a8a;}
.jf .logrow.crit .ld{color:var(--gold);}
.jf .logrow.guard .lic{color:var(--green);border-color:rgba(52,211,153,.4);}
.jf .logrow.guard .ld{color:var(--green);font-size:11.5px;}
.jf .logrow.pend{opacity:.5;}
.jf .logrow.pend .ld{color:var(--dim2);}
/* ataque del jefe */
.jf .ataque-card{border-color:rgba(255,59,59,.4);
  background:linear-gradient(180deg,rgba(255,59,59,.11),var(--card));}
.jf .ataque-tag{font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:#ff8a8a;}
.jf .ataque-h{font-family:var(--font-stat);font-size:16px;font-weight:800;margin:5px 0 0;}
.jf .ataque-p{margin:7px 0 12px;font-size:12.5px;color:var(--dim);line-height:1.45;}
.jf .defensas{display:flex;gap:8px;}
.jf .defensas button{flex:1;padding:11px 8px;border-radius:11px;border:1px solid var(--border);
  background:var(--card2);color:var(--text);font-size:12.5px;font-weight:700;}
.jf .defensas button.p{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.14);color:var(--green);}
/* el ciclo = mapa */
.jf .ciclo-meta{font-size:14.5px;font-weight:700;line-height:1.4;}
.jf .senda{display:flex;margin-top:18px;}
.jf .hito{flex:1;text-align:center;position:relative;}
.jf .hito .p{width:32px;height:32px;margin:0 auto;border-radius:50%;border:1px solid var(--border);
  display:grid;place-items:center;font-family:var(--font-stat);font-size:12px;font-weight:800;
  color:var(--dim2);background:var(--card);position:relative;z-index:1;}
.jf .hito .l{font-size:10.5px;color:var(--dim2);margin-top:8px;line-height:1.35;}
.jf .hito::before{content:"";position:absolute;top:16px;left:-50%;width:100%;height:2px;background:var(--border);}
.jf .hito:first-child::before{display:none;}
.jf .hito.caido .p{border-color:rgba(255,207,77,.6);color:var(--gold);background:rgba(255,207,77,.1);}
.jf .hito.caido .l{color:var(--dim);}
.jf .hito.activo .p{border-color:rgba(255,59,59,.65);color:var(--text);box-shadow:0 0 14px rgba(255,59,59,.45);}
.jf .hito.activo .l{color:var(--text);}
.jf .ciclo-nota{margin-top:15px;padding-top:12px;border-top:1px solid var(--border);
  font-size:11.5px;color:var(--dim2);line-height:1.55;}
/* los 90 dias dentro del rito */
.jf .tri90{border:1px solid var(--border);border-radius:13px;background:#14141a;padding:13px 15px;margin-bottom:16px;}
.jf .tri90.abierto{border-color:rgba(255,207,77,.26);background:linear-gradient(180deg,rgba(255,207,77,.05),#14141a);}
.jf .tri90 .t9h{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.jf .tri90 .t9k{font:800 10px/1 var(--font-stat);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
.jf .tri90 .t9p{display:flex;gap:5px;align-items:center;}
.jf .tri90 .t9p i{width:7px;height:7px;border-radius:50%;background:#2a2a31;}
.jf .tri90 .t9p i.ok{background:var(--gold);}
.jf .tri90 .t9p i.now{background:none;box-shadow:inset 0 0 0 2px var(--gold);}
.jf .tri60{border:1px solid var(--border);border-radius:13px;background:#14141a;padding:13px 15px;margin-bottom:16px;}
.jf .tri60.abierto{border-color:rgba(255,255,255,.12);}
.jf .tri60.pasado{opacity:.62;}
.jf .tri60 .t9h{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.jf .tri60 .t9k{font:800 10px/1 var(--font-stat);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);}
.jf .tri60 .t9e{margin-left:auto;background:none;border:1px solid var(--border);border-radius:9px;
  color:var(--dim);font-size:11px;font-weight:700;padding:4px 10px;cursor:pointer;}
.jf .tri60 .t9op{margin-left:auto;font:800 9.5px/1 var(--font-stat);letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim2);border:1px dashed var(--border);border-radius:999px;padding:4px 9px;}
.jf .tri60 .t9l{margin:0;padding-left:20px;}
.jf .tri60 .t9l li{margin:5px 0;font-size:14px;}
.jf .tri60 .t9n{margin-top:10px;padding-top:9px;border-top:1px solid var(--border);
  font-size:11.5px;color:var(--dim2);line-height:1.55;}
.jf .tri60 .t9n b{color:var(--dim);}
.jf .tri60 .metas{margin:0;}
.jf .tri90 .t9c{display:flex;gap:7px;margin-top:10px;}
.jf .tri90 .t9c span{flex:1;border:1px solid var(--border);border-radius:9px;padding:6px 8px;
  font-size:10.5px;color:var(--dim2);display:flex;flex-direction:column;gap:1px;}
.jf .tri90 .t9c span b{font:800 12px/1 var(--font-stat);color:var(--dim);}
.jf .tri90 .t9c span.ok{border-color:rgba(255,207,77,.3);color:var(--dim);}
.jf .tri90 .t9c span.ok b{color:var(--gold);}
.jf .tri90 .t9c span.now{border-color:rgba(255,59,59,.4);}
.jf .tri90 .t9c span.now b{color:var(--red);}
.jf .tri90 .t9e{margin-left:auto;background:none;border:1px solid var(--border);border-radius:9px;
  color:var(--dim);font-size:11px;font-weight:700;padding:4px 10px;cursor:pointer;}
.jf .tri90 .t9e:hover{color:var(--text);border-color:rgba(255,255,255,.2);}
.jf .tri90 .t9l{margin:0;padding-left:20px;}
.jf .tri90 .t9l li{margin:5px 0;font-size:14px;}
.jf .tri90 .t9n{margin-top:10px;padding-top:9px;border-top:1px solid var(--border);
  font-size:11.5px;color:var(--dim2);line-height:1.55;}
.jf .tri90 .t9n b{color:var(--dim);}
.jf .tri90 .metas{margin:0;}
/* a que objetivo de 90 dias sirve cada objetivo del mes */
.jf .mf-vr{display:flex;align-items:center;gap:8px;margin:5px 0 10px 34px;}
.jf .mf-vr span{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--dim2);}
.jf .mf-v{flex:1;min-width:0;background:var(--card2);color:var(--dim);border:1px solid var(--border);
  border-radius:9px;padding:6px 9px;font-size:12px;font-family:inherit;}
/* bestiario */
.jf .bestiario{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:9px;}
.jf .pieza{aspect-ratio:1;border-radius:13px;background:var(--card2);border:1px solid var(--border);
  display:grid;place-items:center;position:relative;color:var(--dim2);}
.jf .pieza svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;}
.jf .pieza .v{position:absolute;bottom:4px;right:6px;font-family:var(--font-stat);font-size:8.5px;font-weight:800;}
.jf .pieza.caido{background:linear-gradient(160deg,rgba(255,207,77,.12),var(--card2));
  border-color:rgba(255,207,77,.32);color:var(--gold);}
.jf .pieza.cent{background:linear-gradient(160deg,rgba(52,211,153,.12),var(--card2));
  border-color:rgba(52,211,153,.32);color:var(--green);}
.jf .pieza.asedio{border-style:dashed;}
.jf .pieza.oculto{opacity:.35;}
/* bucles abiertos */
.jf .loops{border-radius:var(--radius);padding:16px 18px;border:1px dashed rgba(255,59,59,.35);
  background:linear-gradient(180deg,rgba(255,59,59,.07),transparent);}
.jf .loops h4{font-family:var(--font-stat);font-size:12px;font-weight:800;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--dim);margin:0;}
.jf .loops ul{margin:11px 0 0;padding:0;list-style:none;}
.jf .loops li{font-size:12.5px;color:var(--dim);padding:6px 0 6px 16px;position:relative;line-height:1.5;}
.jf .loops li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:1px;background:var(--red);}
.jf .loops li b{color:var(--text);}
/* ── conmutador de vista (página / tarjeta del Portal) ── */
.jf .vista{display:flex;gap:6px;background:var(--card2);border:1px solid var(--border);
  border-radius:12px;padding:4px;}
.jf .vista button{padding:7px 13px;border-radius:9px;border:0;background:none;color:var(--dim);
  font-size:12px;font-weight:700;transition:.16s;}
.jf .vista button.on{background:rgba(255,59,59,.14);color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,59,59,.35);}
/* ── vista Portal: columna simulada con la tarjeta del Centinela ── */
.jf .portal-sim{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;}
.jf .portal-sim .fantasma{flex:1;min-width:240px;}
.jf .portal-sim .centinela-card{flex:none;}
@media(max-width:1080px){
.jf .portal-sim{grid-template-columns:1fr;}
}
.jf .portal-sim .fantasma{border:1px dashed var(--border);border-radius:var(--radius);padding:18px;
  min-height:330px;display:grid;place-items:center;text-align:center;color:var(--dim2);font-size:12px;
  background:rgba(255,255,255,.012);}
/* ── tarjeta del Portal · 456×460 exactos ──────────────────────────────
   Esta tarjeta la ve el usuario TODOS los días sin entrar a Jefes, así que
   tiene que contestar sola a cuatro preguntas: dónde estoy en el trimestre,
   cómo va la semana, qué toca ahora y cuándo muere el Titán. El Centinela
   sale en sprite porque una criatura que cambia de aspecto se mira; una
   barra de porcentaje, no. */
.jf .centinela-card{width:456px;height:460px;padding:16px;display:flex;flex-direction:column;
  background:radial-gradient(circle at 26% 26%, rgba(15,90,66,.30), transparent 58%),
  linear-gradient(180deg,#0d1714,#070b0a);border:1px solid rgba(52,211,153,.38);
  box-shadow:inset 0 0 30px rgba(52,211,153,.08);overflow:hidden;}
.jf .cc-top{display:flex;align-items:center;gap:8px;flex:none;}
.jf .cc-top .cc-name{font-family:var(--font-stat);font-size:11px;font-weight:800;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--green);}
.jf .cc-top .cc-dias{margin-left:auto;font-family:var(--font-stat);font-size:10.5px;font-weight:800;
  letter-spacing:.06em;color:var(--dim);border:1px solid var(--border);border-radius:999px;padding:3px 9px;}
.jf .cc-body{display:flex;gap:14px;margin-top:12px;flex:none;height:170px;}
.jf .cc-art{width:136px;height:170px;flex:none;display:grid;place-items:center;position:relative;}
.jf .cc-art img{max-height:170px;max-width:136px;width:auto;display:block;}
.jf .cc-art .cc-fase{position:absolute;bottom:0;left:0;font-family:var(--font-stat);font-size:9px;
  font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--dim2);}
.jf .cc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;}
.jf .cc-pct{display:flex;align-items:baseline;gap:7px;}
.jf .cc-pct b{font-family:var(--font-stat);font-size:30px;font-weight:800;line-height:1;letter-spacing:-1.5px;color:var(--green);}
.jf .cc-pct span{font-family:var(--font-stat);font-size:9px;font-weight:800;letter-spacing:1.3px;
  text-transform:uppercase;color:var(--dim2);}
.jf .cc-gbar{position:relative;height:8px;border-radius:5px;background:#0b1512;border:1px solid rgba(52,211,153,.18);}
.jf .cc-gbar i{display:block;height:100%;border-radius:5px;
  background:linear-gradient(90deg,rgba(52,211,153,.6),var(--green));transition:width .45s cubic-bezier(.3,1,.4,1);}
.jf .cc-gbar u{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--gold);border-radius:2px;}
.jf .cc-falta{font-size:12px;color:var(--dim);line-height:1.4;}
.jf .cc-falta b{color:var(--text);}
.jf .cc-next{margin-top:auto;padding:10px 11px;border-radius:11px;background:rgba(255,255,255,.035);
  border:1px solid var(--border);text-align:left;}
.jf .cc-next .k{font-family:var(--font-stat);font-size:8.5px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--dim2);}
.jf .cc-next .v{font-size:12.5px;font-weight:600;margin-top:3px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
/* el reparto de la semana: cuál va más adelantado se ve de un vistazo */
.jf .cc-objs{flex:1;min-height:0;margin-top:13px;display:flex;flex-direction:column;gap:7px;
  justify-content:center;overflow:hidden;}
.jf .cc-ob{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--dim);}
.jf .cc-ob .n{flex:0 0 40%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jf .cc-ob .bb{flex:1;height:6px;border-radius:4px;background:#0b1512;
  border:1px solid rgba(255,255,255,.06);overflow:hidden;}
.jf .cc-ob .bb i{display:block;height:100%;border-radius:4px;background:#2f6b57;
  transition:width .45s cubic-bezier(.3,1,.4,1);}
.jf .cc-ob .q{flex:none;font-family:var(--font-stat);font-size:10px;font-weight:800;color:var(--dim2);
  min-width:26px;text-align:right;}
.jf .cc-ob.sig{color:var(--text);}
.jf .cc-ob.sig .bb i{background:var(--green);}
.jf .cc-ob.sig .q{color:var(--green);}
.jf .cc-ob.fin{opacity:.45;}
.jf .cc-ob.fin .bb i{background:var(--gold);}
/* bloque del Titán */
.jf .cc-titan{padding-top:12px;border-top:1px solid rgba(255,255,255,.07);flex:none;}
.jf .cc-titan .tt{display:flex;align-items:baseline;gap:8px;font-family:var(--font-stat);
  font-size:10px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:#ff8a8a;}
.jf .cc-titan .tt b{margin-left:auto;color:var(--text);font-size:11.5px;letter-spacing:0;}
.jf .cc-titan .vbar2{height:8px;margin-top:7px;border-radius:5px;background:#1a0707;
  border:1px solid rgba(255,80,80,.22);overflow:hidden;}
.jf .cc-titan .vbar2 i{display:block;height:100%;border-radius:5px;
  background:linear-gradient(90deg,#ff3b3b,#ff8d8d);transition:width .45s cubic-bezier(.3,1,.4,1);}
.jf .cc-arco{display:flex;align-items:center;gap:8px;margin-top:9px;}
.jf .cc-arco .pts{display:flex;gap:5px;}
.jf .cc-arco .pts i{width:7px;height:7px;border-radius:50%;background:#2a2a31;}
.jf .cc-arco .pts i.ok{background:var(--gold);}
.jf .cc-arco .pts i.now{background:none;box-shadow:inset 0 0 0 2px var(--gold);}
.jf .cc-arco .cd{margin-left:auto;font-size:10.5px;color:var(--dim2);}
.jf .cc-arco .cd b{color:var(--dim);}
.jf .cc-btn{margin-top:11px;width:100%;padding:11px;border-radius:11px;flex:none;cursor:pointer;
  border:1px solid rgba(52,211,153,.45);background:linear-gradient(180deg,rgba(52,211,153,.22),rgba(52,211,153,.08));
  color:var(--text);font-size:13px;font-weight:800;}
.jf .cc-btn.rojo{border-color:rgba(255,59,59,.5);
  background:linear-gradient(180deg,rgba(255,59,59,.26),rgba(255,59,59,.08));}
/* semana ganada: la tarjeta celebra sin gritar */
.jf .centinela-card.ganada{border-color:rgba(255,207,77,.45);
  background:radial-gradient(circle at 26% 26%, rgba(120,90,10,.34), transparent 58%),
  linear-gradient(180deg,#151208,#0a0805);}
.jf .centinela-card.ganada .cc-top .cc-name{color:var(--gold);}
.jf .centinela-card.ganada .cc-pct b{color:var(--gold);}
.jf .centinela-card.ganada .cc-gbar i{background:linear-gradient(90deg,rgba(255,207,77,.6),var(--gold));}
/* sin jefe */
.jf .centinela-card.vacia{border-color:var(--border);
  background:linear-gradient(180deg,#131318,#0a0a0d);justify-content:center;text-align:center;}
.jf .centinela-card.vacia .cc-art{width:100%;margin:0 auto;}
.jf .centinela-card.vacia h4{font-family:var(--font-stat);font-size:19px;font-weight:800;
  letter-spacing:-.3px;margin:14px 0 0;line-height:1.2;}
.jf .centinela-card.vacia p{font-size:12.5px;color:var(--dim);line-height:1.5;margin:8px 0 0;}
/* ═══════════ MODAL DE INVOCACIÓN ═══════════ */
.jf .rito{position:fixed;inset:0;z-index:1500;display:none;place-items:center;padding:30px;}
.jf .rito.on{display:grid;}
.jf .rito .velo{position:absolute;inset:0;background:rgba(5,5,7,.84);backdrop-filter:blur(7px);
  border:0;width:100%;animation:jfFade .25s;}
@keyframes jfFade{from{opacity:0}}
.jf .rito .hoja{position:relative;width:100%;max-width:620px;max-height:88vh;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#17171d,#0e0e12);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:0 40px 90px -30px #000;overflow:hidden;
  animation:jfRise .3s cubic-bezier(.3,1,.4,1);}
@keyframes jfRise{from{opacity:0;transform:translateY(18px) scale(.985)}}
.jf .rito-head{padding:22px 24px 17px;border-bottom:1px solid var(--border);flex:none;}
.jf .rito-head h2{font-family:var(--font-stat);font-size:22px;font-weight:800;margin:5px 0 0;letter-spacing:-.4px;}
.jf .rito-head p{margin:7px 0 0;font-size:13px;color:var(--dim);line-height:1.5;}
.jf .tramos{display:flex;gap:5px;margin-top:15px;}
.jf .tramos i{flex:1;height:3px;border-radius:99px;background:var(--card2);}
.jf .tramos i.on{background:var(--red);box-shadow:0 0 8px rgba(255,59,59,.5);}
.jf .rito-body{padding:20px 24px;overflow-y:auto;flex:1;}
.jf .rito-foot{padding:15px 24px;border-top:1px solid var(--border);display:flex;gap:9px;flex:none;background:rgba(14,14,18,.9);}
.jf .rito-foot .atras{width:48px;height:47px;border-radius:12px;background:var(--card2);border:1px solid var(--border);
  color:var(--dim);font-size:18px;}
.jf .rito-foot .sigue{flex:1;height:47px;border:1px solid rgba(255,59,59,.5);border-radius:12px;
  background:linear-gradient(180deg,#ff3b3b,#c21f1f);color:#fff;font-family:var(--font-stat);
  font-size:14.5px;font-weight:800;box-shadow:0 8px 24px -12px rgba(255,59,59,.9);}
.jf .rito-foot .sigue:hover:not(:disabled){filter:brightness(1.1);}
.jf .rito-foot .sigue:disabled{background:var(--card2);border-color:var(--border);color:var(--dim2);
  box-shadow:none;cursor:not-allowed;}
.jf .opt{display:block;width:100%;text-align:left;padding:14px;border-radius:14px;background:var(--card);
  border:1px solid var(--border);margin-bottom:9px;transition:.16s;position:relative;color:var(--text);}
.jf .opt:hover:not(:disabled){border-color:var(--dim2);}
.jf .opt.on{border-color:rgba(255,59,59,.55);background:linear-gradient(160deg,rgba(255,59,59,.12),var(--card));}
.jf .opt .row{display:flex;gap:13px;align-items:flex-start;}
.jf .opt .oi{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:var(--card2);border:1px solid var(--border);color:var(--dim);}
.jf .opt .oi svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.5;}
.jf .opt.on .oi{border-color:rgba(255,59,59,.45);color:var(--red);}
.jf .opt .ot{font-family:var(--font-stat);font-size:14.5px;font-weight:700;}
.jf .opt .od{font-size:12.5px;color:var(--dim);line-height:1.45;margin-top:4px;}
.jf .opt .oq{font-size:11.5px;color:#ff9d9d;font-weight:700;margin-top:7px;}
.jf .opt .chk{position:absolute;top:13px;right:13px;width:19px;height:19px;border-radius:50%;border:1.5px solid var(--border);}
.jf .opt.on .chk{border-color:var(--red);background:var(--red);}
.jf .opt.on .chk::after{content:"";position:absolute;left:6px;top:2.5px;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.jf .opt .badge{position:absolute;top:14px;right:14px;font-family:var(--font-stat);font-size:9.5px;
  font-weight:800;letter-spacing:1.2px;color:var(--dim2);}
.jf .opt:disabled{opacity:.42;cursor:not-allowed;}
.jf .opt.mini{padding:12px;text-align:center;margin:0;}
.jf .opt.mini .ot{font-size:13px;}
.jf .opt.mini .od{font-size:10.5px;margin-top:3px;}
.jf .lab{font-family:var(--font-stat);font-size:10.5px;font-weight:800;letter-spacing:2px;text-transform:uppercase;
  color:var(--dim2);margin:20px 0 9px;}
.jf .inp{width:100%;padding:13px;border-radius:12px;background:#0d0d10;border:1px solid var(--border);
  color:var(--text);font-family:var(--font-stat);font-size:15px;font-weight:700;outline:none;transition:.16s;}
.jf .inp.llana{font-family:inherit;font-size:14px;font-weight:500;}
.jf .inp::placeholder{color:var(--dim2);font-weight:500;}
.jf .inp:focus{border-color:rgba(255,59,59,.5);}
.jf .apunte{font-size:12px;color:var(--dim2);margin-top:9px;line-height:1.6;}
.jf .apunte b{color:#ff9d9d;}
.jf .glifos{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.jf .glifo{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--card);
  border:1px solid var(--border);color:var(--dim);transition:.16s;}
.jf .glifo svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.5;}
.jf .glifo.on{border-color:rgba(255,59,59,.55);color:var(--red);background:rgba(255,59,59,.08);}
.jf .arma{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px;border-radius:13px;
  background:var(--card);border:1px solid var(--border);margin-bottom:8px;transition:.16s;color:var(--text);}
.jf .arma.on{border-color:rgba(52,211,153,.45);background:linear-gradient(160deg,rgba(52,211,153,.09),var(--card));}
.jf .arma .ai{width:32px;height:32px;flex:none;border-radius:10px;background:var(--card2);display:grid;
  place-items:center;color:var(--dim);border:1px solid var(--border);}
.jf .arma .ai svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;}
.jf .arma.on .ai{color:var(--green);border-color:rgba(52,211,153,.4);}
.jf .arma .at{font-size:13.5px;font-weight:700;}
.jf .arma .as{font-size:11.5px;color:var(--dim2);margin-top:2px;}
.jf .arma .ad{margin-left:auto;font-family:var(--font-stat);font-size:13px;font-weight:800;color:var(--dim2);}
.jf .arma.on .ad{color:var(--green);}
.jf .arma:disabled{opacity:.5;cursor:not-allowed;}
.jf .cuenta{margin-top:18px;padding:15px;border-radius:15px;border:1px solid rgba(255,59,59,.3);
  background:linear-gradient(180deg,rgba(255,59,59,.1),var(--card));}
.jf .cuenta .top{display:flex;align-items:baseline;}
.jf .cuenta .top .k{font-family:var(--font-stat);font-size:10.5px;font-weight:800;letter-spacing:1.8px;
  text-transform:uppercase;color:#ff8a8a;}
.jf .cuenta .top b{margin-left:auto;font-family:var(--font-stat);font-size:22px;font-weight:800;}
.jf .cuenta .exp{font-size:12px;color:var(--dim);margin-top:11px;line-height:1.6;}
.jf .cuenta .exp b{color:var(--text);}
.jf .cautela{margin-top:12px;padding:12px 14px;border-radius:12px;font-size:12px;line-height:1.5;
  background:rgba(255,207,77,.08);border:1px solid rgba(255,207,77,.28);color:#ffe6ac;}
.jf .retrato{border-radius:16px;border:1px solid rgba(255,59,59,.35);padding:22px;text-align:center;
  background:radial-gradient(circle at 50% 20%, rgba(140,15,15,.4), transparent 62%),linear-gradient(180deg,#1c0808,#0a0404);}
.jf .retrato h3{font-family:var(--font-stat);font-size:21px;font-weight:800;margin:12px 0 0;}
.jf .retrato .cita{font-size:12.5px;color:var(--dim);font-style:italic;margin-top:7px;}
.jf .retrato .vv{display:flex;align-items:baseline;margin-top:18px;}
.jf .retrato .vv .k{font-family:var(--font-stat);font-size:10.5px;font-weight:800;letter-spacing:1.8px;color:#ff8a8a;}
.jf .retrato .vv b{margin-left:auto;font-family:var(--font-stat);font-size:17px;font-weight:800;}
.jf .clausulas{margin-top:18px;}
.jf .clausula{display:flex;gap:12px;font-size:12.5px;color:var(--dim);padding:10px 0;
  border-bottom:1px solid var(--border);line-height:1.5;}
.jf .clausula:last-child{border-bottom:0;}
.jf .clausula .n{font-family:var(--font-stat);font-size:10.5px;font-weight:800;color:var(--dim2);
  flex:none;width:26px;text-align:right;padding-top:2px;}
.jf .clausula b{color:var(--text);}
/* pantallas completas */
.jf .plena{position:fixed;inset:0;z-index:1600;display:none;place-items:center;padding:32px;text-align:center;
  background:rgba(5,5,7,.95);backdrop-filter:blur(8px);overflow-y:auto;}
.jf .plena.on{display:grid;}
.jf .plena .in{max-width:460px;width:100%;}
.jf .plena .art{animation:jfPop .65s cubic-bezier(.2,1.4,.4,1);}
@keyframes jfPop{0%{transform:scale(0) rotate(-20deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
.jf .plena h2{font-family:var(--font-stat);font-size:27px;font-weight:800;margin:18px 0 0;letter-spacing:-.5px;}
.jf .plena h2.oro{color:var(--gold);text-shadow:0 0 26px rgba(255,207,77,.4);}
.jf .plena h2.verde{color:var(--green);text-shadow:0 0 26px rgba(52,211,153,.35);}
.jf .plena .sub{color:var(--dim);font-size:13px;margin-top:9px;}
.jf .botin{display:flex;gap:9px;margin-top:22px;}
.jf .botin div{flex:1;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 8px;
  animation:jfUp .5s backwards;}
.jf .botin div:nth-child(1){animation-delay:.22s}
.jf .botin div:nth-child(2){animation-delay:.36s}
.jf .botin div:nth-child(3){animation-delay:.5s}
@keyframes jfUp{from{opacity:0;transform:translateY(14px)}}
.jf .botin b{display:block;font-family:var(--font-stat);font-size:18px;font-weight:800;}
.jf .botin small{display:block;font-size:9.5px;color:var(--dim2);margin-top:5px;letter-spacing:.6px;font-weight:700;}
.jf .botin .raro{border-color:rgba(255,207,77,.45);background:linear-gradient(160deg,rgba(255,207,77,.12),var(--card));}
.jf .botin .raro b{color:var(--gold);}
.jf .cedula{margin-top:17px;padding:16px;border-radius:14px;background:var(--card);border:1px solid var(--border);
  text-align:left;animation:jfUp .5s .64s backwards;}
.jf .cedula .ti{font-family:var(--font-stat);font-size:11px;color:var(--gold);font-weight:800;
  letter-spacing:1.4px;text-transform:uppercase;}
.jf .cedula .q{color:var(--dim);font-style:italic;margin-top:9px;font-size:12.5px;}
.jf .cedula .r{font-family:var(--font-stat);font-size:16px;font-weight:800;margin-top:4px;}
.jf .cedula .cap{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:12.5px;
  color:#bfe8d6;line-height:1.55;}
.jf .cedula .cap b{color:var(--green);}
.jf .pasos{display:flex;gap:9px;margin-top:18px;animation:jfUp .5s .84s backwards;}
.jf .pasos button{flex:1;padding:14px;border-radius:12px;font-family:var(--font-stat);font-weight:800;font-size:13px;
  border:1px solid var(--border);background:var(--card2);color:var(--text);}
.jf .pasos button.p{border-color:rgba(255,59,59,.5);background:linear-gradient(180deg,#ff3b3b,#c21f1f);color:#fff;}
.jf .pasos button.v{border-color:rgba(52,211,153,.5);background:rgba(52,211,153,.16);color:var(--green);}
@media(max-width:900px){
.jf :root{--sidebar-w:0px;}
.jf body{padding:20px 14px 90px;}
}
@media (prefers-reduced-motion:reduce){
.jf *{animation:none!important;transition:none!important;}
}
/* ════════════ v4 · columna central, jefe centrado, barra debajo ════════════ */
.jf .centro{max-width:880px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:18px;}
.jf .page-head{max-width:880px;margin:0 auto;width:100%;}
.jf .subtabs{justify-content:center;}
/* banda de estado: lleva el único bucle abierto de la pantalla */
.jf .estado{display:flex;align-items:center;gap:14px;padding:13px 18px;border-radius:14px;
  border:1px solid rgba(255,207,77,.3);background:linear-gradient(100deg,rgba(255,207,77,.11),rgba(255,207,77,.02));
  position:relative;overflow:hidden;}
.jf .estado::before{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,transparent 34%,rgba(255,207,77,.11) 50%,transparent 66%);
  transform:translateX(-100%);animation:jfSheen 5s ease-in-out infinite;}
@keyframes jfSheen{0%,64%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.jf .estado .ic{color:var(--gold);display:flex;flex:none;}
.jf .estado .ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;}
.jf .estado .t{font-family:var(--font-stat);font-size:12.5px;font-weight:800;color:var(--gold);letter-spacing:.9px;}
.jf .estado .s{font-size:12px;color:var(--dim);margin-top:2px;}
.jf .estado .r{margin-left:auto;font-size:11px;color:var(--dim2);font-weight:600;text-align:right;flex:none;}
/* alerta de ataque: evento, no tarjeta permanente */
.jf .alerta{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:14px;
  border:1px solid rgba(255,59,59,.38);background:linear-gradient(100deg,rgba(255,59,59,.13),transparent);}
.jf .alerta .k{font-family:var(--font-stat);font-size:9.5px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:#ff8a8a;}
.jf .alerta .h{font-size:14px;font-weight:700;margin-top:3px;}
.jf .alerta .p{font-size:12px;color:var(--dim);margin-top:3px;line-height:1.4;}
.jf .alerta .acc{margin-left:auto;display:flex;gap:8px;flex:none;}
.jf .alerta .acc button{padding:10px 14px;border-radius:11px;border:1px solid var(--border);
  background:var(--card2);color:var(--text);font-size:12.5px;font-weight:700;}
.jf .alerta .acc button.p{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.14);color:var(--green);}
/* ── HERO DE JEFE: nombre arriba, criatura centrada, barra debajo ── */
.jf .hero{padding:30px 28px 26px;text-align:center;position:relative;overflow:hidden;}
.jf .hero.titan{background:radial-gradient(circle at 50% 24%, rgba(140,15,15,.40), transparent 62%),
  linear-gradient(180deg,#1c0808,#0a0404);border:1px solid rgba(255,59,59,.38);
  box-shadow:inset 0 0 40px rgba(255,0,0,.12);transition:background .6s;}
.jf .hero.titan.f3{background:radial-gradient(circle at 50% 24%, rgba(200,90,10,.40), transparent 62%),
  linear-gradient(180deg,#1f1004,#0a0503);border-color:rgba(255,160,60,.42);}
.jf .hero.mini{background:radial-gradient(circle at 50% 24%, rgba(120,70,10,.26), transparent 62%),
  linear-gradient(180deg,#161208,#0a0806);border:1px solid rgba(255,207,77,.28);}
.jf .hero .rank{font-family:var(--font-stat);font-size:9.5px;font-weight:800;letter-spacing:2.2px;
  text-transform:uppercase;color:var(--dim2);}
.jf .hero.titan .rank{color:#ff8a8a;}
.jf .hero.mini .rank{color:var(--gold);}
.jf .hero h2{font-family:var(--font-stat);font-size:30px;font-weight:800;letter-spacing:-.6px;margin:7px 0 0;line-height:1.06;}
@media(max-width:640px){
.jf .hero h2{font-size:24px;}
}
.jf .hero .fase{font-size:12.5px;color:var(--dim);margin-top:7px;}
.jf .hero .fase b{color:#ff9d9d;}
.jf .hero.titan.f3 .fase b{color:var(--gold);}
.jf .hero.mini .fase b{color:var(--gold);}
.jf .lienzo{display:grid;place-items:center;position:relative;margin:22px 0 12px;min-height:360px;}
.jf .lienzo .aro{position:absolute;width:296px;height:296px;transform:rotate(-90deg);}
.jf .sacude{animation:jfShake .34s cubic-bezier(.36,.07,.19,.97);}
@keyframes jfShake{15%{transform:translateX(-5px)}30%{transform:translateX(6px)}
  45%{transform:translateX(-8px)}60%{transform:translateX(6px)}80%{transform:translateX(-2px)}}
.jf .cifra{position:absolute;font-family:var(--font-stat);font-weight:800;font-size:30px;color:#fff;
  text-shadow:0 2px 14px #000;pointer-events:none;animation:jfSube 1.1s cubic-bezier(.2,.9,.3,1) forwards;z-index:5;}
.jf .cifra.oro{color:var(--gold);font-size:34px;}
@keyframes jfSube{0%{opacity:0;transform:translateY(12px) scale(.7)}
  18%{opacity:1;transform:translateY(-6px) scale(1.14)}100%{opacity:0;transform:translateY(-74px) scale(1)}}
/* zona de barra: SIEMPRE justo debajo de la criatura */
.jf .zona-barra{max-width:540px;margin:0 auto;}
.jf .zona-barra .lectura{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px;}
.jf .zona-barra .pct{font-family:var(--font-stat);font-size:38px;font-weight:800;line-height:.9;letter-spacing:-1.6px;
  font-variant-numeric:tabular-nums;text-align:left;}
.jf .zona-barra .pct small{font-size:15px;color:var(--dim2);margin-left:2px;}
.jf .zona-barra .pl{font-size:9.5px;color:var(--dim2);font-weight:700;letter-spacing:1.1px;text-transform:uppercase;
  margin-top:5px;text-align:left;}
.jf .zona-barra .der{text-align:right;font-size:9.5px;color:var(--dim2);font-weight:700;letter-spacing:1.1px;text-transform:uppercase;}
.jf .zona-barra .der b{display:block;font-family:var(--font-stat);font-size:16px;color:var(--text);
  letter-spacing:0;text-transform:none;margin-top:4px;}
.jf .vbar{position:relative;height:18px;border-radius:9px;background:#1a0707;border:1px solid rgba(255,80,80,.32);
  box-shadow:inset 0 0 10px rgba(0,0,0,.6);}
.jf .vbar .f{position:absolute;left:0;top:0;bottom:0;border-radius:9px;
  background:linear-gradient(90deg,#ff3b3b,#ff8d8d);box-shadow:0 0 10px rgba(255,59,59,.55);
  transition:width .65s cubic-bezier(.3,1,.4,1);}
.jf .vbar .f.exec{background:linear-gradient(90deg,#c97b16,var(--gold));box-shadow:0 0 12px rgba(255,207,77,.6);
  animation:jfLate 1.2s ease-in-out infinite;}
@keyframes jfLate{0%,100%{filter:brightness(1)}50%{filter:brightness(1.3)}}
.jf .vbar .bl{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(115deg,#4B5261 0 5px,#333B48 5px 10px);}
.jf .vbar .mk{position:absolute;top:0;bottom:0;width:2px;background:rgba(0,0,0,.6);}
.jf .vbar.guardia{background:#0d0d10;border-color:var(--border);margin-bottom:6px;}
.jf .vbar.guardia .f{background:linear-gradient(90deg,#c98f00,var(--gold));box-shadow:0 0 12px rgba(255,207,77,.4);}
.jf .vbar .umbral{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--green);box-shadow:0 0 8px rgba(52,211,153,.9);}
.jf .vbar .umbral::after{content:"CAE AL 80%";position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);
  font-family:var(--font-stat);font-size:8px;font-weight:800;color:var(--green);letter-spacing:.5px;white-space:nowrap;}
.jf .pie-barra{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-stat);
  font-size:9px;font-weight:700;color:var(--dim2);letter-spacing:.8px;}
/* explicación de por qué no hay botón */
.jf .espejo{max-width:540px;margin:18px auto 0;display:flex;align-items:flex-start;gap:10px;text-align:left;
  padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--border);
  font-size:12.5px;line-height:1.5;color:var(--dim);}
.jf .espejo svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none;margin-top:2px;color:var(--dim2);}
.jf .espejo b{color:var(--text);}
/* tira de semanas del mes */
.jf .semanas{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;max-width:540px;margin:18px auto 0;}
.jf .sem{background:rgba(0,0,0,.28);border:1px solid var(--border);border-radius:12px;padding:10px 8px;text-align:center;}
.jf .sem .sk{font-family:var(--font-stat);font-size:8.5px;font-weight:800;letter-spacing:1.2px;color:var(--dim2);}
.jf .sem .sv{font-family:var(--font-stat);font-size:17px;font-weight:800;margin-top:3px;}
.jf .sem .ss{font-size:9px;color:var(--dim2);margin-top:2px;line-height:1.3;}
.jf .sem .sb{height:3px;border-radius:3px;background:#0d0d10;margin-top:7px;overflow:hidden;}
.jf .sem .sb i{display:block;height:100%;background:linear-gradient(90deg,#c98f00,var(--gold));}
.jf .sem.ok{border-color:rgba(52,211,153,.4);}
.jf .sem.ok .sv{color:var(--green);}
.jf .sem.ok .sb i{background:linear-gradient(90deg,#1fa876,var(--green));}
.jf .sem.fallo{border-color:rgba(255,59,59,.32);}
.jf .sem.fallo .sv{color:#ff8a8a;}
.jf .sem.fallo .sb i{background:linear-gradient(90deg,#8c2020,#ff6b6b);}
.jf .sem.viva{border-color:rgba(255,207,77,.5);background:rgba(255,207,77,.07);}
.jf .sem.viva .sv{color:var(--gold);}
.jf .sem.futura{opacity:.45;border-style:dashed;}
/* objetivos del Centinela */
.jf .objs{max-width:540px;margin:20px auto 0;text-align:left;display:flex;flex-direction:column;gap:11px;}
.jf .obj{display:flex;align-items:center;gap:12px;}
.jf .obj .oc{width:27px;height:27px;flex:none;border-radius:8px;background:rgba(0,0,0,.3);border:1px solid var(--border);
  display:grid;place-items:center;font-family:var(--font-stat);font-size:9.5px;font-weight:800;color:var(--dim2);}
.jf .obj.hecho .oc{border-color:rgba(52,211,153,.5);color:var(--green);background:rgba(52,211,153,.12);}
.jf .obj .ob{flex:1;min-width:0;}
.jf .obj .on{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jf .obj.hecho .on{color:var(--dim);}
.jf .obj .om{height:5px;border-radius:6px;background:#0d0d10;overflow:hidden;margin-top:6px;}
.jf .obj .om i{display:block;height:100%;background:linear-gradient(90deg,#1fa876,var(--green));transition:width .5s cubic-bezier(.3,1,.4,1);}
.jf .obj .og{font-family:var(--font-stat);font-size:11px;font-weight:800;color:var(--dim2);flex:none;}
.jf .obj.hecho .og{color:var(--green);}
/* única acción de la pantalla: lleva a donde se trabaja */
.jf .siguiente{max-width:540px;margin:20px auto 0;display:flex;align-items:center;gap:13px;text-align:left;
  width:100%;padding:14px 16px;border-radius:13px;border:1px solid rgba(52,211,153,.4);
  background:linear-gradient(180deg,rgba(52,211,153,.14),rgba(52,211,153,.04));color:var(--text);transition:.16s;}
.jf .siguiente:hover{filter:brightness(1.15);}
.jf .siguiente svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;flex:none;color:var(--green);}
.jf .siguiente>span{flex:1;min-width:0;}
.jf .siguiente .k{font-family:var(--font-stat);font-size:9px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--green);}
.jf .siguiente .v{font-size:13.5px;font-weight:700;margin-top:3px;}
.jf .siguiente .d{margin-left:auto;font-family:var(--font-stat);font-size:11px;font-weight:800;color:var(--green);
  text-align:right;flex:none;line-height:1.5;}
.jf .premio{max-width:540px;margin:16px auto 0;padding:12px 14px;border-radius:12px;font-size:12px;line-height:1.55;
  text-align:left;background:rgba(52,211,153,.07);border:1px solid rgba(52,211,153,.26);color:#bfe8d6;}
.jf .premio b{color:var(--green);}
.jf .avblind{max-width:540px;margin:16px auto 0;padding:12px 14px;border-radius:12px;font-size:12px;line-height:1.5;
  text-align:left;background:rgba(255,59,59,.09);border:1px solid rgba(255,59,59,.28);color:#ffc9c9;}
.jf .avblind b{color:#fff;}
/* bestiario: tira horizontal al pie */
.jf .tira{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:var(--radius);
  background:linear-gradient(180deg,var(--card),#121216);border:1px solid var(--border);overflow-x:auto;}
.jf .tira .tt{font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--dim2);flex:none;padding-right:6px;}
.jf .pz{width:52px;height:52px;flex:none;border-radius:12px;background:var(--card2);border:1px solid var(--border);
  display:grid;place-items:center;position:relative;color:var(--dim2);}
.jf .pz svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;}
.jf .pz .v{position:absolute;bottom:3px;right:5px;font-family:var(--font-stat);font-size:8px;font-weight:800;}
.jf .pz.won{border-color:rgba(255,207,77,.35);color:var(--gold);background:linear-gradient(160deg,rgba(255,207,77,.12),var(--card2));}
.jf .pz.sent{border-color:rgba(52,211,153,.35);color:var(--green);background:linear-gradient(160deg,rgba(52,211,153,.1),var(--card2));}
.jf .pz.pend{border-style:dashed;}
.jf .pz.lock{opacity:.3;}
.jf .tira .mas{margin-left:auto;flex:none;font-size:11.5px;color:var(--dim);background:none;border:0;font-weight:700;}
/* ════════════ BESTIARIO ════════════
   No es una vitrina de trofeos. Es un espejo: enseña TU patrón de frenos y
   devuelve la táctica que ya te funcionó contra cada uno. Mirar atrás solo
   sirve si sales con algo que usar mañana. */
.jf .best .bhead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.jf .best .bcount{font-family:var(--font-stat);font-size:11.5px;font-weight:800;color:var(--dim);
  letter-spacing:.4px;margin-left:auto;}
.jf .best .bcount b{color:var(--gold);}
.jf .best .bbar{height:4px;border-radius:3px;background:#101014;overflow:hidden;margin:10px 0 16px;}
.jf .best .bbar i{display:block;height:100%;border-radius:3px;
  background:linear-gradient(90deg,rgba(255,207,77,.55),var(--gold));transition:width .5s cubic-bezier(.3,1,.4,1);}
.jf .bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:11px;}
.jf .bcard{background:var(--card2);border:1px solid var(--border);border-radius:14px;padding:11px 10px 10px;
  display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;position:relative;
  text-align:center;color:inherit;font:inherit;transition:transform .16s,border-color .16s,background .16s;}
.jf .bcard:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.16);}
.jf .bcard .bart{height:76px;display:grid;place-items:center;}
.jf .bcard .bart img{max-height:76px;width:auto;display:block;}
.jf .bcard .bn{font-family:var(--font-stat);font-size:11.5px;font-weight:800;letter-spacing:-.1px;line-height:1.25;}
.jf .bcard .bs{font-size:9.5px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;color:var(--dim2);}
.jf .bcard .bv{position:absolute;top:8px;right:9px;font-family:var(--font-stat);font-size:9.5px;font-weight:800;}
/* estados */
.jf .bcard.caido{border-color:rgba(255,207,77,.34);background:linear-gradient(170deg,rgba(255,207,77,.10),var(--card2));}
.jf .bcard.caido .bs,.jf .bcard.caido .bv{color:var(--gold);}
.jf .bcard.curso{border-color:rgba(255,59,59,.38);background:linear-gradient(170deg,rgba(255,59,59,.10),var(--card2));}
.jf .bcard.curso .bs{color:var(--red);}
.jf .bcard.fuga{border-style:dashed;border-color:rgba(255,122,59,.4);}
.jf .bcard.fuga .bs{color:#ff7a3b;}
.jf .bcard.visto .bs{color:var(--dim);}
/* sin conocer: sello cerrado. Ni sprite ni silueta: el jefe se ve por
   primera vez el dia que te toca, no antes. */
.jf .bcard.oculto{background:repeating-linear-gradient(135deg,rgba(255,255,255,.018) 0 6px,transparent 6px 12px),var(--card2);}
.jf .bcard.oculto .bn{color:var(--dim2);}
.jf .sello{position:relative;display:grid;place-items:center;width:64px;height:64px;color:rgba(255,255,255,.17);}
.jf .sello svg{width:64px;height:64px;stroke:currentColor;fill:none;stroke-width:1.2;}
.jf .sello b{position:absolute;font-family:var(--font-stat);font-size:24px;font-weight:800;
  color:rgba(255,255,255,.26);}
.jf .bcard.cerrado{cursor:default;opacity:.34;border-style:dashed;}
.jf .bcard.cerrado:hover{transform:none;border-color:var(--border);}
.jf .bcard.cerrado .bart{color:var(--dim2);}
.jf .bcard.cerrado svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;}
/* patrón dominante */
.jf .patron{margin-top:16px;border-radius:14px;padding:14px 15px;border:1px solid rgba(255,207,77,.22);
  background:linear-gradient(180deg,rgba(255,207,77,.07),transparent);}
.jf .patron h4{font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:1.8px;
  text-transform:uppercase;color:var(--dim2);margin:0 0 8px;}
.jf .patron p{margin:0;font-size:13px;line-height:1.6;color:var(--dim);}
.jf .patron p b{color:var(--text);}
.jf .patron .tac{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);
  font-size:12.5px;color:var(--dim);line-height:1.6;}
.jf .patron .tac b{color:var(--gold);}
/* ficha */
.jf .ficha .fh{display:flex;gap:16px;align-items:flex-start;}
.jf .ficha .fh .fart{width:104px;flex:none;display:grid;place-items:center;}
.jf .ficha .fh .fart img{max-height:104px;width:auto;}
.jf .ficha .fh .fart.sellada .sello{width:88px;height:88px;}
.jf .ficha .fh .fart.sellada .sello svg{width:88px;height:88px;}
.jf .ficha .fh .fart.sellada .sello b{font-size:32px;}
.jf .best .bhead .card-title svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6;}
.jf .ficha .fmeta{flex:1;min-width:0;}
.jf .ficha .chip{display:inline-block;font-family:var(--font-stat);font-size:9.5px;font-weight:800;
  letter-spacing:1.2px;text-transform:uppercase;padding:3px 8px;border-radius:999px;
  border:1px solid var(--border);color:var(--dim);}
.jf .ficha .chip.caido{color:var(--gold);border-color:rgba(255,207,77,.4);}
.jf .ficha .chip.curso{color:var(--red);border-color:rgba(255,59,59,.4);}
.jf .ficha .chip.fuga{color:#ff7a3b;border-color:rgba(255,122,59,.4);}
.jf .ficha .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px;margin:14px 0 0;}
.jf .ficha .stat{background:var(--card2);border:1px solid var(--border);border-radius:11px;padding:8px 9px;}
.jf .ficha .stat .k{font-size:9px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;color:var(--dim2);}
.jf .ficha .stat .n{font-family:var(--font-stat);font-size:17px;font-weight:800;margin-top:2px;}
.jf .ficha .bloque{margin-top:14px;border-radius:12px;padding:12px 13px;background:var(--card2);
  border:1px solid var(--border);}
.jf .ficha .bloque .bk{font-family:var(--font-stat);font-size:9.5px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--dim2);margin-bottom:6px;}
.jf .ficha .bloque p{margin:0;font-size:12.5px;line-height:1.65;color:var(--dim);}
.jf .ficha .bloque p b{color:var(--text);}
.jf .ficha .bloque.tuyo{border-color:rgba(52,211,153,.28);background:linear-gradient(180deg,rgba(52,211,153,.07),var(--card2));}
.jf .ficha .bloque.tuyo .bk{color:var(--green);}
.jf .ficha .cita{font-style:italic;color:var(--text);}
.jf .ficha .acc{display:flex;gap:9px;margin-top:16px;flex-wrap:wrap;}
.jf .ficha .acc button{border-radius:11px;padding:10px 15px;font-size:12.5px;font-weight:700;cursor:pointer;
  border:1px solid var(--border);background:var(--card2);color:var(--text);}
.jf .ficha .acc button.pri{border-color:rgba(255,207,77,.45);color:var(--gold);
  background:linear-gradient(180deg,rgba(255,207,77,.12),transparent);}
/* bestiario en tarjeta del Portal */
.jf .portal-sim{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;}
.jf .portal-sim .fantasma{flex:1;min-width:240px;}
.jf .portal-sim .centinela-card{flex:none;}
@media(max-width:1080px){
.jf .portal-sim{grid-template-columns:1fr;}
}
.jf .portal-sim .fantasma{border:1px dashed var(--border);border-radius:var(--radius);padding:18px;min-height:330px;
  display:grid;place-items:center;text-align:center;color:var(--dim2);font-size:12px;background:rgba(255,255,255,.012);}
.jf .apunte{font-size:12px;color:var(--dim2);line-height:1.6;}
.jf .apunte b{color:var(--dim);}
/* ════════════ ESTADO VACÍO ════════════ */
.jf .vacio{padding:44px 28px 38px;text-align:center;border-style:dashed;
  border-color:rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(255,59,59,.045),transparent 70%),var(--card);}
.jf .vacio .lienzo{min-height:190px;margin:6px 0 4px;}
.jf .vacio .vk{font-family:var(--font-stat);font-size:9.5px;font-weight:800;letter-spacing:2.2px;
  text-transform:uppercase;color:var(--dim2);}
.jf .vacio h2{font-family:var(--font-stat);font-size:26px;font-weight:800;letter-spacing:-.5px;margin:16px 0 0;line-height:1.15;}
.jf .vacio p{max-width:440px;margin:11px auto 0;font-size:13px;color:var(--dim);line-height:1.6;}
.jf .vacio p b{color:var(--text);}
.jf .invocar{margin-top:24px;padding:15px 34px;border-radius:14px;border:1px solid rgba(255,59,59,.5);
  background:linear-gradient(180deg,#ff3b3b,#c21f1f);color:#fff;font-family:var(--font-stat);
  font-size:15px;font-weight:800;letter-spacing:.3px;box-shadow:0 12px 30px -14px rgba(255,59,59,.95);transition:.15s;}
.jf .invocar:hover{filter:brightness(1.1);transform:translateY(-1px);}
.jf .vacio .nota{margin-top:16px;font-size:11.5px;color:var(--dim2);}
.jf .hueco{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:var(--radius);
  border:1px dashed rgba(255,255,255,.08);background:rgba(255,255,255,.012);}
.jf .hueco .hi{width:40px;height:40px;flex:none;border-radius:12px;border:1px dashed var(--border);
  display:grid;place-items:center;color:var(--dim2);}
.jf .hueco .hi svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;}
.jf .hueco .ht{font-size:13.5px;font-weight:700;color:var(--dim);}
.jf .hueco .hs{font-size:11.5px;color:var(--dim2);margin-top:2px;}
.jf .hueco button{margin-left:auto;flex:none;padding:9px 15px;border-radius:11px;border:1px solid var(--border);
  background:var(--card2);color:var(--dim);font-size:12.5px;font-weight:700;}
.jf .hueco button:hover{color:var(--text);border-color:var(--dim2);}
/* ════════════ RITO ════════════ */
.jf .rito{position:fixed;inset:0;z-index:1500;display:none;place-items:center;padding:30px;}
.jf .rito.on{display:grid;}
.jf .rito .velo{position:absolute;inset:0;background:rgba(5,5,7,.86);backdrop-filter:blur(8px);border:0;width:100%;animation:jfFade .25s;}
@keyframes jfFade{from{opacity:0}}
.jf .rito .hoja{position:relative;width:100%;max-width:620px;max-height:90vh;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#17171d,#0e0e12);border:1px solid var(--border);border-radius:20px;
  box-shadow:0 40px 90px -30px #000;overflow:hidden;animation:jfRise .3s cubic-bezier(.3,1,.4,1);}
@keyframes jfRise{from{opacity:0;transform:translateY(18px) scale(.985)}}
.jf .rito-head{padding:24px 26px 18px;border-bottom:1px solid var(--border);flex:none;}
.jf .rito-head .k{font-family:var(--font-stat);font-size:9.5px;font-weight:800;letter-spacing:2.2px;
  text-transform:uppercase;color:#ff8a8a;}
.jf .rito-head h2{font-family:var(--font-stat);font-size:23px;font-weight:800;margin:7px 0 0;letter-spacing:-.5px;line-height:1.15;}
.jf .rito-head p{margin:9px 0 0;font-size:13px;color:var(--dim);line-height:1.55;}
.jf .rito-head p b{color:var(--text);}
.jf .tramos{display:flex;gap:5px;margin-top:17px;}
.jf .tramos i{flex:1;height:3px;border-radius:99px;background:var(--card2);transition:.3s;}
.jf .tramos i.on{background:var(--red);box-shadow:0 0 8px rgba(255,59,59,.5);}
.jf .rito-body{padding:22px 26px;overflow-y:auto;flex:1;}
.jf .rito-foot{padding:14px 26px 18px;border-top:1px solid var(--border);flex:none;background:rgba(14,14,18,.92);}
.jf .rito-foot .fila{display:flex;gap:10px;}
.jf .rito-foot .atras{width:48px;height:48px;border-radius:12px;background:var(--card2);border:1px solid var(--border);
  color:var(--dim);font-size:18px;flex:none;}
.jf .rito-foot .sigue{flex:1;height:48px;border:1px solid rgba(255,59,59,.5);border-radius:12px;
  background:linear-gradient(180deg,#ff3b3b,#c21f1f);color:#fff;font-family:var(--font-stat);
  font-size:15px;font-weight:800;box-shadow:0 10px 26px -13px rgba(255,59,59,.95);transition:.15s;}
.jf .rito-foot .sigue:hover:not(:disabled){filter:brightness(1.1);}
.jf .rito-foot .sigue:disabled{background:var(--card2);border-color:var(--border);color:var(--dim2);
  box-shadow:none;cursor:not-allowed;}
.jf .rito-motivo{text-align:center;font-size:11.5px;color:var(--dim2);margin-top:9px;min-height:1em;}
.jf .campo-lab{display:block;font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:2px;
  text-transform:uppercase;color:var(--dim2);margin:20px 0 9px;}
.jf .campo-lab:first-child{margin-top:0;}
.jf .inp{width:100%;padding:14px;border-radius:13px;background:#0d0d10;border:1px solid var(--border);
  color:var(--text);font-family:var(--font-stat);font-size:16px;font-weight:700;outline:none;transition:.16s;
  line-height:1.4;resize:none;}
.jf .inp.llana{font-family:inherit;font-size:14.5px;font-weight:500;}
.jf .inp.alto{font-family:inherit;font-size:15.5px;font-weight:600;}
.jf .inp::placeholder{color:var(--dim2);font-weight:500;}
.jf .inp:focus{border-color:rgba(255,59,59,.55);box-shadow:0 0 0 3px rgba(255,59,59,.10);}
.jf .cuenta-car{text-align:right;font-family:var(--font-stat);font-size:10.5px;color:var(--dim2);margin-top:7px;}
.jf .apunte{font-size:12px;color:var(--dim2);margin-top:12px;line-height:1.65;}
.jf .apunte b{color:var(--dim);}
.jf .salida{margin-top:18px;background:none;border:0;color:var(--dim);font-size:12.5px;font-weight:600;
  text-decoration:underline;text-underline-offset:3px;padding:0;}
.jf .salida:hover{color:var(--text);}
.jf .ejemplo{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 14px;
  border-radius:12px;background:var(--card);border:1px solid var(--border);color:var(--text);
  margin-bottom:8px;font-size:13px;line-height:1.4;transition:.15s;}
.jf .ejemplo:hover{border-color:rgba(255,59,59,.4);}
.jf .ejemplo .usar{margin-left:auto;flex:none;font-family:var(--font-stat);font-size:10px;font-weight:800;
  letter-spacing:1.2px;color:#ff8a8a;}
/* retrato que se materializa mientras escribe */
.jf .retrato-vivo{text-align:center;padding:20px 16px 18px;border-radius:16px;margin-bottom:20px;
  background:radial-gradient(circle at 50% 26%, rgba(140,15,15,.34), transparent 62%),
  linear-gradient(180deg,#1a0808,#0b0505);border:1px solid rgba(255,59,59,.3);}
.jf .rv-art{display:grid;place-items:center;min-height:150px;}
.jf .rv-n{font-family:var(--font-stat);font-size:19px;font-weight:800;margin-top:10px;letter-spacing:-.3px;}
.jf .rv-f{font-size:12.5px;color:var(--dim);font-style:italic;margin-top:5px;min-height:1.3em;}
.jf .arq{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:12px 14px;border-radius:14px;
  background:var(--card);border:1px solid var(--border);color:var(--text);margin-bottom:9px;
  position:relative;transition:.16s;}
.jf .arq:hover{border-color:var(--dim2);}
.jf .arq.on{border-color:rgba(255,59,59,.55);background:linear-gradient(160deg,rgba(255,59,59,.11),var(--card));}
.jf .arq .am{width:56px;height:70px;flex:none;display:grid;place-items:center;}
.jf .arq .ai{flex:1;min-width:0;}
.jf .arq .an{display:block;font-family:var(--font-stat);font-size:14px;font-weight:700;}
.jf .arq .ad{display:block;font-size:12px;color:var(--dim);line-height:1.4;margin-top:3px;}
.jf .arq .aq{display:block;font-size:11px;color:#ff9d9d;font-weight:700;margin-top:6px;}
.jf .arq .rec{position:absolute;top:11px;right:12px;font-family:var(--font-stat);font-size:9px;font-weight:800;
  letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);border:1px solid rgba(255,207,77,.4);
  border-radius:20px;padding:3px 9px;background:rgba(255,207,77,.09);}
.jf .arq .pend{position:absolute;bottom:11px;right:12px;font-size:9px;color:var(--dim2);letter-spacing:.6px;}
.jf .ver-mas{width:100%;padding:12px;border-radius:12px;border:1px dashed var(--border);background:none;
  color:var(--dim);font-size:12.5px;font-weight:700;margin-bottom:4px;}
.jf .ver-mas:hover{color:var(--text);border-color:var(--dim2);}
/* mapa del mes */
.jf .mes-mapa{border:1px solid var(--border);border-radius:14px;padding:14px;background:var(--card);}
.jf .mes-mapa .mm-h{display:flex;align-items:baseline;gap:12px;font-size:13px;font-weight:600;}
.jf .mes-mapa .mm-h b{margin-left:auto;flex:none;font-family:var(--font-stat);font-size:11px;color:var(--dim2);}
.jf .mm-sem{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;}
.jf .mms{background:rgba(0,0,0,.3);border:1px dashed var(--border);border-radius:11px;padding:10px 9px;
  text-align:left;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s,background .15s;}
.jf .mms:hover{border-color:rgba(255,255,255,.2);}
.jf .mms.hecha{border-style:solid;border-color:rgba(52,211,153,.35);}
.jf .mms.hecha .v{color:var(--green);}
.jf .mms .k{display:block;font-family:var(--font-stat);font-size:8.5px;font-weight:800;letter-spacing:1.2px;color:var(--dim2);}
.jf .mms .v{display:block;font-size:11px;color:var(--dim2);margin-top:5px;line-height:1.35;}
.jf .mms.activa{border-style:solid;border-color:rgba(255,207,77,.45);background:rgba(255,207,77,.07);}
.jf .mms.activa .k{color:var(--gold);}
.jf .mms.activa .v{color:var(--text);font-weight:600;}
/* pacto */
.jf .pacto-hero{text-align:center;padding:22px 18px 18px;border-radius:16px;
  background:radial-gradient(circle at 50% 22%, rgba(140,15,15,.38), transparent 62%),
  linear-gradient(180deg,#1a0808,#0b0505);border:1px solid rgba(255,59,59,.32);}
.jf .ph-n{font-family:var(--font-stat);font-size:21px;font-weight:800;margin-top:11px;}
.jf .ph-f{font-size:12.5px;color:var(--dim);font-style:italic;margin-top:5px;}
.jf .ph-meta{margin-top:18px;padding:13px;border-radius:12px;background:rgba(0,0,0,.35);border:1px solid var(--border);text-align:left;}
.jf .ph-meta .k{display:block;font-family:var(--font-stat);font-size:9px;font-weight:800;letter-spacing:1.6px;color:#ff8a8a;}
.jf .ph-meta .v{display:block;font-size:14px;font-weight:700;margin-top:5px;line-height:1.4;}
.jf .ph-row{display:flex;align-items:baseline;gap:12px;margin-top:11px;font-size:12px;color:var(--dim);text-align:left;}
.jf .ph-row b{margin-left:auto;text-align:right;color:var(--text);font-weight:600;}
.jf .clausulas{margin-top:20px;}
.jf .clausula{display:flex;gap:13px;font-size:12.5px;color:var(--dim);padding:10px 0;
  border-bottom:1px solid var(--border);line-height:1.5;}
.jf .clausula:last-child{border-bottom:0;}
.jf .clausula .n{font-family:var(--font-stat);font-size:10px;font-weight:800;color:var(--dim2);
  flex:none;width:26px;text-align:right;padding-top:2px;}
.jf .clausula b{color:var(--text);}
.jf .metas{display:flex;flex-direction:column;gap:9px;}
.jf .meta-fila{display:flex;align-items:center;gap:10px;}
.jf .mf-n{width:26px;height:26px;flex:none;border-radius:8px;background:var(--card2);border:1px solid var(--border);
  display:grid;place-items:center;font-family:var(--font-stat);font-size:11px;font-weight:800;color:var(--dim2);}
.jf .meta-fila .inp{flex:1;min-width:0;font-size:14.5px;padding:12px 13px;}
.jf .mf-x{width:30px;height:30px;flex:none;border-radius:9px;border:1px solid var(--border);background:none;
  color:var(--dim2);font-size:17px;line-height:1;}
.jf .mf-x:hover{color:var(--red);border-color:rgba(255,59,59,.4);}
.jf .anadir{width:100%;margin-top:10px;padding:12px;border-radius:12px;border:1px dashed var(--border);
  background:none;color:var(--dim);font-size:12.5px;font-weight:700;}
.jf .anadir:hover{color:var(--text);border-color:var(--dim2);}
.jf .reparto{margin-top:16px;}
.jf .rep-barras{display:flex;gap:4px;height:7px;margin-bottom:10px;}
.jf .rep-barras i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#c21f1f,#ff5b5b);}
.jf .rep-nota{font-size:12px;color:var(--dim2);line-height:1.6;}
.jf .rep-nota b{color:var(--dim);}
.jf .rep-nota.rep-ok{color:#bfe8d6;}
.jf .rep-nota.rep-ok b{color:var(--green);}
.jf .rep-nota.rep-av{color:#ffe6ac;}
.jf .rep-nota.rep-av b{color:var(--gold);}
.jf .sem-fila{display:flex;align-items:center;gap:9px;margin-bottom:10px;}
.jf .sem-fila .inp{flex:1;min-width:0;}
.jf .sem-fila .sf-v{flex:0 0 32%;min-width:0;background:var(--card2);color:var(--dim);
  border:1px solid var(--border);border-radius:9px;padding:9px;font-size:11.5px;font-family:inherit;}
.jf .sf-m{display:flex;align-items:center;gap:9px;margin-bottom:7px;font-size:12.5px;color:var(--dim);}
.jf .sf-n{width:20px;height:20px;flex:none;border-radius:6px;background:var(--card2);border:1px solid var(--border);
  display:grid;place-items:center;font-family:var(--font-stat);font-size:9.5px;font-weight:800;color:var(--dim2);}
.jf .ph-meta .v-li{display:flex;gap:10px;font-size:13px;font-weight:600;margin-top:8px;line-height:1.4;}
.jf .ph-meta .v-li i{flex:none;font-style:normal;font-family:var(--font-stat);font-size:11px;font-weight:800;
  color:#ff8a8a;width:34px;}
/* ═══════════ DIAGNÓSTICO · FORJA · CAMBIO DE ARQUETIPO ═══════════ */
.jf .dg-txt{width:100%;min-height:96px;resize:vertical;padding:14px;border-radius:13px;background:#0d0d10;
  border:1px solid var(--border);color:var(--text);font:inherit;font-size:14.5px;line-height:1.55;}
.jf .dg-txt:focus{outline:none;border-color:rgba(255,59,59,.5);box-shadow:0 0 0 3px rgba(255,59,59,.09);}
.jf .dg-txt::placeholder{color:var(--dim2);}
.jf .dg-espera{margin-top:16px;padding:16px;border-radius:14px;border:1px dashed var(--border);
  font-size:12.5px;color:var(--dim2);line-height:1.6;text-align:center;}
.jf .dg-res{margin-top:18px;border-radius:16px;padding:18px 16px 16px;position:relative;
  background:radial-gradient(circle at 50% 18%, rgba(140,15,15,.3), transparent 62%),
  linear-gradient(180deg,#1a0808,#0b0505);border:1px solid rgba(255,59,59,.3);
  animation:dgIn .34s cubic-bezier(.2,.9,.3,1);}
@keyframes dgIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.jf .dg-res.duda{background:linear-gradient(180deg,#1a1508,#0b0905);border-color:rgba(255,207,77,.3);}
.jf .dg-res.nadie{background:linear-gradient(180deg,#141418,#0b0b0e);border-color:var(--border);}
.jf .dg-top{display:flex;gap:14px;align-items:center;}
.jf .dg-art{width:74px;flex:none;display:grid;place-items:center;}
.jf .dg-txtcol{flex:1;min-width:0;}
.jf .dg-k{display:block;font-family:var(--font-stat);font-size:9px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:#ff8a8a;}
.jf .dg-res.duda .dg-k{color:var(--gold);}
.jf .dg-res.nadie .dg-k{color:var(--dim2);}
.jf .dg-n{display:block;font-family:var(--font-stat);font-size:18px;font-weight:800;margin-top:5px;letter-spacing:-.3px;}
.jf .dg-d{display:block;font-size:12.5px;color:var(--dim);line-height:1.5;margin-top:5px;}
.jf .dg-prueba{margin-top:15px;padding:12px 13px;border-radius:12px;background:rgba(0,0,0,.4);
  border:1px solid var(--border);font-size:12px;color:var(--dim);line-height:1.9;}
.jf .dg-prueba .pk{display:block;font-family:var(--font-stat);font-size:8.5px;font-weight:800;letter-spacing:1.4px;
  color:var(--dim2);text-transform:uppercase;margin-bottom:8px;}
.jf .dg-chip{display:inline-block;padding:3px 9px;border-radius:20px;margin:0 5px 0 0;
  background:rgba(255,59,59,.12);border:1px solid rgba(255,59,59,.3);color:#ffb3b3;
  font-size:11.5px;font-weight:600;}
.jf .dg-alt{margin-top:12px;font-size:12px;color:var(--dim2);display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.jf .dg-alt button{padding:6px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);
  color:var(--dim);font-size:12px;font-weight:700;}
.jf .dg-alt button:hover{color:var(--text);border-color:var(--dim2);}
.jf .dg-acc{display:flex;gap:9px;margin-top:14px;}
.jf .dg-acc button{flex:1;padding:11px;border-radius:12px;border:1px dashed var(--border);background:none;
  color:var(--dim);font-size:12.5px;font-weight:700;}
.jf .dg-acc button:hover{color:var(--text);border-color:var(--dim2);}
.jf .dg-nada{display:block;width:100%;margin-top:11px;padding:6px;background:none;border:0;
  color:var(--dim2);font-size:11.5px;text-decoration:underline;text-underline-offset:3px;}
.jf .dg-nada:hover{color:var(--dim);}
.jf .fj-btn{width:100%;margin-top:11px;padding:13px;border-radius:13px;background:linear-gradient(180deg,#2a1010,#180909);
  border:1px solid rgba(255,59,59,.42);color:#ffb3b3;font-family:var(--font-stat);font-size:12.5px;
  font-weight:800;letter-spacing:.4px;display:flex;align-items:center;justify-content:center;gap:9px;}
.jf .fj-btn svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;}
.jf .card.hero{position:relative;}
.jf .fj-btn:hover{border-color:rgba(255,59,59,.75);color:#fff;}
.jf .fj-btn .nv{font-family:inherit;font-size:8.5px;letter-spacing:1.4px;color:var(--gold);
  border:1px solid rgba(255,207,77,.4);border-radius:20px;padding:2px 7px;background:rgba(255,207,77,.09);}
.jf .fj-cab{padding:13px 14px;border-radius:13px;background:var(--card);border:1px solid var(--border);
  font-size:12.5px;color:var(--dim);line-height:1.6;margin-bottom:16px;}
.jf .fj-cab b{color:var(--text);}
.jf .fj-formas{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:6px;}
.jf .fj-f{padding:12px 6px 10px;border-radius:13px;background:var(--card);border:1px solid var(--border);
  color:var(--dim2);display:flex;flex-direction:column;align-items:center;gap:8px;transition:.16s;}
.jf .fj-f:hover{border-color:var(--dim2);}
.jf .fj-f.on{border-color:rgba(255,59,59,.55);background:linear-gradient(160deg,rgba(255,59,59,.11),var(--card));color:var(--text);}
.jf .fj-f .fa{height:56px;display:grid;place-items:center;}
.jf .fj-f .fn{font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:.6px;}
.jf .volver-diag{width:100%;margin-top:14px;padding:11px;border-radius:12px;border:1px dashed var(--border);
  background:none;color:var(--dim2);font-size:12px;font-weight:700;}
.jf .volver-diag:hover{color:var(--text);border-color:var(--dim2);}
.jf .hmas{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:11px;z-index:4;
  border:1px solid var(--border);background:rgba(0,0,0,.4);color:var(--dim2);
  font-size:17px;line-height:1;letter-spacing:1px;display:grid;place-items:center;}
.jf .hmas:hover{color:var(--text);border-color:var(--dim2);}
.jf .camb{position:fixed;inset:0;z-index:120;display:none;}
.jf .camb.on{display:block;}
.jf .camb .velo{position:absolute;inset:0;width:100%;height:100%;background:rgba(0,0,0,.72);border:0;
  backdrop-filter:blur(3px);}
.jf .camb .hoja{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 40px));
  max-height:86vh;overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:20px;
  padding:24px;animation:dgIn .28s cubic-bezier(.2,.9,.3,1);}
.jf .camb h3{font-family:var(--font-stat);font-size:19px;font-weight:800;letter-spacing:-.3px;}
.jf .camb .cs{font-size:12.5px;color:var(--dim);line-height:1.65;margin-top:8px;margin-bottom:6px;}
.jf .camb .cs b{color:var(--text);}
.jf .camb .garantia{display:flex;gap:11px;align-items:center;padding:12px 13px;border-radius:12px;
  background:rgba(52,211,153,.07);border:1px solid rgba(52,211,153,.28);margin:14px 0 18px;
  font-size:12px;color:#bfe8d6;line-height:1.5;}
.jf .camb .garantia b{color:var(--green);}
.jf .camb .garantia svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--green);stroke-width:2;}
.jf .camb .cerrar{width:100%;margin-top:8px;padding:12px;border-radius:12px;border:1px solid var(--border);
  background:none;color:var(--dim);font-size:13px;font-weight:700;}
.jf .camb .cerrar:hover{color:var(--text);}
/* ═══════════ CRIBA DE SALUD ═══════════ */
.jf .salud{margin-top:18px;border-radius:16px;padding:20px 18px;
  background:linear-gradient(180deg,#0f1418,#0b0d10);border:1px solid rgba(120,170,200,.22);
  animation:dgIn .34s cubic-bezier(.2,.9,.3,1);}
.jf .salud .sk{display:block;font-family:var(--font-stat);font-size:9px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:#8fb8cc;}
.jf .salud h4{font-size:17px;font-weight:700;margin-top:8px;line-height:1.35;letter-spacing:-.2px;}
.jf .salud p{font-size:13px;color:var(--dim);line-height:1.7;margin-top:11px;}
.jf .salud p b{color:var(--text);}
.jf .salud .opciones{display:flex;flex-direction:column;gap:9px;margin-top:18px;}
.jf .salud .opciones button{padding:13px;border-radius:12px;border:1px solid rgba(120,170,200,.3);
  background:rgba(120,170,200,.07);color:#cfe4ee;font-size:13px;font-weight:700;text-align:left;}
.jf .salud .opciones button:hover{border-color:rgba(120,170,200,.6);color:#fff;}
.jf .salud .opciones button.tenue{border-style:dashed;border-color:var(--border);background:none;color:var(--dim2);font-weight:600;}
.jf .salud .opciones button.tenue:hover{color:var(--dim);border-color:var(--dim2);}
.jf .salud .pie{font-size:11.5px;color:var(--dim2);line-height:1.6;margin-top:16px;
  padding-top:14px;border-top:1px solid var(--border);}
/* ═══════════ JEFE DE RESCATE ═══════════ */
.jf .resc{margin-top:18px;border-radius:16px;padding:18px 16px;
  background:radial-gradient(circle at 50% 20%, rgba(255,122,59,.22), transparent 64%),
  linear-gradient(180deg,#1a1008,#0b0705);border:1px solid rgba(255,122,59,.34);
  animation:dgIn .34s cubic-bezier(.2,.9,.3,1);}
.jf .resc .dg-k{color:var(--ascua,#ff9d5c);}
.jf .resc .rlin{display:flex;gap:14px;align-items:center;}
.jf .resc .rart{width:78px;flex:none;display:grid;place-items:center;}
.jf .resc .rn{display:block;font-family:var(--font-stat);font-size:18px;font-weight:800;margin-top:5px;}
.jf .resc .rd{display:block;font-size:12.5px;color:var(--dim);line-height:1.5;margin-top:5px;}
.jf .resc .rpacto{margin-top:15px;padding:12px 13px;border-radius:12px;background:rgba(0,0,0,.4);
  border:1px solid var(--border);}
.jf .resc .rpacto .rl{display:flex;gap:10px;font-size:12px;color:var(--dim);padding:5px 0;line-height:1.5;}
.jf .resc .rpacto .rl i{flex:none;font-style:normal;color:#ff9d5c;font-weight:800;}
.jf .resc .rpacto .rl b{color:var(--text);}
/* ═══════════ BAUTIZO PROGRESIVO DEL INNOMINADO ═══════════ */
.jf .forma{margin-top:16px;border-radius:14px;padding:14px 15px;background:rgba(0,0,0,.32);
  border:1px solid var(--border);}
.jf .forma .fh{display:flex;align-items:baseline;gap:10px;}
.jf .forma .fk{font-family:var(--font-stat);font-size:9px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:#8A8A93;}
.jf .forma .fd{margin-left:auto;font-family:var(--font-stat);font-size:11px;color:var(--dim2);}
.jf .forma .fbar{height:6px;border-radius:4px;background:#141418;margin-top:11px;overflow:hidden;}
.jf .forma .fbar i{display:block;height:100%;border-radius:4px;
  background:linear-gradient(90deg,#4A4350,#8A8A93);transition:width .5s cubic-bezier(.2,.9,.3,1);}
.jf .forma .ft{font-size:12px;color:var(--dim2);line-height:1.6;margin-top:10px;}
.jf .forma .ft b{color:var(--dim);}
.jf .sosp{margin-top:16px;border-radius:16px;padding:17px 16px;
  background:linear-gradient(180deg,#1a1508,#0b0905);border:1px solid rgba(255,207,77,.36);
  animation:dgIn .4s cubic-bezier(.2,.9,.3,1);}
.jf .sosp .sk{display:block;font-family:var(--font-stat);font-size:9px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--gold);}
.jf .sosp .sq{font-size:15px;font-weight:600;line-height:1.55;margin-top:9px;}
.jf .sosp .sq b{color:var(--gold);}
.jf .sosp .spr{font-size:12px;color:var(--dim);line-height:1.65;margin-top:10px;
  padding:11px 12px;border-radius:11px;background:rgba(0,0,0,.4);border:1px solid var(--border);}
.jf .sosp .sacc{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.jf .sosp .sacc button{flex:1;min-width:120px;padding:11px;border-radius:12px;font-size:12.5px;font-weight:700;
  border:1px solid var(--border);background:var(--card);color:var(--dim);}
.jf .sosp .sacc button.si{background:linear-gradient(180deg,#3a2e0c,#241d07);border-color:rgba(255,207,77,.5);color:#ffe6ac;}
.jf .sosp .sacc button:hover{color:var(--text);border-color:var(--dim2);}
.jf .sosp .sacc button.si:hover{border-color:var(--gold);color:#fff;}
.jf border-top:1px dashed var(--border);}
  color:var(--dim2);text-transform:uppercase;margin-right:4px;}
  color:var(--dim2);font-size:11px;font-weight:700;}
.fj-btn.rojo{background:linear-gradient(180deg,#4a1212,#2a0b0b);border-color:var(--red);color:#fff;
  box-shadow:0 0 22px rgba(255,59,59,.2);}
.jf .fj-btn.rojo:hover{box-shadow:0 0 30px rgba(255,59,59,.35);}
/* ═══════════════ VIDA · animaciones idle ═══════════════
   El latido va en el NÚCLEO, no en el cuerpo: son criaturas de piedra
   y flotar contradice el material. Como el núcleo está pintado dentro
   del PNG, se pulsa brightness + drop-shadow sobre toda la imagen — el
   efecto se concentra solo donde ya hay luz, que es justo el núcleo.
   Y el ritmo cuenta el estado: lento con la vida alta, acelerado según
   baja. La animación informa, no decora.                            */
.jf .viva{display:grid;place-items:center;transform-origin:50% 92%;}
.jf .viva>img{animation:late var(--lat,2.4s) ease-in-out infinite;}
@keyframes late{0%,100%{filter:brightness(1) saturate(1) drop-shadow(0 8px 20px rgba(0,0,0,.5));
          transform:scale(1);}
  46%    {filter:brightness(1.26) saturate(1.15) drop-shadow(0 8px 20px rgba(0,0,0,.5))
                 drop-shadow(0 0 26px var(--aura,rgba(255,59,59,.75)))
                 drop-shadow(0 0 52px var(--aura,rgba(255,59,59,.45)));
          transform:scale(1.022);}
  60%    {filter:brightness(1.06) saturate(1.04) drop-shadow(0 8px 20px rgba(0,0,0,.5))
                 drop-shadow(0 0 14px var(--aura,rgba(255,59,59,.4)));
          transform:scale(1.006);}}
/* piedra: no flota, aguanta. Un temblor corto y espaciado */
.jf .anim-tiembla{animation:tiembla 4.5s ease-in-out infinite;}
@keyframes tiembla{0%,70%,100%{transform:translate(0,0) rotate(0)}
  74%{transform:translate(-4px,2px) rotate(-.6deg)}
  78%{transform:translate(4px,-2px) rotate(.6deg)}
  82%{transform:translate(-3px,1px) rotate(-.4deg)}
  86%{transform:translate(2px,0) rotate(.25deg)}
  92%{transform:translate(-1px,0) rotate(0)}}
/* la Hidra sí se mueve: cuellos oscilando */
.jf .anim-oscila{animation:oscila 5.5s ease-in-out infinite;}
@keyframes oscila{0%,100%{transform:rotate(-2.8deg) translateY(0)}50%{transform:rotate(2.8deg) translateY(-4px)}}
/* la Niebla es lo único que puede flotar: no tiene cuerpo */
.jf .anim-flota{animation:flota 5s ease-in-out infinite;}
@keyframes flota{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-14px) scale(1.015)}}
/* el Parásito es carne: respira */
.jf .anim-respira{animation:respira 3.6s ease-in-out infinite;}
@keyframes respira{0%,100%{transform:scale(1,1)}50%{transform:scale(.982,1.05)}}
@media (prefers-reduced-motion:reduce){
.jf .anim-tiembla,.jf .anim-oscila,.jf .anim-flota,.jf .anim-respira{animation:none!important;}
/* el latido se queda: es luz, no desplazamiento — no marea, y sin él el
     jefe parece muerto en sistemas con las animaciones reducidas. */
.jf .viva>img{animation-duration:4s!important;}
}
.jf padding:9px 12px;border:1px solid var(--border);border-radius:12px;background:var(--card);}
  border-radius:8px;padding:6px 10px;font:600 12px/1.2 var(--font-stat);cursor:pointer}

.deMetas{border:1px solid var(--border);border-radius:12px;background:#14141a;padding:14px 16px;margin-bottom:12px}
.jf .deMetas .dm-k{display:block;font:700 10px/1 var(--font-stat);letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);opacity:.9;margin-bottom:9px}
.jf .deMetas .dm-l{margin:0;padding-left:20px}
.jf .deMetas .dm-l li{margin:5px 0;font-size:14px}
.jf .deMetas .dm-r{margin-top:11px;padding-top:10px;border-top:1px solid var(--border);
  font:600 12px/1.4 var(--font-stat);opacity:.75}
.jf .origen{display:inline-flex;align-items:center;gap:6px;margin-top:8px;cursor:pointer;
  font:600 10px/1 var(--font-stat);letter-spacing:.09em;text-transform:uppercase;
  color:var(--gold);opacity:.75;background:none;border:0;padding:0}
.jf .origen:hover{opacity:1;text-decoration:underline}


/* ── Integración con la app ── */
.jf.jefes-page{display:flex;flex-direction:column;gap:16px;}
/* Tarjeta del Portal: el contrato es 456×460 (columna C a 1920 px). En
   pantallas donde la columna es más estrecha o más baja, ocupa la columna. */
.portal-col-c.jf > .centinela-card{width:100%;height:100%;max-width:none;}
@media(max-width:1180px){.portal-col-c.jf > .centinela-card{height:460px;order:3;}}

/* ── Tarjeta del Centinela en el Portal (v2): sprite centrado, vida debajo ── */
.jf .centinela-card.cc-v2{gap:0;}
.jf .cc-v2 .cc-escena{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:6px 0;}
.jf .cc-v2 .cc-escena img{max-height:100%;max-width:70%;width:auto;height:auto;display:block;}
.jf .cc-vida{flex:none;margin-top:6px;}
.jf .cc-vida-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;
  font-family:var(--font-stat);font-size:10px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--dim2);}
.jf .cc-vida-h span:first-child{color:var(--text);letter-spacing:.4px;text-transform:none;font-size:13px;}
.jf .cc-vida-bar{height:8px;border-radius:5px;background:#1a1408;border:1px solid rgba(255,207,77,.18);overflow:hidden;}
.jf .cc-vida-bar i{display:block;height:100%;border-radius:inherit;
  background:linear-gradient(90deg,rgba(255,207,77,.55),var(--gold));transition:width .6s cubic-bezier(.22,.9,.24,1);}
.jf .cc-v2 .cc-next{margin-top:12px;flex:none;}
.jf .cc-link{background:none;border:0;padding:0;margin-top:4px;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--dim);}
.jf .cc-link:hover{color:var(--text);}
.jf .centinela-card.cc-v2.ganada .cc-vida-h span:last-child{color:var(--gold);}
