*{box-sizing:border-box}body{margin:0;background:#101e23;color:#e8eee2;font-family:system-ui,-apple-system,sans-serif}main{width:min(1120px,96vw);margin:auto;padding:22px 0}header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}small{font-size:10px;letter-spacing:2.2px;color:#afc4b1}h1{margin:4px 0 0;font-size:28px;letter-spacing:-1px}h1 span{font-size:10px;letter-spacing:2px;border-left:1px solid #49645c;padding-left:13px;margin-left:12px;color:#b8cfae}nav{display:flex;gap:7px}button{font:inherit;cursor:pointer;background:#253d3e;border:1px solid #4d6963;color:#edf2df;border-radius:8px;padding:9px 12px}button:hover:enabled{border-color:#d5deb4;background:#344d46}button:disabled{opacity:.4;cursor:default}kbd{font:inherit;font-size:10px;color:#bbcdb6;border:1px solid #527066;border-radius:4px;padding:1px 4px;margin:0 2px}.stage{position:relative;overflow:hidden;border:1px solid #59756b;border-radius:12px;background:#122b2b;box-shadow:0 15px 55px #0005}canvas{display:block;width:100%;image-rendering:pixelated;outline:none;touch-action:none}#placeTag{position:absolute;top:16px;left:18px;background:#142e2ce6;border:1px solid #63836d77;border-radius:8px;padding:10px 14px;pointer-events:none;max-width:70%}#placeTag strong{display:block;font-size:17px;margin:2px 0}#placeTag span{display:block;font-size:10px;color:#c4d3bd}#battleHud{position:absolute;top:15px;left:18px;right:18px;display:flex;justify-content:space-between;pointer-events:none}#battleHud[hidden]{display:none}.hpbox{background:#16312fe8;border:1px solid #63836d;border-radius:8px;padding:10px 14px;width:30%;min-width:160px}.hpbox strong{display:block;font-size:17px;margin:2px 0}.hpbox span{font-size:11px;color:#c9d6bb}.hpbox em{display:block;font-size:10px;color:#ecce94;font-style:normal}.track{height:7px;border-radius:6px;background:#395148;margin:7px 0 2px;overflow:hidden}.track i{display:block;background:#b6d789;height:100%;transition:width .15s}.foe .track i{background:#e7c985}#contextBtn{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:#183d32f0;box-shadow:0 3px 15px #0004;font-size:13px;white-space:nowrap}#toast{position:absolute;left:50%;bottom:63px;transform:translateX(-50%);text-align:center;max-width:85%;background:#14372edc;padding:8px 14px;border-radius:6px;font-size:12px;pointer-events:none;opacity:0;transition:opacity .15s}#dialogue{position:absolute;bottom:15px;left:3%;right:3%;background:#f2efdc;color:#2b473e;padding:17px 22px;border:3px solid #75917b;border-radius:9px;box-shadow:0 10px 20px #0005;z-index:5}#dialogue small{color:#52705f;font-weight:800}#dialogue p{white-space:pre-line;font-size:15px;line-height:1.55;margin:8px 0 13px}#dialogueChoices,#overlayChoices{display:flex;gap:8px;flex-wrap:wrap}#dialogue button{color:#28463a;background:#d8dfba;border:1px solid #91a181;font-size:12px}#screenOverlay{position:absolute;inset:0;z-index:6;background:#102e2cde;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}#screenOverlay[hidden]{display:none}#screenOverlay h2{font-size:36px;margin:9px 0}#screenOverlay p{max-width:480px;line-height:1.7;color:#c7d4bb;font-size:14px}#screenOverlay button{background:#d4dfaa;color:#213e32;font-weight:700}#fade{position:absolute;inset:0;background:#101e23;opacity:0;pointer-events:none;transition:opacity .15s;z-index:8}#worldPanel{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:14px 16px;background:#192e30;border:1px solid #3a5650;border-radius:10px}#worldPanel p{font-size:12px;color:#b9cab7;line-height:1.9;margin:0}#worldPanel button{display:block;margin-top:5px;background:#304b3d;color:#eaf0d7;font-weight:700}#saveStatus{font-size:10px;color:#92ab9c}#moveBar{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:12px 0}.move{position:relative;text-align:left;overflow:hidden;padding:13px;min-height:86px;background:#1c3535}.move.active{border:2px solid #dfd8a4;padding:12px;background:#374737}.move strong{display:block;font-size:15px;margin:6px 0}.move span{font-size:10px;color:#b9cdb8}.move b{float:right;font-size:11px;color:#e0d7aa}.coolbar{position:absolute;bottom:0;left:0;height:3px;background:#ceb59d}.battleActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.battleActions span{font-size:11px;color:#abc1b0}.battleActions button{font-size:12px}footer{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#7f9a8d;margin-top:15px;line-height:1.6}a{color:#a9c2a0}#panel{position:fixed;inset:0;z-index:30;background:#091d21e8;overflow:auto;padding:35px 15px}.panelCard{max-width:850px;margin:auto;background:#1c3334;border:1px solid #698374;border-radius:12px;padding:25px}#closePanel{float:right}.panelCard h2{margin:8px 0 15px;font-size:28px}.teamCard{border:1px solid #526d60;border-radius:9px;padding:14px;margin:11px 0;display:flex;align-items:flex-start;gap:16px}.teamCard img{width:75px;height:75px;object-fit:contain;image-rendering:pixelated}.teamCard h3{margin:0 0 5px}.teamCard p{font-size:12px;color:#b6cdb5;line-height:1.7;margin:5px 0}.teamCard button{font-size:12px}.mapCanvas{max-width:100%;height:480px;image-rendering:pixelated;background:#162b27;border-radius:8px;display:block;margin:15px auto}#panelContent>p{color:#bfd0b8;font-size:13px;line-height:1.8}@media(max-width:720px){main{padding-top:12px}header{align-items:flex-start}nav{flex-wrap:wrap;justify-content:flex-end;max-width:230px}nav button{font-size:10px;padding:7px}h1{font-size:22px}h1 span{display:none}.hpbox{padding:7px;min-width:120px;width:37%}.hpbox strong{font-size:13px}.hpbox small{font-size:8px;letter-spacing:1px}#placeTag{padding:7px;top:10px;left:10px}#placeTag strong{font-size:13px}#placeTag span{display:none}#worldPanel{flex-wrap:wrap;padding:10px}#worldPanel p{font-size:10px}.move{padding:8px;min-height:80px}.move.active{padding:7px}.move strong{font-size:12px}.move span{font-size:8px}.move b{font-size:9px}#dialogue{padding:10px 13px}#dialogue p{font-size:12px;line-height:1.4}#dialogue button{padding:6px 9px;font-size:11px}#screenOverlay h2{font-size:25px}#screenOverlay p{font-size:12px}footer{flex-direction:column}#contextBtn{bottom:10px;font-size:11px;padding:7px}#toast{bottom:48px;font-size:11px}}
[hidden]{display:none!important}
@media(min-width:900px) and (min-height:600px){main{width:min(1120px,96vw,calc(162.5vh - 480px))}}

.regionMap{width:100%;height:auto;max-width:640px;aspect-ratio:3/2}.townList{display:flex;flex-wrap:wrap;gap:8px}.badgeRow{display:flex;flex-wrap:wrap;gap:7px}.badge{font-size:11px;border:1px solid #62746c;border-radius:14px;padding:5px 10px;color:#819c91}.badge.earned{color:#f7e4a2;background:#4b523a;border-color:#d5bd75}

.partyStripHeader{display:flex;justify-content:space-between;gap:8px;margin:10px 0 5px;font-size:10px;letter-spacing:1.3px;color:#b4c8bc}
#partySwitchStatus{letter-spacing:0;color:#e1d4a1}
#battleParty{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.partySlot{position:relative;display:flex;align-items:center;gap:4px;min-width:0;min-height:68px;padding:5px 6px 16px;text-align:left;border-radius:7px;transition:border-color .15s,background .15s}
.partySlot img{width:38px;height:38px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}
.partyInfo{min-width:0;flex:1}.partyInfo strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.partyInfo small{font-size:9px;letter-spacing:0;color:#c3d4c4}
.partyTrack{height:4px;display:block;background:#132c2a;border-radius:4px;overflow:hidden;margin:4px 0 1px}.partyTrack i{display:block;height:100%;background:#b6d789;transition:width .15s}
.partyState{position:absolute;bottom:4px;left:6px;right:6px;text-align:center;font-size:8px;letter-spacing:1px;color:#b5c5b5}
.partySlot.deployed:disabled{opacity:1;background:#384f3d;border-color:#d7ddab}.partySlot.deployed .partyState{color:#e9e8b9}.partySlot.fainted{filter:grayscale(1)}.partySlot:disabled{opacity:.64}.partySlot.empty{justify-content:center;align-items:center;border:1px dashed #405b54;opacity:.45;padding:0;color:#86a095}
#autoBtn[aria-pressed=true]{background:#536039;border-color:#dee1a6;color:#fff4c9}
#dashBtn{border-color:#8aaeb8;background:#29444c;min-width:100px}
.inBattle header{margin-bottom:10px}.inBattle main{padding:12px 0}.inBattle footer{display:none}.inBattle h1{font-size:23px}.inBattle #moveBar{margin:8px 0}.inBattle .move{min-height:72px;padding:8px 10px}.inBattle .move.active{padding:7px 9px}.inBattle .move strong{margin:4px 0}.inBattle .battleActions{gap:6px}.inBattle #battleHint{flex-basis:100%;font-size:10px}
button:focus-visible{outline:2px solid #f0df96;outline-offset:3px}
.partySlot{flex-direction:column;gap:1px;min-height:78px;padding:4px 3px 14px;text-align:center}.partyInfo{display:contents}.partyInfo strong{order:0;font-size:10px;width:100%}.partySlot img{order:1;width:28px;height:28px}.partyTrack{order:2;width:80%;flex-shrink:0;height:3px;margin:1px 0}.partyInfo small{order:3;font-size:9px;white-space:nowrap}.partySlot.empty{padding:0}
.inBattle header small{display:none}.inBattle header nav button{font-size:11px;padding:7px 9px}.inBattle header nav{max-width:none}.inBattle h1 span{display:none}
.teamCard>div{flex:1;min-width:0}.statsDetails{margin:10px 0;padding:10px 12px;border:1px solid #4b6d64;border-radius:7px;background:#142c2d}.statsDetails summary{cursor:pointer;font-size:12px;color:#e5e7be;line-height:1.6}.statsDetails table{width:100%;border-collapse:collapse;font-size:12px;text-align:right;margin:10px 0}.statsDetails th,.statsDetails td{padding:5px 8px;border-bottom:1px solid #36584e}.statsDetails th:first-child{text-align:left}.statsDetails thead{color:#b4c5b6;font-size:10px}.statsDetails tr.statUp{color:#f3bd9f}.statsDetails tr.statDown{color:#a7cff3}.statsDetails .statNote{font-size:10px;line-height:1.5;color:#92ae9f}.statsDetails summary:focus-visible{outline:2px solid #e7d590;outline-offset:4px}@media(max-width:600px){.teamCard{gap:10px;padding:10px}.teamCard img{width:46px;height:46px}.statsDetails{padding:8px}.statsDetails th,.statsDetails td{padding:4px 3px;font-size:10px}}
@media(min-width:900px) and (min-height:600px){body.inBattle main{width:min(1120px,96vw,calc(162.5vh - 580px))}}
@media(max-width:720px){.partySlot{flex-direction:column;gap:0;padding:4px 2px 15px;min-height:83px}.partySlot img{width:30px;height:30px}.partyInfo{width:100%;text-align:center}.partyInfo strong{font-size:9px}.partyInfo small{font-size:8px}.partyTrack{margin:3px 4px 1px}.partyState{font-size:7px}.partyStripHeader{font-size:9px}.inBattle .battleActions button{font-size:10px;padding:7px 8px}.inBattle .move{padding:7px 5px;min-height:70px}.inBattle .move.active{padding:6px 4px}}

.battleRoster{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;margin-top:7px;padding-top:6px;border-top:1px solid #73928244}
.hpbox .rosterCount{font-size:10px;font-weight:700;white-space:nowrap;color:#e1e9d6}
.rosterPips{display:flex;gap:5px;align-items:center}
.rosterPip{position:relative;display:block;width:11px;height:11px;border:1px solid #d5e2cf;border-radius:50%;background:linear-gradient(#91b785 0 43%,#243f39 43% 57%,#e4e8d9 57%)}
.rosterPip:after{content:'';position:absolute;left:3px;top:3px;width:3px;height:3px;background:#f6f1da;border:1px solid #345247;border-radius:50%}
.rosterPip.active{box-shadow:0 0 0 2px #f6da8888}.rosterPip.fainted{opacity:.28;filter:grayscale(1)}.rosterPip.caught{background:linear-gradient(#ab83cf 0 43%,#243f39 43% 57%,#e4e8d9 57%)}
@media(max-width:720px){.battleRoster{gap:4px;margin-top:4px;padding-top:4px}.hpbox .rosterCount{font-size:9px}.rosterPips{gap:4px}.rosterPip{width:9px;height:9px}.rosterPip:after{left:2px;top:2px}}

/* Battle information stays outside the playable map and its floating hit text. */
.inBattle .stage{display:flex;flex-direction:column}
.inBattle #battleHud{position:static;order:-1;gap:8px;padding:7px;background:#10282b;border-bottom:1px solid #59756b}
.inBattle .hpbox{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1px 8px;min-width:0;width:50%;padding:6px 9px;border-radius:6px}
.inBattle .hpbox>small{grid-column:1/-1;font-size:8px;letter-spacing:1.3px;line-height:1.1}
.inBattle .hpbox>strong{grid-column:1;grid-row:2;font-size:13px;margin:0;line-height:1.3}
.inBattle .hpbox>.track{grid-column:1/-1;grid-row:3;height:5px;margin:3px 0}
.inBattle .hpbox>#playerHp,.inBattle .hpbox>#foeHp{grid-column:2;grid-row:2;font-size:10px;white-space:nowrap}
.inBattle .hpbox>em{grid-column:1/-1;grid-row:5;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.inBattle .battleRoster{grid-column:1/-1;grid-row:4;margin:0;padding:1px 0;border:0}
@media(min-width:900px) and (min-height:600px){body.inBattle main{width:min(1120px,96vw,calc(162.5vh - 670px))}}
@media(min-width:900px) and (max-height:820px){.inBattle main{padding:8px 0}.inBattle header{margin-bottom:7px}.inBattle .partySlot{min-height:68px}.inBattle .move{min-height:72px;padding:7px 6px}.inBattle .move.active{padding:6px 5px}.inBattle .move strong{font-size:11px;white-space:nowrap}.inBattle .move span{font-size:8px}.inBattle .move b{font-size:8px}.inBattle .battleActions button{font-size:10px;padding:7px}.inBattle #dashBtn{min-width:80px}.inBattle .battleActions{gap:5px}}

#dialogueChoices.mumTravelChoices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:42vh;overflow:auto}#dialogueChoices.mumTravelChoices>button:first-child{grid-column:1/-1;text-align:left;background:#e8ead9}#dialogueChoices.mumTravelChoices>button{min-height:35px;text-align:center}#dialogueChoices.mumTravelChoices>button.mumWorldsFolder{grid-column:1/-1;background:#514078;color:#fff4d8;border:2px solid #b49dd4;text-align:left;font-weight:700;min-height:44px}#dialogueChoices.mumTravelChoices>button.mumWorldsFolder:hover{background:#68518e}#dialogueChoices.mumTravelChoices>button.mumWorldsFolder:focus-visible{outline:3px solid #c48127;outline-offset:2px}#dialogueChoices.mumTravelChoices>button.fanficWorldsFolder{background:#245b3e;border-color:#82bd90}#dialogueChoices.mumTravelChoices>button.fanficWorldsFolder:hover{background:#30764f}@media(max-width:520px){#dialogueChoices.mumTravelChoices{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}#dialogueChoices.mumTravelChoices>button{padding:6px;font-size:10px}}
