/* Scoped roster styles leave chapter, training, equipment and opening UI intact. */
#roster-actions{position:fixed;right:22px;bottom:24px;display:flex;gap:8px;pointer-events:auto;z-index:8}
#roster-actions[hidden]{display:none}
#roster-actions button{padding:10px 13px;background:#213b2d;color:#f0deb6;border:1px solid #b69e665c;border-radius:10px;min-height:44px}
.roster-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.roster-tools p{flex:1 1 240px;color:#b7c8ba;font-size:12px;line-height:1.8;margin:0}
.roster-tools button{min-height:44px}
.roster-filters{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 20px;padding:9px;background:#12271dcc;border:1px solid #b2c8a924;border-radius:13px}
.roster-filters button{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 11px;font-size:12px;background:transparent;border-color:transparent;color:#c3cfbd;border-radius:8px}
.roster-filters button span{font-size:10px;min-width:20px;border-radius:10px;background:#78957622;padding:3px;color:#adbfaa}
.roster-filters button.active{background:#d5bd83;color:#22362b;border-color:#f0d69c}
.roster-filters button.active span{color:#22362b;background:#314a3022}
.roster-grid{gap:16px;align-items:stretch}
.roster-grid .roster-card{padding:0;border:1px solid #7a9b8150;border-radius:16px;background:linear-gradient(155deg,#203b30,#142b23);min-width:0;box-shadow:0 8px 20px #07160f26}
.roster-grid .roster-card.current{border:2px solid #dfc488;background:linear-gradient(155deg,#3d5038,#1d372a)}
.roster-grid .roster-card.locked{background:linear-gradient(155deg,#22352e,#16291f)}
.roster-card-top{display:flex;justify-content:space-between;gap:6px;align-items:center;padding:13px 13px 0;min-height:36px}
.roster-card-top .badge{margin:0;font-size:10px;letter-spacing:0;color:#bad0bf}
.ownership{font-size:10px;padding:4px 7px;border-radius:6px;white-space:nowrap;background:#53675a44;color:#bac4b8}
.ownership.owned{background:#71946633;color:#d1e4b5}.ownership.eligible{background:#b9944d33;color:#f3d391}
.roster-stage{margin:0 6px;border-bottom:1px solid #b8c9a921;background:radial-gradient(ellipse at 40% 58%,#57745e25,transparent 72%)}
.roster-grid .roster-card .preview{width:100%;height:auto;aspect-ratio:300/178;margin:0;opacity:1;object-fit:contain}
.roster-card-copy{padding:16px;display:flex;flex-direction:column;flex:1;min-width:0}
.roster-card h3{font-size:18px;letter-spacing:-.04em;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere;margin:0 0 3px;min-height:26px}
.scientific{display:block;color:#a5bcae;font-style:italic;font-size:11px;overflow-wrap:anywhere;line-height:1.6;min-height:18px}
.attack-name{display:block;margin-top:14px;color:#e2cc94;font-size:12px;line-height:1.5}
.roster-card .roster-description{min-height:0;font-size:12px;line-height:1.8;color:#bdcbbc;margin:6px 0 16px;overflow-wrap:anywhere}
.roster-card .numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;border-top:1px solid #a8b17a29;padding:12px 0;margin-top:auto}
.roster-card .numbers span{display:flex;flex-direction:column;gap:4px}.roster-card .numbers small{font-size:10px;color:#b5c5b3}.roster-card .numbers b{font-size:16px;color:#ead9ae}
.roster-buttons{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.roster-buttons button{min-height:44px;flex:1 1 84px;width:auto;margin:0;font-size:12px;padding:10px 8px}
.unlock-rule{border-top:1px solid #a8b17a29;padding-top:11px;margin-top:4px}
.unlock-rule>span{font-size:10px;color:#aabea7}.roster-card .unlock-rule p{margin:5px 0 9px;min-height:0;font-size:12px;line-height:1.7;color:#d1d1b6}
.hidden-price{display:flex;align-items:center;justify-content:space-between;border-radius:8px;background:#0a201766;padding:10px;margin-top:auto;gap:8px}
.hidden-price span{font-size:10px;color:#a5b8a4}.hidden-price strong{font-size:16px;color:#e5c88a}
.roster-shop-guide{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:15px;background:#142b2088;border:1px solid #b8b47b33;border-radius:12px;margin-bottom:20px;font-size:12px}
.roster-shop-guide b{color:#e5c88a;font-size:11px;margin-right:6px}.roster-shop-guide i{font-style:normal;color:#758f78}
.roster-footnote{color:#afc1ac;font-size:12px;line-height:1.9;margin:14px 0 0}.roster-message{min-height:24px;font-size:13px;color:#eed59b;line-height:1.7}
.species-detail{padding:0 4px}.detail-stage{border:1px solid #8ba48244;border-radius:14px;background:radial-gradient(ellipse,#3c5842,#142b21)}
.detail-stage .preview{display:block;width:100%;height:auto;aspect-ratio:300/178;max-height:270px;object-fit:contain}.species-detail .badge{display:block;color:#e5ca8c;font-size:12px;margin-top:16px}
.species-detail h3{font-size:22px;margin:8px}.species-detail .mechanics{padding:14px;background:#11271f88;border-radius:10px;text-align:left}.species-detail .numbers{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;font-size:12px}
.bug-corner{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:8px;min-height:44px}.bug-corner span{font-size:12px;color:#b5c39c}
.developer-bug{width:44px;height:44px;min-width:44px;padding:15px!important;border:0!important;background:transparent!important;color:#879779;opacity:.65}
.developer-bug:focus-visible{opacity:1;outline:2px solid #ebd7a2;outline-offset:2px}
.auto-character #right-zone,.auto-character #right-stick{display:none!important}.auto-character #left-zone{width:auto;right:85px}
#ammo-slots{display:flex;gap:4px;margin-top:5px}#ammo-slots i{display:block;flex:1;height:5px;border-radius:3px;background:#59745b55;border:1px solid #9eab7355}#ammo-slots i.loaded{background:#dbbf77;border-color:#f3dca3}
@media(max-width:760px){.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-card-copy{padding:13px}.roster-card-top{padding:11px 11px 0}.roster-card h3{font-size:17px}}
@media(max-width:520px){.roster-grid{grid-template-columns:minmax(0,1fr)}.roster-grid .roster-card .preview{max-height:185px}.roster-card h3{font-size:20px}.roster-card-copy{padding:16px}.roster-description{font-size:13px!important}.roster-filters{gap:4px;padding:6px}.roster-filters button{font-size:11px;padding:7px 9px}.roster-shop-guide{gap:7px;font-size:11px}.roster-shop-guide b{margin-right:3px}}
@media(max-width:600px){#roster-actions{left:12px;right:65px;bottom:calc(146px + env(safe-area-inset-bottom));gap:5px;justify-content:center}#roster-actions button{font-size:11px;padding:8px;flex:1}.bug-corner{align-items:flex-end}}
@media(max-height:500px) and (orientation:landscape){#roster-actions{left:auto;right:75px;bottom:12px}.auto-character #left-zone{width:45%;right:auto}.roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-card-top{flex-wrap:wrap}.roster-card h3{font-size:16px}.roster-card-copy{padding:12px}}
