/* =====================================================================
   ALMA E ATRIBUTOS (28/09, auditoria aprovada pelo autor)
   ---------------------------------------------------------------------
   Só apresentação: cartão do nó da Alma com letra legível (o painel usava
   7 a 9 px), legenda dos Espíritos, estados disponível/comprado distintos,
   animação de ativação, e a aba de Atributos com rascunho e prévia.
   Nenhum número de jogo mora aqui. Carregado antes do responsivo.css.
   ===================================================================== */

/* ---------- ALMA: topo ---------- */
.soul-como summary{cursor:pointer;color:#c9a8f5;font-size:calc(12px * var(--text-scale,1));font-weight:700;letter-spacing:.3px;margin-top:4px}
.soul-como[open] summary{margin-bottom:4px}
.soul-daily-panel .soul-daily-track{display:none!important}
.soul-points-banner{margin:0 0 10px;padding:9px 12px;border:1px solid #3d3350;border-radius:9px;background:#15121c;color:#a99bbb;font-size:calc(12.5px * var(--text-scale,1))}
.soul-points-banner.has-points{border-color:#7a57b3;background:linear-gradient(90deg,#2a1d40,#18131f);color:#e4d3fb}
.soul-points-banner b{color:#fff}

/* ---------- ALMA: legenda e roda ---------- */
.soul-legend{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.soul-legend span{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 7px;border:1px solid #33293f;border-radius:99px;background:#131018;font-size:calc(11px * var(--text-scale,1));color:#b9adc9}
.soul-legend i{width:10px;height:10px;border-radius:50%;background:var(--soul-cor);box-shadow:0 0 7px var(--soul-cor)}
.soul-legend b{color:#efe4fb}
.soul-legend small{color:#8c80a0;font-size:inherit}
.soul-wheel-wrap{grid-template-columns:minmax(0,1fr) minmax(250px,300px)!important}
.soul-wheel{max-width:500px!important}
.soul-spirit-label{position:absolute;transform:translate(-50%,-50%);padding:1px 8px;border-radius:99px;background:rgba(14,11,19,.85);border:1px solid color-mix(in srgb,var(--soul-cor) 55%,transparent);color:var(--soul-cor);font-size:calc(10px * var(--text-scale,1));font-weight:800;letter-spacing:.8px;text-transform:uppercase;pointer-events:none;white-space:nowrap;z-index:1}
/* comprado e disponível eram iguais: o disponível agora pulsa com borda tracejada */
.soul-wheel-node.is-available{border-style:dashed!important;animation:almaPulsa 1.8s ease-in-out infinite}
.soul-wheel-node.is-owned.is-available{border-style:solid!important}
@keyframes almaPulsa{50%{box-shadow:0 0 0 2px rgba(255,255,255,.12),0 0 18px var(--soul-cor,#9270b1)}}
.soul-wheel-node.acabou-de-subir{animation:almaSobe .9s ease-out;z-index:3}
@keyframes almaSobe{0%{transform:translate(-50%,-50%) scale(1)}35%{transform:translate(-50%,-50%) scale(1.45);box-shadow:0 0 0 3px #fff,0 0 34px var(--soul-cor,#fff)}100%{transform:translate(-50%,-50%) scale(1.3)}}
.soul-wheel svg line.acendeu{animation:almaLinha 1s ease-out}
@keyframes almaLinha{0%{opacity:1;stroke-width:7;stroke:#fff}100%{opacity:.7;stroke-width:2.5}}

/* ---------- ALMA: cartão do nó ---------- */
.soul-detail{gap:10px!important;padding:14px!important;border-color:color-mix(in srgb,var(--soul-cor,#4e3a68) 45%,#2d2438)!important;position:relative;overflow:hidden}
.soul-detail::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--soul-cor,#9270b1);opacity:.85}
.soul-detail header span{font-size:calc(10.5px * var(--text-scale,1))!important;letter-spacing:.9px!important;text-transform:uppercase}
.soul-detail header h4{font-size:calc(17px * var(--text-scale,1))!important;margin:3px 0!important}
.soul-detail header small{font-size:calc(11.5px * var(--text-scale,1))!important;color:#a193b3!important}
.soul-detail-effect{font-size:calc(13.5px * var(--text-scale,1))!important;color:#eadcf9!important;line-height:1.45!important}
.soul-detail-effect.soul-bump{animation:almaNumero .9s ease-out}
@keyframes almaNumero{35%{color:#fff;text-shadow:0 0 12px #8fe0a0}}
.soul-detail-next{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:#100d16;font-size:calc(12.5px * var(--text-scale,1))}
.soul-detail-next span{color:#8f82a2}
.soul-detail-next strong{color:#e2c9f7;font-variant-numeric:tabular-nums}
.soul-detail-next em{font-style:normal;color:#8fe0a0}
.soul-detail-reqs{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.soul-detail-reqs li{display:flex;justify-content:space-between;gap:10px;font-size:calc(12px * var(--text-scale,1));color:#b3a6c4}
.soul-detail-reqs li b{white-space:nowrap}
.soul-detail-reqs li.ok b{color:#8fe0a0}
.soul-detail-reqs li.falta b{color:#ef8f9c}
.soul-detail-costs{display:flex!important;flex-wrap:wrap;gap:5px!important}
.soul-cost{padding:3px 8px;border:1px solid #2f2640;border-radius:6px;background:#100d16;color:#ddd0ee;font-size:calc(11.5px * var(--text-scale,1));font-variant-numeric:tabular-nums}
.soul-cost.falta{border-color:#6a2a35;color:#ffb3bc}
.soul-detail-lock{margin:0;padding:8px 10px;border:1px solid #5a3322;border-radius:8px;background:#26170f;color:#ffd0b0;font-size:calc(12px * var(--text-scale,1));line-height:1.4}
.soul-detail-buy{min-height:40px!important;font-size:calc(12px * var(--text-scale,1))!important;letter-spacing:.8px}
.soul-resonance{font-size:calc(11px * var(--text-scale,1))!important}
.soul-resonance small{font-size:calc(10px * var(--text-scale,1))!important}

@media (max-width:760px){
  .soul-wheel-wrap{grid-template-columns:1fr!important}
  /* celular: o cartão fica preso ao pé da janela enquanto a roda rola */
  .soul-detail{position:sticky;bottom:0;z-index:4;max-height:52vh;overflow:auto;box-shadow:0 -12px 30px rgba(0,0,0,.6)}
  .soul-spirit-label{font-size:calc(9px * var(--text-scale,1))}
}

/* ---------- ATRIBUTOS ---------- */
.character-modal-card .available-points-big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.attr-draft-info{color:#7fd89b;font-size:calc(12px * var(--text-scale,1));font-weight:700}
.stat-modal-row .stat-modal-value .attr-rascunho{font-style:normal;color:#7fd89b;font-weight:800;margin-left:6px;font-size:calc(14px * var(--text-scale,1))}
.stat-modal-row .attr-explica{grid-column:1/-1;margin:0;color:#b9c0cc;font-size:calc(12px * var(--text-scale,1));line-height:1.4}
.stat-modal-row .attr-botoes{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.attr-add{min-width:52px;padding:6px 10px;border:1px solid #6a5424;border-radius:7px;background:#2b2413;color:#f0cf7a;font-weight:800;font-size:calc(12px * var(--text-scale,1));cursor:pointer;font-variant-numeric:tabular-nums}
.attr-add.attr-tirar{border-color:#3a4050;background:#1b1f28;color:#9aa3b2}
.attr-add:disabled{opacity:.35;cursor:not-allowed}
.attr-add:focus-visible,.attr-confirmar:focus-visible,.attr-desfazer:focus-visible{outline:2px solid #f0cf7a;outline-offset:2px}
.attr-preview{margin:10px 0 0;padding:11px 12px;border:1px solid #2f5a3c;border-radius:9px;background:#111a15}
.attr-preview>span{display:block;margin-bottom:7px;color:#7fbf92;font-size:calc(10.5px * var(--text-scale,1));font-weight:800;letter-spacing:.9px}
.attr-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}
.attr-prev-item{display:grid;gap:1px;padding:6px 9px;border:1px solid #26352c;border-radius:7px;background:#0d1410}
.attr-prev-item span{color:#8fa597;font-size:calc(10.5px * var(--text-scale,1));text-transform:uppercase;letter-spacing:.5px}
.attr-prev-item strong{color:#e6ece8;font-size:calc(13.5px * var(--text-scale,1));font-variant-numeric:tabular-nums}
.attr-prev-item em{font-style:normal;color:#7fd89b}
.attr-prev-vazio{margin:0;color:#8fa597;font-size:calc(12px * var(--text-scale,1))}
.attr-acoes{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.attr-confirmar{flex:1 1 220px;min-height:42px;border:1px solid #d9b45c;border-radius:8px;background:linear-gradient(180deg,#8a6a26,#6a4f18);color:#fff5dc;font-weight:900;letter-spacing:.8px;cursor:pointer}
.attr-desfazer{min-height:42px;padding:0 18px;border:1px solid #3a4050;border-radius:8px;background:#1b1f28;color:#d8dde6;font-weight:800;letter-spacing:.6px;cursor:pointer}
.attr-confirmar:disabled,.attr-desfazer:disabled{opacity:.4;cursor:not-allowed}
.attr-auto{margin:10px 0;padding:8px 12px;border:1px solid #343c48;border-radius:9px;background:#141820}
.attr-auto summary{cursor:pointer;color:#d8dde6;font-weight:800;font-size:calc(12.5px * var(--text-scale,1))}
.attr-auto summary small{color:#8f98a8;font-weight:600}
.attr-auto[open] summary{margin-bottom:8px}

@media (prefers-reduced-motion:reduce){
  .soul-wheel-node.is-available,.soul-wheel-node.acabou-de-subir,.soul-wheel svg line.acendeu,.soul-detail-effect.soul-bump{animation:none!important}
}
.soul-wheel{overflow:visible}.soul-wheel-wrap .soul-wheel{margin-top:14px!important;margin-bottom:14px!important}
@media (max-width:760px){.soul-wheel-wrap .soul-wheel{width:80%!important}.soul-detail{max-height:44vh}}
