*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;background:#08111c;color:#eef4fb}body{min-width:1050px}button,input{font:inherit}.app{display:grid;grid-template-columns:220px 1fr;grid-template-rows:92px 1fr;grid-template-areas:'top top' 'side main';min-height:100vh}.topbar{grid-area:top;display:flex;justify-content:space-between;align-items:center;padding:14px 26px;background:#101d2c;border-bottom:1px solid #283a50;position:sticky;top:0;z-index:5}.logo{font-size:34px;font-weight:900;letter-spacing:1.5px}.sub{color:#8fa5bc;margin-top:3px}.resources{display:flex;gap:10px;align-items:center}.resource{height:48px;min-width:112px;padding:6px 12px;border-radius:14px;background:#17283b;border:1px solid #31465d;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:800}.resource img{width:30px;height:30px;object-fit:contain}.resource.text{font-size:18px}.sidebar{grid-area:side;background:#0d1825;border-right:1px solid #263a4f;padding:18px 14px;display:flex;flex-direction:column;gap:10px}.nav{height:48px;border:0;border-radius:11px;background:#17283b;color:#d9e7f5;font-weight:800;text-align:left;padding:0 16px;cursor:pointer}.nav.active,.nav:hover{background:#d98a20;color:#121820}.clockBox{margin-top:8px;padding:14px 10px;background:#132235;border:1px solid #2a4058;border-radius:12px;color:#90a8bf;text-align:center;font-size:13px}.clockBox strong{display:block;margin-top:6px;font-size:18px;color:#ffc25c}.tinyReset{margin-top:2px;border:1px solid #344a60;border-radius:9px;background:transparent;color:#7890a7;padding:8px;font-size:11px;cursor:pointer}.tinyReset:hover{color:#fff;border-color:#6b8298}.main{grid-area:main;padding:24px 28px 42px;max-width:1500px;width:100%;margin:auto}.screen{display:none}.screen.active{display:block}.screenTitle h1{margin:0 0 4px;font-size:34px}.screenTitle p{margin:0 0 20px;color:#9db0c4}.card{background:#111f2e;border:1px solid #2a4057;border-radius:16px;box-shadow:0 9px 20px rgba(0,0,0,.18)}.runtimeNotice{padding:12px 14px;margin-bottom:14px;border-radius:10px;background:#4a2815;border:1px solid #a26429;color:#ffd19a}.hidden{display:none!important}.heroHead{display:grid;grid-template-columns:250px 1fr;gap:24px;padding:22px}.heroImg{width:230px;height:340px;object-fit:contain;background:#0a1520;border-radius:14px}.heroInfo h1{font-size:48px;margin:12px 0 4px}.title{display:inline-block;background:#4a3518;color:#ffc963;border:1px solid #735326;padding:7px 12px;border-radius:999px;font-weight:800}.level{font-size:22px;margin:16px 0 24px}.xpLine{display:flex;justify-content:space-between;font-weight:800;margin-bottom:8px}.bar{height:18px;border-radius:999px;background:#050b12;overflow:hidden}.fill{height:100%;width:0;transition:width .3s}.purple{background:linear-gradient(90deg,#8247d9,#c779ff)}.red{background:linear-gradient(90deg,#db4a57,#ff7e88)}.blue{background:linear-gradient(90deg,#1c8be2,#57c9ff)}.gold{background:linear-gradient(90deg,#e6911a,#ffd45c)}.green{background:linear-gradient(90deg,#1a9c62,#63eaa8)}.pink{background:linear-gradient(90deg,#c83182,#ff78bb)}.passiveSummary{margin-top:18px;color:#b7cadc;line-height:1.6}.equipmentOverview{padding:14px 16px;margin-top:16px}.equipmentOverview h3{margin:0 0 10px}.equipmentTotals{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.equipmentRows{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.equipmentRow{background:#0a1520;border:1px solid #294157;border-radius:10px;padding:9px;font-size:12px}.equipmentRow b{color:#ffc15c;display:block;margin-bottom:4px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:14px}.statCard{padding:17px}.statTop{display:flex;justify-content:space-between;font-size:20px;font-weight:900;margin-bottom:10px}.statSub{font-size:13px;color:#91a7bd;margin-top:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.info,.dropInfo,.rarityOdds{padding:14px 16px;margin-bottom:16px}.missionCard,.trainingCard,.upgradeCard,.shopCard,.inventoryCard,.duelCard{padding:17px}.missionCard h3,.trainingCard h3,.upgradeCard h3,.shopCard h3,.inventoryCard h3,.duelCard h3{margin:0 0 8px;font-size:22px}.muted{color:#91a7bd;font-size:14px;line-height:1.4}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.tag{font-size:12px;padding:5px 8px;border-radius:999px;background:#081522;border:1px solid #2c435b}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.primary,.secondary,.danger,.filterBtn{border:0;border-radius:10px;padding:10px 13px;font-weight:900;cursor:pointer}.primary{background:#e99a28;color:#111820}.secondary{background:#263b51;color:#eaf4ff}.danger{background:#8f3440;color:#fff}.primary:disabled,.secondary:disabled,.danger:disabled{opacity:.45;cursor:not-allowed}.activeMission{margin-top:16px;padding:18px}.shopMeta{padding:12px 16px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.rarityOdds{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.itemVisual{height:170px;border-radius:12px;background:#09141f;display:flex;align-items:center;justify-content:center;margin-bottom:12px;overflow:hidden}.itemVisual img{width:155px;height:155px;object-fit:contain}.rarity-Common{border-color:#6f7c88}.rarity-Uncommon{border-color:#2f83dc;box-shadow:0 0 0 1px rgba(47,131,220,.18)}.rarity-Rare{border-color:#d14949;box-shadow:0 0 0 1px rgba(209,73,73,.2)}.rarity-Epic{border-color:#9a53e6;box-shadow:0 0 20px rgba(154,83,230,.15)}.price{font-weight:900;font-size:18px;margin-top:8px}.special{margin:8px 0;padding:8px 9px;border-radius:9px;background:#2b1940;color:#ddaaff;border:1px solid #5e3882;font-weight:800;font-size:13px}.dropBadge{margin:8px 0;padding:7px 9px;border-radius:9px;background:#173221;color:#8aefb0;border:1px solid #2f6e47;font-weight:800;font-size:12px}.equipped{padding:14px 16px;margin-bottom:12px}.equipSlots{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:10px}.equipSlot{background:#0a1520;border:1px solid #294157;border-radius:10px;padding:9px;font-size:12px;text-align:center;min-height:82px}.equipSlot b{display:block;color:#ffc15c;margin-bottom:4px}.inventoryToolbar{padding:10px 12px;margin-bottom:10px;display:flex;gap:7px;flex-wrap:wrap}.filterBtn{background:#182b3f;color:#cfe0f0;border:1px solid #2e455d;padding:8px 11px;font-size:12px}.filterBtn.active{background:#d98a20;color:#111820;border-color:#d98a20}.inventoryCount{margin:0 0 10px 2px}.inventoryCard.equippedItem{outline:2px solid #43c98a}.sellValue{color:#ffc968;font-weight:800}.compareGood{color:#63eaa8}.compareBad{color:#ff8990}.duelCard{cursor:pointer}.duelCard.selected{outline:2px solid #e7a033}.difficulty{font-size:12px;font-weight:900;border-radius:999px;padding:5px 9px;display:inline-block}.Easy{background:#143c2b;color:#64dda0}.Medium{background:#4a3613;color:#ffd36b}.Hard{background:#4b171d;color:#ff8d96}.botImg{width:100%;height:220px;object-fit:contain;background:#09141f;border-radius:12px;margin:10px 0}.duelArena{margin-top:16px;padding:18px}.fightHeader{display:flex;justify-content:space-between;gap:18px}.fighter{width:48%}.fighterTitle{display:flex;justify-content:space-between;font-weight:900;margin-bottom:7px}.battleLog{height:180px;overflow:auto;background:#07111b;border-radius:10px;padding:12px;margin-top:14px;line-height:1.5}.logLine{margin-bottom:5px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:10}.modalCard{width:min(500px,90vw);padding:26px;background:#111f2e;border:1px solid #38516a;border-radius:16px;text-align:center}.modalCard input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #35506b;background:#081522;color:#fff;margin:10px 0 16px;font-size:20px}.resultCard #resultBody{white-space:pre-line;line-height:1.6;margin:14px 0 18px;font-size:18px}.center{text-align:center}@media(max-width:1200px){.grid3{grid-template-columns:1fr 1fr}.resources{flex-wrap:wrap}.topbar{height:auto}.app{grid-template-rows:auto 1fr}.equipSlots{grid-template-columns:repeat(3,1fr)}.equipmentRows{grid-template-columns:1fr 1fr}}
.duelRatingSummary{padding:13px 16px;margin-bottom:16px;color:#dfeeff}.teamCreateForm{padding:22px;max-width:760px}.teamCreateForm h2,.teamHeader h2,.teamTreasury h3,.teamSummary h3,.teamBonusCard h3,.teamMembers h3{margin-top:0}.teamNameInput{width:min(440px,100%);padding:12px 14px;border-radius:10px;border:1px solid #35506b;background:#081522;color:#fff;font-size:18px;display:block;margin:14px 0}.emblemPicker{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}.emblemChoice{width:50px;height:50px;border-radius:12px;border:1px solid #36516c;background:#0b1927;font-size:26px;cursor:pointer}.emblemChoice.active{border-color:#e69b2b;background:#3e2b12;box-shadow:0 0 0 2px rgba(230,155,43,.25)}.teamHeader{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.teamIdentity{display:flex;align-items:center;gap:16px}.teamEmblemLarge{width:74px;height:74px;border-radius:18px;background:#091522;border:1px solid #35506b;display:flex;align-items:center;justify-content:center;font-size:40px}.teamXpLine{margin-top:7px;color:#ffc968;font-weight:800}.teamGrid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-bottom:16px}.teamTreasury,.teamSummary,.teamMembers{padding:18px}.treasuryNumbers{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0 14px}.treasuryNumbers b{padding:8px 10px;background:#091522;border:1px solid #294157;border-radius:10px}.teamBonusSummary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.teamBonusGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.teamBonusCard{padding:18px;display:flex;flex-direction:column;gap:10px}.teamBonusLevel{color:#9cb1c7;font-weight:800}.bonusBig{font-size:34px;font-weight:900;color:#ffc968}.teamCost{font-weight:900;color:#e8f2fb}.teamFuture{margin-top:12px}.rankingControls{padding:12px 14px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.rankingTabs{display:flex;gap:8px}.rankingSearch{width:min(360px,45vw);padding:10px 12px;border-radius:10px;border:1px solid #35506b;background:#081522;color:#fff}.rankingTableWrap{padding:6px 0;overflow:hidden}.rankingRow{display:grid;grid-template-columns:90px 1.35fr 1.2fr 1fr 1fr;gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid #21374d}.rankingRow:last-child{border-bottom:0}.rankingHead{background:#0b1724;color:#ffc968;font-weight:900}.rankingRow small{display:block;color:#8fa6bd;margin-top:2px}.rankingRow.currentUser{background:#173b4b;box-shadow:inset 4px 0 #e79a27}.rankingEmpty{padding:24px;text-align:center;color:#91a7bd}@media(max-width:1200px){.teamGrid,.teamBonusGrid{grid-template-columns:1fr}.rankingRow{grid-template-columns:70px 1.2fr 1fr 1fr 1fr;font-size:13px}.rankingControls{align-items:stretch;flex-direction:column}.rankingSearch{width:100%}}

.donationGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.donationGrid label{display:block;font-weight:900;margin-bottom:6px;color:#dfeeff}.donationLine{display:flex;gap:8px}.donationInput{min-width:0;flex:1;padding:10px 11px;border-radius:10px;border:1px solid #35506b;background:#081522;color:#fff}.teamWarCard{padding:18px;margin-bottom:16px}.teamWarTop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.teamWarTop h3{margin:0 0 6px}.warStatus{font-size:12px;font-weight:900;padding:7px 10px;border-radius:999px}.warStatus.ready{background:#143c2b;color:#64dda0}.warStatus.used{background:#4b171d;color:#ff8d96}.warSelector{display:flex;gap:10px;margin:16px 0}.warSelect{flex:1;min-width:0;padding:11px 12px;border-radius:10px;border:1px solid #35506b;background:#081522;color:#fff}.warCompare{display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;gap:10px;padding:14px;background:#091522;border:1px solid #294157;border-radius:12px;text-align:center}.warCompare div:not(.warVs){display:flex;flex-direction:column;gap:5px}.warCompare span{color:#91a7bd;font-size:13px}.warVs{font-size:22px;font-weight:900;color:#ffc968}.warRewards{margin:12px 0}.warHistory{margin-top:14px}.warHistory h4{margin:0 0 8px}.warHistoryRow{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:8px;padding:8px 10px;border-top:1px solid #21374d;font-size:13px}.warHistoryRow:first-of-type{border-top:0}@media(max-width:900px){.donationGrid{grid-template-columns:1fr}.warCompare{grid-template-columns:1fr}.warVs{padding:4px}.warSelector{flex-direction:column}}

/* v0.19 team core additions */
.dailyRewardCard{padding:24px;max-width:760px}.dailyStreak{font-size:20px;margin:12px 0}.dailyPreview{padding:16px;border-radius:12px;background:#0a1520;border:1px solid #294157;margin:14px 0}.teamSettings,.teamChat,.teamMembers{padding:18px;margin-top:16px}.settingsLine{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.settingsLine label{display:flex;flex-direction:column;gap:5px}.settingsLine input,.settingsLine select,.teamChat input{background:#081522;color:#fff;border:1px solid #35506b;border-radius:9px;padding:9px 10px}.applicationRow{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #203348}.applicationRow small{display:block;color:#91a7bd}.teamMembers .rankingRow{grid-template-columns:55px 1.5fr 1fr .7fr 1fr 1.2fr}.rankingTeamRow{grid-template-columns:70px 1.5fr .7fr 1fr .7fr 1fr!important}.rankingTeamRow small{display:block;color:#91a7bd;margin-top:3px}.chatWindow{height:230px;overflow:auto;background:#07111b;border-radius:10px;padding:12px;margin:12px 0}.chatMsg{padding:8px 10px;border-bottom:1px solid #17283b}.chatMsg b{display:block;color:#ffc25c;margin-bottom:3px}.chatMsg span{color:#d9e7f5}.chatSend{display:flex;gap:8px}.chatSend input{flex:1}.teamCreateForm{padding:20px}.teamNameInput{background:#081522;color:#fff;border:1px solid #35506b;border-radius:10px;padding:12px 14px;min-width:280px}.emblemPicker{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.emblemChoice{font-size:24px;background:#132235;color:#fff;border:1px solid #2a4058;border-radius:10px;padding:8px 10px}.emblemChoice.active{outline:2px solid #e99a28}.teamFuture{margin-top:10px}.teamHeader,.teamTreasury,.teamSummary,.teamWarCard{padding:18px}.teamIdentity{display:flex;gap:14px;align-items:center}.teamEmblemLarge{font-size:52px}.teamHeader{display:flex;justify-content:space-between;gap:14px}.teamGrid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:16px}.teamBonusGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.teamBonusCard{padding:18px}.bonusBig{font-size:34px;font-weight:900;color:#ffc25c;margin:10px 0}.teamCost{font-weight:800;margin:10px 0}.treasuryNumbers{display:flex;gap:20px;flex-wrap:wrap;margin:10px 0}.warSelector{display:flex;gap:10px;margin:12px 0}.warSelect{flex:1;background:#081522;color:#fff;border:1px solid #35506b;border-radius:9px;padding:9px}.warCompare{display:grid;grid-template-columns:1fr 70px 1fr;gap:10px;align-items:center;text-align:center}.warCompare div{display:flex;flex-direction:column;gap:5px}.warVs{font-size:26px;font-weight:900}.warStatus{padding:5px 9px;border-radius:999px;font-weight:900}.warStatus.ready{background:#143c2b;color:#64dda0}.warStatus.used{background:#4b171d;color:#ff8d96}.warHistoryRow{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:10px;padding:7px 0;border-bottom:1px solid #203348}@media(max-width:1200px){.teamGrid,.teamBonusGrid{grid-template-columns:1fr}.rankingTeamRow{grid-template-columns:55px 1.2fr .7fr .8fr .7fr .8fr!important}.teamMembers .rankingRow{grid-template-columns:45px 1.2fr .8fr .6fr .8fr 1fr}}

/* v0.20 Hero Steps */
.heroStepsNav{position:relative}.navAlert{display:inline-flex;align-items:center;justify-content:center;margin-left:7px;width:20px;height:20px;border-radius:50%;background:#d83445;color:#fff;font-weight:1000;box-shadow:0 0 12px rgba(216,52,69,.6)}.heroStepSummary{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.heroStepSummary h2{margin:0 0 8px}.heroStepBig{font-size:48px;font-weight:1000;color:#ffc968}.heroStepProfile{padding:14px;background:#091522;border:1px solid #294157;border-radius:12px;line-height:1.7}.heroProgress{margin:10px 0 16px;height:20px}.heroCategoryTabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.heroTitlePicker{padding:12px 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.titleEquipped{outline:2px solid #e99a28}.heroStepList{display:flex;flex-direction:column;gap:10px}.heroStepCard{display:grid;grid-template-columns:86px 1fr 150px;gap:14px;align-items:center;padding:16px}.heroStepCard.stepDone{border-color:#2f6e47}.heroStepCard.stepClaimable{box-shadow:0 0 0 1px rgba(216,52,69,.45),0 0 20px rgba(216,52,69,.1)}.heroStepId{font-size:16px;font-weight:1000;color:#ffc968;display:flex;gap:8px;align-items:center}.redBang{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#d83445;color:#fff;font-weight:1000}.heroStepMain h3{margin:0 0 4px}.heroStepProgressText{font-weight:900;margin:9px 0 6px}.heroReward{margin-top:9px;color:#ffc968;font-weight:800}.completionDate,.claimedDate{font-size:12px;margin-top:6px;color:#74dca2}.claimedDate{color:#91a7bd}.heroStepAction{text-align:right}.claimRewardBtn{min-width:130px}.claimedMark{display:inline-block;padding:8px 10px;border-radius:9px;background:#173221;color:#8aefb0;font-weight:900}.lockedStep{color:#7f93a8;font-size:12px;font-weight:900}.hidden{display:none!important}@media(max-width:950px){.heroStepSummary{grid-template-columns:1fr}.heroStepCard{grid-template-columns:70px 1fr}.heroStepAction{grid-column:2;text-align:left}}


/* v0.21 Team War 2.0 */
.teamTrophyBig{margin-top:9px;font-size:20px;font-weight:900;color:#ffd36b}.warRosterCard,.teamActivity{margin-top:16px;padding:18px}.rosterSummary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.rosterSummary>div{background:#091522;border:1px solid #2d445c;border-radius:12px;padding:12px}.rosterSummary b,.rosterSummary span{display:block}.rosterSummary span{margin-top:7px;color:#9eb2c6;font-size:13px;line-height:1.45}.rosterButtons{display:flex;gap:5px;flex-wrap:wrap}.rosterBtn{padding:7px 9px}.rosterActive{outline:2px solid #49d596;background:#1a4d3a}.teamMemberWarRow{grid-template-columns:50px 1.25fr .8fr .55fr .8fr 2fr}.warHistoryRow{grid-template-columns:1.4fr .7fr .7fr 1fr .55fr}.warReplay{margin:8px 0 14px;padding:12px;background:#07121e;border:1px solid #334d68;border-radius:12px}.warReplayScore{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.warFightReplay{padding:10px;border-top:1px solid #24394f}.warFightReplay:first-of-type{border-top:0}.warFightTitle{margin-bottom:5px}.compactLog{height:120px;margin-top:8px}.activityList{max-height:360px;overflow:auto;margin-top:12px}.activityRow{display:grid;grid-template-columns:90px 1fr 170px;gap:10px;padding:9px 8px;border-bottom:1px solid #23384d;align-items:center}.activityType{text-transform:uppercase;font-size:11px;font-weight:900;color:#ffc260}.activityRow small{color:#849ab0;text-align:right}@media(max-width:1200px){.rosterSummary{grid-template-columns:1fr}.teamMemberWarRow{grid-template-columns:45px 1fr .7fr .5fr .7fr 1.5fr}.activityRow{grid-template-columns:75px 1fr}.activityRow small{grid-column:2;text-align:left}}


/* v0.22 World Trophy Mechanics */
.worldTrophyCard{padding:18px;margin-top:16px}.worldTrophyGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.worldTrophyItem{display:flex;gap:14px;align-items:center;background:#091522;border:1px solid #2d445c;border-radius:13px;padding:16px}.worldTrophyItem.worldTrophyOwned{outline:2px solid #e7a033;box-shadow:0 0 18px rgba(231,160,51,.18)}.worldTrophyIcon{font-size:46px;min-width:56px;text-align:center}.smallBonus{font-size:21px;margin:5px 0}.trophyEffectSummary{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}@media(max-width:900px){.worldTrophyGrid{grid-template-columns:1fr}}

/* v0.23 Social + Inbox */
.navAlert{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;border-radius:999px;background:#d84343;color:white;font-size:11px;font-weight:900}.socialTabs,.inboxTabs{margin-bottom:14px;display:flex;gap:8px;flex-wrap:wrap}.socialLayout{display:grid;grid-template-columns:minmax(260px,34%) 1fr;gap:14px}.socialSidebar,.socialConversation{padding:14px;min-height:520px}.socialPerson{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #24384c}.chatPerson{width:100%;background:#0a1623;border:1px solid #263d53;color:#eaf4ff;text-align:left;padding:10px;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.chatPerson.active,.chatPerson:hover{border-color:#e99a28}.chatPerson span,.socialPerson small{color:#91a7bd;font-size:12px}.conversationHead{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #294157;padding-bottom:10px}.conversationHead h3{margin:0}.privateChatWindow{height:360px;overflow:auto;background:#07111b;border-radius:10px;padding:12px;margin:12px 0}.socialMsg{max-width:82%;padding:9px 10px;border-radius:10px;background:#14273a;margin:7px 0;display:flex;flex-direction:column;gap:5px}.socialMsg.mine{margin-left:auto;background:#443116}.socialMsg>div{display:flex;justify-content:space-between;gap:12px}.socialMsg small{color:#829ab1}.miniBtn{border:0;border-radius:7px;padding:5px 8px;background:#263b51;color:#eaf4ff;font-size:11px;font-weight:800;cursor:pointer}.miniBtn.danger{background:#71313a}.emptyState{text-align:center;padding:100px 20px}.socialNote{margin-top:10px}.inboxList{display:grid;gap:12px}.mailCard{padding:16px}.mailCard.unread{border-left:4px solid #e99a28}.mailHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;cursor:pointer}.mailHead h3{margin:4px 0 0}.mailCategory{text-transform:uppercase;color:#ffc15c;font-size:11px;font-weight:900}.mailBody{color:#b6c7d8;line-height:1.55;margin:12px 0;white-space:pre-wrap}.mailAttachment{background:#091624;border:1px solid #294157;border-radius:9px;padding:10px;color:#ffc968}.claimedTag{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#173d2d;color:#69dda2;font-size:12px;font-weight:900}.emojiRow{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.emojiBtn{border:1px solid #2b4259;background:#0a1623;border-radius:8px;padding:5px 7px;cursor:pointer}.replyingBar,.replyQuote{background:#091624;border-left:3px solid #e99a28;padding:7px 9px;border-radius:6px;margin:6px 0;color:#b9cad9;font-size:12px}.chatMsg{padding:8px;border-bottom:1px solid #1d3144}.chatMsg.mine{background:rgba(233,154,40,.06)}.chatMsgHead{display:flex;justify-content:space-between;gap:12px}.chatMsgHead small{color:#7f97ae}.chatTools{display:flex;gap:5px;margin-top:6px}.chatMsg span{display:block;white-space:pre-wrap;word-break:break-word}@media(max-width:900px){.socialLayout{grid-template-columns:1fr}.socialSidebar{min-height:auto}.socialConversation{min-height:440px}}

/* v0.25 Playable Demo */
.testerTools{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.testerBadge{grid-column:1/-1;text-align:center;padding:7px;border-radius:8px;background:#392311;color:#ffc86b;font-size:11px;font-weight:900;border:1px solid #70471d}.tinyTool{padding:7px 6px;border:1px solid #344c64;border-radius:8px;background:#16283a;color:#d8e8f8;font-size:11px;cursor:pointer}.tinyTool:hover{background:#243d55}.clickableRank{cursor:pointer;transition:transform .12s,background .12s}.clickableRank:hover{transform:translateY(-1px);background:#172b3f}.modalClose{position:absolute;right:16px;top:12px;border:0;background:transparent;color:#fff;font-size:30px;cursor:pointer}.profileModalCard{width:min(920px,94vw);max-height:92vh;overflow:auto;text-align:left;position:relative}.profileHero{display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:center}.profileHero>img{width:180px;height:250px;object-fit:contain;background:#08131e;border-radius:14px}.profileHero h2{font-size:36px;margin:0 0 6px}.profileBadge{margin-top:10px;color:#ffd56b}.profileMeta{color:#a8bdd0;margin-top:7px}.profileDerived{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0}.profileDerived span{padding:9px;border-radius:9px;background:#0a1724;border:1px solid #2a4057;text-align:center;font-size:13px}.profileStats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.profileStats>div{display:flex;justify-content:space-between;background:#0b1723;border:1px solid #294057;border-radius:9px;padding:10px}.profileEquipment{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.profileEquip{display:flex;gap:9px;align-items:center;padding:8px;background:#0a1724;border-radius:9px;border:1px solid #263d53}.profileEquip img{width:48px;height:48px;object-fit:contain}.profileEquip span,.profileEquip small{display:block}.profileActions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.profileOfflineNote{margin-top:14px}.itemPowerBadge{display:inline-block;margin-bottom:7px;padding:5px 8px;border-radius:8px;background:#241f0e;border:1px solid #5a4a19;color:#ffdc72;font-size:12px;font-weight:900}.equipmentPowerTotal{margin-bottom:10px;font-size:16px}.equipmentPowerTotal b{color:#ffd86b}.derivedStat{margin-top:10px;padding:8px;border-radius:8px;background:#091622;border:1px dashed #2f4a63;color:#b9ccdd;font-size:12px;line-height:1.45}.rewardBreakdown{display:grid;gap:3px;margin:10px 0;padding:9px;border-radius:9px;background:#091621;border:1px solid #263f55;font-size:12px}.rewardBreakdown strong{color:#ffd26b;margin-top:3px}.threatTag{float:right;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900}.threatTag.weaker{background:#123d2b;color:#6ee3a5}.threatTag.similar{background:#473515;color:#ffd36a}.threatTag.stronger{background:#4b191e;color:#ff9299}.combatStage{min-height:410px;display:grid;grid-template-columns:1fr 90px 1fr;align-items:end;gap:12px;padding:18px;background:radial-gradient(circle at center,#152b40 0,#08131d 65%);border-radius:14px;overflow:hidden;position:relative}.combatStage.preview{min-height:350px}.combatant{position:relative;text-align:center;transition:transform .2s}.combatant>img{width:min(260px,90%);height:300px;object-fit:contain;filter:drop-shadow(0 10px 15px rgba(0,0,0,.45))}.combatHp{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:13px}.vsBurst{align-self:center;justify-self:center;font-size:34px;font-weight:1000;color:#ffb443;text-shadow:0 0 18px rgba(255,149,42,.6)}.combatant.attacking.left{animation:lungeRight .55s ease}.combatant.attacking.right,.combatant.enemyAttack{animation:lungeLeft .55s ease}.combatant.hitFlash>img{animation:hitFlash .45s ease}.combatant.dodging.left{animation:dodgeLeft .45s ease}.combatant.dodging.right{animation:dodgeRight .45s ease}.combatant.specialAttack>img{animation:specialPulse .55s ease}.damageFloat,.dodgeFloat{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%);font-size:28px;font-weight:1000;color:#ff6c6c;text-shadow:0 2px 8px #000;animation:floatDamage .8s ease forwards;pointer-events:none}.critDamage{color:#ffd34d;font-size:33px}.dodgeFloat{color:#78dbff;font-size:24px}.battleStatsMini{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:9px 0}.battleStatsMini span{padding:5px 8px;border-radius:999px;background:#0a1723;border:1px solid #294158;font-size:11px}.devModalCard{width:min(680px,92vw);position:relative}.devSummary{margin:12px 0;padding:12px;background:#091722;border-radius:9px}.devGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:14px 0}.devGrid button{padding:11px;border:0;border-radius:9px;background:#263d53;color:#fff;font-weight:800;cursor:pointer}.devGrid button:hover{background:#34516d}
@keyframes lungeRight{0%,100%{transform:translateX(0)}45%{transform:translateX(90px) scale(1.04)}}@keyframes lungeLeft{0%,100%{transform:translateX(0)}45%{transform:translateX(-90px) scale(1.04)}}@keyframes hitFlash{0%,100%{filter:drop-shadow(0 10px 15px rgba(0,0,0,.45))}25%,65%{filter:brightness(1.8) saturate(2) sepia(.3) hue-rotate(315deg) drop-shadow(0 0 24px #ff3333)}}@keyframes dodgeLeft{0%,100%{transform:translateX(0)}45%{transform:translateX(-55px)}}@keyframes dodgeRight{0%,100%{transform:translateX(0)}45%{transform:translateX(55px)}}@keyframes specialPulse{0%,100%{filter:drop-shadow(0 10px 15px rgba(0,0,0,.45))}50%{filter:brightness(1.4) drop-shadow(0 0 30px #bb73ff)}}@keyframes floatDamage{0%{opacity:0;transform:translate(-50%,0) scale(.7)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-90px) scale(1.15)}}
@media(max-width:900px){.profileHero{grid-template-columns:1fr}.profileDerived{grid-template-columns:1fr 1fr}.profileStats,.profileEquipment{grid-template-columns:1fr 1fr}.combatStage{grid-template-columns:1fr 45px 1fr;min-height:330px}.combatant>img{height:220px}}

/* v0.26.1 Mobile / iPhone / Android responsive pass */
html{-webkit-text-size-adjust:100%;touch-action:manipulation}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}img{max-width:100%}
@media(max-width:700px){
  body{min-width:0;padding-bottom:82px;overflow-x:hidden}
  .app{display:block;min-height:100dvh}
  .topbar{position:sticky;top:0;z-index:30;padding:8px 10px;display:block;background:rgba(16,29,44,.97);backdrop-filter:blur(8px)}
  .topbar>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
  .logo{font-size:20px;white-space:nowrap}.sub{font-size:9px;text-align:right;margin:0}
  .resources{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:7px;width:100%}
  .resource{height:34px;min-width:0;padding:4px 3px;border-radius:9px;gap:3px;font-size:10px;overflow:hidden;white-space:nowrap}
  .resource img{width:20px;height:20px}.resource.text{font-size:10px}
  .sidebar{position:fixed;left:0;right:0;bottom:0;z-index:40;height:70px;padding:6px 7px max(6px,env(safe-area-inset-bottom));display:flex;flex-direction:row;gap:5px;overflow-x:auto;overflow-y:hidden;border-right:0;border-top:1px solid #31465d;background:rgba(9,20,31,.98);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sidebar::-webkit-scrollbar{display:none}.nav{flex:0 0 auto;width:auto;min-width:76px;height:54px;padding:5px 9px;border-radius:10px;text-align:center;font-size:11px;line-height:1.15;white-space:normal}
  .navAlert{position:absolute;margin-top:-7px;margin-left:1px}.clockBox,.testerTools,.tinyReset{display:none}
  .main{padding:13px 10px 24px;max-width:none;margin:0;width:100%}
  .screenTitle h1{font-size:26px}.screenTitle p{font-size:13px;margin-bottom:13px}.card{border-radius:13px}
  .heroHead{grid-template-columns:105px 1fr;gap:12px;padding:12px}.heroImg{width:105px;height:175px}.heroInfo h1{font-size:26px;margin:5px 0}.title{font-size:11px;padding:5px 8px}.level{font-size:15px;margin:9px 0}.xpLine{font-size:11px}.passiveSummary{font-size:11px;margin-top:10px}
  .stats,.grid2,.grid3,.teamGrid,.teamBonusGrid,.equipmentRows,.profileStats,.profileEquipment,.socialLayout{grid-template-columns:1fr!important;gap:10px}
  .statCard,.missionCard,.trainingCard,.upgradeCard,.shopCard,.inventoryCard,.duelCard{padding:12px}.missionCard h3,.trainingCard h3,.upgradeCard h3,.shopCard h3,.inventoryCard h3,.duelCard h3{font-size:18px}
  .muted{font-size:12px}.tag{font-size:10px;padding:4px 6px}.tags{gap:5px;margin:8px 0}.actions{display:grid;grid-template-columns:1fr;gap:7px}.actions button,.primary,.secondary,.danger{min-height:44px;width:100%;font-size:13px}
  .itemVisual{height:145px}.itemVisual img{width:135px;height:135px}.equipSlots{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.equipSlot{min-height:70px;padding:7px;font-size:10px}
  .inventoryToolbar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.filterBtn{flex:0 0 auto;min-height:38px}
  .botImg{height:250px}.duelArena{padding:10px;margin-top:10px}.combatStage,.combatStage.preview{min-height:300px;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:4px;padding:8px}.combatant>img{width:100%;height:190px}.vsBurst{font-size:22px}.combatHp{font-size:9px}.damageFloat,.dodgeFloat{font-size:20px}.battleLog{height:130px;font-size:11px;padding:8px}.fightHeader{gap:8px}.fighter{width:50%;font-size:10px}.battleStatsMini{gap:4px}.battleStatsMini span{font-size:9px;padding:4px 5px}
  .modal{padding:10px;align-items:flex-end}.modalCard{width:100%;max-height:88dvh;overflow:auto;padding:18px 14px;border-radius:18px 18px 10px 10px}.resultCard #resultBody{font-size:14px}.profileModalCard{width:100%;max-height:90dvh}.profileHero{grid-template-columns:105px 1fr;gap:10px}.profileHero>img{width:105px;height:160px}.profileHero h2{font-size:24px}.profileDerived{grid-template-columns:1fr 1fr}
  .socialSidebar,.socialConversation{min-height:0}.privateChatWindow{height:300px}.socialMsg{max-width:92%}.inboxList{gap:8px}.mailCard{padding:12px}
  .teamHeader{padding:12px;display:block}.teamIdentity{margin-bottom:10px}.teamEmblemLarge{width:55px;height:55px;font-size:30px}.bonusBig{font-size:26px}
  .shopMeta{display:block}.shopMeta>*{margin:6px 0}.rarityOdds{font-size:11px}.activeMission{padding:12px}
  #specialMissionGrid .botImg{height:230px}
}
@media(max-width:390px){
  .logo{font-size:17px}.sub{display:none}.resources{gap:3px}.resource{font-size:9px}.resource img{width:17px;height:17px}.nav{min-width:70px;font-size:10px}.heroHead{grid-template-columns:90px 1fr}.heroImg{width:90px;height:155px}.combatant>img{height:165px}.botImg{height:220px}
}


/* v0.27 Progression Map */
.navLocked{opacity:.55}.navLock{font-size:10px;float:right;opacity:.9}.progressionSummary{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.progressionNext{text-align:right}.progressionMap{max-width:900px;margin:0 auto;padding:8px 0 30px}.progressionNode{position:relative;display:grid;grid-template-columns:74px 68px 1fr;gap:14px;min-height:126px}.progressionRail{position:relative}.progressionRail:before{content:"";position:absolute;left:34px;top:24px;width:14px;height:14px;border-radius:50%;background:#666;border:3px solid #20242d;z-index:2}.progressionRail span{position:absolute;left:40px;top:37px;width:2px;height:calc(100% - 10px);background:#4b5260}.progressionNode.unlocked .progressionRail:before{background:#f4c542;box-shadow:0 0 14px rgba(244,197,66,.45)}.progressionNode.unlocked .progressionRail span{background:#a98a2f}.progressionLevel{font-weight:900;padding-top:19px;white-space:nowrap}.progressionIcon{position:absolute;left:77px;top:48px;font-size:26px;display:none}.progressionBody{margin-bottom:14px;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}.progressionNode.unlocked .progressionBody{border-color:rgba(244,197,66,.35)}.progressionNode.locked .progressionBody{opacity:.58}.progressionNode.planned .progressionBody{border-style:dashed}.progressionNodeHead{display:flex;justify-content:space-between;gap:12px;align-items:center}.progressionNodeHead h3{margin:0}.progressionBody p{margin:7px 0 10px;color:#aeb6c5}.progressionStatus{font-size:11px;font-weight:900;letter-spacing:.06em;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.08)}.progressionNode.unlocked:not(.planned) .progressionStatus{background:rgba(100,227,159,.15);color:#64e39f}.progressionNode.planned .progressionStatus{color:#b79cff}
@media(max-width:700px){.progressionSummary{display:block}.progressionNext{text-align:left;margin-top:10px}.progressionNode{grid-template-columns:52px 1fr;gap:8px}.progressionRail:before{left:20px}.progressionRail span{left:26px}.progressionLevel{font-size:12px}.progressionBody{grid-column:2;margin-top:-72px;margin-left:55px}.progressionNode{min-height:145px}}

/* v0.28 Hero Tree */
.heroTreeNav{font-weight:800}.heroTreeSummary{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}.heroTreePointBig{font-size:34px;font-weight:900}.heroTreeTabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.heroTreeTab{border:1px solid rgba(255,255,255,.12);background:#171c28;color:#eef3ff;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}.heroTreeTab.active{outline:2px solid rgba(255,255,255,.35);transform:translateY(-1px)}.heroTreeGrid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px}.heroNode{position:relative;min-height:170px}.heroNode.locked{opacity:.58}.heroNode.bought{box-shadow:0 0 0 2px rgba(104,227,159,.28) inset}.heroNode .nodeTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.heroNode .nodeIcon{font-size:28px}.heroNode .nodeName{font-size:18px;font-weight:900}.heroNode .nodeTier{font-size:12px;opacity:.7}.heroNode .nodeEffect{margin-top:8px;line-height:1.45}.heroNode .nodeReq{margin-top:8px;font-size:12px;opacity:.72}.heroNode .nodeState{font-size:12px;font-weight:900}.heroNode.finalNode{border:1px solid rgba(255,211,92,.35)}.heroTreePathInfo{margin-top:8px}.heroTreeNextPoints{font-size:13px;opacity:.78}.heroTreeReset{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.heroTreeLegend{display:flex;gap:8px;flex-wrap:wrap}.heroTreeLegend .tag{white-space:nowrap}@media(max-width:1000px){.heroTreeGrid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:700px){.heroTreeGrid{grid-template-columns:1fr}.heroTreeSummary{align-items:flex-start}.heroTreePointBig{font-size:28px}}

/* ===== v0.29 Team War Stat Strategy ===== */
.heroChoiceOverlay{position:fixed;inset:0;background:rgba(5,7,12,.82);z-index:9998;display:grid;place-items:center;padding:20px}.heroChoiceOverlay.hidden{display:none}.heroChoiceBox{width:min(720px,94vw);background:#151925;border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.55)}.heroChoiceButtons{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0}
.twStrategyIntro{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin:0 0 14px}.twStrategyIntro>div{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);border-radius:14px;padding:14px}.twStrategyIntro span{display:block;margin-top:5px}.twNoBonus{display:flex;align-items:center;font-weight:800;font-size:15px;line-height:1.45}.twPlanGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.twPlan{padding:14px!important}.twOrderList{display:grid;gap:7px}.twOrderRow{display:grid;grid-template-columns:28px minmax(140px,1fr) auto;gap:8px;align-items:center;padding:8px 10px;background:rgba(255,255,255,.035);border-radius:10px}.twOrderRow small,.twScout span,.twScout small{display:block;color:#9ba6bd}.twOrderNo{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.08);font-weight:900}.twScoutPanel{margin-top:15px;border-top:1px solid rgba(255,255,255,.09);padding-top:14px}.twScoutGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.twScout{padding:10px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}.twPersonalStats{margin-top:12px}.twPersonalGrid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.twPersonalGrid span{padding:12px;text-align:center;border-radius:12px;background:rgba(255,255,255,.04)}.twPersonalGrid b{display:block;font-size:19px}.twPersonalGrid small{display:block;color:#9ba6bd;margin-top:3px}
.teamWarArenaOverlay{position:fixed;inset:0;background:rgba(3,5,10,.96);z-index:9999;overflow:auto;padding:18px}.teamWarArenaOverlay.hidden{display:none}.teamWarArenaShell{width:min(1400px,100%);min-height:calc(100vh - 36px);margin:auto;background:linear-gradient(180deg,#141925,#0b0e16);border:1px solid rgba(255,255,255,.12);border-radius:24px;box-shadow:0 30px 100px rgba(0,0,0,.65);display:flex;flex-direction:column}.teamWarArenaHeader{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.09)}.warArenaEyebrow{font-size:11px;letter-spacing:.18em;color:#f2b84b;font-weight:900}.warArenaScore{color:#aeb9cf}.warArenaScore b{color:#fff;font-size:20px}.warArenaClose{width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:28px;cursor:pointer}.warArenaMeta{display:flex;gap:10px;flex-wrap:wrap;padding:14px 24px}.warArenaMeta span,.warArenaFormula span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.055);color:#bdc6d9;font-size:12px}.warArenaStage{min-height:510px;display:grid;grid-template-columns:minmax(300px,1fr) 100px minmax(300px,1fr);align-items:center;gap:20px;padding:14px 42px 0;overflow:hidden;background:radial-gradient(circle at 50% 70%,rgba(219,82,65,.12),transparent 45%),linear-gradient(180deg,rgba(255,255,255,.02),transparent)}.warArenaFighter{position:relative;min-width:0;text-align:center;transition:transform .18s,filter .18s}.warArenaFighter img{height:350px;max-width:92%;object-fit:contain;filter:drop-shadow(0 22px 25px rgba(0,0,0,.45))}.warArenaFighter.right img{transform:scaleX(-1)}.warArenaName{display:flex;justify-content:space-between;gap:10px;text-align:left;margin-bottom:7px}.warArenaName span{color:#9ba6bd;font-size:12px}.warArenaHp{height:13px;border-radius:20px;background:#2b3040;overflow:hidden}.warArenaHp .fill{height:100%;background:linear-gradient(90deg,#d94f45,#f0b54c);transition:width .3s}.warArenaFighter.right .warArenaHp .fill{background:linear-gradient(90deg,#6b6fe8,#ca4bc9)}.warArenaHpText{font-size:12px;color:#aeb9cf;margin-top:4px}.warArenaStats{padding:8px 10px;border-radius:12px;background:rgba(0,0,0,.32);font-weight:700;font-size:12px}.warArenaVs{font-size:42px;font-weight:1000;text-align:center;color:#f4cf70;text-shadow:0 0 25px rgba(244,207,112,.35)}.warArenaEvent{margin:10px 24px 0;padding:14px 18px;border-radius:14px;background:rgba(255,255,255,.04);min-height:48px;font-weight:700;text-align:center}.warArenaFormula{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:14px 24px}.warArenaControls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:16px 20px 22px;margin-top:auto;border-top:1px solid rgba(255,255,255,.08)}.warDamageFloat,.warDodgeFloat{position:absolute;top:145px;left:50%;transform:translateX(-50%);font-size:28px;font-weight:1000;z-index:5;text-shadow:0 3px 12px #000}.warDamageFloat{color:#ff7468}.warDamageFloat.crit{color:#ffd65a;font-size:34px}.warDodgeFloat{color:#79e7ff}.warAttack.left{transform:translateX(30px)}.warAttack.right{transform:translateX(-30px)}.warHit{animation:warHit .28s ease}.warCritHit{animation:warCrit .35s ease}.warDodge{animation:warDodge .36s ease}.warSpecial{filter:drop-shadow(0 0 25px rgba(185,88,255,.95))}.warArenaFighter.right.warAttack{transform:translateX(-30px)}
@keyframes warHit{0%,100%{transform:translateX(0)}45%{transform:translateX(12px);filter:brightness(1.8)}}@keyframes warCrit{0%,100%{transform:scale(1)}45%{transform:scale(1.025);filter:brightness(2) saturate(1.6)}}@keyframes warDodge{0%,100%{transform:translateX(0)}50%{transform:translateX(-36px);filter:blur(.4px)}}
@media(max-width:800px){.heroChoiceButtons{grid-template-columns:1fr}.twStrategyIntro,.twPlanGrid,.twScoutGrid{grid-template-columns:1fr}.twPersonalGrid{grid-template-columns:repeat(3,1fr)}.twOrderRow{grid-template-columns:28px 1fr}.twOrderRow>span:last-child{grid-column:2}.warArenaStage{grid-template-columns:1fr 50px 1fr;min-height:390px;padding:10px}.warArenaFighter img{height:220px}.warArenaName{display:block}.warArenaStats{font-size:10px}.warArenaVs{font-size:26px}.teamWarArenaOverlay{padding:0}.teamWarArenaShell{border-radius:0;min-height:100vh}}

/* v0.30 Combat Engine 2.0 */
.ceProfileStrip{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08);font-size:12px}.ceProfileStrip span,.ceProfileStrip b{padding:4px 7px;border-radius:8px;background:rgba(255,255,255,.055)}
.combatV2DuelTools{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:12px 0 2px;padding:12px 14px;border:1px solid rgba(147,112,255,.22);background:rgba(112,78,214,.08);border-radius:14px}
.combatV2Arena{position:fixed;inset:0;z-index:9998;background:rgba(5,6,11,.94);padding:22px;overflow:auto;backdrop-filter:blur(10px)}.combatV2Arena.hidden{display:none}.combatV2Shell{max-width:1240px;margin:0 auto;background:linear-gradient(180deg,#171927,#10111a);border:1px solid rgba(255,255,255,.13);border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.55);overflow:hidden}.combatV2Header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.combatV2Header h2{margin:3px 0 4px;font-size:28px}.combatV2Eyebrow{font-size:11px;letter-spacing:.18em;color:#aa91ff;font-weight:800}.combatV2Matchup{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:12px 22px;text-align:center;background:rgba(255,255,255,.025)}.combatV2Matchup span:first-child{text-align:left}.combatV2Matchup span:last-child{text-align:right}.combatV2Matchup b{padding:6px 10px;border-radius:999px;background:rgba(255,183,65,.11);color:#ffd28a}.combatV2Stage{display:grid;grid-template-columns:1fr 70px 1fr;gap:16px;align-items:end;min-height:470px;padding:18px 32px 10px;background:radial-gradient(circle at 50% 80%,rgba(114,82,220,.18),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.015),rgba(0,0,0,.2))}.combatV2Fighter{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0}.combatV2Fighter h3{margin:0 0 8px}.combatV2Fighter img{width:min(100%,330px);height:330px;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(0,0,0,.4));transition:.15s transform,.15s filter}.combatV2Fighter.isHit img{transform:translateX(8px) rotate(1deg);filter:drop-shadow(0 0 20px rgba(255,70,70,.55))}.combatV2Vs{align-self:center;text-align:center;font-size:26px;font-weight:900;color:#9b89d9}.combatV2Hp{width:min(100%,360px);height:13px;background:#2a2e3d;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.combatV2Hp>div{height:100%;background:linear-gradient(90deg,#53a9ff,#78d2ff);transition:.25s width}.combatV2Hp.enemy>div{background:linear-gradient(90deg,#ff5b69,#ff876b)}.combatV2Build{font-size:12px;font-weight:800;margin-top:5px;color:#d8d1ff}.combatV2Stats{font-size:12px;color:#aeb4c7;margin-top:4px}.combatV2Event{min-height:56px;padding:16px 22px;text-align:center;font-weight:700;font-size:15px;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);background:rgba(0,0,0,.18)}.combatV2Formula{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 18px}.combatV2Formula span{font-size:11px;padding:8px;border-radius:10px;background:rgba(255,255,255,.035);text-align:center;color:#aeb4c7}.combatV2Controls{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:14px 18px 20px}.combatV2Fighter .warDamageFloat{position:absolute;top:125px;right:16%;z-index:3;font-size:20px;font-weight:900;color:#ff8585;text-shadow:0 2px 9px #000}.combatV2Fighter .warDamageFloat.crit{font-size:25px;color:#ffd06c}
.gangHuntV030{margin-top:16px;padding:18px}.gangHead{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.gangHead h3{margin:0 0 8px}.gangHp{min-width:280px;text-align:right}.gangHp .bar{margin-top:7px}.gangMembers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.gangMember{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);border-radius:14px}.gangMember.defeated{opacity:.52}.gangMember img{width:72px;height:84px;object-fit:contain}.gangMember small{display:block;color:#9299ab}.gangMemberHp{height:7px;background:#2b2e38;border-radius:999px;overflow:hidden;margin:6px 0}.gangMemberHp span{display:block;height:100%;background:#d75a65}.gangContribution{margin-top:14px}.gangContribution>div{display:grid;grid-template-columns:1fr auto 150px;gap:10px;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.055)}.gangContribution small{text-align:right;color:#8f96aa}.gangVictory{margin-top:12px;padding:12px;border-radius:12px;background:rgba(65,194,126,.12);border:1px solid rgba(65,194,126,.25);font-weight:900;text-align:center}
@media(max-width:800px){.combatV2Arena{padding:8px}.combatV2Stage{grid-template-columns:1fr 34px 1fr;min-height:390px;padding:12px 8px}.combatV2Fighter img{height:240px}.combatV2Formula{grid-template-columns:1fr 1fr}.gangHead{flex-direction:column}.gangHp{min-width:0;width:100%;text-align:left}.gangMembers{grid-template-columns:1fr}.gangMember{grid-template-columns:56px 1fr}.gangMember img{width:56px;height:70px}.gangMember button{grid-column:1/-1}.gangContribution>div{grid-template-columns:1fr auto}.gangContribution small{grid-column:1/-1;text-align:left}.combatV2DuelTools{flex-direction:column;align-items:flex-start}}


/* v0.30.2 Duel stat panel integration */
.duelStatPanels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:14px 0 12px}.duelStatPanel{padding:12px;background:#0b1723;border:1px solid #294158;border-radius:16px;min-width:0}.duelStatHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.duelStatHeader strong{font-size:18px;display:block}.duelStatHeader small{display:block;color:#8eabc6;font-size:11px;margin-bottom:2px}.duelHpNow{font-size:12px;color:#ffd27a;text-align:right;white-space:nowrap}.duelDerivedStrip{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}.duelDerivedStrip span{padding:4px 7px;border-radius:999px;background:#111f2e;border:1px solid #33506a;font-size:10px;color:#dbe8f4}.duelStatBoard{position:relative;width:100%;aspect-ratio:1672/941;background:url("assets/ui/stat/stat_bar_design.webp") center/100% 100% no-repeat;overflow:hidden}.duelStatRow{position:absolute;left:37.0%;width:58.2%;height:9.2%;border-radius:999px;overflow:hidden;pointer-events:none}.duelStatRowFill{position:absolute;left:0;top:14%;height:72%;border-radius:999px;box-shadow:inset 0 0 8px rgba(255,255,255,.22),0 0 8px rgba(0,0,0,.35);opacity:.9;transition:width .25s ease}.duelStatRowValue{position:absolute;right:1.5%;top:50%;transform:translateY(-50%);font-size:clamp(11px,1.3vw,20px);color:white;font-weight:1000;letter-spacing:.3px;text-shadow:0 2px 7px #000}.duelScaleNote{margin-top:7px;color:#758ba2;font-size:10px;text-align:center}.duelArena .battleLog.duelArenaInfo{height:auto;min-height:0}.combatStage.preview{margin-bottom:0}@media(max-width:1150px){.duelStatPanels{grid-template-columns:1fr}.duelStatRowValue{font-size:clamp(11px,2vw,19px)}}

/* v0.30.3 UI revise: stat bars + mission live panel */
.duelStatRow{left:34.35%;width:56.15%;height:8.55%}
.duelStatRowFill{top:11%;height:78%;border-radius:999px;box-shadow:inset 0 0 8px rgba(255,255,255,.22),0 0 10px rgba(0,0,0,.36);opacity:.96}
.duelStatRowValue{right:.9%;font-size:clamp(11px,1.25vw,20px);text-shadow:0 2px 7px rgba(0,0,0,.96)}

.statCard.hasArtBar .bar{display:none}
.statCard.hasArtBar{overflow:hidden}
.statArtBar{position:relative;width:100%;margin:10px 0 10px;aspect-ratio:1672/170;background-repeat:no-repeat;background-size:100% 100%}
.statArtBar.strength{background-image:url('assets/ui/stat/rows/strength.webp')}
.statArtBar.stamina{background-image:url('assets/ui/stat/rows/stamina.webp')}
.statArtBar.agility{background-image:url('assets/ui/stat/rows/agility.webp')}
.statArtBar.intelligence{background-image:url('assets/ui/stat/rows/intelligence.webp')}
.statArtBar.intuition{background-image:url('assets/ui/stat/rows/intuition.webp')}
.statArtBar.charisma{background-image:url('assets/ui/stat/rows/charisma.webp')}
.statArtFill{position:absolute;left:34.35%;top:11%;height:78%;border-radius:999px;box-shadow:inset 0 0 8px rgba(255,255,255,.22),0 0 10px rgba(0,0,0,.36);opacity:.96}
.statArtValue{position:absolute;right:1.2%;top:50%;transform:translateY(-50%);font-size:clamp(14px,1.7vw,22px);line-height:1;color:#fff;font-weight:1000;text-shadow:0 2px 7px rgba(0,0,0,.96)}
.statArtScale{margin-top:4px;color:#7b90a6;font-size:11px}

.missionLiveCard{position:relative;min-height:360px;padding:0;border:none;background:linear-gradient(180deg,#dfeaf4 0%,#c9d8e8 100%);box-shadow:0 18px 40px rgba(0,0,0,.28);overflow:hidden}
.missionLiveGloss{position:absolute;inset:0;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.22) 0,rgba(255,255,255,.12) 18%,rgba(255,255,255,0) 19%,rgba(255,255,255,0) 100%);pointer-events:none}
.missionLiveTitle{position:absolute;left:50%;top:18px;transform:translateX(-50%);min-width:min(78%,520px);padding:18px 30px;border-radius:24px;background:linear-gradient(180deg,#44a9ff 0%,#2374ee 100%);color:#fff;text-align:center;font-size:28px;font-weight:1000;letter-spacing:.4px;box-shadow:inset 0 2px 0 rgba(255,255,255,.35),0 7px 18px rgba(31,89,157,.35)}
.missionLiveBody{position:absolute;left:52px;right:52px;top:112px;bottom:34px;display:flex;flex-direction:column;justify-content:flex-start}
.missionLiveMeta{color:#2f4155;font-size:17px;font-weight:800;margin-bottom:8px}
.missionLiveName{font-size:20px;color:#223547;font-weight:900;margin-bottom:10px}
.missionLiveBarWrap{position:relative;margin:16px 0 24px;padding:8px 0 0}
.missionLiveBarFrame{height:56px;border-radius:28px;padding:7px;background:linear-gradient(180deg,#b8cae0 0%,#90a6c2 100%);box-shadow:inset 0 0 0 4px rgba(255,255,255,.55),0 4px 10px rgba(49,72,97,.18)}
.missionLiveBarInset{position:relative;height:100%;border-radius:22px;background:linear-gradient(180deg,#778ba5 0%,#5f7592 100%);box-shadow:inset 0 7px 12px rgba(0,0,0,.18)}
.missionLiveBarFill{position:absolute;left:0;top:0;bottom:0;border-radius:22px;background:linear-gradient(180deg,#ffc859 0%,#ff8f1c 100%);box-shadow:inset 0 0 0 3px rgba(255,241,171,.45),0 0 16px rgba(255,153,39,.35)}
.missionLiveBarText{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;color:#f3f7fc;text-shadow:0 2px 4px rgba(0,0,0,.35)}
.missionLiveButtons{display:flex;gap:18px;align-items:center;justify-content:center;margin-top:auto;padding-top:10px;flex-wrap:wrap}
.missionBtnInstant{min-width:320px;min-height:68px;padding:16px 26px;border:none;border-radius:24px;background:linear-gradient(180deg,#ffd55a 0%,#ff7f1d 100%);color:#fff;font-size:24px;font-weight:1000;box-shadow:inset 0 0 0 4px rgba(255,241,171,.45),0 6px 16px rgba(217,106,0,.32);cursor:pointer}
.missionBtnCancel{min-width:200px;min-height:52px;padding:12px 20px;border:none;border-radius:20px;background:linear-gradient(180deg,#d5e7ff 0%,#9bbcf1 100%);color:#355074;font-size:17px;font-weight:900;box-shadow:inset 0 0 0 3px rgba(255,255,255,.45),0 5px 12px rgba(49,72,97,.18);cursor:pointer}
.missionLiveIdle{padding:24px;text-align:center;color:#dce8f4}
.missionLiveIdle b{display:block;font-size:22px;margin-bottom:8px}
@media(max-width:1180px){
  .missionLiveBody{left:28px;right:28px;top:108px}
  .missionLiveTitle{font-size:22px;padding:14px 20px}
}


/* v0.30.3.1 normalized round menu icons */
.sidebar .nav{height:76px;display:grid;grid-template-columns:54px 1fr;align-items:center;gap:10px;padding:8px 12px;overflow:visible;position:relative;background:#132438;border:1px solid transparent}
.sidebar .nav:hover{background:#1a3047;color:#eaf4ff;border-color:#36526d}
.sidebar .nav.active{background:#15283d;color:#fff;border-color:#e99a28;box-shadow:inset 3px 0 0 #e99a28}
.navIcon,.navFallbackIcon{width:54px;height:54px;object-fit:contain;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}
.navFallbackIcon{border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#7536db,#238fe3);border:3px solid #c7d9f3;font-size:22px;font-weight:1000;color:#fff}
.navText{font-size:14px;font-weight:900;line-height:1.1}
.navAlert{position:absolute;right:8px;top:8px}
@media(max-width:900px){
  .sidebar .nav{min-width:74px;width:74px;height:58px;grid-template-columns:1fr;justify-items:center;gap:0;padding:3px 5px}
  .navIcon,.navFallbackIcon{width:42px;height:42px}
  .navText{display:none}
  .navAlert{right:2px;top:2px}
}


/* v0.30.4 Stat + Mission cleanup patch */
.stats.slimStatList{display:flex!important;flex-direction:column!important;gap:14px!important}
.heroStatRow{position:relative;padding:14px 18px;overflow:visible;background:linear-gradient(180deg,#112439 0%,#0d1d30 100%)}
.heroStatBarArt{position:relative;width:100%;background-repeat:no-repeat;background-size:100% 100%;filter:drop-shadow(0 5px 10px rgba(0,0,0,.25))}
.heroStatBarArt.strength{background-image:url('assets/ui/stat/rows/strength.webp')}
.heroStatBarArt.stamina{background-image:url('assets/ui/stat/rows/stamina.webp')}
.heroStatBarArt.agility{background-image:url('assets/ui/stat/rows/agility.webp')}
.heroStatBarArt.intelligence{background-image:url('assets/ui/stat/rows/intelligence.webp')}
.heroStatBarArt.intuition{background-image:url('assets/ui/stat/rows/intuition.webp')}
.heroStatBarArt.charisma{background-image:url('assets/ui/stat/rows/charisma.webp')}
.heroStatFillClip{position:absolute;left:34.35%;top:11%;width:56.15%;height:78%;overflow:hidden;border-radius:999px}
.heroStatFill{height:100%;border-radius:999px;box-shadow:inset 0 0 10px rgba(255,255,255,.26),0 0 12px rgba(0,0,0,.28);opacity:.97}
.heroStatValue{position:absolute;right:1%;top:50%;transform:translateY(-50%);font-size:clamp(15px,1.8vw,26px);line-height:1;color:#fff;font-weight:1000;text-shadow:0 2px 8px rgba(0,0,0,.96)}
.heroStatBonus{position:absolute;right:1%;top:12%;font-size:clamp(12px,1.1vw,17px);font-weight:900;color:#67e3a0;text-shadow:0 1px 4px rgba(0,0,0,.9)}
.heroStatMeta{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8fa8c2;font-size:12px}
.heroStatMeta .tier{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#091421;border:1px solid #29425a;font-weight:800}
.heroStatHover{font-weight:800;color:#b8c9da}
.heroStatTooltip{position:absolute;left:18px;right:18px;top:calc(100% + 8px);padding:14px 16px;border-radius:16px;background:rgba(7,15,24,.98);border:1px solid rgba(72,108,141,.95);box-shadow:0 20px 40px rgba(0,0,0,.38);opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s ease;z-index:12;pointer-events:none}
.heroStatRow:hover .heroStatTooltip{opacity:1;visibility:visible;transform:translateY(0)}
.heroStatTooltip h4{margin:0 0 10px;font-size:16px;color:#eef6ff}
.heroStatTooltipGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin-bottom:10px}
.heroStatTooltipGrid div{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:#c9d8e6}
.heroStatTooltipGrid span:last-child{font-weight:900;color:#fff}
.heroStatTooltipNote{padding-top:10px;border-top:1px solid rgba(255,255,255,.08);color:#9fb5ca;font-size:12px;line-height:1.45}
.equipmentPowerTotal{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:#091624;border:1px solid #294157;color:#dbe8f4}
#upgradeGrid.upgradeBarList{display:flex;flex-direction:column;gap:14px}
.upgradeBarCard{padding:14px 18px}
.upgradeBarCard .actions{justify-content:flex-end}
.upgradeCardTop{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}
.upgradeCardTitle{font-size:18px;font-weight:1000}
.upgradeCardCost{color:#ffc968;font-weight:900;font-size:14px}
.upgradeCharismaNote{color:#91a7bd;font-size:13px;margin-top:10px}
.globalMissionBanner{position:sticky;top:92px;z-index:6;margin:0 28px 14px;padding:14px 18px;border-radius:18px;border:1px solid #39506a;background:linear-gradient(180deg,#132235 0%,#0f1c2c 100%);box-shadow:0 12px 26px rgba(0,0,0,.28)}
.globalMissionBanner.hidden{display:none}
.globalMissionInner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.globalMissionIcon{width:68px;height:68px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 8px 14px rgba(0,0,0,.3))}
.globalMissionMain{flex:1 1 360px;min-width:280px}
.globalMissionEyebrow{font-size:11px;letter-spacing:.16em;color:#8fbef7;font-weight:900;text-transform:uppercase;margin-bottom:4px}
.globalMissionName{font-size:20px;font-weight:1000;color:#f2f7fe;margin-bottom:8px}
.globalMissionText{font-size:13px;color:#a9bdd0;line-height:1.4}
.globalMissionProgress{margin-top:10px;height:16px;border-radius:999px;overflow:hidden;background:#081421;border:1px solid #294157}
.globalMissionProgress>span{display:block;height:100%;background:linear-gradient(90deg,#ffbe46,#ff7e1f)}
.globalMissionActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.globalMissionPills{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rewardPill{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:999px;background:#091624;border:1px solid #2b4259;color:#eef6ff;font-weight:900;font-size:13px}
.rewardPill img{width:18px;height:18px;object-fit:contain}
.rewardPill.paper img{width:16px;height:16px}
.globalMissionClose{border:0;border-radius:12px;background:#25394d;color:#eaf4ff;padding:10px 14px;font-weight:900;cursor:pointer}
.missionLiveCardClean{padding:18px;background:linear-gradient(180deg,#112338 0%,#0d1c2d 100%)}
.missionLiveCardClean h3{margin:0 0 8px;font-size:22px}
.missionLiveCardClean p{margin:0 0 14px;color:#9db3c8}
.missionLiveCardClean .rewardPill{background:#0a1624}
.missionLiveCardClean .actions{margin-top:16px}
.missionNoticeExtra{margin-top:10px;color:#b8cadb;font-size:13px;line-height:1.45;white-space:pre-line}
@media(max-width:900px){.heroStatTooltipGrid{grid-template-columns:1fr}.globalMissionBanner{top:72px;margin:0 10px 12px}.globalMissionInner{align-items:flex-start}}


/* v0.30.5 UI fix pack */
.sidebar{width:98px;padding:18px 10px}
.app{grid-template-columns:98px 1fr}
.main{max-width:1600px}
.sidebar .nav{height:76px;display:grid;grid-template-columns:1fr;justify-items:center;align-items:center;gap:3px;padding:8px 6px;border-radius:18px;background:#132438;border:1px solid transparent}
.sidebar .nav:hover{background:#1a3047;color:#eaf4ff;border-color:#36526d}
.sidebar .nav.active{background:#15283d;color:#fff;border-color:#e99a28;box-shadow:inset 0 0 0 2px rgba(233,154,40,.15),0 0 0 1px rgba(233,154,40,.2)}
.navIcon,.navFallbackIcon{width:54px;height:54px}
.navText{display:none}
.navAlert{right:8px;top:8px}
.heroStatRow{padding:10px 14px;background:transparent;border:0;box-shadow:none}
.stats.slimStatList{display:flex;flex-direction:column;gap:10px}
.heroStatBarArt{position:relative;width:100%;background-repeat:no-repeat;background-size:100% 100%;filter:drop-shadow(0 4px 10px rgba(0,0,0,.32))}
.heroStatFillClip{position:absolute;left:30.85%;top:14.2%;width:59.15%;height:69.5%;overflow:hidden;border-radius:999px}
.heroStatFill{height:100%;border-radius:999px;box-shadow:inset 0 0 12px rgba(255,255,255,.22),0 0 12px rgba(0,0,0,.28);opacity:.98}
.heroStatValue{right:1.15%;font-size:clamp(16px,1.85vw,28px)}
.heroStatBonus{right:1.2%;top:9%;font-size:clamp(12px,1vw,16px)}
.heroStatMeta{display:none}
.heroStatTooltip{left:14px;right:14px;top:calc(100% + 2px)}
.upgradeBarList{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.upgradeBarCard{padding:16px}
.upgradeCardTop{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:4px}
.upgradeCardTitle{font-size:22px;font-weight:1000}
.upgradeCardCost{font-size:13px;color:#a7bdd1;font-weight:800}
.upgradeCharismaNote{margin-top:10px;color:#8fa8c2;font-size:13px;line-height:1.5}
.duelStatPanels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:14px 0 12px}
.duelStatPanel{padding:12px;background:#0b1723;border:1px solid #294158;border-radius:16px;min-width:0}
.duelStatBoard{position:relative;width:100%;aspect-ratio:1672/941;background:url('assets/ui/stat/stat_bar_design.webp') center/100% 100% no-repeat;overflow:hidden}
.duelStatRow{position:absolute;left:30.85%;width:59.15%;height:8.7%;border-radius:999px;overflow:hidden;pointer-events:none}
.duelStatRowFill{position:absolute;left:0;top:14.2%;height:69.5%;border-radius:999px;box-shadow:inset 0 0 10px rgba(255,255,255,.22),0 0 10px rgba(0,0,0,.35);opacity:.98;transition:width .25s ease}
.duelStatRowValue{position:absolute;right:1.1%;top:50%;transform:translateY(-50%);font-size:clamp(11px,1.25vw,20px);color:#fff;font-weight:1000;letter-spacing:.2px;text-shadow:0 2px 8px rgba(0,0,0,.96)}
.globalMissionBanner{position:sticky;top:92px;z-index:6;margin:0 28px 14px;padding:14px 18px;border-radius:18px;border:1px solid #39506a;background:linear-gradient(180deg,#132235 0%,#0f1c2c 100%);box-shadow:0 12px 26px rgba(0,0,0,.28)}
.globalMissionIcon{width:72px;height:72px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 8px 14px rgba(0,0,0,.3))}
.globalMissionProgress{margin-top:10px;height:18px;border-radius:999px;overflow:hidden;background:#081421;border:1px solid #294157}
.globalMissionProgress>span{display:block;height:100%;background:linear-gradient(90deg,#ffbe46,#ff7e1f);border-radius:999px}
.rewardPill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#101d2b;border:1px solid #2c4359;color:#eef5fb;font-weight:900;font-size:12px}
.rewardPill img{width:18px;height:18px;object-fit:contain}
.rewardPill.paper img{width:17px;height:17px}
.missionLiveCardClean{padding:0;border:0;background:transparent;box-shadow:none}
.missionLiveIdle{padding:16px 18px;background:#111f2e;border:1px solid #2a4057;border-radius:16px;color:#9cb4ca;display:flex;flex-direction:column;gap:6px}
@media(max-width:1150px){.duelStatPanels,.upgradeBarList{grid-template-columns:1fr}}


/* ============================================================
   v0.30.6 — compact UI pass
   Final layout override: icon-only sidebar + compact character stats
   ============================================================ */

/* Desktop icon rail: only the round emblems, no giant text buttons. */
.app{grid-template-columns:88px minmax(0,1fr)}
.sidebar{
  width:88px;
  padding:12px 7px;
  gap:5px;
  align-items:center;
  overflow:visible;
}
.sidebar .nav{
  width:66px;
  min-width:66px;
  height:66px;
  padding:3px;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.sidebar .nav:hover,
.sidebar .nav.active{
  background:transparent;
  border:0;
  box-shadow:none;
}
.sidebar .navIcon,
.sidebar .navFallbackIcon{
  display:block;
  width:60px;
  height:60px;
  max-width:60px;
  max-height:60px;
  object-fit:contain;
  transition:transform .15s ease,filter .15s ease;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.38));
}
.sidebar .nav:hover .navIcon{transform:scale(1.07);filter:drop-shadow(0 0 9px rgba(119,62,255,.72)) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
.sidebar .nav.active .navIcon{transform:scale(1.1);filter:drop-shadow(0 0 11px rgba(177,91,255,.92)) drop-shadow(0 5px 8px rgba(0,0,0,.45))}
.sidebar .navText{display:none!important}
.navAlert{top:1px;right:0;z-index:4}
.sidebar .clockBox{width:70px;padding:7px 3px;font-size:9px;border-radius:10px;margin-top:5px}
.sidebar .clockBox strong{font-size:11px;margin-top:3px}
.sidebar .testerTools{width:70px}
.sidebar .testerBadge{font-size:8px;padding:4px 2px;text-align:center}
.sidebar .tinyTool,.sidebar .tinyReset{font-size:8px;padding:5px 3px;width:70px}
.main{max-width:1580px;padding-left:24px;padding-right:24px}

/* Character becomes one compact card: portrait/info + six small bars inside. */
#character{max-width:1420px;margin:0 auto}
#character .heroHead{
  display:grid;
  grid-template-columns:205px minmax(0,1fr);
  gap:22px;
  padding:18px 20px;
  overflow:visible;
  min-height:0;
}
#character .heroImg{
  width:190px;
  height:300px;
  align-self:start;
}
#character .heroInfo{min-width:0;overflow:visible}
#character .heroInfo h1{font-size:36px;margin:5px 0 3px}
#character .title{padding:5px 10px;font-size:13px}
#character .level{font-size:18px;margin:10px 0 12px}
#character .xpLine{font-size:12px;margin-bottom:5px}
#character .bar{height:12px}
#character .passiveSummary{
  margin-top:10px;
  font-size:11px;
  line-height:1.45;
  color:#a9bfd3;
}
#character .equipmentOverview{display:none!important}
#character>h2{display:none!important}

/* Six bars live INSIDE the profile card, 2 columns x 3 rows. */
#character #stats.characterInlineStats,
#character #stats.slimStatList{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px 12px;
  margin-top:13px;
  width:100%;
  overflow:visible;
}
#character .heroStatRow{
  position:relative;
  min-width:0;
  padding:0!important;
  margin:0;
  border:0!important;
  border-radius:0;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible;
}
#character .heroStatBarArt{
  width:100%;
  max-width:none;
  min-width:0;
  background-size:100% 100%;
  background-position:center;
  background-repeat:no-repeat;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.36));
}

/* Correct inner-track geometry. The fill no longer covers the icon/label. */
.heroStatFillClip{
  left:37.1%!important;
  top:42.5%!important;
  width:52.7%!important;
  height:46.5%!important;
  border-radius:999px!important;
  overflow:hidden!important;
}
.heroStatFill{
  height:100%!important;
  border-radius:999px!important;
  opacity:.95!important;
  box-shadow:inset 0 0 5px rgba(255,255,255,.16)!important;
}
#character .heroStatBonus{display:none!important}
#character .heroStatValue{
  right:5.2%!important;
  top:61%!important;
  transform:translateY(-50%);
  font-size:clamp(11px,1vw,16px)!important;
  line-height:1;
  text-shadow:0 2px 5px rgba(0,0,0,.95);
}

/* Hover description behaves like a tooltip; it never pushes the page down. */
#character .heroStatTooltip{
  position:absolute;
  left:4%;
  right:4%;
  top:94%;
  z-index:100;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(7,15,24,.985);
  border:1px solid #36546d;
  box-shadow:0 14px 32px rgba(0,0,0,.5);
  pointer-events:none;
}
#character .heroStatTooltip h4{font-size:13px;margin:0 0 6px}
#character .heroStatTooltipGrid{gap:4px 10px;margin-bottom:6px}
#character .heroStatTooltipGrid div{font-size:10px}
#character .heroStatTooltipNote{font-size:10px;padding-top:6px}

/* Stat Upgrade uses the same properly clipped track but stays readable. */
.upgradeBarList{gap:12px}
.upgradeBarCard{padding:12px}
.upgradeBarCard .heroStatRow{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.upgradeBarCard .heroStatBarArt{max-width:620px}

/* Duel: do not use the giant full-board image. Compact per-stat rows are inserted by JS below. */
.duelStatPanels{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.duelStatPanel{padding:10px 12px}
.duelCompactRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin-top:8px}
.duelCompactStat{position:relative;min-width:0;overflow:visible}
.duelCompactArt{
  position:relative;
  width:100%;
  background-size:100% 100%;
  background-repeat:no-repeat;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.32));
}
.duelCompactArt.strength{background-image:url('assets/ui/stat/rows/strength.webp')}
.duelCompactArt.stamina{background-image:url('assets/ui/stat/rows/stamina.webp')}
.duelCompactArt.agility{background-image:url('assets/ui/stat/rows/agility.webp')}
.duelCompactArt.intelligence{background-image:url('assets/ui/stat/rows/intelligence.webp')}
.duelCompactArt.intuition{background-image:url('assets/ui/stat/rows/intuition.webp')}
.duelCompactArt.charisma{background-image:url('assets/ui/stat/rows/charisma.webp')}
.duelCompactFillClip{position:absolute;left:37.1%;top:42.5%;width:52.7%;height:46.5%;border-radius:999px;overflow:hidden}
.duelCompactFill{height:100%;border-radius:999px;opacity:.95}
.duelCompactValue{position:absolute;right:5.2%;top:61%;transform:translateY(-50%);font-size:clamp(9px,.8vw,13px);font-weight:1000;color:#fff;text-shadow:0 2px 5px #000}
.duelStatBoard,.duelScaleNote{display:none!important}

@media(max-width:1180px){
  #character .heroHead{grid-template-columns:180px minmax(0,1fr)}
  #character .heroImg{width:170px;height:280px}
  #character #stats.characterInlineStats,#character #stats.slimStatList{grid-template-columns:1fr}
  .duelCompactRows{grid-template-columns:1fr}
}

/* v0.31 mechanics UI: Special Mission Regions + Team War time + Trophy slots */
.specialRegionSummary{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.specialRegionSummary .paperCount{font-size:18px;font-weight:900}
.specialRegionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.specialRegionCard{padding:16px;border:1px solid #2b4258;border-radius:16px;background:#101e2d}
.specialRegionCard.locked{opacity:.62;filter:saturate(.65)}
.specialRegionHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}
.specialRegionHead h3{margin:0;font-size:20px}
.specialRegionStage{display:grid;grid-template-columns:86px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #24394d}
.specialRegionStage:first-of-type{border-top:0}
.specialRegionStage img{width:78px;height:92px;object-fit:contain;background:#091521;border-radius:10px}
.specialRegionStage small{display:block;color:#8fa7bd;line-height:1.35;margin-top:3px}
.specialRegionStage .stageActions{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.futureRegionCard{min-height:120px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border-style:dashed}
.teamWarTimeCard,.teamTrophySlots{margin-top:14px}
.teamWarTimes{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.teamWarTimeBtn.active{background:#e99a28;color:#07111d;border-color:#ffbd54;font-weight:1000}
.teamTrophyGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.teamTrophySlot{min-height:170px;padding:14px;border:1px solid #30495f;border-radius:14px;background:#0e1a28;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px}
.teamTrophySlot.locked{opacity:.5}
.teamTrophySlot img{width:88px;height:88px;object-fit:contain}
.teamTrophySlot .slotNo{font-size:11px;color:#8fa8be;text-transform:uppercase;letter-spacing:.8px}
.teamTrophyDevelopment{display:flex;align-items:center;gap:10px;margin-top:8px}
.teamTrophyDevelopment .bar{flex:1}
.teamTrophyReserve{margin-top:8px;color:#869caf;font-size:12px}
@media(max-width:1000px){.specialRegionGrid,.teamTrophyGrid{grid-template-columns:1fr}.specialRegionStage{grid-template-columns:70px 1fr}.specialRegionStage .stageActions{grid-column:1/-1;align-items:stretch}.specialRegionStage img{width:64px;height:76px}}


/* v0.32 mechanics expansion: compact World Trophy pool */
.worldTrophyPool{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.10)}
.worldTrophyPoolGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:10px}
.worldTrophyMini{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid rgba(255,255,255,.10);border-radius:10px;background:rgba(0,0,0,.12)}
.worldTrophyMini img{width:48px;height:48px;object-fit:contain;flex:0 0 48px}
.worldTrophyMini span{display:flex;flex-direction:column;min-width:0}
.worldTrophyMini small{opacity:.72;line-height:1.25}


/* v0.34.0 — Heroic Deeds & Veteran Progression */
.skillPointBannerV034{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid rgba(255,184,74,.32);
  background:linear-gradient(135deg,rgba(255,179,64,.08),rgba(65,108,255,.08));
}
.skillPointBannerV034 h3{margin:0 0 4px;color:#ffd487;font-size:20px}
#heroStepsContent .heroStepProfile .muted{font-size:11px}
#teamProfileQuickV034 .tags{display:flex;flex-wrap:wrap;gap:6px}
#teamProfileQuickV034 .secondary{padding:7px 10px}

/* Supplied five-card artwork, with real text and controls in its empty fields. */
.deedMissionTitle{position:relative;padding-right:130px;min-height:94px}.deedLauncher{position:absolute;left:56%;top:0;background:transparent;border:0;padding:0;display:grid;justify-items:center;color:#eadcff;cursor:pointer}.deedLauncher img{width:78px;height:78px;border-radius:50%;object-fit:cover;box-shadow:0 0 22px #a753dc66}.deedLauncher span{font-size:11px;font-weight:bold}
#deedBoardModal[hidden]{display:none}#deedBoardModal{position:fixed;inset:0;background:#08051dde;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}.deedShell{width:min(1500px,98vw);max-height:95vh;overflow:auto;background:#231342;border:2px solid #9d6be6;border-radius:18px;box-shadow:0 20px 70px #000}.deedCanvas{position:relative;width:100%;min-width:980px;aspect-ratio:1619/971;background:url('assets/ui/heroic-deeds/board.webp') center/100% 100%;container-type:inline-size;color:#fff}.deedHeading{position:absolute;left:38%;top:3.5%;width:23%;text-align:center;margin:0;font-size:2cqw;color:#fff1bf;text-shadow:0 2px 3px #190b36}.deedSummary{position:absolute;left:9%;top:4.8%;width:12%;text-align:center;font-size:1.5cqw;font-weight:bold}.deedDiamonds{position:absolute;left:78.6%;top:4.5%;width:10%;text-align:center;font-size:1.8cqw;font-weight:bold}.deedClose{position:absolute;left:94.7%;top:1.5%;width:4.5%;height:9%;background:transparent!important;border:0!important}.deedCard{position:absolute;top:21%;width:18.5%;height:69%}.deedCard button{cursor:pointer}.deedArrow{position:absolute;right:5%;top:2%;width:20%;height:9%;border:0;background:transparent!important}.deedName{position:absolute;top:23%;left:14%;width:76%;height:8%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:1.12cqw;line-height:1.15;margin:0;color:#fff3c7;text-shadow:0 1px 3px #000}.deedTime{position:absolute;top:32%;left:27%;width:65%;height:6%;font-size:.94cqw;display:flex;align-items:center;justify-content:center}.deedDesc{position:absolute;top:39%;left:6%;width:90%;height:18%;border:0!important;background:transparent!important;color:#382251!important;white-space:normal!important;overflow:auto;padding:.5cqw!important;font-size:.95cqw!important;line-height:1.3;text-align:left;font-weight:600}.deedDesc small{display:block;margin-top:.55cqw;color:#774294;font-size:.75cqw}.deedProgress{position:absolute;top:60.3%;left:19%;width:46%;height:3.5%;border-radius:30px;background:#261642;overflow:hidden}.deedProgress span{display:block;height:100%;background:linear-gradient(90deg,#9d43fd,#eaa8ff)}.deedProgress b{position:absolute;inset:0;text-align:center;font-size:.82cqw;line-height:1.5}.deedCounter{position:absolute;top:57.2%;left:6%;width:90%;text-align:center;color:#513066;font-weight:bold;font-size:.75cqw}.deedReward{position:absolute;top:69.6%;width:30.5%;height:14.3%;display:flex;flex-direction:column;justify-content:center;gap:.25cqw;text-align:center;color:#fff0be;font-size:.76cqw;line-height:1.15;overflow:auto;padding:.35cqw}.deedRewardA{left:14.5%}.deedRewardB{left:55.8%}.deedReward span{display:grid;justify-items:center;gap:.15cqw}.deedReward img{width:1.7cqw;height:1.7cqw;object-fit:contain}.deedReward b{font-size:1.7cqw}.deedAction{position:absolute;top:88.3%;left:5%;width:92%;height:9.4%;background:transparent!important;border:0!important;box-shadow:none!important;color:#4d2506!important;display:flex;align-items:center;justify-content:space-between;padding:0 1cqw!important;font-size:1cqw!important;font-weight:900}.deedAction span{font-size:.85cqw;background:#9a461bcc;border-radius:30px;padding:.3cqw;color:#fff}.deedAction.ready{color:#164929!important}.deedAction:disabled{opacity:.7;cursor:default}.deedFooter{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px;flex-wrap:wrap;color:#f4ddff}.deedFooter select{max-width:220px;padding:10px;background:#372050;color:white;border:1px solid #9870be;border-radius:8px}.deedHint{color:#c1a8d8;text-align:center;font-size:12px;padding:0 12px 10px;margin:0}.deedConfirm{position:fixed;inset:0;display:grid;place-items:center;background:#090415d9;z-index:1300}.deedConfirm>div{max-width:420px;margin:20px;padding:26px;background:#35204e;color:white;border:2px solid #bb7df5;border-radius:18px;box-shadow:0 10px 70px #000}.deedConfirm button{margin-right:10px}#deedBoardModal button:focus-visible{outline:3px solid #fff48c!important;outline-offset:2px}
@media(max-width:700px){.deedLauncher{left:auto;right:10px}.deedShell{width:100%;}.deedFooter{position:sticky;left:0}.deedMissionTitle{padding-right:100px}}

#resultModal{z-index:1400}
