/* =====================================================================
   FERREIRO A — "Bancada". Escolha do autor na auditoria de 29/09.
   Itens em quadradinhos à esquerda (a mesma mochila do Inventário C) e a
   bancada fixa à direita: antes e depois de cada atributo, chance, o que
   acontece se falhar e o custo com o quanto você tem.
   Larguras: > 899 px itens e bancada lado a lado (a bancada nunca desce);
   < 900 px a bancada vem primeiro e "Trocar item" abre a mochila numa gaveta.
   A aba Asas não usa a mochila: suas asas à esquerda, a oficina à direita e
   a aparência (asas de temporada e molduras) dobrada numa gaveta no fim.
   Quem preenche: renderForge / renderForgeInventory / renderWingCrafting.
   ===================================================================== */
#forgeView.fx-a{--fx-card:#141a26;--fx-card2:#101723;--fx-linha:#2d3a52;--fx-ouro:#f6d58a;--fx-ouro2:#e0ad4c;--fx-tinta:#e3e9f3;--fx-mudo:#8c95a8;
  max-width:1560px;margin:0 auto;padding:12px 16px 24px;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;color:var(--fx-tinta)}
#forgeView.fx-a *{box-sizing:border-box}
#forgeView.fx-a>*{min-width:0}
#forgeView .r-common{--rc:var(--rarity-common,#a8b0bd)}#forgeView .r-uncommon{--rc:#86a84f}#forgeView .r-rare{--rc:var(--rarity-rare,#4c9bff)}
#forgeView .r-epic{--rc:var(--rarity-epic,#b36bff)}#forgeView .r-legendary{--rc:var(--rarity-legendary,#ffb02e)}#forgeView .r-ancient{--rc:#6ff0b0}

/* topo */
.fx-topo{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;padding:10px 16px;border:1px solid #6b5426;border-radius:14px;
  background:radial-gradient(120% 140% at 0% 0%,#2a2113 0%,#141a26 55%,#0e131c 100%)}
.fx-npc{width:52px;height:52px;border-radius:10px;border:1px solid #6b5426;object-fit:cover}
.fx-titulo{display:grid;gap:2px}
.fx-titulo span{font-size:calc(10.5px * var(--text-scale,1));letter-spacing:.16em;color:var(--fx-ouro2);font-weight:800}
.fx-titulo h2{margin:0;font-family:var(--font-display,Georgia,serif);font-size:calc(24px * var(--text-scale,1));color:#fff;line-height:1}
.fx-carteira{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.fx-rec{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:#0c121c;border:1px solid var(--fx-linha);
  font-size:calc(12.5px * var(--text-scale,1));font-variant-numeric:tabular-nums}
.fx-rec strong{color:#fff}
.fx-rec img{width:18px;height:18px;object-fit:contain}
#forgeView.fx-a .vendor-subtabs{margin:0}

/* corpo */
.fx-corpo{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:12px;align-items:start}
.fx-corpo>*{min-width:0}
.fx-itens,.fx-asas-minhas,.fx-asas-criar{border:1px solid var(--fx-linha);border-radius:14px;background:var(--fx-card);padding:12px}
.fx-cab{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.fx-cab h3{margin:0;font-size:calc(11px * var(--text-scale,1));letter-spacing:.16em;color:var(--fx-mudo);font-weight:800}
.fx-cab small{font-size:calc(11px * var(--text-scale,1));color:var(--fx-mudo)}
.fx-fechar{display:none}
.fx-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:7px}
.fx-slot{position:relative;aspect-ratio:1;border-radius:9px;border:1px solid color-mix(in srgb,var(--rc,#3a4660) 70%,#000);padding:0;cursor:var(--cur-mao,pointer);color:inherit;
  background:radial-gradient(90% 90% at 50% 70%,color-mix(in srgb,var(--rc,#223) 26%,#0b111a) 0%,#0b111a 75%);display:grid;place-items:center;min-width:0}
.fx-slot:hover{border-color:var(--rc,#56627a);filter:brightness(1.12)}
.fx-slot img{width:78%;height:78%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 3px #000)}
.fx-slot .emoji{font-size:30px}
.fx-slot .mais{position:absolute;right:4px;top:2px;font-size:calc(11px * var(--text-scale,1));font-weight:900;color:var(--fx-ouro);text-shadow:0 1px 2px #000}
.fx-slot .eq{position:absolute;left:5px;top:5px;width:7px;height:7px;border-radius:50%;background:#5fd07a;box-shadow:0 0 0 2px #0b111a}
.fx-slot.sel{outline:2px solid var(--fx-ouro);outline-offset:2px}
.fx-slot.off{opacity:.35}
.fx-slot.enhancement-gold{box-shadow:inset 0 0 0 1px rgba(246,213,138,.35)}

/* bancada */
/* 22/10 (autor: "rolo ela e não mostra tudo, aí preciso rolar a tela principal também"; e a roda do mouse que "travava"
   ao trocar de aba: ela caía na rolagem da bancada, que não passava para a página). Agora é UMA rolagem só: a bancada
   anda com a página e gruda quando o fim dela chega na tela (--fx-cola vem do src/ui/ferreiro-rolagem.js). */
.fx-bancada{position:sticky;top:var(--fx-cola,10px);align-self:start;
  border:1px solid #6b5426;border-radius:14px;background:linear-gradient(180deg,#171e2c,#10151f);padding:14px}
.fx-bancada>.forge-panel-group:not(.hidden){display:grid;gap:12px}
#forgeView .forge-target{margin:0;padding:0;border:0;background:none;box-shadow:none}
#forgeView .forge-target.empty-forge{padding:18px 8px;text-align:center;color:var(--fx-mudo)}
#forgeView .forge-target-identity{margin:0}
#forgeView .forge-target-art{width:78px;height:78px;border-radius:12px}
#forgeView .forge-target-name{font-size:calc(17px * var(--text-scale,1))}
#forgeView .forge-target-identity>div>div{color:var(--fx-mudo);font-size:calc(12px * var(--text-scale,1))}
.fx-trocar{display:none}
.fx-salto{display:flex;align-items:center;justify-content:center;gap:14px;font-family:var(--font-display,Georgia,serif);font-size:calc(30px * var(--text-scale,1));font-weight:700;margin-bottom:8px}
.fx-salto .de{color:var(--fx-mudo)}.fx-salto .para{color:var(--fx-ouro)}.fx-salto .seta{font-size:22px;color:var(--fx-mudo)}
.fx-previa{display:grid;gap:10px}
.fx-diff{display:grid;gap:3px;font-size:calc(13px * var(--text-scale,1));font-variant-numeric:tabular-nums}
.fx-diff div{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;padding:4px 8px;border-radius:6px;background:#0c121c}
.fx-heroi{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:4px;padding:6px 8px;border-radius:6px;background:#10221a;border:1px solid #2f6b47;font-size:calc(14px * var(--text-scale,1))}.fx-heroi b{color:#8fe3a8}
.fx-diff .v{color:var(--fx-mudo)}.fx-diff .n{color:#fff;font-weight:800}.fx-diff .g{color:#8fe3a8;font-weight:800;min-width:56px;text-align:right}
.fx-chance{display:grid;gap:5px}
.fx-chance .l{display:flex;justify-content:space-between;font-size:calc(12.5px * var(--text-scale,1))}.fx-chance .l b{color:#fff}
.fx-chance i{display:block;height:10px;border-radius:6px;background:#2a1416;overflow:hidden;border:1px solid #3b2327}
.fx-chance i em{display:block;height:100%;background:linear-gradient(90deg,#3f9d5c,#8fe3a8)}
.fx-chance small{color:#ffb3b9;font-size:calc(12px * var(--text-scale,1))}
.fx-custo{display:flex;gap:8px;flex-wrap:wrap;font-size:calc(12.5px * var(--text-scale,1))}
.fx-custo span{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:8px;background:#0c121c;border:1px solid var(--fx-linha)}
.fx-custo span.falta{border-color:#7a2f35;color:#ffc9cd}
.fx-custo img{width:18px;height:18px}.fx-custo em{font-style:normal;color:var(--fx-mudo)}
.fx-aviso{margin:0;padding:10px;border-radius:9px;background:#0c121c;border:1px solid var(--fx-linha);color:#c9d2e0;font-size:calc(12.5px * var(--text-scale,1))}
#forgeView .forge-buttons{display:grid;grid-template-columns:1fr;gap:8px;margin:0}
#forgeView .forge-buttons button{min-height:48px;border-radius:11px;font-weight:900;letter-spacing:.06em;font-size:calc(14px * var(--text-scale,1))}
#forgeView .forge-buttons button.hidden{display:none}
#forgeView #blessButton{background:linear-gradient(180deg,#6d7ef0,#3f4fb8);border:1px solid #a9b4ff;color:#fff}
#forgeView #soulButton{background:linear-gradient(180deg,#8a5ad6,#5b3499);border:1px solid #b99af0;color:#fff}
#forgeView #reforgeButton{background:var(--botao-ouro-fundo);border:1px solid var(--botao-ouro-borda);color:var(--botao-ouro-texto)}
#forgeView .forge-buttons button:disabled{opacity:.45;filter:saturate(.4);cursor:not-allowed}
#forgeView .soul-guard-option{margin:0}
.fx-regras{border:1px solid var(--fx-linha);border-radius:10px;padding:8px 10px;background:#0f1520;font-size:calc(12px * var(--text-scale,1));color:#c9d2e0}
.fx-regras summary{cursor:var(--cur-mao,pointer);color:var(--fx-mudo);font-weight:700}
.fx-regras .forge-rules{margin:8px 0 6px;display:grid;gap:4px}
.fx-regras p{margin:0;color:var(--fx-mudo)}
.fx-bloco{border:1px solid var(--fx-linha);border-radius:11px;padding:10px;display:grid;gap:8px;background:#0f1520}
.fx-bloco h4{margin:0;font-size:calc(11.5px * var(--text-scale,1));letter-spacing:.14em;color:var(--fx-ouro2)}
.fx-ops{display:grid;gap:3px;font-size:calc(12.5px * var(--text-scale,1))}.fx-ops span{padding:4px 8px;border-radius:6px;background:#0c121c;color:#b9c6ff}
/* Reforjar com joias e trava (04/10, SQL 0430) */
#forgeView .fx-reforja-botoes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
/* 22/10: botão baixo só com o nome; o custo em chips pequenos logo acima */
#forgeView .fx-reforja-op{display:grid;grid-template-rows:1fr auto;gap:6px;min-width:0}
#forgeView .fx-reforja-op>.fx-custo{align-self:end}
#forgeView .fx-reforja-op.hidden{display:none}
#forgeView .fx-reforja-op>.fx-custo{justify-content:center;gap:4px;font-size:calc(11.5px * var(--text-scale,1))}
#forgeView .fx-reforja-op>.fx-custo span{padding:3px 7px}
#forgeView .fx-reforja-op>.fx-custo img{width:15px;height:15px}
#forgeView .fx-reforja-botoes button{display:grid;place-items:center;padding:8px 6px;min-height:38px;white-space:nowrap;line-height:1.15}
#forgeView .fx-reforja-botoes button strong{font-size:calc(11px * var(--text-scale,1))!important;letter-spacing:.04em!important}
#forgeView .fx-reforja-botoes button.hidden{display:none}
#forgeView .fx-pode-sair:empty{display:none}
#forgeView .fx-pode-sair summary{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
#forgeView .fx-pode-sair[open] summary{margin-bottom:8px}
#forgeView .fx-reforja-botoes button strong{font-size:calc(12px * var(--text-scale,1));letter-spacing:.06em}
#forgeView #reforgeJewelButton{background:linear-gradient(180deg,#6d7cf0,#3f4bb8);border:1px solid #a9b3ff;color:#f3f5ff}
#forgeView .fx-custo{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 8px;font-size:calc(11px * var(--text-scale,1));font-weight:700}
#forgeView .fx-custo span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;color:#f3f5ff;background:rgba(5,8,14,.55);border-radius:7px;padding:2px 7px}
#forgeView .fx-custo-joia img{width:16px;height:16px;object-fit:contain}
.fx-ops .fx-op-travavel{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 2px 8px}
.fx-ops .fx-op-travavel>span{padding:0;background:none}
.fx-ops .fx-op-travavel.travada{outline:1px solid var(--fx-ouro2);background:#1a1608;color:#ffe3a3}
#forgeView .fx-trava{min-width:34px;min-height:30px;padding:2px 6px;border-radius:6px;border:1px solid var(--fx-linha);background:#141c2a;cursor:var(--cur-mao,pointer);font-size:calc(14px * var(--text-scale,1))}
#forgeView .fx-trava[aria-pressed="true"]{border-color:var(--fx-ouro2);background:#2a2210}
.fx-trava-dica{color:var(--fx-mudo);font-size:calc(11.5px * var(--text-scale,1))}
.fx-possiveis{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:3px 8px;font-size:calc(12px * var(--text-scale,1))}
.fx-possiveis li{display:grid;grid-template-columns:minmax(0,1fr) auto 3.2em;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;background:#0c121c;color:#b9c6ff;min-width:0}
.fx-possiveis li span{min-width:0;overflow-wrap:anywhere}
.fx-possiveis li b{color:var(--fx-ouro2);font-weight:800;white-space:nowrap;text-align:right}
.fx-possiveis .fx-pos-faixa{color:#dfe5ff;white-space:nowrap;font-variant-numeric:tabular-nums}
.fx-possiveis-quantas,.fx-possiveis-nota{color:var(--fx-mudo);font-size:calc(11.5px * var(--text-scale,1))}
#forgeView .forge-scroll-hint:empty{display:none}
#forgeView .forge-scroll-hint span{display:block;color:#ffb4a8}
@media (max-width:420px){#forgeView .fx-reforja-botoes{grid-template-columns:1fr}}
#forgeView .forge-scroll-copy{margin:0;font-size:calc(12.5px * var(--text-scale,1));color:var(--fx-mudo)}
#forgeView .forge-scroll-hint{color:var(--fx-mudo)}

/* aba Asas: sem mochila; suas asas | oficina; aparência dobrada no fim */
#forgeView[data-fx-aba="wings"] .fx-itens,#forgeView[data-fx-aba="wings"] .fx-bancada{display:none}
.fx-asas:not(.hidden){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:12px;align-items:start}
.fx-asas>*{min-width:0}
.fx-asas-criar{display:grid;gap:10px}
.fx-asas-criar .wing-craft-intro{margin:0;font-size:calc(12.5px * var(--text-scale,1));color:var(--fx-mudo)}
#forgeView .wing-tier-grid{grid-template-columns:1fr;gap:8px;margin:0}
.fx-galeria,.fx-aparencia{border:1px solid var(--fx-linha);border-radius:12px;padding:10px 12px;background:var(--fx-card)}
.fx-galeria summary,.fx-aparencia summary{cursor:var(--cur-mao,pointer);font-weight:800;color:#c9d2e0}
.fx-aparencia{grid-column:1/-1}
.fx-aparencia summary small{font-weight:600;color:var(--fx-mudo)}
.fx-galeria .wing-preview-strip{margin-top:10px}
.fx-fundo{display:none}

/* < 900: bancada primeiro, mochila numa gaveta de baixo */
@media (max-width:899px){
  #forgeView.fx-a{padding:8px 8px 90px;gap:8px}
  .fx-topo{padding:8px 10px}.fx-npc{width:40px;height:40px}.fx-titulo h2{font-size:calc(20px * var(--text-scale,1))}
  .fx-carteira{margin-left:0;width:100%}.fx-rec{padding:3px 8px;font-size:calc(11.5px * var(--text-scale,1))}
  .fx-corpo{display:block}
  .fx-bancada{position:static;max-height:none;overflow:visible;padding:12px}
  .fx-trocar{display:grid;place-items:center;min-height:42px;border-radius:10px;border:1px solid var(--fx-linha);background:#1a2233;color:var(--fx-tinta);font-weight:800;letter-spacing:.05em}
  .fx-itens{position:fixed;left:0;right:0;top:auto;bottom:calc(62px + env(safe-area-inset-bottom,0px));z-index:1300;max-height:calc(100dvh - 140px);overflow:auto;
    border-radius:18px 18px 0 0;border-width:1px 0 0;border-color:#6b5426;box-shadow:0 -18px 40px rgba(0,0,0,.7);transform:translateY(110%);visibility:hidden;transition:transform .2s ease,visibility .2s}
  #forgeView.fx-mochila-aberta .fx-itens{transform:none;visibility:visible}
  .fx-fechar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--fx-linha);background:#0f141d;color:var(--fx-tinta);font-size:15px;margin-left:auto}
  .fx-grade{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
  .fx-fundo{display:block;position:fixed;inset:0;z-index:1290;background:rgba(0,0,0,.55)}
  .fx-fundo.hidden{display:none!important}
  .fx-asas:not(.hidden){grid-template-columns:1fr}
  .fx-salto{font-size:calc(26px * var(--text-scale,1))}
}
@media (prefers-reduced-motion:reduce){ .fx-itens{transition:none} }
/* ajustes da foto: carteira da oficina repete o topo; cartões de nível sem altura fixa */
#forgeView .wing-material-wallet{display:none}
#forgeView .wing-tier-card{min-height:0}
.fx-reparo:empty{display:none}
#forgeView .fx-reparo .forge-reparo{margin:0}
/* 30/09 (autor: "esse amarelo chega a doer as vistas"): REPARAR e REPARAR EQUIPADOS caíam no botão padrão, ouro chapado.
   Agora bronze escuro com letra dourada, o mesmo tom do AUTO EQUIPAR do Inventário. */
#forgeView .forge-reparo-acoes button{background:linear-gradient(180deg,#5a4722,#3b2e15);color:#f3dca0;border:1px solid #8a6a2e;box-shadow:none}
#forgeView .forge-reparo-acoes button:hover:not(:disabled){background:linear-gradient(180deg,#6a542a,#46371a);border-color:#b08a3e}
#forgeView .forge-reparo-acoes button:disabled{background:#241d12;color:#8f8062;border-color:#4a3c22}
@media (max-width:899px){ #forgeView .forge-target-art{width:60px;height:60px} .fx-salto{margin-bottom:2px} }

/* ASAS A (30/09, "vamos de A"): suas asas em quadros grandes | bancada da asa escolhida
   (Evoluir | Aprimorar). Criar a Nv.1 é o último quadro. No celular os quadros viram uma
   faixa que rola de lado e a bancada vem logo abaixo. Quem preenche: renderWingCrafting. */
.fx-asas .nv1{--asa-brilho:#1f2a4e}.fx-asas .nv2{--asa-brilho:#22305a}.fx-asas .nv3{--asa-brilho:#2c2f66}.fx-asas .nv4{--asa-brilho:#4a2416}.fx-asas .nv5{--asa-brilho:#3a2c66}.fx-asas .nv6{--asa-brilho:#5a1f2e}.fx-asas .nv7{--asa-brilho:#4a3a12}
.asa-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px}
.asa-quadro{position:relative;display:grid;justify-items:center;align-content:center;gap:4px;aspect-ratio:1/1.08;min-width:0;padding:10px 6px 8px;border-radius:14px;
  border:1px solid var(--fx-linha);cursor:var(--cur-mao,pointer);color:var(--fx-tinta);font:inherit;background:radial-gradient(80% 70% at 50% 42%,var(--asa-brilho,#1f2a4e) 0%,#0e1422 72%)}
.asa-quadro:hover{border-color:#56627a;filter:brightness(1.08)}
.asa-quadro:focus-visible,.asa-modos button:focus-visible,.asa-acao:focus-visible{outline:2px solid var(--fx-ouro);outline-offset:2px}
.asa-quadro.sel{border-color:var(--fx-ouro2);box-shadow:0 0 0 2px rgba(224,173,76,.35),0 0 22px rgba(224,173,76,.25)}
.asa-quadro.off{opacity:.6}
.asa-quadro .asa-arte{width:88%;height:auto;max-height:70%;aspect-ratio:1.3;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}
.asa-quadro .nome{max-width:100%;font-size:calc(12px * var(--text-scale,1));font-weight:800;line-height:1.2;text-align:center;overflow-wrap:anywhere}
.asa-quadro .mais{position:absolute;right:8px;top:6px;font-weight:900;color:var(--fx-ouro);font-size:calc(13px * var(--text-scale,1));text-shadow:0 1px 2px #000}
.asa-quadro .eq{position:absolute;left:8px;top:9px;width:8px;height:8px;border-radius:50%;background:#5fd07a;box-shadow:0 0 0 2px #0b111a}
.asa-quadro.asa-nova{border-style:dashed;border-color:#6b5426;background:#0f1520;color:var(--fx-ouro)}
.asa-quadro.asa-nova b{font-size:38px;line-height:1}
.asa-pips{display:inline-flex;gap:3px}
.asa-pips i{width:8px;height:8px;border-radius:50%;background:#2c3650;border:1px solid #3d4a6b}
.asa-pips i.f{background:var(--fx-ouro2);border-color:var(--fx-ouro);box-shadow:0 0 5px rgba(224,173,76,.7)}
.fx-asas-criar.asa-bancada{border-color:#6b5426;background:linear-gradient(180deg,#171e2c,#10151f);gap:12px}
.asa-bancada-corpo{display:grid;gap:12px;min-width:0}
.asa-heroi{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:center}
.asa-heroi-arte{width:132px;height:132px;border-radius:14px;border:1px solid #3a3320;display:grid;place-items:center;font-size:48px;
  background:radial-gradient(70% 70% at 50% 45%,var(--asa-brilho,#1f2a4e),#10151f 75%)}
.asa-heroi-arte .asa-arte{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(0,0,0,.6))}
.asa-heroi-txt{min-width:0}
.asa-heroi h4{margin:0 0 3px;font-family:var(--font-display,Georgia,serif);font-size:calc(20px * var(--text-scale,1));color:var(--fx-ouro);line-height:1.15;overflow-wrap:anywhere}
.asa-heroi h4 em{font-style:normal;color:#fff}
.asa-heroi p{margin:0 0 6px;color:var(--fx-mudo);font-size:calc(12px * var(--text-scale,1))}
.asa-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.asa-tags span{font-size:calc(10.5px * var(--text-scale,1));font-weight:900;letter-spacing:.05em;padding:2px 8px;border-radius:99px;background:#1b2536;color:#c9d2e0}
.asa-tags .ok{background:#163424;color:#8fe3a8}.asa-tags .ruim{background:#3a1a1e;color:#ffb3b9}.asa-tags .presa{background:#33270f;color:var(--fx-ouro)}
.asa-modos{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:#0c121c;border:1px solid var(--fx-linha)}
.asa-modos button{min-height:40px;padding:4px 6px;border-radius:9px;border:0;background:transparent;color:var(--fx-mudo);font-weight:800;font-size:calc(13px * var(--text-scale,1));cursor:var(--cur-mao,pointer);line-height:1.2}
.asa-modos button.on{background:#1b2536;color:var(--fx-ouro);box-shadow:inset 0 0 0 1px #6b5426}
.asa-tabela{display:grid;gap:3px;font-size:calc(13px * var(--text-scale,1));font-variant-numeric:tabular-nums}
.asa-tabela div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;padding:4px 8px;border-radius:6px;background:#0c121c}
.asa-tabela .v{color:var(--fx-mudo)}.asa-tabela .n{color:#8fe3a8;font-weight:800;min-width:60px;text-align:right}
.asa-poder{padding:8px 10px;border-radius:9px;background:#1d1510;border:1px solid #5a3a1c;font-size:calc(12.5px * var(--text-scale,1));color:#ffd9a8;line-height:1.45}
.asa-mats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.asa-mat{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:9px;background:#0c121c;border:1px solid var(--fx-linha);min-width:0;
  font-size:calc(13px * var(--text-scale,1));font-variant-numeric:tabular-nums}
.asa-mat img{width:26px;height:26px;object-fit:contain;flex:none}
.asa-mat .ic{width:26px;text-align:center;font-size:19px;flex:none}
.asa-mat>div{min-width:0;overflow-wrap:anywhere}
.asa-mat b{color:#8fe3a8}
.asa-mat small{display:block;color:var(--fx-mudo);font-size:calc(11px * var(--text-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asa-mat.falta{border-color:#7a2f35}.asa-mat.falta b{color:#ff8f98}
.asa-mat.largo{grid-column:1/-1}
.asa-req{font-size:calc(12.5px * var(--text-scale,1));color:var(--fx-mudo)}.asa-req.falta{color:#ff8f98}
.asa-acao{display:grid;place-items:center;gap:2px;width:100%;min-height:52px;padding:8px 12px;border-radius:12px;border:1px solid #b99af0;
  background:linear-gradient(180deg,#8a5ad6,#5b3499);color:#fff;font-weight:900;letter-spacing:.06em;font-size:calc(14px * var(--text-scale,1));cursor:var(--cur-mao,pointer);line-height:1.2}
.asa-acao small{font-weight:700;letter-spacing:.02em;font-size:calc(11px * var(--text-scale,1));opacity:.9}
.asa-acao.bless{background:linear-gradient(180deg,#6d7ef0,#3f4fb8);border-color:#a9b4ff}
.asa-acao.ouro{background:var(--botao-ouro-fundo);border-color:var(--botao-ouro-borda);color:var(--botao-ouro-texto)}
.asa-acao:disabled{opacity:.45;filter:saturate(.4);cursor:not-allowed}
.asa-selo{display:flex;align-items:center;gap:8px;font-size:calc(12.5px * var(--text-scale,1));color:#c9d2e0}
.asa-selo em{font-style:normal;color:var(--fx-mudo)}
.asa-criar.hidden{display:none}
.asa-bancada .fx-galeria .wing-craft-intro{margin:10px 0}
@media (max-width:899px){
  .fx-asas-minhas{padding:10px}
  .asa-grade{display:flex;overflow-x:auto;gap:8px;padding-bottom:6px;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
  .asa-quadro{flex:0 0 108px;aspect-ratio:auto;height:132px;scroll-snap-align:start}
  .asa-quadro .nome{font-size:calc(11px * var(--text-scale,1))}
  .asa-heroi{grid-template-columns:96px minmax(0,1fr);gap:10px}
  .asa-heroi-arte{width:96px;height:96px}.asa-heroi-arte .asa-arte{width:88px;height:88px}
  .asa-heroi h4{font-size:calc(17px * var(--text-scale,1))}
}
@media (max-width:360px){ .asa-mats{grid-template-columns:1fr} }
.asa-poder-ic{width:20px;height:20px;object-fit:contain;vertical-align:-5px;margin-right:4px}
.asa-selo-ic{width:22px;height:22px;object-fit:contain}

/* MIGRAR (05/10): o +N passa para o mesmo item de grau maior (Nightmare, Godlike). */
.fx-mig-lista{display:grid;gap:6px}
.fx-mig-dest{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;padding:6px 8px;border-radius:10px;border:1px solid color-mix(in srgb,var(--rc,#3a4660) 60%,#000);
  background:#0c121c;color:var(--fx-tinta);text-align:left;cursor:var(--cur-mao,pointer);font:inherit;min-width:0}
.fx-mig-dest:hover{filter:brightness(1.12)}
.fx-mig-dest.sel{outline:2px solid var(--fx-ouro);outline-offset:1px}
.fx-mig-dest .fx-mig-arte{width:44px;height:44px;border-radius:8px;object-fit:contain;image-rendering:pixelated}
.fx-mig-dest span{display:grid;gap:2px;min-width:0}
.fx-mig-dest b{font-size:calc(13px * var(--text-scale,1));overflow-wrap:anywhere}
.fx-mig-dest small{color:var(--fx-mudo);font-size:calc(11.5px * var(--text-scale,1))}
.fx-mig-nota{color:var(--fx-mudo);font-size:calc(11.5px * var(--text-scale,1))}
/* 24/10 (SQL 2120): pagar o Migrar com Jewel of Chaos ou com o Pergaminho de Migração */
.fx-mig-pagar-ops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.fx-mig-pagar{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:10px;border:1px solid #3a4660;background:#0c121c;color:var(--fx-tinta);
  font:inherit;font-size:calc(12.5px * var(--text-scale,1));cursor:var(--cur-mao,pointer);min-width:0;text-align:left;overflow-wrap:anywhere}
.fx-mig-pagar img{width:26px;height:26px;object-fit:contain;flex:none}
.fx-mig-pagar.sel{outline:2px solid var(--fx-ouro);outline-offset:1px}
@media (max-width:360px){.fx-mig-pagar-ops{grid-template-columns:1fr}}
#forgeView #migrateButton{background:linear-gradient(180deg,#3fb59a,#23806b);border:1px solid #8fe3c9;color:#06150f}
#forgeView .fx-migrar .fx-custo span{flex-wrap:wrap;min-width:0;max-width:100%}
/* JEWEL OF LIFE NA SOUL (15/10, SQL 1710): opção discreta abaixo da chance; só online, do +6 ao +14.
   Quebra linha no celular (Android é a régua) e nunca vaza a bancada. */
.fx-life{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;padding:6px 9px;border-radius:9px;border:1px dashed rgba(246,190,90,.45);background:rgba(246,190,90,.06);font-size:calc(12.5px * var(--text-scale,1));color:#f3e3c0;cursor:var(--cur-mao,pointer);min-width:0;max-width:100%;box-sizing:border-box}
.fx-life input{margin:0;accent-color:#e0ad4c;flex:0 0 auto}
.fx-life img{width:22px;height:22px;object-fit:contain;flex:0 0 auto}
.fx-life span{flex:1 1 140px;min-width:0;overflow-wrap:anywhere}
.fx-life em{font-style:normal;color:var(--fx-mudo,#8c95a8)}
.fx-life.falta{opacity:.6;cursor:var(--cur-seta,default)}
.fx-life:has(input:checked){border-style:solid;border-color:#e0ad4c;background:rgba(246,190,90,.14)}
.fx-life-soma{color:#f6d58a!important}
/* 1855: linha do evento do servidor (Fim de Semana do Ferreiro) no Aprimorar e no Recriar: dourada, não vermelha. */
.fx-chance small.fx-evento,.fx-dr-nota.fx-evento{color:#f6d58a!important;display:block}
/* Aprimoramento Ancestral +16 a +25 (17/10, SQL 1890): explicação, Ancients escolhidos, botão TENTAR */
.fx-ap25-explica{margin:0;padding:10px;border-radius:9px;background:#0c121c;border:1px solid #3a4a2f;color:#c9d2e0;font-size:calc(12.5px * var(--text-scale,1));line-height:1.45}
.fx-ap25-explica strong{color:#9fe8b5;letter-spacing:.06em}
.fx-chance small.fx-ap25-conta{color:var(--fx-mudo)}
.fx-ap25-ancs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.fx-ap25-tit{grid-column:1/-1;font-size:calc(11.5px * var(--text-scale,1));letter-spacing:.08em;color:var(--fx-mudo);font-weight:800}
.fx-ap25-anc{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;align-items:center;text-align:left;padding:5px 7px;border-radius:9px;background:#0c121c;border:1px solid var(--fx-linha);color:var(--fx-tinta);cursor:var(--cur-mao,pointer);min-height:44px}
.fx-ap25-anc .fx-ap25-art{grid-row:1/3;width:34px;height:34px}
.fx-ap25-anc span{font-size:calc(11.5px * var(--text-scale,1));font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-ap25-anc small{font-size:calc(10.5px * var(--text-scale,1));color:#9fe8b5}
.fx-ap25-anc.sel{border-color:var(--fx-ouro);box-shadow:0 0 0 1px var(--fx-ouro) inset;background:#1a1a10}
.fx-ap25-botao{min-height:48px;border-radius:11px;font-weight:900;letter-spacing:.06em;font-size:calc(14px * var(--text-scale,1));border:1px solid #6fd39a;background:linear-gradient(180deg,#2c7a4f,#1b5236);color:#fff;cursor:var(--cur-mao,pointer)}
.fx-ap25-botao:disabled{opacity:.45;filter:saturate(.4);cursor:not-allowed}
.fx-ap25-hoje{margin:0;text-align:center;color:var(--fx-mudo);font-size:calc(11.5px * var(--text-scale,1))}
.fx-chance small.fx-vip{color:#f6d58a}
/* 1887: sorte acumulada na evolução da asa */
.fx-chance .fx-sorte{color:#ffe08a;font-size:calc(12px * var(--text-scale,1));line-height:1.35}
.fx-chance small.fx-sem-selo{color:#ff8a8a;font-weight:800}

/* PALCO (19/10, "Aprimorar + Asas" no visual da Fusão, escolha do autor). A peça num anel com o "+N ➜ +N+1"; do +7 em
   diante o anel é a chance (verde Soul, dourado Life). Chaves com arte para Life e Selo, botão grande com o quanto você
   tem. PC >= 1200 px: a bancada alarga e vira duas colunas (palco | chaves e botão). Quem preenche: aprimorarPalcoHtml,
   asaEvoluirHtml, asaCriarHtml e asaFestaAbrir (game.js). */
#forgeView,.asa-festa{--fx-anel-vazio:#2a1a10;--fx-cor-soul:#7fd17f;--fx-cor-life:#ffd24a;--fx-cor-bless:#9d8cff;--fx-cor-asa:#ffb347}
#forgeView:is([data-fx-aba="upgrade"],[data-fx-aba="migrate"],[data-fx-aba="recreate"]) .fx-bancada,.fx-asas-criar.asa-bancada{border-color:#6b4318;
  background:radial-gradient(120% 50% at 50% 0%,#3a1a08 0%,#140d08 50%,#0c0d12 100%);box-shadow:0 0 0 1px #000,0 0 30px rgba(255,120,30,.12),inset 0 1px 0 rgba(255,210,150,.12)}
.fx-com-palco #forgeTarget{display:none}
.fx-com-palco .soul-guard-option{display:none!important}
.fx-palco{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}
.fx-anel{position:relative;width:150px;height:150px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--fx-anel);box-shadow:0 0 30px rgba(255,140,40,.35)}
.fx-anel::before{content:"";position:absolute;inset:7px;border-radius:50%;background:radial-gradient(circle,#2a1508,#0f0a07)}
.fx-anel-arte{position:relative;width:96px;height:96px;display:grid;place-items:center}
.fx-anel-arte>*{max-width:100%;max-height:100%}
.fx-anel-arte .fx-anel-img,.fx-anel-arte img{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 0 10px rgba(255,150,60,.55))}
.fx-anel-arte .item-art-fallback{font-size:54px;filter:none}
.fx-palco .fx-salto{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);margin:0;gap:6px;white-space:nowrap;padding:2px 12px;border-radius:999px;
  background:linear-gradient(180deg,#ffd27a,#c45a10);border:1px solid #ffe3a6;font-size:calc(15px * var(--text-scale,1));line-height:1.3}
.fx-palco .fx-salto .de,.fx-palco .fx-salto .para,.fx-palco .fx-salto .seta{color:#2a1405;font-size:inherit;font-weight:900}
.fx-palco-nome{display:grid;gap:1px;margin-top:10px;min-width:0;max-width:100%}
.fx-palco-nome b{font-size:calc(15px * var(--text-scale,1));color:#ffd79a;overflow-wrap:anywhere}
.fx-palco-nome small{font-size:calc(11.5px * var(--text-scale,1));color:#c9a77c;overflow-wrap:anywhere}
.fx-chance.fx-chance-palco{display:grid;justify-items:center;gap:1px}
.fx-chance-palco .l{display:block;font-size:calc(11px * var(--text-scale,1));color:#c9a77c;letter-spacing:.04em}
.fx-chance-palco>b{font-family:var(--font-display,Georgia,serif);font-size:calc(28px * var(--text-scale,1));font-weight:900;color:#ffe08a;line-height:1.05}
.fx-chance-palco small{font-size:calc(11.5px * var(--text-scale,1))}
.fx-chance-palco .fx-life-soma::before{content:"";display:inline-block;width:16px;height:8px;margin-right:5px;border-radius:3px;vertical-align:middle;background:linear-gradient(90deg,var(--fx-cor-soul) 50%,var(--fx-cor-life) 50%)}
.fx-diff.fx-fichas{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;max-width:100%}
.fx-diff.fx-fichas>div{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;border:1px solid #7a4a1e;background:#2a1a0d;color:#ffcf99;font-weight:800;font-size:calc(12px * var(--text-scale,1));white-space:nowrap}
.fx-diff.fx-fichas .v{color:#c9a77c;font-weight:700}
.fx-diff.fx-fichas .n{color:#ffe7b8}.fx-diff.fx-fichas .n::before{content:"➜ ";color:#c9a77c;font-weight:700}
.fx-diff.fx-fichas .g{display:none}
.fx-chave{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid #3a2a1a;background:#120c08;cursor:var(--cur-mao,pointer);min-width:0}
.fx-chave.on,.fx-chave:has(input:checked){border-color:#e0a040;background:linear-gradient(90deg,#3a2408,#24160b)}
.fx-chave.falta{opacity:.6;cursor:var(--cur-seta,default)}
.fx-chave.pouco,.fx-chave.pouco:has(input:checked){border-color:#a0403a;background:linear-gradient(90deg,#3a1410,#200c0b)}
.fx-chave>img{width:30px;height:30px;object-fit:contain;flex:none}
.fx-chave-txt{flex:1;display:grid;min-width:0;text-align:left}
.fx-chave-txt b{color:#ffd79a;font-size:calc(13px * var(--text-scale,1))}
.fx-chave-txt small{color:#c9a77c;font-size:calc(11.5px * var(--text-scale,1));overflow-wrap:anywhere}
.fx-chave input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.fx-chave-sw{flex:none;position:relative;width:44px;height:24px;border-radius:99px;background:#2a1a10;border:1px solid #5a3a1a;transition:background .15s}
.fx-chave-sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#c9b9a0;transition:left .15s}
.fx-chave input:checked+.fx-chave-sw{background:#e08a2c;border-color:#ffb347}.fx-chave input:checked+.fx-chave-sw::after{left:22px;background:#fff}
.fx-chave input:focus-visible+.fx-chave-sw{outline:2px solid var(--fx-ouro);outline-offset:2px}
.fx-falha{margin:0;text-align:center;font-size:calc(12px * var(--text-scale,1));font-weight:700}
.fx-falha.ok{color:#9fe39f}.fx-falha.ruim{color:#ff8a8a}
.fx-falha small.fx-sem-selo{font-size:inherit;color:inherit}
#forgeView .fx-com-palco .forge-buttons button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;border:0;border-radius:12px;letter-spacing:.06em}
#forgeView .fx-com-palco .forge-buttons button.hidden{display:none}
/* 20/10: vale também sem o palco (a arte da joia ficava gigante quando a peça saía da seleção, ex.: tutorial do Ferreiro) */
#forgeView .forge-buttons button>img{width:24px;height:24px;object-fit:contain;flex:none}
.fx-botao-txt{display:grid;text-align:center;line-height:1.2}
.fx-botao-txt small{font-size:calc(11px * var(--text-scale,1));font-weight:700;letter-spacing:0;opacity:.9}
#forgeView .fx-com-palco #blessButton{background:linear-gradient(180deg,#b9a8ff,#6a4be0 60%,#4a2fb0);color:#fff;box-shadow:0 4px 0 #2a1870,0 0 22px rgba(130,100,255,.3)}
#forgeView .fx-com-palco #soulButton{background:linear-gradient(180deg,#ff9ad0,#d63a8a 60%,#a01f63);color:#fff;box-shadow:0 4px 0 #5a0f36,0 0 22px rgba(255,90,170,.3)}
.fx-com-palco .fx-regras{border-color:#3a2a1a;background:#120c08}
.fx-com-palco .fx-regras summary{color:#e9c27f}
.fx-com-palco .fx-regras summary::before{content:"ⓘ ";}
@media (min-width:1200px){
  #forgeView:is([data-fx-aba="upgrade"],[data-fx-aba="migrate"],[data-fx-aba="recreate"]) .fx-corpo{grid-template-columns:minmax(0,1fr) 780px}
  .fx-bancada>.forge-panel-group.fx-com-palco:not(.hidden){grid-template-columns:300px minmax(0,1fr);column-gap:24px;row-gap:0;align-items:start}
  .fx-com-palco>.fx-previa{display:contents}
  .fx-com-palco>*,.fx-com-palco>.fx-previa>*{grid-column:2;margin-bottom:10px}
  .fx-com-palco>.fx-previa>.fx-palco{grid-column:1;grid-row:1/span 12;align-self:center;margin:0;padding:8px 0}
  #forgeView .fx-com-palco>.forge-buttons{margin-bottom:12px}
  .fx-com-palco .fx-anel{width:220px;height:220px}
  .fx-com-palco .fx-anel-arte,.fx-com-palco .fx-anel-arte .fx-anel-img,.fx-com-palco .fx-anel-arte img{width:150px;height:150px}
}
/* Asas no palco: joias em ícones (tem / precisa), botões grandes e a festa da evolução. */
.fx-joias{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:8px;border-radius:12px;border:1px solid #e0a040;background:linear-gradient(90deg,#3a2408,#24160b)}
.fx-joia{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 4px;border-radius:999px;background:rgba(0,0,0,.25);font-size:calc(12.5px * var(--text-scale,1));white-space:nowrap;font-variant-numeric:tabular-nums}
.fx-joia img{width:22px;height:22px;object-fit:contain}
.fx-joia b{color:#9fe39f}.fx-joia em{font-style:normal;color:#e8cf9c;font-weight:700}
.fx-joia.falta b{color:#ff8f98}
.fx-joia.largo{flex-basis:100%;justify-content:center;background:none}
.asa-bancada .asa-acao.ouro,#craftWing1Button.asa-acao{border:0;color:var(--botao-ouro-texto);background:var(--botao-ouro-fundo);box-shadow:0 4px 0 #7a3608,0 0 22px rgba(255,140,40,.3);text-shadow:0 1px 1px rgba(0,0,0,.45)}
.asa-bancada .asa-acao.bless{border:0;background:linear-gradient(180deg,#b9a8ff,#6a4be0 60%,#4a2fb0);box-shadow:0 4px 0 #2a1870,0 0 22px rgba(130,100,255,.3)}
.asa-bancada .asa-acao.soul{border:0;background:linear-gradient(180deg,#ff9ad0,#d63a8a 60%,#a01f63);box-shadow:0 4px 0 #5a0f36,0 0 22px rgba(255,90,170,.3)}
.asa-acao.fx-botao-grande{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;color:#fff}
.asa-acao.fx-botao-grande>img{width:24px;height:24px;object-fit:contain}
.asa-bancada .asa-acao:disabled{box-shadow:none}
.asa-bancada .asa-modos{background:#120c08;border-color:#3a2a1a}
.asa-bancada .asa-modos button.on{background:#2a1a0d;color:#ffd79a;box-shadow:inset 0 0 0 1px #e0a040}
.asa-bancada .fx-galeria{border-color:#3a2a1a;background:#120c08}
.asa-festa{position:fixed;inset:0;z-index:3200;display:grid;place-items:center;padding:16px;background:rgba(3,4,8,.78);animation:asaFestaEntra .25s ease-out}
.asa-festa-cx{position:relative;width:min(420px,100%);max-height:calc(100dvh - 32px);overflow:auto;border-radius:18px;padding:20px 16px 16px;display:grid;gap:10px;text-align:center;color:#e7edf7;
  background:radial-gradient(120% 60% at 50% 0%,#3a1a08 0%,#140d08 45%,#0c0d12 100%);border:1px solid #6b4318;box-shadow:0 0 0 1px #000,0 0 50px rgba(255,140,40,.25)}
.asa-festa.ruim .asa-festa-cx{background:radial-gradient(120% 60% at 50% 0%,#1d1420 0%,#0e0b12 50%,#08090d 100%);border-color:#3a2f45;box-shadow:0 0 0 1px #000}
.asa-festa-x{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:1px solid #5a3a1a;background:#1a1009;color:#f3c98a;font-size:16px;cursor:var(--cur-mao,pointer)}
.asa-festa-topo{font-size:calc(12px * var(--text-scale,1));letter-spacing:.3em;font-weight:900;color:#9fe39f}
.asa-festa.ruim .asa-festa-topo{color:#c9a7a7}
.asa-festa h3{margin:0;font-family:var(--font-display,Georgia,serif);letter-spacing:.14em;font-size:calc(24px * var(--text-scale,1));background:linear-gradient(180deg,#ffe3a6,#e09a3c);-webkit-background-clip:text;background-clip:text;color:transparent}
.asa-festa.ruim h3{background:none;color:#d8cbe0}
.asa-festa .fx-anel{width:190px;height:190px}
.asa-festa .fx-anel-arte,.asa-festa .fx-anel-arte .fx-anel-img,.asa-festa .fx-anel-arte img{width:130px;height:130px}
.fx-anel.acesa{box-shadow:0 0 60px rgba(255,190,80,.8),0 0 120px rgba(255,140,40,.45);animation:asaAcesa 1.6s ease-in-out infinite alternate}
.fx-anel.apagada{box-shadow:none;filter:saturate(.6)}
.fx-anel.apagada .fx-anel-arte{filter:grayscale(.5) brightness(.75)}
.asa-festa-molde{padding:8px 10px;border-radius:10px;border:1px solid #e0a040;background:linear-gradient(90deg,#3a2408,#24160b);color:#ffe2a8;font-weight:800;font-size:calc(13px * var(--text-scale,1))}
.asa-festa-botoes{display:flex;gap:8px}
.asa-festa-botoes>*{flex:1;min-height:48px}
.asa-festa-voltar{border-radius:12px;border:1px solid #5a3a1a;background:#1a1009;color:#f3c98a;font-weight:900;letter-spacing:.06em;cursor:var(--cur-mao,pointer)}
.asa-festa-pe,.asa-festa-salva,.asa-festa-sorte{margin:0;font-size:calc(12px * var(--text-scale,1));color:#c9a77c}
.asa-festa-salva{color:#9fe39f;font-weight:800;font-size:calc(13px * var(--text-scale,1))}
.asa-festa-sorte{color:#ffd24a;font-weight:800}
@keyframes asaFestaEntra{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes asaAcesa{from{box-shadow:0 0 40px rgba(255,190,80,.6),0 0 90px rgba(255,140,40,.3)}to{box-shadow:0 0 70px rgba(255,200,90,.9),0 0 140px rgba(255,140,40,.5)}}
@media (prefers-reduced-motion:reduce){.asa-festa,.fx-anel.acesa{animation:none}}
.fx-chance-palco .fx-sorte{display:block;max-width:34em;text-align:center}
/* Celular: o anel à esquerda e nome + chance à direita, para o botão grande caber na primeira tela (regra do ferreiro-a). */
@media (max-width:899px){
  .fx-bancada .fx-palco:not(.fx-palco-livre){display:grid;grid-template-columns:124px minmax(0,1fr);column-gap:14px;row-gap:4px;align-items:center;text-align:left}
  .fx-bancada .fx-palco:not(.fx-palco-livre) .fx-anel{grid-row:1/span 2;width:124px;height:124px}
  .fx-bancada .fx-palco:not(.fx-palco-livre) .fx-anel-arte,.fx-bancada .fx-palco:not(.fx-palco-livre) .fx-anel-arte .fx-anel-img,.fx-bancada .fx-palco:not(.fx-palco-livre) .fx-anel-arte img{width:80px;height:80px}
  .fx-bancada .fx-palco:not(.fx-palco-livre) .fx-salto{font-size:calc(13px * var(--text-scale,1));padding:1px 10px}
  .fx-bancada .fx-palco:not(.fx-palco-livre) .fx-palco-nome{margin-top:0;align-self:end}
  .fx-bancada .fx-palco:not(.fx-palco-livre) .fx-chance-palco{justify-items:start;align-self:start}
  .fx-bancada .fx-palco:not(.fx-palco-livre) .fx-diff.fx-fichas{grid-column:1/-1;margin-top:8px}
  .fx-bancada .fx-com-palco:not(.hidden){gap:10px}
}
/* Bancada da asa: a asa (anel ou cartão) primeiro, as abas logo abaixo, o resto depois. As abas no topo ficavam embaixo da
   pilha de avisos do canto no PC (asas-bancada-contract). */
.asa-bancada-corpo>*{order:2}
.asa-bancada-corpo>.fx-palco,.asa-bancada-corpo>.asa-heroi{order:0}
.asa-bancada-corpo>.asa-modos{order:1}

/* Migrar e Recriar no palco (19/10, "os 2"). */
.fx-mig-salto{display:flex;align-items:center;justify-content:center;gap:12px;padding:0;background:none;border:0}
.fx-mig-lado{display:grid;justify-items:center;gap:12px}
.fx-mig-lado .nome{font-size:calc(10.5px * var(--text-scale,1));font-weight:900;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:1px 8px;background:#3a3a3a;color:#ddd}
.fx-mig-lado .nome.fx-grau-1{background:rgb(255,150,40);color:#1b1406}.fx-mig-lado .nome.fx-grau-2{background:rgb(235,40,60);color:#fff}
.fx-mig-lado.de .fx-anel{width:104px;height:104px}.fx-mig-lado.de .fx-anel-arte,.fx-mig-lado.de .fx-anel-arte .fx-anel-img{width:66px;height:66px}
.fx-mig-lado.para .fx-anel{width:128px;height:128px;box-shadow:0 0 36px rgba(255,150,40,.5)}.fx-mig-lado.para .fx-anel-arte,.fx-mig-lado.para .fx-anel-arte .fx-anel-img{width:84px;height:84px}
.fx-mig-lado .fx-salto{font-size:calc(12.5px * var(--text-scale,1))!important;padding:1px 9px!important}
.fx-mig-seta{font-size:26px;color:#ffb347;text-shadow:0 0 12px rgba(255,150,60,.7);align-self:center;margin-bottom:24px}
.fx-palco-nome small.ok{color:#9fe39f}
.fx-com-palco .fx-bloco{border-color:#3a2a1a;background:#120c08}
.fx-com-palco .fx-bloco h4{color:#c9a77c}
#forgeView .fx-custo.fx-joias{font-size:calc(12.5px * var(--text-scale,1))}
#forgeView .fx-custo.fx-joias span{background:rgba(0,0,0,.25);color:inherit;padding:2px 8px 2px 4px}
#forgeView .fx-custo.fx-joias span.largo{background:none}
#forgeView .fx-custo.fx-joias span.falta b{color:#ff8f98}
#forgeView .fx-com-palco #migrateButton,#forgeView .fx-com-palco #recreateButton{border:0;border-radius:12px;min-height:56px;color:var(--botao-ouro-texto);background:var(--botao-ouro-fundo);box-shadow:0 4px 0 #7a3608,0 0 22px rgba(255,140,40,.3);text-shadow:0 1px 1px rgba(0,0,0,.45)}
#forgeView .fx-com-palco #migrateButton:disabled,#forgeView .fx-com-palco #recreateButton:disabled{box-shadow:none}
.rc-trio-bloco.fx-palco{border:0;background:none;padding:0;gap:4px}
.rc-trio-bloco.fx-palco>h4{margin:0;font-size:calc(11px * var(--text-scale,1));letter-spacing:.14em;color:#c9a77c}
.fx-com-palco .rc-trio .rc-slot{border-radius:14px;border:2px solid #ffc25a;box-shadow:0 0 12px rgba(255,170,60,.35);background:#140d08}
.fx-com-palco .rc-trio .rc-slot.vazio{border:1px dashed #7a5a2a;box-shadow:none;color:#8a7458}
.fx-com-palco .rc-seta{color:#ffb347;text-shadow:0 0 10px rgba(255,150,60,.6)}
.fx-com-palco .rc-novo{border:0;background:none;padding:0;display:grid;justify-items:center;gap:4px;text-align:center}
.fx-bancada .fx-anel.rc-anel{width:132px;height:132px;box-shadow:0 0 30px rgba(179,107,255,.35)}
@media (min-width:1200px){.fx-bancada .fx-anel.rc-anel{width:150px;height:150px}}
.fx-com-palco .rc-anel .rc-q{font-family:var(--font-display,Georgia,serif);font-size:54px;line-height:1;color:#e6dbff;text-shadow:0 0 18px rgba(179,107,255,.8)}
.fx-com-palco .rc-novo>b{margin-top:6px;font-size:calc(15px * var(--text-scale,1))}
.fx-com-palco .rc-novo>small{color:#c9a77c}
.fx-com-palco .rc-chance.fx-chance-palco{border:0;background:none;padding:0;margin:2px 0}
.fx-com-palco .rc-chance.fx-chance-palco>small{color:#ffd24a}
.fx-com-palco .rc-mapa{border-radius:10px;border:1px solid #e0a040;background:#24160b;color:#ffd79a}
.fx-com-palco .rc-mais{border:1px solid #3a2a1a;border-radius:12px;background:#120c08}
.fx-com-palco .rc-mais>summary{color:#e9c27f}
.fx-com-palco .rc-ref{border-radius:999px;background:rgba(0,0,0,.25)}
.fx-com-palco .rc-ref button{border-radius:50%;border:0;background:var(--botao-ouro-fundo);color:var(--botao-ouro-texto);font-weight:900;display:inline-grid;place-items:center;padding:0;line-height:1;font-size:20px}
.fx-com-palco .rc-ref button[data-rc-passo="-1"]{background:#2a1a10;color:#ffcf99}
.fx-com-palco .rc-ref button:disabled{opacity:.4}
.fx-com-palco .rc-op{border-radius:12px;border:1px solid #3a2a1a;background:#120c08}
.fx-com-palco .rc-op.sel{border-color:#e0a040;background:linear-gradient(90deg,#3a2408,#24160b)}
.fx-com-palco .rc-anc{border-color:#3a2a1a;background:#120c08}
.fx-com-palco .rc-trio{max-width:250px}
/* Aba Arcanjo (20/10, SQL 1970): status base agora e despertado, um embaixo do outro */
.fx-arcanjo .arc-stats{display:grid;gap:3px}
.fx-arcanjo .arc-stats small{opacity:.75;font-size:.85em}
.fx-arcanjo .arc-stats span{overflow-wrap:anywhere}
/* Aba Arcanjo (20/10, pedido do autor): a asa do Arcanjo no botão, com aura dourada pulsando e um brilho que
   passa de tempos em tempos (o mesmo jeito da aba do Passe). Só transform, opacidade e filter. */
.vendor-subtab.arc-aba{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-color:#b98d2f;color:#ffe3a1;text-shadow:0 0 6px rgba(255,205,110,.55)}
.vendor-subtab.arc-aba.hidden{display:none}
.arc-aba-ico{width:22px;height:22px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 0 3px rgba(255,214,120,.7));animation:arcAbaAura 2.4s ease-in-out infinite}
.vendor-subtab.arc-aba::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;pointer-events:none;transform:translateX(0) skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,226,150,.55),transparent);animation:arcAbaBrilho 3.4s ease-in-out infinite;will-change:transform}
@keyframes arcAbaAura{0%,100%{transform:scale(1);filter:drop-shadow(0 0 3px rgba(255,214,120,.6))}50%{transform:scale(1.12);filter:drop-shadow(0 0 9px rgba(255,226,150,1))}}
@keyframes arcAbaBrilho{0%,55%{transform:translateX(0) skewX(-20deg)}100%{transform:translateX(420%) skewX(-20deg)}}
@media (prefers-reduced-motion:reduce){.arc-aba-ico,.vendor-subtab.arc-aba::after{animation:none}}
/* Peças do Arcanjo que o herói ainda não tem (a Jornada vende uma por etapa): apagadas, com LOJA, abrem a prévia da etapa */
.fx-slot.arc-falta{position:relative;border-style:dashed;border-color:#8a6a2a;cursor:var(--cur-mao,pointer)}
.fx-slot.arc-falta img{filter:grayscale(1) brightness(.55);opacity:.7}
.fx-slot.arc-falta:hover img,.fx-slot.arc-falta:focus-visible img{filter:grayscale(.3) brightness(.85);opacity:1}
.arc-falta-loja{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);padding:1px 6px;border-radius:6px;background:#b8862a;color:#1a1206;font-size:10px;font-weight:900;letter-spacing:.06em;line-height:1.5}

/* 22/10 (autor: "as asas tão cortadas na caixa"; "colocar as prévias no lugar das asas de temporada"). As prévias e as
   receitas ficam embaixo, na largura toda; cada classe numa faixa com as 5 asas lado a lado, a arte encolhe para caber. */
.fx-asas-guia{grid-column:1/-1;display:grid;gap:10px;min-width:0}
.fx-asas-guia .wing-preview-strip{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))!important;gap:10px!important}
.fx-asas-guia .wing-preview-card{min-width:0;padding:10px!important;gap:8px!important}
.fx-asas-guia .wing-level-preview-row{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px!important}
.fx-asas-guia .wing-level-preview{min-height:0!important;padding:6px 3px!important;min-width:0;overflow:hidden}
.fx-asas-guia .wing-level-preview img{width:100%!important;max-width:64px;height:auto!important;aspect-ratio:1}
.fx-asas-guia .wing-level-preview span{font-size:calc(8px * var(--text-scale,1));letter-spacing:.2px!important;text-align:center;line-height:1.2}
.fx-asas-guia .wing-tier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:8px}

/* LAPIDAR (24/10, SQL 2121): cada opção extra numa linha com a barra de 10 passos; a escolhida fica dourada. */
.lp-ops{display:grid;gap:6px}
.lp-op{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"nome barra num" "max max max";align-items:center;gap:4px 10px;
  width:100%;padding:8px 10px;border-radius:9px;background:#0c121c;border:1px solid var(--fx-linha);color:var(--fx-tinta);text-align:left;cursor:var(--cur-mao,pointer);font:inherit}
.lp-op.sel{border-color:var(--fx-ouro);box-shadow:0 0 0 1px var(--fx-ouro) inset}
.lp-op:focus-visible{outline:2px solid var(--fx-ouro);outline-offset:2px}
.lp-nome{grid-area:nome;min-width:0;overflow-wrap:anywhere;font-weight:700;font-size:calc(12.5px * var(--text-scale,1))}
.lp-barra{grid-area:barra;display:inline-grid;grid-template-columns:repeat(10,9px);gap:2px}
.lp-barra i{display:block;height:12px;border-radius:2px;background:#232d40}
.lp-barra i.on{background:linear-gradient(180deg,#8fe3a8,#3fae68)}
.lp-barra.cheia i.on{background:linear-gradient(180deg,var(--fx-ouro),var(--fx-ouro2))}
.lp-num{grid-area:num;font-weight:900;color:var(--fx-ouro);min-width:38px;text-align:right;font-size:calc(12px * var(--text-scale,1))}
.lp-max{grid-area:max;color:var(--fx-mudo);font-size:calc(11px * var(--text-scale,1))}
.lp-op.max .lp-nome{color:var(--fx-ouro)}
.lp-resumo{display:grid;gap:3px;padding:8px 10px;border-radius:9px;background:#0f1520;border:1px solid var(--fx-linha);font-size:calc(12.5px * var(--text-scale,1));color:#c9d2e0}
.lp-resumo b{color:#fff}
.lp-perfeita{padding:10px;border-radius:10px;text-align:center;font-weight:900;letter-spacing:.08em;color:#1a1206;
  background:linear-gradient(90deg,var(--fx-ouro2),var(--fx-ouro),var(--fx-ouro2))}
.lp-perfeita small{display:block;font-weight:700;letter-spacing:0}
#forgeView .fx-lapidar{display:grid;gap:10px}
@media (max-width:420px){
  .lp-op{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nome num" "barra barra" "max max"}
  .lp-barra{grid-template-columns:repeat(10,minmax(0,1fr));width:100%}
}
/* 2050: escada de Life (− N Jewel of Life +) na Soul, no Ancestral e na Relíquia acima do +15 */
.fx-escada{display:flex;align-items:center;gap:8px;margin:6px 0;padding:6px 8px;border:1px solid rgba(255,210,74,.35);border-radius:10px;background:rgba(255,210,74,.06)}
.fx-escada-b{flex:0 0 34px;width:34px;height:34px;border:1px solid rgba(255,210,74,.55);border-radius:8px;background:#2a2312;color:#ffd24a;display:grid;place-items:center;padding:0;font-family:inherit;font-size:22px;font-weight:800;line-height:1;cursor:var(--cur-mao,pointer)}
.fx-escada-b:disabled{opacity:.35;cursor:var(--cur-seta,default)}
.fx-escada-txt{display:grid;flex:1 1 auto;min-width:0;text-align:center}.fx-escada-txt b{color:#ffd24a}.fx-escada-txt small{opacity:.85}

/* 03/11 (o autor: "o título do Ferreiro só ocupa espaço"): sai o NPC e o nome. No PC (a partir de 1200 px) as joias já estão na barra de cima,
   então só o Pergaminho, a Essência, a Pena e o Gold ficam, pequenos, na mesma linha das abas. Abaixo de 1200 px e no celular a carteira fica numa linha fina. */
.fx-npc,.fx-titulo{display:none}
@media (min-width:1200px){
  #forgeView.fx-a{grid-template-columns:minmax(0,1fr) auto}
  #forgeView.fx-a>*{grid-column:1/-1}
  #forgeView.fx-a>.vendor-subtabs{grid-column:1;grid-row:1;align-self:center}
  #forgeView.fx-a>.fx-topo{grid-column:2;grid-row:1;align-self:center;padding:0;border:0;background:none}
}
/* a barra de cima mostra as joias a partir de 1200 px; abaixo disso a carteira fica numa linha fina própria */
@media (min-width:1200px){.fx-topo .fx-rec[data-recurso]{display:none}}
@media (max-width:1199px){.fx-topo{padding:6px 8px}}

/* ASA ALÉM DO +15 (05/11, SQL 2616; autor: "precisa rolar muito", escolha B): Life e Selo lado a lado, o "?" no nome
   leva à Ajuda e, no PC largo, a lista de asas fica estreita e a bancada vira duas colunas (palco | controles). */
.asa-alem-par{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}
.asa-alem-par>.fx-chave{margin:0;min-width:0}
.asa-alem-q{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:6px;padding:0;border-radius:50%;border:1px solid #c9a24a;background:transparent;color:#ffd27a;font:700 12px/1 inherit;vertical-align:middle;cursor:var(--cur-mao,pointer)}
.asa-alem-q:hover{background:rgba(201,162,74,.15)}
@media (max-width:420px){.asa-alem-par{grid-template-columns:1fr}}
@media (min-width:1100px){
  .fx-asas.asa-alem-larga:not(.hidden){grid-template-columns:300px minmax(0,1fr)}
  #wingBench.asa-alem-duas{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:16px}
  #wingBench.asa-alem-duas>.fx-palco{grid-column:1;grid-row:1/span 8}
  #wingBench.asa-alem-duas>:not(.fx-palco){grid-column:2}
}
