/* Functional menu refresh. Assets, match rules and pointer ownership stay in
   their existing modules; disclosure buttons do not resume the match. */
.pr-menu-details { border-top:1px solid #b8cdd93d;margin-top:12px; }
.pr-menu-details > summary { min-height:44px;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:10px 0;font-size:14px;font-weight:750;cursor:pointer;list-style:none;color:#f7f4ea; }
.pr-menu-details > summary::-webkit-details-marker { display:none; }
.pr-menu-details > summary::after { content:'+';font-size:21px;margin-left:auto;width:24px;text-align:center;color:#91dfe9; }
.pr-menu-details[open] > summary::after { content:'−'; }
.pr-menu-details > summary:focus-visible,.pr-menu-details > summary.is-focus { outline:2px solid #91dfe9;outline-offset:2px;border-radius:4px; }
.pr-menu-details__body { padding:0 0 8px; }
.pr-domain-screen .pr-domain-card { color:#f7f4ea; }
.pr-domain-screen .pr-domain-actions .iw-btn { min-height:48px;white-space:normal; }
.pr-map-summary { display:flex;gap:12px;align-items:center;margin-bottom:12px; }
.pr-map-summary img { width:80px;height:64px;object-fit:contain;flex:0 0 auto;background:#223c51;border:1px solid #a4ccdb55;border-radius:6px; }
.pr-map-summary small { font-size:12px;color:#b8cdd9; }
.pr-map-summary h2 { margin:4px 0; }
.pr-domain-setup .pr-kit-rows { flex:0 0 auto;overflow:visible; }
.pr-domain-setup .pr-ready-card .pr-domain-actions { margin-top:auto; }
.pr-domain-pause .pr-domain-body { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
.pr-pause-primary { display:flex;flex-direction:column;justify-content:center; }
.pr-pause-primary .pr-domain-actions { display:grid;grid-template-columns:minmax(0,1fr);gap:10px; }
.pr-pause-primary .pr-domain-actions .iw-btn { width:100%;justify-content:center; }
.pr-pause-reference { overflow-y:auto;overscroll-behavior:contain; }
.pr-pause-reference > .pr-menu-details:first-child { margin-top:0;border-top:0; }
.pr-result-summary { display:flex;flex-direction:column; }
.pr-result-core { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.pr-result-score { display:grid;gap:4px;padding:12px;border:1px solid #b8cdd966;border-radius:6px;background:#20384c; }
.pr-result-score[data-winner="true"] { border-color:#efd49f;box-shadow:inset 0 3px #efd49f; }
.pr-result-score b { font-size:13px; }
.pr-result-score strong { font-size:clamp(24px,3vw,36px);font-variant-numeric:tabular-nums; }
.pr-result-score small { font-size:11px;color:#b8cdd9; }
.pr-result-xp { display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0; }
.pr-result-xp strong { color:#9ce6cb;font-size:23px; }
.pr-result-xp small { color:#d0e0e7;font-size:12px; }
.pr-result-summary > .pr-domain-actions { margin-top:16px; }
.pr-result-squads { display:grid;gap:14px; }
.pr-result-squad h3 { margin:0 0 8px;font-size:13px; }
.pr-result-portraits { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
.pr-result-player { position:relative;min-width:0;display:grid;justify-items:center;align-content:start;gap:4px;padding:8px 5px;border:1px solid #b8cdd933;border-radius:6px; }
.pr-result-player[data-self="true"] { border-color:#98ddcd; }
.pr-result-player .pr-menu-avatar { width:56px;height:66px; }
.pr-result-player .pr-menu-avatar > img { object-fit:cover;object-position:center top; }
.pr-result-player b { width:100%;font-size:12px;line-height:1.3;text-align:center;overflow-wrap:anywhere; }
.pr-result-player small { color:#b8cdd9;font-size:11px; }
.pr-result-you { font-size:10px;color:#98ddcd; }
/* The four skills remain visible while only the selected description expands. */
.pr-locker-kit { container-type:inline-size; }
.pr-locker-kit__tabs { position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:8px 0;padding:3px 0;background:#fbf9f1; }
@container (max-width:190px) {
 .pr-locker-kit__tabs { grid-template-columns:repeat(2,minmax(44px,1fr)); }
}
.pr-locker-kit__tab { min-width:0;min-height:48px;display:grid;place-content:center;justify-items:center;gap:3px;padding:5px 1px;border:1px solid #17263b38;border-radius:5px;background:#f2eee4;color:#17263b;font:700 10px/1.15 system-ui,sans-serif;touch-action:manipulation;cursor:pointer; }
.pr-locker-kit__tab[aria-selected="true"] { background:#17263b;color:#f7f4ea;border-color:#17263b;box-shadow:inset 0 -3px #8ed9cb; }
.pr-locker-kit__tab i { width:20px;height:20px; }
.pr-locker-kit__tab svg { width:100%;height:100%; }
.pr-locker-kit__tab:focus-visible,.pr-locker-kit__tab.is-focus { outline:2px solid #267c8d;outline-offset:1px; }
.pr-locker-kit__ability[hidden] { display:none!important; }
.pr-locker-kit__abilities { gap:0; }
.pr-locker-kit__ability { grid-template-columns:minmax(0,1fr);padding-top:8px; }
.pr-locker-kit__ability > i,.pr-locker-kit__slot { display:none; }
.pr-locker-kit__ability b { font-size:15px; }
.pr-locker-kit__ability p { font-size:12px;line-height:1.45; }
.pr-locker-kit__ability small { font-size:12px;line-height:1.4; }
/* Preview is a scaled read-only viewport diagram, not an extra touch surface. */
.pr-settings-group { margin:15px 6px 5px;color:#a7e3df;font-size:13px;font-weight:750; }
.pr-settings-group:first-child { margin-top:7px; }
.iw-settings__foot .iw-btn { min-height:44px;padding:8px 12px;font-size:12px;white-space:normal; }
.pr-touch-preview-card .iw-prev__stage { display:block!important;aspect-ratio:auto;overflow:visible;background:transparent;box-shadow:none; }
.pr-touch-preview { width:100%;position:relative; }
.pr-touch-preview__field { width:100%;border:1px solid #9dccd955;border-radius:6px;background:#19344a;overflow:hidden;pointer-events:auto;touch-action:manipulation; }
.pr-touch-preview__field svg { display:block;width:100%;height:auto;color:#f7f4ea;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.pr-touch-preview__field circle { stroke:#d8d4be;stroke-width:2;fill:#263e52; }
.pr-touch-preview__field circle.is-fire { stroke:#edd09c;stroke-width:3;fill:#365568; }
.pr-touch-preview__field circle.is-stick { fill:#213e4f; }
.pr-touch-preview__bounds { fill:none;stroke:#a8cfda;stroke-width:1;stroke-dasharray:7 7;opacity:.5; }
.pr-touch-preview small { display:block;font:500 11px/1.4 system-ui,sans-serif;color:#bdcbd4;margin-top:8px; }
.pr-touch-preview__safe { position:absolute;visibility:hidden;pointer-events:none;padding:max(env(safe-area-inset-top,0px),var(--safe-area-inset-top,0px)) max(env(safe-area-inset-right,0px),var(--safe-area-inset-right,0px)) max(env(safe-area-inset-bottom,0px),var(--safe-area-inset-bottom,0px)) max(env(safe-area-inset-left,0px),var(--safe-area-inset-left,0px)); }
/* DOM recovery and orientation use the same panel/button hierarchy, including
   the lifecycle recovery element that is deliberately independent of WebGL. */
.pr-recovery { gap:12px;background:#102237f2;color:#f7f4ea;font:600 15px/1.5 system-ui,sans-serif;text-align:left; }
.pr-recovery h2 { font-size:24px;line-height:1.25;margin-bottom:2px; }
.pr-recovery p { font-weight:500;color:#d0dddf;margin-bottom:8px; }
.pr-recovery button { min-height:48px;border:1px solid #bed5d35e;background:#20384a;color:#f7f4ea;font-size:14px;text-align:center; }
.pr-recovery button.pr-recovery-primary,.pr-recovery button:only-of-type { background:#e4dac0;color:#17263b; }
.pr-recovery button:disabled { opacity:.6;cursor:wait; }
.pr-orientation-card { border-color:#bed5d35e;box-shadow:0 12px 40px #091c3255; }
.pr-orientation-icon { color:#91dfe9; }
.iw-loading__center { border:1px solid #17263b25;border-radius:8px;background:#fbf9f1ed;padding:20px; }
.iw-loading__label { max-width:36rem;line-height:1.4; }
@media(max-height:480px),(pointer:coarse) {
 .iw-settings:has(.pr-touch-preview-card) .iw-settings__panel { left:max(12px,env(safe-area-inset-left,0px),var(--safe-area-inset-left,0px));width:55vw;top:72px;bottom:max(12px,env(safe-area-inset-bottom,0px),var(--safe-area-inset-bottom,0px));max-height:none;overflow-y:auto;box-sizing:border-box; }
 .iw-settings .pr-touch-preview-card { left:calc(55vw + 24px);right:max(12px,env(safe-area-inset-right,0px),var(--safe-area-inset-right,0px));top:72px;width:auto;box-sizing:border-box;max-height:calc(100dvh - 84px);overflow-y:auto; }
 .iw-settings .pr-touch-preview-card .iw-prev__label { font-size:14px; }
 .iw-settings .pr-touch-preview-card .iw-prev__head { flex-wrap:wrap; }
 .iw-settings .pr-touch-preview-card .iw-prev__help { font-size:12px;line-height:1.4; }
 .iw-settings .iw-rows { display:block; }
 .iw-settings .iw-row { min-height:44px; }
 .iw-settings .iw-settings__foot { flex-wrap:wrap;gap:8px; }
 .iw-settings .iw-settings__foot .iw-btn { width:100%; }
 .iw-settings .iw-row__label { font-size:12px;line-height:1.25; }
 .iw-settings .iw-row__ctrl { flex-basis:44%; }
}
@media(orientation:landscape) and (max-height:500px) {
 .pr-domain-screen .pr-domain-body { top:78px;bottom:max(12px,env(safe-area-inset-bottom,0px),var(--safe-area-inset-bottom,0px));left:max(12px,env(safe-area-inset-left,0px),var(--safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px),var(--safe-area-inset-right,0px));gap:12px;grid-template-rows:minmax(0,1fr); }
 .pr-domain-screen .pr-domain-card { padding:12px;min-height:0;overflow-y:auto;overscroll-behavior:contain; }
 .pr-domain-screen .iw-head { top:max(12px,env(safe-area-inset-top,0px),var(--safe-area-inset-top,0px)); }
 .pr-domain-screen .iw-head__sub { display:none; }
 .pr-domain-screen .pr-domain-card h2 { font-size:17px;margin-bottom:12px; }
 .pr-map-summary { margin-bottom:10px; }
 .pr-map-summary img { width:64px;height:50px; }
 .pr-goal-steps { gap:9px; }
 .pr-goal-steps h3 { font-size:14px; }
 .pr-goal-steps li p { font-size:12px;line-height:1.4;margin:3px 0 0; }
 .pr-domain-screen .pr-menu-details > summary { font-size:13px; }
 .pr-domain-setup .pr-kit-rows { grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px; }
 .pr-domain-setup .pr-kit-row { display:grid;grid-template-columns:24px minmax(0,1fr);gap:4px 7px; }
 .pr-domain-setup .pr-kit-row i { width:24px;height:24px;grid-row:1 / span 2; }
 .pr-domain-setup .pr-kit-row > span { display:none; }
 .pr-domain-setup .pr-kit-row b { font-size:12px; }
 .pr-domain-setup .pr-kit-row small { font-size:11px;line-height:1.3; }
 .pr-domain-screen .pr-domain-actions { gap:8px; }
 .pr-domain-screen .pr-domain-actions .iw-btn { font-size:13px;padding:8px;min-width:0; }
 .pr-domain-result .pr-domain-body { grid-template-columns:1fr 1fr; }
 .pr-result-score { padding:9px; }
 .pr-result-score strong { font-size:25px; }
 .pr-result-player .pr-menu-avatar { width:42px;height:50px; }
 .pr-result-squads { gap:10px; }
 .pr-result-player { padding:5px 3px; }
}
@media(orientation:portrait) {
 .pr-domain-pause .pr-domain-body,.pr-domain-result .pr-domain-body { grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;top:112px; }
 .iw-settings:has(.pr-touch-preview-card) .iw-settings__panel { left:12px;right:12px;top:264px;bottom:12px;width:auto;max-height:none; }
 .iw-settings .pr-touch-preview-card { left:12px;right:12px;top:76px;height:176px;width:auto;overflow-y:auto; }
 .iw-settings .pr-touch-preview-card .iw-prev__stage { float:right;width:48%;margin:0 0 8px 8px; }
 .iw-settings .pr-touch-preview-card .iw-prev__help { margin-top:6px; }
 .pr-touch-preview__field { max-height:100px; }
 .pr-touch-preview__field svg { width:100%;height:100px; }
}
@media(prefers-reduced-motion:reduce) { .pr-menu-details *, .pr-touch-preview *, .pr-locker-kit__tab { animation:none!important;transition:none!important; } }

/* Short mobile viewports keep the decision and its primary action in view.
   Overflow cues are measured against real content, not shown permanently. */
.pr-scroll-cue { position:absolute;right:6px;bottom:3px;z-index:4;display:inline-flex;align-items:center;gap:3px;max-width:calc(100% - 12px);padding:3px 7px;border:1px solid #aecbd766;border-radius:12px;background:#17263bf5;color:#f7f4ea;font:600 10px/1.3 system-ui,sans-serif;pointer-events:none;box-shadow:0 -5px 12px #17263b26; }
.pr-scroll-cue[hidden] { display:none!important; }
.pr-scroll-cue i { flex:0 0 14px;width:14px;height:14px; }
.pr-scroll-cue svg { width:100%;height:100%; }
.pr-locker-kit__reading,.pr-result-summary__reading,.pr-result-squads__reading { position:relative;min-height:0;flex:1 1 auto; }
.pr-locker-touch .pr-locker-kit { display:flex;flex-direction:column;overflow:clip; }
.pr-locker-kit__identity,.pr-locker-kit > p,.pr-locker-kit__tabs { flex:0 0 auto; }
.pr-locker-kit__detail { height:100%;box-sizing:border-box;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#6d949e #dfe5df;scroll-padding-bottom:24px; }
.pr-locker-kit__detail .pr-locker-kit__abilities { padding-bottom:24px; }
.pr-locker-kit__detail:focus-visible,.pr-result-summary__content:focus-visible,.pr-result-squads__content:focus-visible { outline:2px solid #65bdc7;outline-offset:-2px; }
.pr-roster-scroll { display:contents; }
.pr-locker-touch .pr-roster-scroll { display:block;position:relative;min-height:0; }
.pr-locker-touch .pr-hero-grid { height:100%;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#6d949e #dfe5df; }
.pr-looks:not(.pr-locker-touch) .pr-roster-scroll > .pr-scroll-cue { display:none; }
.pr-domain-result .pr-result-summary,.pr-domain-result .pr-result-lineup { display:flex;flex-direction:column;overflow:clip;min-height:0; }
.pr-result-summary__content,.pr-result-squads__content { height:100%;min-height:0;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8dacb5 #223c51;scroll-padding-bottom:24px;padding-bottom:24px; }
.pr-domain-result .pr-result-summary > .pr-domain-actions { flex:0 0 auto;margin-top:10px;padding-top:10px;border-top:1px solid #b8cdd933; }
.pr-result-lineup > h2 { flex:0 0 auto; }
.pr-main { --main-left:max(env(safe-area-inset-left,0px),var(--safe-area-inset-left,0px));--main-right:max(env(safe-area-inset-right,0px),var(--safe-area-inset-right,0px));--main-top:max(env(safe-area-inset-top,0px),var(--safe-area-inset-top,0px));--main-bottom:max(env(safe-area-inset-bottom,0px),var(--safe-area-inset-bottom,0px)); }
.pr-main-navigation { position:absolute;left:calc(3.8 * var(--u) + var(--main-left));top:calc(14 * var(--u) + var(--main-top));bottom:calc(6.6 * var(--u) + var(--main-bottom));width:calc(32 * var(--u)); }
.pr-main .pr-main-navigation .iw-main__menu { position:relative;inset:auto;transform:none;height:100%;width:100%;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding:4px 4px 24px;scrollbar-width:thin; }
.pr-main .iw-main__menu .iw-btn { flex:0 0 auto;min-height:44px; }
.pr-main-character { display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;max-height:45vh;height:360px;padding:0;overflow:clip;border:1px solid #17263b42;border-radius:8px;background:#f7f4ea;color:#17263b;text-align:left;cursor:pointer;touch-action:manipulation; }
.pr-main-character__art { display:block;position:relative;min-height:0;overflow:hidden;background:#e4dedb;container-type:size; }
/* Fit the approved head/shoulder window, not the entire standing image. The
   zero top anchor keeps crowns and hair accessories in every short banner;
   the height limit also retains KAZE's large ponytail without shrinking all
   other characters to the same full-body scale. */
/* Older supported WebViews lack container units. Their bounded full-image
   fallback preserves the entire head at a smaller scale. */
.pr-main-character__art img { display:block;position:absolute;top:0;left:50%;transform:translateX(-50%);width:100%;height:100%;object-fit:contain;object-position:center top;max-width:none;max-height:none; }
@supports (width:1cqh) {
 .pr-main-character__art img { width:min(100%,calc(100cqh * var(--main-portrait-aspect,1.2)));height:auto;object-fit:fill;object-position:50% 50%; }
}
.pr-main-character__copy { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;padding:10px 12px; }
.pr-main-character__copy > small,.pr-main-character__role,.pr-main-character__change { grid-column:1 / -1; }
.pr-main-character__copy > small { color:#466271;font-size:10px;font-weight:700; }
.pr-main-character__copy > b { font-size:21px;line-height:1.1;letter-spacing:.025em; }
.pr-main-character__element { display:flex;align-items:center;gap:5px;font-size:12px;font-weight:650; }
.pr-main-character__element .pr-element-badge { width:23px;height:23px;padding:3px; }
.pr-main-character__role { font-size:12px;line-height:1.35; }
.pr-main-character__change { display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:3px;padding-top:5px;border-top:1px solid #17263b25;font-size:12px;font-weight:700; }
.pr-main-character__change i { width:17px;height:17px; }
.pr-main-character__change svg { width:100%;height:100%; }
.pr-main-character:focus-visible,.pr-main-character.is-focus { outline:3px solid #16869c;outline-offset:3px; }
@media (orientation:landscape) and (max-height:500px) {
 .pr-main .iw-main__logo { left:calc(12px + var(--main-left));top:calc(12px + var(--main-top)); }
 .pr-main-navigation { left:calc(12px + var(--main-left));top:calc(88px + var(--main-top));bottom:calc(64px + var(--main-bottom));width:calc(53% - 18px - var(--main-left)); }
 .pr-main .pr-main-navigation .iw-main__menu { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(44px,auto);gap:8px;align-content:start; }
 .pr-main .iw-main__menu .iw-btn { height:44px!important;min-width:0;margin:0;padding:6px 8px;font-size:14px!important;white-space:normal; }
 .pr-main .iw-main__menu .pr-main-domain { grid-column:1 / -1;height:56px!important; }
 .pr-main .iw-main__menu .iw-btn__sub { font-size:10px;line-height:1.2; }
 .pr-main .iw-main__menu .iw-btn__label { white-space:normal;line-height:1.1; }
 .pr-main .iw-main__menu .iw-btn:not(.pr-main-domain) .iw-btn__sub { display:none; }
 .pr-main .iw-main__side { display:flex!important;right:calc(12px + var(--main-right));top:calc(88px + var(--main-top));bottom:calc(64px + var(--main-bottom));width:calc(43% - 12px - var(--main-right)); }
 .pr-main .iw-profile { display:none; }
 .pr-main-character { height:100%;max-height:none;flex:1; }
 .pr-main-character__copy { gap:3px;padding:8px 10px; }
 .pr-main-character__copy > b { font-size:18px; }
 .pr-main-character__role,.pr-main-character__change { font-size:11px; }
 .pr-locale-picker[data-screen="main"] { bottom:max(10px,env(safe-area-inset-bottom,0px),var(--safe-area-inset-bottom,0px)); }
 .pr-domain-result .pr-result-squads { grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
 .pr-domain-result .pr-result-portraits { grid-template-columns:minmax(0,1fr);gap:6px; }
 .pr-domain-result .pr-result-player { grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;justify-items:start;align-content:center;column-gap:6px;row-gap:2px;padding:5px;min-height:48px; }
 .pr-domain-result .pr-result-player .pr-menu-avatar { width:38px;height:42px;grid-row:1 / span 3; }
 .pr-domain-result .pr-result-player b { text-align:left;line-height:1.2; }
 .pr-domain-result .pr-result-player small,.pr-domain-result .pr-result-you { grid-column:2;font-size:10px;line-height:1.2; }
 .pr-domain-result .pr-result-player .pr-element-badge { width:19px;height:19px; }
 .pr-domain-result .pr-result-summary > .pr-domain-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); }
 .pr-domain-result .pr-result-summary > .pr-domain-actions .iw-btn { width:100%;justify-content:center; }
}
@media (orientation:landscape) and (max-width:700px) {
 .pr-locker-touch .iw-head { max-width:calc(36% - 24px - var(--locker-left)); }
 .pr-locker-touch .iw-head__titles { min-width:0; }
 .pr-locker-touch .iw-head__title { font-size:18px; }
}
@media (orientation:portrait) {
 .pr-main-navigation { left:calc(12px + var(--main-left));right:calc(12px + var(--main-right));top:104px;bottom:calc(272px + var(--main-bottom));width:auto; }
 .pr-main .pr-main-navigation .iw-main__menu { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:48px;gap:8px;align-content:start; }
 .pr-main .iw-main__menu .iw-btn { height:48px!important;margin:0;padding:7px;font-size:14px!important;white-space:normal; }
 .pr-main .iw-main__menu .iw-btn__label { white-space:normal;line-height:1.1; }
 .pr-main .iw-main__menu .iw-btn:not(.pr-main-domain) .iw-btn__sub { display:none; }
 .pr-main .pr-main-domain { grid-column:1 / -1; }
 .pr-main .iw-main__side { display:flex!important;left:calc(12px + var(--main-left));right:calc(12px + var(--main-right));top:auto;bottom:calc(66px + var(--main-bottom));width:auto;height:194px; }
 .pr-main .iw-profile { display:none; }
 .pr-main-character { height:100%;max-height:none;grid-template-columns:42% minmax(0,1fr);grid-template-rows:minmax(0,1fr); }
 .pr-main-character__copy { align-content:center; }
 .pr-domain-result .pr-result-summary { min-height:300px; }
 .pr-domain-result .pr-result-lineup { min-height:340px; }
}
