*{box-sizing:border-box;}
/* ===== v0.91 — sistema único de tokens (substitui os blocos :root de v0.1/v0.28/v0.57) =====
   Categorias: superficies, texto, identidade/CTA, semantica de gameplay, raridades,
   foco de acessibilidade, espacamento, raios, sombras, tipografia. Ver docs/AUDIT_v0.90.md (Secao G). */
:root{
  --bg:#0e1016;--panel:#1a1d26;--panel2:#222631;--panel3:#151820;--line:#343947;--muted:#8f97aa;--text:#f4f4f6;
  --accent:#d7a944;--gold:var(--accent);--cta:var(--accent);
  --green:#4aae73;--red:#d45151;--info:#6ea8d8;--mana:#5b8cff;
  --rarity-common:#c4c7ce;--rarity-uncommon:#64c987;--rarity-rare:#5791ff;--rarity-epic:#ba73ff;--rarity-legendary:#ffb64d;
  --focus:#7e86ff;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;
  --radius-sm:8px;--radius-md:11px;--radius-lg:16px;--radius-pill:999px;
  --shadow-card:0 8px 28px rgba(0,0,0,.10);--shadow-elevated:0 20px 60px rgba(0,0,0,.45);--shadow-glow-accent:0 0 16px rgba(215,169,68,.18);
  --font-display:Georgia,"Times New Roman",serif;--font-body:Arial,sans-serif;
}
body{margin:0;background:radial-gradient(circle at 50% -20%,#171b27 0,#0e1016 42%,#0b0d12 100%);color:var(--text);font-family:var(--font-body);}.hidden{display:none!important;}.game-shell{margin:auto;}
button{border:0;background:var(--accent);color:white;font-weight:800;cursor:pointer;}button:hover{filter:brightness(1.08);}button:disabled{opacity:.38;cursor:not-allowed;}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.card,.menu-page-header{background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 28px rgba(0,0,0,.10);}.card h2{margin:0;}.card-title-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin-bottom:14px;}.card-title-row>*{min-width:0;}.eyebrow{display:block;margin-bottom:4px;color:#757e91;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:1.5px;}.label{color:#8c94a8;font-size:calc(10px * var(--text-scale, 1));}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:54px;}.topbar h1{margin:0;}.version{display:inline-block;margin-top:4px;color:#777f92;}.save-panel{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;}.save-status{padding:7px 9px;border-radius:7px;background:#141720;color:#8d95a8;}.topbar-button{border:1px solid #414858;background:#343947;}.danger-button{background:#6d343a;}
.main-nav{display:flex;gap:6px;padding:6px;border:1px solid #2c313d;border-radius:12px;background:#151820;}.nav-button{flex:1;border:1px solid transparent;background:transparent;color:#8f97aa;}.nav-button:hover{border-color:#3f4657;filter:none;}.nav-button.active{background:linear-gradient(180deg,#6870ff,#5861ee);color:white;box-shadow:0 5px 16px rgba(71,81,225,.20);}
.nav-more-wrap{position:relative;display:flex;flex:1;min-width:0}.nav-more-button{width:100%}.nav-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:80;display:grid;gap:4px;min-width:165px;padding:6px;border:1px solid #3f4657;border-radius:10px;background:#151820;box-shadow:0 12px 28px rgba(0,0,0,.35)}.nav-more-menu .nav-button{display:flex;align-items:center;gap:8px;padding:8px;text-align:left}.nav-more-menu .nav-button img{width:20px;height:20px}
/* MENU DE CONTA (Fase 40) — mesma linguagem visual do menu MAIS, de propósito.
   A destrutiva fica separada por uma linha e no fim da lista: distância de
   clique é a única proteção que um menu oferece contra o dedo errado. */
.conta-wrap{position:relative;display:inline-flex}
.conta-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:90;display:grid;gap:4px;
  min-width:210px;padding:6px;border:1px solid #3f4657;border-radius:10px;background:#151820;
  box-shadow:0 12px 28px rgba(0,0,0,.35)}
.conta-menu .topbar-button{width:100%;text-align:left}
.conta-menu hr{margin:4px 2px;border:0;border-top:1px solid #2b3040}
.conta-menu .danger-button{margin-top:2px}

/* MODALS */
.modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(4,6,10,.86);backdrop-filter:blur(4px);}.modal-card{width:min(520px,100%);max-height:90vh;overflow:auto;padding:22px;border:1px solid #3a4050;border-radius:16px;background:var(--panel);box-shadow:0 30px 90px rgba(0,0,0,.5);}.profile-modal-card{width:min(800px,100%);}.stat-modal-card{width:min(560px,100%);}.modal-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;}.modal-title-row h2{margin:0 0 5px;}.modal-title-row p{margin:0;color:#858da2;font-size:calc(11px * var(--text-scale, 1));}.modal-close-button{width:36px;height:36px;padding:0;background:#343947;}.profile-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}.profile-card{padding:16px;border:1px solid #343947;border-radius:12px;background:#222631;}.profile-icon{display:grid;place-items:center;width:55px;height:55px;margin-bottom:12px;border:1px solid #3a4050;border-radius:11px;background:#151820;font-size:calc(28px * var(--text-scale, 1));}.profile-card h3{margin:0 0 6px;}.profile-card p{min-height:48px;color:#8d95a8;font-size:calc(10px * var(--text-scale, 1));line-height:1.45;}.profile-status{display:block;margin:11px 0;color:#cfd3dc;font-size:calc(10px * var(--text-scale, 1));line-height:1.55;}.profile-actions{display:grid;gap:6px;}.profile-delete-button{background:#68353a;}.available-points-big{display:flex;justify-content:space-between;align-items:center;padding:13px;margin-bottom:10px;border-radius:9px;background:#12151c;color:#9da5b7;font-size:calc(11px * var(--text-scale, 1));}.available-points-big strong{color:#ffd56a;font-size:calc(24px * var(--text-scale, 1));}.recommended-info{margin-bottom:10px;padding:10px;border-radius:8px;background:rgba(93,101,255,.08);color:#aeb5ca;font-size:calc(10px * var(--text-scale, 1));line-height:1.5;}.recommended-button{width:100%;margin-bottom:14px;background:#6b5fd2;}.stat-modal-grid{display:grid;gap:8px;}.stat-modal-row{display:grid;grid-template-columns:1fr auto 58px;gap:10px;align-items:center;min-height:62px;padding:11px;border:1px solid #343947;border-radius:9px;background:#222631;}.stat-modal-row>div:first-child span{display:block;margin-top:3px;color:#7e8799;font-size:calc(9px * var(--text-scale, 1));}.stat-modal-value{text-align:right;}.stat-modal-value strong,.stat-modal-value small{display:block;}.stat-modal-value small{min-height:12px;color:#63c887;font-size:calc(8px * var(--text-scale, 1));}.modal-stat-plus{padding:9px;}.offline-summary{margin:16px 0;color:#c9ced9;font-size:calc(12px * var(--text-scale, 1));line-height:1.7;}
/* RARE JEWELS */
.jewel-drop-toast{position:fixed;top:28px;left:50%;z-index:2000;display:flex;align-items:center;gap:16px;width:min(480px,calc(100% - 30px));padding:16px 18px;transform:translateX(-50%);border:1px solid #51596c;border-radius:14px;background:rgba(21,24,32,.97);box-shadow:0 18px 70px rgba(0,0,0,.55);animation:jewelToastIn .35s ease-out;}.jewel-drop-copy span,.jewel-drop-copy strong,.jewel-drop-copy small{display:block;}.jewel-drop-copy span{margin-bottom:4px;color:#ffd56a;font-weight:900;letter-spacing:1.5px;}.jewel-drop-copy strong{margin-bottom:4px;}.jewel-drop-copy small{color:#aeb4c3;line-height:1.4;}.gem-icon{width:66px;height:74px;background-size:contain;background-position:center;background-repeat:no-repeat;}.bless-visual{background-image:url("assets/items/jewels/bless.webp");filter:drop-shadow(0 0 15px rgba(121,106,255,.72));}.soul-visual{background-image:url("assets/items/jewels/soul.webp");filter:drop-shadow(0 0 15px rgba(255,59,176,.75));}.chaos-visual{background-image:url("assets/items/jewels/chaos.webp");filter:drop-shadow(0 0 15px rgba(255,190,36,.72));}@keyframes jewelToastIn{from{opacity:0;transform:translate(-50%,-25px) scale(.95);}to{opacity:1;transform:translate(-50%,0) scale(1);}}
/* PAGES */
.menu-page-header{margin-bottom:18px;padding:18px 20px;}.menu-page-header span{color:#8d95a8;font-weight:bold;letter-spacing:1.5px;}.menu-page-header h2{margin:5px 0;font-family:var(--font-display);}.menu-page-header p{margin:0;color:#8d95a8;}.wide-card{max-width:1280px;}.forge-page-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;align-items:start;}.merchant-layout{display:grid;gap:16px;}
/* BATTLE: left side is loadout only */
.battle-layout{display:grid;align-items:start;}.loadout-sidebar{min-width:0;}.battle-main{display:flex;flex-direction:column;gap:12px;min-width:0;}.equipment-card{padding:17px;}.small-link-button{background:#343947;}.loadout-help{margin-bottom:10px;border:1px solid #292e3a;border-radius:8px;background:#141720;color:#7f889b;line-height:1.4;}.equipment-list{display:grid;gap:8px;}.equipment-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:5px 10px;border:1px solid #363c4a;background:linear-gradient(180deg,#232733,#20242e);min-width:0;}.equipment-row .slot-title{grid-row:1/4;align-self:start;color:#9ba4b6;font-weight:800;}.equipment-row .item-name{font-weight:800;line-height:1.3;overflow-wrap:anywhere;}.equipment-row .item-stat{color:#a7afbf;line-height:1.45;}.equipment-row .equipment-meta{display:flex;flex-wrap:wrap;gap:4px;}.equipment-actions{grid-column:2;display:flex;gap:5px;flex-wrap:wrap;margin-top:2px;}.slot-best-button{background:#8a6925;}.slot-unequip-button{background:#414756;}.equipment-row.upgrade-available{border-color:#c39531;background:linear-gradient(180deg,rgba(117,88,24,.18),#20242e);box-shadow:0 0 14px rgba(211,162,57,.10);}.wing-slot-row{border-color:rgba(180,132,255,.28);}
/* Run summary inside battle card */
.run-summary{align-items:stretch;}.run-level,.run-chip,.run-xp{border:1px solid #303644;background:#20242f;}.run-level span,.run-chip span,.run-xp-label span{display:block;color:#858ea0;}.run-chip strong{display:block;margin-top:4px;}.run-xp-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px;}.xp-bar{overflow:hidden;border-radius:999px;background:#303543;}.xp-fill{height:100%;width:0;background:#616cff;transition:width .2s;}.distribute-button{border:1px solid #59618b;background:#444b75;}.stat-point-badge{display:inline-grid;place-items:center;margin-left:5px;padding:0 5px;border-radius:999px;background:#ffd56a;color:#171820;}
.area-header{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px 14px;margin-bottom:12px;border:1px solid #313744;}.area-selector{display:flex;align-items:center;gap:8px;min-width:0;}.area-selector span{color:#aeb5c3;font-size:calc(10px * var(--text-scale, 1));}.area-selector select,.inventory-filter-wrap select{min-width:0;padding:8px 9px;border:1px solid #3b4150;border-radius:7px;background:#151820;color:white;font-size:calc(10px * var(--text-scale, 1));font-weight:bold;}.area-selector select{width:100%;height:38px;}.area-requirement-box{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:7px 10px;border:1px solid #2d3340;border-radius:7px;background:#151820;}.area-requirement-box strong{font-size:calc(9px * var(--text-scale, 1));}.area-requirement-box small{margin-top:3px;color:#858da2;font-size:calc(8px * var(--text-scale, 1));}.requirement-ok{color:#78ce99;}.requirement-locked{color:#e4b961;}.area-progress-wrap{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;}.area-progress{font-size:calc(10px * var(--text-scale, 1));}.stage-track{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;}.stage-dot{border-radius:99px;background:#333845;}.stage-dot.done{background:#5962e8;}.stage-dot.current{background:#ffd05f;transform:scaleY(1.35);}.stage-dot.boss{border:1px solid #8a6925;}
.boss-button{width:100%;min-height:44px;margin-bottom:10px;border:1px solid #bb9136;background:linear-gradient(180deg,#9c7626,#835e17);color:#ffe4a3;}.boss-badge,.rare-event-badge{display:none;padding:8px;margin-bottom:9px;text-align:center;border-radius:8px;font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:1.5px;}.boss-badge{background:rgba(219,170,66,.12);color:#ffd56a;}.rare-event-badge{border:1px solid rgba(255,204,72,.28);background:rgba(255,206,66,.12);color:#ffe08a;}.boss-card{border-color:#d7a944;box-shadow:0 0 25px rgba(215,169,68,.16);}.boss-card .boss-badge{display:block;}.rare-event-card{border-color:#ffd45f;box-shadow:0 0 30px rgba(255,202,72,.22);}.rare-event-card .rare-event-badge{display:block;}
.fighters{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);align-items:center;}.fighter{position:relative;min-height:250px;border:1px solid #303543;}.fighter-heading{display:flex;align-items:center;gap:10px;margin-bottom:8px;}.fighter-avatar{display:inline-grid;place-items:center;border:1px solid #3a4050;border-radius:11px;background:#161922;}.fighter-label{display:block;color:#767e91;font-weight:bold;letter-spacing:1.5px;}.fighter h3{margin:3px 0;}.fighter-passive{display:block;max-width:300px;color:#7e8799;line-height:1.35;}.enemy-fighter{text-align:right;}.enemy-fighter .fighter-avatar{margin-bottom:5px;}.versus{text-align:center;color:#747c91;font-weight:bold;}.progress-label{display:flex;justify-content:space-between;gap:10px;color:#aeb4c3;}.fighter-bar-label{margin-top:8px;}.hp-bar,.mana-bar{width:100%;overflow:hidden;border-radius:99px;background:#343947;}.hp-bar{height:10px;margin:6px 0 9px;}.mana-bar{height:8px;margin:6px 0 10px;}.player-hp-fill,.monster-hp-fill,.mana-fill{height:100%;width:100%;transition:width .2s;}.player-hp-fill{background:#4aae73;}.monster-hp-fill{background:#d45151;}.mana-fill{background:#5b8cff;}.player-stat-grid{display:grid;margin-top:10px;padding-top:9px;border-top:1px solid #343a48;}.player-stat-grid span{display:flex;justify-content:space-between;gap:6px;padding:6px 7px;border-radius:6px;background:#1a1d26;color:#939bad;font-size:calc(8px * var(--text-scale, 1));}.player-stat-grid strong{color:#f0f2f6;}.mini-stats{display:flex;justify-content:flex-end;gap:10px;margin-top:9px;padding-top:9px;border-top:1px solid #343a48;font-size:calc(10px * var(--text-scale, 1));}
.battle-buttons{display:grid;}.secondary-button{border:1px solid #444b5d;background:#383e4d;}.boss-toggle-button{border-color:#8d6d2e;background:#3c3528;color:#d8c187;}.boss-toggle-button.active{border-color:#d7a944;background:#8d6921;color:#fff0bd;box-shadow:0 0 14px rgba(215,169,68,.16);}
/* DAMAGE */
.damage-layer{position:absolute;inset:0;z-index:20;pointer-events:none;}.damage-number{position:absolute;top:27%;left:50%;transform:translateX(-50%);color:#ff7777;font-size:calc(24px * var(--text-scale, 1));font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.8);animation:damageFloat .8s ease-out forwards;}.damage-number.critical{color:#ffd45f;font-size:calc(36px * var(--text-scale, 1));animation:criticalFloat 1s ease-out forwards;}.damage-number.player-hit{color:#ff7777;font-size:calc(25px * var(--text-scale, 1));}.damage-number.player-hit.special{color:#ffb152;font-size:calc(32px * var(--text-scale, 1));}@keyframes damageFloat{0%{opacity:0;transform:translate(-50%,10px) scale(.8);}20%{opacity:1;}100%{opacity:0;transform:translate(-50%,-55px) scale(1.05);}}@keyframes criticalFloat{0%{opacity:0;transform:translate(-50%,15px) scale(.6);}20%{opacity:1;transform:translate(-50%,0) scale(1.25);}100%{opacity:0;transform:translate(-50%,-70px) scale(1);}}.hit-normal{animation:hitNormal .18s;}.hit-critical{animation:hitCritical .32s;}.player-hit-flash{animation:playerFlash .25s;}@keyframes hitNormal{50%{transform:translateX(4px);}}@keyframes hitCritical{35%{transform:translateX(8px) scale(1.02);}70%{transform:translateX(-5px);}}@keyframes playerFlash{50%{transform:translateX(-5px);border-color:#8f4146;}}
/* SKILLS / LOG */
.skills-panel{border:1px solid #303644;background:#151820;}.skills-title-row{display:flex;justify-content:space-between;margin-bottom:9px;}.skills-title-row span{display:block;margin-top:3px;color:#828b9c;line-height:1.35;}.mana-legend{color:#7199ff;font-size:calc(9px * var(--text-scale, 1));}.skills-grid{display:grid;}.skill-card{position:relative;min-height:98px;border:1px solid #343947;background:#20242f;}.skill-name,.skill-desc,.skill-mana-cost,.skill-status{display:block;}.skill-name{font-weight:bold;}.skill-desc{margin-top:4px;color:#8d95a8;font-size:calc(8px * var(--text-scale, 1));line-height:1.45;}.skill-mana-cost{margin-top:7px;color:#72a0ff;font-size:calc(8px * var(--text-scale, 1));}.skill-status{margin-top:4px;color:#9aa3b5;font-size:calc(8px * var(--text-scale, 1));font-weight:bold;}.skill-auto-badge{position:absolute;right:7px;top:7px;color:#70cc91;font-weight:bold;}.skill-card.ready{border-color:#477f5d;background:linear-gradient(180deg,rgba(56,110,77,.11),#20242f);}.skill-card.waiting-mana{border-color:#405d91;}.skill-card.cooldown{opacity:.78;}.skill-card.locked{opacity:.34;}.combat-log{border:1px solid #262b36;background:#12151c;}.combat-log-title{display:flex;justify-content:space-between;color:#858da2;font-size:calc(9px * var(--text-scale, 1));}.combat-log-title strong{color:#eef0f5;}.combat-log p{min-height:18px;margin:6px 0;color:#e8ebf2;font-weight:bold;}.combat-history{overflow:auto;border-top:1px solid #252a34;padding-top:5px;}.combat-history-entry{display:flex;gap:8px;padding:4px 0;color:#8f97aa;line-height:1.35;}.combat-history-entry strong{color:#687185;}.combat-history-entry.good{color:#75c992;}.combat-history-entry.danger{color:#db777c;}.combat-history-entry.rare{color:#ffd15c;}
/* RESOURCES */
.resource-strip{display:grid;}.four-resources{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}.resource-strip>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 7px;border:1px solid #343947;border-radius:10px;color:#9da5b7;}.resource-strip>div strong{grid-column:2;margin:0;color:white;}.resource-strip .mini-jewel{grid-row:1/3;object-fit:contain;}.resource-scroll{display:block!important;}.resource-scroll strong{display:block!important;margin-top:7px!important;}.bless-resource{border-color:rgba(123,111,255,.25)!important;}.soul-resource{border-color:rgba(255,72,177,.24)!important;}.chaos-resource{border-color:rgba(255,193,52,.24)!important;}
/* BADGES / RARITIES */
.rarity-common{color:var(--rarity-common);}.rarity-uncommon{color:var(--rarity-uncommon);}.rarity-rare{color:var(--rarity-rare);}.rarity-epic{color:var(--rarity-epic);}.rarity-legendary{color:var(--rarity-legendary);}.rarity-badge,.quantity-badge,.equipped-badge,.upgrade-badge,.enhance-badge,.class-badge,.family-badge{display:inline-flex;align-items:center;border-radius:999px;background:#171a22;font-weight:900;line-height:1;}.equipped-badge{background:rgba(63,157,102,.16);color:#75d29a;}.upgrade-badge{background:rgba(215,169,68,.15);color:#ffd56a;}.enhance-badge{background:rgba(114,77,176,.18);color:#caa6ff;}.class-badge{background:#2a2e3a;color:#aeb5c5;}.wrong-class{color:#d26d74!important;}
/* INVENTORY */
.inventory-card{padding:20px;}.inventory-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding:10px;border:1px solid #2b303c;border-radius:9px;background:#151820;}.inventory-filter-wrap{display:flex;align-items:center;gap:7px;margin-right:auto;color:#8d95a8;font-size:calc(10px * var(--text-scale, 1));}.inventory-filter-wrap select{min-width:160px;}.utility-button{padding:8px 10px;background:#343947;}.recycle-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:11px 13px;border:1px solid #2f3441;border-radius:8px;background:#12151c;font-size:calc(10px * var(--text-scale, 1));}.recycle-bar button{padding:8px 14px;background:#3c8c5b;font-size:calc(9px * var(--text-scale, 1));}.inventory-count,.shop-subtitle{color:#858da2;}.empty-inventory{padding:24px;text-align:center;border:1px dashed #343947;border-radius:8px;color:#747c90;font-size:calc(10px * var(--text-scale, 1));}.inventory-group{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:8px;border:1px solid #343947;background:#222631;}.inventory-group.equipped-group{border-color:#3f9d66;background:#1f2a27;}.inventory-group.upgrade-group{border-color:#d7a944;background:linear-gradient(90deg,rgba(131,99,27,.09),#222631 35%);box-shadow:0 0 14px rgba(215,169,68,.13);}.group-main{min-width:0;}.group-title-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}.item-name{font-weight:800;}.group-subtitle{display:block;margin-top:6px;color:#a0a8b9;line-height:1.4;}.group-extra{display:block;color:#737c90;}.group-action{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;}.group-action button{min-height:31px;}.upgrade-item-button{background:#724db0;}.equipped-text{color:#75d29a;font-size:calc(8px * var(--text-scale, 1));font-weight:bold;}
/* FORGE */
.jewel-cards{display:grid;gap:8px;margin-bottom:16px;}.jewel-card{display:flex;align-items:center;gap:14px;min-height:108px;padding:13px 14px;border:1px solid #343947;border-radius:11px;background:#1a1d26;}.large-jewel{width:58px;height:66px;object-fit:contain;}.jewel-card h3{margin:2px 0 4px;font-size:calc(15px * var(--text-scale, 1));}.jewel-card p{margin:0 0 5px;color:#929aac;font-size:calc(8px * var(--text-scale, 1));}.jewel-rarity{font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:1.3px;}.bless-card{border-color:rgba(117,100,255,.4);}.soul-card{border-color:rgba(255,70,174,.4);}.chaos-card{border-color:rgba(255,197,56,.45);}.forge-main-card,.wing-crafting-card{margin-bottom:16px;padding:17px;}.forge-cap{color:#9da5b7;font-size:calc(9px * var(--text-scale, 1));}.forge-target{padding:12px;margin-bottom:11px;border:1px solid #343947;border-radius:9px;background:#12151c;font-size:calc(10px * var(--text-scale, 1));line-height:1.5;}.forge-target-name{display:block;margin-bottom:5px;font-weight:bold;}.forge-level{color:#ffd56a;}.forge-rules{display:grid;gap:5px;color:#8d95a8;font-size:calc(8px * var(--text-scale, 1));}.forge-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px;}.soul-button{background:#9b3473;}.forge-inventory-list{max-height:760px;overflow:auto;}.forge-list-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px;margin-bottom:7px;border:1px solid #343947;border-radius:9px;background:#222631;}.forge-list-item.selected{border-color:#a078e9;}.forge-list-item button{padding:7px 9px;}.wing-recipe-grid{display:grid;gap:8px;}.wing-recipe{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:10px;border:1px solid #303543;border-radius:8px;background:#222631;font-size:calc(9px * var(--text-scale, 1));}.wing-recipe small{color:#858da2;}.wing-recipe button{grid-row:1/4;grid-column:2;align-self:center;font-size:calc(8px * var(--text-scale, 1));}.wing-craft-list,.chest-list{display:grid;gap:8px;margin-top:10px;}.wing-craft-item,.chest-item{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid #343947;border-radius:9px;background:#222631;}.wing-craft-item h4,.chest-item h4{margin:0 0 4px;font-size:calc(10px * var(--text-scale, 1));}.wing-craft-item p,.chest-item p{margin:0;color:#8d95a8;font-size:calc(8px * var(--text-scale, 1));}.wing-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#171a22;font-size:calc(23px * var(--text-scale, 1));}.wing-warrior{box-shadow:inset 0 0 15px rgba(225,77,61,.1);}.wing-mage{box-shadow:inset 0 0 15px rgba(84,112,255,.13);}.wing-archer{box-shadow:inset 0 0 15px rgba(72,194,116,.12);}.wing-level-3{border:1px solid #d7a944;box-shadow:0 0 12px rgba(215,169,68,.15);}
/* MERCHANT / CHEST */
.merchant-summary-card{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;}.merchant-resource-row{display:grid;gap:8px;}.merchant-resource-row>div{display:flex;justify-content:space-between;padding:11px;border-radius:8px;background:#222631;color:#9da5b7;font-size:calc(9px * var(--text-scale, 1));}.merchant-reset-box{padding:11px;border-radius:8px;background:#12151c;}.merchant-reset-box p{margin:0 0 9px;color:#929aac;font-size:calc(9px * var(--text-scale, 1));line-height:1.5;}.refresh-shop-button{width:100%;background:#8a6226;font-size:calc(8px * var(--text-scale, 1));}.shop-grid{display:grid;}.shop-item{display:flex;flex-direction:column;padding:13px;border:1px solid #343947;background:#222631;}.shop-item.sold{opacity:.46;}.shop-item-title{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}.shop-item-stats{margin-top:8px;color:#9da5b7;line-height:1.45;}.shop-item-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;}.shop-price{color:#f3c45a;font-weight:bold;}.shop-item button{padding:7px 9px;}.chest-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}.shared-chest-card{border-color:#45415d;}
@media(max-width:1060px){.battle-layout{grid-template-columns:1fr;}.equipment-list{grid-template-columns:repeat(2,1fr);}.wing-slot-row{grid-column:1/-1;}.run-summary{grid-template-columns:70px 1fr 90px 80px;}.run-summary .distribute-button{grid-column:1/-1;}.forge-page-grid{grid-template-columns:1fr;}.chest-grid{grid-template-columns:1fr;}}
@media(max-width:760px){.game-shell{padding:14px;}.topbar{align-items:flex-start;flex-direction:column;}.save-panel{justify-content:flex-start;}.main-nav{display:grid;grid-template-columns:1fr 1fr;}.run-xp{grid-column:1/-1;}.run-summary .distribute-button{grid-column:1/-1;}.area-header{grid-template-columns:1fr;}.area-requirement-box{align-items:flex-start;}.fighters{grid-template-columns:1fr;}.versus{padding:2px;}.battle-buttons{grid-template-columns:1fr;}.skills-grid{grid-template-columns:1fr;}.four-resources{grid-template-columns:1fr 1fr;}.equipment-list{grid-template-columns:1fr 1fr;}.shop-grid{grid-template-columns:1fr;}.merchant-summary-card{grid-template-columns:1fr;}.profile-cards{grid-template-columns:1fr;}}
@media(max-width:520px){.equipment-list{grid-template-columns:1fr;}.wing-slot-row{grid-column:auto;}.four-resources{grid-template-columns:1fr;}.inventory-group{grid-template-columns:28px minmax(0,1fr);}.group-action{grid-column:2;justify-content:flex-start;min-width:0;}.stat-modal-row{grid-template-columns:1fr auto;}.modal-stat-plus{grid-column:2;grid-row:1;}.wing-craft-item,.chest-item{grid-template-columns:48px 1fr;}.wing-craft-item button,.chest-item button{grid-column:2;}}



button{font-size:calc(13px * var(--text-scale, 1));padding:13px 14px;border-radius:10px;}
.save-status{font-size:calc(12px * var(--text-scale, 1));}.topbar-button{min-height:40px;}
.card h2{font-size:calc(22px * var(--text-scale, 1));}.card,.menu-page-header{border-radius:16px;}

.class-summary-head{display:flex;align-items:center;margin-bottom:14px;}.class-summary-icon{display:grid;place-items:center;overflow:hidden;border:1px solid #424b5d;border-radius:14px;background:#151820;}.class-summary-head h2{margin:4px 0 6px;}.class-summary-passive{margin:0;color:#a6aec0;line-height:1.45;}.class-summary-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}.class-summary-meta>div,.attribute-mini-grid>div{padding:12px;border:1px solid #303644;border-radius:12px;background:#20242f;}.class-summary-meta span,.attribute-mini-grid span{display:block;color:#8c95a8;font-size:calc(12px * var(--text-scale, 1));}.class-summary-meta strong{display:block;margin:8px 0 4px;font-size:calc(20px * var(--text-scale, 1));}.class-summary-meta small{color:#a6aec0;font-size:calc(12px * var(--text-scale, 1));}.attribute-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}.attribute-mini-grid strong{display:block;margin-top:6px;font-size:calc(20px * var(--text-scale, 1));}
.small-link-button{font-size:calc(12px * var(--text-scale, 1));padding:10px 12px;min-height:36px;}.loadout-help{font-size:calc(12px * var(--text-scale, 1));padding:12px 13px;}.equipment-row{grid-template-columns:95px minmax(0,1fr);border-radius:14px;}.equipment-row .slot-title{font-size:calc(14px * var(--text-scale, 1));}.equipment-actions button{font-size:calc(11px * var(--text-scale, 1));padding:8px 10px;}.rarity-badge,.quantity-badge,.equipped-badge,.upgrade-badge,.enhance-badge,.class-badge,.family-badge{font-size:calc(10px * var(--text-scale, 1));padding:4px 8px;}
.run-level span,.run-chip span,.run-xp-label span{font-size:calc(12px * var(--text-scale, 1));}.xp-bar{height:10px;}
.area-header{border-radius:12px;}.area-selector span,.area-progress,.area-requirement-box strong,.area-requirement-box small{font-size:calc(13px * var(--text-scale, 1));}.area-selector select,.inventory-filter-wrap select,#autoSkillMode{font-size:calc(14px * var(--text-scale, 1));height:42px;}.stage-dot{height:9px;}
.fighter{border-radius:14px;}.fighter-label{font-size:calc(12px * var(--text-scale, 1));}.progress-label{font-size:calc(13px * var(--text-scale, 1));}.hp-bar,.mana-bar{height:12px;}.player-stat-grid{grid-template-columns:1fr 1fr;gap:10px;}.player-stat-grid span,.mini-stats span{border-radius:10px;}.versus{font-size:calc(24px * var(--text-scale, 1));}.battle-buttons{grid-template-columns:1fr 1fr 1fr;gap:10px;}.boss-button{font-size:calc(16px * var(--text-scale, 1));padding:14px 16px;}
.enemy-state-badge,.boss-trait-badge{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 10px;border-radius:999px;background:#2a2e3a;color:#ffd483;font-size:calc(12px * var(--text-scale, 1));font-weight:700;}.boss-trait-badge.hidden{display:none!important;}
.skills-panel{margin-top:14px;padding:16px;border-radius:12px;}.skills-title-row{align-items:flex-start;gap:10px;}.skills-title-row strong{font-size:calc(20px * var(--text-scale, 1));}.skills-title-row span{font-size:calc(12px * var(--text-scale, 1));}.skills-controls{display:flex;align-items:center;gap:12px;}.skill-mode-wrap{display:flex;align-items:center;gap:8px;color:#a9b0c1;font-size:calc(12px * var(--text-scale, 1));}.skill-mode-wrap select{min-width:150px;padding:8px 10px;border:1px solid #3b4150;border-radius:8px;background:#151820;color:#fff;}.skills-grid{grid-template-columns:1fr 1fr;gap:10px;}.skill-card{border-radius:12px;}.skill-desc,.skill-mana-cost,.skill-status{font-size:calc(12px * var(--text-scale, 1));}.skill-auto-badge{font-size:calc(10px * var(--text-scale, 1));}
.combat-log{margin-top:14px;min-height:120px;padding:16px;border-radius:12px;}.combat-log-title,.combat-history-entry strong{font-size:calc(12px * var(--text-scale, 1));}.combat-log-title strong{font-size:calc(20px * var(--text-scale, 1));}.combat-log p{font-size:calc(14px * var(--text-scale, 1));line-height:1.45;}.combat-history{max-height:140px;}.combat-history-entry{font-size:calc(12px * var(--text-scale, 1));}
.combat-history-count{margin-left:4px;padding:1px 5px;border-radius:999px;background:rgba(255,255,255,.07);color:#9aa4b5;font-size:calc(9px * var(--text-scale, 1));font-weight:800;letter-spacing:.3px}
.resource-strip .mini-jewel{width:34px;height:38px;}
.inventory-toolbar,.recycle-bar{font-size:calc(13px * var(--text-scale, 1));padding:12px 14px;}.utility-button{font-size:calc(12px * var(--text-scale, 1));}.inventory-count,.shop-subtitle{font-size:calc(13px * var(--text-scale, 1));}.inventory-group{min-height:112px;padding:16px;border-radius:14px;}.item-name{font-size:calc(19px * var(--text-scale, 1));}.group-subtitle{font-size:calc(13px * var(--text-scale, 1));}.group-extra{font-size:calc(12px * var(--text-scale, 1));line-height:1.5;}.group-action{min-width:210px;}.group-action button{font-size:calc(12px * var(--text-scale, 1));padding:9px 12px;}.group-check input{width:20px;height:20px;}.compare-line{margin-top:8px;padding:9px 10px;border-radius:10px;background:#181c25;font-size:calc(12px * var(--text-scale, 1));line-height:1.45;}.compare-positive{border:1px solid rgba(88,190,122,.35);color:#88dea6;}.compare-negative{border:1px solid rgba(220,101,101,.34);color:#f0a1a1;}.compare-neutral{border:1px solid rgba(112,124,148,.34);color:#b5bdd0;}
.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.shop-item{min-height:190px;border-radius:14px;}.shop-item-title .item-name{font-size:calc(18px * var(--text-scale, 1));}.shop-item-stats{font-size:calc(13px * var(--text-scale, 1));}.shop-price{font-size:calc(15px * var(--text-scale, 1));}.shop-item button{font-size:calc(12px * var(--text-scale, 1));}
.forge-target,.forge-rules,.wing-recipe,.wing-craft-item h4,.chest-item h4,.wing-craft-item p,.chest-item p{font-size:calc(13px * var(--text-scale, 1));}.forge-target-name{font-size:calc(18px * var(--text-scale, 1));}.forge-buttons button{font-size:calc(13px * var(--text-scale, 1));}.forge-list-item{min-height:84px;}.forge-list-item button{font-size:calc(12px * var(--text-scale, 1));}
.jewel-drop-copy span{font-size:calc(10px * var(--text-scale, 1));}.jewel-drop-copy strong{font-size:calc(22px * var(--text-scale, 1));}.jewel-drop-copy small{font-size:calc(12px * var(--text-scale, 1));}
.loot-toast{position:fixed;right:24px;bottom:24px;z-index:2100;display:flex;align-items:center;gap:14px;width:min(420px,calc(100% - 32px));padding:16px;border:1px solid #4c5567;border-radius:16px;background:rgba(21,24,32,.98);box-shadow:0 20px 65px rgba(0,0,0,.5);animation:lootSlideIn .35s ease-out;}.loot-toast-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:14px;background:#232838;font-size:calc(26px * var(--text-scale, 1));font-weight:900;}.loot-toast-copy span,.loot-toast-copy strong,.loot-toast-copy small{display:block;}.loot-toast-copy span{margin-bottom:4px;color:#ffd56a;font-size:calc(10px * var(--text-scale, 1));font-weight:800;letter-spacing:1.6px;}.loot-toast-copy strong{font-size:calc(20px * var(--text-scale, 1));margin-bottom:3px;}.loot-toast-copy small{font-size:calc(12px * var(--text-scale, 1));color:#b3bacb;line-height:1.45;}.loot-toast .rarity-rare{color:var(--rarity-rare);box-shadow:inset 0 0 20px rgba(87,145,255,.12);}.loot-toast .rarity-epic{color:var(--rarity-epic);box-shadow:inset 0 0 20px rgba(186,115,255,.14);}.loot-toast .rarity-legendary{color:var(--rarity-legendary);box-shadow:inset 0 0 20px rgba(255,182,77,.16);}@keyframes lootSlideIn{from{opacity:0;transform:translateY(12px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
@media(max-width:1180px){.loadout-sidebar{gap:14px;}.class-summary-meta,.attribute-mini-grid{grid-template-columns:repeat(4,1fr);}.shop-grid{grid-template-columns:1fr;}.battle-buttons{grid-template-columns:1fr;}.fighters{grid-template-columns:1fr;}.versus{display:none;}}
@media(max-width:760px){.topbar h1{font-size:calc(30px * var(--text-scale, 1));}.class-summary-meta,.attribute-mini-grid{grid-template-columns:1fr 1fr;}.equipment-row .item-name{font-size:calc(17px * var(--text-scale, 1));}.shop-grid,.skills-grid,.four-resources{grid-template-columns:1fr;}.group-action{min-width:0;}.loot-toast{left:16px;right:16px;bottom:16px;width:auto;}}


.game-shell{max-width:1480px;padding:22px 32px 50px;}.topbar h1{letter-spacing:.2px;}.topbar{margin-bottom:16px;}.main-nav{margin-bottom:20px;}
button,.nav-button,.equipment-row,.inventory-group,.shop-item,.skill-card{transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;}.nav-button:hover:not(.active){background:#1d212b;color:#d8dce5;}.equipment-row:hover,.inventory-group:hover,.shop-item:hover{border-color:#495164;}.inventory-group.upgrade-group:hover,.equipment-row.upgrade-available:hover{box-shadow:0 0 22px rgba(215,169,68,.18);}
.class-summary-card{background:linear-gradient(155deg,#1d2130 0,#1a1d26 58%,#171a22 100%);}.class-summary-icon{box-shadow:inset 0 0 20px rgba(93,101,255,.10);}
.battle-card{background:linear-gradient(180deg,#1b1f29 0,#191c25 100%);}.fighter{background:linear-gradient(180deg,#232833,#20242e);}#playerFighter{border-color:#38445a;}.enemy-fighter{border-color:#49383e;}.fighter h3{letter-spacing:.1px;}.player-stat-grid strong,.mini-stats strong{font-size:calc(15px * var(--text-scale, 1));}
.area-header{background:linear-gradient(180deg,#242936,#20242f);}.area-selector select{background:#12151d;}.stage-dot.current{box-shadow:0 0 10px rgba(255,213,106,.58);}
.battle-buttons button{min-height:50px;}.battle-buttons button:active{transform:translateY(1px);}
.skill-card.ready{box-shadow:inset 3px 0 0 rgba(88,190,122,.68);}.skill-card.waiting-mana{box-shadow:inset 3px 0 0 rgba(91,140,255,.55);}.skill-card.locked{filter:saturate(.55);}
.compare-line{overflow-wrap:anywhere;}.compare-positive::first-letter,.compare-negative::first-letter{font-weight:900;}.group-title-row{row-gap:7px;}.group-extra{margin-top:7px;}
.menu-page-header h2{font-size:calc(28px * var(--text-scale, 1));}.menu-page-header p{font-size:calc(13px * var(--text-scale, 1));line-height:1.5;}.menu-page-header span{font-size:calc(11px * var(--text-scale, 1));}
.resource-strip>div{background:linear-gradient(180deg,#1c202a,#181b23);}
::-webkit-scrollbar{width:10px;height:10px;}::-webkit-scrollbar-track{background:#11141b;}::-webkit-scrollbar-thumb{background:#343b4a;border:2px solid #11141b;border-radius:999px;}::-webkit-scrollbar-thumb:hover{background:#4b5365;}
@media(max-width:1380px){.game-shell{padding-left:20px;padding-right:20px;}.battle-layout{grid-template-columns:360px minmax(0,1fr);}.run-summary{grid-template-columns:82px minmax(190px,1fr) 105px 94px auto;}.distribute-button{min-width:160px;}}
@media(max-width:1180px){.equipment-list{grid-template-columns:1fr 1fr;}.wing-slot-row{grid-column:1/-1;}.loadout-sidebar{display:block;}.class-summary-card{margin-bottom:14px;}}


.progress-sidebar-card{margin-bottom:14px;}.compact-title-row h2{font-size:calc(23px * var(--text-scale, 1));}.compact-title-row .eyebrow{font-size:calc(11px * var(--text-scale, 1));}
.run-summary-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:10px;}.run-summary-sidebar .run-level,.run-summary-sidebar .run-chip,.run-summary-sidebar .run-xp{padding:12px;}.run-summary-sidebar .run-level strong{font-size:calc(30px * var(--text-scale, 1));}.run-summary-sidebar .run-chip strong{font-size:calc(20px * var(--text-scale, 1));}.run-summary-sidebar .run-xp{grid-column:1/-1;}.run-summary-sidebar .distribute-button{grid-column:1/-1;width:100%;min-width:0;justify-content:center;font-size:calc(13px * var(--text-scale, 1));padding:12px 14px;}
.resource-strip-sidebar{grid-template-columns:1fr;gap:10px;margin-top:12px;}.resource-strip-sidebar>div{min-height:66px;font-size:calc(12px * var(--text-scale, 1));padding:12px 14px;}.resource-strip-sidebar>div strong{font-size:calc(20px * var(--text-scale, 1));}

.battle-buttons{margin-top:12px;}
@media(max-width:1180px){.resource-strip-sidebar{grid-template-columns:repeat(2,minmax(0,1fr));}.run-summary-sidebar{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.resource-strip-sidebar{grid-template-columns:1fr;}.run-summary-sidebar{grid-template-columns:1fr;}.run-summary-sidebar .run-xp,.run-summary-sidebar .distribute-button{grid-column:auto;}}


body{font-size:calc(13px * var(--text-scale, 1));}
.topbar h1{font-size:calc(38px * var(--text-scale, 1));}.version{font-size:calc(14px * var(--text-scale, 1));}.topbar-button{font-size:calc(11px * var(--text-scale, 1));padding:9px 13px;}.nav-button{font-size:calc(15px * var(--text-scale, 1));min-height:50px;}
.battle-layout{grid-template-columns:360px minmax(0,1fr);gap:18px;}.card{padding:18px;}.battle-card{padding:18px;}
.class-summary-card{margin-bottom:14px;}.class-summary-head{gap:12px;}.class-summary-icon{width:60px;height:60px;font-size:calc(31px * var(--text-scale, 1));}.class-summary-head h2{font-size:calc(23px * var(--text-scale, 1));}.class-summary-passive{font-size:calc(12px * var(--text-scale, 1));}.class-summary-meta strong,.attribute-mini-grid strong{font-size:calc(18px * var(--text-scale, 1));}
.equipment-card .card-title-row h2{font-size:calc(26px * var(--text-scale, 1));}.equipment-row{min-height:102px;padding:13px 14px;}.equipment-row .item-name{font-size:calc(19px * var(--text-scale, 1));}.equipment-row .item-stat{font-size:calc(11px * var(--text-scale, 1));}
.run-summary{display:grid;grid-template-columns:88px minmax(200px,1fr) 110px 98px auto;gap:10px;margin-bottom:14px;}.run-level,.run-chip,.run-xp{padding:12px 14px;border-radius:12px;}.run-level strong{font-size:calc(30px * var(--text-scale, 1));}.run-chip strong{font-size:calc(20px * var(--text-scale, 1));}.run-xp-label span{font-size:calc(11px * var(--text-scale, 1));}.run-xp-label strong{font-size:calc(13px * var(--text-scale, 1));}.distribute-button{font-size:calc(13px * var(--text-scale, 1));min-width:170px;padding:12px 14px;}.stat-point-badge{font-size:calc(11px * var(--text-scale, 1));min-width:26px;height:26px;}
.area-header{padding:14px;}.fighters{gap:16px;}.fighter{padding:16px;}.fighter h3{font-size:calc(22px * var(--text-scale, 1));}.fighter-passive{font-size:calc(12px * var(--text-scale, 1));}.fighter-avatar{width:50px;height:50px;font-size:calc(26px * var(--text-scale, 1));}.player-stat-grid span,.mini-stats span{font-size:calc(13px * var(--text-scale, 1));padding:10px 11px;}.battle-buttons button{font-size:calc(14px * var(--text-scale, 1));padding:13px 14px;}.skills-panel,.combat-log{margin-top:12px;padding:15px;}.skills-title-row strong,.combat-log-title strong{font-size:calc(18px * var(--text-scale, 1));}.skill-card{padding:14px;}.skill-name{font-size:calc(15px * var(--text-scale, 1));}.skill-desc,.skill-mana-cost,.skill-status,.combat-log p,.combat-history-entry{font-size:calc(12px * var(--text-scale, 1));}
.resource-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;}.resource-strip>div{min-height:68px;padding:12px 14px;font-size:calc(12px * var(--text-scale, 1));}.resource-strip>div strong{font-size:calc(20px * var(--text-scale, 1));}.mini-jewel{width:32px;height:36px;}

.progress-sidebar-card,.resource-strip-sidebar,.run-summary-sidebar{display:none !important;}
@media(max-width:1180px){.battle-layout{grid-template-columns:1fr;}.run-summary{grid-template-columns:1fr 1fr;}.run-xp{grid-column:1/-1;}.distribute-button{grid-column:1/-1;width:100%;}.resource-strip{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px){.resource-strip,.skills-grid{grid-template-columns:1fr;}.run-summary{grid-template-columns:1fr;}.run-xp,.distribute-button{grid-column:auto;}}

/* =====================================================
   v0.18 — BATTLE HUD REMAP
   Esquerda = personagem/loadout | Centro = combate | Direita = automação/loot
   ===================================================== */
.profile-modal-card{width:min(1120px,100%)}
.profile-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.profile-card{min-width:0}
.profile-card p{min-height:64px;font-size:calc(12px * var(--text-scale, 1))}
.profile-status{font-size:calc(12px * var(--text-scale, 1))}

.battle-hud-layout{display:grid;grid-template-columns:330px minmax(520px,1fr) 310px;gap:16px;align-items:start}
.battle-left-rail,.battle-right-rail{display:flex;flex-direction:column;gap:14px;min-width:0}
.battle-center-stage{min-width:0}
.hero-card,.battle-loadout-card,.battle-stage-card,.automation-card,.resources-card,.last-drop-card{border-radius:16px}

/* LEFT RAIL */
.hero-card{padding:17px;background:linear-gradient(155deg,#202535 0,#1a1e29 58%,#171a22 100%)}
.hero-identity{margin-bottom:14px}
.hero-identity .class-summary-icon{width:56px;height:56px;font-size:calc(28px * var(--text-scale, 1));flex:0 0 auto}
.hero-identity h2{font-size:calc(22px * var(--text-scale, 1));margin:2px 0 5px}
.hero-identity .class-summary-passive{font-size:calc(12px * var(--text-scale, 1));line-height:1.4}
.hero-run-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-top:12px;border-top:1px solid #313746}
.hero-run-grid>div,.hero-points-button{border:1px solid #313746;border-radius:11px;background:#202530}
.hero-level-box,.hero-reset-box,.hero-gold-box{padding:10px 11px}
.hero-level-box span,.hero-reset-box span,.hero-gold-box span{display:block;color:#8992a5;font-size:calc(11px * var(--text-scale, 1));font-weight:800;letter-spacing:.6px}
.hero-level-box strong,.hero-reset-box strong,.hero-gold-box strong{display:block;margin-top:5px;color:#f7f8fb;font-size:calc(22px * var(--text-scale, 1))}
.hero-level-box strong{font-size:calc(29px * var(--text-scale, 1))}
.hero-xp-box{grid-column:1/-1;padding:10px 11px}
.hero-xp-box .run-xp-label{font-size:calc(12px * var(--text-scale, 1))}
.hero-xp-box .xp-bar{height:9px;margin-top:8px}
.hero-gold-box{min-width:0}
.hero-points-button{min-width:0!important;width:100%;padding:10px 11px!important;font-size:calc(12px * var(--text-scale, 1))!important;justify-content:center;background:#454d79}
.hero-points-button .stat-point-badge{min-width:26px;height:26px;font-size:calc(11px * var(--text-scale, 1))}
.hero-attributes{grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}
.hero-attributes>div{padding:9px 7px;text-align:center;border-radius:10px}
.hero-attributes span{font-size:calc(10px * var(--text-scale, 1))}
.hero-attributes strong{font-size:calc(17px * var(--text-scale, 1));margin-top:4px}

.battle-loadout-card{padding:15px}
.battle-loadout-card .card-title-row{margin-bottom:10px}
.battle-loadout-card .card-title-row h2{font-size:calc(20px * var(--text-scale, 1))}
.battle-loadout-card .small-link-button{font-size:calc(10px * var(--text-scale, 1));padding:8px 9px;min-height:32px}
.battle-equipment-list{gap:7px}
.battle-equipment-list .equipment-row{grid-template-columns:72px minmax(0,1fr);min-height:76px;padding:9px 10px;border-radius:11px;gap:3px 8px}
.battle-equipment-list .equipment-row .slot-title{font-size:calc(11px * var(--text-scale, 1))}
.battle-equipment-list .equipment-row .item-name{font-size:calc(15px * var(--text-scale, 1));line-height:1.2}
.battle-equipment-list .equipment-row .item-stat{font-size:calc(10px * var(--text-scale, 1));line-height:1.3}
.battle-equipment-list .equipment-meta{gap:3px}
.battle-equipment-list .rarity-badge,.battle-equipment-list .class-badge{font-size:calc(8px * var(--text-scale, 1));padding:3px 6px}
.battle-equipment-list .equipment-actions{gap:4px}
.battle-equipment-list .equipment-actions button{font-size:calc(9px * var(--text-scale, 1));padding:6px 7px;min-height:27px}

/* CENTER STAGE */
.battle-stage-card{padding:17px;background:linear-gradient(180deg,#1c202a,#181c25)}
.battle-zone-head{display:grid;grid-template-columns:minmax(250px,1fr) auto;gap:10px 12px;margin-bottom:14px;padding:13px;border:1px solid #343b4a;border-radius:13px;background:linear-gradient(180deg,#242a37,#20242f)}
.battle-area-selector{display:flex;align-items:center;gap:8px;min-width:0}
.battle-area-selector>span{color:#aeb6c8;font-size:calc(12px * var(--text-scale, 1));font-weight:800;white-space:nowrap}
.battle-area-selector select{width:100%;min-width:0;height:40px;padding:8px 10px;border:1px solid #3b4353;border-radius:9px;background:#12161e;color:#fff;font-size:calc(13px * var(--text-scale, 1));font-weight:800}
.battle-zone-head .area-requirement-box{padding:7px 10px;min-width:145px}
.battle-zone-head .area-requirement-box strong,.battle-zone-head .area-requirement-box small{font-size:calc(11px * var(--text-scale, 1))}
.battle-stage-progress{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.battle-stage-progress .area-progress{font-size:calc(11px * var(--text-scale, 1));font-weight:900;letter-spacing:.5px}
.battle-stage-progress .stage-dot{height:8px}

.battle-arena{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:12px}
/* v0.91 — a arena vira o palco do combate: moldura/glow inspirados no banner do Golden Dragon
   (mesmo principio, sem copiar o tratamento literal), aplicados só na .fighters.battle-arena
   existente — nenhum seletor salvo no Editor Visual referencia este container hoje. */
.fighters.battle-arena{position:relative;padding:14px 12px;border:1px solid rgba(183,122,25,.32);border-radius:14px;background:radial-gradient(ellipse at 50% 15%,rgba(183,122,25,.08),transparent 60%);box-shadow:inset 0 0 40px rgba(183,122,25,.05),0 0 26px rgba(0,0,0,.22)}
/* Os cards da coluna direita recuam um degrau para nao competir em peso visual com a arena. */
.battle-right-rail>.card{background:linear-gradient(155deg,rgba(26,30,39,.6),rgba(19,22,29,.66) 60%)!important;border-color:rgba(58,66,78,.55)!important;box-shadow:none!important}
.battle-arena .fighter{min-height:285px;padding:15px}
.battle-arena .fighter-avatar{width:52px;height:52px;font-size:calc(27px * var(--text-scale, 1))}
.battle-arena .fighter h3{font-size:calc(21px * var(--text-scale, 1))}
.battle-arena .fighter-passive{font-size:calc(11px * var(--text-scale, 1));line-height:1.35}
.battle-arena .progress-label{font-size:calc(12px * var(--text-scale, 1))}
.combat-primary-stats{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px;padding-top:9px}
.combat-primary-stats span{padding:8px 9px!important;font-size:calc(11px * var(--text-scale, 1))!important}
.combat-primary-stats strong{font-size:calc(13px * var(--text-scale, 1))!important}
.combat-secondary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px}
.combat-secondary-stats span{display:block;padding:7px 6px;border-radius:8px;background:#191d26;color:#929bad;font-size:calc(9px * var(--text-scale, 1));text-align:center;line-height:1.25}
.combat-secondary-stats strong{display:block;margin-top:3px;color:#eef1f6;font-size:calc(11px * var(--text-scale, 1))}
.enemy-combat-card .mini-stats span{font-size:calc(12px * var(--text-scale, 1));padding:8px 10px;border-radius:9px;background:#1a1e27}
.battle-action-bar{grid-template-columns:1.2fr 1fr 1fr;gap:8px;margin-top:12px}
.battle-action-bar button{min-height:47px;padding:11px 12px;font-size:calc(12px * var(--text-scale, 1))}
.compact-combat-log{min-height:0!important;margin-top:11px!important;padding:11px 13px!important;border-radius:11px!important}
.compact-combat-log .combat-log-title strong{font-size:calc(14px * var(--text-scale, 1))}
.compact-combat-log .combat-log-title span{font-size:calc(10px * var(--text-scale, 1))}
.compact-combat-log p{min-height:17px;margin:5px 0;font-size:calc(11px * var(--text-scale, 1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-combat-log .combat-history{max-height:68px;padding-top:4px}
.compact-combat-log .combat-history-entry{padding:2px 0;font-size:calc(10px * var(--text-scale, 1))}
.compact-combat-log .combat-history-entry:nth-child(n+4){display:none}

/* RIGHT RAIL */
.automation-card{margin:0!important;padding:15px!important;background:linear-gradient(180deg,#1b202a,#171b23)}
.automation-title-row{display:block;margin-bottom:10px}
.automation-title-row strong{font-size:calc(20px * var(--text-scale, 1))}
.automation-title-row #skillAutoState{margin-top:5px;font-size:calc(10px * var(--text-scale, 1));line-height:1.4}
.automation-controls{display:grid;grid-template-columns:1fr;gap:7px;margin-bottom:10px;padding:9px;border:1px solid #303746;border-radius:10px;background:#12161d}
.automation-controls .skill-mode-wrap{justify-content:space-between;font-size:calc(11px * var(--text-scale, 1))}
.automation-controls .skill-mode-wrap select{min-width:0;width:185px;height:36px;font-size:calc(12px * var(--text-scale, 1))}
.automation-controls .mana-legend{font-size:calc(10px * var(--text-scale, 1))}
.automation-skills-grid{grid-template-columns:1fr;gap:7px}
.automation-skills-grid .skill-card{min-height:85px;padding:11px;border-radius:10px}
.automation-skills-grid .skill-name{font-size:calc(13px * var(--text-scale, 1));padding-right:36px}
.automation-skills-grid .skill-desc{font-size:calc(10px * var(--text-scale, 1));line-height:1.35;margin-top:3px}
.automation-skills-grid .skill-mana-cost,.automation-skills-grid .skill-status{font-size:calc(9px * var(--text-scale, 1))}
.automation-skills-grid .skill-auto-badge{font-size:calc(8px * var(--text-scale, 1));top:8px;right:8px}

.resources-card,.last-drop-card{padding:14px}
.rail-card-title{margin-bottom:10px}
.rail-card-title h2{margin:0;font-size:calc(19px * var(--text-scale, 1))}
.resource-stack{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin:0!important}
.resource-stack>div{display:grid!important;grid-template-columns:38px minmax(0,1fr) auto!important;grid-template-rows:1fr!important;gap:8px!important;min-height:52px!important;padding:8px 10px!important;border-radius:10px!important;font-size:calc(10px * var(--text-scale, 1))!important}
.resource-stack>div>span{align-self:center;color:#a7afbf;font-size:calc(10px * var(--text-scale, 1))}
.resource-stack>div>strong{grid-column:3!important;align-self:center!important;margin:0!important;font-size:calc(16px * var(--text-scale, 1))!important}
.resource-stack .mini-jewel{grid-row:1!important;grid-column:1!important;width:31px!important;height:34px!important}
.resource-stack .resource-scroll{grid-template-columns:38px minmax(0,1fr) auto!important}
.resource-stack .resource-scroll>span{grid-column:2}
.resource-stack .resource-scroll>strong{grid-column:3!important;display:block!important;margin:0!important}
.resource-stack .resource-scroll::before{content:"📜";grid-column:1;align-self:center;justify-self:center;font-size:calc(22px * var(--text-scale, 1))}

.last-drop-panel{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;align-items:center;min-height:82px;padding:10px;border:1px dashed #343b49;border-radius:11px;background:#151922}
.last-drop-panel.has-drop{border-style:solid;background:linear-gradient(145deg,#1d222d,#171b23)}
.last-drop-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#222837;font-size:calc(22px * var(--text-scale, 1));font-weight:900}
.last-drop-copy{min-width:0}
.last-drop-name,.last-drop-copy span,.last-drop-copy small{display:block}
.last-drop-name{font-size:calc(13px * var(--text-scale, 1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.last-drop-copy span{margin-top:3px;color:#8f98aa;font-size:calc(9px * var(--text-scale, 1));line-height:1.35}
.last-drop-compare{margin-top:5px;font-size:calc(9px * var(--text-scale, 1));line-height:1.35}
.last-drop-compare.compare-positive{border:0;color:#83d9a1}
.last-drop-compare.compare-negative{border:0;color:#e79898}
.last-drop-compare.compare-neutral{border:0;color:#aeb6c8}

/* Special identity hint for the hybrid class in profile list */
.profile-card:has(button[data-profile-class="magic_gladiator"]){border-color:#685fa0;background:linear-gradient(155deg,rgba(74,65,122,.28),#222631 52%)}
.profile-card:has(button[data-profile-class="magic_gladiator"]) .profile-icon{box-shadow:inset 0 0 20px rgba(135,103,255,.2),0 0 16px rgba(120,88,255,.08)}

@media(max-width:1320px){
  .battle-hud-layout{grid-template-columns:300px minmax(480px,1fr) 285px;gap:12px}
  .battle-equipment-list .equipment-row{grid-template-columns:64px minmax(0,1fr)}
  .battle-equipment-list .equipment-row .slot-title{font-size:calc(10px * var(--text-scale, 1))}
  .battle-arena .fighter{padding:13px}
}
@media(max-width:1120px){
  .profile-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .battle-hud-layout{grid-template-columns:310px minmax(0,1fr)}
  .battle-right-rail{grid-column:1/-1;display:grid;grid-template-columns:1.35fr 1fr 1fr;align-items:start}
  .automation-skills-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .battle-hud-layout{grid-template-columns:1fr}
  .battle-right-rail{grid-column:auto;display:flex}
  .battle-equipment-list{grid-template-columns:1fr 1fr}
  .battle-equipment-list .wing-slot-row{grid-column:1/-1}
  .battle-arena{grid-template-columns:1fr}
  .battle-arena .versus{display:none}
  .automation-skills-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .profile-cards,.battle-equipment-list,.automation-skills-grid{grid-template-columns:1fr}
  .battle-equipment-list .wing-slot-row{grid-column:auto}
  .battle-zone-head{grid-template-columns:1fr}
  .battle-zone-head .area-requirement-box{align-items:flex-start}
  .battle-stage-progress{grid-column:1}
  .combat-secondary-stats{grid-template-columns:1fr}
  .battle-action-bar{grid-template-columns:1fr}
}


/* v0.19 visual polish */
.hero-identity{align-items:flex-start}
.hero-identity>div:last-child{min-width:0;flex:1}
.hero-identity .class-summary-icon{font-size:calc(26px * var(--text-scale, 1))}
.hero-identity h2{line-height:1.08;max-width:100%}
.hero-identity .class-summary-passive{max-width:100%;font-size:calc(11px * var(--text-scale, 1));line-height:1.35}

.modal-stat-plus{
  width:58px;height:44px;padding:0!important;
  border:1px solid #7a4d39;border-radius:10px;
  background:#5d221d url("assets/ui/stat_plus.png") center/cover no-repeat;
  color:transparent!important;font-size:0!important;line-height:0!important;
  text-indent:-9999px;overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 4px 10px rgba(0,0,0,.18);
}
.modal-stat-plus:hover{filter:brightness(1.05) saturate(1.02)}
.modal-stat-plus:focus-visible{outline:2px solid var(--focus);outline-offset:2px}


/* ===== v0.20 FINAL BATTLE HUD POLISH ===== */
.game-shell{max-width:1580px;padding:0 14px 20px}
.topbar{padding:14px 4px 10px}.topbar h1{font-size:calc(31px * var(--text-scale, 1));letter-spacing:-.8px}.version{font-size:calc(11px * var(--text-scale, 1))}.save-status{font-size:calc(11px * var(--text-scale, 1))}
.main-nav{margin-bottom:14px;box-shadow:0 8px 28px rgba(0,0,0,.15)}
.battle-hud-layout{grid-template-columns:320px minmax(560px,1fr) 300px;gap:14px}
.battle-left-rail,.battle-right-rail{gap:12px}
.hero-card,.battle-loadout-card,.battle-stage-card,.automation-card,.resources-card,.last-drop-card,.boss-intel-card{border-radius:14px}

.hero-card{padding:15px;background:linear-gradient(155deg,#202638 0,#1a1f2b 56%,#161a22 100%)}
.hero-identity{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:12px;align-items:start;margin-bottom:12px}
.hero-identity .class-summary-icon{width:52px;height:52px;font-size:calc(25px * var(--text-scale, 1));border-radius:12px}
.hero-identity h2{font-size:calc(21px * var(--text-scale, 1));line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0 5px}
.hero-identity .class-summary-passive{font-size:calc(10.5px * var(--text-scale, 1));line-height:1.35;color:#aab3c7}
.hero-run-grid{gap:7px}.hero-run-grid>div,.hero-points-button{border-radius:9px}
.hero-level-box,.hero-reset-box,.hero-gold-box{padding:9px 10px}.hero-level-box strong{font-size:calc(27px * var(--text-scale, 1))}.hero-reset-box strong,.hero-gold-box strong{font-size:calc(19px * var(--text-scale, 1))}
.hero-xp-box{padding:9px 10px}.hero-points-button{min-height:42px;background:linear-gradient(180deg,#4b5587,#3f4770)}
.hero-attributes{gap:6px}.hero-attributes>div{padding:8px 5px;border-radius:9px;background:#1c212c}
.hero-attributes strong{font-size:calc(16px * var(--text-scale, 1))}

.battle-loadout-card{padding:14px}.battle-equipment-list{gap:6px}.battle-equipment-list .equipment-row{min-height:70px;padding:8px 9px;border-radius:9px;background:linear-gradient(180deg,#202631,#1c212a)}
.battle-equipment-list .equipment-row .item-name{font-size:calc(14px * var(--text-scale, 1))}.battle-equipment-list .equipment-row .item-stat{font-size:calc(9.5px * var(--text-scale, 1))}

.battle-stage-card{position:relative;padding:15px;background:radial-gradient(circle at 50% 36%,rgba(72,82,126,.11),transparent 35%),linear-gradient(180deg,#1c212c,#171b23)}
.battle-zone-head{margin-bottom:12px;padding:11px;border-radius:11px}.battle-area-selector select{height:38px;font-size:calc(12px * var(--text-scale, 1))}.battle-stage-progress .stage-dot{height:7px}
.battle-arena{gap:10px}.battle-arena .fighter{min-height:274px;padding:14px;border-radius:13px;background:linear-gradient(180deg,rgba(36,42,55,.92),rgba(27,31,41,.96))}
.player-combat-card{border-color:#38455c!important}.enemy-combat-card{border-color:#503a3d!important}.boss-card .enemy-combat-card{border-color:#8f6c27!important;box-shadow:inset 0 0 30px rgba(215,169,68,.06)}
.battle-arena .fighter-avatar{width:48px;height:48px;font-size:calc(25px * var(--text-scale, 1))}.battle-arena .fighter h3{font-size:calc(20px * var(--text-scale, 1));margin-top:3px}
.versus{display:grid;place-items:center;width:38px;height:38px;border:1px solid #343c4e;border-radius:50%;background:#151922;color:#76819a;font-size:calc(13px * var(--text-scale, 1));font-weight:900;justify-self:center}
.enemy-role-badge{display:inline-flex;margin:2px 0 8px;padding:3px 7px;border:1px solid #363d4d;border-radius:999px;background:#171b23;color:#8f9ab0;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}
.boss-trait-badge{max-width:100%;line-height:1.25}
.battle-action-bar{gap:7px;margin-top:10px}.battle-action-bar button{min-height:44px;border-radius:9px}.compact-combat-log{margin-top:9px!important}

.battle-right-rail{position:sticky;top:10px}
.automation-card{padding:13px!important}.automation-title-row strong{font-size:calc(18px * var(--text-scale, 1))}.automation-controls{padding:8px;margin-bottom:8px}.automation-skills-grid{gap:6px}
.automation-skills-grid .skill-card{position:relative;min-height:80px;padding:10px;border-radius:9px}
.automation-skills-grid .skill-name{padding-right:44px;font-size:calc(12.5px * var(--text-scale, 1))}.automation-skills-grid .skill-desc{font-size:calc(9.5px * var(--text-scale, 1))}.automation-skills-grid .skill-auto-badge{font-size:calc(7px * var(--text-scale, 1))}
.skill-role-badge{display:inline-flex;width:max-content;margin:0 0 5px;padding:2px 6px;border:1px solid #3b4457;border-radius:999px;background:#151a23;color:#9aa7c2;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.65px}

.boss-intel-card{padding:13px;background:linear-gradient(150deg,rgba(83,64,25,.22),#181c24 58%);border-color:#514526}
.boss-intel-title{margin-bottom:8px}.boss-intel-title h2{font-size:calc(17px * var(--text-scale, 1))}
.boss-intel-main{padding:10px;border:1px solid #393527;border-radius:10px;background:rgba(14,16,22,.55)}
.boss-intel-type{display:block;color:#c7a756;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}.boss-intel-name{display:block;margin:4px 0 9px;font-size:calc(15px * var(--text-scale, 1));line-height:1.2;overflow-wrap:anywhere}
.boss-intel-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.boss-intel-grid>div{padding:7px;border-radius:8px;background:#171b22}.boss-intel-grid span{display:block;color:#777f91;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.boss-intel-grid strong{display:block;margin-top:3px;color:#cdd3df;font-size:calc(9px * var(--text-scale, 1));line-height:1.25}.boss-intel-loot{grid-column:1/-1}
.resources-card,.last-drop-card{padding:12px}.resource-stack>div{min-height:46px!important;padding:7px 9px!important}.resource-stack .mini-jewel{width:28px!important;height:31px!important}
.last-drop-panel{min-height:74px;padding:9px}

.profile-modal-card{width:min(980px,100%)}.profile-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-card{min-width:0}.profile-card h3{font-size:calc(17px * var(--text-scale, 1))}.profile-card p{font-size:calc(10px * var(--text-scale, 1));min-height:62px}

@media(max-width:1380px){.battle-hud-layout{grid-template-columns:300px minmax(520px,1fr) 285px}.hero-identity h2{font-size:calc(19px * var(--text-scale, 1))}.automation-controls .skill-mode-wrap select{width:160px}}
@media(max-width:1120px){.battle-right-rail{position:static}.profile-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-hud-layout{grid-template-columns:300px minmax(0,1fr)}.battle-right-rail{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr}.automation-skills-grid{grid-template-columns:1fr 1fr}}
@media(max-width:860px){.battle-hud-layout{grid-template-columns:1fr}.battle-right-rail{grid-column:auto;display:flex}.profile-cards{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.profile-cards{grid-template-columns:1fr}.boss-intel-grid{grid-template-columns:1fr}.boss-intel-loot{grid-column:auto}}

/* ===== v0.21 • MENU, AFK, SETS E POLIMENTO ===== */

/* Menu inicial */
.main-menu-screen{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:28px;overflow:auto;background:
  radial-gradient(circle at 50% 30%,rgba(92,31,25,.20),transparent 26%),
  radial-gradient(circle at 50% 70%,rgba(52,60,86,.20),transparent 34%),
  linear-gradient(180deg,#07090d 0,#0b0e14 50%,#050609 100%)}
.main-menu-screen::before{content:"";position:absolute;inset:18px;pointer-events:none;border:1px solid rgba(189,143,67,.24);box-shadow:inset 0 0 65px rgba(0,0,0,.86),0 0 0 1px rgba(255,255,255,.025)}
.main-menu-frame{position:relative;width:min(560px,100%);padding:46px 46px 38px;text-align:center;border:1px solid #57462f;border-radius:8px;background:linear-gradient(165deg,rgba(30,31,37,.97),rgba(12,14,19,.98));box-shadow:0 35px 100px rgba(0,0,0,.72),inset 0 0 55px rgba(139,70,28,.055)}
.main-menu-frame::before,.main-menu-frame::after{content:"";position:absolute;left:42px;right:42px;height:1px;background:linear-gradient(90deg,transparent,#b78b43,transparent)}
.main-menu-frame::before{top:18px}.main-menu-frame::after{bottom:18px}
.main-menu-kicker{display:block;margin-bottom:12px;color:#bf9b60;font-size:calc(10px * var(--text-scale, 1));font-weight:900;letter-spacing:3.2px}
.main-menu-frame h1{margin:0;color:#f6eee0;font-size:calc(48px * var(--text-scale, 1));letter-spacing:-1.8px;text-shadow:0 2px 18px rgba(0,0,0,.8)}
.main-menu-frame p{max-width:420px;margin:13px auto 28px;color:#9ea4b0;font-size:calc(13px * var(--text-scale, 1));line-height:1.6}
.main-menu-actions{display:grid;gap:10px;width:min(330px,100%);margin:0 auto}
.main-menu-actions button{min-height:52px;border-radius:7px;font-size:calc(13px * var(--text-scale, 1));letter-spacing:.7px}
.main-menu-primary{border:1px solid #b77a19;background:linear-gradient(180deg,var(--accent),#79500f);color:#fff0ba;box-shadow:inset 0 1px rgba(255,255,255,.08),0 8px 24px rgba(0,0,0,.28)}
.main-menu-secondary{border:1px solid #414754;background:linear-gradient(180deg,#343a47,#272c36);color:#d5d9e1}
.main-menu-frame small{display:block;margin-top:25px;color:#606875;font-size:calc(9px * var(--text-scale, 1));letter-spacing:.3px}

/* Opções */
.options-modal-card{width:min(560px,100%)}
.options-list{display:grid;gap:9px}
.option-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 15px;border:1px solid #343b49;border-radius:10px;background:#1d222c;cursor:pointer}
.option-row strong,.option-row span{display:block}.option-row strong{font-size:calc(13px * var(--text-scale, 1))}.option-row span{margin-top:4px;color:#8992a3;font-size:calc(10px * var(--text-scale, 1));line-height:1.4}
.option-row input{width:22px;height:22px;accent-color:#a8513e;cursor:pointer;flex:0 0 auto}
.option-volume-row{cursor:default}.option-range{display:flex;align-items:center;gap:10px;min-width:210px}.option-range input[type="range"]{width:160px;height:5px;accent-color:#d46a4c}.option-range b{min-width:38px;color:#f2bd7a;font-size:calc(11px * var(--text-scale, 1));text-align:right}
.options-reset-button{width:100%;margin-top:14px;border:1px solid #444b59;background:#313743;color:#c9ced8}

/* Seleção de personagem inspirada em uma tela clássica de RPG */
.profile-backdrop{z-index:1050;padding:18px;background:
  radial-gradient(circle at 50% 22%,rgba(76,89,116,.18),transparent 28%),
  radial-gradient(circle at 50% 92%,rgba(112,66,32,.14),transparent 32%),
  linear-gradient(180deg,rgba(4,7,12,.98),rgba(9,11,16,.99));backdrop-filter:none}
.profile-backdrop::before{content:"";position:absolute;inset:12px;pointer-events:none;border:2px solid rgba(111,100,83,.35);box-shadow:inset 0 0 75px rgba(0,0,0,.9)}
.profile-modal-card{position:relative;width:min(1240px,100%)!important;max-height:94vh!important;padding:22px 24px 26px!important;border:1px solid #4a453e!important;border-radius:6px!important;background:
  radial-gradient(circle at 50% 46%,rgba(39,48,64,.25),transparent 36%),
  linear-gradient(180deg,rgba(24,28,35,.96),rgba(11,13,18,.98))!important;box-shadow:0 30px 100px rgba(0,0,0,.72),inset 0 0 70px rgba(0,0,0,.36)!important}
.profile-modal-card .modal-title-row{align-items:center;margin-bottom:18px;padding:0 2px 14px;border-bottom:1px solid #343840}
.profile-overline{display:block;margin-bottom:5px;color:#b4955f;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:2.2px}
.profile-modal-card .modal-title-row h2{font-size:calc(24px * var(--text-scale, 1))}.profile-modal-card .modal-title-row p{font-size:calc(10px * var(--text-scale, 1))}
.profile-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}
.profile-card{position:relative;display:flex;flex-direction:column;min-height:410px!important;padding:0!important;overflow:hidden;border:1px solid #3a3f48!important;border-radius:6px!important;background:linear-gradient(180deg,#171b23,#11141a 68%)!important;box-shadow:0 14px 32px rgba(0,0,0,.28)}
.profile-card::after{content:"";position:absolute;left:12%;right:12%;top:205px;height:30px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.72),transparent 68%);filter:blur(2px);pointer-events:none}
.profile-character-visual{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:238px;padding:20px 12px 18px;border-bottom:1px solid rgba(255,255,255,.04);background:radial-gradient(circle at 50% 48%,rgba(102,115,150,.13),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.02),transparent)}
.profile-icon{position:relative;z-index:1;display:grid!important;place-items:center!important;width:118px!important;height:148px!important;margin:0 0 7px!important;border:0!important;background:transparent!important;font-size:calc(82px * var(--text-scale, 1))!important;filter:drop-shadow(0 14px 12px rgba(0,0,0,.55));transform:translateY(4px)}
.profile-class-name{position:relative;z-index:2;color:#f1e8da;font-size:calc(15px * var(--text-scale, 1));font-weight:900;text-shadow:0 2px 5px rgba(0,0,0,.9)}
.profile-character-copy{display:flex;flex:1;flex-direction:column;padding:13px 14px 14px}
.profile-character-copy p{min-height:42px!important;margin:0!important;color:#858e9f!important;font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.45!important}
.profile-status{display:grid!important;grid-template-columns:1fr 1fr;gap:5px!important;margin:10px 0!important;color:#d7dbe3!important;font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.25!important}
.profile-status span{padding:6px 7px;border:1px solid #303540;border-radius:6px;background:#151920}.profile-status b{color:#777f90;font-size:calc(7px * var(--text-scale, 1));letter-spacing:.7px}
.profile-status .profile-area{grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-empty-slot{grid-column:1/-1!important;text-align:center;color:#6f788a!important;letter-spacing:1px}
.profile-actions{grid-template-columns:1fr auto!important;margin-top:auto}.profile-actions button{min-height:36px;padding:8px 10px;border-radius:5px;font-size:calc(9px * var(--text-scale, 1))}.profile-delete-button{width:68px;background:#582d2d!important;color:#d9b3b3}
.profile-card:hover{transform:translateY(-3px);border-color:#686257!important;box-shadow:0 20px 44px rgba(0,0,0,.42)}
.profile-class-warrior .profile-character-visual{background:radial-gradient(circle at 50% 48%,rgba(176,72,48,.18),transparent 40%)}
.profile-class-mage .profile-character-visual{background:radial-gradient(circle at 50% 48%,rgba(80,102,202,.20),transparent 40%)}
.profile-class-archer .profile-character-visual{background:radial-gradient(circle at 50% 48%,rgba(68,151,94,.18),transparent 40%)}
.profile-class-magic_gladiator{border-color:#665684!important}.profile-class-magic_gladiator .profile-character-visual{background:radial-gradient(circle at 50% 48%,rgba(133,73,194,.22),transparent 40%)}

/* Botão de atributos: usa o ícone fornecido */
.modal-stat-plus{background:transparent url("assets/ui/stat_plus.png") center/contain no-repeat!important;border-color:#653e32!important}
.hero-points-button{display:flex;align-items:center;justify-content:center;gap:7px;padding:4px 8px!important;overflow:hidden;background:linear-gradient(180deg,#342b2a,#24252c)!important;border-color:#574038!important}
.stat-plus-inline-icon{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45));flex:0 0 auto}
/* BUG-004 — "VER DETALHES" transbordava 3px na escala de texto 130%.
   `white-space:nowrap` proibia a quebra e a caixa nao tinha para onde crescer,
   entao o texto saia por fora. O `letter-spacing` de 0,45px, que existe para o
   rotulo respirar em 100%, e justamente o que estoura primeiro quando a fonte
   sobe -- ele encolhe junto com a escala. `min-width:0` deixa a caixa participar
   do encolhimento do flex em vez de segurar a largura do conteudo. */
.hero-points-label{font-size:calc(10px * var(--text-scale, 1));
  letter-spacing:calc(.45px / var(--text-scale, 1));white-space:nowrap;
  min-width:0;overflow:hidden;text-overflow:ellipsis}
.hero-points-button .stat-point-badge{margin-left:auto}

/* XP: mantém atual / necessário na mesma linha */
.hero-xp-box .run-xp-label{align-items:center!important;flex-wrap:nowrap!important;white-space:nowrap!important}
.hero-xp-box .run-xp-label strong{display:inline-flex!important;align-items:center;gap:4px;flex:0 0 auto;white-space:nowrap;line-height:1}
.hero-xp-box .run-xp-label strong span{display:inline!important;white-space:nowrap!important}

/* Jogo 100% AFK: a barra de ação vira um status + Auto Boss */
.afk-action-bar{grid-template-columns:minmax(0,1fr) minmax(180px,.72fr)!important;align-items:stretch}
.afk-status{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 10px;align-items:center;min-height:44px;padding:8px 11px;border:1px solid #36533f;border-radius:9px;background:linear-gradient(180deg,rgba(46,91,62,.17),#1b2420);color:#9ba6a0}
.afk-status span{font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}.afk-status strong{grid-row:1/3;grid-column:2;color:#76d394;font-size:calc(12px * var(--text-scale, 1))}.afk-status small{font-size:calc(8px * var(--text-scale, 1));color:#77847b}

/* Bônus de conjunto */
.set-bonus-panel{display:grid;gap:3px;margin-top:8px;padding:9px 10px;border:1px dashed #343b48;border-radius:9px;background:#151920}
.set-bonus-label{color:#7d8698;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:1.1px}.set-bonus-panel strong{font-size:calc(10px * var(--text-scale, 1));color:#c6cbd5}.set-bonus-panel small{font-size:calc(8px * var(--text-scale, 1));line-height:1.35;color:#788193}
.set-bonus-panel.active{border-style:solid;border-color:#8c7136;background:linear-gradient(135deg,rgba(119,84,24,.16),#171a20);box-shadow:inset 0 0 22px rgba(215,169,68,.045)}
.set-bonus-panel.active .set-bonus-label{color:#caa958}.set-bonus-panel.active strong{color:#f1d78d}.set-bonus-panel.active small{color:#c6b681}

/* Equipamentos +7 a +11 ganham identidade dourada */
.enhancement-gold{border-color:#c79a37!important;background:linear-gradient(120deg,rgba(132,94,24,.20),rgba(35,31,24,.92) 42%,rgba(83,58,16,.12))!important;box-shadow:0 0 16px rgba(221,171,58,.15),inset 0 0 18px rgba(255,207,86,.045)!important}
.enhancement-gold .item-name,.enhancement-gold .forge-target-name,.enhancement-gold h4{text-shadow:0 0 9px rgba(255,202,73,.20)}
.enhancement-gold .enhance-badge{border-color:#d2aa50!important;background:#76591d!important;color:#ffedb2!important;box-shadow:0 0 8px rgba(222,171,55,.20)}

/* Opções de performance/visual */
body.combat-fx-off .damage-layer{display:none!important}
body.combat-history-off .combat-history{display:none!important}
body.combat-history-off .compact-combat-log{min-height:auto!important}

@media(max-width:1120px){
  .profile-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .profile-card{min-height:360px!important}.profile-character-visual{height:200px}.profile-icon{height:120px!important;font-size:calc(68px * var(--text-scale, 1))!important}
}
@media(max-width:620px){
  .main-menu-frame{padding:38px 22px 30px}.main-menu-frame h1{font-size:calc(36px * var(--text-scale, 1))}
  .profile-cards{grid-template-columns:1fr!important}.profile-card{min-height:0!important}.profile-character-visual{height:170px}
  .afk-action-bar{grid-template-columns:1fr!important}.hero-points-label{display:none}.stat-plus-inline-icon{width:32px;height:32px}
}

/* =====================================================
   v0.22 — Boss clarity, smart equipment, tooltips & reset polish
   ===================================================== */

/* Context help */
.help-target{cursor:help}
.game-tooltip{position:fixed;z-index:5000;max-width:310px;padding:10px 12px;border:1px solid #655437;border-radius:8px;background:rgba(12,14,19,.97);box-shadow:0 14px 42px rgba(0,0,0,.55);color:#d9dde6;font-size:calc(11px * var(--text-scale, 1));line-height:1.48;pointer-events:none;white-space:normal}
.game-tooltip::before{content:"?";display:inline-grid;place-items:center;float:left;width:18px;height:18px;margin:0 7px 2px 0;border-radius:50%;background:#6c5529;color:#f8d98b;font-size:calc(10px * var(--text-scale, 1));font-weight:900}

/* Attribute modal now follows the same dark RPG language as the rest of the game */
.stat-modal-card{width:min(620px,100%)!important;padding:0!important;overflow:hidden!important;border:1px solid #665335!important;border-radius:10px!important;background:linear-gradient(180deg,#191d25,#101319)!important;box-shadow:0 30px 90px rgba(0,0,0,.68),inset 0 0 45px rgba(169,112,42,.035)!important}
.stat-modal-title{margin:0!important;padding:18px 20px 15px;border-bottom:1px solid #3a3328;background:linear-gradient(180deg,rgba(111,72,31,.15),rgba(18,21,28,.35))}
.stat-modal-overline{display:block;margin-bottom:5px;color:#b7965b;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:1.8px}
.stat-modal-card .modal-title-row h2{font-family:var(--font-display);color:#f1e7d5;font-size:calc(24px * var(--text-scale, 1))}
.stat-modal-card .modal-title-row p{color:#9c8c75}
.stat-modal-card .modal-close-button{border:1px solid #4a4032;background:#282725;color:#d8c7a8}
.stat-modal-card .available-points-big{margin:16px 18px 8px;padding:14px 15px;border:1px solid #4b3f2b;border-radius:8px;background:linear-gradient(90deg,#15191f,#201b14);color:#a9a091}
.stat-modal-card .available-points-big strong{color:#ffd671;text-shadow:0 0 10px rgba(255,199,80,.18)}
.stat-modal-card .recommended-info{margin:0 18px 8px;padding:10px 12px;border:1px solid #343b48;border-radius:8px;background:#151920;color:#aeb5c3}
.stat-modal-card .recommended-button{width:calc(100% - 36px);margin:0 18px 12px;min-height:40px;border:1px solid #8b6730;border-radius:7px;background:linear-gradient(180deg,#816027,#654716);color:#fff0c2}
.stat-modal-card .stat-modal-grid{gap:7px;padding:0 18px 18px}
.stat-modal-card .stat-modal-row{min-height:68px;padding:10px 12px;border:1px solid #333945;border-radius:8px;background:linear-gradient(180deg,#202630,#1b2029)}
.stat-modal-card .stat-modal-row>div:first-child strong{color:#e8dcc7;font-size:calc(14px * var(--text-scale, 1))}
.dark-lord-companions{display:flex;flex-direction:column;gap:8px;grid-column:1/-1;background:none!important;border:none!important;padding:0!important;min-height:0!important}
.dark-lord-companion-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #333945;border-radius:8px;background:linear-gradient(180deg,#202630,#1b2029)}
.dark-lord-companion-toggle strong{display:block;color:#e8dcc7;font-size:calc(13px * var(--text-scale, 1))}
.dark-lord-companion-toggle span{color:#9aa3b2;font-size:calc(11px * var(--text-scale, 1))}
.dark-lord-companion-toggle button{border:1px solid #4a3a6a;border-radius:6px;background:linear-gradient(180deg,#3a2d5c,#241a3c);color:#e6dcff;padding:8px 14px;font-weight:700;cursor:pointer}
.dark-lord-companion-toggle button.active{border-color:#8b6730;background:linear-gradient(180deg,#816027,#654716);color:#fff0c2}
.dark-lord-companion-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:6px;vertical-align:middle}
.dark-lord-companion-icon{width:22px;height:22px;object-fit:contain;display:block}
.dark-lord-companion-icon-wrap span{font-size:16px!important;line-height:1}
.battle-raven-panel{position:absolute;top:100%;right:0;margin-top:6px;z-index:54}
.battle-raven-panel .battle-pet-toggle{border-color:#4a3a6a}
.battle-raven-panel.active .battle-pet-toggle{border-color:#8b6730;box-shadow:0 0 0 1px #8b6730 inset,0 5px 16px rgba(0,0,0,.18)}
.item-art-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.6em;line-height:1}
.stat-modal-card .stat-modal-row>div:first-child span{color:#7f8798;font-size:calc(9px * var(--text-scale, 1))}
.stat-modal-card .stat-modal-value strong{color:#f1f3f6;font-size:calc(16px * var(--text-scale, 1))}
.stat-modal-card .stat-modal-value small{color:#79c996}
.stat-modal-card .modal-stat-plus{width:52px;height:52px;border-color:#6f4e33!important;border-radius:8px!important;box-shadow:0 5px 14px rgba(0,0,0,.28)!important}

/* Reset presentation */
.reset-modal-card{width:min(520px,100%);padding:30px 30px 26px!important;text-align:center;border:1px solid #725a31!important;border-radius:10px!important;background:radial-gradient(circle at 50% 0,rgba(185,124,42,.17),transparent 42%),linear-gradient(180deg,#1d2027,#111419)!important;box-shadow:0 35px 100px rgba(0,0,0,.72),0 0 48px rgba(189,131,45,.08)!important}
.reset-emblem{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 12px;border:1px solid #8d6b36;border-radius:50%;background:radial-gradient(circle,#5a421d,#1c1b18 68%);box-shadow:0 0 24px rgba(216,168,71,.16);font-size:calc(32px * var(--text-scale, 1))}
.reset-overline{display:block;color:#c4a25f;font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:2.4px}
.reset-modal-card h2{margin:6px 0 6px;color:#f3dfb0;font-family:Georgia,serif;font-size:calc(30px * var(--text-scale, 1));text-shadow:0 2px 14px rgba(0,0,0,.6)}
.reset-modal-card>p{margin:0 auto 18px;max-width:390px;color:#9ca4b1;font-size:calc(12px * var(--text-scale, 1));line-height:1.5}
.reset-reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.reset-reward-grid>div{padding:13px;border:1px solid #3b3d3f;border-radius:8px;background:#171b21}
.reset-reward-grid span{display:block;color:#777f8e;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}
.reset-reward-grid strong{display:block;margin-top:5px;color:#ffd878;font-size:calc(19px * var(--text-scale, 1))}
.reset-preserved{padding:12px 13px;margin-bottom:14px;border:1px solid #313845;border-radius:8px;background:#14181e;text-align:left}
.reset-preserved strong,.reset-preserved span{display:block}.reset-preserved strong{margin-bottom:5px;color:#d7c39d;font-size:calc(10px * var(--text-scale, 1))}.reset-preserved span{color:#8992a2;font-size:calc(10px * var(--text-scale, 1));line-height:1.5}
.reset-continue-button{width:100%;min-height:44px;border:1px solid #8f6b32;background:linear-gradient(180deg,#8b672c,#684918);color:#fff0bf}

/* Loadout buttons */
.loadout-title-actions{display:flex;align-items:center;gap:6px}
.smart-equip-button{border:1px solid #80652f!important;background:linear-gradient(180deg,#6d5627,#4d3c1c)!important;color:#ffe7a6!important;box-shadow:inset 0 1px rgba(255,255,255,.05)}
.smart-equip-button:hover{filter:brightness(1.12)}
.battle-loadout-card .smart-equip-button{min-height:36px;padding:8px 9px;font-size:calc(9px * var(--text-scale, 1))}
.smart-upgrade-note{color:#d9bd72!important}
.set-ready-badge{padding:4px 8px;border:1px solid #89713b;border-radius:999px;background:rgba(128,91,29,.18);color:#f1d27d;font-size:calc(9px * var(--text-scale, 1));font-weight:900}

/* Item image identity */
.slot-visual{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-width:0}
.slot-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.equipment-row .slot-title{grid-row:auto!important;align-self:auto!important;text-align:center}
.equipment-actions{grid-column:auto!important}
.equipment-item-art,.inventory-item-art,.forge-list-art,.forge-target-art,.shop-item-art,.last-drop-art,.loot-toast-art,.wing-card-art{display:block;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.42))}
.equipment-item-art{width:46px;height:46px}
.equipment-art-placeholder{display:grid;place-items:center;width:44px;height:44px;border:1px dashed #3d4553;border-radius:8px;background:#151a21;color:#4d5666;font-size:calc(17px * var(--text-scale, 1))}
.inventory-group{grid-template-columns:28px 58px minmax(0,1fr) auto!important}
.inventory-item-art{width:54px;height:54px;border:1px solid #39404c;border-radius:10px;background:#151a21}
.forge-list-item{grid-template-columns:54px minmax(0,1fr) auto!important}
.forge-list-art{width:50px;height:50px;border:1px solid #3a414d;border-radius:9px;background:#151a21}
.forge-target-identity{display:flex;align-items:center;gap:12px;margin-bottom:9px}
.forge-target-art{width:62px;height:62px;border:1px solid #424855;border-radius:10px;background:#171b22}
.shop-item-visual{display:flex;align-items:center;gap:10px}
.shop-item-art{width:58px;height:58px;border:1px solid #3c4350;border-radius:10px;background:#151a21;flex:0 0 auto}
.last-drop-art{width:39px;height:39px}.loot-toast-art{width:42px;height:42px}.wing-card-art{width:42px;height:42px}
.last-drop-icon,.loot-toast-icon{overflow:hidden}
.wing-icon{font-size:0!important;overflow:hidden}

/* Boss clarity and controls */
.boss-intel-card{position:relative;overflow:visible!important;background:radial-gradient(circle at 50% 0,rgba(168,113,32,.12),transparent 30%),linear-gradient(155deg,rgba(68,51,22,.27),#181c24 55%)!important}
.boss-intel-name-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.boss-intel-name-row>div{min-width:0}
.boss-ready-state{flex:0 0 auto;padding:5px 7px;border:1px solid #3c424d;border-radius:999px;background:#151920;color:#7f8797;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}
.boss-ready-state.ready{border-color:#8e7136;background:#332816;color:#f0ce79;box-shadow:0 0 10px rgba(214,164,62,.09)}
.boss-ready-state.fighting{border-color:#9a4b3f;background:#3a1c19;color:#ffb49e;animation:bossStatusPulse 1.1s ease-in-out infinite alternate}
@keyframes bossStatusPulse{to{box-shadow:0 0 14px rgba(224,88,65,.22)}}
.boss-set-target{grid-column:1/-1}
.boss-drop-preview{display:grid;gap:5px;margin-top:7px;padding:8px;border:1px solid #383426;border-radius:8px;background:#12161c}
.boss-drop-preview>div{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.boss-drop-preview span{color:#777f8e;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}
.boss-drop-preview strong{color:#c8ced8;font-size:calc(8px * var(--text-scale, 1));text-align:right;line-height:1.35}
.boss-control-panel{display:grid;gap:7px;margin-top:8px;padding-top:8px;border-top:1px solid #3a3327}
.boss-control-panel label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px}
.boss-control-panel label>span{color:#8b826f;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}
.boss-control-panel select{width:100%;min-width:0;padding:7px 8px;border:1px solid #47402f;border-radius:6px;background:#12161c;color:#e1d8c7;font-size:calc(8px * var(--text-scale, 1));font-weight:800}
.boss-control-button{width:100%;min-height:38px;border:1px solid #80662f!important;background:linear-gradient(180deg,#6d5525,#4e3b18)!important;color:#f6d98b!important;font-size:calc(9px * var(--text-scale, 1))!important}
.boss-control-button.active{border-color:#d1a24a!important;background:linear-gradient(180deg,#9b742b,#6d501e)!important;color:#fff2bf!important;box-shadow:0 0 14px rgba(216,169,69,.16)!important}
.boss-control-panel small{color:#716f69;font-size:calc(7.5px * var(--text-scale, 1));line-height:1.4}
.boss-status-pill{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:44px;padding:8px 11px;border:1px solid #3b3f49;border-radius:9px;background:#1a1e25;color:#8991a0}
.boss-status-pill span{font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.boss-status-pill strong{color:#7e8798;font-size:calc(9px * var(--text-scale, 1))}
.boss-status-pill.active{border-color:#7d6635;background:linear-gradient(180deg,rgba(104,76,28,.17),#1a1d21)}.boss-status-pill.active strong{color:#f0ce78}

/* Boss combat effects */
.battle-stage-card{position:relative;overflow:hidden}
.boss-fx-layer{position:absolute;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;background:transparent}
.boss-fx-layer strong{padding:10px 18px;border:1px solid transparent;border-radius:8px;background:rgba(9,11,15,.82);font-family:Georgia,serif;font-size:calc(20px * var(--text-scale, 1));letter-spacing:.4px;text-align:center;transform:scale(.92)}
.boss-fx-layer.show{animation:bossFxFade .9s ease-out forwards}.boss-fx-layer.show strong{animation:bossFxText .9s ease-out forwards}
.boss-fx-layer.arrival{background:radial-gradient(circle,rgba(206,151,55,.16),transparent 55%)}.boss-fx-layer.arrival strong{border-color:#94743a;color:#ffe4a0}
.boss-fx-layer.special{background:radial-gradient(circle,rgba(165,75,55,.12),transparent 58%)}.boss-fx-layer.special strong{border-color:#7d463d;color:#ffc0a9}
.boss-fx-layer.enrage{background:radial-gradient(circle,rgba(210,55,39,.18),transparent 58%)}.boss-fx-layer.enrage strong{border-color:#9b3b31;color:#ff9b83}
@keyframes bossFxFade{0%{opacity:0}16%{opacity:1}70%{opacity:1}100%{opacity:0}}
@keyframes bossFxText{0%{transform:scale(.82);opacity:0}18%{transform:scale(1.05);opacity:1}100%{transform:scale(1);opacity:0}}

/* +7..+11 remains gold, now the art also receives the glow */
/* v0.101: o filter/glow por-arte daqui foi substituído pela regra central (hoje `.refino`,
   fim do arquivo; efeito em src/visual/refino.js) — mantido só o tom de borda; wing-card-art
   nunca chega a receber enhancement-gold (wingCardHtml() não aplica essa classe), então
   removê-lo daqui é cosmético, não uma exclusão nova de asas. */
.enhancement-gold .equipment-item-art,.enhancement-gold .inventory-item-art,.enhancement-gold .forge-list-art,.enhancement-gold .forge-target-art{border-color:#b98b32!important}

@media(max-width:760px){
  .inventory-group{grid-template-columns:28px 48px minmax(0,1fr)!important}.inventory-item-art{width:46px;height:46px}.group-action{grid-column:3;justify-content:flex-start}
  .loadout-title-actions{flex-wrap:wrap;justify-content:flex-end}.boss-control-panel label{grid-template-columns:1fr}.boss-drop-preview>div{display:block}.boss-drop-preview strong{display:block;margin-top:3px;text-align:left}
}
@media(max-width:520px){
  .inventory-group{grid-template-columns:28px 44px minmax(0,1fr)!important}.group-action{grid-column:3!important}.reset-reward-grid{grid-template-columns:1fr}.stat-modal-card .stat-modal-grid{padding-left:12px;padding-right:12px}.stat-modal-card .available-points-big,.stat-modal-card .recommended-info{margin-left:12px;margin-right:12px}.stat-modal-card .recommended-button{width:calc(100% - 24px);margin-left:12px;margin-right:12px}
}

/* ===== v0.23 — Collections, AFK loot rules and farm metrics ===== */
.main-nav .nav-button{min-width:0;font-size:calc(10px * var(--text-scale, 1));white-space:nowrap}

/* Farm metrics */
.farm-stats-card{padding:13px;background:linear-gradient(155deg,#1b212b,#171a21)}
.farm-stats-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.farm-stats-title h2{font-size:calc(17px * var(--text-scale, 1))}
.farm-session-reset{padding:6px 8px;border:1px solid #424956;border-radius:6px;background:#242a34;color:#aab2c1;font-size:calc(7px * var(--text-scale, 1))}
.farm-rate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:7px}.farm-rate-grid>div{padding:8px;border:1px solid #343b47;border-radius:8px;background:#141920;text-align:center}.farm-rate-grid span{display:block;color:#737d8f;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.farm-rate-grid strong{display:block;margin-top:4px;color:#e3e7ee;font-size:calc(13px * var(--text-scale, 1))}
.farm-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:5px}.farm-detail-list span{display:flex;justify-content:space-between;gap:6px;padding:6px 7px;border-radius:6px;background:#151920;color:#7e8798;font-size:calc(8px * var(--text-scale, 1))}.farm-detail-list strong{color:#c7ced9}
.farm-last-legendary{margin-top:7px;padding:8px;border:1px solid #4c4026;border-radius:7px;background:rgba(95,67,22,.11)}.farm-last-legendary span,.farm-last-legendary strong{display:block}.farm-last-legendary span{color:#9f8547;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.farm-last-legendary strong{margin-top:4px;color:#e6c975;font-size:calc(8px * var(--text-scale, 1));line-height:1.35}

/* AFK loot filter */
.loot-filter-card{margin-bottom:14px;padding:16px 18px;background:linear-gradient(150deg,#1b2029,#171a21)}
.loot-filter-card .card-title-row{margin-bottom:10px}.loot-filter-card h2{font-size:calc(18px * var(--text-scale, 1))}.loot-filter-status{padding:5px 8px;border:1px solid #3d4451;border-radius:999px;background:#151920;color:#7c8595;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.loot-filter-status.active{border-color:#80672f;background:#322817;color:#f0ce79}
.loot-filter-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:8px}.loot-filter-grid>label{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid #343b47;border-radius:9px;background:#151920;color:#aeb6c4}.loot-filter-grid label>span{display:block}.loot-filter-grid label strong,.loot-filter-grid label small{display:block}.loot-filter-grid label strong{font-size:calc(9px * var(--text-scale, 1))}.loot-filter-grid label small{margin-top:3px;color:#737d8e;font-size:calc(8px * var(--text-scale, 1));line-height:1.35}.loot-filter-grid input[type="checkbox"]{margin-top:2px;accent-color:#c49a45}.loot-filter-mode{display:block!important}.loot-filter-mode>span{margin-bottom:6px;color:#7e8797;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.loot-filter-mode select{width:100%;padding:9px;border:1px solid #424956;border-radius:7px;background:#11161d;color:#d7dce5;font-size:calc(9px * var(--text-scale, 1));font-weight:800}.loot-filter-help{margin:9px 1px 0;color:#7e8796;font-size:calc(9px * var(--text-scale, 1));line-height:1.5}.loot-filter-help strong{color:#c9b478}

/* Favorite / lock */
.favorite-badge,.locked-badge{padding:4px 7px;border-radius:999px;font-size:calc(8px * var(--text-scale, 1));font-weight:900}.favorite-badge{border:1px solid #8d7237;background:rgba(130,94,30,.14);color:#f0ce76}.locked-badge{border:1px solid #596273;background:#242a34;color:#c6cedc}.inventory-group.favorite-item{border-color:#776334}.inventory-group.locked-item{box-shadow:inset 3px 0 0 #667083}
.protection-actions{align-items:center}.favorite-button,.lock-button{min-width:32px;padding:7px!important;border:1px solid #3e4552!important;background:#242a33!important;color:#aeb6c5!important}.favorite-button.active{border-color:#8e7338!important;background:#4b3b1e!important;color:#ffe198!important}.lock-button.active{border-color:#667181!important;background:#303744!important;color:#e0e6ef!important}

/* Collection pages */
.collection-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}.collection-summary>div{padding:13px 15px;border:1px solid #353d49;border-radius:10px;background:#181d25}.collection-summary span,.collection-summary strong{display:block}.collection-summary span{color:#747e90;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.collection-summary strong{margin-top:5px;color:#dce1e9;font-size:calc(13px * var(--text-scale, 1))}
.sets-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.set-collection-card{position:relative;overflow:hidden;padding:14px;border:1px solid #353c48;border-radius:11px;background:linear-gradient(150deg,#1d222b,#171a21)}.set-collection-card.complete{border-color:#6b5a31}.set-collection-card.active{border-color:#a17e36;box-shadow:0 0 18px rgba(210,161,59,.10),inset 0 0 24px rgba(164,119,38,.05)}
.set-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.set-card-head span{color:#7d8798;font-size:calc(8px * var(--text-scale, 1));font-weight:900}.set-card-head h3{margin:3px 0 0;color:#e2e6ed;font-size:calc(15px * var(--text-scale, 1))}.set-card-head>strong{display:grid;place-items:center;min-width:38px;height:30px;border:1px solid #454c58;border-radius:8px;background:#151920;color:#d7dde6;font-size:calc(11px * var(--text-scale, 1))}.set-collection-card.complete .set-card-head>strong{border-color:#8a6e34;color:#f0d181}
.set-piece-row{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:10px}.set-piece{padding:7px 4px;border:1px solid #343b46;border-radius:6px;background:#151920;text-align:center;color:#687284;font-size:calc(8px * var(--text-scale, 1));font-weight:800}.set-piece.owned{border-color:#4a654f;background:rgba(47,91,57,.12);color:#8fd19c}
.set-bonus-copy,.set-farm-source{margin-top:8px;padding-top:8px;border-top:1px solid #303642}.set-bonus-copy span,.set-farm-source span{display:block;color:#756f60;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.6px}.set-bonus-copy strong{display:block;margin-top:4px;color:#d7c38c;font-size:calc(9px * var(--text-scale, 1))}.set-farm-source p{margin:4px 0 0;color:#8992a2;font-size:calc(8px * var(--text-scale, 1));line-height:1.45}.set-active-ribbon{position:absolute;top:10px;right:-30px;width:105px;padding:4px 0;transform:rotate(35deg);background:#8b6729;color:#fff0bd;text-align:center;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}

.codex-toolbar-card{margin-bottom:12px;padding:13px}.codex-toolbar{display:grid;grid-template-columns:1.4fr .8fr 150px;gap:9px;align-items:end}.codex-toolbar label>span,.codex-count span{display:block;margin-bottom:5px;color:#747e90;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.codex-toolbar input,.codex-toolbar select{width:100%;height:38px;padding:8px 10px;border:1px solid #3d4552;border-radius:8px;background:#131820;color:#dce1e8}.codex-count{padding:8px 11px;border:1px solid #3a414d;border-radius:8px;background:#151a21}.codex-count strong{font-size:calc(14px * var(--text-scale, 1));color:#e0e5ed}
.codex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.codex-entry{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;padding:13px;border:1px solid #363e49;border-radius:11px;background:linear-gradient(150deg,#1d222b,#171a21)}.codex-entry.codex-boss{border-color:#53472c;background:linear-gradient(150deg,rgba(87,62,22,.18),#171a21 55%)}.codex-entry.codex-rare{border-color:#8d6727;box-shadow:0 0 18px rgba(220,166,55,.08)}.codex-entry.undiscovered{opacity:.58;filter:saturate(.45)}.codex-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid #3b4350;border-radius:10px;background:#12171e;font-size:calc(28px * var(--text-scale, 1))}.codex-kind{display:block;color:#7b8494;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.codex-entry h3{margin:3px 0 7px;color:#e1e5ec;font-size:calc(15px * var(--text-scale, 1))}.codex-entry p{margin:4px 0;color:#8d96a5;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}.codex-entry p strong{color:#cbd1db}.codex-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px}.codex-tags span{padding:3px 6px;border:1px solid #3e4652;border-radius:999px;background:#151a21;color:#9ba4b4;font-size:calc(7px * var(--text-scale, 1));font-weight:900}.collection-empty{grid-column:1/-1;padding:30px;border:1px dashed #39414e;border-radius:11px;background:#151920;color:#7d8797;text-align:center}

@media(max-width:1100px){.loot-filter-grid{grid-template-columns:1fr 1fr}.sets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.codex-grid{grid-template-columns:1fr}.main-nav{flex-wrap:wrap}.main-nav .nav-button{flex:1 1 23%}}
@media(max-width:760px){.loot-filter-grid,.collection-summary,.sets-grid,.codex-toolbar{grid-template-columns:1fr}.farm-rate-grid{grid-template-columns:1fr 1fr 1fr}.farm-detail-list{grid-template-columns:1fr}.main-nav .nav-button{flex:1 1 45%}.protection-actions{grid-column:3!important;flex-wrap:wrap}}
@media(max-width:520px){.farm-rate-grid{grid-template-columns:1fr}.codex-entry{grid-template-columns:44px 1fr}.codex-icon{width:44px;height:44px;font-size:calc(22px * var(--text-scale, 1))}.set-piece-row{grid-template-columns:1fr}}

/* =====================================================
   v0.24 — Ancient, opções especiais, áreas favoritas e Pets
   ===================================================== */

/* Raridade Ancient: exclusiva de Boss e visualmente acima de Legendary */
.rarity-ancient{color:#6ff0b0!important;text-shadow:0 0 10px rgba(73,232,159,.30)}
.rarity-badge.rarity-ancient,.loot-toast-icon.rarity-ancient{border:1px solid #3f9f76;background:linear-gradient(145deg,rgba(25,94,67,.30),#17241f);color:#8affc5!important;box-shadow:inset 0 0 20px rgba(75,239,166,.16),0 0 12px rgba(62,202,140,.12)}
.inventory-group:has(.rarity-ancient),.equipment-row:has(.rarity-ancient),.forge-list-item:has(.rarity-ancient),.shop-item:has(.rarity-ancient){border-color:#39785f!important;box-shadow:inset 3px 0 0 rgba(79,220,157,.48),0 0 14px rgba(57,181,127,.08)}

/* Dano Excelente: verde e distinto do crítico, inclusive quando ambos acontecem */
.damage-number.excellent{color:#71ff9a!important;font-size:calc(39px * var(--text-scale, 1))!important;letter-spacing:.3px;text-shadow:0 0 8px rgba(53,255,119,.78),0 2px 10px rgba(0,0,0,.9)!important;animation:excellentFloat 1.15s ease-out forwards!important}
.hit-excellent{animation:hitExcellent .38s ease-out}
.combat-history-entry.excellent{border-left-color:#42d778!important;background:rgba(52,151,86,.10)!important;color:#9aefb5!important}
@keyframes excellentFloat{0%{opacity:0;transform:translate(-50%,16px) scale(.55)}18%{opacity:1;transform:translate(-50%,-2px) scale(1.32)}55%{opacity:1;filter:brightness(1.25)}100%{opacity:0;transform:translate(-50%,-78px) scale(1)}}
@keyframes hitExcellent{30%{transform:translateX(10px) scale(1.025);border-color:#4aa56d;box-shadow:0 0 20px rgba(66,221,121,.17)}70%{transform:translateX(-5px)}}

/* Pequeno movimento físico dos ataques sem transformar a batalha em animação exagerada */
.player-combat-card.attack-motion{animation:playerAttackNudge .23s ease-out}
.enemy-combat-card.attack-motion{animation:enemyAttackNudge .23s ease-out}
@keyframes playerAttackNudge{0%,100%{transform:translateX(0)}42%{transform:translateX(7px) scale(1.006)}70%{transform:translateX(2px)}}
@keyframes enemyAttackNudge{0%,100%{transform:translateX(0)}42%{transform:translateX(-7px) scale(1.006)}70%{transform:translateX(-2px)}}

/* Celebração global de Legendary / Ancient */
.loot-rarity-fx{position:fixed;left:50%;top:22%;z-index:4500;display:none;min-width:min(520px,calc(100% - 36px));padding:15px 24px;transform:translateX(-50%);border:1px solid #bd8f33;border-radius:12px;background:linear-gradient(90deg,rgba(17,18,21,.20),rgba(74,48,12,.93),rgba(17,18,21,.20));box-shadow:0 0 55px rgba(238,177,52,.24);text-align:center;pointer-events:none}
.loot-rarity-fx.show{display:block;animation:topLootFx 1.65s ease-out forwards}.loot-rarity-fx span,.loot-rarity-fx strong{display:block}.loot-rarity-fx span{color:#ffd878;font-size:calc(10px * var(--text-scale, 1));font-weight:900;letter-spacing:3px}.loot-rarity-fx strong{margin-top:5px;color:#fff0be;font-family:Georgia,serif;font-size:calc(24px * var(--text-scale, 1));text-shadow:0 0 14px rgba(255,195,79,.28)}
.loot-rarity-fx.ancient{border-color:#4aaa7b;background:linear-gradient(90deg,rgba(10,21,17,.20),rgba(21,91,63,.94),rgba(10,21,17,.20));box-shadow:0 0 65px rgba(65,229,158,.24)}.loot-rarity-fx.ancient span{color:#7effbd}.loot-rarity-fx.ancient strong{color:#c3ffdf;text-shadow:0 0 16px rgba(77,245,167,.35)}
@keyframes topLootFx{0%{opacity:0;transform:translate(-50%,-12px) scale(.88)}14%{opacity:1;transform:translate(-50%,0) scale(1.03)}72%{opacity:1}100%{opacity:0;transform:translate(-50%,-8px) scale(1)}}

/* Marcos permanentes de Reset */
.reset-milestone-notice{display:grid;gap:4px;margin:10px 0;padding:11px 13px;border:1px solid #8a7037;border-radius:9px;background:linear-gradient(135deg,rgba(109,78,26,.20),rgba(32,27,18,.72));box-shadow:inset 0 0 22px rgba(231,180,67,.05)}
.reset-milestone-notice strong{color:#f3d27d;font-size:calc(10px * var(--text-scale, 1));letter-spacing:.5px}.reset-milestone-notice span{color:#bcb099;font-size:calc(9px * var(--text-scale, 1))}

/* Área: favoritos + comparação de farm */
.battle-area-selector{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important}
.favorite-area-button{height:40px;padding:0 10px;border:1px solid #49422d;border-radius:8px;background:#26231d;color:#bca86e;font-size:calc(8px * var(--text-scale, 1));letter-spacing:.5px;white-space:nowrap}.favorite-area-button.active{border-color:#a3833e;background:#51401d;color:#ffe18f;box-shadow:0 0 10px rgba(212,164,59,.10)}
.area-farm-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);gap:8px;border-top:1px solid #303744;padding-top:9px}
.favorite-area-list{display:flex;align-items:center;gap:5px;min-width:0;overflow-x:auto;padding-bottom:2px}.favorite-area-empty{color:#697386;font-size:calc(8px * var(--text-scale, 1));font-style:italic}.favorite-area-chip{flex:0 0 auto;padding:6px 8px;border:1px solid #3a4250;border-radius:999px;background:#151a22;color:#98a2b3;font-size:calc(8px * var(--text-scale, 1));white-space:nowrap}.favorite-area-chip:hover{border-color:#6b5b38}.favorite-area-chip.active{border-color:#9c7d3c;background:#46381d;color:#f0d184}
.area-farm-intel{display:grid;grid-template-columns:auto 1fr;column-gap:9px;row-gap:2px;align-items:center;padding:7px 9px;border:1px solid #343c48;border-radius:8px;background:#151a21}.area-farm-intel>span{grid-row:1/3;color:#787f8e;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.area-farm-intel strong{color:#d8dde5;font-size:calc(9px * var(--text-scale, 1));text-align:right}.area-farm-intel small{color:#7d8797;font-size:calc(7.5px * var(--text-scale, 1));text-align:right;line-height:1.3}

/* Dois indicadores no NPC */
.enemy-combat-card .mini-stats{display:flex;flex-wrap:wrap;justify-content:flex-end}.enemy-combat-card .mini-stats span{min-width:115px}

/* Mercador de Pets */
.pet-merchant-layout{max-width:1120px}.pet-merchant-summary{display:grid!important;grid-template-columns:220px minmax(0,1fr)!important;gap:12px;align-items:stretch}.pet-merchant-summary .merchant-resource-row>div{height:100%;align-items:center;padding:15px}.pet-merchant-summary .merchant-resource-row strong{color:#f0cb67;font-size:calc(18px * var(--text-scale, 1))}
.active-pet-panel{min-height:96px;padding:12px;border:1px dashed #39414d;border-radius:10px;background:#151a21}.active-pet-panel.has-pet{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;border-style:solid;border-color:#4a5d4d;background:linear-gradient(135deg,rgba(49,89,59,.12),#151a21)}.active-pet-empty{display:grid;place-items:center;height:100%;color:#747e8e;font-size:calc(10px * var(--text-scale, 1));text-align:center}.active-pet-icon{display:grid;place-items:center;width:64px;height:64px;border:1px solid #45534a;border-radius:12px;background:#10161a;font-size:calc(34px * var(--text-scale, 1))}.active-pet-panel span,.active-pet-panel strong,.active-pet-panel small{display:block}.active-pet-panel>div:last-child>span{color:#7c9883;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}.active-pet-panel>div:last-child>strong{margin:3px 0;color:#dce8df;font-size:calc(17px * var(--text-scale, 1))}.active-pet-panel small{color:#89948c;font-size:calc(8px * var(--text-scale, 1));line-height:1.35}
.pet-hp-line{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin:7px 0 5px}.pet-hp-line>span{color:#d1d7d3!important;font-size:calc(8px * var(--text-scale, 1))!important;letter-spacing:0!important}.pet-hp-line>div{height:7px;overflow:hidden;border-radius:999px;background:#303741}.pet-hp-line i{display:block;height:100%;background:linear-gradient(90deg,#4baf6d,#75d093);transition:width .2s}
.pet-store-card{padding:17px}.pet-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pet-shop-card{display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:1fr auto;gap:10px;padding:14px;border:1px solid #363e4a;border-radius:11px;background:linear-gradient(150deg,#1d222b,#171a21)}.pet-shop-card.active{border-color:#55705b;background:linear-gradient(150deg,rgba(49,93,61,.16),#171a21)}.pet-shop-icon{display:grid;place-items:center;width:56px;height:56px;border:1px solid #414a56;border-radius:11px;background:#12171d;font-size:calc(30px * var(--text-scale, 1))}.pet-shop-copy span{color:#778192;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.pet-shop-copy h3{margin:3px 0 5px;color:#e2e6ed;font-size:calc(16px * var(--text-scale, 1))}.pet-shop-copy p{margin:0;color:#9ba4b1;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}.pet-shop-copy small{display:block;margin-top:5px;color:#6f7988;font-size:calc(8px * var(--text-scale, 1))}.pet-shop-buy{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px;border-top:1px solid #303642}.pet-shop-buy strong{color:#e3bf61;font-size:calc(11px * var(--text-scale, 1))}.pet-shop-buy button{padding:8px 11px;border:1px solid #705b2d;border-radius:7px;background:#6e5422;color:#fff0bf;font-size:calc(8px * var(--text-scale, 1))}.pet-shop-buy button:disabled{opacity:.35}

/* Farm: Ancient tem contagem própria */
.farm-detail-list span:has(#farmAncientDrops){border:1px solid rgba(64,165,118,.18);background:rgba(36,90,65,.10)}#farmAncientDrops{color:#76e9ad}

@media(max-width:900px){.area-farm-row{grid-template-columns:1fr}.area-farm-intel strong,.area-farm-intel small{text-align:left}.pet-shop-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.battle-area-selector{grid-template-columns:auto minmax(0,1fr)!important}.favorite-area-button{grid-column:1/-1}.pet-merchant-summary{grid-template-columns:1fr!important}.pet-shop-grid{grid-template-columns:1fr}.loot-rarity-fx{top:18%}}

/* =====================================================
   v0.25 — HUD compacta + Painel do Personagem + Skill Mastery
   ===================================================== */

/* Botão principal: deixa de parecer um botão solto e vira entrada do painel do personagem */
.hero-points-button.character-open-button{
  min-height:46px!important;padding:5px 8px!important;gap:8px!important;
  border:1px solid #665634!important;border-radius:10px!important;
  background:linear-gradient(180deg,#292720,#1e2027)!important;
  box-shadow:inset 0 0 0 1px rgba(255,225,151,.025),0 5px 12px rgba(0,0,0,.16)!important;
  color:#f0e3c4!important;text-align:left!important;
}
.hero-points-button.character-open-button:hover{border-color:#9a7939!important;background:linear-gradient(180deg,#353024,#24252b)!important;filter:none!important}
.character-open-button .stat-plus-inline-icon{width:34px!important;height:34px!important;flex:0 0 34px;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(0,0,0,.35))}
.character-open-button .hero-points-label{display:flex!important;flex:1;min-width:0;flex-direction:column;gap:1px;color:#f0e4ca;font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.05;letter-spacing:.5px}
.character-open-button .hero-points-label small{display:block;color:#837b6c;font-size:calc(6.5px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}
.character-open-button .stat-point-badge{min-width:26px!important;height:26px!important;margin-left:auto!important;border:1px solid #9d7c37;background:#b8872d;color:#fff5d2;box-shadow:0 0 11px rgba(213,164,58,.11)}

/* Painel unificado do personagem */
.character-modal-card{width:min(940px,96vw)!important;max-height:92vh!important;padding:0!important;overflow:auto!important;border:1px solid #474e5c!important;border-radius:14px!important;background:linear-gradient(180deg,#1a1f28,#10141a)!important;box-shadow:0 34px 110px rgba(0,0,0,.72)!important}
.character-modal-head{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;border-bottom:1px solid #333a46;background:linear-gradient(180deg,rgba(31,37,48,.98),rgba(21,26,34,.98));backdrop-filter:blur(8px)}
.character-modal-identity{display:flex;align-items:center;gap:12px;min-width:0}.character-modal-icon{display:grid;place-items:center;width:52px;height:52px;flex:0 0 52px;border:1px solid #4e5664;border-radius:11px;background:radial-gradient(circle at 50% 35%,#2a3240,#141920 72%);font-size:calc(27px * var(--text-scale, 1));box-shadow:inset 0 0 24px rgba(111,128,161,.08)}
.character-modal-overline{display:block;color:#93866b;font-size:calc(7.5px * var(--text-scale, 1));font-weight:900;letter-spacing:1.4px}.character-modal-identity h2{margin:3px 0 4px;color:#f0f2f5;font-size:calc(22px * var(--text-scale, 1))}.character-modal-identity p{margin:0;color:#8992a3;font-size:calc(9.5px * var(--text-scale, 1));line-height:1.4}
.character-modal-head-actions{display:flex;align-items:center;gap:8px}.character-modal-gold{min-width:125px;padding:8px 10px;border:1px solid #4d432c;border-radius:8px;background:#171a20;text-align:right}.character-modal-gold span,.character-modal-gold strong{display:block}.character-modal-gold span{color:#857653;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.character-modal-gold strong{margin-top:3px;color:#f1cf72;font-size:calc(14px * var(--text-scale, 1))}.character-modal-head .modal-close-button{border:1px solid #444b57;background:#262c35;color:#bbc3cf}
.character-tabs{position:sticky;top:87px;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:8px 12px;border-bottom:1px solid #2e3540;background:rgba(15,19,25,.97);backdrop-filter:blur(8px)}.character-tab-button{min-height:37px;border:1px solid transparent;border-radius:7px;background:#1a1f27;color:#747f91;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.character-tab-button:hover{border-color:#3e4653;filter:none;color:#b9c1cd}.character-tab-button.active{border-color:#675633;background:linear-gradient(180deg,#393123,#29251d);color:#f0d896;box-shadow:inset 0 -2px 0 #a78037}.character-tab-button span{display:inline-grid;place-items:center;min-width:20px;height:18px;margin-left:5px;border-radius:999px;background:#51401e;color:#ffdda0;font-size:calc(7px * var(--text-scale, 1))}
.character-tab-panel{display:none;padding:16px 18px 20px}.character-tab-panel.active{display:block}
.character-overview-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.character-overview-hero>div{padding:12px;border:1px solid #353d49;border-radius:9px;background:linear-gradient(180deg,#1d232d,#171c24)}.character-overview-hero span,.character-overview-hero strong{display:block}.character-overview-hero span{color:#737e90;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.character-overview-hero strong{margin-top:5px;color:#e0e4eb;font-size:calc(13px * var(--text-scale, 1));overflow-wrap:anywhere}
.character-overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.character-overview-grid>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border:1px solid #313844;border-radius:8px;background:#151a21}.character-overview-grid span{color:#7e8899;font-size:calc(8px * var(--text-scale, 1));font-weight:800}.character-overview-grid strong{color:#e2e6ed;font-size:calc(10px * var(--text-scale, 1));text-align:right}.character-overview-note{display:flex;flex-direction:column;gap:4px;margin-top:11px;padding:12px 13px;border:1px solid #423a29;border-radius:9px;background:linear-gradient(90deg,rgba(95,71,31,.13),rgba(21,25,32,.78))}.character-overview-note strong{color:#d7bd79;font-size:calc(9px * var(--text-scale, 1))}.character-overview-note span{color:#8f97a5;font-size:calc(8.5px * var(--text-scale, 1));line-height:1.45}

/* Atributos dentro do mesmo painel */
.character-modal-card .available-points-big{margin:0 0 8px;padding:12px 14px;border:1px solid #413a2b;background:#141820;color:#8f98a8}.character-modal-card .available-points-big strong{color:#f2cf73}.character-modal-card .recommended-info{margin:0 0 8px;border:1px solid #343c48;background:#161b22;color:#98a3b4}.character-modal-card .recommended-button{width:100%;min-height:39px;margin:0 0 10px;border:1px solid #735c2e;border-radius:7px;background:linear-gradient(180deg,#705726,#59421b);color:#f7e4aa}.character-modal-card .stat-modal-grid{gap:7px}.character-modal-card .stat-modal-row{min-height:64px;padding:10px 11px;border:1px solid #343c48;border-radius:8px;background:linear-gradient(180deg,#1e242d,#191e26)}.character-modal-card .stat-modal-row>div:first-child strong{color:#e4e8ee;font-size:calc(13px * var(--text-scale, 1))}.character-modal-card .modal-stat-plus{width:50px;height:50px;border:1px solid #624738!important;border-radius:8px!important;background:transparent url("assets/ui/stat_plus.png") center/contain no-repeat!important;box-shadow:0 4px 10px rgba(0,0,0,.24)!important}

/* Skills detalhadas e upgrade permanente */
.character-skills-intro{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-bottom:10px;padding:12px 13px;border:1px solid #39414d;border-radius:9px;background:linear-gradient(145deg,#1b222b,#151a21)}.character-skills-intro span,.character-skills-intro strong,.character-skills-intro small{display:block}.character-skills-intro>div:first-child span{color:#7c8798;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}.character-skills-intro>div:first-child strong{margin-top:4px;color:#e2e6ec;font-size:calc(11px * var(--text-scale, 1))}.character-skills-intro>div:first-child small{margin-top:4px;color:#7f8999;font-size:calc(8px * var(--text-scale, 1))}.character-skills-gold{min-width:145px;padding:9px 11px;border:1px solid #53462c;border-radius:8px;background:#131820;text-align:right}.character-skills-gold span{color:#8c7a52;font-size:calc(7px * var(--text-scale, 1));font-weight:900}.character-skills-gold strong{margin-top:4px;color:#f0cb6e;font-size:calc(15px * var(--text-scale, 1))}
.skill-upgrade-list{display:grid;gap:8px}.skill-upgrade-card{display:grid;grid-template-columns:62px minmax(0,1fr) 138px;gap:11px;align-items:center;padding:11px;border:1px solid #353d49;border-radius:10px;background:linear-gradient(150deg,#1d232c,#171b22)}.skill-upgrade-card.locked{border-color:#303640;background:linear-gradient(150deg,#191e25,#15191f)}.skill-upgrade-icon{position:relative;display:grid;place-items:center;width:58px;height:58px;border:1px solid #47505d;border-radius:10px;background:radial-gradient(circle at 50% 35%,#28313e,#11161d 75%);font-size:calc(27px * var(--text-scale, 1))}.skill-upgrade-icon span{position:absolute;right:4px;bottom:4px;padding:2px 4px;border-radius:999px;background:#111820;color:#d9e0e9;font-size:calc(6.5px * var(--text-scale, 1));font-weight:900}.skill-upgrade-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.skill-upgrade-title span{display:block;color:#6f7b8d;font-size:calc(6.5px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.skill-upgrade-title h3{margin:3px 0 0;color:#e1e6ed;font-size:calc(13px * var(--text-scale, 1))}.skill-upgrade-title>strong{flex:0 0 auto;color:#b7c0cd;font-size:calc(9px * var(--text-scale, 1))}.skill-upgrade-copy p{margin:6px 0 4px;color:#aeb6c4;font-size:calc(9px * var(--text-scale, 1));line-height:1.4}.skill-upgrade-copy>small{display:block;color:#747f90;font-size:calc(7.5px * var(--text-scale, 1));line-height:1.35}.skill-upgrade-card.locked .skill-upgrade-copy{opacity:.72}.skill-next-effect{display:grid;gap:2px;margin-top:7px;padding:7px 8px;border:1px solid #353d47;border-radius:7px;background:#131820}.skill-next-effect span{color:#707c8d;font-size:calc(6.5px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.skill-next-effect strong{color:#91caa0;font-size:calc(8px * var(--text-scale, 1));line-height:1.35}.skill-upgrade-action{display:grid;gap:4px;text-align:center}.skill-upgrade-action>span{color:#e5c468;font-size:calc(10px * var(--text-scale, 1));font-weight:900}.skill-upgrade-action>small{color:#7e8898;font-size:calc(7px * var(--text-scale, 1))}.skill-upgrade-action button{min-height:34px;border:1px solid #725a2c;border-radius:7px;background:linear-gradient(180deg,#715725,#554019);color:#f5e1a5;font-size:calc(8px * var(--text-scale, 1))}.skill-upgrade-action button:disabled{border-color:#3b414a;background:#252a31;color:#686f7a;opacity:.55}.skill-maxed{padding:8px;border:1px solid #447157;border-radius:7px;background:rgba(48,103,66,.13);color:#80d39c!important;font-size:calc(8px * var(--text-scale, 1))!important}

/* Skills da HUD: 4 ícones com recarga visual */
.compact-skills-card{padding:12px!important;background:linear-gradient(155deg,#1b212a,#161a21)!important}.compact-skills-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.compact-skills-head>div>strong{display:block;color:#edf0f4;font-size:calc(16px * var(--text-scale, 1))}.compact-skills-head>div>small{display:block;margin-top:3px;color:#777f8d;font-size:calc(7.5px * var(--text-scale, 1));line-height:1.3}.compact-details-button{padding:6px 8px;border:1px solid #454d59;border-radius:6px;background:#252b34;color:#9ea8b7;font-size:calc(7px * var(--text-scale, 1))}.compact-details-button:hover{border-color:#6f5b34;background:#30291d;color:#e8cf91;filter:none}.compact-skill-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0}.compact-skill-controls label{display:flex;align-items:center;gap:6px;color:#768194;font-size:calc(7px * var(--text-scale, 1));font-weight:900}.compact-skill-controls select{height:30px;min-width:120px;padding:4px 7px;border:1px solid #3b4451;border-radius:6px;background:#12171e;color:#d5dae2;font-size:calc(8px * var(--text-scale, 1))}.compact-skill-controls .mana-legend{font-size:calc(7px * var(--text-scale, 1))}.compact-skill-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important}.skill-compact-card{--cooldown-progress:0deg;position:relative;isolation:isolate;display:grid;place-items:center;aspect-ratio:1/1;min-height:0!important;padding:0!important;overflow:hidden;border:1px solid #3c4552;border-radius:9px;background:radial-gradient(circle at 50% 38%,#293241,#131820 70%);cursor:help;box-shadow:inset 0 0 18px rgba(104,122,151,.05)}.skill-compact-card::after{content:"";position:absolute;inset:0;z-index:2;background:conic-gradient(from 0deg,rgba(2,5,8,.78) var(--cooldown-progress),transparent var(--cooldown-progress));pointer-events:none}.skill-compact-card.ready{border-color:#3f7855;box-shadow:inset 0 0 15px rgba(57,153,87,.08),0 0 8px rgba(53,159,87,.05)}.skill-compact-card.waiting-mana{border-color:#3c5685}.skill-compact-card.locked{border-color:#303641;filter:saturate(.4);opacity:.48}.skill-compact-icon{position:relative;z-index:1;font-size:calc(24px * var(--text-scale, 1));filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}.skill-compact-level{position:absolute;left:4px;bottom:4px;z-index:4;padding:2px 4px;border-radius:999px;background:rgba(8,12,17,.90);color:#cbd3de;font-size:calc(6px * var(--text-scale, 1));font-weight:900}.skill-compact-state{position:absolute;right:4px;top:4px;z-index:4;min-width:18px;padding:2px 3px;border-radius:999px;background:rgba(8,12,17,.88);color:#84d39e;font-size:calc(6px * var(--text-scale, 1));font-weight:900;text-align:center}.skill-compact-card.cooldown .skill-compact-state{color:#e7edf7}.skill-compact-card.waiting-mana .skill-compact-state{color:#78a1ff}.skill-compact-card.locked .skill-compact-state{color:#949dab}

/* Painéis laterais recolhíveis */
.collapsible-rail-card{padding:0!important;overflow:hidden!important}.collapsible-rail-card .collapsible-panel-body{padding:0 12px 12px}.collapsible-rail-card.collapsed .collapsible-panel-body{display:none}.rail-collapse-toggle{display:grid;grid-template-columns:32px minmax(0,1fr) 18px;gap:8px;align-items:center;width:100%;min-height:58px;padding:9px 10px;border:0;background:transparent;color:inherit;text-align:left}.rail-collapse-toggle:hover{background:rgba(255,255,255,.025);filter:none}.rail-toggle-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid #3c4450;border-radius:8px;background:#151a21;font-size:calc(16px * var(--text-scale, 1))}.rail-toggle-copy{display:block;min-width:0}.rail-toggle-copy small,.rail-toggle-copy strong,.rail-toggle-copy em{display:block}.rail-toggle-copy small{color:#747e90;font-size:calc(6.5px * var(--text-scale, 1));font-weight:900;letter-spacing:.9px}.rail-toggle-copy strong{margin-top:2px;color:#dbe0e8;font-size:calc(12px * var(--text-scale, 1))}.rail-toggle-copy em{margin-top:3px;color:#8c96a6;font-size:calc(7px * var(--text-scale, 1));font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-toggle-chevron{display:grid;place-items:center;color:#8992a0;font-size:calc(15px * var(--text-scale, 1));transition:transform .16s ease}.collapsible-rail-card:not(.collapsed) .rail-toggle-chevron{transform:rotate(180deg)}.boss-intel-card.collapsible-rail-card{overflow:hidden!important}.boss-intel-card.collapsible-rail-card .boss-intel-main{margin-top:0}.resources-card.collapsible-rail-card,.last-drop-card.collapsible-rail-card{padding:0!important}.resources-card.collapsible-rail-card .resource-stack{margin:0}.last-drop-card.collapsible-rail-card .last-drop-panel{margin:0}

/* Mantém a coluna direita curta: Farm e Skills sempre visíveis; detalhes ficam sob demanda */
.battle-right-rail{gap:9px!important}.farm-stats-card{padding:11px!important}.farm-detail-list{gap:4px}.farm-detail-list span{padding:5px 6px}.farm-last-legendary{margin-top:6px;padding:7px}

@media(max-width:1120px){.character-overview-grid{grid-template-columns:repeat(3,1fr)}.character-overview-hero{grid-template-columns:repeat(2,1fr)}.skill-upgrade-card{grid-template-columns:58px minmax(0,1fr) 125px}}
@media(max-width:760px){.character-modal-head{align-items:flex-start}.character-modal-head-actions{flex-direction:column-reverse;align-items:flex-end}.character-modal-gold{min-width:100px}.character-tabs{top:100px}.character-overview-grid{grid-template-columns:repeat(2,1fr)}.skill-upgrade-card{grid-template-columns:52px minmax(0,1fr)}.skill-upgrade-action{grid-column:2;grid-template-columns:1fr auto;align-items:center;text-align:left}.skill-upgrade-action button{min-width:110px}.compact-skill-grid{grid-template-columns:repeat(4,1fr)!important}}
@media(max-width:520px){.character-modal-card{width:100%!important}.character-modal-head{padding:12px}.character-modal-icon{width:44px;height:44px;flex-basis:44px}.character-modal-identity h2{font-size:calc(18px * var(--text-scale, 1))}.character-modal-gold{display:none}.character-tabs{top:69px;padding:6px}.character-tab-button{font-size:calc(6.5px * var(--text-scale, 1))}.character-tab-panel{padding:12px}.character-overview-grid,.character-overview-hero{grid-template-columns:1fr 1fr}.character-skills-intro{grid-template-columns:1fr}.character-skills-gold{text-align:left}.skill-upgrade-card{grid-template-columns:46px minmax(0,1fr);gap:8px}.skill-upgrade-icon{width:46px;height:46px;font-size:calc(22px * var(--text-scale, 1))}.skill-upgrade-action{grid-template-columns:1fr}.compact-skill-grid{grid-template-columns:repeat(4,1fr)!important}.skill-compact-icon{font-size:calc(20px * var(--text-scale, 1))}}


/* v0.28 UI Consolidation: tokens migrados para o :root unico (v0.91), bloco removido. */
body{font-size:calc(14px * var(--text-scale, 1));line-height:1.48;color:var(--text)}
button,select,input{font-family:inherit}
button{font-size:calc(11px * var(--text-scale, 1));letter-spacing:.15px}
select,input{font-size:calc(12px * var(--text-scale, 1))}

/* Global panel language */
.card,.menu-page-header,.modal-card{
  border-color:var(--line)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.018);
}
.card{background:linear-gradient(180deg,#1b2029 0%,#171b23 100%)}
.menu-page-header{
  padding:20px 22px!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,#1d232d,#171b22 72%)!important;
}
.menu-page-header span{font-size:calc(10px * var(--text-scale, 1))!important;color:#9aa5b7!important;letter-spacing:1.7px}
.menu-page-header h2{font-size:calc(29px * var(--text-scale, 1))!important;line-height:1.12;color:#f1f3f7}
.menu-page-header p{font-size:calc(13px * var(--text-scale, 1))!important;line-height:1.55;color:#9ba5b4!important}
.card-title-row{gap:16px;margin-bottom:16px}
.card-title-row h2,.card h2{font-size:calc(19px * var(--text-scale, 1));line-height:1.15;color:#eef1f5}
.eyebrow{font-size:calc(9px * var(--text-scale, 1))!important;color:#8c96a8!important;letter-spacing:1.55px}
.label{font-size:calc(11px * var(--text-scale, 1))!important}

/* Top chrome */
.topbar{padding-top:15px;padding-bottom:11px}
.topbar h1{font-size:calc(33px * var(--text-scale, 1))!important;letter-spacing:-.5px}
.version,.save-status{font-size:calc(12px * var(--text-scale, 1))!important}
.topbar-button{font-size:calc(11px * var(--text-scale, 1))!important;padding:10px 12px!important}
.main-nav{gap:7px;padding:7px}
.main-nav .nav-button{font-size:calc(11.5px * var(--text-scale, 1))!important;letter-spacing:.55px;padding:13px 9px!important;min-height:48px}

/* Battle left rail */
.hero-card{padding:17px!important}
.hero-identity{margin-bottom:14px!important}
.hero-identity h2{font-size:calc(24px * var(--text-scale, 1))!important;line-height:1.08!important}
.hero-identity .class-summary-passive{font-size:calc(11.5px * var(--text-scale, 1))!important;line-height:1.48!important;color:#aeb7c6!important}
.hero-level-box span,.hero-reset-box span,.hero-gold-box span,.hero-xp-box span{font-size:calc(10.5px * var(--text-scale, 1))!important}
.hero-level-box strong,.hero-reset-box strong,.hero-gold-box strong{font-size:calc(20px * var(--text-scale, 1))!important}
.run-xp-label strong{font-size:calc(12px * var(--text-scale, 1))!important;white-space:nowrap}
.hero-attributes span{font-size:calc(10px * var(--text-scale, 1))!important}.hero-attributes strong{font-size:calc(16px * var(--text-scale, 1))!important}

/* Premium character entry + points alert */
.hero-points-button.character-open-button{
  position:relative;overflow:visible;display:flex!important;align-items:center;justify-content:flex-start;
  min-height:56px;padding:11px 17px!important;border-radius:11px!important;
  border:1px solid #70592e!important;
  background:linear-gradient(180deg,#342d22 0%,#27272b 58%,#1d2027 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,226,163,.07),0 8px 18px rgba(0,0,0,.22);
}
.hero-points-button.character-open-button::before{
  content:"";position:absolute;inset:1px;border-radius:10px;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,215,140,.055),transparent 27%,transparent 74%,rgba(255,215,140,.035));
}
.hero-points-button.character-open-button:hover{border-color:#a9823c!important;transform:translateY(-1px);filter:none!important}
.character-open-button .hero-points-label{display:block!important;color:#f3e7ca;font-size:calc(13px * var(--text-scale, 1))!important;font-weight:900;letter-spacing:1px;line-height:1}
.character-open-button .stat-point-badge{
  position:absolute;top:-8px;right:-6px;display:inline-grid;place-items:center;
  min-width:34px!important;height:34px!important;margin:0!important;padding:0 9px;
  border:1px solid #a37c35;background:linear-gradient(180deg,#c9993c,#99691f);color:#fff7dc;
  font-size:calc(12px * var(--text-scale, 1))!important;font-weight:900;box-shadow:0 6px 16px rgba(0,0,0,.3);
}
.character-open-button .stat-point-badge.is-empty{opacity:.58;border-color:#59534b;background:#4c4841;color:#d6d1c8;box-shadow:none}
.character-open-button.points-available .stat-point-badge.has-points{animation:v028PointPulse 1.6s ease-in-out infinite}
@keyframes v028PointPulse{0%,100%{transform:scale(1);box-shadow:0 6px 16px rgba(0,0,0,.3),0 0 0 0 rgba(227,179,67,.30)}50%{transform:scale(1.08);box-shadow:0 7px 18px rgba(0,0,0,.32),0 0 0 8px rgba(227,179,67,0)}}

/* Equipment rail */
.equipment-card{padding:17px!important}.small-link-button,.smart-equip-button{font-size:calc(10px * var(--text-scale, 1))!important;padding:8px 10px!important}
.equipment-row{padding:11px!important;gap:6px 10px!important;border-color:#3a424f!important}
.equipment-row .slot-title{font-size:calc(10px * var(--text-scale, 1))!important}.equipment-row .item-name{font-size:calc(12.5px * var(--text-scale, 1))!important}.equipment-row .item-stat{font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.5}.equipment-meta{font-size:calc(9.5px * var(--text-scale, 1))!important}
.equipment-actions button{font-size:calc(9px * var(--text-scale, 1))!important;padding:7px 9px!important}

/* Battle center */
.battle-stage-card{padding:17px!important}
.area-selector span{font-size:calc(10px * var(--text-scale, 1))!important}.area-selector select{font-size:calc(12px * var(--text-scale, 1))!important;height:40px!important}
.area-requirement-box strong{font-size:calc(10.5px * var(--text-scale, 1))!important}.area-requirement-box small{font-size:calc(9.5px * var(--text-scale, 1))!important}.area-progress{font-size:calc(10.5px * var(--text-scale, 1))!important}
.fighter{padding:16px!important}.fighter-label{font-size:calc(9.5px * var(--text-scale, 1))!important}.fighter h3{font-size:calc(18px * var(--text-scale, 1))!important}.fighter-passive{font-size:calc(10.5px * var(--text-scale, 1))!important}
.progress-label{font-size:calc(10.5px * var(--text-scale, 1))!important}.player-stat-grid span{font-size:calc(10px * var(--text-scale, 1))!important;padding:7px 8px!important}.combat-secondary-stats span,.mini-stats{font-size:calc(10px * var(--text-scale, 1))!important}
.enemy-role-badge,.enemy-state-badge,.boss-trait-badge{font-size:calc(9px * var(--text-scale, 1))!important}
.combat-log{padding:11px!important}.combat-log-title{font-size:calc(10px * var(--text-scale, 1))!important}.combat-log p{font-size:calc(11.5px * var(--text-scale, 1))!important;line-height:1.45}.combat-history-entry{font-size:calc(10px * var(--text-scale, 1))!important;padding:5px 0!important}
.damage-number{font-size:calc(25px * var(--text-scale, 1))}.damage-number.critical{font-size:calc(34px * var(--text-scale, 1))}.damage-number.excellent{font-size:calc(37px * var(--text-scale, 1))!important}

/* Right rail / collapsibles */
.battle-right-rail{gap:10px!important}
.rail-collapse-toggle{min-height:62px!important;padding:10px 11px!important}.rail-toggle-icon{width:34px;height:34px}.rail-toggle-copy small{font-size:calc(8.5px * var(--text-scale, 1))!important}.rail-toggle-copy strong{font-size:calc(12.5px * var(--text-scale, 1))!important}.rail-toggle-copy em{font-size:calc(9.5px * var(--text-scale, 1))!important;line-height:1.35}.rail-toggle-chevron{font-size:calc(16px * var(--text-scale, 1))}
.boss-intel-main{padding:1px 2px}.boss-intel-name{font-size:calc(17px * var(--text-scale, 1))!important}.boss-intel-type,.boss-intel-status{font-size:calc(9px * var(--text-scale, 1))!important}.boss-intel-grid>div span{font-size:calc(8.5px * var(--text-scale, 1))!important}.boss-intel-grid>div strong{font-size:calc(10.5px * var(--text-scale, 1))!important}.boss-intel-loot span{font-size:calc(8.5px * var(--text-scale, 1))!important}.boss-intel-loot strong{font-size:calc(10.5px * var(--text-scale, 1))!important}
.boss-drop-preview{padding:9px!important;gap:6px!important}.boss-drop-preview span{font-size:calc(8.5px * var(--text-scale, 1))!important}.boss-drop-preview strong{font-size:calc(10px * var(--text-scale, 1))!important}
.boss-control-panel label>span{font-size:calc(8.5px * var(--text-scale, 1))!important}.boss-control-panel select{font-size:calc(10.5px * var(--text-scale, 1))!important;min-height:36px}.boss-control-button{min-height:42px!important;font-size:calc(10.5px * var(--text-scale, 1))!important}.boss-control-panel small{font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.45}
.boss-status-pill span{font-size:calc(9px * var(--text-scale, 1))!important}.boss-status-pill strong{font-size:calc(10px * var(--text-scale, 1))!important}

/* Compact skills */
.compact-skills-card{padding:13px!important}.compact-skills-head>div>strong{font-size:calc(17px * var(--text-scale, 1))!important}.compact-skills-head>div>small{font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.4}.compact-details-button{font-size:calc(9px * var(--text-scale, 1))!important;padding:7px 9px!important}
.compact-skill-controls{margin:10px 0!important}.compact-skill-controls label,.compact-skill-controls .mana-legend{font-size:calc(9px * var(--text-scale, 1))!important}.compact-skill-controls select{font-size:calc(10.5px * var(--text-scale, 1))!important;height:34px!important}
.skill-compact-icon{font-size:calc(25px * var(--text-scale, 1))!important}.skill-compact-level{font-size:calc(7.5px * var(--text-scale, 1))!important;padding:3px 5px!important}.skill-compact-state{font-size:calc(7.5px * var(--text-scale, 1))!important;padding:3px 4px!important}

/* Farm + resources + last drop */
.farm-stats-card{padding:13px!important}.farm-stats-title h2{font-size:calc(18px * var(--text-scale, 1))!important}.farm-session-reset{font-size:calc(9px * var(--text-scale, 1))!important;padding:7px 9px!important}
.farm-rate-grid>div{padding:10px 8px!important}.farm-rate-grid span{font-size:calc(8.5px * var(--text-scale, 1))!important}.farm-rate-grid strong{font-size:calc(14px * var(--text-scale, 1))!important}.farm-detail-list span{font-size:calc(9.5px * var(--text-scale, 1))!important;padding:7px 8px!important}.farm-detail-list strong{font-size:calc(9.5px * var(--text-scale, 1))!important}.farm-last-legendary span{font-size:calc(8.5px * var(--text-scale, 1))!important}.farm-last-legendary strong{font-size:calc(9.5px * var(--text-scale, 1))!important}
.resource-item,.resource-row{font-size:calc(10.5px * var(--text-scale, 1))!important}.resource-item label{font-size:calc(10px * var(--text-scale, 1))!important}.resource-item strong{font-size:calc(14px * var(--text-scale, 1))!important}.last-drop-name{font-size:calc(13px * var(--text-scale, 1))!important}.last-drop-details,.last-drop-upgrade{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.45}

/* Inventory */
.inventory-card,.loot-filter-card{padding:18px!important}.inventory-count,.shop-subtitle{font-size:calc(10.5px * var(--text-scale, 1))!important}.inventory-toolbar{padding:12px!important;gap:9px!important}.inventory-filter-wrap{font-size:calc(10.5px * var(--text-scale, 1))!important}.inventory-filter-wrap select{font-size:calc(11px * var(--text-scale, 1))!important;height:36px}.utility-button{font-size:calc(9.5px * var(--text-scale, 1))!important;padding:9px 10px!important}.recycle-bar{font-size:calc(10.5px * var(--text-scale, 1))!important;padding:12px 13px!important}.recycle-bar button{font-size:calc(9.5px * var(--text-scale, 1))!important}
.inventory-group{padding:11px!important;border-radius:10px!important}.item-name,.group-title-row .item-name{font-size:calc(13px * var(--text-scale, 1))!important}.group-subtitle{font-size:calc(10.5px * var(--text-scale, 1))!important}.group-extra{font-size:calc(9.5px * var(--text-scale, 1))!important;line-height:1.45}.group-action button{font-size:calc(9px * var(--text-scale, 1))!important}.equipped-text,.favorite-badge,.locked-badge,.rarity-badge{font-size:calc(8.5px * var(--text-scale, 1))!important}
.loot-filter-status{font-size:calc(9px * var(--text-scale, 1))!important}.loot-filter-grid label strong{font-size:calc(10px * var(--text-scale, 1))!important}.loot-filter-grid label small{font-size:calc(9.5px * var(--text-scale, 1))!important}.loot-filter-mode>span{font-size:calc(9px * var(--text-scale, 1))!important}.loot-filter-mode select{font-size:calc(10.5px * var(--text-scale, 1))!important}.loot-filter-help{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.55}
.empty-inventory{font-size:calc(11px * var(--text-scale, 1))!important}

/* Sets / Codex */
.collection-summary span{font-size:calc(9px * var(--text-scale, 1))!important}.collection-summary strong{font-size:calc(14px * var(--text-scale, 1))!important}.set-card-head span{font-size:calc(9px * var(--text-scale, 1))!important}.set-card-head h3{font-size:calc(16px * var(--text-scale, 1))!important}.set-card-head>strong{font-size:calc(12px * var(--text-scale, 1))!important}.set-piece{font-size:calc(9px * var(--text-scale, 1))!important;padding:8px 5px!important}.set-bonus-copy span,.set-farm-source span{font-size:calc(8.5px * var(--text-scale, 1))!important}.set-bonus-copy strong{font-size:calc(10.5px * var(--text-scale, 1))!important}.set-farm-source p{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.5}
.codex-toolbar label>span,.codex-count span{font-size:calc(9px * var(--text-scale, 1))!important}.codex-toolbar input,.codex-toolbar select{font-size:calc(11px * var(--text-scale, 1))!important}.codex-count strong{font-size:calc(14px * var(--text-scale, 1))!important}.codex-kind{font-size:calc(8.5px * var(--text-scale, 1))!important}.codex-entry h3{font-size:calc(16px * var(--text-scale, 1))!important}.codex-entry p{font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.5}.codex-tags span{font-size:calc(8px * var(--text-scale, 1))!important}.collection-empty{font-size:calc(11px * var(--text-scale, 1))!important}

/* Forge */
.jewel-card h3{font-size:calc(16px * var(--text-scale, 1))!important}.jewel-card p{font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.5}.jewel-rarity{font-size:calc(8.5px * var(--text-scale, 1))!important}.forge-cap{font-size:calc(9.5px * var(--text-scale, 1))!important}.forge-target{font-size:calc(11px * var(--text-scale, 1))!important;line-height:1.55}.forge-target-name{font-size:calc(13px * var(--text-scale, 1))!important}.forge-rules{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.5}.forge-buttons button{font-size:calc(10px * var(--text-scale, 1))!important;min-height:40px}.forge-list-item{font-size:calc(10px * var(--text-scale, 1))!important}.forge-list-item button{font-size:calc(9.5px * var(--text-scale, 1))!important}.wing-recipe{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.45}.wing-recipe small{font-size:calc(9px * var(--text-scale, 1))!important}.wing-recipe button{font-size:calc(9px * var(--text-scale, 1))!important}.wing-craft-item h4,.chest-item h4{font-size:calc(12px * var(--text-scale, 1))!important}.wing-craft-item p,.chest-item p{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.5}.wing-craft-item button,.chest-item button{font-size:calc(9px * var(--text-scale, 1))!important}

/* Merchant (visual only; pet rules unchanged in v0.28) */
.pet-merchant-summary .merchant-resource-row span{font-size:calc(10px * var(--text-scale, 1))!important}.pet-merchant-summary .merchant-resource-row strong{font-size:calc(19px * var(--text-scale, 1))!important}.active-pet-panel span{font-size:calc(9px * var(--text-scale, 1))!important}.active-pet-panel strong{font-size:calc(15px * var(--text-scale, 1))!important}.active-pet-panel small{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.5}.pet-hp-line span{font-size:calc(9px * var(--text-scale, 1))!important}
.pet-shop-copy span{font-size:calc(8.5px * var(--text-scale, 1))!important}.pet-shop-copy h3{font-size:calc(17px * var(--text-scale, 1))!important}.pet-shop-copy p{font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.5}.pet-shop-copy small{font-size:calc(9.5px * var(--text-scale, 1))!important}.pet-shop-buy strong{font-size:calc(12.5px * var(--text-scale, 1))!important}.pet-shop-buy button{font-size:calc(9.5px * var(--text-scale, 1))!important;min-height:35px}

/* General modals / menu / profile selection */
.modal-title-row h2{font-size:calc(22px * var(--text-scale, 1))!important;font-family:var(--font-display)!important}.modal-title-row p{font-size:calc(12px * var(--text-scale, 1))!important;line-height:1.5}.modal-close-button{font-size:calc(16px * var(--text-scale, 1))!important}
.main-menu-frame small{font-size:calc(10px * var(--text-scale, 1))!important}.options-list label,.options-list small{font-size:calc(11px * var(--text-scale, 1))!important}.options-reset-button{font-size:calc(10px * var(--text-scale, 1))!important}
.profile-overline{font-size:calc(9px * var(--text-scale, 1))!important}.profile-modal-card .modal-title-row h2{font-size:calc(26px * var(--text-scale, 1))!important}.profile-modal-card .modal-title-row p{font-size:calc(11.5px * var(--text-scale, 1))!important}.profile-class-name{font-size:calc(16px * var(--text-scale, 1))!important}.profile-character-copy p{font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.5!important}.profile-status{font-size:calc(10px * var(--text-scale, 1))!important}.profile-status b{font-size:calc(8.5px * var(--text-scale, 1))!important}.profile-actions button{font-size:calc(10px * var(--text-scale, 1))!important;min-height:38px}
.reset-overline{font-size:calc(10px * var(--text-scale, 1))!important}.reset-modal-card>p{font-size:calc(13px * var(--text-scale, 1))!important}.reset-reward-grid span{font-size:calc(9px * var(--text-scale, 1))!important}.reset-preserved strong{font-size:calc(11px * var(--text-scale, 1))!important}.reset-preserved span{font-size:calc(11px * var(--text-scale, 1))!important}.reset-milestone-notice strong{font-size:calc(11px * var(--text-scale, 1))!important}.reset-milestone-notice span{font-size:calc(10px * var(--text-scale, 1))!important}
.game-tooltip{font-size:calc(12px * var(--text-scale, 1))!important;line-height:1.52!important;max-width:340px!important}

/* Character modal — classic MMORPG hierarchy */
.character-modal-card{width:min(980px,96vw)!important;border-color:#5c503e!important;background:linear-gradient(180deg,#181d25,#10141a)!important;box-shadow:0 34px 110px rgba(0,0,0,.72),0 0 0 1px rgba(184,140,59,.10)!important}
.character-modal-head{padding:20px 22px!important;border-bottom-color:#463e31!important;background:linear-gradient(180deg,rgba(34,39,49,.99),rgba(20,24,31,.99))!important}
.character-modal-icon{width:58px!important;height:58px!important;flex-basis:58px!important;border-color:#716148!important;background:radial-gradient(circle at 50% 35%,#354052,#141920 72%)!important;font-size:calc(30px * var(--text-scale, 1))!important}
.character-modal-overline{font-size:calc(9px * var(--text-scale, 1))!important;color:#b89c61!important}.character-modal-identity h2{font-size:calc(32px * var(--text-scale, 1))!important;line-height:1.05!important}.character-modal-identity p{font-size:calc(12.5px * var(--text-scale, 1))!important;line-height:1.5!important;color:#a7b0bf!important}
.character-modal-gold{min-width:132px!important;padding:10px 12px!important;border-color:#705d38!important;background:#151a21!important}.character-modal-gold span{font-size:calc(8.5px * var(--text-scale, 1))!important}.character-modal-gold strong{font-size:calc(20px * var(--text-scale, 1))!important}
.character-tabs{top:91px!important;gap:7px!important;padding:9px 12px!important;border-bottom-color:#373d47!important}.character-tab-button{min-height:44px!important;font-size:calc(10.5px * var(--text-scale, 1))!important;border:1px solid #303744!important;background:#1b2028!important;color:#9aa4b5!important}.character-tab-button.active{border-color:#826632!important;background:linear-gradient(180deg,#3b3225,#28231c)!important;color:#efd898!important;box-shadow:inset 0 -2px 0 #b4873b}.character-tab-button span{font-size:calc(8.5px * var(--text-scale, 1))!important;min-width:23px!important;height:21px!important}
.character-tab-panel{padding:16px!important}.character-overview-hero{gap:9px!important}.character-overview-hero>div{padding:14px!important;border-color:#3d4551!important}.character-overview-hero span{font-size:calc(9px * var(--text-scale, 1))!important}.character-overview-hero strong{font-size:calc(15px * var(--text-scale, 1))!important}
.character-overview-grid{gap:8px!important}.character-overview-grid>div{padding:12px 13px!important;border-color:#363e49!important}.character-overview-grid span{font-size:calc(9.5px * var(--text-scale, 1))!important}.character-overview-grid strong{font-size:calc(13px * var(--text-scale, 1))!important}.character-overview-note strong{font-size:calc(11px * var(--text-scale, 1))!important}.character-overview-note span{font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.55!important}
.character-modal-card .available-points-big,.character-modal-card .recommended-info{font-size:calc(12px * var(--text-scale, 1))!important}.character-modal-card .available-points-big strong{font-size:calc(22px * var(--text-scale, 1))!important}.character-modal-card .recommended-button{font-size:calc(10.5px * var(--text-scale, 1))!important;min-height:40px!important}.character-modal-card .stat-modal-row>div:first-child strong{font-size:calc(15px * var(--text-scale, 1))!important}.character-modal-card .stat-modal-row>div:first-child span,.character-modal-card .stat-modal-value small{font-size:calc(10px * var(--text-scale, 1))!important}.character-modal-card .stat-modal-value strong{font-size:calc(19px * var(--text-scale, 1))!important}
.character-skills-intro>div:first-child span{font-size:calc(8.5px * var(--text-scale, 1))!important}.character-skills-intro>div:first-child strong{font-size:calc(13px * var(--text-scale, 1))!important}.character-skills-intro>div:first-child small{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.45}.character-skills-gold span{font-size:calc(8px * var(--text-scale, 1))!important}.character-skills-gold strong{font-size:calc(18px * var(--text-scale, 1))!important}.skill-upgrade-title span{font-size:calc(8px * var(--text-scale, 1))!important}.skill-upgrade-title h3{font-size:calc(14px * var(--text-scale, 1))!important}.skill-upgrade-title>strong{font-size:calc(9.5px * var(--text-scale, 1))!important}.skill-upgrade-copy p{font-size:calc(10px * var(--text-scale, 1))!important}.skill-upgrade-copy>small,.skill-next-effect strong,.skill-upgrade-action>small{font-size:calc(8.8px * var(--text-scale, 1))!important}.skill-upgrade-action>span{font-size:calc(11px * var(--text-scale, 1))!important}.skill-upgrade-action button{font-size:calc(9px * var(--text-scale, 1))!important}

@media(max-width:1120px){
  .main-nav .nav-button{font-size:calc(11px * var(--text-scale, 1))!important}
}
@media(max-width:760px){
  body{font-size:calc(13px * var(--text-scale, 1))}.topbar h1{font-size:calc(29px * var(--text-scale, 1))!important}.main-nav .nav-button{font-size:calc(10.5px * var(--text-scale, 1))!important;padding:11px 8px!important}
  .menu-page-header h2{font-size:calc(24px * var(--text-scale, 1))!important}.menu-page-header p{font-size:calc(12px * var(--text-scale, 1))!important}
  .character-tabs{top:101px!important}.character-modal-identity h2{font-size:calc(27px * var(--text-scale, 1))!important}.character-modal-identity p{font-size:calc(11.5px * var(--text-scale, 1))!important}
}
@media(max-width:520px){
  .character-open-button .hero-points-label{font-size:calc(11.5px * var(--text-scale, 1))!important}.character-open-button .stat-point-badge{min-width:30px!important;height:30px!important;top:-6px;right:-4px}
  .character-modal-head{padding:13px!important}.character-modal-icon{width:46px!important;height:46px!important;flex-basis:46px!important;font-size:calc(24px * var(--text-scale, 1))!important}.character-modal-identity h2{font-size:calc(22px * var(--text-scale, 1))!important}.character-modal-identity p{font-size:calc(10.5px * var(--text-scale, 1))!important}.character-tabs{top:72px!important}.character-tab-button{font-size:calc(9px * var(--text-scale, 1))!important}
  .codex-entry p,.set-farm-source p,.wing-craft-item p,.chest-item p,.pet-shop-copy p{font-size:calc(10px * var(--text-scale, 1))!important}
}

/* Small labels that remained below the new readability floor */
.battle-equipment-list .rarity-badge,.battle-equipment-list .class-badge,.automation-skills-grid .skill-auto-badge,.skill-role-badge,.boss-ready-state,.favorite-area-button,.favorite-area-empty,.favorite-area-chip{font-size:calc(9px * var(--text-scale, 1))!important}
.afk-status small,.set-bonus-label,.set-bonus-panel small,.stat-modal-overline,.area-farm-intel>span,.area-farm-intel strong,.area-farm-intel small{font-size:calc(9.5px * var(--text-scale, 1))!important}
.set-bonus-panel strong{font-size:calc(11px * var(--text-scale, 1))!important}.pet-hp-line>span{font-size:calc(9.5px * var(--text-scale, 1))!important}.skill-compact-level,.skill-compact-state{font-size:calc(8.5px * var(--text-scale, 1))!important}


.persistent-title-row{padding:12px 12px 0}
.compact-section-toggle{border-top:1px solid rgba(255,255,255,.04)}
.area-collapsible-card{display:block!important;margin-bottom:14px;border:1px solid #343b4a;border-radius:13px;background:linear-gradient(180deg,#242a37,#20242f)}
.area-collapsible-card .battle-area-panel-body{display:grid;grid-template-columns:minmax(250px,1fr) auto;gap:10px 12px;padding:0 12px 12px}
.area-collapsible-card .area-progress-wrap,.area-collapsible-card .area-farm-row{grid-column:1/-1}
.area-collapse-toggle{min-height:62px}
.pet-shop-card.owned{border-color:#405061}
.pet-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.pet-card-actions button{min-width:116px}
.pet-hp-line.xp-line i{background:linear-gradient(90deg,#56a7ff,#8fd4ff)}
@media (max-width:860px){
  .area-collapsible-card .battle-area-panel-body{grid-template-columns:1fr}
}

/* v0.30 fixes */
.loadout-title-actions{flex-wrap:wrap;justify-content:flex-end}
.loadout-title-actions button{white-space:nowrap;flex:0 0 auto}
.battle-loadout-card .small-link-button{min-width:74px}
.battle-loadout-card .smart-equip-button{min-width:102px}

.battle-pet-panel{margin-top:12px;padding:12px 13px;border:1px solid rgba(96,165,250,.22);border-radius:12px;background:linear-gradient(180deg,rgba(17,24,39,.95),rgba(12,18,30,.92));display:grid;gap:10px}
.battle-pet-head{display:flex;gap:10px;align-items:flex-start}
.battle-pet-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:calc(20px * var(--text-scale, 1));background:linear-gradient(180deg,#1b2334,#121826);border:1px solid rgba(148,163,184,.22);box-shadow:inset 0 1px rgba(255,255,255,.04)}
.battle-pet-head strong{display:block;color:#eef3ff;font-size:calc(14px * var(--text-scale, 1));line-height:1.25}
.battle-pet-head small{display:block;color:#9ba8bf;line-height:1.35;margin-top:3px}
.battle-pet-bars{display:grid;gap:8px}
.battle-pet-bar{display:grid;gap:5px}
.battle-pet-bar span{font-size:calc(11px * var(--text-scale, 1));font-weight:700;letter-spacing:.04em;color:#9fb3d9;text-transform:uppercase}
.battle-pet-bar div{height:8px;border-radius:999px;background:#1a2030;border:1px solid rgba(255,255,255,.05);overflow:hidden}
.battle-pet-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#34d399,#60a5fa)}
.battle-pet-bar.xp i{background:linear-gradient(90deg,#8b5cf6,#60a5fa)}
.battle-pet-details{display:grid;gap:5px}
.battle-pet-details span{font-size:calc(12px * var(--text-scale, 1));line-height:1.45;color:#d8e0f0}
.battle-pet-details strong{color:#9bc1ff}

.forge-scroll-card{margin-top:14px}
.forge-scroll-summary{font-size:calc(18px * var(--text-scale, 1));font-weight:800;color:#eef3ff;margin-bottom:8px}
.forge-scroll-copy{margin:0 0 12px;color:#adb7cb;line-height:1.55}
.forge-scroll-hint{display:block;color:#8f9ab0;line-height:1.45}

/* v0.31 — pet compacto + inventário em massa */
.fighter-heading-copy{min-width:0;flex:1}
.battle-pet-panel{margin:0 0 0 auto;padding:0;border:0;background:none;display:block;position:relative;flex:0 0 auto;z-index:40}
.battle-pet-toggle{position:relative;width:58px;height:50px;padding:5px;border:1px solid #344761;border-radius:12px;background:linear-gradient(180deg,#172033,#101726);color:#eef4ff;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;align-items:center;gap:1px 4px;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.04),0 5px 16px rgba(0,0,0,.18)}
.battle-pet-toggle:hover{border-color:#58769d;filter:brightness(1.08)}
.battle-pet-toggle.exhausted{opacity:.62;filter:saturate(.35)}
.pet-toggle-icon{grid-row:1;font-size:calc(22px * var(--text-scale, 1));line-height:1}
.pet-toggle-level{grid-row:1;font-size:calc(9px * var(--text-scale, 1));font-weight:900;color:#b8c9e8;align-self:center}
.pet-toggle-hp{grid-column:1/-1;display:block;height:4px;border-radius:999px;background:#202a3a;overflow:hidden}
.pet-toggle-hp i{display:block;height:100%;background:linear-gradient(90deg,#34d399,#60a5fa);border-radius:inherit}
.battle-pet-popover{position:absolute;top:58px;right:0;width:340px;max-width:min(340px,calc(100vw - 44px));padding:14px;border:1px solid #395477;border-radius:13px;background:linear-gradient(180deg,#121a29,#0d1421);box-shadow:0 16px 40px rgba(0,0,0,.42);text-align:left;z-index:80}
.battle-pet-popover-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:7px}
.battle-pet-popover-head span{display:block;color:#7890b5;font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}
.battle-pet-popover-head strong{display:block;color:#f3f7ff;font-size:calc(15px * var(--text-scale, 1));margin-top:3px}
.battle-pet-popover-head button{width:28px;height:28px;padding:0;border-radius:8px;background:#242d3d;color:#aab7cd;font-size:calc(18px * var(--text-scale, 1));line-height:1}
.battle-pet-popover p{margin:0 0 10px;color:#95a3ba;font-size:calc(11px * var(--text-scale, 1));line-height:1.45}
.battle-pet-mini-bars{display:grid;grid-template-columns:auto 1fr;gap:5px 8px;align-items:center;margin-bottom:10px}
.battle-pet-mini-bars>span{font-size:calc(9px * var(--text-scale, 1));font-weight:800;color:#93a7c8}
.battle-pet-mini-bars>div{height:6px;border-radius:999px;background:#1d2635;overflow:hidden}
.battle-pet-mini-bars i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#34d399,#60a5fa)}
.battle-pet-mini-bars .xp i{background:linear-gradient(90deg,#8b5cf6,#60a5fa)}
.battle-pet-popover .battle-pet-details{display:grid;gap:6px;padding-top:9px;border-top:1px solid #263247}
.battle-pet-popover .battle-pet-details span{font-size:calc(10.5px * var(--text-scale, 1));line-height:1.45;color:#c5d0e2}
.battle-pet-popover .battle-pet-details strong{color:#8fbaff}
.pet-lifecycle-rule{margin-top:2px;padding-top:7px;border-top:1px dashed #2c3a50;color:#91a0b7!important}

.recycle-trash-button{border:1px solid rgba(71,168,104,.45)!important;background:linear-gradient(180deg,#245a38,#193e29)!important;color:#b9f0c9!important}
.recycle-trash-button:hover{filter:brightness(1.12)}

@media(max-width:760px){
  .battle-pet-popover{right:-8px;width:310px}
  .inventory-toolbar .utility-button{flex:1 1 45%}
}

/* =====================================================
   v0.32 — Pet, elites, Keep Rules, DEV Lab e nomes
   ===================================================== */
/* Pet compacto: layout absoluto evita emoji deslocado/cortado em fontes diferentes */
.fighter-heading{position:relative}
.battle-pet-panel{position:absolute!important;top:0;right:0;margin:0!important;z-index:55!important}
.battle-pet-toggle{position:relative!important;width:58px!important;height:54px!important;display:block!important;padding:0!important;overflow:visible!important;isolation:isolate}
.pet-toggle-icon{position:absolute!important;left:7px;top:7px;width:31px;height:31px;display:grid!important;place-items:center!important;grid-row:auto!important;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif!important;font-size:calc(23px * var(--text-scale, 1))!important;line-height:1!important;text-align:center}
.pet-toggle-level{position:absolute!important;right:5px;top:8px;grid-row:auto!important;font-size:calc(8.5px * var(--text-scale, 1))!important;line-height:1!important}
.pet-toggle-charge{position:absolute;right:5px;bottom:12px;font-size:calc(7px * var(--text-scale, 1));font-weight:900;color:#8fb7f4;line-height:1}
.pet-toggle-hp{position:absolute!important;left:5px;right:5px;bottom:5px;height:4px!important;grid-column:auto!important}
.battle-pet-toggle.evolution-ready{border-color:#b58b36;box-shadow:0 0 0 1px rgba(214,167,64,.16),0 0 16px rgba(214,167,64,.22)}
.battle-pet-toggle.evolution-ready::after{content:"!";position:absolute;right:-5px;top:-6px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#c89434;color:#fff6db;font-size:calc(10px * var(--text-scale, 1));font-weight:900;border:2px solid #151b26}
.battle-pet-popover{top:62px!important;right:0!important}
.battle-pet-mini-bars .charge i{background:linear-gradient(90deg,#d4a03c,#f0d576)!important}
/* COMPANHEIROS (Fase 86): o painel de evolucao substitui a IA e as specs. */
.pet-companion-panel{display:grid;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #263247}
.pet-companion-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pet-companion-head span{color:#f1d28b;font-size:calc(10px * var(--text-scale, 1));font-weight:900;letter-spacing:.5px}
.pet-companion-head small{color:#8493ab;font-size:calc(8.5px * var(--text-scale, 1))}
.pet-star-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px}
.pet-star-row strong{color:#ffd76a;font-size:calc(13px * var(--text-scale, 1));letter-spacing:1px}
/* As estrelas sao DUAS cores do mesmo glifo: o "☆" vazio sai cheio em varias
   fontes de sistema, e ai 1 estrela parecia 5 (visto no painel, Fase 86). */
.active-pet-panel .pet-stars,.battle-pet-popover .pet-stars{font-size:calc(14px * var(--text-scale, 1))!important;letter-spacing:1px}.pet-stars i{font-style:normal;color:#3b4454}.pet-stars i.on{color:#ffd76a;text-shadow:0 0 6px rgba(255,200,80,.35)}
.pet-star-row span{color:#aebbd0;font-size:calc(9px * var(--text-scale, 1))}.pet-star-row b{color:#eef4ff}
.pet-star-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pet-star-actions button{padding:7px!important;font-size:calc(9px * var(--text-scale, 1))!important;font-weight:900}
.pet-star-actions button[data-pet-star-up]:not([disabled]){border-color:#b58b36!important;background:linear-gradient(180deg,#3a2c12,#241c10)!important;color:#ffe3a0!important}
.pet-star-next{color:#8fa4c6;font-size:calc(8.5px * var(--text-scale, 1));line-height:1.4}
.pet-vinculo-card{display:grid;gap:5px;padding:8px 9px;border:1px solid #3a2d52;border-radius:9px;background:#151226}
.pet-vinculo-card>div:first-child{display:flex;justify-content:space-between;gap:8px}
.pet-vinculo-card span{color:#d7b8ff;font-size:calc(9px * var(--text-scale, 1));font-weight:900}
.pet-vinculo-card strong{color:#b9a3d8;font-size:calc(8.5px * var(--text-scale, 1))}
.pet-vinculo-card small{color:#8d84a3;font-size:calc(8.5px * var(--text-scale, 1));line-height:1.4}
.pet-vinculo-rewards{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.pet-vinculo-rewards li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:5px 7px;border:1px solid #263247;border-radius:7px;background:#111824}
.pet-vinculo-rewards li span{color:#8fa4c6;font-size:calc(8px * var(--text-scale, 1));font-weight:800}
.pet-vinculo-rewards li strong{color:#dfe7f5;font-size:calc(9px * var(--text-scale, 1))}
.pet-vinculo-rewards li em{color:#5d6b80;font-size:calc(8px * var(--text-scale, 1));font-style:normal;font-weight:800}
.pet-vinculo-rewards li.is-locked strong{color:#6d7a8f}
.pet-vinculo-rewards li.is-active{border-color:#6f4fa3}
.pet-vinculo-rewards li button{padding:4px 8px!important;font-size:calc(8px * var(--text-scale, 1))!important}
/* Cor de nome do Vinculo 15 e tinta de aura do Vinculo 20: so cor. */
/* A aba de pets tem `.active-pet-panel strong/span/small` com !important para a
   ficha do pet; o painel de evolucao mora dentro dela e precisa da propria escala. */
.active-pet-panel .pet-companion-panel strong{font-size:calc(10px * var(--text-scale, 1))!important}
.active-pet-panel .pet-companion-panel .pet-star-row strong{font-size:calc(14px * var(--text-scale, 1))!important}
.active-pet-panel .pet-companion-panel span{font-size:calc(9px * var(--text-scale, 1))!important}
.active-pet-panel .pet-companion-panel small{font-size:calc(8.5px * var(--text-scale, 1))!important;line-height:1.4}
.pet-companion-panel{grid-column:1/-1}
.pet-vinculo-card .bond-track{height:6px;border-radius:999px;background:#1f1830;overflow:hidden}
.pet-vinculo-card .bond-track i{display:block;height:100%;background:linear-gradient(90deg,#7b4fd0,#c79bff)}
/* BLOOD CASTLE (Fase 88) — a arena. O cenario e da Forja
   (assets/backgrounds/blood_castle.webp); sem ele, o gradiente carmesim segura a cena. */
.blood-castle-scene{display:grid;gap:12px}
.blood-castle-stage{position:relative;min-height:clamp(460px,68vh,640px);border:1px solid #6b1d24;border-radius:16px;overflow:hidden;
  background:var(--blood-castle-arena,none) center/cover no-repeat,radial-gradient(ellipse at 62% 38%,rgba(190,24,40,.35),transparent 55%),radial-gradient(ellipse at 50% 120%,rgba(120,10,20,.6),transparent 60%),linear-gradient(180deg,#1a070b,#07030a 70%);
  box-shadow:inset 0 0 120px rgba(0,0,0,.85),0 10px 40px rgba(120,10,20,.35)}
.blood-castle-stage-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(6,2,6,.72) 0%,rgba(6,2,6,.08) 30%,rgba(6,2,6,.1) 62%,rgba(6,2,6,.85) 100%),radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.6) 100%)}
.blood-castle-stage-top{position:absolute;top:12px;left:14px;right:14px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:10px}
.blood-castle-back{padding:7px 12px!important;font-size:calc(10px * var(--text-scale, 1))!important;background:rgba(12,6,10,.8)!important;border:1px solid #5a1f24!important}
.blood-castle-stage-eyebrow{color:#fca5a5;font-weight:900;letter-spacing:2px;font-size:calc(10px * var(--text-scale, 1));text-shadow:0 0 12px rgba(255,60,60,.6)}
.blood-castle-panel{position:relative;z-index:2;min-height:inherit;display:grid;grid-template-rows:auto 1fr auto;padding:52px 20px 18px}
.blood-castle-hud{display:grid;justify-items:center;gap:6px;text-align:center}
.blood-castle-hud h3{margin:0;color:#ffe4e6;font-size:calc(26px * var(--text-scale, 1));letter-spacing:1px;text-shadow:0 0 18px rgba(255,40,60,.7),0 2px 0 #000}
.blood-castle-hp{display:grid;gap:4px;width:min(620px,100%);justify-items:center}
.blood-castle-hp>div{width:100%;height:16px;border-radius:999px;background:rgba(20,6,10,.85);overflow:hidden;border:1px solid #7f1d1d;box-shadow:0 0 16px rgba(255,40,60,.25)}
.blood-castle-hp i{display:block;height:100%;background:linear-gradient(90deg,#7f1d1d,#ef4444 70%,#fca5a5);transition:width .4s ease}
.blood-castle-hp b{color:#fecaca;font-size:calc(11px * var(--text-scale, 1));text-shadow:0 1px 0 #000}
.blood-castle-art{display:grid;place-items:center;min-height:220px}
.blood-castle-art img{max-width:min(420px,80%);max-height:340px;object-fit:contain;filter:drop-shadow(0 0 28px rgba(255,60,60,.55));animation:bloodCastleFloat 4.5s ease-in-out infinite}
.blood-castle-art.is-fallen img,.blood-castle-art.is-fallen .blood-castle-art-fallback{filter:grayscale(.85) brightness(.55);animation:none}
.blood-castle-art-fallback{font-size:calc(140px * var(--text-scale, 1));filter:drop-shadow(0 0 30px rgba(255,60,60,.6));animation:bloodCastleFloat 4.5s ease-in-out infinite}
@keyframes bloodCastleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.blood-castle-actions{display:grid;justify-items:center;gap:10px}
.blood-castle-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.blood-castle-facts span{display:grid;padding:6px 10px;border:1px solid #4a1a22;border-radius:8px;background:rgba(14,6,10,.82);color:#f1dde1;font-size:calc(11px * var(--text-scale, 1))}
.blood-castle-facts b{color:#fb7185;font-size:calc(8.5px * var(--text-scale, 1));letter-spacing:.6px;text-transform:uppercase}
.blood-castle-actions button{padding:12px 28px!important;font-weight:900;letter-spacing:1px;box-shadow:0 0 24px rgba(255,50,60,.35)}
.blood-castle-title-on{color:#fde68a;font-weight:800}
.blood-castle-visualizer{position:relative;z-index:2;padding:52px 14px 14px}
.pvp-visualizer-cena .pvp-boss-art{max-width:300px!important;max-height:300px!important;font-size:7.5rem!important}
.pvp-visualizer-cena{background:transparent!important;border-color:transparent!important;box-shadow:none!important;height:clamp(380px,56vh,540px)!important}
.blood-castle-info{display:grid;gap:8px;padding:12px 14px;border:1px solid #3b1a22;border-radius:12px;background:rgba(16,8,12,.85)}
.blood-castle-info small{color:#b9a3aa;font-size:calc(10px * var(--text-scale, 1));line-height:1.45}
.blood-castle-rewards{display:grid;gap:4px}
.blood-castle-rewards span{color:#d6c3c8;font-size:calc(10.5px * var(--text-scale, 1))}
.blood-castle-rewards b{color:#fda4af;margin-right:6px}
.blood-castle-rail-card{padding:0!important;overflow:hidden!important;border-color:#6b1d24!important;background:linear-gradient(135deg,rgba(90,14,24,.55),rgba(18,8,12,.9))!important}
.blood-castle-rail-entry{width:100%}
.blood-castle-rail-entry .rail-toggle-copy strong{color:#fecdd3}
.blood-castle-rail-entry .rail-toggle-chevron{font-size:1.3em;color:#fca5a5}
@media (max-width:720px){.blood-castle-panel{padding:52px 10px 14px}.blood-castle-art img{max-height:220px}}
/* GUILD BOSS (Fase 89) — a arena da guilda. Mesma estrutura do Blood Castle, em
   aço e ouro. O cenario e da Forja (assets/backgrounds/guild_boss.webp); sem ele,
   o gradiente segura a cena. */
.guild-boss-scene{display:grid;gap:12px}
.guild-boss-stage{position:relative;min-height:clamp(460px,68vh,640px);border:1px solid #6b5a2a;border-radius:16px;overflow:hidden;
  background:var(--guild-boss-arena,none) center/cover no-repeat,radial-gradient(ellipse at 62% 38%,rgba(214,168,60,.25),transparent 55%),radial-gradient(ellipse at 50% 120%,rgba(60,70,90,.6),transparent 60%),linear-gradient(180deg,#12151c,#06070b 70%)}
.guild-boss-stage-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,5,8,.72) 0%,rgba(4,5,8,.08) 30%,rgba(4,5,8,.1) 62%,rgba(4,5,8,.85) 100%),radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.6) 100%)}
.guild-boss-stage-top{position:absolute;top:12px;left:14px;right:14px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:10px}
.guild-boss-back{padding:7px 12px!important;font-size:calc(10px * var(--text-scale, 1))!important;background:rgba(8,9,12,.8)!important;border:1px solid #5a4a22!important}
.guild-boss-stage-eyebrow{color:#fde68a;font-weight:900;letter-spacing:2px;font-size:calc(10px * var(--text-scale, 1));text-shadow:0 0 12px rgba(250,200,80,.55)}
.guild-boss-panel{position:relative;z-index:2;min-height:inherit;display:grid;grid-template-rows:auto 1fr auto;padding:52px 20px 18px}
.guild-boss-hud{display:grid;justify-items:center;gap:6px;text-align:center}
.guild-boss-hud h3{margin:0;color:#fef3c7;font-size:calc(26px * var(--text-scale, 1));letter-spacing:1px;text-shadow:0 0 18px rgba(250,190,60,.55),0 2px 0 #000}
.guild-boss-hp{display:grid;gap:4px;width:min(620px,100%);justify-items:center}
.guild-boss-hp>div{position:relative;width:100%;height:16px;border-radius:999px;background:rgba(10,11,16,.85);overflow:hidden;border:1px solid #7a6428;box-shadow:0 0 16px rgba(250,190,60,.2)}
.guild-boss-hp i{display:block;height:100%;background:linear-gradient(90deg,#7c5a12,#eab308 70%,#fde68a);transition:width .4s ease}
.guild-boss-hp u{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:rgba(255,255,255,.55);text-decoration:none}
.guild-boss-hp b{color:#fef3c7;font-size:calc(11px * var(--text-scale, 1));text-shadow:0 1px 0 #000}
.guild-boss-mecanica{max-width:620px;color:#e5dcc3;font-size:calc(10.5px * var(--text-scale, 1));text-shadow:0 1px 0 #000}
.guild-boss-mecanica b{color:#fbbf24;margin-right:6px}
.guild-boss-art{display:grid;place-items:center;min-height:220px}
.guild-boss-art img{max-width:min(420px,80%);max-height:340px;object-fit:contain;filter:drop-shadow(0 0 28px rgba(250,190,60,.45));animation:bloodCastleFloat 4.5s ease-in-out infinite}
.guild-boss-art.is-fallen img,.guild-boss-art.is-fallen .guild-boss-art-fallback{filter:grayscale(.85) brightness(.55);animation:none}
.guild-boss-art-fallback{font-size:calc(140px * var(--text-scale, 1));filter:drop-shadow(0 0 30px rgba(250,190,60,.5));animation:bloodCastleFloat 4.5s ease-in-out infinite}
.guild-boss-actions{display:grid;justify-items:center;gap:10px}
.guild-boss-empty{margin:0;max-width:520px;text-align:center;color:#d8cfb8}
.guild-boss-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.guild-boss-facts span{display:grid;padding:6px 10px;border:1px solid #4a3f22;border-radius:8px;background:rgba(10,10,14,.82);color:#eee6d0;font-size:calc(11px * var(--text-scale, 1))}
.guild-boss-facts b{color:#fbbf24;font-size:calc(8.5px * var(--text-scale, 1));letter-spacing:.6px;text-transform:uppercase}
.guild-boss-actions button{padding:12px 28px!important;font-weight:900;letter-spacing:1px;box-shadow:0 0 24px rgba(250,190,60,.3)}
.guild-boss-title-on{color:#fde68a;font-weight:800}
.guild-boss-visualizer{position:relative;z-index:2;padding:52px 14px 14px}
.guild-boss-info{display:grid;gap:8px;padding:12px 14px;border:1px solid #3a321c;border-radius:12px;background:rgba(12,12,16,.85)}
.guild-boss-info small{color:#b8b09b;font-size:calc(10px * var(--text-scale, 1));line-height:1.45}
.guild-boss-rewards{display:grid;gap:4px}
.guild-boss-rewards span{color:#d6cfbc;font-size:calc(10.5px * var(--text-scale, 1))}
.guild-boss-rewards b{color:#fcd34d;margin-right:6px}
.guild-boss-ranking{margin:0;padding:0;list-style:none;display:grid;gap:2px;max-width:420px}
.guild-boss-ranking li{display:flex;justify-content:space-between;gap:10px;padding:3px 8px;border-radius:6px;color:#d6cfbc;font-size:calc(10.5px * var(--text-scale, 1))}
.guild-boss-ranking li.is-me{background:rgba(250,190,60,.14);color:#fef3c7;font-weight:800}
.guild-boss-rail-card{padding:0!important;overflow:hidden!important;border-color:#6b5a2a!important;background:linear-gradient(135deg,rgba(110,84,20,.45),rgba(12,12,16,.9))!important}
.guild-boss-rail-entry{width:100%}
.guild-boss-rail-entry .rail-toggle-copy strong{color:#fef3c7}
.guild-boss-rail-entry .rail-toggle-chevron{font-size:1.3em;color:#fcd34d}
@media (max-width:720px){.guild-boss-panel{padding:52px 10px 14px}.guild-boss-art img{max-height:220px}}
/* COLECAO (Fase 87) */
.pet-collection-summary{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px}
.pet-collection-count{display:flex;align-items:baseline;gap:8px}
.pet-collection-count strong{color:#ffd76a;font-size:calc(20px * var(--text-scale, 1))}
.pet-collection-count span{color:#8fa4c6;font-size:calc(10px * var(--text-scale, 1))}
.pet-collection-filters{display:flex;flex-wrap:wrap;gap:6px}
.pet-collection-filters button{padding:5px 10px!important;font-size:calc(9px * var(--text-scale, 1))!important;border-radius:999px!important;background:#151d2b!important;border:1px solid #33445d!important;color:#9bb0cf!important;box-shadow:none!important}
.pet-collection-filters button.active{background:linear-gradient(180deg,#d9ac4c,#a87a26)!important;border-color:#e2bd66!important;color:#1b1406!important}
.pet-shop-card.pet-collection-locked .pet-shop-icon img,.pet-shop-card.pet-collection-locked .pet-shop-icon span{filter:grayscale(1) brightness(.35) contrast(1.2)}
.nome-vinculo{color:#d9b3ff!important;text-shadow:0 0 8px rgba(170,110,255,.55)}
.combat-soul-aura.aura-tinta-vinculo{filter:hue-rotate(250deg) saturate(1.35)}


/* Elite / traits */
.elite-badge,.enemy-trait-badge{display:inline-flex;align-items:center;justify-content:center;align-self:center;margin-top:5px;padding:4px 7px;border-radius:999px;font-size:calc(8px * var(--text-scale, 1))!important;font-weight:900;letter-spacing:.7px;border:1px solid rgba(255,255,255,.12)}
.elite-badge{color:#ffe49a;background:#392d16;border-color:#705520}.enemy-trait-badge{color:#b8d4ff;background:#17243a;border-color:#314d75}
.enemy-combat-card.elite-monster-card,[data-elite-tier="elite"].enemy-combat-card{border-color:#745d2d!important;box-shadow:inset 0 0 24px rgba(203,155,52,.045)}
#monsterCard[data-elite-tier="champion"],.enemy-combat-card[data-elite-tier="champion"]{border-color:#7c5ca9!important}
#monsterCard[data-elite-tier="ancient_monster"],.enemy-combat-card[data-elite-tier="ancient_monster"]{border-color:#a34a3b!important;box-shadow:0 0 18px rgba(181,61,43,.10)}

/* Keep Rules + Essence */
.resource-essence{border-color:rgba(139,92,246,.28)!important}.resource-essence span{color:#b9a3ff!important}.resource-essence strong{color:#e4dcff!important}
.loot-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.keep-rule-select{display:grid!important;align-content:start;gap:5px!important}
.keep-rule-select>span{font-size:calc(9px * var(--text-scale, 1))!important;font-weight:900;color:#aab4c5;letter-spacing:.7px}
.keep-rule-select select{width:100%;min-height:34px;padding:7px 8px;border:1px solid #3a4352;border-radius:7px;background:#151a23;color:#eef2f8;font-size:calc(10px * var(--text-scale, 1))}
.recycle-bar strong:last-of-type{color:#c8b5ff}

/* Código DEV no topbar */
.code-entry-wrap{display:flex;align-items:center;gap:5px}
.code-entry-wrap input{width:106px;height:36px;padding:0 9px;border:1px solid #303846;border-radius:8px;background:#11161e;color:#dfe7f5;font-size:calc(9px * var(--text-scale, 1));font-weight:800;letter-spacing:.7px;outline:none}
.code-entry-wrap input:focus{border-color:#6e5ba6;box-shadow:0 0 0 2px rgba(126,92,190,.10)}
.code-button{min-width:38px!important;padding:8px!important;background:#3a3150!important;color:#d9caff!important}

/* DEV LAB */
.dev-modal-card{width:min(940px,calc(100vw - 32px));max-height:88vh;overflow:auto;padding:20px}
.dev-overline{font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:1.5px;color:#9b83d4}
.dev-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.dev-section{padding:12px;border:1px solid #343b4a;border-radius:11px;background:#171c25;display:grid;gap:7px;align-content:start}
.dev-section h3{margin:0 0 3px;font-size:calc(13px * var(--text-scale, 1));color:#efe9ff}.dev-section label{display:grid;grid-template-columns:1fr 82px;gap:7px;align-items:center;color:#9ea9bb;font-size:calc(9px * var(--text-scale, 1));font-weight:800}.dev-section input,.dev-section select{width:100%;padding:7px;border:1px solid #3b4454;border-radius:7px;background:#11161e;color:#fff;font-size:calc(10px * var(--text-scale, 1))}.dev-section button{padding:8px;border-radius:7px;background:#51407a;color:#f1e9ff;font-size:calc(8.5px * var(--text-scale, 1))}
.dev-telemetry-panel{margin-top:12px;padding:12px;border:1px solid #3a4352;border-radius:11px;background:#141922}.dev-telemetry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.dev-telemetry-head strong,.dev-telemetry-head span{display:block}.dev-telemetry-head strong{color:#f2c777;font-size:calc(11px * var(--text-scale, 1))}.dev-telemetry-head span{margin-top:3px;color:#8692a5;font-size:calc(8px * var(--text-scale, 1))}.dev-telemetry-head select{padding:7px;border:1px solid #414c5e;border-radius:7px;background:#10151d;color:#fff;font-size:calc(9px * var(--text-scale, 1))}.dev-economy-telemetry{overflow-x:auto}.dev-economy-table{width:100%;border-collapse:collapse;font-size:calc(8px * var(--text-scale, 1))}.dev-economy-table th,.dev-economy-table td{padding:7px;border-bottom:1px solid #29313e;text-align:right;white-space:nowrap}.dev-economy-table th:first-child,.dev-economy-table td:first-child{text-align:left}.dev-economy-table th{color:#8d9ab0;font-size:calc(7px * var(--text-scale, 1));letter-spacing:.5px}.dev-economy-table td{color:#dce2eb}.dev-economy-empty{padding:12px;color:#7f8a9d;font-size:calc(9px * var(--text-scale, 1));text-align:center}
.dev-market-note{display:grid;gap:4px;margin-top:12px;padding:11px 12px;border:1px solid #59452a;border-radius:10px;background:#211c15}.dev-market-note strong{color:#e7c681;font-size:calc(10px * var(--text-scale, 1))}.dev-market-note span{color:#a99e88;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}

/* v0.44 — clareza de combate, Sets, Pets, Contratos e economia sandbox */
.store-nav-button{border-color:rgba(205,159,67,.48)!important;color:#f1d189!important}.store-nav-button.active{background:linear-gradient(180deg,#5b421a,#2c2418)!important;color:#fff2c5!important}
.boss-break-panel{display:grid;gap:4px;margin:8px 0 2px;padding:7px 8px;border:1px solid rgba(227,172,66,.34);border-radius:8px;background:rgba(55,41,18,.72);text-align:left}.boss-break-panel.hidden{display:none!important}.boss-break-panel>div:first-child{display:flex;justify-content:space-between;color:#dfbd75;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.6px}.boss-break-track{height:6px;border-radius:999px;background:#2b251d;overflow:hidden}.boss-break-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#c4852f,#ffe293);transition:width .18s}.boss-break-panel.broken{border-color:#ffd87c;box-shadow:0 0 18px rgba(240,180,55,.18)}.boss-break-panel small{color:#93856d;font-size:calc(7px * var(--text-scale, 1))}
.farm-contribution-card{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;padding:9px;border:1px solid #303b4b;border-radius:9px;background:#121820}.farm-contribution-card>div{display:flex;justify-content:space-between;gap:7px;color:#8996aa;font-size:calc(8px * var(--text-scale, 1))}.farm-contribution-card strong{color:#dce7f8}.farm-contribution-card small{grid-column:1/-1;padding-top:5px;border-top:1px solid #273140;color:#c6a65f;font-size:calc(8px * var(--text-scale, 1))}
.loot-preview-panel{margin-top:10px;padding:11px 12px;border:1px solid #3b4b4a;border-radius:9px;background:linear-gradient(145deg,#131d1c,#12171d)}.loot-preview-panel>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.loot-preview-panel strong{color:#83d8c0;font-size:calc(9px * var(--text-scale, 1))}.loot-preview-panel button{padding:6px 8px;border:1px solid #40655b;background:#1a342d;color:#a6ead6;font-size:calc(7px * var(--text-scale, 1))}.loot-preview-panel p{margin:7px 0 0;color:#9db0ad;font-size:calc(9px * var(--text-scale, 1));line-height:1.5}
.set-card-actions{display:flex;gap:6px;margin-top:9px}.set-card-actions button{flex:1;padding:7px 8px;border:1px solid #3f4a59;border-radius:7px;background:#141a22;color:#9baac0;font-size:calc(7px * var(--text-scale, 1));font-weight:900}.set-card-actions button.active{border-color:#927237;background:#3d2f19;color:#f0d087}.set-partial-copy{color:#80c9ac!important}.set-collection-card.pinned{border-color:#96783c;box-shadow:0 0 0 1px rgba(226,184,93,.08)}
#setsSummary{grid-template-columns:repeat(4,minmax(0,1fr))}
.pet-auto-revive-controls{display:flex;align-items:center;gap:7px}.pet-auto-revive-controls select{padding:7px;border:1px solid #45566d;border-radius:7px;background:#111824;color:#d6e2f3;font-size:calc(9px * var(--text-scale, 1))}.pet-bond-card{display:grid;gap:5px;margin-top:9px;padding:9px;border:1px solid #33465b;border-radius:9px;background:#121a25}.pet-bond-card>div{display:flex;justify-content:space-between;color:#9fb3cf;font-size:calc(9px * var(--text-scale, 1))}.pet-bond-card .bond-track{height:6px;border-radius:999px;background:#1b2634;overflow:hidden}.pet-bond-card i{display:block;height:100%;background:linear-gradient(90deg,#8c65db,#e7b96a)}
.pet-expedition-panel{display:grid;gap:12px}.pet-expedition-status{padding:12px;border:1px solid #3b4655;border-radius:10px;background:#141a22;color:#9eabbd}.pet-expedition-status strong{display:block;color:#eef3fb;margin-bottom:4px}.pet-expedition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pet-expedition-card{padding:13px;border:1px solid #35404d;border-radius:10px;background:#141920}.pet-expedition-card span,.pet-expedition-card small{display:block;color:#8996a8;font-size:calc(8px * var(--text-scale, 1))}.pet-expedition-card strong{display:block;margin:5px 0;color:#e5eaf1}.pet-expedition-card button{width:100%;margin-top:10px;padding:8px;border:1px solid #4f674f;background:#1c3421;color:#b7e4bd;font-size:calc(8px * var(--text-scale, 1))}.pet-expedition-card button:disabled{opacity:.35}
.contracts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.contract-card{padding:16px;border:1px solid #343d4a;border-radius:12px;background:linear-gradient(155deg,#1c222b,#151920)}.contract-card.claimed{opacity:.62}.contract-card span{color:#8c99aa;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.contract-card h3{margin:6px 0 5px;color:#edf1f7}.contract-card p{min-height:34px;color:#99a5b5;font-size:calc(10px * var(--text-scale, 1));line-height:1.45}.contract-progress{height:7px;margin:10px 0 5px;border-radius:999px;background:#11161d;overflow:hidden}.contract-progress i{display:block;height:100%;background:linear-gradient(90deg,#4f82c8,#91c6f2)}.contract-card small{display:block;color:#cbb174}.contract-card button{width:100%;margin-top:12px;padding:9px;font-size:calc(8px * var(--text-scale, 1))}.contract-card button:disabled{opacity:.38}.contracts-renew{padding:9px 12px!important}
.test-store-header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px}.test-wallet{min-width:230px;padding:13px 16px;border:1px solid #72592e;border-radius:11px;background:#211b12}.test-wallet span{display:block;color:#a98b54;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.test-wallet strong{display:block;margin:4px 0 8px;color:#ffe19a;font-size:calc(22px * var(--text-scale, 1))}.test-wallet button{padding:6px 8px;border:1px solid #6a522c;background:#342717;color:#e4c67e;font-size:calc(7px * var(--text-scale, 1))}.test-store-warning{display:flex;gap:10px;align-items:center;margin-bottom:14px;padding:10px 13px;border:1px solid #6b4e2d;border-radius:9px;background:#251c13;color:#aa987b;font-size:calc(9px * var(--text-scale, 1))}.test-store-warning strong{color:#f0c978}.store-pack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.store-pack-card{padding:16px;border:1px solid #3b4350;border-radius:12px;background:linear-gradient(150deg,#1e232c,#151920)}.store-pack-card .pack-icon{font-size:calc(29px * var(--text-scale, 1))}.store-pack-card h3{margin:7px 0 5px;color:#eef2f7}.store-pack-card p{min-height:38px;color:#929cab;font-size:calc(9px * var(--text-scale, 1));line-height:1.5}.store-pack-card strong{display:block;margin:8px 0;color:#f2cf7f}.store-pack-card button{width:100%;padding:9px;border-color:#75602f;background:#5c451e;color:#ffe9af;font-size:calc(8px * var(--text-scale, 1))}
.market-layout{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(360px,1.25fr);gap:12px}.market-create-card label{display:grid;gap:5px;margin-top:9px;color:#8794a7;font-size:calc(8px * var(--text-scale, 1));font-weight:900}.market-create-card input,.market-create-card select{padding:10px;border:1px solid #3c4655;border-radius:8px;background:#111720;color:#e4e9f0}.market-fee-preview{margin:11px 0;padding:9px;border-radius:8px;background:#121820;color:#a7b1c0;font-size:calc(9px * var(--text-scale, 1));line-height:1.5}.market-create-card>button{width:100%;padding:10px}.market-listings,.test-store-history{display:grid;gap:8px}.market-listing,.store-history-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px;border:1px solid #303a47;border-radius:9px;background:#141920}.market-listing strong,.store-history-row strong{color:#e6ebf2}.market-listing small,.store-history-row small{display:block;margin-top:3px;color:#8490a0}.market-listing-actions{display:flex;gap:6px;align-items:center}.market-listing-actions button{padding:7px;font-size:calc(7px * var(--text-scale, 1))}.market-listing-actions .sell{border-color:#4f704f;background:#203722;color:#bde9c0}
@media(max-width:900px){#setsSummary{grid-template-columns:1fr 1fr}.pet-expedition-grid,.contracts-grid,.store-pack-grid{grid-template-columns:1fr 1fr}.market-layout{grid-template-columns:1fr}.test-store-header{align-items:flex-start!important;flex-direction:column}.test-wallet{width:100%;box-sizing:border-box}}
@media(max-width:620px){#setsSummary{grid-template-columns:1fr}.pet-expedition-grid,.contracts-grid,.store-pack-grid{grid-template-columns:1fr}.farm-contribution-card{grid-template-columns:1fr}.farm-contribution-card small{grid-column:1}.test-store-warning{align-items:flex-start;flex-direction:column}}

/* =====================================================
   v0.46 — inventário em duas áreas, navegação compacta e combate estável
   ===================================================== */
.main-nav{position:relative;align-items:stretch;overflow:visible}
.main-nav>.nav-button{flex:1 1 0}
.nav-more-wrap{position:relative;display:flex;flex:0 0 150px}
.nav-more-button{width:100%;min-height:48px;border:1px solid transparent;border-radius:8px;background:transparent;color:#9ca6b8;font-size:calc(11px * var(--text-scale, 1));letter-spacing:.6px}
.nav-more-button:hover,.nav-more-button.active,.nav-more-button[aria-expanded="true"]{border-color:#485164;background:#222836;color:#f0f3f8;filter:none}
.nav-more-menu{position:absolute;z-index:180;top:calc(100% + 8px);right:0;display:grid;width:250px;padding:8px;border:1px solid #3b4555;border-radius:12px;background:rgba(17,22,30,.98);box-shadow:0 20px 55px rgba(0,0,0,.48)}
.nav-more-menu .nav-button{width:100%;min-height:42px!important;padding:10px 12px!important;text-align:left;font-size:calc(10px * var(--text-scale, 1))!important}

.inventory-page-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;align-items:start;max-width:none}
.inventory-side-column,.inventory-main-column{display:grid;gap:14px;min-width:0}
.inventory-side-column{position:sticky;top:12px}
.inventory-page-layout .loot-filter-card{margin:0;padding:14px!important}
.inventory-page-layout .inventory-automation-summary{align-items:flex-start}
.inventory-page-layout .inventory-automation-summary>div{min-width:0}
.inventory-page-layout .inventory-automation-summary strong{font-size:calc(15px * var(--text-scale, 1))}
.inventory-page-layout .inventory-automation-summary small{font-size:calc(8px * var(--text-scale, 1));line-height:1.45}
.inventory-page-layout .loot-preset-strip{grid-template-columns:1fr;gap:6px}
.inventory-page-layout .loot-preset-strip button{min-height:48px;text-align:left}
.inventory-page-layout .loot-filter-explanation{font-size:calc(8.5px * var(--text-scale, 1));line-height:1.45}
.loot-advanced-details{margin-top:8px;border:1px solid #303846;border-radius:9px;background:#121720}
.loot-advanced-details>summary{padding:10px;color:#aab5c7;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px;cursor:pointer}
.loot-advanced-details .loot-filter-grid{display:grid!important;grid-template-columns:1fr!important;padding:0 8px 8px;gap:6px!important}
.loot-advanced-details .loot-filter-grid label{min-height:0!important;padding:8px!important}
.loot-advanced-details .loot-filter-grid label small{display:none}
.inventory-page-layout .loot-filter-help{font-size:calc(8px * var(--text-scale, 1));line-height:1.45}
.mg-build-panel{padding:15px;background:linear-gradient(150deg,#202638,#171b24)}
.mg-build-panel h3{margin:2px 0 5px;font-size:calc(18px * var(--text-scale, 1))}.mg-build-panel p{margin:0 0 10px;color:#929daf;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}
.mg-build-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px}.mg-build-choice button{display:grid;gap:3px;padding:10px 8px;border:1px solid #3c4759;border-radius:8px;background:#151b25;color:#aeb9cb;font-size:calc(8px * var(--text-scale, 1))}.mg-build-choice button small{color:#748095;font-size:calc(7px * var(--text-scale, 1))}.mg-build-choice button.active{border-color:#b08a3c;background:#3b2e18;color:#ffe09a;box-shadow:0 0 16px rgba(199,151,55,.12)}.mg-build-hint{display:block;margin-top:9px;color:#7e899a;font-size:calc(8px * var(--text-scale, 1));line-height:1.45}
.equipped-showcase-card{padding:16px;background:linear-gradient(145deg,#202735,#171c25);border-color:#465164}.equipped-showcase-card h2{font-size:calc(20px * var(--text-scale, 1))}
.inventory-equipped-grid{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:7px}
.equipped-showcase-slot{position:relative;display:grid;grid-template-rows:auto 58px auto 1fr auto;justify-items:center;min-width:0;min-height:170px;padding:9px 7px;border:1px solid #3a4656;border-radius:11px;background:linear-gradient(180deg,#171d27,#12171f);text-align:center}
.equipped-showcase-slot>span{color:#7f8da1;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.6px;text-transform:uppercase}.equipped-showcase-slot>strong{width:100%;margin-top:5px;overflow-wrap:anywhere;color:#e7edf6;font-size:calc(10px * var(--text-scale, 1));line-height:1.28;white-space:normal}.equipped-showcase-slot>small{margin-top:3px;color:#8f9bac;font-size:calc(7px * var(--text-scale, 1));line-height:1.35}.equipped-showcase-slot>button{align-self:end;width:100%;margin-top:6px;padding:5px;background:#303947;color:#aab5c5;font-size:calc(7px * var(--text-scale, 1))}.equipped-showcase-slot.empty{opacity:.48}.inventory-equipped-art{width:52px;height:52px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 5px 9px rgba(0,0,0,.35))}
.inventory-main-column .inventory-card{max-width:none}.inventory-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.inventory-list-grid>.empty-inventory{grid-column:1/-1}
.inventory-list-grid .inventory-group{grid-template-columns:24px 46px minmax(0,1fr)!important;align-content:start;min-height:150px!important;margin:0!important;padding:11px!important;gap:8px!important}.inventory-list-grid .inventory-item-art{width:43px;height:43px}.inventory-list-grid .group-main{align-self:start}.inventory-list-grid .group-action{grid-column:3!important;min-width:0!important;justify-content:flex-start;margin-top:2px}.inventory-list-grid .group-action button{padding:6px 8px!important;font-size:calc(7.5px * var(--text-scale, 1))!important}.inventory-list-grid .compare-line{padding:6px 7px;font-size:calc(8.5px * var(--text-scale, 1))}.inventory-list-grid .group-extra{font-size:calc(8px * var(--text-scale, 1))!important}.inventory-list-grid .group-subtitle{font-size:calc(9px * var(--text-scale, 1))!important}

.battle-equipment-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
.battle-equipment-list .equipment-row{grid-template-columns:42px minmax(0,1fr)!important;align-content:start;min-height:104px!important;padding:7px!important;gap:3px 6px!important}
.battle-equipment-list .wing-slot-row{grid-column:auto!important}.battle-equipment-list .slot-visual{min-width:0}.battle-equipment-list .equipment-item-art{width:38px;height:38px}.battle-equipment-list .slot-title{font-size:calc(7px * var(--text-scale, 1))!important}.battle-equipment-list .item-name{display:block;overflow-wrap:anywhere;font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.25;white-space:normal}.battle-slot-name-row{min-width:0}.battle-equipment-list .item-stat{display:block;font-size:calc(7px * var(--text-scale, 1))!important;line-height:1.35}.battle-equipment-list .rarity-badge,.battle-equipment-list .class-badge,.battle-equipment-list .family-badge{font-size:calc(6.5px * var(--text-scale, 1))!important;padding:2px 4px}.battle-equipment-list .equipment-actions{grid-column:1/-1!important;margin-top:2px}.battle-equipment-list .equipment-actions button{padding:4px 5px!important;min-height:21px!important;font-size:calc(6.5px * var(--text-scale, 1))!important}.battle-equipment-list .smart-upgrade-note{grid-column:1/-1}

/* Somente o avatar recebe o impulso do ataque. HUD, barras e janela do Pet ficam imóveis. */
.player-combat-card.attack-motion{animation:none!important}.player-combat-card.attack-motion>.fighter-heading>.fighter-avatar{animation:playerAttackNudge .23s ease-out}
/* v0.92.2: mesmo tratamento do player — a animação de ataque roda só no sprite
   (.fighter-avatar), nunca no card inteiro (que carrega HP bar/placa e não deve tremer).
   #monsterIcon é filho direto de .enemy-combat-card (sem .fighter-heading no meio). */
.enemy-combat-card.attack-motion{animation:none!important}.enemy-combat-card.attack-motion>.fighter-avatar{animation:enemyAttackNudge .23s ease-out}
.player-hit-flash{animation:playerFlashStable .25s!important}@keyframes playerFlashStable{50%{border-color:#8f4146;box-shadow:inset 0 0 24px rgba(198,68,74,.12)}}

#contractsSummary{grid-template-columns:repeat(5,minmax(0,1fr))}.contract-reset-summary small{display:block;margin-top:3px;color:#778497;font-size:calc(7px * var(--text-scale, 1))}.contract-daily-bonus{border-color:#6b5430!important;background:linear-gradient(145deg,#2d2417,#1b1b1b)!important}.contract-daily-bonus strong{color:#f0cf83!important}.contract-daily-bonus.claimed{border-color:#35644a!important;background:#17231d!important}.contract-reward{display:grid;gap:3px;margin-top:9px;padding:8px;border:1px solid #3a4553;border-radius:8px;background:#111720}.contract-reward span{font-size:calc(7px * var(--text-scale, 1))}.contract-reward strong{color:#e4c57d;font-size:calc(9px * var(--text-scale, 1))}
.pet-expedition-guide{display:grid;grid-template-columns:62px 1fr;gap:11px;align-items:center;padding:11px;border:1px solid #3a4656;border-radius:10px;background:#121923}.pet-expedition-avatar{display:grid;place-items:center;width:58px;height:58px;border:1px solid #405064;border-radius:10px;background:#0f151d}.pet-expedition-avatar img{width:52px;height:52px;object-fit:contain;image-rendering:pixelated}.pet-expedition-guide span,.pet-expedition-guide strong,.pet-expedition-guide small{display:block}.pet-expedition-guide span{color:#8190a4;font-size:calc(7px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.pet-expedition-guide strong{margin:3px 0;color:#edf3fb}.pet-expedition-guide small{color:#8f9cad;font-size:calc(8px * var(--text-scale, 1));line-height:1.45}.pet-expedition-status.running{border-color:#63552e;background:#201c13}.pet-expedition-status.ready{border-color:#3f7458;background:#14231b}.pet-expedition-status button{float:right;padding:7px 9px;font-size:calc(7px * var(--text-scale, 1))}.pet-expedition-card{min-height:136px;display:grid;grid-template-rows:auto auto 1fr auto}.pet-expedition-card small{font-size:calc(8.5px * var(--text-scale, 1));line-height:1.5}
.pet-merchant-summary{display:block!important}.pet-account-wallet{align-self:start}.pet-account-wallet>div{min-height:72px;align-content:center;flex-wrap:wrap}.pet-account-wallet strong{color:#f0cb67}

@media(max-width:1120px){.inventory-page-layout{grid-template-columns:270px minmax(0,1fr)}.inventory-equipped-grid{grid-template-columns:repeat(4,minmax(90px,1fr))}.inventory-list-grid{grid-template-columns:1fr}#contractsSummary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.nav-more-wrap{flex:1 1 45%}.nav-more-menu{position:fixed;top:auto;right:14px;bottom:14px;left:14px;width:auto}.inventory-page-layout{grid-template-columns:1fr}.inventory-side-column{position:static}.inventory-equipped-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.equipped-showcase-slot{min-height:150px}#contractsSummary{grid-template-columns:1fr 1fr}}

/* Nome do personagem */
.profile-character-name{display:block;margin-top:7px;color:#f2f5fb;font-size:calc(16px * var(--text-scale, 1));line-height:1.1}
.profile-name-label{display:grid;gap:5px;margin-top:7px;color:#8e99ab;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px;text-align:left}
.profile-name-input{width:100%;min-width:0;padding:8px 9px;border:1px solid #394252;border-radius:8px;background:#121720;color:#f1f4fa;font-size:calc(11px * var(--text-scale, 1));font-weight:800;outline:none}
.profile-name-input:focus{border-color:#8a6d34;box-shadow:0 0 0 2px rgba(188,144,56,.10)}
.profile-rename-button{background:#38445a!important;color:#d5e2f8!important}
.profile-class-name{display:block;margin-top:4px!important;color:#8fa0ba!important;font-size:calc(9px * var(--text-scale, 1))!important;font-weight:800!important;letter-spacing:.6px!important}

@media(max-width:980px){.dev-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.battle-pet-panel{top:-2px;right:-2px}.pet-specialization-grid{grid-template-columns:1fr}.loot-filter-grid{grid-template-columns:1fr!important}.code-entry-wrap input{width:85px}.dev-grid{grid-template-columns:1fr}}


/* v0.33 — rota por etapa e balanceamento */
.stage-route-controls{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px;padding-top:8px;border-top:1px solid rgba(255,255,255,.05)}
.stage-back-button,.stage-resume-button{min-height:30px;padding:7px 10px;border:1px solid #485263;border-radius:7px;background:#202733;color:#c9d2df;font-size:calc(9px * var(--text-scale, 1));font-weight:850;letter-spacing:.25px}
.stage-back-button:hover,.stage-resume-button:hover{border-color:#80652f;background:#30291d;color:#f1d996;filter:none}
.stage-back-button:disabled{opacity:.35;cursor:not-allowed}
.stage-resume-button{border-color:#4f765d;background:#1d3025;color:#8dd9a7}
.stage-farm-mode-label{margin-left:auto;color:#8e99aa;font-size:calc(9px * var(--text-scale, 1));font-weight:800;letter-spacing:.35px}
.stage-farm-mode-label.farm-active{color:#f0c96d}
@media(max-width:720px){.stage-farm-mode-label{order:3;width:100%;margin-left:0}.stage-route-controls button{flex:1}}

/* =====================================================
   v0.34 — arte 2D, Loja de Pets, Wings e UI compacta
   ===================================================== */

/* Keep Rules recolhível: no inventário fechado ocupa só uma linha útil */
.inventory-automation-details{padding:0!important;overflow:hidden}
.inventory-automation-details>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto 22px;gap:12px;align-items:center;padding:13px 16px;user-select:none}
.inventory-automation-details>summary::-webkit-details-marker{display:none}
.inventory-automation-summary>div{min-width:0}
.inventory-automation-summary .eyebrow{display:block;margin-bottom:2px}
.inventory-automation-summary strong{display:block;color:#eef2f8;font-size:calc(15px * var(--text-scale, 1))}
.inventory-automation-summary small{display:block;margin-top:3px;color:#7f8ba0;font-size:calc(9px * var(--text-scale, 1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inventory-automation-details .details-chevron{color:#8e98a8;font-size:calc(15px * var(--text-scale, 1));transition:transform .18s ease}
.inventory-automation-details[open] .details-chevron{transform:rotate(180deg)}
.inventory-automation-details .loot-filter-body{padding:2px 16px 15px;border-top:1px solid rgba(255,255,255,.055)}
.inventory-automation-details[open] .loot-filter-body{animation:inventoryRulesIn .14s ease-out}
@keyframes inventoryRulesIn{from{opacity:.4;transform:translateY(-3px)}to{opacity:1;transform:none}}

/* Popover do Pet: não pode ser cortado nem reconstruído enquanto o usuário interage */
/* FASE 2: o painel do pet passou a viver na camada unica de overlay (src/ui/overlay-layer.js),
   entao nao ha mais o que 'levantar' aqui. Sobra so nao cortar conteudo enquanto ele esta aberto.
   O antigo `.player-combat-card{z-index:71}` era exatamente o remendo que a camada elimina. */
.battle-stage-card.pet-popover-open{overflow:visible!important}
.pet-ai-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.pet-ai-buttons button{min-height:31px;padding:6px 5px;border:1px solid #34445d;border-radius:7px;background:#17202e;color:#9eacc1;font-size:calc(8.5px * var(--text-scale, 1));font-weight:850}
.pet-ai-buttons button:hover{border-color:#58719a;background:#1c2a3d;color:#e4edfb;filter:none}
.pet-ai-buttons button.active{border-color:#7560b6;background:linear-gradient(180deg,#493a70,#34294f);color:#f2ebff;box-shadow:inset 0 1px rgba(255,255,255,.05)}

/* Sprites 2D direcionais fornecidos pelo usuário */
.character-sprite{display:block;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 5px 5px rgba(0,0,0,.38))}
.profile-character-sprite{width:112px;height:142px;object-fit:contain;image-rendering:pixelated;transform:scale(1.18);transform-origin:center bottom}
.sidebar-character-sprite{width:48px;height:48px;object-fit:cover;object-position:50% 12%;image-rendering:pixelated}
.combat-character-sprite{width:47px;height:47px;object-fit:contain;image-rendering:pixelated;transform:scale(1.20)}
.modal-character-sprite{width:58px;height:58px;object-fit:contain;image-rendering:pixelated;transform:scale(1.18)}
.character-sprite-fallback{display:grid;place-items:center;width:100%;height:100%;font-size:inherit}
.profile-icon{overflow:visible!important}
.hero-identity .class-summary-icon,.fighter-avatar,.character-modal-icon{overflow:hidden}
.profile-icon .character-sprite-fallback{font-size:calc(82px * var(--text-scale, 1))}

/* Recursos novos */
.resource-feather{border-color:rgba(215,185,116,.30)!important}
.resource-feather span{color:#d6c7a1!important}.resource-feather strong{color:#f6e8bc!important}
.resource-pet-seal{border-color:rgba(90,170,141,.30)!important}
.resource-pet-seal span{color:#8fd0b7!important}.resource-pet-seal strong{color:#bff0da!important}
.resources-card .resource-stack{grid-template-columns:1fr!important;gap:6px!important}
.resources-card .resource-stack>div{min-height:43px!important}

/* Oficina de Asas */
.wing-crafting-card{overflow:hidden}
.wing-craft-intro{margin:0 0 12px;color:#98a4b8;font-size:calc(10px * var(--text-scale, 1));line-height:1.55}
.wing-material-wallet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:12px}
.wing-material-wallet>span{display:flex;justify-content:space-between;align-items:center;gap:6px;min-height:40px;padding:8px 10px;border:1px solid #343d4c;border-radius:9px;background:#151a23;color:#9da8ba;font-size:calc(9px * var(--text-scale, 1));font-weight:800}
.wing-material-wallet strong{color:#f2f5fa;font-size:calc(12px * var(--text-scale, 1))}
.wing-tier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.wing-tier-card{display:flex;flex-direction:column;gap:5px;min-height:162px;padding:12px;border:1px solid #343c49;border-radius:11px;background:linear-gradient(155deg,#202631,#181d26)}
.wing-tier-card.current-tier{border-color:#735f30;background:linear-gradient(155deg,rgba(103,79,25,.22),#181d26 60%)}
.wing-tier-label{color:#a58b54;font-size:calc(8px * var(--text-scale, 1));font-weight:950;letter-spacing:1.1px}
.wing-tier-card>strong{font-size:calc(14px * var(--text-scale, 1));color:#edf1f7}
.wing-tier-cost{padding:7px 8px;border-radius:7px;background:#121720;color:#d6c386;font-size:calc(9px * var(--text-scale, 1));font-weight:800;line-height:1.35}
.wing-tier-card small{flex:1;color:#8793a6;font-size:calc(8.5px * var(--text-scale, 1));line-height:1.45}
.wing-tier-card button{width:100%;min-height:34px;margin-top:3px;padding:7px 8px;border:1px solid #80652f;background:linear-gradient(180deg,#6e5624,#4e3d1e);color:#ffe8ad;font-size:calc(8.5px * var(--text-scale, 1));font-weight:900}
.wing-owned-head{display:flex;justify-content:space-between;gap:8px;align-items:end;margin-top:15px;padding:11px 2px 7px;border-bottom:1px solid #303845}
.wing-owned-head span{color:#d8dee8;font-size:calc(10px * var(--text-scale, 1));font-weight:950;letter-spacing:1px}.wing-owned-head small{color:#798599;font-size:calc(8.5px * var(--text-scale, 1))}
.wing-craft-item{grid-template-columns:54px minmax(0,1fr) minmax(180px,auto)!important;min-height:80px;padding:11px 12px!important}
.wing-craft-item.compatible-wing{border-color:rgba(70,151,102,.42)}
.wing-craft-item.incompatible-wing{opacity:.84}
.wing-craft-copy h4{margin:0!important;font-size:calc(12px * var(--text-scale, 1))!important}
.wrong-class-badge{padding:4px 7px;border:1px solid #67434a;border-radius:999px;background:#2b1c20;color:#d8919e;font-size:calc(7px * var(--text-scale, 1));font-weight:900}
.wing-evolve-action{display:grid;gap:5px;justify-items:end;min-width:180px}
.wing-evolve-action>span{color:#d4b463;font-size:calc(8px * var(--text-scale, 1));font-weight:900}
.wing-evolve-action button{width:100%;min-height:43px;padding:6px 9px;border:1px solid #5d4a7a;background:#44345f;color:#eee3ff;font-size:calc(8.5px * var(--text-scale, 1));font-weight:900}
.wing-evolve-action button small{display:block;margin-top:3px;color:#b4a6c8;font-size:calc(7.5px * var(--text-scale, 1));line-height:1.3;font-weight:700}
.wing-evolve-action button:disabled{opacity:.35}

/* Loja de Pets */
.pet-merchant-summary{display:grid!important;grid-template-columns:minmax(220px,.42fr) minmax(0,1fr)!important;gap:12px}
.merchant-resource-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start}
.merchant-resource-row>div{padding:12px;border:1px solid #343d49;border-radius:10px;background:#151a21}
.merchant-resource-row span{display:block;color:#7e8999;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.merchant-resource-row strong{display:block;margin-top:5px;color:#f1f4f8;font-size:calc(18px * var(--text-scale, 1))}
.pet-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.pet-shop-card.starter-pet{border-color:#4e765d;background:linear-gradient(155deg,rgba(45,94,61,.17),#171a21 62%)}
.pet-free-price{color:#79d39a!important}
.pet-card-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

@media(max-width:900px){
  .wing-tier-grid{grid-template-columns:1fr}
  .wing-material-wallet{grid-template-columns:1fr 1fr}
  .pet-merchant-summary{grid-template-columns:1fr!important}
  .profile-character-sprite{width:96px;height:120px}
}
@media(max-width:620px){
  .inventory-automation-details>summary{grid-template-columns:minmax(0,1fr) auto 18px;padding:11px 12px}
  .inventory-automation-summary small{display:none}
  .wing-material-wallet{grid-template-columns:1fr}
  .wing-craft-item{grid-template-columns:48px minmax(0,1fr)!important}
  .wing-evolve-action{grid-column:1/-1;width:100%;min-width:0;justify-items:stretch}
  .pet-shop-grid{grid-template-columns:1fr!important}
  .pet-ai-buttons{grid-template-columns:1fr}
}


/* v0.35 — enquadramento de sprites, avisos e prévias */
.profile-character-visual{overflow:hidden}
.profile-icon{width:150px!important;height:170px!important;transform:translateY(12px)!important}
.profile-character-sprite{width:132px;height:168px;object-fit:contain;object-position:center bottom;image-rendering:pixelated;transform:scale(1.12);transform-origin:center bottom}
.profile-character-sprite.sprite-warrior{transform:scale(1.15)}
.profile-character-sprite.sprite-archer{transform:scale(1.34) translateY(2px)}
.profile-character-sprite.sprite-mage{transform:scale(1.18)}
.profile-character-sprite.sprite-magic_gladiator{transform:scale(1.20)}
.profile-character-name{position:relative;z-index:2;color:#fff;font-size:calc(18px * var(--text-scale, 1));font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.75)}
.profile-name-label{position:relative;z-index:2;display:grid;gap:6px;width:100%;max-width:192px;color:#9ba7bc;font-size:calc(10px * var(--text-scale, 1));font-weight:800;letter-spacing:.7px;text-align:left}
.profile-name-input{width:100%;padding:9px 11px;border:1px solid #394255;border-radius:9px;background:#111722;color:#e8eef8;font-size:calc(12px * var(--text-scale, 1))}
.profile-name-input.input-invalid{border-color:#a14a4a;box-shadow:0 0 0 2px rgba(161,74,74,.18)}
.profile-name-error{display:block;min-height:14px;color:#ff9b9b;font-size:calc(10px * var(--text-scale, 1));line-height:1.2}
.fighter-heading{padding-right:74px;min-height:58px;align-items:flex-start}
.fighter-heading-copy{padding-right:6px}
.combat-character-sprite{width:50px;height:50px;object-fit:contain;image-rendering:pixelated;transform:scale(1.18);transform-origin:center bottom}
.combat-character-sprite.sprite-archer{transform:scale(1.46) translateY(1px)}
.combat-character-sprite.sprite-magic_gladiator{transform:scale(1.25)}
.sidebar-character-sprite{width:48px;height:48px;object-fit:cover;object-position:50% 12%;image-rendering:pixelated}
.sidebar-character-sprite.sprite-archer{object-position:50% 10%}
.battle-pet-panel{top:2px!important;right:2px!important}
.wing-material-wallet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.wing-wallet-item{display:flex;align-items:center;gap:7px;padding:10px 12px;border:1px solid #303a4b;border-radius:11px;background:#121826;color:#dce4f7;font-size:calc(12px * var(--text-scale, 1))}
.wing-wallet-item em{font-style:normal;color:#9ba8bf}
.wing-inline-icon{font-size:calc(16px * var(--text-scale, 1));line-height:1}
.wing-preview-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 8px}
.wing-preview-card{display:grid;justify-items:center;gap:6px;padding:12px 10px;border:1px solid #303a4b;border-radius:12px;background:#101622;text-align:center}
.wing-preview-card.compatible{border-color:#80692a;background:linear-gradient(180deg,rgba(115,89,29,.16),#101622)}
.wing-preview-card img{width:44px;height:44px;object-fit:contain}
.wing-preview-card strong{font-size:calc(12px * var(--text-scale, 1));color:#eef4ff}.wing-preview-card small{font-size:calc(10px * var(--text-scale, 1));color:#94a1b8}
.wing-preview-note{grid-column:1/-1;padding:8px 10px;border:1px dashed #41506a;border-radius:10px;color:#9eb0cd;font-size:calc(11px * var(--text-scale, 1));text-align:center}
.pet-price-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px;font-size:calc(13px * var(--text-scale, 1))}
.pet-cost-plus{color:#8e97a8}.pet-cost-seal{color:#bde7d6}.pet-cost-gold{color:#ffd97e}
@media(max-width:980px){.wing-material-wallet,.wing-preview-strip{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.wing-material-wallet,.wing-preview-strip{grid-template-columns:1fr}}


/* v0.36 — artes de asas, npc e vendors */
.vendor-header{display:flex;align-items:center;gap:16px}.vendor-portrait{width:72px;height:72px;object-fit:contain;image-rendering:pixelated;flex:0 0 auto;filter:drop-shadow(0 8px 14px rgba(0,0,0,.28))}
.fighter-avatar.has-asset,.fighter-avatar:has(.monster-asset){padding:0;background:rgba(11,15,22,.88)}
.monster-asset{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;transform:scale(1.12)}
.enemy-fighter{overflow:hidden}.enemy-fighter.has-scene-bg::before{content:"";position:absolute;inset:0;background-image:var(--enemy-bg-image);background-size:cover;background-position:center;opacity:.18;pointer-events:none}.enemy-fighter>*{position:relative;z-index:1}
.pet-shop-art{width:40px;height:40px;object-fit:contain;image-rendering:pixelated;transform:scale(1.12)}
.pet-battle-art{display:block;width:25px;height:25px;object-fit:contain;image-rendering:pixelated;transform:scale(1.12)}
.pet-toggle-icon{display:grid;place-items:center}.active-pet-icon .pet-shop-art{width:46px;height:46px}.pet-shop-icon .pet-shop-art{width:38px;height:38px}
.wing-preview-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.wing-card-art{width:52px;height:52px}.wing-icon .wing-card-art,.inventory-item-art,.forge-target-art,.forge-list-art,.equipment-item-art{image-rendering:pixelated}
@media(max-width:1100px){.wing-preview-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.vendor-header{align-items:flex-start}.vendor-portrait{width:58px;height:58px}}


/* =====================================================
   v0.37 — seleção limpa, miniaturas e recuperação AFK
   ===================================================== */
.profile-modal-card{width:min(1240px,calc(100vw - 28px))!important;padding:22px!important;overflow:auto!important}
.profile-cards{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;align-items:stretch}
.profile-card{display:grid!important;grid-template-rows:184px 112px minmax(180px,1fr)!important;min-height:490px!important;padding:0!important;overflow:hidden!important;border-radius:10px!important;transform:none!important}
.profile-card:hover{transform:translateY(-2px)!important}.profile-card::after{display:none!important}
.profile-character-visual{height:184px!important;padding:10px 10px 0!important;display:grid!important;place-items:center!important;overflow:hidden!important;border-bottom:1px solid rgba(255,255,255,.045)}
.profile-icon{width:156px!important;height:172px!important;margin:0!important;display:grid!important;place-items:center!important;transform:none!important;filter:drop-shadow(0 12px 10px rgba(0,0,0,.5))}
.profile-character-sprite,.profile-character-sprite.sprite-warrior,.profile-character-sprite.sprite-archer,.profile-character-sprite.sprite-mage,.profile-character-sprite.sprite-magic_gladiator{width:148px!important;height:168px!important;object-fit:contain!important;object-position:center center!important;transform:none!important;image-rendering:pixelated}
.profile-identity-zone{display:flex;align-items:center;justify-content:center;min-height:112px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.045);background:rgba(9,12,18,.20);position:relative;z-index:3}
.profile-saved-identity,.profile-new-identity{width:100%;display:grid;justify-items:center;align-content:center;gap:5px;text-align:center}
.profile-character-name{margin:0!important;font-size:calc(20px * var(--text-scale, 1))!important;line-height:1.05!important}.profile-class-name{font-size:calc(11px * var(--text-scale, 1))!important;line-height:1.2!important;color:#aeb9cf!important;letter-spacing:.7px;text-align:center}
.profile-name-label{display:grid!important;width:min(100%,210px)!important;max-width:none!important;gap:6px!important;color:#9da8bc!important;text-align:left!important}.profile-name-label>span{font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:1.2px}
.profile-name-input{box-sizing:border-box!important;width:100%!important;height:38px!important;margin:0!important;padding:0 11px!important;font-size:calc(11px * var(--text-scale, 1))!important}.profile-name-error{display:block!important;width:min(100%,210px)!important;min-height:13px!important;margin:0!important;color:#ff8d8d!important;font-size:calc(8.5px * var(--text-scale, 1))!important;line-height:1.25!important;text-align:left!important}
.profile-character-copy{display:flex!important;flex-direction:column!important;padding:14px!important;min-height:0!important}.profile-character-copy p{min-height:48px!important;font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.45!important}.profile-status{margin:10px 0 12px!important}.profile-actions{margin-top:auto!important}
.sidebar-character-sprite,.sidebar-character-sprite.sprite-archer,.sidebar-character-sprite.sprite-warrior,.sidebar-character-sprite.sprite-mage,.sidebar-character-sprite.sprite-magic_gladiator,.combat-character-sprite,.combat-character-sprite.sprite-archer,.combat-character-sprite.sprite-warrior,.combat-character-sprite.sprite-mage,.combat-character-sprite.sprite-magic_gladiator,.modal-character-sprite,.modal-character-sprite.sprite-archer,.modal-character-sprite.sprite-warrior,.modal-character-sprite.sprite-mage,.modal-character-sprite.sprite-magic_gladiator{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;image-rendering:pixelated}
.hero-identity .class-summary-icon,.fighter-avatar,.character-modal-icon{padding:3px!important;box-sizing:border-box!important;overflow:hidden!important}
.fighter-heading{padding-right:84px!important;min-height:62px!important}.battle-pet-panel{right:1px!important;top:1px!important}.battle-pet-toggle{width:70px!important;height:60px!important;border-radius:12px!important}.pet-toggle-icon{left:4px!important;top:4px!important;width:45px!important;height:43px!important}.pet-battle-art{width:43px!important;height:43px!important;object-fit:contain!important;transform:scale(1.30)!important;image-rendering:pixelated}.pet-toggle-level{right:5px!important;top:7px!important;font-size:calc(9px * var(--text-scale, 1))!important}.pet-toggle-charge{right:5px!important;bottom:13px!important;font-size:calc(7px * var(--text-scale, 1))!important}.pet-toggle-hp{left:5px!important;right:5px!important;bottom:5px!important}
.wing-preview-strip{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.wing-preview-card{display:grid!important;gap:10px!important;padding:12px!important;justify-items:stretch!important;text-align:left!important}.wing-preview-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.wing-preview-title strong{font-size:calc(13px * var(--text-scale, 1));color:#f0f4fb}.wing-preview-title small{font-size:calc(8px * var(--text-scale, 1));color:#8fa2c0;letter-spacing:.8px}.wing-level-preview-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wing-level-preview{display:grid;place-items:center;gap:5px;min-height:92px;padding:7px 5px;border:1px solid #2d3748;border-radius:9px;background:#0d1420}.wing-level-preview img{width:62px!important;height:62px!important;object-fit:contain!important;image-rendering:pixelated;filter:drop-shadow(0 5px 8px rgba(0,0,0,.45))}.wing-level-preview span{font-size:calc(8px * var(--text-scale, 1));font-weight:900;color:#8fa2c0;letter-spacing:.8px}.wing-preview-card.compatible .wing-level-preview{border-color:rgba(194,151,48,.45)}
.stage-farm-mode-label.safety-active{color:#8ce0ff!important;border-color:#397a91!important;background:rgba(35,113,139,.14)!important}
@media(max-width:1050px){.profile-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.profile-card{min-height:450px!important}}@media(max-width:620px){.profile-cards{grid-template-columns:1fr!important}.profile-card{grid-template-rows:170px 92px auto!important;min-height:0!important}.profile-character-visual{height:170px!important}.wing-preview-strip{grid-template-columns:1fr!important}}


/* v0.38 — polimento visual e centralização */
.profile-modal-card{width:min(1320px,100%)!important}
.profile-cards{display:grid!important;grid-template-columns:repeat(4,minmax(240px,1fr))!important;gap:16px!important;align-items:start!important}
.profile-card{display:grid!important;grid-template-rows:196px 118px minmax(196px,1fr)!important;min-height:528px!important;padding:0!important;overflow:hidden!important;border-radius:12px!important;background:linear-gradient(180deg,#151922,#0f131a 72%)!important}
.profile-character-visual{height:196px!important;padding:10px 12px 0!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.profile-icon{width:170px!important;height:170px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 auto!important;transform:none!important;overflow:visible!important}
.profile-character-sprite,.profile-character-sprite.sprite-warrior,.profile-character-sprite.sprite-mage,.profile-character-sprite.sprite-archer,.profile-character-sprite.sprite-magic_gladiator{width:132px!important;height:132px!important;max-width:132px!important;max-height:132px!important;object-fit:contain!important;object-position:center center!important;transform:none!important;image-rendering:pixelated!important;filter:drop-shadow(0 10px 14px rgba(0,0,0,.52))}
.profile-character-sprite.sprite-warrior{transform:translateX(2px)!important}.profile-character-sprite.sprite-archer{transform:translateX(-2px)!important}.profile-character-sprite.sprite-magic_gladiator{transform:translateX(1px)!important}
.profile-identity-zone{display:flex!important;align-items:center!important;justify-content:center!important;min-height:118px!important;padding:12px 14px!important;text-align:center!important}
.profile-name-label,.profile-name-error{width:min(100%,216px)!important}.profile-character-name{font-size:calc(18px * var(--text-scale, 1))!important}.profile-class-name{font-size:calc(11px * var(--text-scale, 1))!important;text-align:center!important}.profile-character-copy{padding:14px 14px 16px!important}.profile-actions{grid-template-columns:1fr 1fr!important;gap:8px!important}.profile-actions button:first-child{grid-column:1/-1}.profile-delete-button{width:100%!important}
.vendor-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px!important}.vendor-header>div{display:grid;gap:6px;min-width:0}.vendor-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.vendor-tags span{display:inline-flex;align-items:center;padding:7px 10px;border:1px solid #313a4b;border-radius:999px;background:#121824;color:#c7d0e2;font-size:calc(11px * var(--text-scale, 1));font-weight:700}
.vendor-portrait{width:84px;height:84px;padding:6px;border-radius:18px;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.08),rgba(255,255,255,.01));border:1px solid #31384a}
.forge-page-grid{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr)!important;gap:18px!important;align-items:start!important}.forge-page-grid>section:first-child{display:grid;gap:16px}.forge-inventory-panel{position:sticky;top:14px;max-height:calc(100vh - 96px);overflow:auto}
.jewel-cards.three-jewels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.forge-main-card,.forge-scroll-card,.wing-crafting-card,.forge-inventory-panel,.pet-store-card,.pet-merchant-summary,.shared-chest-card,.chest-grid>.card{box-shadow:0 16px 34px rgba(0,0,0,.22)}
.merchant-layout{display:grid!important;grid-template-columns:minmax(290px,.88fr) minmax(0,1.12fr)!important;gap:18px!important;align-items:start!important}.pet-merchant-summary{position:sticky;top:14px}.merchant-resource-row{grid-template-columns:1fr 1fr!important;gap:12px!important}.active-pet-panel{min-height:170px;border-radius:14px}.pet-shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.chest-grid{gap:18px!important}.monster-asset{width:100%;height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated;transform:scale(1.16)}.enemy-fighter.has-scene-bg::before{opacity:.22!important}
@media(max-width:1180px){.profile-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.forge-page-grid,.merchant-layout{grid-template-columns:1fr!important}.forge-inventory-panel,.pet-merchant-summary{position:static;max-height:none}.pet-shop-grid{grid-template-columns:1fr}}
@media(max-width:680px){.profile-cards{grid-template-columns:1fr!important}.profile-card{grid-template-rows:176px 112px auto!important;min-height:0!important}.profile-character-visual{height:176px!important}.profile-icon{width:150px!important;height:150px!important}.profile-character-sprite,.profile-character-sprite.sprite-warrior,.profile-character-sprite.sprite-mage,.profile-character-sprite.sprite-archer,.profile-character-sprite.sprite-magic_gladiator{width:122px!important;height:122px!important;max-width:122px!important;max-height:122px!important}.vendor-header{align-items:flex-start;flex-direction:column}.vendor-portrait{width:72px;height:72px}.jewel-cards.three-jewels{grid-template-columns:1fr}.merchant-resource-row{grid-template-columns:1fr!important}}

/* ===== v0.39 polish ===== */
.profile-character-visual{display:grid;place-items:center;min-height:188px}
.profile-icon{display:grid;place-items:center;margin:0 auto;min-width:132px;min-height:132px}
.profile-icon .profile-character-sprite,.profile-character-sprite{display:block;margin:auto;transform:scale(1.16);transform-origin:center center}
.profile-identity-zone,.profile-character-copy,.profile-actions{align-items:center}
.profile-status{justify-content:center}

.auto-distribute-row{display:flex;align-items:flex-start;gap:12px;margin:10px 0 14px;padding:12px 14px;border:1px solid #37405a;border-radius:14px;background:linear-gradient(180deg,rgba(24,31,47,.96),rgba(16,22,36,.92));cursor:pointer}
.auto-distribute-row input{margin-top:3px;transform:scale(1.1)}
.auto-distribute-row strong{display:block;color:#f0f4ff;font-size:calc(13px * var(--text-scale, 1));letter-spacing:.3px}
.auto-distribute-row span{display:block;color:#93a0bb;font-size:calc(12px * var(--text-scale, 1));line-height:1.4;margin-top:4px}

.battle-arena .fighter-avatar{width:74px!important;height:74px!important;font-size:calc(34px * var(--text-scale, 1))!important;border-radius:16px!important}
.fighter-heading{gap:14px!important;padding-right:74px!important;min-height:82px!important}
.fighter-heading-copy h3{font-size:calc(18px * var(--text-scale, 1))}
.fighter-heading-copy .fighter-passive{font-size:calc(13px * var(--text-scale, 1));line-height:1.45}
.fighter-avatar.has-asset,.fighter-avatar:has(.monster-asset){padding:4px!important}
.combat-character-sprite,.monster-asset{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.battle-pet-toggle{width:58px!important;height:52px!important;border-radius:12px!important}
.pet-toggle-icon{left:3px!important;top:4px!important;width:35px!important;height:35px!important}
.pet-battle-art{width:34px!important;height:34px!important;transform:scale(1.12)!important}
.pet-toggle-level{font-size:calc(8px * var(--text-scale, 1))!important}
.pet-toggle-charge{font-size:calc(6px * var(--text-scale, 1))!important;bottom:12px!important}
.pet-toggle-hp{bottom:4px!important}

.vendor-subtabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.vendor-subtab{border:1px solid #3a445f;background:#161d2b;color:#b7c3de;padding:11px 14px;border-radius:12px;font-weight:800;letter-spacing:.4px;cursor:pointer}
.vendor-subtab.active{background:linear-gradient(135deg,#5d66f1,#6b57e8);border-color:#7b80ff;color:#fff;box-shadow:0 12px 26px rgba(65,82,220,.2)}
.forge-resource-wallet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0 16px}
.forge-wallet-item{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #333d52;border-radius:14px;background:#121827}
.forge-wallet-item em{font-style:normal;color:#97a6c5;font-size:calc(12px * var(--text-scale, 1))}
.forge-wallet-item strong{font-size:calc(20px * var(--text-scale, 1));color:#f8fbff}
.chest-transfer-tip{margin:0 0 16px;padding:12px 14px;border:1px solid rgba(253,186,116,.28);border-radius:12px;background:linear-gradient(180deg,rgba(42,31,16,.55),rgba(24,20,16,.45));color:#f1d6a1;font-size:calc(13px * var(--text-scale, 1))}

.tutorial-modal-card{max-width:760px}
.tutorial-steps{display:grid;gap:12px;margin-top:6px}
.tutorial-step{padding:14px;border:1px solid #313c54;border-radius:14px;background:linear-gradient(180deg,rgba(23,29,44,.98),rgba(14,18,29,.95))}
.tutorial-step strong{display:block;color:#fff3d0;margin-bottom:6px;font-size:calc(14px * var(--text-scale, 1))}
.tutorial-step span{display:block;color:#aeb8cf;line-height:1.45;font-size:calc(13px * var(--text-scale, 1))}
.tutorial-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.secondary-button{border:1px solid #44516d;background:#1a2130;color:#cfd8eb;padding:12px 16px;border-radius:12px;font-weight:800}

@media (max-width: 900px){
  .battle-arena .fighter-avatar{width:62px!important;height:62px!important}
  .fighter-heading{padding-right:66px!important;min-height:72px!important}
}

/* ===== combat / automation polish ===== */

.battle-arena .fighter-avatar{width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;border-radius:18px!important}
.battle-arena .fighter-avatar .combat-character-sprite{width:82px!important;height:82px!important;max-width:82px!important;max-height:82px!important;object-fit:contain!important;transform:scale(1.12)!important;transform-origin:center!important}
.battle-arena .enemy-avatar .monster-asset{width:82px!important;height:82px!important;max-width:82px!important;max-height:82px!important;object-fit:contain!important;object-position:center!important;transform:scale(1.18)!important;transform-origin:center!important}
.fighter-heading{min-height:98px!important;padding-right:66px!important}

.battle-pet-toggle{width:56px!important;height:50px!important}
.pet-toggle-icon{width:34px!important;height:34px!important;left:3px!important;top:3px!important}
.pet-battle-art{width:33px!important;height:33px!important;transform:scale(1.06)!important}

.vendor-header{justify-content:flex-start!important;align-items:center!important;gap:22px!important;min-height:150px!important}
.vendor-header>div{flex:1!important}
.vendor-portrait{width:118px!important;height:118px!important;min-width:118px!important;object-fit:contain!important;image-rendering:pixelated!important;padding:8px!important}

.auto-equip-toggle.active{background:linear-gradient(135deg,#176a45,#248a5d)!important;border-color:#3bc381!important;color:#effff7!important;box-shadow:0 0 0 1px rgba(59,195,129,.16),0 8px 20px rgba(15,94,59,.28)!important}
.auto-equip-toggle:not(.active){opacity:.9}

.level-up-toast{position:fixed;z-index:260;top:86px;left:50%;transform:translate(-50%,-10px);display:grid;gap:2px;min-width:230px;max-width:min(420px,calc(100vw - 30px));padding:10px 16px;border:1px solid rgba(245,196,80,.5);border-radius:13px;background:linear-gradient(180deg,rgba(38,31,17,.97),rgba(20,18,15,.97));box-shadow:0 14px 34px rgba(0,0,0,.35);text-align:center;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease}
.level-up-toast.show{opacity:1;transform:translate(-50%,0)}
.level-up-toast>span{color:#e7b94d;font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:1.5px}
.level-up-toast>strong{color:#fff2bd;font-size:calc(17px * var(--text-scale, 1))}
.level-up-toast>small{color:#aeb7c8;font-size:calc(10px * var(--text-scale, 1))}

@media(max-width:900px){
  .battle-arena .fighter-avatar{width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important}
  .battle-arena .fighter-avatar .combat-character-sprite,.battle-arena .enemy-avatar .monster-asset{width:68px!important;height:68px!important;max-width:68px!important;max-height:68px!important}
  .vendor-portrait{width:92px!important;height:92px!important;min-width:92px!important}.vendor-header{min-height:120px!important}
}


/* =====================================================
   v0.42 — regra única do dano flutuante do inimigo
   Mantém o número dentro do card durante toda a animação.
   ===================================================== */
.enemy-combat-card .damage-number{
  top:43%!important;
  animation:enemyDamageFloat .82s ease-out forwards!important;
}
.enemy-combat-card .damage-number.critical{
  top:44%!important;
  animation:enemyCriticalFloat 1s ease-out forwards!important;
}
.enemy-combat-card .damage-number.excellent{
  top:44%!important;
  animation:enemyExcellentFloat 1.12s ease-out forwards!important;
}
@keyframes enemyDamageFloat{
  0%{opacity:0;transform:translate(-50%,10px) scale(.82)}
  20%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-28px) scale(1.04)}
}
@keyframes enemyCriticalFloat{
  0%{opacity:0;transform:translate(-50%,10px) scale(.66)}
  20%{opacity:1;transform:translate(-50%,0) scale(1.2)}
  100%{opacity:0;transform:translate(-50%,-34px) scale(1)}
}
@keyframes enemyExcellentFloat{
  0%{opacity:0;transform:translate(-50%,10px) scale(.7)}
  18%{opacity:1;transform:translate(-50%,0) scale(1.16)}
  100%{opacity:0;transform:translate(-50%,-36px) scale(1)}
}
/* A camada permanece absoluta e ocupa o card inteiro. */
.enemy-fighter > .damage-layer{
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  z-index:20!important;
  pointer-events:none!important;
}

/* =====================================================
   v0.43 — clareza, layouts estáveis e feedback de cura
   ===================================================== */

/* Seleção de personagem fixa em desktop: o modal inteiro cabe na viewport. */
@media(min-width:1181px){
  .profile-backdrop{overflow:hidden!important;padding:12px!important}
  .profile-modal-card{box-sizing:border-box!important;width:min(1320px,calc(100vw - 24px))!important;height:min(680px,calc(100dvh - 24px))!important;max-height:calc(100dvh - 24px)!important;overflow:hidden!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important}
  .profile-modal-card .modal-title-row{margin-bottom:12px!important;padding-bottom:11px!important}
  .profile-cards{min-height:0!important;height:100%!important;align-items:stretch!important;overflow:hidden!important}
  .profile-card{height:100%!important;min-height:0!important;grid-template-rows:minmax(154px,1.05fr) 104px minmax(166px,1fr)!important}
  .profile-character-visual{height:auto!important;min-height:0!important}
  .profile-identity-zone{min-height:0!important;padding:9px 12px!important}
  .profile-character-copy{padding:11px 13px 12px!important}
  .profile-character-copy p{min-height:40px!important;line-height:1.38!important}
  .profile-status{margin:7px 0 9px!important}
  .profile-status span{padding:5px 6px!important}
  .profile-actions button{min-height:34px!important}
}
@media(max-width:1180px){
  .profile-backdrop{overflow:auto!important;align-items:flex-start!important}
  .profile-modal-card{height:auto!important;max-height:none!important;overflow:visible!important}
}

/* Cura aparece no mesmo HUD dos danos, com cor e origem próprias. */
.player-combat-card .damage-number.player-heal{top:43%!important;color:#78e69f!important;font-size:calc(23px * var(--text-scale, 1))!important;line-height:1!important;text-align:center;text-shadow:0 0 9px rgba(58,219,113,.52),0 2px 9px rgba(0,0,0,.9)!important;animation:playerHealFloat 1.1s ease-out forwards!important}
.damage-number.player-heal strong,.damage-number.player-heal small{display:block;white-space:nowrap}.damage-number.player-heal small{margin-top:4px;color:#b8e9c8;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.5px;text-transform:uppercase}
@keyframes playerHealFloat{0%{opacity:0;transform:translate(-50%,12px) scale(.78)}18%{opacity:1;transform:translate(-50%,0) scale(1.08)}100%{opacity:0;transform:translate(-50%,-42px) scale(1)}}

/* Auto reciclar com presets e explicação imediata. */
.loot-preset-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0 9px}
.loot-preset-strip button{display:grid;gap:3px;min-height:58px;padding:10px 12px;border:1px solid #37404d;border-radius:9px;background:#151a22;color:#aeb7c6;text-align:left}
.loot-preset-strip button strong{font-size:calc(10px * var(--text-scale, 1));letter-spacing:.65px}.loot-preset-strip button small{color:#778397;font-size:calc(8.5px * var(--text-scale, 1));line-height:1.35}
.loot-preset-strip button:hover,.loot-preset-strip button.active{border-color:#a07c34;background:linear-gradient(145deg,rgba(119,87,28,.24),#171b22);color:#f2d383;filter:none}.loot-preset-strip button.active small{color:#c9b57f}
.loot-filter-explanation{display:flex;align-items:center;gap:10px;margin-bottom:9px;padding:10px 12px;border:1px solid #394553;border-radius:9px;background:#121820}.loot-filter-explanation strong{flex:0 0 auto;color:#efd078;font-size:calc(9px * var(--text-scale, 1));letter-spacing:.7px}.loot-filter-explanation span{color:#9aa7ba;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}
.loot-filter-grid{grid-template-columns:1.2fr repeat(2,minmax(0,1fr))!important}.loot-filter-mode>small{display:block;margin-top:5px!important}.loot-filter-help{padding:9px 11px;border-radius:8px;background:rgba(255,255,255,.025)}

/* Coleção de Sets orientada a objetivo. */
.sets-onboarding{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 13px;padding:14px 16px;border:1px solid #3b4654;border-radius:11px;background:linear-gradient(135deg,rgba(46,74,107,.18),#171c24)}
.sets-onboarding-copy{min-width:0}.sets-onboarding-copy span,.sets-onboarding-copy strong,.sets-onboarding-copy small{display:block}.sets-onboarding-copy span{color:#7fa9d6;font-size:calc(8px * var(--text-scale, 1));font-weight:950;letter-spacing:1px}.sets-onboarding-copy strong{margin-top:4px;color:#eef3fa;font-size:calc(13px * var(--text-scale, 1))}.sets-onboarding-copy small{margin-top:4px;color:#8997aa;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}
.sets-filter{display:flex;flex:0 0 auto;gap:6px}.sets-filter button{min-height:34px;padding:7px 10px;border:1px solid #3a4451;border-radius:7px;background:#151a22;color:#8d99aa;font-size:calc(8px * var(--text-scale, 1));font-weight:900}.sets-filter button.active{border-color:#8d7137;background:#4b3a1e;color:#f3d489}
.set-card-status{display:inline-flex;margin-top:8px;padding:4px 7px;border:1px solid #3b4654;border-radius:999px;background:#131820;color:#8fa0b6;font-size:calc(7.5px * var(--text-scale, 1));font-weight:950;letter-spacing:.55px}.set-collection-card.complete .set-card-status{border-color:#705b2d;color:#e4c572}.set-collection-card.active .set-card-status{border-color:#9c7a36;background:#4b391a;color:#ffe19a}
.set-progress-track{height:5px;margin-top:8px;overflow:hidden;border-radius:999px;background:#2b323c}.set-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5681b4,#71b594)}.set-collection-card.complete .set-progress-track i{background:linear-gradient(90deg,#b48632,#e1bf67)}
.set-farm-source p strong{color:#cbd7e6}.sets-grid .collection-empty{min-height:130px;display:grid;place-items:center}

/* Pet ativo usa toda a largura e nunca esmaga números grandes. */
.merchant-layout{grid-template-columns:1fr!important;max-width:none!important}.pet-merchant-layout{max-width:none!important}
.pet-merchant-summary{position:static!important;grid-template-columns:minmax(230px,280px) minmax(0,1fr)!important;align-items:stretch!important}
.active-pet-panel{min-width:0!important;min-height:190px!important}.active-pet-panel.has-pet{display:block!important;padding:14px!important;overflow:hidden!important}
.active-pet-main{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;align-items:start}.active-pet-icon{width:74px!important;height:74px!important}.active-pet-icon .pet-shop-art{width:58px!important;height:58px!important}
.active-pet-copy{min-width:0}.active-pet-copy>span{color:#83a88c!important;font-size:calc(8px * var(--text-scale, 1))!important;font-weight:950!important;letter-spacing:1px!important}.active-pet-copy>strong{display:block!important;margin:4px 0 5px!important;color:#e6f0e8!important;font-size:calc(18px * var(--text-scale, 1))!important;overflow-wrap:anywhere}.active-pet-copy>small{font-size:calc(10px * var(--text-scale, 1))!important;line-height:1.5!important;overflow-wrap:anywhere}
.active-pet-bars{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.active-pet-bars .pet-hp-line{display:block;margin:0}.active-pet-bars .pet-hp-line>span{display:flex!important;justify-content:space-between;gap:8px;margin-bottom:4px}.active-pet-bars b{color:#e3e8e4;font-size:calc(9px * var(--text-scale, 1));overflow-wrap:anywhere}
.active-pet-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.active-pet-facts span{min-width:0;padding:7px 8px;border:1px solid #334039;border-radius:7px;background:#111819;color:#b9c7bd!important;font-size:calc(9px * var(--text-scale, 1))!important;overflow-wrap:anywhere}.active-pet-facts b{display:block;margin-bottom:2px;color:#718c78;font-size:calc(7px * var(--text-scale, 1));text-transform:uppercase;letter-spacing:.6px}
.active-pet-next{display:block!important;margin-top:8px;padding:7px 8px;border-radius:7px;background:rgba(255,255,255,.025);overflow-wrap:anywhere}.active-pet-next b{color:#bdc9c0}
.active-pet-auto-revive{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:12px;padding:11px 12px;border:1px solid #466455;border-radius:10px;background:linear-gradient(135deg,rgba(46,104,68,.19),#121a17)}.active-pet-auto-revive strong{color:#8de0a8!important;font-size:calc(10px * var(--text-scale, 1))!important;letter-spacing:.6px}.active-pet-auto-revive small{margin-top:4px;color:#91a59a!important;font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.45!important}.active-pet-auto-revive label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #527261;border-radius:8px;background:#17241c;cursor:pointer}.active-pet-auto-revive input{width:18px;height:18px;accent-color:#5fc58b}.active-pet-auto-revive label span{color:#bde7ca!important;font-size:calc(8px * var(--text-scale, 1))!important;font-weight:950!important;letter-spacing:.6px}
.active-pet-panel>.pet-specialization-section,.active-pet-panel>.pet-chosen-specs{margin-top:12px}.pet-card-actions{justify-content:flex-end}.pet-shop-copy,.pet-shop-buy{min-width:0}.pet-price-line{display:flex;flex-wrap:wrap;gap:5px;overflow-wrap:anywhere}

/* Skills mostram impacto atual, e o DEV explica seus limites. */
.skill-current-impact{margin:7px 0;padding:7px 9px;border-left:3px solid #6f62c5;border-radius:0 7px 7px 0;background:rgba(91,80,170,.12);color:#bfc4ec;font-size:calc(9px * var(--text-scale, 1));font-weight:750;line-height:1.45}
.dev-limit-note{display:block;margin:-2px 0 7px;color:#c9a86a;font-size:calc(8px * var(--text-scale, 1));line-height:1.4}

@media(max-width:900px){
  .loot-filter-grid{grid-template-columns:1fr 1fr!important}.sets-onboarding{align-items:flex-start;flex-direction:column}.sets-filter{width:100%}.sets-filter button{flex:1}.pet-merchant-summary{grid-template-columns:1fr!important}.active-pet-bars,.active-pet-facts{grid-template-columns:1fr}
}
@media(max-width:620px){
  .loot-preset-strip,.loot-filter-grid{grid-template-columns:1fr!important}.loot-filter-explanation{align-items:flex-start;flex-direction:column}.sets-filter{display:grid;grid-template-columns:1fr}.active-pet-main{grid-template-columns:58px minmax(0,1fr)}.active-pet-icon{width:56px!important;height:56px!important}.active-pet-auto-revive{grid-template-columns:1fr}.active-pet-auto-revive label{justify-content:center}
}

/* ===== v0.45 • NOVA ENTRADA, AUTENTICAÇÃO, PERSONAGENS E ECONOMIA ===== */
.main-menu-screen{place-items:stretch!important;padding:0!important;overflow:hidden!important;background:#070506 url("assets/ui/main-menu-background.webp") center/cover no-repeat!important}
/* ===== TELA DE ENTRADA — Fase 16f =====================================
   A arte de fundo passa a ser a tela, nao o papel de parede atras de um
   cartao. Antes um bloco escuro de 520px com blur cobria a ilustracao
   inteira do lado esquerdo. Agora a composicao e vertical e centrada: marca,
   login e acoes flutuam sobre o cenario, e o escurecimento existe SO onde
   ha texto, para o contraste continuar legivel.
   ==================================================================== */
.main-menu-screen::before{inset:0!important;border:0!important;background:radial-gradient(ellipse at 50% 42%,transparent 34%,rgba(4,2,3,.42) 78%,rgba(3,2,2,.72) 100%),linear-gradient(180deg,rgba(0,0,0,.34) 0,transparent 26%,transparent 58%,rgba(0,0,0,.68) 100%)!important;box-shadow:inset 0 0 150px rgba(0,0,0,.6)!important}
.main-menu-frame{position:relative;align-self:center!important;justify-self:center!important;display:flex!important;flex-direction:column;align-items:center;gap:0;width:min(430px,calc(100vw - 40px))!important;margin:0!important;padding:0 0 8px!important;text-align:center!important;border:0!important;border-radius:0!important;background:none!important;backdrop-filter:none!important;box-shadow:none!important}
/* O VEU DE LEITURA SAIU (Fase 72).

   Relato do autor, pela terceira vez: *"tem uma caixa escura atrás que eu já
   tinha pedido pra remover ela, e se eu rolo o scroll do mouse pra baixo, da
   pra ver claramente ela"*.

   Ele era um gradiente eliptico de 170% x 132% do bloco, com 82% de preto no
   miolo -- pensado para dar contraste ao texto sobre o ceu claro da arte. Dois
   problemas: continuava LENDO como cartao (era o que o autor via), e os 132% de
   altura estouravam a tela, criando a rolagem que deixava o oval a mostra.

   O contraste nao se perde: cada texto desta tela ja carrega a propria sombra
   dupla (`text-shadow: 0 2px 4px #000, 0 2px 16px rgba(0,0,0,.95)`), os campos
   tem superficie escura propria, e a vinheta de `.main-menu-screen::before`
   continua escurecendo as bordas da ilustracao. A arte fica inteira. */
.main-menu-frame::before{display:none!important}
.main-menu-frame::after{display:none!important}
/* A marca. drop-shadow em vez de caixa: o PNG tem alfa e recorta sozinho. */
.main-menu-logo{width:min(340px,66vw);height:auto;margin-bottom:-6px;filter:drop-shadow(0 10px 34px rgba(0,0,0,.72)) drop-shadow(0 0 24px rgba(120,170,255,.16));user-select:none;-webkit-user-drag:none}
.main-menu-wordmark h1{font-family:Georgia,"Times New Roman",serif;font-size:calc(48px * var(--text-scale, 1))!important;letter-spacing:-1px!important;line-height:.95;color:#f5eadf!important;text-shadow:0 4px 26px rgba(0,0,0,.85)}
.main-menu-wordmark h1 span{display:block;color:#d9a05a;font-size:.6em;letter-spacing:6px;margin-top:8px}
.main-menu-kicker{margin:4px 0 22px!important;color:#e2cfae!important;font-size:calc(9.5px * var(--text-scale, 1))!important;letter-spacing:4px!important;font-weight:900;text-shadow:0 2px 4px #000,0 2px 16px rgba(0,0,0,.95)}
/* Os campos sao a unica superficie escura: contraste onde ha leitura. */
.main-login-form{width:100%;display:grid!important;gap:9px!important}
.main-login-form label{display:grid;gap:5px;text-align:left;color:#d3c3ab;font-size:calc(8.5px * var(--text-scale, 1));font-weight:900;letter-spacing:1.4px;text-shadow:0 1px 3px #000,0 2px 10px rgba(0,0,0,.95)}
.main-login-form input{box-sizing:border-box;width:100%;padding:11px 13px;border:1px solid rgba(163,132,86,.44);border-radius:3px;background:rgba(8,7,10,.72);color:#f2ece9;outline:none;backdrop-filter:blur(3px);transition:border-color .16s,box-shadow .16s}
.main-login-form input:focus{border-color:#c79a63;box-shadow:0 0 0 2px rgba(199,154,99,.16)}
.main-account-status{margin:14px 0 0!important;padding:0!important;border:0!important;background:none!important;color:#bdb1a4!important;font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.5!important;text-align:center;text-shadow:0 1px 3px #000,0 2px 12px rgba(0,0,0,.95)}
.main-menu-actions{width:100%!important;margin:14px 0 0!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important}
.main-menu-actions button{min-height:44px!important}
.main-menu-actions .main-menu-primary,.main-menu-actions #startGameButton,.main-menu-actions #optionsButton{grid-column:auto}
.main-menu-primary{min-height:48px!important;border:1px solid #c79a4a!important;border-radius:3px!important;background:linear-gradient(180deg,#d8a34a,#7d5410)!important;color:#fff3cd!important;font-weight:900;letter-spacing:2px;box-shadow:0 10px 30px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,224,160,.28)!important}
.main-menu-secondary{border:1px solid rgba(146,140,150,.38)!important;border-radius:3px!important;background:rgba(16,15,20,.7)!important;color:#cfc6c2!important;backdrop-filter:blur(3px);letter-spacing:1.2px}
.main-menu-secondary:hover{border-color:rgba(199,154,99,.6)!important;background:rgba(28,24,26,.82)!important}
.main-menu-frame small{margin-top:16px!important;color:#a99e9a!important;text-align:center;text-shadow:0 1px 3px #000,0 2px 12px rgba(0,0,0,.95)}
.main-menu-frame .auth-error{text-align:center}
@media(max-height:620px){.main-menu-logo{width:min(240px,52vw)}.main-menu-kicker{margin-bottom:12px!important}}

.auth-backdrop{z-index:1100;background:rgba(4,2,3,.74);backdrop-filter:blur(10px)}
.auth-modal-card{width:min(520px,calc(100vw - 28px));padding:26px;border-color:#704330;background:linear-gradient(155deg,rgba(29,18,20,.98),rgba(12,12,16,.99));box-shadow:0 36px 100px rgba(0,0,0,.72)}
.auth-overline{display:block;margin-bottom:5px;color:#ca8156;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:2px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:16px}.auth-tabs button{border:1px solid #41383b;background:#242126;color:#968e92}.auth-tabs button.active{border-color:#9b5639;background:#5a2b25;color:#f4d9ca}
.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:6px;color:#b9a9a3;font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.auth-form input{box-sizing:border-box;width:100%;padding:12px;border:1px solid #4d3d3e;border-radius:7px;background:#100e12;color:#f2ece9;outline:none}.auth-form input:focus{border-color:#a76142;box-shadow:0 0 0 2px rgba(167,97,66,.13)}.auth-form>button{min-height:44px}.auth-test-note{display:grid;gap:4px;padding:10px 11px;border:1px solid #6a4e2f;border-radius:7px;background:#241b13}.auth-test-note strong{color:#e7bb70;font-size:calc(8px * var(--text-scale, 1))}.auth-test-note span{color:#a99b85;font-size:calc(9px * var(--text-scale, 1));line-height:1.4}.auth-error{min-height:16px;margin:12px 0 0;color:#ff9690;font-size:calc(10px * var(--text-scale, 1))}

.profile-backdrop{padding:0!important;overflow:hidden!important;background:#05080d url("assets/ui/character-select-background.webp") center/cover no-repeat!important}
/* VIDEO NAS TELAS (2026-09-15): o MP4 registrado pela Forja cobre a tela como a imagem
   cobria. z-index -1 dentro do contexto da tela (ela e fixed com z-index): fica atras do
   conteudo e da vinheta ::before, e na frente do fundo, que segue de reserva. */
.main-menu-screen>video.tela-video,.profile-backdrop>video.tela-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}
.profile-backdrop::before{inset:0!important;border:0!important;background:linear-gradient(180deg,rgba(2,5,9,.18),rgba(2,5,9,.08) 42%,rgba(2,5,9,.82) 100%),radial-gradient(circle at 50% 45%,transparent 25%,rgba(0,0,0,.35) 92%)!important;box-shadow:inset 0 0 95px rgba(0,0,0,.72)!important}
.profile-modal-card{box-sizing:border-box!important;width:min(1440px,100vw)!important;height:100dvh!important;max-height:100dvh!important;padding:22px 34px 26px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;overflow:hidden!important}
.profile-modal-card .modal-title-row{margin:0 auto 14px!important;width:min(1320px,100%);padding:10px 16px 13px!important;border-bottom:1px solid rgba(160,145,122,.34)!important;background:linear-gradient(90deg,transparent,rgba(4,8,14,.72) 14%,rgba(4,8,14,.72) 86%,transparent)}
.profile-modal-card .modal-title-row h2{font-family:Georgia,"Times New Roman",serif;color:#f0e6da;font-size:calc(29px * var(--text-scale, 1))!important;text-shadow:0 3px 18px #000}.profile-modal-card .modal-title-row p{color:#a8b1bf;font-size:calc(10px * var(--text-scale, 1))!important}.profile-overline{color:#c79a63!important}.profile-head-actions{display:flex;align-items:center;gap:10px}.profile-account-label{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 10px;border:1px solid rgba(164,130,82,.42);border-radius:5px;background:rgba(11,15,22,.78);color:#c7b797;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}
.profile-cards{align-self:end!important;width:min(1320px,100%);height:min(570px,calc(100dvh - 110px))!important;margin:0 auto;grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important;overflow:hidden!important;gap:12px!important}
.profile-card{height:100%!important;min-height:0!important;grid-template-rows:minmax(158px,1fr) 100px minmax(165px,.9fr)!important;border-color:rgba(104,112,124,.66)!important;background:linear-gradient(180deg,rgba(14,19,28,.85),rgba(9,13,20,.96) 76%)!important;backdrop-filter:blur(7px);box-shadow:0 20px 50px rgba(0,0,0,.38)!important}
.profile-card:hover{border-color:#a78155!important;box-shadow:0 24px 58px rgba(0,0,0,.58),0 0 20px rgba(180,119,58,.10)!important}.profile-character-visual{background:radial-gradient(circle at 50% 48%,rgba(91,108,139,.18),transparent 45%)!important}.profile-identity-zone{background:rgba(4,7,12,.34)!important}

.store-account-strip{display:flex;align-items:stretch;gap:10px}.vip-store-status{display:grid;align-content:center;min-width:190px;padding:12px 14px;border:1px solid #594629;border-radius:11px;background:#181711}.vip-store-status span{color:#9b8050;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}.vip-store-status strong{margin:3px 0;color:#b6a47b}.vip-store-status small{color:#847a67;font-size:calc(8px * var(--text-scale, 1))}.vip-store-status.active{border-color:#b18a3d;background:linear-gradient(145deg,#2c2313,#15140f);box-shadow:0 0 22px rgba(205,154,49,.10)}.vip-store-status.active strong{color:#ffe19a}
.store-pack-card .pack-icon{display:grid;place-items:center;width:64px;height:64px}.store-pack-card .pack-icon img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 10px rgba(255,255,255,.15))}.store-pack-card.starter-pack{border-color:#735c3b;background:linear-gradient(145deg,#262115,#151920)}.store-pack-card.vip-pack{border-color:#8b6b2e;background:linear-gradient(145deg,#30230f,#161920)}.store-pack-card .pack-tags{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.store-pack-card .pack-tags span{padding:4px 6px;border-radius:4px;background:#272e38;color:#9da8b8;font-size:calc(7px * var(--text-scale, 1));font-weight:900}.store-pack-card .pack-availability{min-height:14px;color:#a79c85;font-size:calc(8px * var(--text-scale, 1))}
.market-create-card .card-title-row p,.market-list-card .card-title-row p{margin:4px 0 0;color:#8791a0;font-size:calc(9px * var(--text-scale, 1))}.market-listing{grid-template-columns:52px minmax(0,1fr) auto!important;align-items:center}.market-listing-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid #313c49;border-radius:8px;background:#10151c}.market-listing-icon img{max-width:42px;max-height:42px;object-fit:contain;image-rendering:pixelated}.market-listing-actions{display:grid!important;grid-template-columns:74px auto auto;gap:6px!important}.market-buy-quantity{width:74px!important;padding:7px!important}.market-listing-actions .buy{border-color:#75602f;background:#5c451e;color:#ffe9af}.market-owner-badge{color:#d1ad64}.market-vip-lock{margin:10px 0;padding:9px;border:1px solid #5c442b;border-radius:7px;background:#231b13;color:#cab083;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}

@media(max-width:900px){.main-menu-frame{justify-self:center!important;margin:24px!important}.profile-backdrop{overflow:auto!important}.profile-modal-card{height:auto!important;min-height:100dvh!important;max-height:none!important;overflow:visible!important}.profile-cards{height:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible!important}.profile-card{height:auto!important;min-height:460px!important}.store-account-strip{width:100%;flex-direction:column}.market-listing{grid-template-columns:48px 1fr!important}.market-listing-actions{grid-column:1/-1!important;grid-template-columns:70px 1fr 1fr!important}}
@media(max-width:620px){.main-menu-screen{overflow:auto!important}.main-menu-frame{align-self:center!important;width:calc(100vw - 24px)!important;margin:12px!important;padding:32px 24px 28px!important}.main-menu-frame h1{font-size:calc(42px * var(--text-scale, 1))!important}.main-menu-actions{grid-template-columns:1fr!important}.main-menu-actions button{grid-column:1!important}.profile-modal-card{padding:14px!important}.profile-cards{grid-template-columns:1fr!important}.profile-head-actions{align-items:flex-end;flex-direction:column}.profile-account-label{display:none}.market-listing-actions{grid-template-columns:1fr!important}.market-buy-quantity{width:100%!important}}

/* v0.46 • correção final de cascata do painel de Pets */
.pet-merchant-summary{display:block!important;grid-template-columns:none!important}

/* =====================================================
   v0.47 • CONTINENT OF LEGEND, NAVEGAÇÃO ILUSTRADA E UI
   ===================================================== */

/* Entrada centralizada e identidade oficial. */
.main-menu-screen{place-items:center!important;padding:24px!important}
.main-menu-frame{align-self:center!important;justify-self:center!important;width:min(560px,calc(100vw - 32px))!important;margin:0!important;padding:42px 48px 38px!important;text-align:center!important}
.main-menu-crest{margin:0 auto 20px!important}
.main-menu-crest::after{content:"C"!important}
.main-menu-frame h1{font-size:calc(50px * var(--text-scale, 1))!important;line-height:1!important}.main-menu-frame h1 span{font-size:.58em!important;letter-spacing:7px!important}
.main-account-status{text-align:left}

/* Marca e ações superiores. A Loja passou a viver no nav de gameplay (v0.91); o header guarda so conta/admin. */
.game-brand{display:grid;line-height:1}.game-brand>span{color:#a87842;font-family:var(--font-display);font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:2.1px}.game-brand h1{margin:3px 0 1px!important;color:#f0e5d5;font-family:var(--font-display);font-size:calc(27px * var(--text-scale, 1));letter-spacing:2px}.game-brand .version{margin:2px 0 0;font-size:calc(9px * var(--text-scale, 1))}
.topbar-divider{align-self:stretch;width:1px;margin:4px 2px;background:var(--line);flex:0 0 auto}
.dev-menu-button{border-color:#506277;background:#222b39;color:#a7d9f2}.dev-menu-button:hover{border-color:#6c9ab4;background:#293949}

/* A NAVEGAÇÃO É UMA LINHA SÓ, e o número de colunas deixou de ser escrito à mão.
   ---------------------------------------------------------------------------
   Era `repeat(9, minmax(84px,1fr))`, com o comentário "Nove destinos visíveis".
   Nove estava certo na v0.91 — e depois CORREIO, SOCIAL e PVP saíram do menu
   MAIS a pedido do autor, virando ONZE. As duas sobras caíam numa segunda
   fileira colada à esquerda, e era isso que dava o aspecto quebrado que ele
   relatou: "esse menu principal precisa ser refeito, ta muito estranho e pouco
   profissional".

   `grid-auto-flow:column` + `grid-auto-columns` põe TODOS os filhos numa linha,
   dividindo a largura por igual — acrescentar um destino passa a estreitar os
   outros em vez de quebrar a fileira. O número some do CSS, e com ele o defeito
   que só aparece quando alguém mexe no menu meses depois.

   `minmax(0,1fr)` e não `minmax(84px,1fr)`: com um mínimo em pixels, onze itens
   somam 924px e a linha estoura de novo em telas médias. Zero deixa encolher; o
   `min-height` do botão e o corte de rótulo abaixo cuidam da legibilidade, e as
   media queries de 1120px/760px continuam mandando no que é estreito. */
.main-nav{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);
  grid-template-columns:none;gap:5px!important;padding:7px!important}
.main-nav>.nav-button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:58px;padding:7px 8px!important;border-radius:9px;font-size:calc(9px * var(--text-scale, 1))!important;letter-spacing:.45px}
.main-nav>.nav-button img{width:34px;height:34px;flex:0 0 34px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 4px 6px rgba(0,0,0,.38));transition:transform .16s ease}.main-nav>.nav-button:hover img,.main-nav>.nav-button.active img{transform:translateY(-2px) scale(1.06)}
.main-nav>.nav-button.active{border-color:#58667c;background:linear-gradient(180deg,#2d3544,#232a37);color:#f3f5f9;box-shadow:0 7px 18px rgba(0,0,0,.18)}
.main-nav>.battle-nav-button{border-color:#4e4431;background:linear-gradient(180deg,rgba(102,77,34,.22),rgba(37,34,29,.25));color:#d8c6a4}.main-nav>.battle-nav-button.active{border-color:#9b7431;background:linear-gradient(180deg,#4b3819,#312719);color:#ffe4a5;box-shadow:0 7px 18px rgba(123,89,28,.15)}

/* Loadout de batalha: mesmo visual, agora legível e sem nomes quebrados. */
@media(min-width:1381px){.battle-hud-layout{grid-template-columns:minmax(370px,400px) minmax(520px,1fr) minmax(285px,305px)!important}}
.battle-equipment-list{gap:8px!important}.battle-equipment-list #weaponSlot,.battle-equipment-list #wingSlot{grid-column:1/-1!important}
.battle-equipment-list .equipment-row{grid-template-columns:48px minmax(0,1fr)!important;min-height:118px!important;padding:9px!important;gap:5px 8px!important}
.battle-equipment-list #weaponSlot,.battle-equipment-list #wingSlot{min-height:104px!important}.battle-equipment-list .equipment-item-art{width:44px;height:44px}.battle-equipment-list .slot-title{font-size:calc(8px * var(--text-scale, 1))!important}.battle-equipment-list .item-name{font-size:calc(11px * var(--text-scale, 1))!important;line-height:1.3!important}.battle-equipment-list .item-stat{font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.42!important}.battle-equipment-list .rarity-badge,.battle-equipment-list .class-badge,.battle-equipment-list .family-badge{padding:3px 5px;font-size:calc(7.5px * var(--text-scale, 1))!important}.battle-equipment-list .equipment-actions button{min-height:26px!important;padding:5px 7px!important;font-size:calc(7.5px * var(--text-scale, 1))!important}

/* Inventário principal: quatro slots grandes por linha e mochila mais confortável. */
.inventory-page-layout{grid-template-columns:340px minmax(0,1fr)!important;gap:18px!important}.inventory-equipped-grid{grid-template-columns:repeat(4,minmax(170px,1fr))!important;gap:10px!important}
.equipped-showcase-slot{grid-template-rows:auto 68px auto 1fr auto;min-height:205px;padding:12px 10px}.equipped-showcase-slot>span{font-size:calc(8.5px * var(--text-scale, 1))}.equipped-showcase-slot>strong{margin-top:7px;font-size:calc(12px * var(--text-scale, 1))}.equipped-showcase-slot>small{font-size:calc(9px * var(--text-scale, 1));line-height:1.48}.equipped-showcase-slot>button{min-height:28px;padding:6px;font-size:calc(8px * var(--text-scale, 1))}.inventory-equipped-art{width:64px;height:64px}
.inventory-list-grid .inventory-group{min-height:168px!important;padding:14px!important;gap:10px!important}.inventory-list-grid .inventory-item-art{width:50px;height:50px}.inventory-list-grid .group-title-row .item-name{font-size:calc(13px * var(--text-scale, 1))}.inventory-list-grid .group-subtitle{font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.5}.inventory-list-grid .group-extra{font-size:calc(9.5px * var(--text-scale, 1))!important;line-height:1.45}.inventory-list-grid .compare-line{font-size:calc(9.5px * var(--text-scale, 1))}.inventory-list-grid .group-action button{font-size:calc(8.5px * var(--text-scale, 1))!important}

/* Expedições são paralelas: o aviso enfatiza que o companheiro continua ativo. */
.pet-expedition-guide{border-color:#3f6651;background:linear-gradient(145deg,#14231b,#121923)}.pet-expedition-guide small{font-size:calc(9.5px * var(--text-scale, 1))}.pet-expedition-status.running{border-color:#48745a;background:#16261d}.pet-expedition-status.running strong{color:#91e1ad}.pet-expedition-card small{font-size:calc(9px * var(--text-scale, 1))}

/* DEV Menu e reset controlado da conta de teste. */
.dev-account-reset{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:14px 16px;border:1px solid #773d42;border-radius:10px;background:linear-gradient(145deg,#29171a,#19171c)}.dev-account-reset strong,.dev-account-reset span{display:block}.dev-account-reset strong{color:#ff9b9b;font-size:calc(10px * var(--text-scale, 1));letter-spacing:.7px}.dev-account-reset span{margin-top:5px;color:#b79598;font-size:calc(9px * var(--text-scale, 1));line-height:1.5}.dev-reset-account-button{flex:0 0 auto;min-width:150px;padding:11px 14px;border:1px solid #a9585e;background:#73343a;color:#ffe3e3;font-size:calc(8px * var(--text-scale, 1))}

/* Personagens diretamente sobre o cenário, sem caixas verticais em torno deles. */
.profile-modal-card{padding:18px 34px 22px!important}.profile-cards{align-self:end!important;height:min(600px,calc(100dvh - 105px))!important;gap:18px!important;overflow:visible!important}
.profile-card{position:relative!important;display:grid!important;grid-template-rows:minmax(210px,1fr) 104px minmax(160px,.72fr)!important;height:100%!important;min-height:0!important;padding:0 8px!important;overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important;backdrop-filter:none!important;box-shadow:none!important;transition:transform .18s ease,filter .18s ease}
.profile-card::before{content:"";position:absolute;left:10%;right:10%;top:29%;height:70px;border-radius:50%;background:radial-gradient(ellipse,rgba(86,118,160,.22),transparent 70%);filter:blur(5px);pointer-events:none}.profile-card:hover{transform:translateY(-5px)!important;border:0!important;box-shadow:none!important;filter:drop-shadow(0 14px 24px rgba(0,0,0,.35))}
.profile-character-visual{position:relative;z-index:1;height:auto!important;min-height:0!important;padding:0!important;overflow:visible!important;border:0!important;background:transparent!important}.profile-icon{width:190px!important;height:210px!important;filter:drop-shadow(0 16px 13px rgba(0,0,0,.68))!important}.profile-character-sprite,.profile-character-sprite.sprite-warrior,.profile-character-sprite.sprite-mage,.profile-character-sprite.sprite-archer,.profile-character-sprite.sprite-magic_gladiator{width:172px!important;height:196px!important;max-width:172px!important;max-height:196px!important}
.profile-identity-zone{position:relative;z-index:2;min-height:0!important;padding:8px 14px!important;border:0!important;background:linear-gradient(90deg,transparent,rgba(5,9,15,.76) 15%,rgba(5,9,15,.76) 85%,transparent)!important}.profile-character-copy{position:relative;z-index:2;min-height:0!important;padding:10px 16px 14px!important;text-shadow:0 2px 8px #000}.profile-character-copy p{min-height:40px!important;color:#b5bfce!important;font-size:calc(10.5px * var(--text-scale, 1))!important;line-height:1.45!important}.profile-status{margin:7px 0 10px!important}.profile-actions button{min-height:36px!important;border:1px solid #48556b}.profile-actions button:first-child{border-color:#7e6c3e;background:linear-gradient(180deg,#665128,#45381f);color:#ffe2a3}.profile-new-identity{gap:3px}.profile-name-input{background:rgba(8,13,21,.88)!important}
/* v0.91 — slots vazios (auditoria K): sem painel/borda proprios, liam como fundo apagado ao lado do heroi existente.
   Seletor novo via :has(), nao toca tag/id/classe/ordem dos cards salvos no Editor Visual. */
.profile-card:has(.profile-new-identity){border:1px solid rgba(120,140,170,.24)!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(20,26,36,.42),rgba(10,14,20,.6) 72%)!important;box-shadow:inset 0 0 34px rgba(80,110,160,.07)!important}
.profile-card:has(.profile-new-identity):hover{border-color:rgba(190,155,90,.45)!important;background:linear-gradient(180deg,rgba(26,32,44,.52),rgba(12,16,24,.66) 72%)!important}
.profile-card:has(.profile-new-identity) .profile-icon{opacity:.82;filter:drop-shadow(0 14px 12px rgba(0,0,0,.55)) brightness(1.1)!important}
.profile-card:has(.profile-new-identity)::before{background:radial-gradient(ellipse,rgba(120,150,190,.17),transparent 70%)}

@media(max-width:1380px){.battle-hud-layout{grid-template-columns:350px minmax(500px,1fr) 280px!important}.main-nav>.nav-button{gap:4px;padding:6px 4px!important}.main-nav>.nav-button img{width:30px;height:30px;flex-basis:30px}.inventory-page-layout{grid-template-columns:300px minmax(0,1fr)!important}.inventory-equipped-grid{grid-template-columns:repeat(3,minmax(160px,1fr))!important}}
@media(max-width:1120px){.battle-hud-layout{grid-template-columns:340px minmax(0,1fr)!important}.battle-right-rail{grid-column:1/-1!important}.main-nav{grid-auto-flow:row!important;grid-template-columns:repeat(3,minmax(110px,1fr))!important}.inventory-page-layout{grid-template-columns:280px minmax(0,1fr)!important}.inventory-equipped-grid{grid-template-columns:repeat(2,minmax(150px,1fr))!important}.profile-cards{grid-template-columns:repeat(2,minmax(260px,1fr))!important;height:auto!important;overflow:visible!important}.profile-card{min-height:500px!important}}
@media(max-width:760px){.main-nav{grid-auto-flow:row!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.main-nav>.nav-button{justify-content:flex-start;padding-left:14px!important}.inventory-page-layout{grid-template-columns:1fr!important}.inventory-equipped-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.battle-equipment-list{grid-template-columns:1fr!important}.battle-equipment-list #weaponSlot,.battle-equipment-list #wingSlot{grid-column:auto!important}.profile-cards{grid-template-columns:1fr!important}.dev-account-reset{align-items:stretch;flex-direction:column}.dev-reset-account-button{width:100%}}

/* v0.49 — raridades com identidade visual forte. */
.rarity-epic:not(.rarity-badge){color:var(--rarity-epic)!important;text-shadow:0 0 9px rgba(185,83,255,.45)}
.rarity-legendary:not(.rarity-badge){color:var(--rarity-legendary)!important;text-shadow:0 0 10px rgba(255,168,32,.48)}
.rarity-ancient:not(.rarity-badge):not(.loot-toast-icon){color:#fff0a3!important;background:linear-gradient(90deg,#78f0c0 0%,#fff2a8 44%,#ffb84d 78%,#fff2a8 100%);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 14px rgba(105,239,184,.28);font-weight:950!important;letter-spacing:.15px}
.rarity-badge.rarity-ancient{border-color:#d4a947!important;background:linear-gradient(135deg,#17362c,#5b421b 70%,#2c2011)!important;color:#fff1ac!important;box-shadow:inset 0 0 0 1px rgba(119,255,202,.18),0 0 15px rgba(229,177,67,.25)!important}
.equipped-showcase-slot:has(.rarity-ancient),.inventory-group:has(.rarity-ancient),.equipment-row:has(.rarity-ancient),.forge-list-item:has(.rarity-ancient){border-color:#a88438!important;background:radial-gradient(circle at 18% 0,rgba(79,231,169,.12),transparent 40%),linear-gradient(145deg,rgba(89,64,22,.26),#17201d 68%)!important;box-shadow:inset 3px 0 0 #61d9a5,0 0 21px rgba(222,170,55,.12)!important}

/* Escalonamento de ameaça e confirmações universais de ações. */
.enemy-identity-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.enemy-reset-level{display:inline-flex;align-items:center;min-height:20px;padding:3px 7px;border:1px solid #7b5b2a;border-radius:999px;background:linear-gradient(180deg,#2a2215,#18191d);color:#f2cd73;font-size:calc(7px * var(--text-scale, 1));font-weight:950;letter-spacing:.65px;white-space:nowrap;cursor:help}.enemy-reset-level::before{content:"◆";margin-right:4px;color:#ef9c38}
.action-feedback-stack{position:fixed;z-index:340;top:76px;right:18px;display:flex;flex-direction:column;gap:9px;width:min(390px,calc(100vw - 28px));pointer-events:none}.action-feedback{display:grid;grid-template-columns:48px minmax(0,1fr) 26px;gap:11px;align-items:center;min-height:92px;padding:12px;border:1px solid #426c58;border-radius:12px;background:radial-gradient(circle at 0 0,rgba(81,221,158,.13),transparent 35%),linear-gradient(145deg,rgba(21,33,29,.98),rgba(15,19,25,.98));box-shadow:0 18px 50px rgba(0,0,0,.55),inset 3px 0 0 #55d399;opacity:0;transform:translateX(28px);transition:opacity .2s ease,transform .2s ease;pointer-events:auto}.action-feedback.show{opacity:1;transform:translateX(0)}.action-feedback.danger{border-color:#864a50;background:radial-gradient(circle at 0 0,rgba(237,84,94,.13),transparent 35%),linear-gradient(145deg,rgba(40,24,27,.98),rgba(16,18,23,.98));box-shadow:0 18px 50px rgba(0,0,0,.55),inset 3px 0 0 #e65c65}.action-feedback.rare{border-color:#94702f;background:radial-gradient(circle at 0 0,rgba(255,199,72,.16),transparent 37%),linear-gradient(145deg,rgba(43,34,18,.98),rgba(17,19,23,.98));box-shadow:0 18px 50px rgba(0,0,0,.58),0 0 24px rgba(222,170,55,.12),inset 3px 0 0 #f2bd4a}.action-feedback-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #49685b;border-radius:10px;background:#111820;font-size:calc(23px * var(--text-scale, 1))}.action-feedback-copy>span{display:block;color:#6ed9a8;font-size:calc(7px * var(--text-scale, 1));font-weight:950;letter-spacing:1px}.action-feedback.danger .action-feedback-copy>span{color:#ff8b91}.action-feedback.rare .action-feedback-copy>span{color:#f6cd70}.action-feedback-copy>strong{display:block;margin-top:3px;color:#eef6f1;font-size:calc(12px * var(--text-scale, 1))}.action-feedback-copy p{margin:3px 0 0;color:#b3c0ba;font-size:calc(9px * var(--text-scale, 1));line-height:1.4}.action-feedback-copy small{display:block;margin-top:4px;color:#84928b;font-size:calc(8px * var(--text-scale, 1));line-height:1.35}.action-feedback>button{align-self:start;width:24px;height:24px;padding:0;border:0;background:transparent;color:#8e9a95;font-size:calc(16px * var(--text-scale, 1))}.active-pet-xp-rule,.pet-xp-guarantee{display:block;margin-top:7px;padding:7px 8px;border:1px solid #494061;border-radius:7px;background:#191724;color:#c8aff0!important;font-size:calc(8.5px * var(--text-scale, 1))!important;line-height:1.45}.active-pet-xp-rule{color:#c8aff0}.pet-xp-guarantee strong{color:#e0c9ff!important}

/* Segunda progressão: Alma. */
.hero-xp-box{gap:5px!important}.soul-run-label{margin-top:7px!important;color:#be9cff}.soul-run-label span{color:#c5a5ff!important}.soul-run-label strong{color:#dfd1ff!important}.soul-xp-bar{height:7px;overflow:hidden;border:1px solid #4e3c70;border-radius:999px;background:#171322;box-shadow:inset 0 2px 4px rgba(0,0,0,.45)}.soul-xp-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#5d32ae,#a85bff,#e5b8ff);box-shadow:0 0 11px rgba(170,91,255,.72);transition:width .3s ease}
.character-tabs{grid-template-columns:repeat(4,1fr)!important}.soul-tab-button.active{border-color:#7852ad!important;background:linear-gradient(180deg,#3b2858,#281d3b)!important;color:#e4c9ff!important;box-shadow:inset 0 -2px 0 #a96bff!important}.soul-tab-button span{background:#542d82!important;color:#f0d8ff!important}
.soul-tree-head{display:grid;grid-template-columns:76px minmax(0,1fr) 150px;gap:14px;align-items:center;padding:17px;border:1px solid #5a417c;border-radius:12px;background:radial-gradient(circle at 7% 20%,rgba(159,83,244,.18),transparent 32%),linear-gradient(145deg,#21182f,#151820)}.soul-orb{display:grid;place-items:center;width:70px;height:70px;border:1px solid #9a63d9;border-radius:50%;background:radial-gradient(circle,#d9b4ff 0 9%,#8b48d3 17%,#3f2067 47%,#171320 70%);color:#fff;font-size:calc(25px * var(--text-scale, 1));text-shadow:0 0 9px #fff;box-shadow:0 0 26px rgba(169,82,255,.36),inset 0 0 22px rgba(225,186,255,.2)}.soul-tree-title span,.soul-tree-wallet span{display:block;color:#a47bd4;font-size:calc(8px * var(--text-scale, 1));font-weight:950;letter-spacing:1px}.soul-tree-title h3{margin:4px 0;color:#edddff;font-family:Georgia,serif;font-size:calc(23px * var(--text-scale, 1))}.soul-tree-title p{margin:0;color:#aaa0b7;font-size:calc(10px * var(--text-scale, 1));line-height:1.5}.soul-tree-wallet{padding:12px;border-left:1px solid #4e3a68;text-align:right}.soul-tree-wallet strong{display:block;color:#d7b3ff;font-size:calc(30px * var(--text-scale, 1))}.soul-tree-wallet small{color:#a99bb8;font-size:calc(9px * var(--text-scale, 1))}.soul-tree-wallet b{color:#e8cdff}
.soul-tree-progress{margin:10px 0 12px;padding:11px 13px;border:1px solid #40344f;border-radius:9px;background:#14151c}.soul-tree-progress>div:first-child{display:flex;justify-content:space-between;color:#a696b9;font-size:calc(9px * var(--text-scale, 1))}.soul-tree-progress strong{color:#d1b5ef}.soul-tree-track{height:8px;margin-top:8px;overflow:hidden;border-radius:999px;background:#21182c}.soul-tree-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#6636aa,#ad63f1,#e0b5ff);box-shadow:0 0 10px rgba(178,99,255,.5);transition:width .25s ease}
.soul-daily-panel{margin:-3px 0 12px;padding:11px 13px;border:1px solid #46365a;border-radius:9px;background:linear-gradient(145deg,#18151f,#12141a)}.soul-daily-panel>div:first-child{display:flex;justify-content:space-between;color:#8e72ae;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.6px}.soul-daily-panel strong{color:#d8b9f8}.soul-daily-track{height:6px;margin:8px 0;overflow:hidden;border-radius:999px;background:#261d31}.soul-daily-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7943b3,#bc73ef)}.soul-daily-panel p{margin:0;color:#b6a5c6;font-size:calc(9px * var(--text-scale, 1));line-height:1.45}.soul-daily-panel small{display:block;margin-top:5px;color:#84788e;font-size:calc(8px * var(--text-scale, 1));line-height:1.4}
/* ALMA 2.0 (Fase 49) -- a roda substituiu a lista de 10 cards. As classes
   .soul-node* da Alma 1.0 sairam junto com a arvore linear que as usava. */
.soul-tree-list{display:block}
.soul-wheel-wrap{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:14px;align-items:start}
.soul-wheel{position:relative;aspect-ratio:1;width:100%;max-width:440px;margin:0 auto}
.soul-wheel svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.soul-wheel svg line{stroke-width:1.5;opacity:.16}
.soul-wheel svg line.on{opacity:.7;stroke-width:2.5}
.soul-ring{fill:none;stroke:#4e3a68;stroke-width:1;opacity:.45}
.soul-ring.inner{opacity:.22;stroke-dasharray:3 6}
/* NOS MAIORES (Fase 64). Pedido do autor: *"deixe os nos um pouco maiores, eu
   criei os icones e mal consigo ver pois ta pequeno (nao precisa ser muito
   grande)"*. Medido: os nos comuns ficam a 44 unidades uns dos outros numa roda
   de 400 -- ~48px entre centros na largura maxima (440px). 26px deixava 22px
   de folga; o tamanho agora e FRACAO DA RODA (8%, ~35px no maximo) e nao px
   fixo: no celular a roda encolhe, e um tamanho fixo faria os nos se
   sobreporem. O piso de 26px e o tamanho de antes. */
.soul-wheel-node{position:absolute;transform:translate(-50%,-50%);width:clamp(26px,8%,36px);height:auto;aspect-ratio:1;padding:0;border:2px solid var(--soul-cor,#9270b1);border-radius:50%;background:#15131c;color:#f2e9ff;font-size:calc(10px * var(--text-scale,1));font-weight:900;line-height:1;display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
/* ARTE DO NO (Fase 54). O <img> so existe quando o arquivo existe -- o
   `onerror` do markup o remove -- entao sem arte a regra abaixo nao se aplica a
   ninguem e o circulo colorido continua exatamente como estava. O grau (o <b>)
   fica POR CIMA da arte: e a informacao que o autor le de relance na roda. */
.soul-resonance .soul-aura-art{width:18px;height:18px;vertical-align:-4px;margin-right:6px;object-fit:contain}
.soul-wheel-node .soul-node-art{position:absolute;inset:1px;width:calc(100% - 2px);height:calc(100% - 2px);border-radius:50%;object-fit:contain;pointer-events:none}
.soul-wheel-node.kind-capstone .soul-node-art{border-radius:9px}
.soul-wheel-node>b{position:relative;z-index:1;text-shadow:0 1px 2px #000,0 0 4px #000}
.soul-wheel-node.kind-capstone{width:clamp(34px,10%,44px);height:auto;aspect-ratio:1;border-width:3px;border-radius:11px}
.soul-wheel-node.kind-unique{border-style:double;border-width:4px}
.soul-wheel-node.is-locked{opacity:.3;filter:saturate(.25)}
.soul-wheel-node.is-available{box-shadow:0 0 0 2px rgba(255,255,255,.09),0 0 12px -2px var(--soul-cor,#9270b1)}
.soul-wheel-node.is-owned{background:#241d2e}
.soul-wheel-node.is-maxed{background:var(--soul-cor,#9270b1);color:#17111e}
.soul-wheel-node:hover{transform:translate(-50%,-50%) scale(1.18)}
.soul-wheel-node.is-selected{transform:translate(-50%,-50%) scale(1.3);box-shadow:0 0 0 2px #fff,0 0 16px var(--soul-cor,#9270b1);z-index:2}
.soul-detail{display:grid;gap:8px;padding:11px;border:1px solid #4e3a68;border-radius:10px;background:linear-gradient(160deg,#1d1826,#141018)}
.soul-detail header span{color:var(--soul-cor,#9270b1);font-size:calc(7px * var(--text-scale,1));font-weight:900;letter-spacing:.7px}
.soul-detail header h4{margin:2px 0;color:#eddffb;font-size:calc(13px * var(--text-scale,1))}
.soul-detail header small{color:#8a7d99;font-size:calc(8px * var(--text-scale,1))}
.soul-detail-effect{margin:0;color:#c5aadf;font-size:calc(9px * var(--text-scale,1));line-height:1.4}
.soul-detail-grade,.soul-detail-req{display:grid;gap:2px;padding:7px;border-radius:8px;background:#100d16}
.soul-detail-grade span,.soul-detail-req span{color:#7e7290;font-size:calc(7px * var(--text-scale,1));font-weight:900;letter-spacing:.6px}
.soul-detail-grade strong{color:#e2c9f7;font-size:calc(12px * var(--text-scale,1))}
.soul-detail-grade small,.soul-detail-req b{color:#a894c0;font-size:calc(9px * var(--text-scale,1))}
.soul-detail-costs{display:grid;gap:3px;margin:0;padding:0;list-style:none}
.soul-detail-costs li{display:flex;justify-content:space-between;gap:8px;padding:4px 7px;border-radius:6px;background:#141019;font-size:calc(9px * var(--text-scale,1))}
.soul-detail-costs li span{color:#8a7d99}
.soul-detail-costs li.ok b{color:#8fe0a0}
.soul-detail-costs li.falta b{color:#ef7f8f}
.soul-detail-buy{width:100%;min-height:32px;border:1px solid #7650a0;border-radius:8px;background:#4d2c72;color:#ead6ff;font-size:calc(8px * var(--text-scale,1));font-weight:900;cursor:pointer}
.soul-detail-buy:disabled{border-color:#393641;background:#24232a;color:#6e6876;cursor:default}
.soul-detail-empty{margin:0;color:#8a7d99;font-size:calc(9px * var(--text-scale,1))}
.soul-resonance{margin:10px 0 0;color:#c5aadf;font-size:calc(9px * var(--text-scale,1));letter-spacing:.5px;text-align:center}
.soul-resonance small{color:#7e7290;font-size:calc(8px * var(--text-scale,1))}
.stat-respec-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:13px 14px;border:1px solid #59443a;border-radius:9px;background:linear-gradient(145deg,#211b1a,#181a20)}.stat-respec-card span,.stat-respec-card strong,.stat-respec-card small{display:block}.stat-respec-card span{color:#b98866;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.stat-respec-card strong{margin:3px 0;color:#eadbce;font-size:calc(12px * var(--text-scale, 1))}.stat-respec-card small{color:#8f8580;font-size:calc(8.5px * var(--text-scale, 1))}.stat-respec-card button{flex:0 0 150px;min-height:47px;border:1px solid #8a543e;background:#5c3028;color:#ffe0ce;font-size:calc(8px * var(--text-scale, 1))}.stat-respec-card button small{color:#ffc991;font-size:calc(7px * var(--text-scale, 1))}

/* Bestiário usa os sprites locais sempre que existe arte. */
.codex-icon{overflow:hidden}.codex-icon .monster-asset{width:54px;height:54px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 5px 5px rgba(0,0,0,.48))}.codex-entry.codex-rare .codex-icon{font-size:0;background:#12171e url("assets/npcs/golden_dragon.webp") center/54px 54px no-repeat;image-rendering:pixelated}

/* v0.50 • evento persistente do Golden Dragon */
.golden-dragon-event-banner{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:12px;padding:14px;border:1px solid rgba(255,188,45,.58);border-radius:13px;background:linear-gradient(135deg,rgba(75,43,5,.92),rgba(26,23,18,.98) 58%,rgba(47,27,5,.94));box-shadow:0 12px 30px rgba(0,0,0,.3),inset 0 0 28px rgba(255,173,28,.06)}
.golden-dragon-event-banner.hidden{display:none}
.golden-dragon-event-art{display:grid;place-items:center;width:82px;height:82px;border:1px solid rgba(255,199,71,.36);border-radius:12px;background:radial-gradient(circle,rgba(255,192,46,.2),rgba(10,11,15,.76) 70%)}
.golden-dragon-event-art img{width:72px;height:72px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 5px 8px rgba(255,170,0,.3))}
.golden-dragon-event-copy{min-width:0}.golden-dragon-event-title{display:flex;align-items:center;gap:10px;min-width:0}.golden-dragon-event-title span{color:#f0b23c;font-size:calc(9px * var(--text-scale, 1));font-weight:900;letter-spacing:.15em}.golden-dragon-event-title strong{color:#ffe4a0;font-size:calc(16px * var(--text-scale, 1))}.golden-dragon-event-title em{margin-left:auto;padding:4px 8px;border:1px solid rgba(255,204,91,.35);border-radius:7px;color:#ffd96f;font-size:calc(12px * var(--text-scale, 1));font-style:normal;font-weight:900;font-variant-numeric:tabular-nums}
.golden-dragon-event-copy p{margin:5px 0 9px;color:#bcb39f;font-size:calc(10px * var(--text-scale, 1));line-height:1.45}.golden-dragon-event-copy>small{display:block;margin-top:6px;color:#938b7b;font-size:calc(9px * var(--text-scale, 1))}
.golden-dragon-event-health>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px;color:#d8c69e;font-size:calc(9px * var(--text-scale, 1));font-weight:800}.golden-dragon-event-track{height:7px;overflow:hidden;border-radius:999px;background:#211b11}.golden-dragon-event-track i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d27317,#ffd35d);box-shadow:0 0 10px rgba(255,185,45,.55);transition:width .25s ease}
#goldenDragonFightButton{min-width:150px;border:1px solid #b77a19;background:linear-gradient(180deg,#a86d16,#79500f);color:#fff0ba;box-shadow:0 7px 18px rgba(0,0,0,.28)}#goldenDragonFightButton:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}#goldenDragonFightButton:disabled{opacity:.58}
@media(max-width:760px){.golden-dragon-event-banner{grid-template-columns:64px 1fr}.golden-dragon-event-art{width:64px;height:64px}.golden-dragon-event-art img{width:58px;height:58px}#goldenDragonFightButton{grid-column:1/-1;width:100%}.golden-dragon-event-title{flex-wrap:wrap}.golden-dragon-event-title em{margin-left:0}}

/* Expedições compactas, limitadas e sem o resumo gigante em abas ocultas. */
.pet-merchant-summary.hidden,.forge-panel-group.hidden{display:none!important}.pet-expedition-command{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px}.pet-expedition-daily{display:grid;align-content:center;padding:12px;border:1px solid #5b4c2e;border-radius:10px;background:linear-gradient(145deg,#211d14,#17191d);text-align:center}.pet-expedition-daily span{color:#aa9360;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.pet-expedition-daily strong{color:#f3d782;font-size:calc(25px * var(--text-scale, 1))}.pet-expedition-daily small{color:#938a75;font-size:calc(8px * var(--text-scale, 1));line-height:1.4}.pet-expedition-card-head{display:flex;align-items:center;justify-content:space-between;gap:7px}.pet-expedition-card-head b{color:#8a96a8;font-size:calc(7px * var(--text-scale, 1))}.pet-expedition-card.level-locked{opacity:.58}.pet-expedition-rules{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #343b46;border-radius:8px;background:#14181e}.pet-expedition-rules strong{color:#cbb579;font-size:calc(9px * var(--text-scale, 1));white-space:nowrap}.pet-expedition-rules span{color:#8893a3;font-size:calc(8.5px * var(--text-scale, 1));line-height:1.4}

/* Recompensa do pack e ferramenta de evento DEV. */
.starter-reward-card{width:min(540px,calc(100vw - 28px))!important;padding:28px!important;overflow:hidden!important;text-align:center!important;border:1px solid #bd8e36!important;background:radial-gradient(circle at 50% 18%,rgba(103,239,194,.15),transparent 30%),linear-gradient(155deg,#202016,#10151a 68%)!important;box-shadow:0 35px 110px rgba(0,0,0,.78),0 0 45px rgba(221,168,54,.16)!important}.starter-reward-overline{color:#e2b758;font-size:calc(9px * var(--text-scale, 1));font-weight:950;letter-spacing:1.4px}.starter-reward-rays{display:grid;place-items:center;width:150px;height:150px;margin:8px auto;background:repeating-conic-gradient(from 0deg,rgba(255,213,110,.13) 0 7deg,transparent 7deg 16deg);border-radius:50%}.starter-reward-rays img{width:92px;height:92px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 15px rgba(116,239,210,.55)) drop-shadow(0 12px 12px rgba(0,0,0,.55))}.starter-reward-card h2{margin:0;color:#fff0ab;font-family:Georgia,serif;font-size:calc(24px * var(--text-scale, 1))}.starter-reward-card h2 b{color:#68e3b2}.starter-reward-rarity{margin:8px auto;padding:6px 10px;border:1px solid #a47d31;border-radius:999px;color:#f4cd72;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.7px}.starter-reward-card p{color:#b8b4a5;font-size:calc(11px * var(--text-scale, 1));line-height:1.7}.starter-reward-status{padding:11px;border:1px solid #4b4650;border-radius:8px;background:#17191e;color:#a9a5ad;font-size:calc(9px * var(--text-scale, 1))}.starter-reward-status.equipped{border-color:#3c795d;background:#15241d;color:#a4e8c3}.starter-reward-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.starter-reward-actions button{min-height:42px;font-size:calc(8px * var(--text-scale, 1))}.dev-dragon-preview{display:grid;grid-template-columns:60px 1fr;gap:8px;align-items:center;padding:8px;border:1px solid #594522;border-radius:8px;background:#201b13}.dev-dragon-preview img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated}.dev-dragon-preview strong,.dev-dragon-preview small{display:block}.dev-dragon-preview strong{color:#f2c65e}.dev-dragon-preview small{margin-top:3px;color:#a79678;font-size:calc(8px * var(--text-scale, 1));line-height:1.4}

@media(max-width:760px){.character-tabs{grid-template-columns:repeat(2,1fr)!important}.soul-tree-head{grid-template-columns:56px 1fr}.soul-orb{width:52px;height:52px}.soul-tree-wallet{grid-column:1/-1;border-left:0;border-top:1px solid #4e3a68;text-align:left}.soul-wheel-wrap{grid-template-columns:1fr}.stat-respec-card,.pet-expedition-rules{align-items:stretch;flex-direction:column}.stat-respec-card button{flex-basis:auto;width:100%}.pet-expedition-command{grid-template-columns:1fr}.starter-reward-actions{grid-template-columns:1fr}}

/* v0.52 • entrada direta, perfis de atributos e estados do Golden Dragon */
.main-login-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin:18px 0 10px;padding:14px;border:1px solid rgba(176,94,55,.32);background:rgba(14,8,10,.58);text-align:left;box-sizing:border-box}
.main-login-form label{display:grid;gap:6px;color:#bdaaa1;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:1px}.main-login-form input{box-sizing:border-box;width:100%;min-width:0;padding:12px;border:1px solid #4e3939;border-radius:6px;background:#0f0c10;color:#f4ece8;outline:none}.main-login-form input:focus{border-color:#b66646;box-shadow:0 0 0 2px rgba(182,102,70,.13)}
.main-login-form .auth-error{grid-column:1/-1;min-height:0;margin:0}.main-login-form .main-menu-primary{grid-column:1/-1;min-height:48px}.main-account-status{margin:0 0 11px!important;padding:0!important;border:0!important;background:transparent!important;color:#8d7c77!important;font-size:calc(9px * var(--text-scale, 1))!important;text-align:center!important}
.main-menu-actions{grid-template-columns:1fr 1fr!important}.main-menu-actions #createAccountButton,.main-menu-actions #optionsButton{grid-column:auto!important}.main-menu-actions button{min-height:44px!important;font-size:calc(11px * var(--text-scale, 1))!important}
.auto-stat-profile-section{margin-bottom:9px;padding:11px;border:1px solid #3b4250;border-radius:9px;background:#141921}.auto-stat-profile-section>span{display:block;margin-bottom:8px;color:#8e9ab0;font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.8px}.auto-stat-profile-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.auto-stat-profile-selector button{display:grid;gap:3px;min-height:52px;padding:8px;border:1px solid #3b4454;background:#1b212b;color:#aeb7c7;text-align:left}.auto-stat-profile-selector button strong{font-size:calc(10px * var(--text-scale, 1))}.auto-stat-profile-selector button small{color:#7f8b9e;font-size:calc(7.5px * var(--text-scale, 1));line-height:1.3}.auto-stat-profile-selector button.active{border-color:#b48532;background:linear-gradient(160deg,#443617,#272617);box-shadow:inset 0 0 16px rgba(229,174,66,.08)}.auto-stat-profile-selector button.active strong{color:#ffe18b}.auto-stat-profile-selector button.active small{color:#c8b98d}
.player-combat-status{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}.player-combat-status.hidden{display:none}.player-combat-status span{padding:5px 7px;border:1px solid #763e32;border-radius:6px;background:#281613;color:#ffb394;font-size:calc(8px * var(--text-scale, 1));font-weight:900}.player-combat-status span.stunned{border-color:#654c91;background:#1d1830;color:#d3b8ff}
.enemy-status-effects{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 0}.enemy-status-effects.hidden{display:none}.enemy-status-effects span{padding:4px 6px;border:1px solid #3e2a1c;border-radius:6px;background:#1c120c;color:#ffcf8c;font-size:calc(7.5px * var(--text-scale, 1));font-weight:900;white-space:nowrap}.enemy-status-effects span.status-cc{border-color:#654c91;background:#1d1830;color:#d3b8ff}.enemy-status-effects span.status-dot{border-color:#5a2b26;background:#241210;color:#ff9d7a}.enemy-status-effects span.status-debuff{border-color:#2c4d55;background:#0f2226;color:#8fdcec}
.golden-dragon-skills{display:grid;gap:5px;margin:9px 0;padding:8px;border:1px solid rgba(208,151,37,.34);border-radius:8px;background:rgba(39,25,8,.58);text-align:left}.golden-dragon-skills.hidden{display:none}.golden-dragon-skills>div{display:grid;grid-template-columns:1fr auto;gap:2px 8px}.golden-dragon-skills span{color:#ffd36c;font-size:calc(8px * var(--text-scale, 1));font-weight:900}.golden-dragon-skills strong{color:#f3ba53;font-size:calc(8px * var(--text-scale, 1))}.golden-dragon-skills small{grid-column:1/-1;color:#9d9179;font-size:calc(7px * var(--text-scale, 1));line-height:1.35}
@media(max-width:620px){.main-login-form{grid-template-columns:1fr}.main-login-form .auth-error,.main-login-form .main-menu-primary{grid-column:1}.main-menu-actions{grid-template-columns:1fr!important}.main-menu-actions #createAccountButton,.main-menu-actions #optionsButton{grid-column:1!important}.auto-stat-profile-selector{grid-template-columns:1fr}}


/* =====================================================
   v0.54 — opções, onboarding e estabilidade de UI
   ===================================================== */
.options-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:6px 0 0;padding:10px 2px 6px;border-bottom:1px solid #313846}.options-section-title span{color:#d9bd78;font-size:calc(9px * var(--text-scale, 1));font-weight:950;letter-spacing:.9px}.options-section-title small{color:#7f8999;font-size:calc(8px * var(--text-scale, 1))}.option-select-row select{min-width:132px;padding:8px 10px;border:1px solid #465064;border-radius:8px;background:#111722;color:#dce4ef;font-size:calc(10px * var(--text-scale, 1));font-weight:850}.options-topbar-button{border-color:#536476!important;background:#293442!important}.graphics-lite .boss-fx-layer,.graphics-lite .loot-rarity-fx{display:none!important}.graphics-lite .fighter,.graphics-lite .card,.graphics-lite .nav-button,.graphics-lite .topbar-button{box-shadow:none!important}.graphics-lite .monster-asset,.graphics-lite .combat-character-sprite,.graphics-lite .pet-battle-art{filter:none!important}
.starter-quest-banner{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;margin:10px 14px 4px;padding:10px 12px;border:1px solid #7b6230;border-radius:11px;background:linear-gradient(135deg,rgba(88,62,22,.36),rgba(21,23,29,.96));box-shadow:inset 3px 0 0 #d6a847,0 10px 28px rgba(0,0,0,.18)}.starter-quest-banner.hidden{display:none!important}.starter-quest-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #806b3b;border-radius:10px;background:#211a10;font-size:calc(24px * var(--text-scale, 1))}.starter-quest-copy span{display:block;color:#d7aa4d;font-size:calc(7px * var(--text-scale, 1));font-weight:950;letter-spacing:1px}.starter-quest-copy strong{display:block;margin-top:2px;color:#f1e1b6;font-size:calc(12px * var(--text-scale, 1))}.starter-quest-copy small{display:block;margin-top:3px;color:#a99c7c;font-size:calc(8.5px * var(--text-scale, 1));line-height:1.35}.starter-quest-banner>b{color:#f0cc7c;font-size:calc(10px * var(--text-scale, 1));white-space:nowrap}.starter-quest-track{height:5px;margin-top:7px;border-radius:999px;background:#2e291e;overflow:hidden}.starter-quest-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#b67b24,#f0c75e);transition:width .2s ease}
#setsView,#setsView .set-collection-card,#setsView .set-collection-card *{user-select:text;-webkit-user-select:text}#setsView button{user-select:none;-webkit-user-select:none}.soul-daily-panel .soul-daily-track i{box-shadow:0 0 12px rgba(188,115,239,.28)}
@media(max-width:900px){.starter-quest-banner{grid-template-columns:42px minmax(0,1fr)}.starter-quest-banner>b{grid-column:2}.options-section-title{align-items:flex-start;flex-direction:column}}


/* =====================================================
   v0.55 — escala global de texto
   O padrão 1.0 preserva os valores originais; os níveis maiores
   alteram apenas font-size e deixam containers refluírem naturalmente.
   ===================================================== */
:root{--text-scale:1}
html[data-text-scale]:not([data-text-scale="1"]) .option-row,
html[data-text-scale]:not([data-text-scale="1"]) .topbar,
html[data-text-scale]:not([data-text-scale="1"]) .main-nav,
html[data-text-scale]:not([data-text-scale="1"]) .card-header,
html[data-text-scale]:not([data-text-scale="1"]) .modal-title-row{min-height:max-content}
html[data-text-scale]:not([data-text-scale="1"]) button,
html[data-text-scale]:not([data-text-scale="1"]) select,
html[data-text-scale]:not([data-text-scale="1"]) .badge,
html[data-text-scale]:not([data-text-scale="1"]) .chip{white-space:normal}
html[data-text-scale]:not([data-text-scale="1"]) .option-row>div:first-child{min-width:0}

/* =====================================================
   v0.56 — correções visuais pontuais
   - Ancient não torna o card inteiro transparente no loadout do inventário.
   - Absolut Sword ganha leitura visual adequada sem alterar o asset.
   - Loadout lateral reflui com segurança quando a escala de texto > 100%.
   ===================================================== */

/* A raridade Ancient deve estilizar o nome/badge; nunca o container inteiro. */
.equipped-showcase-slot > strong.rarity-ancient{
  display:block;
  background:linear-gradient(90deg,#78f0c0 0%,#fff2a8 44%,#ffb84d 78%,#fff2a8 100%);
  background-size:180% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.equipped-showcase-slot > small .rarity-badge{vertical-align:middle;margin-right:2px}

/* A arte original da Absolut Sword possui bastante transparência lateral.
   O scale é apenas visual e mantém o PNG intacto para saves/compatibilidade. */
.inventory-equipped-art[src$="absolut-sword-of-archangel.png"]{transform:scale(1.38);transform-origin:center;filter:drop-shadow(0 5px 9px rgba(0,0,0,.35)) drop-shadow(0 0 6px rgba(147,232,210,.20))}
.battle-equipment-list .equipment-item-art[src$="absolut-sword-of-archangel.png"]{transform:scale(1.30);transform-origin:center}
.inventory-item-art[src$="absolut-sword-of-archangel.png"],
.forge-list-art[src$="absolut-sword-of-archangel.png"],
.forge-target-art[src$="absolut-sword-of-archangel.png"]{transform:scale(1.22);transform-origin:center}

/* Em 110–130%, o painel estreito de equipamentos precisa crescer por conteúdo,
   não forçar ellipsis/altura de 100%. */
html[data-text-scale]:not([data-text-scale="1"]) .battle-equipment-list .equipment-row{
  height:auto!important;
  min-height:122px!important;
  align-content:start;
}
html[data-text-scale]:not([data-text-scale="1"]) .battle-equipment-list #weaponSlot,
html[data-text-scale]:not([data-text-scale="1"]) .battle-equipment-list #wingSlot{
  min-height:110px!important;
}
html[data-text-scale]:not([data-text-scale="1"]) .battle-equipment-list .item-name{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
  word-break:break-word;
}
html[data-text-scale]:not([data-text-scale="1"]) .battle-equipment-list .equipment-meta,
html[data-text-scale]:not([data-text-scale="1"]) .battle-equipment-list .battle-slot-name-row{
  row-gap:4px;
}

/* =====================================================
   v0.57 — auditoria visual, tooltips e consistência de componentes
   Apenas UI/CSS: nenhuma regra de combate, progressão ou economia.
   ===================================================== */

/* v0.57 polish layer: tokens migrados para o :root unico (v0.91), bloco removido. */

/* Um único sistema de tooltip para ajuda, itens e ações.
   Substitui o tooltip nativo retangular do navegador. */
.game-tooltip{
  box-sizing:border-box!important;
  width:max-content;
  max-width:min(380px,calc(100vw - 28px))!important;
  padding:11px 13px!important;
  border:1px solid #655437!important;
  border-radius:10px!important;
  background:linear-gradient(155deg,rgba(20,19,16,.985),rgba(10,13,18,.985))!important;
  box-shadow:0 16px 46px rgba(0,0,0,.62),inset 0 0 0 1px rgba(255,255,255,.018)!important;
  color:#dde2ea!important;
  font-size:calc(12px * var(--text-scale,1))!important;
  line-height:1.52!important;
  white-space:pre-line!important;
  overflow-wrap:anywhere;
}
.game-tooltip::before{
  content:"?"!important;
  width:18px!important;
  height:18px!important;
  margin:0 8px 2px 0!important;
  border:1px solid rgba(222,182,93,.18);
  background:#6c5529!important;
  color:#f8d98b!important;
  box-shadow:0 2px 8px rgba(0,0,0,.22);
}
.game-tooltip[data-kind="item"]::before{content:"✦"!important;background:#315a4d!important;color:#bff7df!important;border-color:#477a68!important}
.game-tooltip[data-kind="action"]::before{content:"i"!important;background:#34475f!important;color:#cfe6ff!important;border-color:#4c6685!important}

/* ---------------------------------------------------------------------
   A FICHA DO ITEM DENTRO DO BALAO (Fase 136)

   Pedido do autor: *"precisamos polir e deixar mais atrativo e organizado esse
   menu quando eu vejo as informacoes dos itens (proficiencia poderia ter uma
   barrinha de progressao bonita, etc). ta tudo confuso e jogada as
   informacoes"*.

   O balao de TEXTO continua exatamente como estava -- estas regras so valem
   com `.rico`, que o jogo poe quando tem a ficha montada. Duas delas precisam
   ser ditas em voz alta porque desfazem o que a regra base impoe:
   `white-space` (o balao de texto vive de `pre-line`, e a ficha e HTML) e o
   marcador `::before`, que e um "?" flutuante util numa dica de uma linha e um
   estorvo em cima de um cabecalho.
   --------------------------------------------------------------------- */
.game-tooltip.rico{white-space:normal!important;padding:0!important;max-width:min(330px,calc(100vw - 28px))!important;overflow:hidden}
.game-tooltip.rico::before{display:none!important}
.game-tooltip.rico .ttip-head{padding:10px 12px 8px;background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,0));border-bottom:1px solid rgba(255,255,255,.07)}
.game-tooltip.rico .ttip-nome{display:block;font-size:calc(13px * var(--text-scale,1));font-weight:800;letter-spacing:.2px;line-height:1.25}
.game-tooltip.rico .ttip-mais{font-style:normal;color:#f4d382}
.game-tooltip.rico .ttip-sub{margin-top:3px;font-size:calc(10.5px * var(--text-scale,1));color:#9aa3b2;text-transform:uppercase;letter-spacing:.5px}
.game-tooltip.rico .ttip-raridade{font-weight:800}
.game-tooltip.rico .ttip-origem{padding:7px 12px 0;font-size:calc(10.5px * var(--text-scale,1));color:#818a99}
/* AS FICHAS DE ATRIBUTO. Cada numero em sua propria caixa: e o que separa
   "+14.42 DEF" de "+7.21 VIT" sem depender de o olho achar o proximo ponto. */
.game-tooltip.rico .ttip-stats{display:flex;flex-wrap:wrap;gap:4px;padding:8px 12px 2px}
.game-tooltip.rico .ttip-stats span{padding:2px 7px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(255,255,255,.045);font-size:calc(11px * var(--text-scale,1));font-weight:700;color:#dfe6f2;white-space:nowrap}
.game-tooltip.rico .ttip-barra{padding:9px 12px 0}
.game-tooltip.rico .ttip-barra-topo{display:flex;justify-content:space-between;gap:10px;font-size:calc(10.5px * var(--text-scale,1));color:#9aa3b2;text-transform:uppercase;letter-spacing:.4px}
.game-tooltip.rico .ttip-barra-topo strong{color:#e7edf7}
.game-tooltip.rico .ttip-trilho{margin-top:4px;height:6px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.game-tooltip.rico .ttip-trilho>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#4f9d7a,#8fe0b6)}
.game-tooltip.rico .ttip-barra.integ .ttip-trilho>span{background:linear-gradient(90deg,#4a7bb0,#9ec9f5)}
.game-tooltip.rico .ttip-barra.quebrado .ttip-trilho>span{background:linear-gradient(90deg,#a4463f,#e08a82)}
.game-tooltip.rico .ttip-barra small{display:block;margin-top:3px;font-size:calc(10px * var(--text-scale,1));color:#8e96a5}
.game-tooltip.rico .ttip-selos{display:flex;flex-wrap:wrap;gap:4px;padding:9px 12px 11px;margin-top:8px}
.game-tooltip.rico .ttip-selos span{padding:2px 7px;border-radius:5px;font-size:calc(10px * var(--text-scale,1));font-weight:800;letter-spacing:.3px}
.game-tooltip.rico .ttip-selos .ancient{background:rgba(196,140,60,.18);color:#f0c98a}
.game-tooltip.rico .ttip-selos .fixo{background:rgba(90,120,170,.2);color:#b9d2f2}
.game-tooltip.rico .ttip-selos .lock{background:rgba(160,70,70,.2);color:#f0b4ae}
.game-tooltip.rico .ttip-selos .fav{background:rgba(170,150,60,.2);color:#f2e3a2}
/* O ultimo bloco nao pode terminar colado na borda de baixo. */
.game-tooltip.rico>*:last-child{padding-bottom:11px}


/* Mesma geometria de card/controle nos menus que compartilham itens. */
.equipped-showcase-slot,
.inventory-list-grid .inventory-group,
.forge-list-item,
.set-collection-card{
  border-radius:var(--radius-md)!important;
}
.equipped-showcase-slot>button,
.inventory-list-grid .group-action button,
.forge-list-item>button,
.set-card-actions button{
  border-radius:var(--radius-sm)!important;
}
.rarity-badge,.quantity-badge,.equipped-badge,.upgrade-badge,.enhance-badge,.class-badge,.family-badge,.favorite-badge,.locked-badge,.set-ready-badge{
  box-sizing:border-box;
  min-height:18px;
  padding:3px 6px;
  align-items:center;
  line-height:1.05!important;
}

/* O texto ampliado deve fazer o card crescer, nunca cortar o conteúdo. */
html[data-text-scale]:not([data-text-scale="1"]) .inventory-equipped-grid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
  align-items:stretch;
}
html[data-text-scale]:not([data-text-scale="1"]) .equipped-showcase-slot{
  grid-template-rows:auto 72px auto auto auto!important;
  min-height:0!important;
  height:auto!important;
  align-content:start;
  padding:12px 10px 11px!important;
}
html[data-text-scale]:not([data-text-scale="1"]) .equipped-showcase-slot>strong{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
  line-height:1.28!important;
}
html[data-text-scale]:not([data-text-scale="1"]) .equipped-showcase-slot>small{
  width:100%;
  overflow-wrap:anywhere;
}
html[data-text-scale]:not([data-text-scale="1"]) .equipped-showcase-slot>button{
  align-self:end;
  min-height:31px!important;
  white-space:normal!important;
}

html[data-text-scale]:not([data-text-scale="1"]) .inventory-list-grid .inventory-group{
  min-height:0!important;
  height:auto!important;
  grid-template-columns:24px 50px minmax(0,1fr)!important;
  align-items:start;
}
html[data-text-scale]:not([data-text-scale="1"]) .inventory-list-grid .group-title-row,
html[data-text-scale]:not([data-text-scale="1"]) .inventory-list-grid .group-action{
  row-gap:5px;
}
html[data-text-scale]:not([data-text-scale="1"]) .inventory-list-grid .group-action button{
  min-height:31px!important;
  white-space:normal!important;
}

/* Sets: títulos, peças e ações podem refluír nos níveis 110–130%. */
html[data-text-scale]:not([data-text-scale="1"]) .set-collection-card{
  min-width:0;
  height:auto!important;
}
html[data-text-scale]:not([data-text-scale="1"]) .set-card-head{
  flex-wrap:wrap;
}
html[data-text-scale]:not([data-text-scale="1"]) .set-card-head h3,
html[data-text-scale]:not([data-text-scale="1"]) .set-farm-source p,
html[data-text-scale]:not([data-text-scale="1"]) .set-bonus-copy strong{
  overflow-wrap:anywhere;
}
html[data-text-scale]:not([data-text-scale="1"]) .set-piece-row{
  grid-template-columns:repeat(3,minmax(90px,1fr));
}
html[data-text-scale]:not([data-text-scale="1"]) .set-piece{
  white-space:normal!important;
  overflow-wrap:anywhere;
}
html[data-text-scale]:not([data-text-scale="1"]) .set-card-actions{
  flex-wrap:wrap;
}
html[data-text-scale]:not([data-text-scale="1"]) .set-card-actions button{
  min-width:120px;
  min-height:34px;
  white-space:normal!important;
}

/* Forge compartilha os mesmos princípios de quebra e ações legíveis. */
html[data-text-scale]:not([data-text-scale="1"]) .forge-list-item{
  grid-template-columns:minmax(0,1fr) auto;
  height:auto!important;
}
html[data-text-scale]:not([data-text-scale="1"]) .forge-list-item .item-name,
html[data-text-scale]:not([data-text-scale="1"]) .forge-target-name{
  white-space:normal!important;
  overflow-wrap:anywhere;
}

/* Em larguras estreitas, não insistir em três colunas de Sets quando a fonte foi ampliada. */
@media(max-width:1380px){
  html[data-text-scale]:not([data-text-scale="1"]) .sets-grid{grid-template-columns:repeat(2,minmax(260px,1fr))!important}
}
@media(max-width:820px){
  html[data-text-scale]:not([data-text-scale="1"]) .sets-grid{grid-template-columns:1fr!important}
  html[data-text-scale]:not([data-text-scale="1"]) .set-piece-row{grid-template-columns:1fr!important}
}

/* =====================================================
   v0.58 — STABILITY / AUTO LOOT / PROFILE LOCK
   ===================================================== */
.loot-filter-simple{display:grid;gap:12px}
.loot-master-row,.loot-rule-card,.loot-safety-grid>label,.loot-high-quality-body,.inventory-overflow-notice{border:1px solid rgba(123,149,184,.22);background:rgba(11,17,27,.46);border-radius:12px}
.loot-master-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px}
.loot-master-row>div{display:grid;gap:4px;min-width:0}.loot-master-row strong{letter-spacing:.08em}.loot-master-row small{opacity:.72;line-height:1.45}
.loot-master-row select{min-width:132px;font-weight:900}
.loot-rule-card{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:13px 14px}
.loot-rule-icon{font-size:calc(22px * var(--text-scale,1));line-height:1}.loot-rule-card>div:last-child{display:grid;gap:5px}.loot-rule-card span{opacity:.78;line-height:1.45}
.loot-safety-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.loot-safety-grid>label{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;min-width:0}.loot-safety-grid>label span{display:grid;gap:3px}.loot-safety-grid small{opacity:.7;line-height:1.35}.loot-safety-grid .keep-rule-select{grid-column:1/-1;align-items:center;justify-content:space-between}.loot-safety-grid .keep-rule-select>span{font-weight:900;letter-spacing:.08em}.loot-safety-grid input[type="checkbox"]{flex:0 0 auto;margin-top:2px}
.loot-high-quality-details{border:1px solid rgba(211,165,61,.28);border-radius:12px;overflow:hidden;background:rgba(39,30,12,.16)}.loot-high-quality-details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;user-select:none}.loot-high-quality-details>summary>div{display:grid;gap:3px}.loot-high-quality-details>summary small{opacity:.7;line-height:1.35}.loot-high-quality-details>summary>span{font-weight:900;letter-spacing:.08em;color:#e6bd5b}.loot-high-quality-body{margin:0 10px 10px;padding:12px;display:grid;gap:10px}.loot-danger-toggle{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid rgba(225,120,120,.22);border-radius:10px;background:rgba(70,17,17,.14)}.loot-danger-toggle span{display:grid;gap:3px}.loot-danger-toggle small{opacity:.72;line-height:1.35}.loot-high-quality-body>.keep-rule-select{display:flex;align-items:center;justify-content:space-between;gap:10px}.loot-high-quality-body>.keep-rule-select>span,.loot-bonus-filter>span{font-weight:900;letter-spacing:.06em;opacity:.86}.loot-bonus-filter{display:grid;gap:8px}.loot-bonus-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.loot-bonus-checks label{display:flex;align-items:center;gap:7px;padding:8px 9px;border:1px solid rgba(123,149,184,.18);border-radius:9px;background:rgba(8,13,21,.36)}
.inventory-overflow-notice{margin-bottom:10px;padding:12px 14px;border-color:rgba(229,169,56,.5);background:rgba(92,54,6,.24);color:#f3d487;line-height:1.45}.inventory-overflow-notice strong{color:#ffe4a3}.inventory-overflow-notice.hidden{display:none!important}
.profile-switch-note{display:block;margin-top:7px;color:#e9bf64;font-weight:800;line-height:1.3}.profile-switch-note.hidden{display:none!important}.profile-card button[data-profile-class]:disabled{cursor:not-allowed;opacity:.58;filter:saturate(.65)}
@media(max-width:1100px){.loot-safety-grid,.loot-bonus-checks{grid-template-columns:1fr}.loot-safety-grid .keep-rule-select{grid-column:auto}}


/* =====================================================
   v0.59 — PATCH DE UX / PROFILE SWITCH / AUTO RECYCLE
   ===================================================== */
/* Seleção de personagem: o atual sempre serve como saída segura; locks antigos da v0.58 não prendem a tela. */
.profile-head-actions .modal-close-button{position:relative;z-index:20;display:grid!important;place-items:center;flex:0 0 38px!important;width:38px!important;height:38px!important;min-width:38px!important}
.profile-card button[data-profile-class]:not(:disabled){cursor:pointer}
.profile-card button[data-profile-class][disabled]{pointer-events:none}

/* Auto Reciclar no mesmo acabamento dos demais painéis do inventário. */
.inventory-page-layout .loot-filter-card{border-color:#3d4858!important;background:linear-gradient(145deg,#202735,#171c25)!important;box-shadow:0 10px 28px rgba(0,0,0,.16)}
.inventory-automation-summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto 18px!important;gap:9px!important;align-items:center!important;padding:0!important;color:inherit}
.inventory-automation-summary>div{display:grid;gap:3px}.inventory-automation-summary strong{color:#edf2f8!important}.inventory-automation-summary small{color:#8e9bad!important}
.loot-filter-simple{gap:9px!important;margin-top:12px}
.loot-master-row{padding:10px 11px!important;border-color:#384557!important;background:#151b24!important}
.loot-master-row>div{gap:2px!important}.loot-section-kicker{color:#8391a5;font-size:calc(7.5px * var(--text-scale,1));font-weight:900;letter-spacing:.09em}.loot-master-row strong{color:#e8edf5;letter-spacing:0!important}.loot-master-row small{color:#8f9daf;line-height:1.35!important}
.loot-master-row select,.loot-high-quality-body select{appearance:none;min-width:112px!important;padding:8px 28px 8px 10px!important;border:1px solid #46546a!important;border-radius:8px!important;background:#111720!important;color:#e9eef6!important;font-size:calc(9px * var(--text-scale,1))!important;font-weight:800!important;line-height:1.2!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)}
.loot-filter-explanation{padding:8px 10px!important;border:1px solid rgba(84,104,132,.24)!important;border-radius:9px!important;background:rgba(10,15,23,.42)!important}
.loot-filter-explanation strong{font-size:calc(8px * var(--text-scale,1))!important}.loot-filter-explanation span{font-size:calc(8.5px * var(--text-scale,1))!important;line-height:1.35!important}
.loot-high-quality-details{border-color:#4a5362!important;border-radius:10px!important;background:#141a23!important}
.loot-high-quality-details>summary{padding:10px 11px!important}.loot-high-quality-details>summary strong{color:#e5eaf2}.loot-high-quality-details>summary small{color:#8995a7}.loot-high-quality-details>summary>span{color:#d7b86a!important;font-size:calc(7.5px * var(--text-scale,1));padding:4px 6px;border:1px solid #5d4b27;border-radius:999px;background:#2a2315}
.loot-high-quality-body{margin:0!important;padding:9px 10px 10px!important;border:0!important;border-top:1px solid #303947!important;border-radius:0!important;background:#111720!important;gap:8px!important}
.loot-danger-toggle{padding:8px 9px!important;border-color:#3b485a!important;background:#171e28!important}.loot-danger-toggle strong{color:#e9eef6}.loot-danger-toggle small{color:#8d99aa}
.loot-high-quality-body>.keep-rule-select{padding:2px 0}.loot-high-quality-body>.keep-rule-select>span,.loot-bonus-filter>span{color:#95a2b5;font-size:calc(7.5px * var(--text-scale,1))!important}
.loot-bonus-checks{gap:5px!important}.loot-bonus-checks label{padding:6px 7px!important;border-color:#303c4d!important;border-radius:7px!important;background:#151c26!important;color:#bbc5d2;font-size:calc(8px * var(--text-scale,1))!important}.loot-bonus-checks input{accent-color:#d2a94d}
.loot-bonus-empty-note{display:block;color:#7f8b9d;font-size:calc(7.5px * var(--text-scale,1));line-height:1.35}
.loot-apply-now-button{width:100%;min-height:34px;padding:8px 10px;border:1px solid #6c592d;border-radius:8px;background:linear-gradient(180deg,#4a3a1c,#2f2819);color:#f2d78d;font-size:calc(8px * var(--text-scale,1));font-weight:900;letter-spacing:.05em}.loot-apply-now-button:hover{border-color:#9b7a36;background:linear-gradient(180deg,#5a4722,#39301c)}
.loot-preview-panel.compact{padding:8px 10px!important;border-color:#344154!important;border-radius:9px!important;background:#121821!important}.loot-preview-panel.compact p{margin:5px 0 0!important;line-height:1.35!important}.loot-preview-panel.compact button{padding:5px 7px!important;font-size:calc(7px * var(--text-scale,1))!important}
.inventory-page-layout .loot-filter-help{margin:0!important;padding:7px 9px!important;border:1px solid rgba(255,255,255,.045)!important;background:rgba(255,255,255,.018)!important}

/* Área expandida: mantém os controles, mas remove a grande faixa vazia do comparador. */
.area-collapsible-card .battle-area-panel-body{gap:7px 9px!important;padding:0 10px 10px!important}
.area-collapsible-card .stage-route-controls{margin-top:0!important;padding-top:6px!important}
/* v0.92.1: essa linha vive dentro do bloco ÁREA ATUAL, capado em min(46%,420px) pela
   arena — minmax(180px,1fr) minmax(360px,auto) exigia >=548px e nunca cabia, forçando
   rolagem lateral para ver as áreas favoritas. Empilhado, como já era abaixo de 980px. */
.area-collapsible-card .area-farm-row{grid-template-columns:1fr!important;gap:8px!important;padding-top:6px!important}
.area-collapsible-card .favorite-area-list{align-self:center!important;min-height:34px!important;padding:0!important}
.area-collapsible-card .area-farm-intel{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;column-gap:8px!important;row-gap:1px!important;align-items:center!important;min-width:0!important;padding:6px 8px!important}
.area-collapsible-card .area-farm-intel>span{grid-row:1/3!important;font-size:calc(8px * var(--text-scale,1))!important}.area-collapsible-card .area-farm-intel strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left!important;font-size:calc(9px * var(--text-scale,1))!important}.area-collapsible-card .area-farm-intel small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left!important;font-size:calc(8px * var(--text-scale,1))!important}
@media(max-width:980px){.area-collapsible-card .area-farm-row{grid-template-columns:1fr!important}.area-collapsible-card .area-farm-intel{width:100%}}
@media(max-width:1120px){.loot-master-row{align-items:flex-start!important;flex-direction:column!important}.loot-master-row select{width:100%!important}}

.profile-modal-card .modal-title-row>div:first-child{min-width:0}.profile-head-actions{flex:0 0 auto!important}


/* v0.61 — combate: remove identidade duplicada do card central; dados completos ficam no painel esquerdo. */
.player-combat-card .fighter-heading{min-height:58px!important;align-items:center!important;margin-bottom:4px!important}
.player-combat-card .combat-identity-compact{flex:0 0 auto!important;padding-right:0!important}
.player-combat-card .combat-identity-compact .fighter-label{margin:0!important}
.golden-dragon-event-banner #goldenDragonFightButton.leave-encounter{background:#34251c!important;border-color:#b46a3b!important;color:#ffd5b4!important}

/* v0.66 — replaceable visual assets */
.skill-compact-image{display:block;width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}
.skill-upgrade-image{display:block;width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 3px 7px rgba(0,0,0,.45))}
.dark-jewel-icon,.inline-dark-jewel-icon{display:inline-block;width:18px;height:18px;object-fit:contain;vertical-align:middle}.pack-dark-jewel-icon{display:block;width:58px;height:58px;object-fit:contain}
.token-wallet span img,.token-economy-strip strong img,.market-create-card h2 img{margin-right:5px}

/* v0.68 — utilitários DEV */
.dev-inline-divider{height:1px;margin:10px 0;background:linear-gradient(90deg,transparent,#455063,transparent)}


/* =====================================================
   v0.74 — COMBAT FX SLOTS CENTRALIZADOS + PET
   ===================================================== */
.combat-fx-slot{position:absolute;z-index:22;width:132px;height:58px;transform:translate(-50%,-50%);pointer-events:none;overflow:visible;font-weight:900;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px}
#enemyDamageNormalFxSlot{left:58%;top:55%;font-size:calc(25px * var(--text-scale,1))}
#enemySkillDamageFxSlot{left:42%;top:55%;font-size:calc(24px * var(--text-scale,1))}
#enemyDotDamageFxSlot{left:58%;top:42%;font-size:calc(22px * var(--text-scale,1))}
#enemyReflectDamageFxSlot{left:42%;top:42%;font-size:calc(22px * var(--text-scale,1))}
#enemyPetDamageFxSlot{left:24%;top:49%;font-size:calc(22px * var(--text-scale,1))}
#enemyDamageCriticalFxSlot{left:50%;top:34%;font-size:calc(34px * var(--text-scale,1))}
#enemyDamageExcellentFxSlot{left:50%;top:20%;font-size:calc(37px * var(--text-scale,1))}
#playerDamageFxSlot{left:50%;top:27%;font-size:calc(25px * var(--text-scale,1))}
#playerHealFxSlot{left:72%;top:39%;font-size:calc(23px * var(--text-scale,1))}
#playerPetHealFxSlot{left:28%;top:39%;font-size:calc(22px * var(--text-scale,1))}
#playerLifestealFxSlot{left:72%;top:53%;font-size:calc(23px * var(--text-scale,1))}
#playerRegenFxSlot{left:28%;top:53%;font-size:calc(22px * var(--text-scale,1))}
.combat-fx-slot>.damage-number{position:relative!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;margin:0!important;font-size:inherit!important;line-height:1!important;text-align:center!important;white-space:nowrap!important;animation:combatFxSlotFloat .95s ease-out forwards!important}
.combat-fx-slot>.damage-number.critical{animation:combatFxSlotCritical 1s ease-out forwards!important}
.combat-fx-slot>.damage-number.excellent{animation:combatFxSlotExcellent 1.12s ease-out forwards!important}
.combat-fx-slot>.damage-number.player-heal{position:relative!important;top:auto!important;left:auto!important;transform:none!important;margin:0!important;font-size:inherit!important;animation:combatFxSlotHeal 1.08s ease-out forwards!important}
.combat-fx-slot>.damage-number strong,.combat-fx-slot>.damage-number small{display:block;white-space:nowrap}
.combat-fx-slot>.damage-number small{margin-top:3px;font-size:clamp(6px,.36em,9px)!important;line-height:1!important}
.player-combat-card .combat-fx-slot-lifesteal>.damage-number.player-heal{color:#75e6a2!important;text-shadow:0 0 10px rgba(233,78,119,.35),0 2px 9px rgba(0,0,0,.9)!important}
.player-combat-card .combat-fx-slot-regeneration>.damage-number.player-heal{color:#7bd6ff!important;text-shadow:0 0 10px rgba(71,174,255,.38),0 2px 9px rgba(0,0,0,.9)!important}
.player-combat-card .combat-fx-slot-pet-heal>.damage-number.player-heal{color:#89f0b2!important;text-shadow:0 0 10px rgba(109,233,154,.35),0 2px 9px rgba(0,0,0,.9)!important}
.enemy-combat-card .combat-fx-slot-enemy-pet>.damage-number{color:#ffd47c!important;text-shadow:0 0 9px rgba(255,193,79,.35),0 2px 9px rgba(0,0,0,.9)!important}
.player-combat-card .combat-fx-slot-lifesteal>.damage-number.player-heal small{color:#ff9db9!important}
.player-combat-card .combat-fx-slot-regeneration>.damage-number.player-heal small{color:#a8e7ff!important}
.player-combat-card .combat-fx-slot-pet-heal>.damage-number.player-heal small{color:#bdf6d1!important}
@keyframes combatFxSlotFloat{0%{opacity:0;translate:0 5px}18%{opacity:1;translate:0 0}72%{opacity:1;translate:0 -4px}100%{opacity:0;translate:0 -8px}}
@keyframes combatFxSlotCritical{0%{opacity:0;translate:0 5px}18%{opacity:1;translate:0 0}72%{opacity:1;translate:0 -4px}100%{opacity:0;translate:0 -8px}}
@keyframes combatFxSlotExcellent{0%{opacity:0;translate:0 5px}18%{opacity:1;translate:0 0}72%{opacity:1;translate:0 -5px}100%{opacity:0;translate:0 -9px}}
@keyframes combatFxSlotHeal{0%{opacity:0;translate:0 4px}18%{opacity:1;translate:0 0}74%{opacity:1;translate:0 -4px}100%{opacity:0;translate:0 -7px}}

/* v0.77 — origem visual + slots independentes dos danos simultâneos */
.enemy-combat-card .combat-fx-slot>.damage-number.skill-damage{color:#9ebcff!important;text-shadow:0 0 9px rgba(105,146,255,.38),0 2px 9px rgba(0,0,0,.9)!important}
.enemy-combat-card .combat-fx-slot>.damage-number.dot-damage{color:#d99cff!important;text-shadow:0 0 9px rgba(190,104,255,.34),0 2px 9px rgba(0,0,0,.9)!important}
.enemy-combat-card .combat-fx-slot>.damage-number.reflect-damage{color:#8fe4ff!important;text-shadow:0 0 9px rgba(90,210,255,.34),0 2px 9px rgba(0,0,0,.9)!important}

/* v0.84 — modal do Pet protege a leitura contra FX transitórios. */
body.pet-popover-active .damage-number{visibility:hidden!important}

/* v0.85 — slots do Editor são a única autoridade espacial dos FX. */
.enemy-combat-card .combat-fx-slot > .damage-number,
.player-combat-card .combat-fx-slot > .damage-number{position:relative!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;margin:0!important}
.enemy-combat-card .combat-fx-slot > .damage-number.critical,
.enemy-combat-card .combat-fx-slot > .damage-number.excellent{top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important}
@keyframes combatFxSlotFloat{0%{opacity:0;translate:0 0}18%{opacity:1;translate:0 0}72%{opacity:1;translate:0 -4px}100%{opacity:0;translate:0 -8px}}
@keyframes combatFxSlotCritical{0%{opacity:0;translate:0 0}18%{opacity:1;translate:0 0}72%{opacity:1;translate:0 -4px}100%{opacity:0;translate:0 -8px}}
@keyframes combatFxSlotExcellent{0%{opacity:0;translate:0 0}18%{opacity:1;translate:0 0}72%{opacity:1;translate:0 -5px}100%{opacity:0;translate:0 -9px}}

/* v0.86 — combate, recursos e feedback de progressão */
.enemy-hp-track{position:relative!important;overflow:hidden!important;isolation:isolate;background:#2a1f24!important;background-image:none!important;border:1px solid rgba(255,120,120,.14)!important;box-shadow:inset 0 1px 4px rgba(0,0,0,.48)}
.enemy-hp-track .monster-hp-fill,.enemy-hp-track .monster-hp-delayed{position:absolute;left:0;top:0;bottom:0;height:100%;width:100%}
.monster-hp-delayed{z-index:1;background:linear-gradient(90deg,#9a613d,#bb7a4c);transition:width .56s cubic-bezier(.22,.7,.2,1) .16s;box-shadow:inset -8px 0 12px rgba(255,174,85,.08)}
.enemy-hp-track .monster-hp-fill{z-index:2;background:linear-gradient(90deg,#b83f4c,#e05a61);transition:width .15s ease-out;box-shadow:inset -7px 0 12px rgba(255,205,205,.10)}
.enemy-hp-track.hp-sync-reset .monster-hp-fill,.enemy-hp-track.hp-sync-reset .monster-hp-delayed{transition:none!important}

.player-hp-track{position:relative!important;overflow:hidden!important;isolation:isolate;background:#24332d!important;background-image:none!important;border:1px solid rgba(95,224,151,.12)!important}
.player-hp-track .player-hp-fill,.player-hp-track .player-hp-delayed{position:absolute;left:0;top:0;bottom:0;height:100%;width:100%}
.player-hp-delayed{z-index:1;background:linear-gradient(90deg,#9b7b43,#c29a50);transition:width .34s cubic-bezier(.22,.7,.2,1);box-shadow:inset -8px 0 12px rgba(255,211,115,.09)}
.player-hp-track .player-hp-fill{z-index:2;background:linear-gradient(90deg,#3da86d,#59c987);transition:width .15s ease-out;box-shadow:inset -7px 0 12px rgba(210,255,226,.10)}
.player-hp-track.hp-sync-reset .player-hp-fill,.player-hp-track.hp-sync-reset .player-hp-delayed{transition:none!important}

.combat-fx-slot-progress{left:50%!important;top:25%!important;width:190px!important;height:96px!important;display:block!important;transform:translate(-50%,-50%)!important;z-index:24!important}
.progress-reward-burst{position:absolute;left:50%;top:58%;display:flex;gap:8px;align-items:center;justify-content:center;transform:translateX(-50%);white-space:nowrap;font-size:calc(11px * var(--text-scale, 1));font-weight:900;letter-spacing:.02em;text-shadow:0 2px 8px rgba(0,0,0,.9);animation:progressRewardFloat 1.45s ease-out forwards}
.progress-reward-burst .progress-xp{color:#9ed7ff}.progress-reward-burst .progress-gold{color:#ffd777}
@keyframes progressRewardFloat{0%{opacity:0;transform:translate(-50%,9px) scale(.92)}18%{opacity:1;transform:translate(-50%,0) scale(1)}72%{opacity:1}100%{opacity:0;transform:translate(-50%,-28px) scale(.98)}}
.level-up-toast{position:absolute!important;z-index:2!important;top:0!important;left:50%!important;min-width:154px!important;max-width:190px!important;padding:6px 10px!important;gap:1px!important;border-radius:9px!important;transform:translate(-50%,-5px)!important;background:linear-gradient(180deg,rgba(37,31,18,.94),rgba(20,19,16,.92))!important;box-shadow:0 8px 20px rgba(0,0,0,.30),0 0 14px rgba(242,196,77,.10)!important}
.level-up-toast.show{opacity:1!important;transform:translate(-50%,0)!important}.level-up-toast>span{font-size:calc(8px * var(--text-scale, 1))!important}.level-up-toast>strong{font-size:calc(14px * var(--text-scale, 1))!important}.level-up-toast>small{font-size:calc(8px * var(--text-scale, 1))!important;line-height:1.2}

.resource-groups-v086{display:grid;gap:10px}
.resource-group{display:grid;gap:6px}.resource-group-title{font-size:calc(8px * var(--text-scale, 1));font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#738099;padding:0 2px}
.resource-grid-v086{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.resource-item-v086{min-width:0;min-height:46px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 8px;border:1px solid rgba(72,82,102,.62);border-radius:9px;background:linear-gradient(180deg,rgba(27,31,41,.94),rgba(21,24,32,.94))}
.resource-item-v086 img{width:28px;height:30px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}.resource-item-v086 .mini-relic-material{width:29px;height:29px}
.resource-item-v086 span{min-width:0;color:#aeb7c7;font-size:calc(8.8px * var(--text-scale, 1));line-height:1.15}.resource-item-v086 strong{color:#f2f5fa;font-size:calc(13px * var(--text-scale, 1));font-variant-numeric:tabular-nums}
.resource-grid-utility .resource-item-v086{grid-template-columns:minmax(0,1fr) auto;min-height:38px}.resource-grid-utility .resource-item-v086 span{color:#8792a5}.creation-resource{border-color:rgba(234,93,183,.28)!important}.resource-group-specials .resource-item-v086{border-color:rgba(78,145,173,.30)}

/* polimento incremental da HUD: mantém a estrutura/seletores do Editor */
.battle-stage-card{border-color:rgba(69,79,98,.72)!important;background:linear-gradient(180deg,rgba(18,21,28,.97),rgba(13,16,22,.98))!important;box-shadow:0 18px 44px rgba(0,0,0,.18)!important}
.player-combat-card,.enemy-combat-card{border-color:rgba(67,77,95,.72)!important;background:linear-gradient(180deg,rgba(27,31,40,.92),rgba(20,23,30,.96))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 10px 25px rgba(0,0,0,.12)!important}
.player-combat-card .progress-label,.enemy-combat-card .progress-label{color:#c6ccd7!important;font-weight:700}.player-combat-card .hp-bar,.player-combat-card .mana-bar,.enemy-combat-card .hp-bar{box-shadow:inset 0 1px 5px rgba(0,0,0,.42)}
.player-stat-grid{gap:7px!important;border-top-color:rgba(73,83,102,.48)!important}.player-stat-grid span{padding:6px 8px!important;background:rgba(20,23,30,.58)!important;border:1px solid rgba(67,77,95,.42)!important}.combat-secondary-stats{gap:6px!important}.combat-secondary-stats span{background:rgba(18,21,28,.38)!important;border-color:rgba(64,74,91,.35)!important}.mini-stats{border-top-color:rgba(73,83,102,.48)!important}

@media(max-width:760px){.resource-grid-v086{grid-template-columns:1fr}.combat-fx-slot-progress{left:50%!important;top:22%!important}.progress-reward-burst{gap:5px;font-size:calc(9px * var(--text-scale, 1))}.level-up-toast{max-width:160px!important}}

/* v0.87 — bugfix: FX de progresso pode sair do card do jogador sem ficar atrás do inimigo. */
.player-combat-card.progress-fx-active{z-index:80!important;overflow:visible!important}

/* v0.88 — Death FX: visual snapshot only; combat state advances independently. */
.combat-death-ghost{position:absolute!important;z-index:72;display:grid;place-items:center;pointer-events:none;overflow:visible;transform-origin:50% 50%;will-change:transform,opacity,filter;animation-duration:var(--death-fx-duration,650ms);animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.16,.8,.24,1)}
.combat-death-ghost>*{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;transform:none!important}
.combat-death-ghost.enemy{animation-name:enemyDeathFxV2;transform-origin:50% 50%}.combat-death-ghost.enemy.boss{z-index:74;animation-name:bossDeathFxV2;transform-origin:50% 50%}.combat-death-ghost.player{z-index:76;animation-name:playerDeathFx}
/* v0.100: morte de inimigo reescrita em 3 estágios (impacto -> desintegração -> dissolução em cinzas).
   NUNCA usa translate: o clone (.combat-death-ghost) só recebe impacto (leve
   overshoot de escala) e depois encolhe/dissolve em direção ao PRÓPRIO centro
   (transform-origin:50% 50%), mantendo alinhamento perfeito no card. */
@keyframes enemyDeathFxV2{0%{opacity:1;transform:scale(1);filter:brightness(1) saturate(1)}14%{opacity:1;transform:scale(1.06);filter:brightness(2.2) saturate(1.4) drop-shadow(0 0 10px rgba(255,140,90,.65))}35%{opacity:.95;transform:scale(.96);filter:brightness(1.15) saturate(.85) contrast(1.1)}70%{opacity:.6;transform:scale(.82);filter:brightness(.45) saturate(.4) blur(1px)}100%{opacity:0;transform:scale(.62);filter:brightness(.15) saturate(0) blur(3px)}}
@keyframes bossDeathFxV2{0%{opacity:1;transform:scale(1);filter:brightness(1) saturate(1)}16%{opacity:1;transform:scale(1.08);filter:brightness(2.6) saturate(1.6) drop-shadow(0 0 16px rgba(255,200,80,.8))}40%{opacity:.95;transform:scale(.98);filter:brightness(1.25) saturate(.9) contrast(1.2)}75%{opacity:.55;transform:scale(.84);filter:brightness(.5) saturate(.3) blur(1.5px)}100%{opacity:0;transform:scale(.68);filter:brightness(.1) saturate(0) blur(4px)}}
@keyframes playerDeathFx{0%{opacity:1;transform:translate(0,0) rotate(0deg) scale(1);filter:brightness(1)}18%{opacity:1;transform:translate(-4px,-2px) rotate(-2deg) scale(1.02);filter:brightness(1.55)}62%{opacity:.92;transform:translate(-8px,8px) rotate(-7deg) scale(.98);filter:brightness(.9)}100%{opacity:0;transform:translate(-10px,20px) rotate(-11deg) scale(.92);filter:brightness(.55) blur(1px)}}
.combat-fx-off .combat-death-ghost,.graphics-lite .combat-death-ghost{display:none!important}
.fighter-avatar.death-source-hidden{visibility:hidden!important}

/* v0.89 — cascata de dano, Level Up separado e HP visual de abate. */
.combat-fx-slot-level-up{left:50%!important;top:8%!important;width:190px!important;height:88px!important;display:block!important;transform:translate(-50%,-50%)!important;z-index:25!important;overflow:visible!important}
.combat-fx-slot-level-up .level-up-toast{top:50%!important;left:50%!important}
.enemy-combat-card .combat-fx-slot>.damage-number{position:absolute!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;margin:0!important;transform:translate(-50%,-50%)!important;translate:0 7px;animation:combatFxCascade .82s cubic-bezier(.16,.72,.28,1) forwards!important;will-change:translate,opacity,filter}
.enemy-combat-card .combat-fx-slot>.damage-number.critical{animation-name:combatFxCascadeCritical!important}.enemy-combat-card .combat-fx-slot>.damage-number.excellent{animation-name:combatFxCascadeExcellent!important}
@keyframes combatFxCascade{0%{opacity:0;translate:var(--fx-shift-x,0) 8px;filter:brightness(1.25)}14%{opacity:1;translate:var(--fx-shift-x,0) 0;filter:brightness(1)}72%{opacity:1;translate:var(--fx-shift-x,0) -39px}100%{opacity:0;translate:var(--fx-shift-x,0) -58px;filter:brightness(.9)}}
@keyframes combatFxCascadeCritical{0%{opacity:0;translate:var(--fx-shift-x,0) 8px;scale:.9}14%{opacity:1;translate:var(--fx-shift-x,0) 0;scale:1.08}72%{opacity:1;translate:var(--fx-shift-x,0) -42px;scale:1}100%{opacity:0;translate:var(--fx-shift-x,0) -62px;scale:.98}}
@keyframes combatFxCascadeExcellent{0%{opacity:0;translate:var(--fx-shift-x,0) 8px;scale:.9}14%{opacity:1;translate:var(--fx-shift-x,0) 0;scale:1.12}72%{opacity:1;translate:var(--fx-shift-x,0) -46px;scale:1.03}100%{opacity:0;translate:var(--fx-shift-x,0) -68px;scale:1}}
.enemy-hp-hitkill-snapshot{position:absolute;inset:0;z-index:6;overflow:hidden;border-radius:inherit;background:#2a1f24;pointer-events:none}.enemy-hp-hitkill-snapshot>i,.enemy-hp-hitkill-snapshot>b{position:absolute;left:0;top:0;bottom:0;display:block;height:100%}.enemy-hp-hitkill-delayed{z-index:1;background:linear-gradient(90deg,#9a613d,#bb7a4c);transition:width .28s cubic-bezier(.2,.72,.25,1) .045s}.enemy-hp-hitkill-main{z-index:2;background:linear-gradient(90deg,#b83f4c,#e05a61);transition:width .17s ease-out}.enemy-hp-hitkill-snapshot.drop>i,.enemy-hp-hitkill-snapshot.drop>b{width:0!important}
.golden-dragon-skills{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;margin:6px 0 0!important;padding:6px!important}.golden-dragon-skills>div{min-width:0;padding:3px 4px;border:1px solid rgba(208,151,37,.12);border-radius:5px}.golden-dragon-skills span,.golden-dragon-skills strong{font-size:calc(7px * var(--text-scale,1))!important}.golden-dragon-skills small{font-size:calc(6px * var(--text-scale,1))!important;line-height:1.2!important}
@media(max-width:760px){.combat-fx-slot-level-up{left:50%!important;top:7%!important}.golden-dragon-skills{grid-template-columns:1fr!important}}

/* REFINO NO SET — o brilho do aprimoramento +7..+15 DENTRO da arte (substitui o glow
   drop-shadow da v0.101, que desenhava uma auréola FORA da silhueta e foi reprovado pelo
   autor). O efeito inteiro é um filtro SVG montado por src/visual/refino.js, que escreve
   `--refino-f` no <img>; aqui só se liga a variável. Nada muda no DOM, então o que o
   Editor V3 move/escala/espelha leva o efeito junto.
   Nunca em asas (item.type==="wing" é excluído na origem) nem no sprite base do personagem
   (só entra quando o src ativo já é o override de set completo). Regra propositalmente no
   fim do arquivo: single-class specificity, então vence o `filter` de base definido antes
   (.item-art/.character-sprite) — e por isso a sombra de base é repetida aqui.
   `.item-quebrado` usa !important e continua vencendo: item quebrado fica cinza, sem brilho. */
.refino{filter:var(--refino-f,brightness(1)) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
/* ÍCONE PARADO = CSS PURO, sem filtro SVG. Medido: com sets animados na tela, o Chrome
   refiltra a cada passo todo filtro SVG que cai nos mesmos blocos de tela — 40 ícones
   derrubavam 59 → 33 fps. Um tingimento em CSS a placa de vídeo faz de graça; o efeito
   inteiro (com a água) entra sob o mouse. */
.refino.refino-parado.refino-f1{filter:sepia(.28) saturate(1.45) brightness(1.1) contrast(1.06) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
.refino.refino-parado.refino-f2{filter:sepia(.4) saturate(1.7) brightness(1.16) contrast(1.1) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
.refino.refino-parado.refino-f3{filter:sepia(.48) saturate(1.85) brightness(1.2) contrast(1.12) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
.refino.refino-parado.refino-f4{filter:sepia(.5) saturate(2.2) hue-rotate(-28deg) brightness(1.12) contrast(1.12) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
.refino.refino-parado:hover{filter:var(--refino-fa,brightness(1)) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
/* ===== TELA DE PERFIL (Fase 39) =====
   Reusa as classes de painel e de lista que ja existem; so o cabecalho e novo. */
.perfil-cabecalho{margin-bottom:14px}
/* Fase 111: as abas do armário de cosméticos. */
.perfil-abas{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.perfil-abas button{padding:8px 14px;border:1px solid #343947;border-radius:8px;background:rgba(15,23,42,.55);color:#cfd6e4;font-weight:700;letter-spacing:.6px;cursor:pointer}
.perfil-abas button.active{border-color:rgba(167,139,250,.8);background:rgba(76,29,149,.35);color:#f5f0ff}
.perfil-identidade{display:flex;align-items:center;gap:16px}
.perfil-retrato{width:96px!important;height:96px!important;flex:0 0 auto;
  font-size:calc(44px * var(--text-scale,1))}
.perfil-identidade-copy{min-width:0}
.perfil-overline{display:block;color:#8c95a8;letter-spacing:1.6px;
  font-size:calc(9px * var(--text-scale,1))}
.perfil-identidade-copy h2{margin:2px 0 4px}
.perfil-identidade-copy p{margin:0;color:#a6aec0;line-height:1.45;
  font-size:calc(11px * var(--text-scale,1))}
.perfil-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.perfil-chips span{padding:5px 10px;border:1px solid #343947;border-radius:6px;
  background:#20242f;color:#8c95a8;font-size:calc(9.5px * var(--text-scale,1));
  letter-spacing:.6px}
.perfil-chips strong{color:#e8dcc6;margin-left:5px}
.perfil-nota{margin:12px 0 0;color:#8c95a8;line-height:1.55;
  font-size:calc(10px * var(--text-scale,1))}

/* O CARMESIM da faixa +12..+15 (Fase 39) continua existindo: agora é a paleta da faixa 4
   dentro do filtro de src/visual/refino.js ("ouro é muito refinado, carmesim é passou do
   teto antigo" — legível de relance no inventário). Sem movimento pedido, o módulo monta o
   filtro sem as animações. */

/* Fase 5 — confirmação reforçada de exclusão de personagem */
.profile-delete-confirm-card{grid-column:1/-1;max-width:520px;margin:0 auto}
.delete-confirm-copy{text-align:left}
.delete-confirm-list{margin:8px 0;padding-left:20px;color:#b7c0d1;font-size:calc(11px * var(--text-scale, 1));line-height:1.7}
.delete-premium-warning{margin:12px 0;padding:10px 12px;border-radius:8px;background:#3a2a12;border:1px solid #a97a2a;color:#f0cf8f}
.delete-premium-warning strong{display:block;margin-bottom:4px;color:#ffcf6b}
.profile-delete-permanent-button{background:#7a2323!important;color:#ffd7d7!important;font-weight:900}
.profile-delete-permanent-button:disabled{background:#3a2a2a!important;color:#8a7373!important;cursor:not-allowed}

/* ==========================================================================
   FASE 6 — PAINEL DEV: ECONOMIA GLOBAL
   Uma linha por multiplicador. O valor em destaque muda de cor quando sai do
   padrao, para nunca restar duvida se a economia esta oficial ou alterada.
   ========================================================================== */
.dev-economy-grid{display:grid;gap:5px;margin:8px 0}
.dev-economy-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}
.dev-economy-label{color:#9aa6ba;font-size:calc(9.5px * var(--text-scale,1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dev-economy-value{min-width:46px;text-align:right;color:#8fa3bd;font-size:calc(10px * var(--text-scale,1));font-weight:900;font-variant-numeric:tabular-nums}
.dev-economy-value.alterado{color:#ffd77a}
.dev-economy-buttons{display:flex;gap:3px}
.dev-economy-buttons button{padding:2px 7px;border-radius:6px;font-size:calc(9px * var(--text-scale,1));font-weight:800;min-width:0}
.dev-economy-buttons button.ativo{background:#2f6b4d;border-color:#4aa87a;color:#dcffee}
.dev-economy-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.dev-economy-actions button{flex:1 1 160px}
.dev-economy-projection{margin:8px 0 0;padding:8px;border:1px solid #2b3546;border-radius:8px;background:#0d1119;color:#a8b7cc;font-family:ui-monospace,Consolas,monospace;font-size:calc(9px * var(--text-scale,1));line-height:1.5;white-space:pre;overflow-x:auto}
.dev-economy-projection:empty{display:none}

/* PET V2 (Fase 10.5) — a barra da arena passou a ser HP, e ela precisa GRITAR
   quando o pet esta acabando: e o unico aviso de "meu pet vai morrer" que o
   jogador ve sem abrir painel. Derrotado, ela apaga e o selo vira o countdown. */
.pet-toggle-hp i{background:linear-gradient(90deg,#f87171,#fbbf24,#34d399)}
.pet-toggle-hp.is-defeated i{background:#4b5563}
.battle-pet-toggle.defeated{filter:grayscale(1) brightness(.72)}
.battle-pet-mini-bars .pet-hp i{background:linear-gradient(90deg,#f87171,#fbbf24,#34d399)}
.battle-pet-mini-bars .pet-hp.is-defeated i{background:#4b5563}
/* Cartao de derrota: informa e oferece o revive SEM bloquear o combate. */
.pet-defeated-card{display:grid;gap:6px;margin-top:9px;padding:10px;border:1px solid #7f3d3d;border-radius:9px;background:linear-gradient(135deg,rgba(120,40,40,.22),#1a1213)}
.pet-defeated-card strong{color:#ffb4b4!important;font-size:calc(10px * var(--text-scale, 1))!important;letter-spacing:.6px}
.pet-defeated-card span{color:#e3c2c2!important;font-size:calc(9px * var(--text-scale, 1))!important}
.pet-defeated-card button{padding:8px 10px;border:1px solid #b46a4a;border-radius:8px;background:#2a1a15;color:#ffd7b0;font-weight:900;font-size:calc(9px * var(--text-scale, 1));letter-spacing:.5px;cursor:pointer}
.pet-defeated-card button:disabled{opacity:.5;cursor:not-allowed}
.active-pet-auto-revive{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:12px;padding:11px 12px;border:1px solid #466455;border-radius:10px;background:linear-gradient(135deg,rgba(46,104,68,.19),#121a17)}
.active-pet-auto-revive strong{color:#8de0a8!important;font-size:calc(10px * var(--text-scale, 1))!important;letter-spacing:.6px}
.active-pet-auto-revive small{margin-top:4px;color:#91a59a!important;font-size:calc(9px * var(--text-scale, 1))!important;line-height:1.45!important}
.active-pet-auto-revive label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #527261;border-radius:8px;background:#17241c;cursor:pointer}
.active-pet-auto-revive input{width:18px;height:18px;accent-color:#5fc58b}
.active-pet-auto-revive label span{color:#bde7ca!important;font-size:calc(8px * var(--text-scale, 1))!important;font-weight:950!important;letter-spacing:.6px}
@media(max-width:760px){.active-pet-auto-revive{grid-template-columns:1fr}.active-pet-auto-revive label{justify-content:center}}

/* FASE 11B — RECORTE DIRECIONAL DO PERSONAGEM.
   O corpo do jogador continua sendo o mesmo <img> dentro de #playerCombatIcon:
   a arvore do DOM nao muda (ha contrato de estabilidade nela). O que muda e a
   JANELA: o container recorta e a imagem e ampliada/deslocada para mostrar uma
   celula da folha. Fora do Combat V2 nada disso se aplica e a pose estatica
   volta sozinha. */
.fighter-avatar.is-directional{position:relative!important}
.fighter-avatar.is-directional img.character-sprite{image-rendering:auto}
/* Overlay de equipamento do Combat V2: arma e asa sobre o personagem.
   Um asset por slot; a direção só muda a pose (posição, escala, rotação,
   espelho e camada). Nunca captura clique — é apresentação. */
.combat-equip-overlay{width:38%;height:38%;object-fit:contain;image-rendering:pixelated;
  transform-origin:50% 50%;will-change:transform}
.combat-equip-wing{width:62%;height:62%}
/* FASE 11C — seção "VISUAL 8 DIREÇÕES" do Editor. */
/* Nao atribuidos: apresentacao deliberadamente apagada (borda tracejada, cor
   fria) pra ler como "arquivo sobrando", nunca como uma entidade jogavel. */

/* ===== SWARM LAB (Fase 11E) =====
   Mesma linguagem visual do resto do Dev Menu (blocos escuros com titulo e
   subtitulo), para o Lab nao parecer uma ferramenta de outro projeto. */
.dev-lab-block{padding:14px 16px;border:1px solid #3a4557;border-radius:10px;background:linear-gradient(145deg,#171d27,#141319)}
.dev-lab-block>div:first-child strong{display:block;color:#8fd0ff;font-size:calc(10px * var(--text-scale,1));letter-spacing:.7px}
.dev-lab-block>div:first-child span{display:block;margin-top:5px;color:#95a3b8;font-size:calc(9px * var(--text-scale,1));line-height:1.5}
.dev-lab-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.dev-lab-row label{display:flex;gap:6px;align-items:center;color:#b8c6da;font-size:calc(9px * var(--text-scale,1))}
.dev-lab-check{cursor:pointer}
.dev-lab-status{margin-top:10px;padding:8px 10px;border-left:3px solid #4a7fb5;background:#12171f;color:#cfe0f5;font-size:calc(9px * var(--text-scale,1))}
.dev-lab-metricas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.dev-lab-metrica{display:grid;gap:3px;padding:8px 10px;border:1px solid #33465b;border-radius:8px;background:#12171f}
.dev-lab-metrica span{color:#8c98ad;font-size:calc(8px * var(--text-scale,1))}
.dev-lab-metrica b{color:#e8f1ff;font-size:calc(11px * var(--text-scale,1));font-variant-numeric:tabular-nums}
.dev-lab-vazio{padding:10px;color:#8c98ad;font-size:calc(9px * var(--text-scale,1))}

/* =====================================================================
   SALÃO DOS HERÓIS — PÓDIO (Fase 16f)
   ---------------------------------------------------------------------
   Antes: quatro cartões opacos lado a lado, cada um uma caixa fechada com
   borda, fundo e botão próprio. A arte de fundo virava papel de parede e o
   herói ficava do tamanho de um ícone dentro do cartão.
   Agora: os heróis ficam EM PÉ sobre o mesmo chão, dentro do cenário. O
   cartão continua existindo no DOM -- `#profileCards > .profile-card >
   .profile-character-visual > .profile-icon` é o esqueleto onde o Editor
   Visual ancora os overlays de asa, e há teste que conta esses nós -- mas
   ele deixa de ser uma caixa e vira só um espaço no pódio.
   ===================================================================== */
.profile-cards{align-items:end!important;gap:0!important}
.profile-card{
  min-height:0!important;height:100%!important;
  display:flex!important;flex-direction:column!important;justify-content:flex-end!important;
  padding:0 0 18px!important;overflow:visible!important;
  border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;
  transition:transform .18s ease,filter .18s ease}
/* Chão comum: a sombra elíptica ancora todos os heróis na MESMA linha. */
.profile-card::after{content:"";position:absolute;left:50%;bottom:150px;transform:translateX(-50%);
  width:132px;height:26px;top:auto!important;border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,0,0,.62),transparent 70%);filter:blur(3px);pointer-events:none}
.profile-character-visual{height:auto!important;min-height:250px;padding:0 6px 6px!important;
  border:0!important;background:none!important;justify-content:flex-end!important}
.profile-icon{width:172px!important;height:224px!important;margin:0!important;
  filter:drop-shadow(0 16px 20px rgba(0,0,0,.62));transform:none!important}
.profile-character-sprite{max-width:100%;max-height:100%;object-fit:contain}
/* Identidade flutua sobre o cenário, sem moldura. */
.profile-identity-zone{height:auto!important;padding:10px 8px 4px!important;text-align:center;
  border:0!important;background:none!important}
.profile-character-name{display:block;font-family:Georgia,"Times New Roman",serif;
  color:#f6ecdc;font-size:calc(19px * var(--text-scale, 1));letter-spacing:.5px;
  text-shadow:0 2px 4px #000,0 3px 16px rgba(0,0,0,.95)}
.profile-class-name{color:#d9c39a!important;font-size:calc(11px * var(--text-scale, 1))!important;
  font-weight:900;letter-spacing:1.4px;text-shadow:0 2px 4px #000,0 2px 12px rgba(0,0,0,.9)}
/* A descrição da classe sai de cena: no pódio ela competia com cinco heróis. */
.profile-character-copy{flex:0 0 auto!important;padding:0 10px!important;gap:7px}
.profile-character-copy>p{display:none!important}
.profile-status{grid-template-columns:auto auto!important;justify-content:center!important;
  gap:6px!important;margin:6px 0 9px!important}
.profile-status span{padding:4px 9px!important;border:1px solid rgba(168,146,110,.34)!important;
  border-radius:3px!important;background:rgba(8,10,16,.62)!important;backdrop-filter:blur(3px);
  color:#e0d6c6!important;font-size:calc(8.5px * var(--text-scale, 1))!important}
.profile-status b{color:#a4977f!important}
.profile-actions{grid-template-columns:1fr!important;gap:6px!important;margin:0!important;
  opacity:.34;transform:translateY(3px);transition:opacity .18s ease,transform .18s ease}
.profile-card:hover .profile-actions,.profile-card:focus-within .profile-actions{opacity:1;transform:none}
.profile-actions button{min-height:34px!important;border-radius:3px!important;
  background:rgba(14,13,18,.82)!important;border:1px solid rgba(168,146,110,.42)!important;
  color:#e8dcc6!important;letter-spacing:1.1px;backdrop-filter:blur(3px)}
.profile-actions button:hover{border-color:#d8b877!important;background:rgba(30,26,22,.9)!important}
.profile-card:hover{transform:translateY(-6px)!important;border:0!important;box-shadow:none!important;
  filter:drop-shadow(0 0 22px rgba(214,178,110,.22))}
/* SLOT VAZIO: só um brilho no chão. Sem cartão, sem cruz gigante. */
.profile-slot-empty{opacity:.62}
.profile-slot-empty::after{background:radial-gradient(ellipse,rgba(150,190,255,.30),transparent 70%)!important;
  filter:blur(5px)!important}
.profile-slot-empty .profile-icon{width:132px!important;height:180px!important;
  font-size:calc(38px * var(--text-scale, 1))!important;color:rgba(190,214,255,.5)!important;
  filter:drop-shadow(0 0 14px rgba(120,170,255,.35))!important}
.profile-slot-empty .profile-character-name,.profile-slot-empty .profile-status{display:none!important}
.profile-slot-empty:hover{opacity:1}
/* O catálogo de classes usa o mesmo pódio, mas a descrição da classe IMPORTA
   ali: é a informação que decide a escolha. */
.profile-class-pick-card .profile-character-copy>p{display:block!important;
  min-height:0!important;margin:0 0 8px!important;color:#c9bda9!important;
  font-size:calc(9.5px * var(--text-scale, 1))!important;text-align:center;
  text-shadow:0 1px 3px #000,0 2px 10px rgba(0,0,0,.9)}
.profile-class-pick-card .profile-actions{opacity:1;transform:none}
.profile-back-card{justify-content:flex-start!important;padding-top:8px!important}
.profile-back-card::after{display:none!important}
/* Refino do pódio: proporção do herói, ações compactas e nada abaixo da linha. */
.profile-modal-card{padding:18px 26px 18px!important}
.profile-cards{height:min(600px,calc(100dvh - 96px))!important;align-content:end!important}
.profile-icon{width:206px!important;height:266px!important}
.profile-card::after{bottom:132px;width:150px}
.profile-character-visual{min-height:288px}
.profile-identity-zone{padding:8px 8px 2px!important}
/* Ações em UMA linha: no pódio, três botões empilhados furavam o chão. */
.profile-actions{display:flex!important;flex-wrap:wrap;justify-content:center;gap:5px!important}
.profile-actions button{flex:0 1 auto;min-height:30px!important;padding:6px 12px!important;
  font-size:calc(8.5px * var(--text-scale, 1))!important}
.profile-delete-button{width:auto!important}
.profile-status{margin:5px 0 8px!important}
/* Cabeçalho enxuto: o subtítulo competia com a arte e era ilegível. */
.profile-modal-card .modal-title-row{padding:8px 16px 10px!important;
  background:linear-gradient(90deg,transparent,rgba(3,6,12,.82) 12%,rgba(3,6,12,.82) 88%,transparent)!important}
.profile-modal-card .modal-title-row p{display:none}
.profile-modal-card .modal-title-row h2{font-size:calc(26px * var(--text-scale, 1))!important}
@media(max-height:700px){
  .profile-icon{width:168px!important;height:214px!important}
  .profile-character-visual{min-height:236px}
  .profile-card::after{bottom:112px}
}
/* As ações pertencem ao herói ESCOLHIDO, não a todos ao mesmo tempo. A 34% de
   opacidade elas viravam ruído ilegível sob os cinco. Só o herói sob o cursor
   (ou com foco de teclado) mostra o que dá para fazer.

   BUG-008 (P1) — ESTE REVEAL ERA INCONDICIONAL, E ISSO TRANCAVA DUAS PORTAS.

   1. TOQUE. Não existe hover num dedo. O jogador de celular que volta ao jogo
      caía no Salão e não tinha ENTRAR, RENOMEAR nem APAGAR — nenhuma forma de
      jogar. Determinístico, e todo reload manda pro Salão.
   2. TECLADO, em qualquer dispositivo. `visibility:hidden` tira o elemento da
      ordem de tabulação. Os três botões são a ÚNICA coisa focável dentro do
      card (o card é um `<div>` sem tabindex, game.js:2842), então nunca havia
      como um foco entrar ali — e o `:focus-within` deste seletor era código
      morto desde que foi escrito.

   A correção separa as duas coisas que estavam misturadas:
   - ESCONDER só acontece onde o hover EXISTE (@media hover:hover). Onde não
     existe, as ações ficam sempre visíveis — que é o comportamento certo, não
     um fallback degradado.
   - Onde esconde, esconde por OPACIDADE, nunca por `visibility`. O botão
     continua focável, o Tab chega nele, e aí sim o `:focus-within` revela o
     grupo. O desenho da Fase 16g fica intacto para quem usa mouse. */
@media (hover: hover) and (pointer: fine){
  .profile-actions{opacity:0!important;pointer-events:none}
  .profile-card:hover .profile-actions,
  .profile-card:focus-within .profile-actions{opacity:1!important;pointer-events:auto}
}
@media (hover: none),(pointer: coarse){
  .profile-actions{opacity:1!important;pointer-events:auto!important;visibility:visible!important;
    transform:none!important}
}
/* O card de VOLTAR não é um herói: ele mostra a ação sempre. */
.profile-back-card .profile-actions{opacity:1!important;pointer-events:auto;visibility:visible}
/* "SEM DADOS" some: um slot preenchido sem preview não precisa se anunciar. */
.profile-card:not(.profile-slot-empty) .profile-empty-slot{display:none!important}
/* ---------------------------------------------------------------------
   CATÁLOGO DE CLASSES — o pódio tem 6 lugares aqui (VOLTAR + 5 classes),
   não 4 como o Salão. Herdar as 4 colunas quebrava a fila em duas linhas
   e as descrições subiam por cima dos nomes.
   --------------------------------------------------------------------- */
#profileCards:has(.profile-class-pick-card){grid-template-columns:auto repeat(5,minmax(0,1fr))!important;
  align-items:stretch!important;gap:4px!important}
/* Os cinco cards de classe dividem a MESMA linha de grade.
   Antes era `align-items:end`: cada card ficava com a altura do proprio texto
   e so as bases coincidiam, entao os topos -- e com eles a arte, o nome e a
   borda do painel -- ficavam em alturas diferentes. As descricoes variam de
   50px (Dark Lord) a 87px (Gladiador Magico), o que espalhava os topos por
   37px. Com `stretch` os cinco assumem a altura da linha; o rodape continua
   colado embaixo porque .profile-character-copy ja e flex:1 e
   .profile-actions ja tem margin-top:auto. O card de voltar nao participa
   dessa linha: ele fica ancorado na base. */
#profileCards:has(.profile-class-pick-card)>.profile-back-card{align-self:end}
#profileCards:has(.profile-class-pick-card) .profile-class-pick-card{height:100%}
.profile-class-pick-card{padding-bottom:14px!important}
.profile-class-pick-card .profile-icon{width:150px!important;height:196px!important}
.profile-class-pick-card::after{bottom:104px;width:112px}
.profile-class-pick-card .profile-character-visual{min-height:206px}
/* A descrição fica ABAIXO do nome, com fôlego e fundo próprio de leitura. */
.profile-class-pick-card .profile-character-copy{padding:0 8px!important;gap:8px}
/* A descricao reserva a altura da MAIOR das cinco (Gladiador Magico, 4 linhas).
   Sem isso o bloco de texto media de 58px (Dark Lord) a 97px, e como ele fica
   ancorado embaixo, o nome da classe subia ou descia junto -- 463 no Gladiador
   contra 505 no Dark Lord. Reservando a altura, o nome cai no mesmo lugar nos
   cinco cards e sobra respiro para textos futuros um pouco maiores. */
.profile-class-pick-card .profile-character-copy>p{min-height:100px!important;margin:0!important}
.profile-class-pick-card .profile-character-copy>p{margin:2px 0 9px!important;padding:8px 9px!important;
  border-radius:4px;background:rgba(4,7,13,.72);backdrop-filter:blur(3px);
  line-height:1.45!important;text-align:center}
/* Escolher é a ação principal desta tela: sempre visível, nunca no hover. */
.profile-class-pick-card .profile-actions{opacity:1!important;visibility:visible!important;
  pointer-events:auto!important;transform:none!important}
.profile-class-pick-card .profile-actions button{min-height:34px!important;padding:8px 18px!important;
  border-color:#c79a4a!important;background:linear-gradient(180deg,#d8a34a,#7d5410)!important;
  color:#fff3cd!important;font-weight:900}
.profile-back-card .profile-actions{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.profile-back-card{min-width:150px}
@media(max-height:760px){
  .profile-class-pick-card .profile-icon{width:120px!important;height:158px!important}
  .profile-class-pick-card .profile-character-visual{min-height:168px}
  .profile-class-pick-card::after{bottom:84px}
  .profile-class-pick-card .profile-character-copy>p{font-size:calc(8.5px * var(--text-scale, 1))!important}
}
/* ---------------------------------------------------------------------
   PÓDIO — respiro entre nome, status e ações (Fase 16f, ajuste de QA).
   Relatado no jogo: "os nomes se sobrepondo". Com o herói ocupando 266px e
   as três faixas de texto logo abaixo sem folga, nome, nível e botões se
   encostavam. Aqui o bloco de identidade ganha altura própria e o herói
   cede o espaço, em vez de disputar.
   --------------------------------------------------------------------- */
.profile-card{padding-bottom:26px!important;gap:0}
.profile-icon{width:188px!important;height:236px!important}
.profile-card::after{bottom:172px;width:138px}
.profile-character-visual{min-height:262px}
.profile-identity-zone{padding:14px 8px 6px!important;min-height:52px}
.profile-character-name{margin-bottom:3px;line-height:1.15}
.profile-class-name{display:block;line-height:1.3}
.profile-status{margin:9px 0 11px!important;gap:7px!important}
.profile-actions{gap:6px!important}
/* Slot vazio: o rótulo precisa do mesmo respiro, senão encosta no chão. */
.profile-slot-empty .profile-identity-zone{padding-top:22px!important}
.profile-slot-empty .profile-class-name{color:#93a6c4!important;letter-spacing:2px}
@media(max-height:760px){
  .profile-icon{width:150px!important;height:190px!important}
  .profile-character-visual{min-height:212px}
  .profile-card::after{bottom:140px}
  .profile-character-name{font-size:calc(16px * var(--text-scale, 1))}
}

/* =====================================================================
   CABER NA TELA — Fase 16f (QA do usuário)
   ---------------------------------------------------------------------
   Reportado jogando: "em opções existe uma opção de subir a resolução,
   aqui está em 130%, mas mesmo em 100% não aparece tudo".
   Medido em 1366x768 com escala de texto 1,3: a entrada precisava de 773px
   de altura numa janela de 768 e transbordava 29px; no Salão, ENTRAR /
   RENOMEAR / APAGAR caíam abaixo da borda.
   A causa era o layout ter medidas FIXAS em px enquanto a escala de texto
   (--text-scale) empurra tudo para baixo. Aqui o tamanho passa a responder
   à ALTURA da janela, e sobra rolagem como rede de segurança -- em nenhum
   caso um botão fica inalcançável.
   ===================================================================== */
.main-menu-screen{overflow:auto!important;align-content:center}
.main-menu-frame{max-height:none!important;padding-block:max(12px,2vh)!important}
/* O logo cede espaço primeiro: ele é o maior bloco e o mais elástico. */
.main-menu-logo{width:min(340px,66vw,34vh)!important;margin-bottom:min(-6px,-0.4vh)!important}
.main-menu-kicker{margin:0.4vh 0 min(22px,2.4vh)!important}
.main-login-form{gap:min(9px,1.1vh)!important}
.main-login-form input{padding:min(11px,1.3vh) 13px!important}
.main-menu-actions{margin-top:min(14px,1.6vh)!important}
.main-menu-actions button{min-height:min(44px,5.4vh)!important}
.main-menu-primary{min-height:min(48px,5.8vh)!important}
.main-account-status{margin-top:min(14px,1.5vh)!important}
.main-menu-frame small{margin-top:min(16px,1.6vh)!important}

/* SALÃO DOS HERÓIS: o pódio vive dentro da altura real da janela, e os
   botões do herói nunca caem para fora. */
.profile-modal-card{grid-template-rows:auto minmax(0,1fr)!important;overflow:hidden!important}
.profile-cards{height:auto!important;min-height:0!important;
  max-height:calc(100dvh - 92px)!important;overflow:visible!important}
.profile-card{padding-bottom:min(26px,3vh)!important}
.profile-icon{width:min(188px,20vh)!important;height:min(236px,26vh)!important}
.profile-character-visual{min-height:min(262px,29vh)!important}
.profile-card::after{bottom:min(172px,19vh)}
.profile-identity-zone{padding:min(14px,1.6vh) 8px min(6px,.7vh)!important;min-height:0}
.profile-status{margin:min(9px,1vh) 0 min(11px,1.2vh)!important}
.profile-actions button{min-height:min(34px,4vh)!important;padding:min(8px,.9vh) 12px!important}
.profile-class-pick-card .profile-icon{width:min(150px,17vh)!important;height:min(196px,22vh)!important}
.profile-class-pick-card .profile-character-visual{min-height:min(206px,23vh)!important}
.profile-class-pick-card::after{bottom:min(104px,12vh)}
.profile-class-pick-card .profile-character-copy>p{padding:min(8px,.9vh) 9px!important}

.auth-optional{color:#7e8799;font-size:.82em;font-weight:400;letter-spacing:.04em}

/* ==========================================================================
   TRANSBORDO DE TEXTO NAS ESCALAS DE UI (110% / 120% / 130%)
   --------------------------------------------------------------------------
   Medido com tools/audit/ui-overflow.mjs em 1366x768. Em 120% -- a escala que
   o jogo usa por padrao no teste -- estas caixas cortavam ou derramavam texto:

     #sidebarPassive             altura 44px com overflow hidden, texto pedindo
                                 133px: a passiva da classe ficava CORTADA.
     #openEquipmentPanelButton   rotulo 20px mais largo que o botao, cortado.
     .battle-skill-icon          emoji 4px maior que a caixa, DERRAMANDO por
                                 cima do vizinho (overflow visible).

   Sao dois defeitos diferentes: `hidden` esconde o texto, `visible` empurra o
   texto para fora. A correcao segue a natureza de cada caixa -- a passiva pode
   crescer (a tela ja rola), o botao passa a caber o rotulo, e o icone ganha a
   caixa do tamanho do glifo.
   ========================================================================== */
/* #sidebarPassive NAO entra aqui: a passiva e truncada de proposito em duas
   linhas por `-webkit-line-clamp:2` (styles/battle.css). Forcar overflow visivel
   quebraria a reticencia e derramaria o texto sobre o painel. O texto completo
   da classe fica no painel do personagem. */
#openEquipmentPanelButton{white-space:normal;line-height:1.2;padding-left:8px;padding-right:8px}
.battle-skill-icon,.starter-quest-icon{line-height:1;display:grid;place-items:center}

/* --------------------------------------------------------------------------
   SALAO DOS HEROIS EM ZOOM ALTO / JANELA BAIXA
   Reproduzido no video do usuario (janela 1600x848 com zoom do navegador):
   os botoes ENTRAR / RENOMEAR / APAGAR sumiam dos cards de personagem.

   Causa: `.profile-cards` tinha ALTURA FIXA -- min(600px, 100dvh - 96px). Com
   zoom, a viewport em pixels CSS encolhe (848px a 125% viram ~678px), o
   contêiner cai para ~582px, e o card -- arte + nome + nivel + area + tres
   botoes -- passa a nao caber. O que sobra e cortado, e o que fica de fora sao
   justamente os botoes, que ficam no rodape do card.

   Correcao: o contêiner deixa de ter altura fixa e passa a ter LIMITE. Quem
   cede espaco quando aperta e a moldura da arte, que e a parte elastica --
   assim o rodape do card continua na tela em vez de sumir. Nada aqui rola.
   -------------------------------------------------------------------------- */
/* A sobra era CONSTANTE (22px em todas as escalas de texto), ou seja, nao vinha
   do tamanho da fonte nem da arte: a subtracao de 96px simplesmente nao cobria
   o cabecalho do painel mais as margens. 130px cobre com folga e o contêiner
   para de rolar por dentro. */
#profileCards{height:auto!important;max-height:calc(100dvh - 130px)!important;min-height:0!important;
  /* SEM barra de rolagem fantasma -- mas SEM cortar conteudo tambem.
     A primeira versao usava overflow:hidden e cortou a fileira de botoes dos
     cards de personagem, que e conteudo real. `clip` no eixo X mata a barra
     horizontal fantasma da sombra sem tocar no eixo vertical. */
     Medido: o contêiner tem 357px de conteudo e 388px de scrollHeight, mas
     NENHUM elemento ultrapassa a borda inferior (verificado varrendo os filhos).
     Os 31px de diferenca vem do pseudo-elemento ::after de sombra dos cards,
     que entra no scrollHeight e nao aparece no DOM. Com overflowY:auto isso
     virava uma barra de rolagem que revela sombra -- o jogador rola atras de
     informacao e nao encontra nada. Clipar a decoracao nao perde conteudo. */
  overflow:visible!important}
#profileCards .profile-card{min-height:0!important}
/* 26vh deixava o conteudo 22px mais alto que o contêiner, e o painel passava a
   rolar por dentro -- a "informacao oculta" que exigia scroll. Medido em
   1600x848: 22vh zera a sobra em todas as quatro escalas de texto. */
#profileCards .profile-character-visual{height:clamp(120px,22vh,238px)!important;min-height:0!important}
#profileCards .profile-icon{height:auto!important;max-height:100%!important}

/* Pontos da barra de etapas: os ja alcancados sao clicaveis e fixam o farm. */
.stage-dot-clicavel{cursor:pointer}
.stage-dot-clicavel:hover{filter:brightness(1.5);transform:scale(1.15)}
.stage-dot-clicavel:focus-visible{outline:2px solid #ffd56a;outline-offset:2px}
.stage-dot-fixada{box-shadow:0 0 0 2px #ffd56a,0 0 8px rgba(255,213,106,.6)}

/* ==========================================================================
   BUG-007  DIALOGO DO JOGO no lugar de prompt()/confirm() nativos.
   Reaproveita .modal-backdrop e .modal-card de proposito: nao existe um
   segundo sistema de modal, so um conteudo novo dentro do que ja havia.
   ========================================================================== */
.col-dialog-backdrop{z-index:4000}
.col-dialog-card{width:min(460px,100%)}
.col-dialog-titulo{margin:0;font-size:calc(17px * var(--text-scale, 1))}
.col-dialog-corpo p{margin:0 0 10px;color:#c9ced9;font-size:calc(12px * var(--text-scale, 1));line-height:1.6}
.col-dialog-corpo p:last-child{margin-bottom:0}
.col-dialog-campo{display:block;margin:14px 0 0}
.col-dialog-campo span{display:block;margin-bottom:5px;color:#8d95a8;font-size:calc(10px * var(--text-scale, 1))}
.col-dialog-campo span:empty{display:none}
.col-dialog-input{width:100%;padding:11px 12px;border:1px solid #3a4050;border-radius:8px;
  background:#151820;color:#e8ecf4;font:inherit;font-size:calc(13px * var(--text-scale, 1))}
.col-dialog-input:focus{outline:2px solid #6b5fd2;outline-offset:1px}
.col-dialog-erro{margin:7px 0 0;color:#ff9d9d;font-size:calc(11px * var(--text-scale, 1))}
.col-dialog-acoes{display:flex;gap:9px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}
.col-dialog-acoes button{min-height:40px;padding:10px 18px;font-size:calc(11px * var(--text-scale, 1))}
.col-dialog-cancelar{background:#343947}
.col-dialog-ok{background:#4b6cd4}
.col-dialog-ok.perigoso{background:#8c3a3a}
@media(max-width:520px){.col-dialog-acoes{flex-direction:column-reverse}.col-dialog-acoes button{width:100%}}

/* Fase 21 — classe avancada ainda nao conquistada. Aparece na lista, apagada,
   com o requisito legivel: esconder seria o jogador nunca saber que ela existe. */
.profile-card.profile-class-locked{opacity:.55;filter:grayscale(.65)}
.profile-card.profile-class-locked .profile-icon{filter:grayscale(1) brightness(.7)}
.profile-card.profile-class-locked button[disabled]{cursor:not-allowed;opacity:.8}
.profile-class-lock{display:block;margin-top:4px;font-size:.78em;font-weight:700;color:#ffb84d;letter-spacing:.02em}

/* ===== MOLDURA DE PERFIL (cosm�tico) =====
   A arte da moldura EXTRAPOLA a caixa do retrato de proposito: as molduras tem
   pontas e dragoes que saem da borda, e recorta-las mataria o desenho. Por isso
   ela e um <img> em position:absolute com escala maior que 100%, e o retrato
   ganha overflow:visible enquanto houver moldura.
   pointer-events:none garante que a moldura nunca rouba o clique do retrato. */
.col-frame-art{position:absolute;left:50%;top:50%;width:168%;height:168%;
  transform:translate(-50%,-50%);pointer-events:none;z-index:3;
  image-rendering:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55));}
.has-col-frame{position:relative;overflow:visible;}
/* A MOLDURA TRANSBORDA; O CONTEUDO DO RETRATO, NAO. (Fase 39)
   -----------------------------------------------------------------------
   `overflow:visible` acima existe porque a arte da moldura tem pontas e
   dragoes que saem da borda de proposito. So que ele desliga o recorte para
   TUDO -- e foi assim que ligar uma moldura passou a jogar o sprite do
   personagem por cima do nome, do nivel e das barras.

   MEDIDO antes da correcao (tools/audit/moldura-retrato-probe.mjs): num
   retrato de 52x52 o sprite tinha 285x143 e escapava 91px a esquerda, 142px a
   direita e 125px abaixo. `styles/hud-layout.css` o punha em `scale:2.7` com
   `translate:-5px 75px`, e o `overflow:hidden` escondia isso desde sempre. A
   moldura nao criou o defeito: ela tirou a tesoura.

   A causa foi corrigida na FONTE (a entrada do Editor em
   `src/editor/editor-layout.js`, re-assada com bake-hud-layout). Esta regra e a
   REDE: qualquer imagem do retrato que nao seja a moldura fica presa na caixa,
   venha o tamanho de onde vier. Assim "deixar a moldura aparecer" e "segurar o
   sprite" param de ser mutuamente exclusivos. */
.has-col-frame > img:not(.col-frame-art){
  width:100%!important;height:100%!important;
  max-width:100%!important;max-height:100%!important;
  object-fit:cover!important;translate:none!important;scale:none!important;
}
/* Sem moldura o retrato continua com a borda e o corte de sempre; com moldura
   a borda some, porque quem desenha a borda agora e a arte. */
/* A CAUSA REAL (medida no CSSOM, nao suposta): a linha 1289 declara
   "overflow:hidden!important" para .hero-identity .class-summary-icon. Nenhuma
   centrada mas com 62% dela CORTADA  exatamente as pontas que ela existe para
   -- exatamente as pontas que ela existe para mostrar. Por isso aqui tambem
   usa !important, e so quando ha moldura equipada. */
.class-summary-icon.has-col-frame,.profile-card-avatar.has-col-frame,.hero-identity .class-summary-icon.has-col-frame{border-color:transparent;background:transparent;overflow:visible!important;}
.nav-mail-badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:6px;border-radius:9px;
  background:#e04b4b;color:#fff;font-size:calc(11px * var(--text-scale, 1));font-style:normal;font-weight:700;text-align:center;}
.mail-item{align-items:flex-start;gap:12px;}
.mail-unread{border-left:3px solid #5d65ff;}
.mail-important{background:linear-gradient(90deg,rgba(255,209,102,.07),transparent 60%);}
.mail-body{margin:4px 0 0;color:#a6aec0;line-height:1.4;font-size:calc(13px * var(--text-scale, 1));}
.mail-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.mail-attachment{padding:3px 8px;border:1px solid rgba(255,215,0,.35);border-radius:8px;
  background:rgba(255,215,0,.08);color:#ffeb3b;font-size:calc(12px * var(--text-scale, 1));}
.mail-attachment.claimed{border-color:#3a4356;background:rgba(255,255,255,.04);color:#8c95a8;}

/* ==========================================================================
   O RETRATO DO PERFIL MOSTRA O ROSTO, NAO O BONECO INTEIRO  (Fase 43)

   Pedido do autor, com print: "deveria ser so a parte mais proxima da face do
   personagem no perfil e nao uma miniatura dele".

   O NUMERO FOI MEDIDO, NAO ESCOLHIDO NO OLHO (tools/audit/rosto-do-sprite-probe.mjs).
   A sonda le o ALFA de cada arte num canvas e devolve a caixa real do corpo:

       warrior  corpo 78x190 em (61,5)      mage     corpo 76x188 em (63,7)
       archer   corpo 73x195 em (67,2)      mg       corpo 79x193 em (62,3)
       dark_lord corpo 79x188 em (62,8)     set BD   corpo 84x194 em (59,1)

   Duas coisas caem dai. O corpo comeca entre y=1 e y=8 num sprite de 200px,
   entao 30% DO SPRITE (y=0..60) cobre cabeca e ombros em todas as classes E
   nos overrides de set -- que trocam a arte inteira e por isso tinham de entrar
   na medida. E o centro horizontal do corpo cai entre 101 e 103,5 num sprite
   cujo centro e 100: centrar pelo sprite erra no maximo 3,5px.

   A DETECCAO AUTOMATICA DE OMBRO FOI DESCARTADA, e o motivo fica registrado: a
   sonda tentava achar onde a silhueta alarga, e o set Black Dragon tem um chifre
   de 2px no topo que vira a "largura da cabeca" de referencia -- o ombro saia em
   3% e o recorte cortaria a cabeca fora. Caixa do corpo e medida robusta;
   silhueta por linha nao e.

   COMO: a arte fica 1/0,30 = 3,333x a caixa e ancora no topo. Deslocar
   -116,65% na horizontal recentra ((333,3-100)/2).
   ========================================================================== */
/* A caixa que corta. Ela e IRMA da moldura, nao a moldura em si: por isso o
   retrato pode continuar com overflow visivel (a moldura precisa disso) sem
   que o rosto vaze. */
.perfil-rosto{
  display:block;position:relative;
  width:100%;height:100%;overflow:hidden;border-radius:inherit;
}
.perfil-character-sprite{
  display:block;
  /* 20% DO SPRITE: cabeca e ombros. A primeira versao usou 30% e a foto
     mostrou o corpo ate a cintura -- longe de "so a parte mais proxima da
     face". As medidas da sonda sustentam os 20%: a cabeca comeca entre 0,5% e
     4% e o ombro mais baixo das cinco classes esta em 17,5% (dark_lord 17%,
     mage 17,5%), entao y=0..40 pega cabeca e ombros em todas sem cortar
     nenhuma. 1/0,20 = 5x a caixa; o deslocamento recentra ((500-100)/2). */
  width:500%!important;max-width:none!important;height:auto!important;
  margin-left:-200%;
  object-fit:contain!important;
  image-rendering:pixelated;
}
/* ESPACO PARA A MOLDURA TRANSBORDAR (Fase 43).

   Nos prints do autor a moldura cobre o texto "PERFIL DO PERSONAGEM". Medido
   no runtime: retrato 96x96 em x=14, arte da moldura 158x158 em x=-17 -- ou
   seja, 31px de transbordo por lado, e a borda direita dela chega a x=141
   enquanto o cabecalho comeca em x=126.

   O transbordo NAO e defeito: a moldura existe para cercar o retrato, e por
   isso ela e maior que ele. O que faltava era RESERVAR o espaco dela. Encolher
   a arte "resolveria" tirando da moldura justamente as pontas que o autor
   comprou para ver. 31/96 = 32,3% do lado da caixa. */
.perfil-retrato{margin:calc(34px * var(--ui-scale,1));}
.perfil-retrato:not(.has-col-frame){margin:0;}
/* A guarda `.perfil-retrato.has-col-frame{overflow:hidden}` foi RETIRADA ao
   inves de mantida: ela cortaria a propria moldura, que existe para
   transbordar a borda. Quem corta agora e `.perfil-rosto`, que e irmao dela. */

/* ---- CORREIO no topo, junto do logo (Fase 43) ---- */
.top-mail-button{display:inline-flex;align-items:center;gap:2px;white-space:nowrap;}

/* ==========================================================================
   O PONTO DE NOVIDADE  (Fase 43)

   Pedido do autor: "todo menu que tiver algo novo pro player conferir, poderia
   ter esse iconezinho vermelho... so em menus que de fato ele precisa verificar
   sabe? se nao fica confuso".

   O MODELO JA EXISTIA E NUNCA TINHA SIDO LIDO. `dirtyGameViews` (game.js) e
   escrito em quinze lugares -- descoberta de set, contrato, bestiario, party,
   combate -- e ATE AQUI nenhuma linha do jogo o consultava. O ponto abaixo e a
   primeira leitura desse estado, nao um sistema novo.

   O CORREIO fica de fora de proposito: ele ja tem contador com numero
   (`.nav-mail-badge`), e dois marcadores no mesmo botao seriam dois avisos para
   a mesma coisa.
   ========================================================================== */
.nav-button{position:relative;}
.nav-novidade{
  position:absolute;top:6px;right:8px;
  width:8px;height:8px;border-radius:50%;
  background:#e04b4b;box-shadow:0 0 0 2px rgba(10,12,18,.85);
  pointer-events:none;
}
/* O menu MAIS carrega o ponto dos destinos escondidos dentro dele: sem isto o
   jogador so descobriria a novidade abrindo o menu. */
.nav-more-button .nav-novidade{top:8px;right:10px;}

/* ==========================================================================
   FICHA DO JOGADOR (Fase 95) — src/ui/player-card-ui.js
   O retrato e o lutador do duelo (`.pvp-fighter-anchor`, 150px), entao a
   calibracao `duelo:<parte>` do Editor vale aqui tambem. A caixa do retrato
   deixa espaco embaixo para a aura, que desce do chao do lutador.
   ========================================================================== */
.col-ficha-fundo{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;
  padding:16px;background:rgba(4,6,10,.72);}
.col-ficha-card{position:relative;width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;
  background:linear-gradient(180deg,#1d212c,#12151c);border:1px solid rgba(215,169,68,.45);border-radius:12px;
  padding:18px 18px 12px;box-shadow:0 18px 50px rgba(0,0,0,.6);color:var(--text);}
.col-ficha-fechar{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:6px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:#fff;cursor:pointer;}
.col-ficha-placa{display:flex;align-items:center;justify-content:center;height:72px;margin:0 32px 6px;}
.col-ficha-placa-arte{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.8));}
.col-ficha-placa-texto{font-weight:700;color:#ffd700;letter-spacing:.5px;text-shadow:0 0 6px rgba(0,0,0,.9);}
.col-ficha-corpo{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;}
.col-ficha-retrato{flex:0 0 190px;height:230px;display:flex;align-items:flex-start;justify-content:center;
  padding-top:34px;overflow:hidden;border-radius:10px;
  background:radial-gradient(ellipse at 50% 85%,rgba(215,169,68,.16),transparent 65%),rgba(0,0,0,.35);}
.col-ficha-lutador{position:relative;width:150px;height:150px;display:flex;align-items:flex-end;justify-content:center;}
.col-ficha-dados{flex:1 1 220px;min-width:0;}
.col-ficha-nome{margin:0;font-size:1.25rem;color:#fff;overflow-wrap:anywhere;}
.col-ficha-voce{color:#63c887;font-size:.8rem;font-weight:600;}
.col-ficha-classe{margin:2px 0 8px;color:var(--muted);font-size:.85rem;}
.col-ficha-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.col-ficha-chips span{font-size:.72rem;color:var(--muted);background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:3px 9px;}
.col-ficha-chips strong{color:#ffb84d;}
.col-ficha-linhas{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 8px;font-size:.82rem;}
.col-ficha-linhas dt{color:var(--muted);}
.col-ficha-linhas dd{margin:0;color:#e9ebf0;overflow-wrap:anywhere;}
.col-ficha-bio{margin:6px 0 0;font-style:italic;color:#cfd3dc;font-size:.82rem;overflow-wrap:anywhere;}
.col-ficha-nota{margin:12px 0 0;text-align:center;color:#6f7688;font-size:.7rem;}
.col-ficha-editar{display:block;margin:12px auto 0;}
@media (max-width:480px){.col-ficha-retrato{flex-basis:100%}}
/* O nome clicavel nas listas e no chat: parece nome, e nao botao. */
.col-ficha-link{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;
  text-decoration:underline dotted rgba(255,255,255,.3);text-underline-offset:3px;}
.col-ficha-link:hover,.col-ficha-link:focus-visible{text-decoration-color:currentColor;outline:none;}
.col-chat-titulo{margin-left:6px;font-size:.68rem;font-weight:600;color:#ffd56a;}
/* O TITULO NO PERFIL, logo abaixo do nome. */
.perfil-titulo{display:flex;align-items:center;min-height:0;margin:2px 0 6px;}
.perfil-titulo img{height:54px;max-width:220px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.8));}
.perfil-titulo span{font-weight:700;color:#ffd700;}
.perfil-ficha-btn{margin-top:8px;}
/* Galerias do Perfil: o titulo e uma faixa 3:1, e a aura mostra so o 1o quadro da tira 4x1. */
/* A galeria das asas pinta o icone quadrado e `pixelated`: numa faixa de titulo
   isso deixava a arte com 44px e serrilhada. */
/* A coluna do icone e do GRID do item (54px): alargar so o icone o punha por
   cima do nome, visto no print do contrato. */
.wing-craft-item.perfil-titulo-item{grid-template-columns:132px minmax(0,1fr) minmax(180px,auto)!important;}
.wing-craft-item .wing-icon.perfil-titulo-icone{width:132px!important;min-width:0;}
@media(max-width:620px){
  .wing-craft-item.perfil-titulo-item{grid-template-columns:96px minmax(0,1fr)!important;}
  .wing-craft-item .wing-icon.perfil-titulo-icone{width:96px!important;}
}
.wing-craft-item .perfil-titulo-icone .wing-card-art{width:100%;height:100%;object-fit:contain;image-rendering:auto;}
.perfil-aura-quadro{display:block;width:60px;height:80px;margin:auto;background-repeat:no-repeat;
  background-size:400% 100%;background-position:0 0;}

/* ==========================================================================
   GvG V2 — ONDA 5 (Fase 97) — src/ui/gvg-ui.js
   ========================================================================== */
.gvg-cabecalho{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:flex-start;
  background:rgba(0,0,0,.45);border:1px solid rgba(255,184,77,.3);border-radius:8px;padding:14px 16px;margin-bottom:12px;}
.gvg-cabecalho h3{margin:2px 0 4px;color:#ffd56a;font-size:1.15rem;}
.gvg-cabecalho p{margin:0;color:#cfd3dc;font-size:.85rem;max-width:560px;}
.gvg-overline{font-size:.68rem;letter-spacing:.12em;color:var(--muted);}
.gvg-semana{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.gvg-semana li{font-size:.68rem;color:#8f97aa;text-align:center;padding:6px 9px;border-radius:6px;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);min-width:74px;}
.gvg-semana li b{color:#cfd3dc;font-weight:600;}
.gvg-semana li.atual{border-color:#ffb84d;background:rgba(255,184,77,.12);color:#ffd56a;}
.gvg-semana li.feito{opacity:.6;}
.gvg-bloco{background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px 14px;margin-bottom:12px;}
.gvg-bloco h4{margin:0 0 6px;color:#ffb84d;font-size:.95rem;}
.gvg-bloco p{margin:0 0 6px;font-size:.85rem;color:#e4e6ec;}
.gvg-bloco small{color:#8f97aa;font-size:.74rem;}
.gvg-inscricao{display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap;}
.gvg-inscricao>div{flex:1 1 260px;}
.gvg-forca{background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px 14px;margin-bottom:12px;}
.gvg-forca h4{margin:0 0 8px;color:#ffb84d;font-size:.95rem;}
.gvg-forca-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:6px;}
.gvg-forca-grade div{background:rgba(255,255,255,.04);border-radius:6px;padding:7px 9px;}
.gvg-forca-grade span{display:block;font-size:.64rem;letter-spacing:.1em;color:var(--muted);}
.gvg-forca-grade strong{color:#fff;font-size:.95rem;}
.gvg-forca small{color:#8f97aa;font-size:.72rem;}
.gvg-formacao-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.gvg-botoes{display:flex;gap:6px;flex-wrap:wrap;}
.gvg-tabela{overflow-x:auto;margin-top:6px;}
.gvg-tabela table{width:100%;border-collapse:collapse;font-size:.82rem;}
.gvg-tabela th{text-align:left;color:#8f97aa;font-weight:600;font-size:.7rem;letter-spacing:.06em;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.1);}
.gvg-tabela td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.05);color:#e4e6ec;white-space:nowrap;}
.gvg-tabela tr.gvg-eu td{background:rgba(255,184,77,.08);}
.gvg-tabela tr.gvg-inelegivel td{color:#7c8292;}
.gvg-tabela code{font-size:.72rem;color:#9aa3b8;}
.gvg-ok{color:#8fe3a8!important;}
.gvg-aviso{color:#ffb4a0!important;}
.gvg-vazio{color:#8f97aa;text-align:center;padding:24px 0;}
/* DURABILIDADE (Fase 99). Peca quebrada: icone avermelhado em todo lugar que usa itemArtHtml;
   no Ferreiro, a barra de integridade e os botoes de reparo. */
.item-quebrado{filter:grayscale(.55) sepia(1) hue-rotate(-45deg) saturate(3.2) brightness(.82)!important;outline:1px solid rgba(255,70,70,.55);outline-offset:-1px}
.forge-reparo{margin-top:10px;padding:9px 10px;border:1px solid rgba(205,170,110,.25);border-radius:8px;background:rgba(0,0,0,.25)}
.forge-reparo.quebrado{border-color:rgba(255,80,80,.6);background:rgba(90,10,10,.35)}
.forge-reparo-barra{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.forge-reparo-barra>span{display:block;height:100%;background:linear-gradient(90deg,#c0392b,#e0b04a 45%,#5fbf6a)}
.forge-reparo-linha{margin:6px 0;font-size:calc(12px * var(--text-scale, 1))}
.forge-reparo.quebrado .forge-reparo-linha strong{color:#ff6b6b}
.forge-reparo-acoes{display:flex;flex-wrap:wrap;gap:6px}
.forge-reparo-acoes button{flex:1 1 auto;min-width:0}
/* GvG V2, ONDA 6 (Fase 100): a batalha. Duas colunas no desktop; no celular, uma por vez
   pelas abas NOS/ELES (auditoria 2.8). Toque, nunca hover: o ATACAR e um botao. */
.gvg-barra{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between;margin:0 0 10px;padding:9px 12px;border-radius:8px;background:rgba(20,14,6,.92);border:1px solid rgba(255,184,77,.35);font-size:.74rem;letter-spacing:.08em;color:#cfd3dc}
.gvg-barra b{color:#ffd56a;font-size:.9rem;letter-spacing:0}
.gvg-avisos{margin:0 0 10px;line-height:1.35}.gvg-avisos small{color:#8f97aa;font-size:.74rem}
.gvg-resultado.vitoria{border-color:rgba(112,220,130,.5)}.gvg-resultado.vitoria h4{color:#8ff0a0}.gvg-resultado.derrota h4{color:#ff8a80}
.gvg-abas{display:none;gap:6px;margin-bottom:8px}.gvg-abas button{flex:1;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#cfd3dc;font-size:.74rem;letter-spacing:.06em}
.gvg-abas button.ativa{border-color:#ffb84d;background:rgba(255,184,77,.14);color:#ffd56a}
.gvg-guerra{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.gvg-lado{background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:10px;min-width:0}
.gvg-lado h4{margin:0 0 8px;color:#ffb84d;font-size:.9rem}.gvg-lado h4 span{display:block;color:#8f97aa;font-size:.7rem;font-weight:500}
.gvg-lado-eles{border-color:rgba(255,110,110,.25)}
.gvg-defensores{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.gvg-def{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:rgba(255,255,255,.035)}
.gvg-def.gvg-eu{background:rgba(255,184,77,.1)}.gvg-def.zerado{opacity:.55}
.gvg-def-pos{color:#8f97aa;font-size:.72rem}.gvg-def-nome{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:.82rem;color:#e4e6ec}
.gvg-def-nome small{display:block;color:#8f97aa;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gvg-def-estrelas{color:#ffd56a;letter-spacing:1px;font-size:.9rem}.gvg-def-ataques{color:#8f97aa;font-size:.68rem;white-space:nowrap}
.gvg-atacar{padding:6px 10px;border-radius:6px;border:1px solid #ff8a5c;background:rgba(255,110,60,.18);color:#ffd2bf;font-size:.72rem;font-weight:700;letter-spacing:.05em;min-height:32px}
.gvg-feed{list-style:none;margin:0;padding:0;font-size:.78rem;color:#cfd3dc;display:flex;flex-direction:column;gap:3px}
.gvg-ataque-fundo{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.72)}
.gvg-ataque{width:min(460px,100%);max-height:90dvh;overflow:auto;padding:16px;border-radius:12px;background:#15110b;border:1px solid rgba(255,184,77,.45);color:#e4e6ec}
.gvg-ataque h3{margin:0 0 4px;color:#ffd56a}.gvg-ataque p{font-size:.85rem;margin:6px 0}.gvg-ataque small{color:#8f97aa;font-size:.72rem}
.gvg-ataque-opcoes{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.gvg-ataque-opcoes button{display:grid;grid-template-columns:52px 1fr auto auto;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#e4e6ec;text-align:left}
.gvg-ataque-opcoes button.ativa{border-color:#ffb84d;background:rgba(255,184,77,.14)}
.gvg-ataque-opcoes b{color:#ffd56a}.gvg-ataque-opcoes em{font-style:normal;font-size:.7rem;font-weight:700;letter-spacing:.05em}
.prog-favoravel{color:#8ff0a0}.prog-equilibrado{color:#ffd56a}.prog-arriscado{color:#ffae70}.prog-improvavel{color:#ff8a80}
.gvg-luta{width:min(900px,100%);max-height:94dvh;overflow:auto;padding:12px;border-radius:12px;background:#0d0b08;border:1px solid rgba(255,184,77,.35);display:flex;flex-direction:column;gap:10px;align-items:center}
.gvg-visualizador{position:relative;width:100%}.gvg-luta-resultado{margin:0;color:#ffd56a;font-weight:700}
@media (max-width:767px){.gvg-abas{display:flex}.gvg-guerra{grid-template-columns:1fr}.gvg-guerra[data-aba="nos"] .gvg-lado-eles,.gvg-guerra[data-aba="eles"] .gvg-lado-nos{display:none}}
/* GOLDEN LADDER (Fase 101): o selo de poder estimado em cima do golden que nasceu na horda. */
.golden-horda-selo{position:absolute;transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none;padding:3px 8px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;color:#ffe9a8;background:rgba(40,28,6,.86);border:1px solid rgba(255,200,90,.6);box-shadow:0 0 10px rgba(255,190,60,.35)}
.golden-horda-selo[data-viavel="0"]{color:#ffc4bd;border-color:rgba(255,110,90,.65)}
.golden-horda-selo[hidden]{display:none}

/* O BALÃO DE AVISO (Fase 136): nem FALHA (nada falhou) nem CONFIRMADO (nada
   foi feito). É a recusa que explica o porquê — a trava de viagem da Fase 134
   era invisível para quem clicava no seletor. Âmbar, entre o vermelho da falha
   e o verde da confirmação. */
.action-feedback.aviso{border-color:rgba(214,168,74,.55)}
.action-feedback.aviso .action-feedback-copy>span{color:#f0c97a}
.action-feedback.aviso .action-feedback-icon{background:rgba(214,168,74,.16);color:#f4d99a}
