.town-trade[hidden],.town-trade [hidden]{display:none!important}.town-trade{position:fixed;inset:0;z-index:255;display:grid;place-items:center;padding:22px;background:#0c0b1228;backdrop-filter:blur(7px)}.trade-sheet{width:min(1050px,100%);max-height:90dvh;overflow:auto;padding:26px;background:linear-gradient(140deg,#24212bf5,#11161ef5);border:1px solid #8b725d;box-shadow:0 18px 70px #0009;color:#e8dac7}.trade-sheet header{display:flex;align-items:center;gap:20px;margin-bottom:16px}.trade-sheet header>div:first-child{flex:1}.trade-sheet header small{font-size:12px;letter-spacing:.15em;color:#ac9582}.trade-sheet h2{font:600 28px Cinzel,serif;margin:6px 0}.trade-wallet{color:#e5c688;font:600 16px Inter,sans-serif;white-space:nowrap}.trade-close{font-size:30px;width:40px;height:40px;border:0;background:none;color:#e7cdb2;}.trade-intro{font-size:16px;color:#bbada3;line-height:1.5}.trade-workspace{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;margin-top:20px}.trade-stock h3{font-size:15px;font-weight:500;margin:0 0 12px}.trade-grid{display:grid;grid-template-columns:1fr;gap:7px;max-height:54dvh;overflow:auto;padding:2px 5px 4px 2px}.trade-item{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:62px;padding:7px;background:#11141b;border:1px solid #62534c;color:#e7d3c1;text-align:left;}.trade-item img{width:46px;height:46px;object-fit:cover;border:1px solid var(--rarity-color);flex:none}.trade-item-info{flex:1;min-width:0}.trade-item-info strong{display:block;font-size:14px;line-height:1.35;color:var(--rarity-color)}.trade-item-info small{display:block;font-size:12px;color:#b4a79e;margin-top:4px}.trade-item[aria-pressed=true],.trade-item:hover{border-color:var(--rarity-color);background:#2a232b}.trade-item:disabled{opacity:.35;}.trade-price{font-size:14px;color:#dfc384;white-space:nowrap}.trade-unknown{position:absolute;left:7px;top:7px;width:46px;height:46px;display:grid;place-items:center;color:#eedbb3;font:700 28px Cinzel,serif;text-shadow:0 2px 6px #000;pointer-events:none}.trade-operation{padding:18px 18px 6px;border-left:1px solid #6b574955;text-align:center}.trade-sale-preview{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center}.trade-sale-preview img{width:76px;height:76px;border:1px solid var(--rarity-color);object-fit:cover}.trade-sale-preview h3{font:600 18px Cinzel,serif;color:var(--rarity-color);margin:12px 0 0}.trade-sale-preview p{color:#e5c688}.trade-sheet .button{font-size:14px;width:100%;padding:12px;}.trade-sheet .button:disabled{opacity:.4;}.trade-status{font-size:14px;line-height:1.5;color:#d2baa0;min-height:42px;margin:18px 0}.forge-inputs{display:flex;justify-content:center;align-items:center;gap:12px}.forge-inputs>span{color:#9f8a77;font-size:25px}.forge-input{position:relative;width:130px;min-height:138px;padding:10px;border:1px solid var(--rarity-color,#61564e);background:#10141c;color:#aa998b;}.forge-input img{display:block;width:70px;height:70px;object-fit:cover;margin:0 auto 9px;border:1px solid var(--rarity-color)}.forge-input span{display:block;font-size:12px;line-height:1.4}.forge-input.active-input{outline:1px solid #c3a179;outline-offset:3px}.forge-selection{font-size:14px;line-height:1.5;color:#d5bd9f;min-height:22px}.forge-odds{display:grid;gap:6px;margin:14px 0}.forge-chance{display:flex;justify-content:space-between;padding:8px 12px;background:#11151b;border-left:2px solid var(--rarity-color);color:var(--rarity-color);font-size:14px}.forge-cost{display:flex;justify-content:space-between;font-size:14px;border-top:1px solid #6b5749;padding-top:16px;color:#c9b8a3}.forge-cost strong{color:#dfc384}.forge-consequence{font-size:14px;line-height:1.5;color:#a89b92}.forge-result{display:grid;gap:9px;justify-items:center;padding:17px 10px;margin-top:15px;border:1px solid var(--rarity-color);background:#17151d}.forge-result img{width:72px;height:72px;object-fit:cover}.forge-result small{font-size:12px;color:var(--rarity-color);letter-spacing:.1em}.forge-result strong{font:600 18px Cinzel,serif;color:var(--rarity-color)}.forge-result span{font-size:14px;line-height:1.5;color:#d4c7ba}.forge-result.just-forged{animation:forge-reveal .7s ease-out}@keyframes forge-reveal{from{filter:brightness(1.8);box-shadow:0 0 32px var(--rarity-color);transform:scale(.98)}to{filter:brightness(1);box-shadow:none;transform:none}}@media(max-width:700px){.town-trade{padding:9px}.trade-sheet{padding:18px 13px;max-height:94dvh}.trade-sheet h2{font-size:23px}.trade-sheet header{gap:8px}.trade-wallet{font-size:14px}.trade-workspace{grid-template-columns:1fr;gap:12px}.trade-grid{max-height:32dvh}.trade-operation{border-left:0;border-top:1px solid #6b574955;padding:18px 5px 0}.trade-sale-preview{min-height:100px}.trade-intro{font-size:14px}.trade-item img,.trade-unknown{width:40px;height:40px}.trade-price{font-size:13px}}@media(prefers-reduced-motion:reduce){.forge-result.just-forged{animation:none}}

/* Trading shares the world with the inventory, like the Stats side pane. */
.town-trade{inset:0 auto var(--game-hud-height,100px) 0;width:min(760px,50vw);display:block;padding:0;background:none;backdrop-filter:none;animation:trade-enter .25s ease-out}.trade-sheet{width:100%;height:100%;max-height:none;box-sizing:border-box;padding:20px 25px;overflow:auto;border:0;border-right:1px solid #695d5b;background:linear-gradient(135deg,#202029f8,#11141bf8 80%);box-shadow:20px 0 70px #000a}.trade-workspace{grid-template-columns:1fr;gap:18px}.trade-grid{max-height:29dvh}.trade-operation{border-left:0;border-top:1px solid #6b574955;padding:18px 0 0}.trade-sale-preview{min-height:120px}.trade-sheet header{position:relative;inset:auto}.trade-sheet h2{font-size:24px}.trade-wallet{font-size:14px}body.trade-open .character-pane:not(.stats-pane){width:min(760px,50vw)}
@keyframes trade-enter{from{transform:translateX(-102%)}to{transform:translateX(0)}}
@media(max-width:700px){.town-trade{width:100vw;bottom:auto;height:40dvh}.trade-sheet{padding:12px 15px}.trade-sheet header{margin-bottom:8px}.trade-sheet h2{font-size:20px}.trade-intro{margin:6px 0;font-size:14px}.trade-workspace{margin-top:10px}.trade-grid{max-height:15dvh}.trade-sale-preview{min-height:80px}body.trade-open .character-pane:not(.stats-pane){width:100vw;top:40dvh;bottom:var(--game-hud-height,100px)}body.trade-open .character-pane:not(.stats-pane) .character-scroll{display:none}body.trade-open .character-pane>.character-inventory{flex:1;overflow:auto}body.trade-open .character-pane nav{display:none}}
@media(prefers-reduced-motion:reduce){.town-trade{animation:none}}

.upgrade-terms{display:grid;gap:8px;margin:10px 0 18px}.upgrade-term{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;background:#11151b;color:#cbbbaa;font-size:14px}.upgrade-term strong{color:#dfc384}.upgrade-term:last-child strong{color:#ef8d83}.gear-upgrade-label{color:#e4c183;padding:10px 0;border-bottom:1px solid #a58b5b55;font-weight:600}.upgrade-success{animation:temper-success .8s ease-out}.upgrade-failed{animation:temper-failure .6s ease-out}@keyframes temper-success{from{filter:brightness(1.8);box-shadow:0 0 35px #d9b67477}to{filter:none;box-shadow:none}}@keyframes temper-failure{from{background:#9c292b55;transform:translateX(-5px)}30%{transform:translateX(5px)}to{background:transparent;transform:none}}@media(prefers-reduced-motion:reduce){.upgrade-success,.upgrade-failed{animation:none}}
