/* ═══════════════════════════════════════════════════════════
   PARTE E · "Aullido Violeta" — stats, comparador, objetos, modal.
   Consola gamer: negro puro + violeta neón + blanco. Carga la última.
   ═══════════════════════════════════════════════════════════ */

/* ── Calculadora / comparador (consola oscura) ── */
.calc-two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.calc-box{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}

.calc-panel{
  position:relative;overflow:hidden;
  background:
    linear-gradient(165deg,rgba(26,15,48,.72),rgba(8,4,15,.94));
  border:1px solid var(--line2);border-radius:var(--r);padding:22px 20px;
  box-shadow:inset 0 1px 0 rgba(199,125,255,.08),0 14px 40px -22px #000;
}
/* borde neón sutil vía máscara */
.calc-panel::after{
  content:"";position:absolute;inset:0;border-radius:var(--r);padding:1px;pointer-events:none;
  background:linear-gradient(160deg,var(--violet),transparent 42%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;
}
/* barra superior de "consola" */
.calc-panel::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--neon),var(--violet-br),transparent);
  opacity:.7;
}
.calc-panel h3{
  font-family:var(--font-deco);font-size:15px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;color:var(--white);
  text-shadow:0 0 12px var(--glow-soft);margin-bottom:14px;
}

/* ── Campos (inputs con foco neón) ── */
.field{margin-bottom:13px}
.field label{
  display:block;font-family:var(--font-num);font-size:11px;font-weight:600;
  color:var(--amethyst);margin-bottom:5px;text-transform:uppercase;letter-spacing:1.6px;
}
.field select,.field input{
  width:100%;background:var(--ink2);border:1px solid var(--line);color:var(--white);
  padding:10px 12px;border-radius:var(--r-sm);font-size:14px;font-family:var(--font-body);
  transition:border-color .16s,box-shadow .16s,background .16s;outline:none;
}
.field select:hover,.field input:hover{border-color:var(--line2)}
.field select:focus,.field input:focus{
  border-color:var(--violet);background:var(--ink3);
  box-shadow:0 0 0 3px var(--glow-soft),0 0 16px -2px var(--glow);
}

/* ── IV / EV grid ── */
.iv-ev{display:grid;grid-template-columns:66px 1fr 1fr;gap:8px;align-items:center;margin-bottom:6px}
.iv-ev .stat-name{
  font-family:var(--font-num);font-size:13px;font-weight:600;
  letter-spacing:.5px;color:var(--muted);
}
.iv-ev input{
  width:100%;background:var(--ink2);border:1px solid var(--line);color:var(--white);
  padding:7px 9px;border-radius:7px;font-size:13px;font-family:var(--font-num);
  font-variant-numeric:tabular-nums;text-align:center;outline:none;
  transition:border-color .16s,box-shadow .16s,background .16s;
}
.iv-ev input:hover{border-color:var(--line2)}
.iv-ev input:focus{
  border-color:var(--violet);background:var(--ink3);
  box-shadow:0 0 0 2px var(--glow-soft),0 0 12px -3px var(--glow);
}
/* limpia flechas nativas de number */
.iv-ev input::-webkit-outer-spin-button,
.iv-ev input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.iv-ev input[type=number]{-moz-appearance:textfield}

/* ── Resultado: barras que brillan en violeta neón ── */
.result-stat{display:grid;grid-template-columns:56px 1fr 62px;gap:11px;align-items:center;margin-bottom:9px}
.result-stat .stat-name{
  font-family:var(--font-num);font-size:14px;font-weight:600;
  letter-spacing:.5px;color:var(--muted);
}
.result-stat .bar{
  height:11px;background:var(--ink);border-radius:6px;overflow:hidden;
  box-shadow:inset 0 1px 3px #000,inset 0 0 0 1px var(--line);position:relative;
}
.result-stat .bar span{
  display:block;height:100%;border-radius:6px;position:relative;
  background:linear-gradient(90deg,var(--violet-lo),var(--violet),var(--violet-br));
  box-shadow:0 0 10px var(--glow),0 0 3px var(--violet-br);
  transition:width .7s cubic-bezier(.2,.8,.2,1);
}
.result-stat .bar span::after{
  content:"";position:absolute;inset:0;border-radius:6px;
  background:linear-gradient(rgba(255,255,255,.4),transparent 55%);
}
.result-stat .big{
  font-family:var(--font-num);font-size:19px;font-weight:700;text-align:right;
  color:var(--white);font-variant-numeric:tabular-nums;text-shadow:0 0 10px var(--glow-soft);
}

/* ── Comparador: barras enfrentadas neón vs. lavanda ── */
.cmp-grid{display:grid;grid-template-columns:1fr 64px 1fr;gap:10px;align-items:center}
.cmp-bar{
  height:19px;background:var(--ink);border-radius:6px;position:relative;overflow:hidden;
  box-shadow:inset 0 1px 3px #000,inset 0 0 0 1px var(--line);
}
.cmp-bar span{position:absolute;top:0;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.cmp-bar.l span{
  right:0;border-radius:6px 0 0 6px;
  background:linear-gradient(90deg,var(--violet-lo),var(--violet));
  box-shadow:0 0 10px var(--glow);
}
.cmp-bar.r span{
  left:0;border-radius:0 6px 6px 0;
  background:linear-gradient(90deg,var(--amethyst),var(--violet-br));
  box-shadow:0 0 10px var(--glow-soft);
}
.cmp-lbl{
  text-align:center;font-family:var(--font-num);font-size:14px;font-weight:600;
  letter-spacing:.5px;color:var(--muted);line-height:1.35;
}

/* ── Objetos (tarjetas limpias, .tag violeta neón) ── */
.item-card{
  position:relative;overflow:hidden;
  background:linear-gradient(165deg,rgba(24,14,44,.7),rgba(8,4,15,.9));
  border:1px solid var(--line);border-radius:var(--r-sm);padding:15px 16px;
  transition:transform .16s,border-color .16s,box-shadow .16s;
}
.item-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,var(--neon),var(--violet-lo));
  opacity:0;transition:opacity .18s;
}
.item-card:hover{
  transform:translateY(-3px);border-color:var(--violet-lo);
  box-shadow:0 14px 34px -18px #000,0 0 0 1px var(--glow-soft);
}
.item-card:hover::before{opacity:.9}
.item-card h4{
  font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:.5px;
  color:var(--white);display:flex;justify-content:space-between;align-items:center;gap:8px;
}
.item-card .tag{
  font-family:var(--font-num);font-size:10px;font-weight:700;letter-spacing:.8px;
  text-transform:uppercase;white-space:nowrap;color:var(--white);
  padding:3px 10px;border-radius:20px;
  background:linear-gradient(135deg,var(--neon-2),var(--neon));
  box-shadow:0 0 12px var(--glow-soft),inset 0 1px 0 rgba(255,255,255,.25);
}
.item-card p{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.5}

/* ── Etiqueta de categoría (línea que se desvanece) ── */
.cat-label{
  font-family:var(--font-deco);font-size:19px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;color:var(--white);
  text-shadow:0 0 14px var(--glow-soft);
  margin:30px 0 15px;display:flex;align-items:center;gap:12px;
}
.cat-label::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(90deg,var(--violet),transparent);
  box-shadow:0 0 8px var(--glow-soft);
}

/* ── Modal (selector Pokémon: borde neón + fondo oscurísimo) ── */
.modal{
  position:fixed;inset:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;
  padding:60px 20px;overflow-y:auto;
  background:radial-gradient(60% 60% at 50% 0%,rgba(30,10,55,.55),rgba(3,2,7,.9));
  backdrop-filter:blur(9px) saturate(1.1);
  animation:eModalIn .28s ease both;
}
@keyframes eModalIn{from{opacity:0}to{opacity:1}}
.modal-box{
  position:relative;width:100%;max-width:840px;padding:24px;
  background:linear-gradient(165deg,rgba(19,11,36,.96),rgba(6,3,12,.98));
  border:1px solid var(--line2);border-radius:var(--r);
  box-shadow:0 30px 80px -30px #000,0 0 0 1px var(--glow-soft),0 0 60px -18px var(--glow);
  animation:eBoxIn .3s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes eBoxIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
/* borde neón animado por máscara */
.modal-box::after{
  content:"";position:absolute;inset:0;border-radius:var(--r);padding:1.5px;pointer-events:none;
  background:linear-gradient(140deg,var(--violet-br),var(--neon) 45%,transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
}
.modal-box h3{
  font-family:var(--font-deco);font-size:18px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;color:var(--white);
  text-shadow:0 0 14px var(--glow-soft);
}
.modal-box .close{
  float:right;display:grid;place-items:center;width:34px;height:34px;
  background:var(--ink2);border:1px solid var(--line2);border-radius:9px;
  color:var(--violet-br);font-size:18px;line-height:1;cursor:pointer;
  transition:.15s;
}
.modal-box .close:hover{
  border-color:var(--violet);color:var(--white);
  background:var(--violet-lo);box-shadow:0 0 16px -2px var(--glow);transform:rotate(90deg);
}

/* ── Responsive (mis componentes) ── */
@media(max-width:860px){
  .calc-two,.calc-box{grid-template-columns:1fr;gap:18px}
  .modal{padding:40px 14px}
  .modal-box{padding:18px}
}
@media(max-width:520px){
  .iv-ev{grid-template-columns:52px 1fr 1fr;gap:6px}
  .result-stat{grid-template-columns:48px 1fr 52px;gap:9px}
  .cmp-grid{grid-template-columns:1fr 58px 1fr;gap:7px}
}

/* ── Respeta reduce-motion en mis animaciones ── */
@media(prefers-reduced-motion:reduce){
  .modal,.modal-box{animation:none}
  .result-stat .bar span,.cmp-bar span,.item-card,
  .field select,.field input,.iv-ev input,.modal-box .close{transition:none}
}

/* ── Objetos clicables + modal de crafteo ── */
.item-card{cursor:pointer}
.item-card.craftable::after{content:"";position:absolute;right:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--neon),var(--violet-lo));opacity:.7}
.craft-hint{display:inline-block;margin-top:9px;font-family:var(--font-num);font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--violet-br);text-shadow:0 0 8px var(--glow-soft)}
.item-modal .tag{font-size:10px}
.modal-desc{color:var(--muted);font-size:14px;line-height:1.55;margin:6px 0 16px}

/* icono pokeball */
.ball-ico{display:inline-block;width:22px;height:22px;border-radius:50%;border:2px solid #08060d;position:relative;overflow:hidden;background:#f4f2fa;vertical-align:middle;box-shadow:0 0 10px var(--glow-soft),inset 0 -2px 4px rgba(0,0,0,.25);flex-shrink:0}
.ball-ico::before{content:"";position:absolute;inset:0 0 50% 0;background:var(--bc)}
.ball-ico::after{content:"";position:absolute;top:50%;left:-2px;right:-2px;height:3px;transform:translateY(-50%);background:#08060d;box-shadow:0 0 0 2px #08060d}
.ball-ico.sm{width:15px;height:15px;margin-right:7px;border-width:1.5px}
.ball-ico.lg{width:46px;height:46px;border-width:3px}
.ball-ico.lg::after{height:5px}

/* crafteo */
.craft-wrap{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin:6px 0 18px}
.craft-grid{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:5px;padding:8px;background:linear-gradient(160deg,#2a2438,#171122);border:2px solid var(--line2);border-radius:12px;box-shadow:inset 0 2px 8px rgba(0,0,0,.6)}
.craft-cell{background:#0d0a17;border:1px solid var(--line);border-radius:7px;display:grid;place-items:center;font-family:var(--font-num);font-weight:800;font-size:14px;color:#0d0a17}
.craft-cell.filled{background:var(--ic);border-color:rgba(255,255,255,.25);box-shadow:inset 0 2px 4px rgba(255,255,255,.35),inset 0 -3px 5px rgba(0,0,0,.4);position:relative}
.craft-cell.filled:not(.ingot){border-radius:50%}
.craft-cell.filled:not(.ingot) .apr{position:absolute;top:5px;left:9px;width:7px;height:5px;background:#3f8a3a;border-radius:0 60% 60% 0;transform:rotate(-30deg);box-shadow:0 0 3px rgba(0,0,0,.3)}
.craft-cell.ingot{color:#0d0a17;text-shadow:0 1px 0 rgba(255,255,255,.4)}
.craft-arrow{font-size:26px;color:var(--violet-br);text-shadow:0 0 12px var(--glow)}
.craft-out{display:flex;flex-direction:column;align-items:center;gap:6px}
.craft-out b{font-family:var(--font-num);font-size:18px;color:var(--white)}
.craft-ings{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:center;margin:4px 0 14px}
.craft-ings .ing{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--silver)}
.craft-ings .ing i{width:14px;height:14px;border-radius:4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 4px rgba(0,0,0,.4)}
.craft-note{font-size:12.5px;color:var(--muted);line-height:1.55;background:rgba(176,38,255,.07);border-left:3px solid var(--violet-lo);border-radius:0 8px 8px 0;padding:10px 13px}
.craft-note b{color:var(--amethyst)}
.obtain-note{font-size:13.5px;color:var(--silver);line-height:1.6;background:rgba(255,122,26,.08);border-left:3px solid #ff7a1a;border-radius:0 8px 8px 0;padding:12px 14px}
.apr-chip{display:inline-block;width:15px;height:15px;border-radius:50%;margin-right:7px;vertical-align:middle;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -2px 3px rgba(0,0,0,.35),0 0 5px rgba(0,0,0,.4)}
.apr-chip.big{width:22px;height:22px}

/* ── Texturas reales de objetos (pixel-art) ── */
.item-tex{width:26px;height:26px;image-rendering:pixelated;vertical-align:middle;margin-right:8px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.item-tex.big{width:34px;height:34px;margin-right:10px}
.craft-cell.has-img{background:#0d0a17;padding:0;display:grid;place-items:center}
.craft-cell.has-img img{width:34px;height:34px;image-rendering:pixelated;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.craft-ings .ing img{width:20px;height:20px;image-rendering:pixelated;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}
.craft-res{width:46px;height:46px;image-rendering:pixelated;filter:drop-shadow(0 2px 6px var(--glow-soft))}
