.gridwrap{overflow:auto!important;max-height:calc(100vh - 255px);background:#101812}.stageShell{position:relative}.mini415{position:absolute;right:10px;top:10px;width:150px;height:92px;padding:3px;background:#08100de8;border:2px solid #c9a24a;z-index:35}.mini415 svg{width:100%;height:100%}.officer415 .unitName{font-weight:800;color:#fff3c6;text-shadow:0 1px 3px #000}.ump415{position:absolute;right:0;top:2px;background:#33275e;color:#fff;border:1px solid #a993df;padding:0 3px;font-size:9px;z-index:5}.duel415{display:grid;grid-template-columns:150px 1fr 150px;gap:12px;align-items:center;text-align:center}.duel415 img{max-width:100%}.promotion415{text-align:center}.promoCompare{display:grid;grid-template-columns:1fr 60px 1fr;align-items:center}.promoCompare img{width:150px;height:150px;object-fit:contain}.range415{display:grid;grid-template-columns:repeat(5,16px);gap:2px;justify-content:center;margin:8px}.range415 i{width:16px;height:16px;background:#243128;border:1px solid #536050}.range415 i.on{background:#a74d3e}.range415 i.me{background:#d7b565}@media(max-width:700px){.mini415{width:110px;height:68px}.promoCompare img{width:105px;height:105px}}
.train415{text-align:center}.trainModes{display:flex;gap:8px;justify-content:center;margin:12px}.trainModes button{padding:8px 14px;background:#1a2d25;border:1px solid #806b3f;color:#ead9ae}.trainModes button.on{background:#806b3f;color:#111}.trainTrack{height:38px;position:relative;background:#111a17;border:2px solid #806b3f;margin:20px 4px}.trainTrack b{position:absolute;top:0;bottom:0;width:14%;background:#b58e4266;border-left:2px solid #e4c77a;border-right:2px solid #e4c77a}.trainTrack i{position:absolute;top:-5px;bottom:-5px;width:5px;background:#fff;box-shadow:0 0 8px #fff}.trainHits{font-size:24px;letter-spacing:.4em;color:#e4c77a}.altEnding415{min-height:620px;position:relative;overflow:hidden}.altEndBg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.55)}.altEndCard{position:relative;z-index:2;max-width:720px;margin:70px auto 30px;padding:24px;background:#10251fe8;border:2px solid #b58e42;text-align:center}.altEndCard h1{font-size:34px;color:#e4c77a}.altEndCard p{font-size:18px;line-height:1.8}.altEndFaces{display:flex;justify-content:center;gap:15px;align-items:end}.altEndFaces img{max-height:240px;width:auto}

/* v4.16 sprite safe area */
.battleMode .unit,.battleMode .unitVisual{overflow:visible!important}
.battleMode .unit.officer416 .battleSprite{width:114%!important;height:114%!important;left:-7%!important;top:-14%!important;object-fit:contain!important;object-position:50% 100%!important}
.battleMode .unit.officer416.cav .battleSprite{width:110%!important;height:110%!important;left:-5%!important;top:-10%!important}
.ump415{display:none!important}
.battleMode .unit .uhp{bottom:23px!important;height:4px;box-sizing:border-box}
.umpbar416{position:absolute;left:11%;right:11%;bottom:18px;height:3px;box-sizing:border-box;background:#14223a;border:1px solid #17212a99;z-index:7;box-shadow:0 1px 1px #0009;overflow:hidden;border-radius:2px}
.umpbar416 i{display:block;height:100%;background:linear-gradient(90deg,#507bd0,#9ac8ff);transition:width .2s ease}
/* Names identify troops; resource data stays in the inspector. */
.battleMode .unit .unitName{display:block!important;opacity:1!important;bottom:1px!important;box-sizing:border-box;max-width:calc(var(--tile) - 4px);font-size:10px;line-height:14px;padding:0 2px;overflow:hidden;text-overflow:ellipsis}
.battleMode .unit .uhp,.battleMode .unit .umpbar416,
.battleMode .unit .unitPennant,.battleMode .unit .unitRank,
.battleMode .unit .unitSpent,.battleMode .unit .unitGuard{display:none!important}

.mpGauge416{padding:8px 8px 7px;margin:-2px 0 8px;background:#e7dfc6;border:1px solid #b5a77b}
.mpGauge416>div{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#39516a}.mpGauge416>div b{font-size:13px;color:#244b78}
.mpGauge416 em{display:block;height:6px;background:#b4ae9c;margin:5px 0 4px;border-radius:4px;overflow:hidden}
.mpGauge416 em i{display:block;height:100%;background:linear-gradient(90deg,#3e6fae,#76b4e8)}
.mpGauge416 small{display:block;color:#766c52;font-size:10px}
.popupSkill .skillCost416{display:block!important;color:#376192!important;font-weight:700!important;margin-top:4px!important}
.mpTip416{margin-top:5px;color:#7db0e9;font-size:11px;font-weight:700}
.stone416{position:absolute;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d7c4a0,#78644d 55%,#302820);box-shadow:0 2px 6px #0008;z-index:40;pointer-events:none}


.unitPennant{white-space:nowrap}
