/* Rojo Liga roster: hero portraits, quiet rarity finishes, fixed six-partner strip. */
.menu-theme586 #collection-root[data-page557="trainers"] .trainer-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;align-items:stretch}
.menu-theme586.collection-shell528 .trainer-grid .league-roster599{--foil:#a4b494;position:relative;display:flex!important;flex-direction:column;align-items:stretch!important;gap:0!important;min-width:0;min-height:0!important;padding:0!important;border:1px solid #d8d2c7!important;border-radius:16px!important;background:#fffcf6!important;box-shadow:0 5px 12px #34282a0a!important;overflow:hidden;text-align:left;opacity:1!important;filter:none!important;transition:transform .16s,box-shadow .16s}
.menu-theme586.collection-shell528 .trainer-grid .league-roster599:hover{transform:translateY(-3px);box-shadow:0 9px 18px #34282a16!important}
.menu-theme586.collection-shell528 .trainer-grid .league-roster599.active{border:2px solid #cd3345!important;box-shadow:0 0 0 3px #cd334512!important}
.league-roster599[data-rarity=rare]{--foil:#80b6cd!important}.league-roster599[data-rarity=epic]{--foil:#ba9bce!important}.league-roster599[data-rarity=legendary]{--foil:#e9c066!important}
.league-roster599 .roster-hero599{position:relative;isolation:isolate;min-height:190px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;padding:16px 18px 22px;overflow:hidden;border-bottom:4px solid var(--foil);background:radial-gradient(ellipse at 90% 100%,var(--team-accent),transparent 75%),linear-gradient(130deg,#272934,#4c3b45);color:#fff9e9}
.league-roster599 .roster-hero599:before{content:'';position:absolute;z-index:-1;right:-15px;bottom:-50px;width:180px;height:180px;border:1px solid #fff3d742;border-radius:50%;box-shadow:0 0 0 25px #fff3d70a,0 0 0 50px #fff3d708}
.league-roster599 .roster-hero599:after{content:'';position:absolute;inset:8px;border:1px solid #fff4da20;border-radius:9px;pointer-events:none}
.league-roster599 .roster-mark599{position:absolute;left:8px;bottom:-15px;font:900 150px/1 system-ui;letter-spacing:-.1em;color:#fff3d70c;z-index:-1}
.league-roster599 .roster-meta599{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.menu-theme586 .league-roster599 .roster-rarity599{font:800 8px/1.2 system-ui;letter-spacing:.12em;text-transform:uppercase;color:#25252d!important;background:var(--foil)!important;border:1px solid #ffffff30;border-radius:3px;padding:5px 7px}
.menu-theme586 .league-roster599 .roster-active599,.menu-theme586 .league-roster599 .roster-locked599{font:700 9px/1.2 system-ui;color:#fff6e5!important;max-width:110px}.menu-theme586 .league-roster599 .roster-active599{background:#cd3345;padding:5px 7px;border-radius:4px}
.league-roster599 .roster-copy599{position:relative;z-index:1;width:62%;margin-top:22px}
.menu-theme586.collection-shell528 .trainer-grid .league-roster599 h3{font:900 clamp(22px,2vw,30px)/1.05 system-ui!important;letter-spacing:-.045em;color:#fff9e9!important;text-shadow:0 2px 8px #27212b99;margin:0 0 8px!important;overflow-wrap:normal;word-break:normal;hyphens:none}
.menu-theme586 .league-roster599 .level{font-size:11px!important;line-height:1.4;color:#fff0d8!important;margin:0!important;font-weight:600;text-shadow:0 1px 5px #27212b}
.menu-theme586.collection-shell528 .trainer-grid .league-roster599 .roster-hero599>canvas{position:absolute;right:3px;bottom:-2px;width:123px!important;max-width:123px!important;height:155px!important;image-rendering:pixelated;margin:0!important;background:none!important;border:0!important;box-shadow:none!important;outline:none!important;filter:drop-shadow(0 6px 2px #27212b44)!important;opacity:1!important}
.league-roster599 .roster-foot599{padding:12px;display:flex;flex-direction:column;gap:12px;flex:1}
.menu-theme586 .league-roster599 .team-strip{width:100%;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px!important;margin:0!important;padding:0!important;min-width:0;filter:none!important;opacity:1!important}
.menu-theme586 .league-roster599 .team-strip .poke-face{display:block;width:100%!important;max-width:43px!important;height:auto!important;aspect-ratio:1;background:#f4eee2!important;border:1px solid #e4dbc9!important;border-radius:8px;box-sizing:border-box;opacity:1!important;filter:none!important}
.league-roster599 .roster-actions599{display:flex;flex-direction:column;gap:5px;margin-top:auto}
.menu-theme586.collection-shell528 .trainer-grid .league-roster599 .roster-actions599>button{width:100%;min-height:42px;margin:0!important;font-size:12px;font-weight:750;border-radius:8px;padding:9px 6px!important;white-space:normal;line-height:1.4}
.menu-theme586 .league-roster599 .roster-actions599>.view-team576{color:#655b57!important;background:transparent!important;border:0!important;min-height:36px!important;font-size:11px!important}
.menu-theme586 .league-roster599.locked .roster-actions599>.view-team576{border:1px solid #d8cfc2!important;background:#f8f2e7!important;color:#3f3939!important;min-height:42px!important;font-size:12px!important}
.menu-theme586 .clear-trainer-heading576 h2{font-size:30px;letter-spacing:-.04em}.menu-theme586 .clear-trainer-heading576 p{font-size:13px;line-height:1.6}.menu-theme586 .collection-tools528{margin-top:20px}.menu-theme586 .trainer-refine557{margin:12px 0!important}.menu-theme586 .collection-count511{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#756c65!important;margin:18px 0 12px}
@media(max-width:1100px){.menu-theme586 #collection-root[data-page557="trainers"] .trainer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}}
@media(max-width:650px){.menu-theme586 #collection-root[data-page557="trainers"] .trainer-grid{grid-template-columns:1fr!important;gap:18px!important}.league-roster599 .roster-hero599{min-height:180px;padding:16px 20px 22px}.menu-theme586.collection-shell528 .trainer-grid .league-roster599 .roster-hero599>canvas{width:145px!important;max-width:145px!important;height:174px!important;right:10px;bottom:-4px}.menu-theme586.collection-shell528 .trainer-grid .league-roster599 h3{font-size:32px!important}.league-roster599 .roster-copy599{width:61%}.league-roster599 .roster-foot599{padding:12px 16px}.menu-theme586 .league-roster599 .team-strip .poke-face{max-width:48px!important}.league-roster599 .roster-actions599{flex-direction:row;align-items:stretch;gap:8px}.menu-theme586 .league-roster599 .roster-actions599>.primary{flex:1.8}.menu-theme586 .league-roster599 .roster-actions599>.view-team576{flex:1;min-height:44px!important;border:1px solid #dfd5c6!important;border-radius:8px}.menu-theme586 .league-roster599 .roster-actions599>button{width:auto!important}.menu-theme586 .clear-trainer-heading576 h2{font-size:27px}.menu-theme586 .collection-tools528>input{min-height:46px}}
@media(max-width:360px){.menu-theme586.collection-shell528 .trainer-grid .league-roster599 h3{font-size:27px!important}.menu-theme586.collection-shell528 .trainer-grid .league-roster599.roster-long599 h3{font-size:23px!important}.menu-theme586.collection-shell528 .trainer-grid .league-roster599 .roster-hero599>canvas{width:123px!important;max-width:123px!important;height:160px!important;right:0}.league-roster599 .roster-hero599{padding:14px 16px 20px}.league-roster599 .roster-foot599{padding:10px}.menu-theme586 .league-roster599 .roster-active599{font-size:8px}.league-roster599 .roster-copy599{width:62%}}
@media(prefers-reduced-motion:reduce){.menu-theme586.collection-shell528 .trainer-grid .league-roster599{transition:none}.menu-theme586.collection-shell528 .trainer-grid .league-roster599:hover{transform:none}}

.menu-theme586 .league-roster599 .roster-variant599{display:block;font-size:10px;line-height:1.4;color:#fff0d8!important;margin:0 0 6px;text-shadow:0 1px 5px #27212b}.menu-theme586.collection-shell528 .trainer-grid .league-roster599.roster-long599 h3{font-size:23px!important}
.league-roster599 .roster-meta599{position:absolute;top:16px;left:18px;right:18px}.league-roster599 .roster-copy599{position:absolute;left:18px;bottom:20px;margin:0}.league-roster599 .roster-hero599{flex:none}
/* Decorative rings must not become an internal scroll container on touch focus. */
.league-roster599 .roster-hero599{overflow:clip}

/* Canvas drawing buffers are square: preserve their aspect ratio at every breakpoint. */
.menu-theme586.collection-shell528 .trainer-grid .league-roster599 .roster-hero599>canvas{width:155px!important;max-width:155px!important;height:155px!important;right:-10px}
.league-roster599 .roster-meta599{justify-content:flex-start;gap:6px}.menu-theme586 .league-roster599 .roster-favorite600{margin-left:auto!important;display:grid;place-items:center;min-width:34px;width:34px;min-height:34px;height:34px;padding:0!important;background:#27252f55!important;border:1px solid #fff0d83d!important;border-radius:8px;color:#fff1cf!important;font-size:23px;line-height:1;cursor:pointer;box-shadow:none!important}.menu-theme586 .league-roster599 .roster-favorite600[aria-pressed=true]{color:#ffd166!important;border-color:#f4ce79!important;background:#5b432c!important}
@media(max-width:650px){.menu-theme586.collection-shell528 .trainer-grid .league-roster599 .roster-hero599>canvas{width:174px!important;max-width:174px!important;height:174px!important;right:-4px}.menu-theme586 .league-roster599 .roster-favorite600{min-width:40px;width:40px;min-height:40px;height:40px}}
@media(max-width:360px){.menu-theme586.collection-shell528 .trainer-grid .league-roster599 .roster-hero599>canvas{width:160px!important;max-width:160px!important;height:160px!important;right:-12px}.menu-theme586 .league-roster599 .roster-meta599{left:14px;right:14px}.menu-theme586 .league-roster599 .roster-favorite600{min-width:36px;width:36px;min-height:36px;height:36px}}
