@import url("./styles-v4-colors.css?v=5");
@font-face {
  font-family: "Protest Revolution";
  src: url("./fonts/ProtestRevolution-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root{--sky:#e7eff1;--chalk:#f7f8f3;--paper:#f1f5f2;--ink:#15242c;--ink-soft:#354851;--muted:#697b82;--line:#c9d5d6;--line-strong:#9fb1b4;--field:#3A3F40;--field-soft:#d5e5de;--clay:#C48E55;--clay-soft:#f3ded7;--gold:#C6A064;--gold-soft:#f1e7cf;--accent:var(--clay);--accent-soft:var(--clay-soft);--green:#6F8A78;--green-soft:#dceae4;--amber:var(--gold);--amber-soft:var(--gold-soft);--spirit:#B09A7C;--spirit-soft:#ece4d9;--spirit-line:#d4c3ae;--text:var(--ink);--muted-strong:var(--ink-soft);--panel:var(--chalk);--panel-soft:var(--paper);--panel-muted:var(--sky);--shadow-field:0 22px 50px rgba(29,57,49,.12);--shadow-float:0 18px 45px rgba(21,36,44,.15);--font-zh:"Microsoft JhengHei","PingFang TC","Noto Sans TC",system-ui,sans-serif;--font-display:Bahnschrift,"Arial Narrow",Arial,sans-serif;color-scheme:light}
:root[data-theme="dark"]{--sky:#111e24;--chalk:#182830;--paper:#1e3037;--ink:#f0f5f2;--ink-soft:#c2d0d1;--muted:#8fa1a5;--line:#30444b;--line-strong:#536a71;--field:#65a38c;--field-soft:#213c34;--clay:#ee8469;--clay-soft:#3e2926;--gold:#d8ad60;--gold-soft:#3b3221;--green:#74b497;--green-soft:#203a31;--spirit:#d3b28a;--spirit-soft:#352f28;--spirit-line:#625443;--shadow-field:0 24px 54px rgba(0,0,0,.27);--shadow-float:0 22px 54px rgba(0,0,0,.36);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{margin:0;overflow-x:clip;background:var(--sky);color:var(--ink);font-family:var(--font-zh);font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,summary,select{cursor:pointer}button,a,input,select,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--clay) 40%,transparent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:10px 14px;border-radius:10px;background:var(--ink);color:var(--chalk);transform:translateY(-150%)}.skip-link:focus{transform:none}.page-shell{width:min(1360px,calc(100% - 48px));margin:0 auto;padding:16px 0 48px}
.score-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px;min-height:64px}.orbit-brand{display:inline-flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-disc{position:relative;width:44px;height:44px;overflow:hidden;border-radius:50%;background:var(--chalk);box-shadow:0 0 0 5px color-mix(in srgb,var(--clay) 10%,transparent)}.brand-disc::after{content:"";position:absolute;inset:5px;border:1px dashed color-mix(in srgb,var(--clay) 55%,transparent);border-radius:50%}.brand-disc img{display:block;width:100%;height:100%;object-fit:cover}.brand-type{display:grid;line-height:1.05}.brand-type small{color:var(--muted);font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.18em}.brand-type strong{margin-top:4px;font-family:var(--font-display);font-size:15px;letter-spacing:.07em}.score-nav{display:flex;align-items:center;justify-content:flex-start;gap:34px}.score-nav a{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:44px;color:var(--muted);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}.score-nav a span{color:var(--line-strong);font-family:var(--font-display);font-size:9px;font-variant-numeric:tabular-nums}.score-nav a::before{content:"";position:absolute;bottom:4px;left:0;width:0;height:7px;border-radius:50%;background:var(--clay);transition:width 180ms ease}.score-nav a:hover,.score-nav a.is-active{color:var(--ink)}.score-nav a.is-active::before{width:28px}.score-utility{display:flex;align-items:center;justify-content:end;gap:16px}.data-status{display:grid;grid-template-columns:8px auto;align-items:center;column-gap:7px;color:var(--muted);font-family:var(--font-display);font-size:10px;line-height:1.15}.data-status i{grid-row:span 2;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.data-status span:last-child{color:var(--ink-soft)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:0 12px;border:0;border-radius:50px 50px 50px 16px;background:var(--chalk);color:var(--ink-soft);font-size:11px;font-weight:700;box-shadow:0 6px 18px rgba(21,36,44,.06)}.theme-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}.theme-toggle:hover{color:var(--clay)}
.archive-lede{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 340px;align-items:center;gap:30px;min-height:184px;padding:20px 0 18px}.archive-lede::before{content:"";position:absolute;right:-11vw;bottom:10px;width:44vw;height:118px;border-radius:60% 0 0 60%;background:color-mix(in srgb,var(--chalk) 58%,transparent);z-index:-1}.vertical-season{align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-family:var(--font-display);writing-mode:vertical-rl;transform:rotate(180deg)}.vertical-season span{font-size:9px;letter-spacing:.2em}.vertical-season strong{font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.13em}.archive-kicker{margin:0;color:var(--clay);font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.16em}.lede-copy h1{margin:6px 0 9px;font-size:clamp(34px,4.2vw,58px);font-weight:780;letter-spacing:-.055em;line-height:1.03}.lede-copy h1 em{color:var(--field);font-style:normal}.lede-copy>p:last-child{max-width:650px;margin:0;color:var(--muted);font-size:13px}.archive-orbit{position:relative;display:grid;place-items:center;min-height:140px}.orbit-stitch{position:absolute;width:292px;height:116px;border:2px dashed color-mix(in srgb,var(--field) 38%,transparent);border-radius:50%;transform:rotate(-7deg)}.orbit-stitch::before,.orbit-stitch::after{content:"";position:absolute;top:50%;width:42px;height:18px;border-top:2px solid color-mix(in srgb,var(--clay) 38%,transparent);border-radius:50%}.orbit-stitch::before{left:-12px;transform:rotate(18deg)}.orbit-stitch::after{right:-12px;transform:rotate(-18deg)}.summary-strip{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);width:280px;align-items:end}.summary-stat{text-align:center}.summary-stat strong{display:block;font-family:var(--font-display);font-size:28px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1}.summary-stat.is-total strong{color:var(--clay);font-size:39px}.summary-stat span{display:block;margin-top:5px;color:var(--muted);font-size:9px}.orbit-caption{position:absolute;bottom:8px;color:var(--muted);font-family:var(--font-display);font-size:8px;letter-spacing:.18em}
.search-mound{position:relative;z-index:30;display:grid;grid-template-columns:minmax(300px,1.8fr) minmax(150px,.65fr) minmax(180px,.8fr) auto;gap:10px;align-items:center;padding:14px 16px;border-radius:28px 28px 76px 28px;border:1px solid transparent;background:#101314;color:#F0F1EE;box-shadow:var(--shadow-field)}:root[data-theme="dark"] .search-mound{background:#101314}.search-field{display:grid;gap:4px;min-width:0}.orbit-search{display:flex;align-items:center;min-width:0;height:var(--control-height);min-height:0;padding:0 15px;border-radius:var(--control-radius);background:var(--control-bg);border:1px solid var(--control-border);color:var(--control-text)}.orbit-search:hover{background:var(--control-bg-hover);border-color:var(--control-border-hover)}.orbit-search:focus-within{background:var(--control-bg-hover);border-color:var(--control-accent)}.orbit-search svg{flex:0 0 21px;width:21px;height:21px;margin-right:10px;fill:none;color:var(--control-icon);stroke:var(--control-icon);stroke-width:1.8}.orbit-search input{min-width:0;width:100%;height:100%;min-height:0;border:0;outline:0;background:transparent;color:var(--control-text);caret-color:var(--control-text);font-size:16px}.orbit-search input::placeholder{color:var(--control-placeholder);opacity:1}.orbit-search kbd{display:inline-flex;align-items:center;flex:0 0 auto;min-width:max-content;white-space:nowrap;padding:3px 7px;border:1px solid var(--control-border-hover);border-radius:7px;background:var(--control-bg-hover);color:var(--control-text);font-family:var(--font-display);font-size:9px}.mound-control{display:grid;gap:4px;min-width:0;padding:0 4px 0 13px;border-left:1px solid transparent}.mound-control>span,.filter-field>span,.mound-label{color:var(--control-label);font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.08em}.v4-native-select{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}.reset-button{min-width:54px;min-height:44px;padding:0 10px;border:0;border-radius:50%;background:var(--clay);color:#fff;font-size:11px;font-weight:750}.reset-button:hover{background:#df6a4e}.advanced-filters{grid-column:1/-1}.advanced-filters>summary{display:inline-flex;align-items:center;gap:7px;min-height:34px;color:rgba(255,255,255,.82);font-size:11px;font-weight:700;list-style:none}.advanced-filters>summary::-webkit-details-marker{display:none}.advanced-filters>summary svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}.advanced-filters>summary small{color:rgba(255,255,255,.45);font-weight:400}.advanced-fieldset{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 12px;padding:10px 4px 4px;border-top:1px solid rgba(255,255,255,.14)}.filter-field{position:relative;display:grid;gap:4px;min-width:0}.v4-control{position:relative}.v4-control.is-open{z-index:160}.v4-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:var(--control-height);padding:0 10px 0 11px;border:1px solid var(--control-border);border-radius:var(--control-radius);outline:0;background:var(--control-bg);color:var(--control-text);font-size:12px;text-align:left;text-overflow:ellipsis;transition:background 160ms ease,border-color 160ms ease}.v4-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v4-select-trigger:hover{background:var(--control-bg-hover);border-color:var(--control-border-hover)}.v4-select-trigger:focus{border-color:var(--control-accent);outline:0}.v4-select-trigger:disabled{background:var(--control-bg);border-color:var(--control-border);color:var(--control-text);opacity:.46;cursor:not-allowed}.v4-chevron{display:block;flex:0 0 14px;width:14px;height:14px;fill:none;stroke:var(--control-icon);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.filter-menu,.v4-select-menu{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:160;display:grid;min-width:220px;max-height:280px;overflow-y:auto;padding:8px;border:1px solid var(--control-popup-border);border-radius:var(--control-radius);background:var(--control-popup-bg);color:var(--control-text);box-shadow:0 14px 30px rgba(0,0,0,.30)}.v4-select-group-label{padding:6px 9px 4px;color:var(--control-label);font-size:9px;font-weight:700;letter-spacing:.08em}.v4-select-option{display:block;width:100%;min-height:var(--control-option-height);padding:7px 9px;border:0;border-radius:6px;background:transparent;color:var(--control-text);font:inherit;font-size:12px;text-align:left;cursor:pointer}.v4-select-option:hover{background:var(--control-option-hover)}.v4-select-option[aria-selected="true"]{background:var(--control-option-selected);color:#FFFFFF}.filter-menu[hidden],.v4-select-menu[hidden]{display:none}.filter-option{display:flex;align-items:center;gap:9px;min-height:var(--control-option-height);padding:7px 9px;border-radius:6px;background:transparent;color:var(--control-text);font-size:12px}.filter-option:hover{background:var(--control-option-hover)}.filter-option:has(input:checked){background:var(--control-option-selected);color:#FFFFFF}.filter-option input{width:17px;height:17px;accent-color:var(--clay)}.team-orbit{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:14px;min-height:82px;padding:8px 0}.orbit-label{display:grid}.orbit-label span{color:var(--ink);font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.14em}.orbit-label small{color:var(--muted);font-size:10px}.team-tabs{display:flex;align-items:center;gap:5px;min-width:0;overflow-x:auto;padding:4px 0;scrollbar-width:thin}.team-tab{position:relative;display:grid;grid-template-columns:28px auto;grid-template-rows:18px 15px;align-items:center;flex:0 0 auto;min-width:82px;min-height:58px;padding:6px 9px;border:0;border-radius:34px 34px 34px 12px;background:transparent;color:var(--muted);font-size:10px;font-weight:700;text-align:left;transition:background 160ms ease,color 160ms ease}.team-tab .team-color{grid-row:1/3;width:25px;height:25px;border-radius:50%;box-shadow:0 0 0 5px color-mix(in srgb,var(--team-color,var(--clay)) 12%,transparent)}.team-tab .team-count{color:var(--muted);font-family:var(--font-display);font-size:9px;font-variant-numeric:tabular-nums}.team-tab:hover,.team-tab.is-selected{background:color-mix(in srgb,var(--team-color,var(--clay)) 11%,transparent);color:var(--ink)}
.compare-bar{position:sticky;top:8px;z-index:90;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin:8px 0 14px;padding:11px 14px 11px 20px;border-radius:18px 46px 18px 46px;background:var(--chalk);box-shadow:var(--shadow-float)}.compare-bar[hidden]{display:none}.compare-summary{display:grid}.compare-summary strong{font-family:var(--font-display);font-size:12px}.compare-summary span{color:var(--muted);font-size:9px}.compare-chips{display:flex;gap:6px;overflow-x:auto}.compare-chip{display:inline-flex;align-items:center;min-height:34px;padding-left:10px;border-radius:17px;background:var(--paper);font-size:10px;white-space:nowrap}.compare-chip button{width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--muted)}.compare-actions{display:flex;gap:7px}.compare-open,.compare-clear{min-height:40px;padding:0 13px;border:0;border-radius:12px;background:var(--paper);color:var(--ink);font-size:11px;font-weight:750}.compare-open{background:var(--ink);color:var(--chalk)}.compare-open:disabled{opacity:.42;cursor:not-allowed}
.collection-heading{display:grid;grid-template-columns:70px 1fr auto;align-items:end;gap:18px;padding:18px 0 20px}.collection-index{display:grid;place-items:center;width:58px;height:58px;border-radius:50% 50% 50% 16px;background:var(--field);color:#fff}.collection-index strong{font-family:var(--font-display);font-size:16px;line-height:1}.collection-index span{font-family:var(--font-display);font-size:7px;letter-spacing:.1em}.collection-heading>div:nth-child(2) p{margin:0;color:var(--clay);font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.14em}.collection-heading h2{margin:3px 0 0;font-size:25px;letter-spacing:-.03em}.results-tools{display:flex;align-items:center;gap:13px;color:var(--muted);font-family:var(--font-display);font-size:11px}.view-switch{display:flex;align-items:center;gap:3px}.view-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 10px;border:0;border-radius:50% 50% 50% 13px;background:transparent;color:var(--muted);font-size:10px}.view-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6}.view-button:first-child svg{fill:currentColor;stroke:none}.view-button.is-selected{background:var(--chalk);color:var(--ink);box-shadow:0 7px 20px rgba(21,36,44,.07)}
.results-section{min-height:320px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:42px 30px}.team-group-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 18px;padding:0 0 10px 16px;border-bottom:1px solid var(--line)}.team-group-heading::before{content:"";width:12px;height:34px;margin-left:-16px;border-radius:8px;background:var(--team-color)}.team-group-heading h3{margin:0 auto 0 0;font-size:20px}.team-group-heading span{color:var(--muted);font-family:var(--font-display);font-size:10px}.player-card{position:relative;min-width:0;background:transparent}.orbit-visual{position:relative;height:350px;isolation:isolate}.player-field{position:absolute;inset:25px 14px 18px;z-index:-2;overflow:hidden;border-radius:52% 48% 43% 57%/46% 42% 58% 54%;background:color-mix(in srgb,var(--team-color) 16%,var(--chalk));box-shadow:var(--shadow-field);transition:transform 180ms ease,border-radius 180ms ease}.player-field::before{content:"";position:absolute;right:-52px;bottom:-64px;width:230px;height:230px;border:28px solid color-mix(in srgb,var(--team-color) 12%,transparent);border-radius:50%}.field-stitch{position:absolute;top:-16px;left:-48px;width:178px;height:242px;border:2px dashed color-mix(in srgb,var(--team-color) 38%,transparent);border-radius:50%;transform:rotate(24deg)}.player-card:nth-child(3n + 2) .player-field{border-radius:44% 56% 54% 46%/54% 44% 56% 46%}.player-card:nth-child(3n) .player-field{border-radius:58% 42% 47% 53%/42% 52% 48% 58%}.player-card:hover .player-field{transform:scale(1.018) rotate(-.5deg)}.orbit-visual .card-art{position:absolute;inset:0 18px 0;z-index:2;min-height:0;height:100%;overflow:visible;border:0;border-radius:0;background:transparent}.orbit-visual .card-art::after{display:none}.orbit-visual .card-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 15px 14px rgba(13,30,24,.18));transform:scale(1.04);transform-origin:center bottom}.card-art-fallback{display:grid;place-items:center;width:122px;height:122px;margin:100px auto 0;border-radius:50%;color:#fff;font-family:var(--font-display);font-size:32px;font-weight:750}.card-art-label{position:absolute;right:0;bottom:22px;left:0;color:var(--muted);font-size:9px;text-align:center}.orbit-serial{position:absolute;top:13px;left:18px;z-index:4;color:var(--muted);font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.12em}.team-ghost{position:absolute;right:14px;bottom:34px;z-index:-1;max-width:90%;overflow:hidden;color:color-mix(in srgb,var(--team-color) 18%,transparent);font-size:92px;font-weight:850;letter-spacing:-.1em;line-height:.75;white-space:nowrap}.orbit-rating{position:absolute;top:20px;right:11px;z-index:1;display:grid;justify-items:end;color:color-mix(in srgb,var(--team-color) 34%,var(--ink));font-family:var(--font-display)}.orbit-rating small{margin-right:7px;font-size:8px;font-weight:700;letter-spacing:.16em}.orbit-rating strong{font-size:76px;font-weight:780;font-variant-numeric:tabular-nums;letter-spacing:-.08em;line-height:.8;opacity:.42}.orbit-compare{position:absolute;top:35px;left:32px;z-index:5}.compare-check{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:10px;font-weight:700}.compare-check input{position:absolute;width:1px;height:1px;opacity:0}.compare-check span{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:50%;background:color-mix(in srgb,var(--chalk) 91%,transparent);color:var(--ink-soft);box-shadow:0 7px 18px rgba(21,36,44,.09)}.compare-check input:checked+span{background:var(--clay);color:#fff}.compare-check input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--clay) 40%,transparent)}.orbit-identity{position:relative;z-index:5;margin:-24px 20px 0 34px}.orbit-identity header{display:block}.orbit-identity h4{margin:0;overflow:hidden;font-size:29px;font-weight:780;letter-spacing:-.05em;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}.orbit-identity header p{margin:5px 0 0;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.orbit-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:14px;padding:11px 0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.orbit-stat{display:grid;justify-items:center;gap:2px;min-width:0}.orbit-stat small{max-width:100%;overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.orbit-stat b{color:var(--ink-soft);font-family:var(--font-display);font-size:16px;font-variant-numeric:tabular-nums;line-height:1}.orbit-stat.is-primary b{color:var(--ink);font-size:20px}.orbit-meta{display:flex;gap:7px 15px;margin-top:10px;overflow:hidden;color:var(--muted);font-family:var(--font-display);font-size:9px;white-space:nowrap}.orbit-meta span{overflow:hidden;text-overflow:ellipsis}.detail-button{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin-top:10px;padding:0;border:0;background:transparent;color:var(--ink);font-size:11px;font-weight:750}.detail-button::after{content:"";width:38px;height:1px;background:var(--clay);transition:width 160ms ease}.detail-button:hover::after{width:58px}.card-grid.list-view{display:grid;grid-template-columns:1fr;gap:0}.player-list-item{display:grid;grid-template-columns:92px minmax(170px,.8fr) 76px minmax(290px,1.3fr) auto;align-items:center;gap:20px;min-width:0;padding:13px 10px;border-bottom:1px solid var(--line)}.orbit-list-art{position:relative;width:82px;height:82px;overflow:hidden;border-radius:50% 50% 50% 18px;background:color-mix(in srgb,var(--team-color) 16%,var(--chalk))}.orbit-list-art .card-art{position:absolute;inset:0;min-height:0;height:100%;border:0;background:transparent}.orbit-list-art .card-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.list-player-main{min-width:0}.list-year{margin:0 0 3px;color:var(--clay);font-family:var(--font-display);font-size:8px;letter-spacing:.12em}.list-player-main h4{margin:0;overflow:hidden;font-size:19px;text-overflow:ellipsis;white-space:nowrap}.list-player-main>p:last-child{margin:3px 0 0;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.list-overall{display:grid;justify-items:end}.list-overall strong{font-family:var(--font-display);font-size:38px;line-height:.9}.list-overall span{color:var(--muted);font-family:var(--font-display);font-size:8px;letter-spacing:.12em}.orbit-list-stats{display:grid;grid-template-columns:repeat(5,1fr)}.orbit-list-stats span{display:grid;justify-items:center}.orbit-list-stats small{color:var(--muted);font-size:8px}.orbit-list-stats b{font-family:var(--font-display);font-size:15px}.list-actions{display:flex;align-items:center;justify-content:end;gap:12px}.list-actions .detail-button{margin:0}
.loading-state,.empty-state{display:grid;place-items:center;min-height:300px;color:var(--muted);text-align:center}.spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--clay);border-radius:50%;animation:orbit-spin .8s linear infinite}@keyframes orbit-spin{to{transform:rotate(360deg)}}.load-more-wrap{display:flex;justify-content:center;padding:34px 0}.load-more{min-height:46px;padding:0 20px;border:0;border-radius:24px 24px 24px 10px;background:var(--ink);color:var(--chalk);font-weight:750}.site-footer{display:flex;justify-content:space-between;gap:12px;margin-top:48px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-family:var(--font-display);font-size:9px;letter-spacing:.1em}.back-to-top{position:fixed;right:20px;bottom:20px;z-index:70;display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:50% 50% 50% 13px;background:var(--ink);color:var(--chalk);box-shadow:var(--shadow-float);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity 160ms ease,transform 160ms ease}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:none}
.detail-dialog,.compare-dialog{width:min(1120px,calc(100% - 32px));max-width:none;max-height:min(91dvh,900px);padding:0;border:0;border-radius:32px 32px 72px 32px;background:var(--chalk);color:var(--ink);box-shadow:0 34px 90px rgba(5,17,20,.34)}.detail-dialog::backdrop,.compare-dialog::backdrop{background:rgba(9,23,27,.72)}.dialog-frame{position:relative;max-height:min(91dvh,900px);overflow:auto;padding:28px}.dialog-close{position:absolute;top:14px;right:14px;z-index:4;display:grid;place-items:center;width:46px;height:46px;padding:0;border:0;border-radius:50%;background:var(--paper);color:var(--ink);font-size:24px}.detail-header{display:grid;grid-template-columns:minmax(170px,230px) minmax(0,1fr) minmax(250px,.9fr);gap:22px;align-items:start;padding:0 54px 22px 0;border-bottom:1px solid var(--line)}.detail-art{min-height:200px;overflow:hidden;border-radius:50% 50% 50% 20px;background:var(--field-soft)}.detail-art .card-art{min-height:200px;height:200px}.detail-art .card-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}.detail-player-meta h2{margin:0;font-size:34px;letter-spacing:-.04em}.detail-subline{margin:6px 0 12px;color:var(--muted);font-size:12px}.detail-series{margin-bottom:10px}.series-tag,.spirit-tag,.role-tag{display:inline-flex;align-items:center;min-height:24px;margin-right:6px;color:var(--muted);font-size:10px}.series-tag-content{display:inline-flex;align-items:center;gap:4px;line-height:inherit}.series-tag-prefix,.series-tag-content strong{line-height:inherit}.series-tag-prefix{color:var(--clay)}.detail-highlights{display:grid;gap:10px}.detail-highlight{padding:14px 16px;border-radius:18px 18px 32px 18px;background:var(--paper)}.detail-highlight h3{margin:0 0 7px;color:var(--clay);font-size:13px}.detail-highlight h3 span{color:var(--ink)}.detail-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;padding-top:24px}.detail-section{margin-bottom:24px}.detail-section h3{margin:0 0 10px;font-size:16px}.detail-section h3 span{color:var(--muted);font-size:10px;font-weight:400}.detail-stat-table{border-top:1px solid var(--line)}.detail-stat{display:flex;justify-content:space-between;gap:12px;padding:8px 4px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.detail-stat b{color:var(--ink);font-family:var(--font-display)}.skill-detail{padding:11px 0;border-bottom:1px solid var(--line)}.skill-detail h4{margin:0 0 6px;color:var(--clay);font-size:14px}.skill-detail p{margin:4px 0 0;color:var(--ink-soft);font-size:11px;white-space:pre-line}.skill-label{display:inline-block;min-width:70px;color:var(--muted);font-size:9px}.skill-levels{display:grid;gap:4px;margin-top:7px}.skill-level{display:flex;gap:8px;padding:5px 0;color:var(--muted);font-size:10px}.skill-level b{color:var(--clay)}.pitch-table{display:grid;gap:0;border-top:1px solid var(--line)}.pitch-detail{padding:10px 3px;border-bottom:1px solid var(--line)}.pitch-detail-heading,.pitch-detail-meta{display:flex;justify-content:space-between;gap:10px}.pitch-detail-heading span,.pitch-detail-meta{color:var(--muted);font-size:10px}.pitch-detail p{margin:5px 0 0;color:var(--ink-soft);font-size:11px}.detail-return-hint{display:none}
.compare-header{padding:0 54px 16px 0;border-bottom:1px solid var(--line)}.compare-header h2{margin:0;font-size:30px}.compare-header p{margin:5px 0 0;color:var(--muted);font-size:12px}.compare-alignment-scroll{overflow-x:auto;padding-bottom:8px}.compare-alignment-surface{min-width:calc(var(--compare-columns,2)*220px)}.compare-player-grid{display:block}.compare-stat-values,.compare-text-grid{display:block}.compare-player-grid{margin-top:18px}.compare-player{min-width:0;padding:14px;border-radius:28px 28px 44px 28px;background:var(--paper);text-align:center}.compare-player-art{height:150px;overflow:hidden;border-radius:50% 50% 50% 18px;background:var(--field-soft)}.compare-player-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.compare-player-fallback{display:grid;place-items:center;width:80px;height:80px;margin:30px auto;border-radius:50%;color:#fff}.compare-player h3{margin:10px 0 0;overflow:hidden;font-size:20px;text-overflow:ellipsis;white-space:nowrap}.compare-player p{margin:5px 0 0;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.compare-ovr{margin-top:10px;color:var(--clay);font-family:var(--font-display);font-size:30px}.compare-ovr small{font-size:9px}.compare-stats{margin-top:18px;border-top:1px solid var(--line)}.compare-stat-row{display:block;border-bottom:1px solid var(--line)}.compare-stat-values{min-width:0}.compare-stat-value{padding:9px;color:var(--ink-soft);font-family:var(--font-display);font-size:13px;text-align:center}.compare-stat-value.best-value{color:var(--clay);font-weight:750}.compare-section-title{margin:24px 0 10px;font-size:18px}.compare-text-grid{gap:12px}.compare-text-card{min-width:0;padding:14px;border-radius:18px;background:var(--paper)}.compare-text-card strong{font-size:14px}.compare-item-list{display:grid;gap:8px;margin-top:10px}.compare-item{padding:9px 0;border-bottom:1px solid var(--line)}.compare-item strong{font-size:12px}.compare-item p{margin:4px 0 0;color:var(--muted);font-size:10px}.compare-item-heading{display:flex;justify-content:space-between;gap:8px}.compare-empty{color:var(--muted);font-size:11px}@media(max-width:1120px){.score-header{grid-template-columns:auto 1fr auto;gap:22px}.score-nav{gap:18px}.data-status{display:none}.archive-lede{grid-template-columns:38px minmax(0,1fr) 300px}.search-mound{grid-template-columns:minmax(280px,1.5fr) minmax(140px,.7fr) minmax(170px,.8fr) auto}.advanced-fieldset{grid-template-columns:repeat(3,minmax(0,1fr))}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 28px}.player-list-item{grid-template-columns:78px minmax(160px,.8fr) 68px minmax(250px,1fr) auto;gap:14px}}
@media(max-width:840px){.page-shell{width:calc(100% - 32px)}.score-header{grid-template-columns:auto auto}.score-nav{grid-column:1/-1;order:3;overflow-x:auto;padding-top:3px;border-top:1px solid var(--line)}.score-utility{justify-self:end}.archive-lede{grid-template-columns:32px 1fr;gap:18px}.archive-orbit{display:none}.search-mound{grid-template-columns:minmax(0,1fr) minmax(130px,.55fr) minmax(150px,.65fr) auto}.team-orbit{grid-template-columns:94px minmax(0,1fr)}.player-list-item{grid-template-columns:72px 1fr 64px auto}.orbit-list-stats{grid-column:2/-1}.detail-header{grid-template-columns:180px 1fr}.detail-highlights{grid-column:1/-1}}
@media(max-width:620px){.page-shell{width:calc(100% - 24px);padding-top:8px}.brand-disc{width:42px;height:42px}.brand-type strong{font-size:13px}.theme-toggle{padding:0;border-radius:50%}.theme-toggle span:last-child{display:none}.score-nav{gap:24px}.score-nav a{min-height:44px;font-size:12px}.archive-lede{min-height:166px;padding:14px 0 12px;grid-template-columns:1fr}.vertical-season{display:none}.archive-lede::before{right:-24px;width:70%;height:90px}.lede-copy h1{margin-top:5px;font-size:37px}.lede-copy>p:last-child{font-size:12px}.search-mound{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border-radius:24px 24px 54px 24px}.search-field{display:contents}.search-field>.mound-label{display:none}.orbit-search{height:50px;min-height:50px}.orbit-search kbd{display:none}.mound-control{grid-row:2;min-height:44px;padding:3px 8px 3px 10px;border-left:0;background:transparent;border-radius:12px}.mound-control.mound-series{grid-column:1}.mound-control.mound-team{grid-column:2;min-width:122px}.reset-button{grid-column:2;grid-row:1;min-width:50px}.advanced-filters{grid-column:1/-1;grid-row:3}.advanced-filters>summary{width:100%;justify-content:flex-start;min-height:38px}.advanced-filters>summary small{margin-left:auto;max-width:134px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.advanced-fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}.team-orbit{grid-template-columns:1fr;gap:2px;min-height:78px;padding:6px 0}.orbit-label{display:flex;align-items:baseline;gap:8px}.team-tabs{margin:0 -12px;padding:2px 12px 5px}.team-tab{min-width:76px;min-height:54px}.compare-bar{grid-template-columns:1fr;top:5px;border-radius:18px 36px 18px 36px}.compare-actions button{flex:1;min-height:44px}.collection-heading{grid-template-columns:54px 1fr auto;gap:10px;padding:13px 0 14px}.collection-index{width:48px;height:48px}.collection-heading h2{font-size:20px}.results-tools{gap:7px}.view-button{padding:0;border-radius:50%}.view-button span{display:none}.card-grid{grid-template-columns:1fr;gap:34px}.orbit-visual{height:335px}.player-field{inset:23px 8px 16px}.orbit-visual .card-art{left:10px;right:10px}.orbit-rating strong{font-size:68px}.orbit-identity{margin:-22px 14px 0 24px}.orbit-identity h4{font-size:28px}.player-list-item{grid-template-columns:66px 1fr 60px;gap:10px;padding:11px 4px}.orbit-list-art{width:64px;height:64px}.orbit-list-stats{grid-column:1/-1}.list-actions{grid-column:1/-1;justify-content:space-between}.detail-dialog,.compare-dialog{width:calc(100% - 16px);max-height:94dvh;border-radius:24px 24px 44px 24px}.dialog-frame{max-height:94dvh;padding:18px}.detail-header,.detail-layout{grid-template-columns:1fr}.detail-highlights{grid-column:auto}.detail-art{min-height:220px}.site-footer{flex-direction:column}}
@media(max-width:390px){.brand-type small{font-size:8px}.score-nav{gap:19px}.lede-copy h1{font-size:35px}.orbit-visual{height:322px}.orbit-stats{padding:9px 0}.orbit-meta{gap:6px 10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.player-card:hover .player-field{transform:none}}/* Acceptance corrections */
html,body{max-width:100%;overflow-x:clip}.archive-lede{overflow:hidden}.archive-lede::before{right:0;width:40%}.advanced-filters>summary{min-height:44px}.orbit-brand{min-height:44px}
@media(max-width:620px){.archive-lede::before{right:0}.advanced-filters>summary{min-height:44px}}
/* Three-page system density: approved orbit language, true archive grid. */
.score-header.g-system-nav{width:100%;margin:0}
.card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:38px 22px}
.orbit-visual{height:318px}
.orbit-rating strong{font-size:68px}
.team-ghost{font-size:78px}
.orbit-identity{margin:-22px 16px 0 28px}
.orbit-identity h4{font-size:25px}
.orbit-stats{margin-top:12px;padding-block:9px}
@media(max-width:1120px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 22px}.orbit-visual{height:304px}}
@media(max-width:840px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.score-header.g-system-nav{grid-template-columns:1fr auto}}
@media(max-width:620px){.filter-menu,.v4-select-menu{min-width:min(220px,calc(100vw - 24px));max-width:calc(100vw - 24px)}.mound-control.mound-team .v4-select-menu,.advanced-fieldset .filter-field:nth-child(even) .v4-select-menu{left:auto;right:0}.card-grid{grid-template-columns:1fr;gap:34px}.orbit-visual{height:335px}.orbit-identity h4{font-size:28px}}
@media(min-width:390px) and (max-width:620px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 10px}.orbit-visual{height:250px}.player-field{inset:18px 2px 10px}.orbit-visual .card-art{left:0;right:0}.orbit-serial{top:8px;left:8px;font-size:7px}.orbit-rating{top:14px;right:5px}.orbit-rating small{margin-right:4px;font-size:7px}.orbit-rating strong{font-size:44px}.orbit-compare{top:26px;left:8px}.compare-check{min-height:36px;font-size:9px}.compare-check span{min-width:36px;min-height:36px}.team-ghost{right:4px;bottom:24px;font-size:46px}.orbit-identity{margin:-18px 4px 0 8px}.orbit-identity h4{font-size:18px}.orbit-identity header p{margin-top:3px;font-size:8px}.orbit-stats{margin-top:8px;padding-block:8px}.orbit-stat small{font-size:6px}.orbit-stat b{font-size:11px}.orbit-stat.is-primary b{font-size:13px}.orbit-meta{gap:4px;margin-top:7px;font-size:7px}.detail-button{gap:5px;margin-top:7px;font-size:9px}.detail-button::after{width:24px}}
/* V4 card information refinement: preserve the orbit card structure, clarify its hierarchy. */
.orbit-serial {
  color: color-mix(in srgb, var(--team-color) 45%, #D7DAD8 55%) !important;
}

.orbit-series {
  flex: 0 1 auto;
  width: max-content;
  min-width: 0;
  max-width: min(100%, 16ch);
  overflow: hidden;
  color: var(--series-color, var(--clay));
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.orbit-metadata-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.orbit-identity .orbit-metadata-row > p {
  flex: 1 1 auto;
  min-width: 0;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: break-word;
}

.team-ghost {
  left: 50%;
  right: auto;
  width: max-content;
  max-width: none;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 850;
  letter-spacing: -.12em;
  transform: translateX(-50%) skewX(-7deg);
  transform-origin: center bottom;
}

.orbit-rating {
  z-index: 4;
  pointer-events: none;
}

.orbit-rating strong {
  font-size: 66px;
}

html[data-ovr-variant="a"] body .orbit-rating {
  color: var(--ink-soft) !important;
}

html[data-ovr-variant="a"] body .orbit-rating strong {
  color: var(--ink-soft) !important;
  opacity: .78;
  text-shadow: none;
}

html[data-ovr-variant="b"] body .orbit-rating {
  color: var(--ink) !important;
}

html[data-ovr-variant="b"] body .orbit-rating::before {
  content: "";
  position: absolute;
  inset: -7px -8px -5px -12px;
  z-index: -1;
  background: linear-gradient(90deg, rgba(8, 12, 14, .70), rgba(8, 12, 14, .34) 62%, transparent);
  pointer-events: none;
}

html[data-ovr-variant="b"] body .orbit-rating strong {
  color: var(--ink) !important;
  opacity: .96;
  text-shadow: none;
}

html[data-ovr-variant="c"] body .orbit-rating {
  color: var(--ink) !important;
}

html[data-ovr-variant="c"] body .orbit-rating strong {
  color: var(--ink) !important;
  opacity: .96;
  text-shadow: -0.6px 0 rgba(6, 11, 12, .88), 0.6px 0 rgba(6, 11, 12, .88), 0 3px 8px rgba(6, 11, 12, .48);
}

.player-card {
  --card-readability-gradient: linear-gradient(180deg, transparent 0%, rgba(8, 12, 14, .04) 34%, rgba(8, 12, 14, .70) 100%);
}

.orbit-visual::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 42%;
  z-index: 3;
  pointer-events: none;
  background: var(--card-readability-gradient);
}

.orbit-identity::before {
  content: "";
  position: absolute;
  inset: -26px -18px -12px -30px;
  z-index: 0;
  pointer-events: none;
  background: var(--card-readability-gradient);
}

.orbit-identity > * {
  position: relative;
  z-index: 1;
}

.orbit-identity h4,
.orbit-identity header p,
.orbit-series {
  text-shadow: 0 1px 2px rgba(6, 11, 12, .38);
}

.orbit-stat small {
  font-size: 10px;
  font-weight: 600;
  line-height: 1.1;
}

.orbit-stat b,
.orbit-stat.is-primary b {
  color: var(--ink);
  font-size: 17px;
  font-weight: 750;
}

@media(min-width:390px) and (max-width:620px) {
  .orbit-series {
    flex-basis: auto;
    max-width: min(100%, 16ch);
    font-size: 8px;
  }

  .orbit-rating strong {
    font-size: 39px;
  }

  .orbit-stat small {
    font-size: 7px;
  }

  .orbit-stat b,
  .orbit-stat.is-primary b {
    font-size: 12px;
  }
}
@media(max-width:430px) {
  .orbit-metadata-row {
    flex-direction: column;
    align-items: stretch;
    gap: 3px;
  }

  .orbit-metadata-row .orbit-series {
    align-self: flex-end;
    flex: 0 1 auto;
    max-width: min(100%, 16ch);
  }
}
@media(max-width:620px) {
  .advanced-fieldset .filter-position { order: 1; }
  .advanced-fieldset .filter-role { order: 2; }
  .advanced-fieldset .filter-year { order: 3; }
  .advanced-fieldset .filter-handedness { order: 4; }
  .advanced-fieldset .filter-sort-direction { order: 5; }
  .advanced-fieldset .filter-sort-stat { order: 6; }
  .advanced-fieldset .filter-ss-skill { order: 7; }
  .advanced-fieldset .filter-skill { order: 8; }
  .advanced-fieldset .filter-overall { order: 9; grid-column: 1 / -1; }
}/* V4 Detail Modal typography scale */
:root {
  --detail-title-size: 42px;
  --detail-meta-size: 16px;
  --detail-meta-aux-size: 14px;
  --detail-section-title-size: 24px;
  --detail-highlight-name-size: 18px;
  --detail-skill-name-size: 19px;
  --detail-body-size: 15px;
  --detail-label-size: 13px;
  --detail-stat-label-size: 15px;
  --detail-stat-value-size: 18px;
  --detail-level-size: 14px;
  --detail-line-height: 1.5;
  --detail-skill-line-height: 1.55;
}

.detail-player-meta h2 {
  font-size: var(--detail-title-size);
  line-height: 1.1;
}

.detail-player-meta .detail-subline {
  font-size: var(--detail-meta-size);
  line-height: var(--detail-line-height);
}

.detail-player-meta .series-tag,
.detail-player-meta .spirit-tag,
.detail-player-meta .role-tag {
  font-size: var(--detail-meta-aux-size);
  line-height: var(--detail-line-height);
}

.detail-highlight h3 {
  font-size: var(--detail-highlight-name-size);
  line-height: 1.35;
}

.detail-highlight h3 span {
  font-size: var(--detail-highlight-name-size);
}

.detail-highlight .skill-detail p {
  font-size: var(--detail-body-size);
  line-height: var(--detail-skill-line-height);
}

.detail-section h3 {
  font-size: var(--detail-section-title-size);
  line-height: 1.3;
}

.detail-section h3 span {
  font-size: var(--detail-label-size);
}

.detail-stat {
  font-size: var(--detail-stat-label-size);
  line-height: var(--detail-line-height);
}

.detail-stat b {
  font-size: var(--detail-stat-value-size);
  line-height: 1.25;
}

.skill-detail h4 {
  font-size: var(--detail-skill-name-size);
  line-height: 1.35;
}

.skill-detail p {
  font-size: var(--detail-body-size);
  line-height: var(--detail-skill-line-height);
}

.skill-label {
  font-size: var(--detail-label-size);
}

.skill-level {
  font-size: var(--detail-level-size);
  line-height: var(--detail-skill-line-height);
}

.pitch-detail-heading {
  font-size: var(--detail-highlight-name-size);
  line-height: 1.35;
}

.pitch-detail-heading span,
.pitch-detail-meta {
  font-size: var(--detail-label-size);
  line-height: var(--detail-line-height);
}

.pitch-detail p {
  font-size: var(--detail-body-size);
  line-height: var(--detail-skill-line-height);
}

/* V4 Detail Modal mobile typography scale */
@media(max-width:620px) {
  :root {
    --detail-title-size: 41px;
    --detail-meta-size: 15px;
    --detail-meta-aux-size: 13px;
    --detail-section-title-size: 23px;
    --detail-highlight-name-size: 17px;
    --detail-skill-name-size: 18px;
    --detail-body-size: 14px;
    --detail-label-size: 12px;
    --detail-stat-label-size: 14px;
    --detail-stat-value-size: 17px;
    --detail-level-size: 13px;
    --detail-skill-line-height: 1.5;
  }

  .detail-player-meta h2 {
    line-height: 1.08;
  }
}
/* V4 Light Mode readability and control layer */
html[data-theme="light"] {
  color-scheme: light;
  --control-bg: #F1F4F2;
  --control-bg-hover: #E7ECE9;
  --control-border: #C8D1CD;
  --control-border-hover: #AAB8B2;
  --control-text: #18211E;
  --control-label: #596761;
  --control-placeholder: #687570;
  --control-icon: #66736F;
  --control-popup-bg: #FBFCFB;
  --control-popup-border: #C5CEC9;
  --control-option-hover: #E8EEEB;
  --control-option-selected: #DCE5E0;
  --control-accent: rgba(211, 153, 91, .70);
}

html[data-theme="light"] .search-mound {
  background: color-mix(in srgb, var(--chalk) 84%, var(--paper) 16%);
  border-color: var(--line);
  color: var(--ink);
}

html[data-theme="light"] .mound-control {
  border-left-color: transparent;
}

html[data-theme="light"] .advanced-filters > summary {
  color: var(--ink-soft);
}

html[data-theme="light"] .advanced-filters > summary small {
  color: var(--muted);
}

html[data-theme="light"] .advanced-fieldset {
  border-top-color: var(--line);
}

html[data-theme="light"] .filter-menu,
html[data-theme="light"] .v4-select-menu {
  box-shadow: 0 14px 30px rgba(21, 36, 44, .12);
}

html[data-theme="light"] .v4-select-option[aria-selected="true"],
html[data-theme="light"] .filter-option:has(input:checked) {
  color: var(--control-text);
}

html[data-theme="light"] .player-card {
  --card-readability-gradient:
    linear-gradient(
      180deg,
      transparent 0%,
      color-mix(in srgb, var(--chalk) 8%, transparent) 24%,
      color-mix(in srgb, var(--chalk) 56%, transparent) 62%,
      color-mix(in srgb, var(--chalk) 94%, transparent) 100%
    );
}

html[data-theme="light"] .orbit-identity h4 {
  color: var(--ink);
  text-shadow: none;
}

html[data-theme="light"] .orbit-identity header p {
  color: var(--ink-soft);
  text-shadow: none;
}

html[data-theme="light"] .orbit-series {
  text-shadow: none;
}

html[data-theme="light"] body .orbit-series[data-series-family="regular"] {
  --series-color: color-mix(in srgb, var(--series-family-regular) 62%, var(--ink) 38%);
}

html[data-theme="light"] body .orbit-series[data-series-family="true"] {
  --series-color: color-mix(in srgb, var(--series-family-true) 68%, var(--ink) 32%);
}

html[data-theme="light"] body .team-ghost {
  color: var(--team-color) !important;
  opacity: .14;
}

html[data-theme="light"][data-ovr-variant="a"] body .orbit-rating,
html[data-theme="light"][data-ovr-variant="a"] body .orbit-rating strong {
  color: var(--ink-soft) !important;
  text-shadow: none;
}

html[data-theme="light"][data-ovr-variant="b"] body .orbit-rating::before {
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--chalk) 88%, transparent),
      color-mix(in srgb, var(--chalk) 54%, transparent) 62%,
      transparent
    );
}

html[data-theme="light"][data-ovr-variant="c"] body .orbit-rating strong {
  text-shadow:
    0 1px 0 color-mix(in srgb, var(--chalk) 88%, transparent),
    0 2px 6px color-mix(in srgb, var(--ink) 18%, transparent);
}

@media(max-width:620px) {
  html[data-theme="light"] .mound-control {
    background: transparent;
    border-left-color: transparent;
  }

  html[data-theme="light"] .advanced-filters {
    color: var(--ink);
  }

  html[data-theme="light"] .advanced-filters > summary {
    color: var(--ink);
  }

  html[data-theme="light"] .advanced-fieldset {
    border-top-color: var(--line);
  }
}

/* V4 filter field wrappers are paintless; the visible boundary belongs to the control. */
.mound-control,
.filter-field {
  background: transparent;
  box-shadow: none;
  border-color: transparent;
}

/* V4 Grid/List typography: independent contexts. */
:root {
  --grid-meta-size: 12px;
  --grid-series-size: 12px;
  --grid-stat-label-size: 11px;
  --grid-stat-value-size: 18px;
  --grid-secondary-size: 11px;
  --grid-cta-size: 12px;
  --list-archive-size: 12px;
  --list-name-size: 24px;
  --list-meta-size: 14px;
  --list-ovr-label-size: 11px;
  --list-stat-label-size: 12px;
  --list-stat-value-size: 18px;
  --list-action-size: 13px;
  --list-skill-size: 12px;
  --list-skill-label-size: 10px;
}

/* Grid card: enlarge only the secondary information that was below the readable tier. */
.player-card .orbit-identity header p {
  font-size: var(--grid-meta-size);
  line-height: 1.35;
}

.player-card .orbit-series {
  font-size: var(--grid-series-size);
  line-height: 1.15;
}

.player-card .orbit-stat small {
  font-size: var(--grid-stat-label-size);
}

.player-card .orbit-stat b,
.player-card .orbit-stat.is-primary b {
  font-size: var(--grid-stat-value-size);
}

.player-card .orbit-meta {
  font-size: var(--grid-secondary-size);
  line-height: 1.35;
}

.player-card .detail-button {
  font-size: var(--grid-cta-size);
}
.team-group-heading span {
  font-size: var(--grid-secondary-size);
}


/* List row: separate scale so Grid changes cannot leak into list mode. */

.player-list-item .list-year {
  font-size: var(--list-archive-size);
  line-height: 1.3;
}

.player-list-item .list-player-main h4 {
  font-size: var(--list-name-size);
  line-height: 1.15;
}

.player-list-item .list-player-main > p:last-child {
  font-size: var(--list-meta-size);
  line-height: 1.35;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: break-word;
}

.player-list-item .list-overall span {
  font-size: var(--list-ovr-label-size);
}

.player-list-item .orbit-list-stats small {
  font-size: var(--list-stat-label-size);
}

.player-list-item .orbit-list-stats b {
  font-size: var(--list-stat-value-size);
}

.player-list-item .compare-check,
.player-list-item .detail-button {
  font-size: var(--list-action-size);
}

/* Common border slot keeps Light/Dark badge geometry identical. */
.collection-index {
  border: 1px solid transparent;
}

html[data-theme="light"] .collection-index {
  background: var(--paper);
  border-color: var(--line);
  color: var(--ink);
  box-shadow: none;
}

html[data-theme="light"] .collection-index span {
  color: var(--muted);
}

@media (max-width: 620px) {
  :root {
    --list-archive-size: 10px;
    --list-name-size: 22px;
    --list-meta-size: 12px;
    --list-ovr-label-size: 10px;
    --list-stat-label-size: 10px;
    --list-stat-value-size: 17px;
    --list-action-size: 12px;
    --list-skill-size: 11px;
    --list-skill-label-size: 10px;
  }
}

@media (min-width: 390px) and (max-width: 620px) {
  :root {
    --grid-meta-size: 9px;
    --grid-series-size: 9px;
    --grid-stat-label-size: 8px;
    --grid-stat-value-size: 13px;
    --grid-secondary-size: 8px;
    --grid-cta-size: 10px;
  }
}

@media (max-width: 389px) {
  :root {
    --grid-meta-size: 10px;
    --grid-series-size: 10px;
    --grid-stat-label-size: 9px;
    --grid-stat-value-size: 14px;
    --grid-secondary-size: 9px;
    --grid-cta-size: 11px;
  }
}
/* V4 team identity visuals: logos share the existing Orbit geometry. */
.team-tab { border: 1px solid transparent; }
.team-tab .team-color {
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--team-color, var(--clay)) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--team-color, var(--clay)) 32%, transparent);
}
.team-tab .team-color.team-color-all { border-color: transparent; }
.team-tab .team-color img {
  display: block;
  width: 26px;
  height: 26px;
  object-fit: contain;
}
.team-tab:hover,
.team-tab.is-selected {
  border-color: color-mix(in srgb, var(--team-color, var(--clay)) 38%, transparent);
}

/* V4: make legacy and national team wordmarks easier to read. */
.player-card[data-team-key="rakuten"] .team-ghost,
.player-card[data-team-key="lamigo"] .team-ghost,
.player-card[data-team-key="eda"] .team-ghost,
.player-card[data-team-key="national"] .team-ghost {
  opacity: .24;
}

html[data-theme="light"] .player-card[data-team-key="rakuten"] .team-ghost,
html[data-theme="light"] .player-card[data-team-key="lamigo"] .team-ghost,
html[data-theme="light"] .player-card[data-team-key="eda"] .team-ghost,
html[data-theme="light"] .player-card[data-team-key="national"] .team-ghost {
  opacity: .22;
}


/* V4 top-surface type scale: modest readability lift; geometry remains unchanged. */
:root {
  --top-brand-label-size: 10px;
  --top-nav-size: 10px;
  --top-nav-index-size: 10px;
  --top-utility-size: 12px;
  --top-season-label-size: 9px;
  --top-season-year-size: 10px;
  --top-eyebrow-size: 10px;
  --top-description-size: 14px;
  --top-stat-label-size: 10px;
  --top-orbit-caption-size: 10px;
  --top-control-label-size: 10px;
  --top-search-input-size: 17px;
  --top-search-shortcut-size: 10px;
  --top-advanced-title-size: 12px;
  --top-advanced-detail-size: 11px;
  --top-orbit-title-size: 13px;
  --top-orbit-subtitle-size: 12px;
  --top-team-name-size: 13px;
  --top-team-count-size: 11px;
}

.brand-type small { font-size: var(--top-brand-label-size); }
.score-nav a { font-size: var(--top-nav-size); }
.score-nav a span { font-size: var(--top-nav-index-size); }
.data-status { font-size: var(--top-utility-size); }
.theme-toggle { font-size: var(--top-utility-size); }
.vertical-season span { font-size: var(--top-season-label-size); }
.vertical-season strong { font-size: var(--top-season-year-size); }
.archive-kicker { font-size: var(--top-eyebrow-size); }
.lede-copy>p:last-child { font-size: var(--top-description-size); }
.summary-stat span { font-size: var(--top-stat-label-size); }
.orbit-caption { font-size: var(--top-orbit-caption-size); }
.mound-control>span, .filter-field>span, .mound-label { font-size: var(--top-control-label-size); }
.orbit-search input { font-size: var(--top-search-input-size); }
.orbit-search kbd { font-size: var(--top-search-shortcut-size); }
.advanced-filters>summary { font-size: var(--top-advanced-title-size); }
.advanced-filters>summary small { font-size: var(--top-advanced-detail-size); }
.orbit-label span { font-size: var(--top-orbit-title-size); }
.orbit-label small { font-size: var(--top-orbit-subtitle-size); }
.team-tab { font-size: var(--top-team-name-size); }
.team-tab .team-count { font-size: var(--top-team-count-size); }

@media (max-width: 620px) {
  :root {
    --top-brand-label-size: 9px;
    --top-nav-size: 12px;
    --top-nav-index-size: 10px;
    --top-eyebrow-size: 10px;
    --top-description-size: 12px;
    --top-search-input-size: 16px;
    --top-orbit-title-size: 12px;
    --top-orbit-subtitle-size: 11px;
    --top-team-name-size: 12px;
    --top-team-count-size: 10px;
  }
}
@media (max-width: 389px) {
  :root {
    --top-brand-label-size: 8px;
    --top-eyebrow-size: 10px;
    --top-team-name-size: 11px;
    --top-team-count-size: 10px;
  }
}

/* V4 list year uses the same soft team-color treatment as Grid View. */

.player-list-item .list-year {
  color: color-mix(in srgb, var(--team-color) 45%, #D7DAD8 55%);
}

.detail-highlight > summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  list-style: none;
}

.detail-highlight > summary::-webkit-details-marker {
  display: none;
}

.detail-highlight > summary h3 {
  margin: 0;
}

.detail-highlight > summary .skill-summary-icon {
  color: var(--clay);
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 1;
}

.detail-highlight[open] > summary .skill-summary-icon {
  font-size: 0;
}

.detail-highlight[open] > summary .skill-summary-icon::before {
  content: "−";
  font-size: 16px;
}
/* V4 player-card skill summary: text interactions and compact inline secondary metadata. */
.player-card .card-skill-summary {
  display: grid;
  gap: 4px;
  min-width: 0;
  margin-top: 0;
  padding: 9px 0 8px;
  border-bottom: 1px solid var(--line);
}
.player-card .card-skill-summary-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.player-card .card-skill-summary-label {
  flex: 0 0 auto;
  color: var(--clay);
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
}
.player-card .card-skill-summary-small {
  display: flex;
  justify-content: center;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  text-align: center;
}
.player-card .card-skill-summary-small .card-skill-summary-label {
  flex: 0 0 auto;
}
.player-card .card-skill-summary-small .card-skill-summary-text {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  text-align: center;
}
.player-card .card-skill-summary-secondary {
  display: flex;
  justify-content: center;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: 0;
  row-gap: 4px;
  text-align: center;
}
.player-card .card-skill-summary-secondary .card-skill-summary-label {
  color: var(--clay);
  margin-right: 5px;
}
.player-card .card-skill-summary-name {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 28%;
  overflow: hidden;
  margin-right: 7px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.player-card .card-skill-summary-effect {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 42%;
  overflow: hidden;
  margin-right: 10px;
  color: var(--ink-soft);
  font-size: 10px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.player-card .card-skill-summary-separator {
  flex: 0 0 auto;
  margin-inline: 8px;
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 11px;
}
.player-card .card-skill-summary-text {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  max-height: 2.8em;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 11px;
  line-height: 1.4;
}
.player-card .card-skill-name {
  display: inline;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
}
.player-card .card-skill-name:hover,
.player-card .card-skill-name:focus-visible {
  border-bottom-color: currentColor;
  color: var(--clay);
}
.player-card .card-skill-name.is-active {
  border-bottom-color: var(--clay);
  color: var(--clay);
}
.player-card .card-skill-name-separator {
  color: var(--muted);
  white-space: pre;
}
.card-skill-empty {
  color: var(--muted);
}
.player-card .card-skill-summary-group {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  flex: 0 1 auto;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
  text-align: center;
}
.player-card .card-skill-summary-content {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
  max-width: 100%;
  text-align: center;
}
.player-card .card-skill-summary-group .card-skill-summary-label {
  margin-right: 0;
}
.player-card .card-skill-summary-group .card-skill-summary-name,
.player-card .card-skill-summary-group .card-skill-summary-effect {
  max-width: none;
  overflow: visible;
  margin-right: 0;
  text-overflow: clip;
  white-space: normal;
}

@media (max-width: 620px) {
  .player-card .card-skill-summary {
    gap: 3px;
    margin-top: 0;
    padding: 8px 0 7px;
  }
  .player-card .card-skill-summary-row {
    gap: 4px;
  }
  .player-card .card-skill-summary-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 0;
  }
  .player-card .card-skill-summary-group,
  .player-card .card-skill-summary-content {
    max-width: 100%;
  }
  .player-card .card-skill-summary-separator {
    display: inline-block;
    margin-inline: 3px;
  }
  .player-card .card-skill-summary-small {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
  }
  .player-card .card-skill-summary-small .card-skill-summary-label {
    display: inline;
    margin: 0;
    font-size: 8px;
  }
  .player-card .card-skill-summary-small .card-skill-summary-text {
    display: block;
    width: auto;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    font-size: 9px;
  }
  .player-card .card-skill-name {
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
  }
  .player-card .card-skill-name-separator {
    white-space: nowrap;
  }
  .player-card .card-skill-summary-name {
    font-size: 9px;
  }
  .player-card .card-skill-summary-effect {
    max-width: 100%;
    font-size: 8px;
  }
  .player-card .card-skill-name {
    line-height: 1.45;
  }

}/* Keep List metadata on its original selector semantics after adding the compact skill line. */
.player-list-item .list-player-main > p:nth-of-type(2) {
  margin: 3px 0 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.player-list-item .list-player-main > p.list-skill-summary {
  margin: 3px 0 0;
  overflow: hidden;
  color: var(--ink-soft);
  font-family: var(--font-display);
  font-size: var(--list-skill-size);
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 620px) {
  .player-list-item .list-player-main > p.list-skill-summary {
    font-size: var(--list-skill-size);
  }
}

/* V4 Detail Modal mobile section order: keep Desktop DOM order, reorder only the single-column Mobile layout. */
@media(max-width:620px) {
  .detail-layout > div {
    display: contents;
  }

  .detail-layout .detail-stats-section {
    order: 1;
  }

  .detail-layout .detail-pitches-section {
    order: 3;
  }

  .detail-layout .detail-skills-section {
    order: 2;
  }
}
/* List View skill layouts. */
.player-list-item.list-skill-layout-a {
  grid-template-columns: 92px minmax(170px, .8fr) 76px minmax(290px, 1.3fr) auto;
}

.player-list-item.list-skill-layout-b {
  grid-template-columns: 92px minmax(170px, .75fr) 76px minmax(250px, 1.1fr) minmax(230px, 1fr) auto;
}

.player-list-item.list-skill-layout-c {
  display: block;
}

.list-card-main-row {
  display: grid;
  grid-template-columns: 92px minmax(170px, .8fr) 76px minmax(290px, 1.3fr) auto;
  align-items: center;
  gap: 20px;
  min-width: 0;
}

.list-card-main-row > * {
  min-width: 0;
}

.list-skill-summary {
  min-width: 0;
  margin-top: 7px;
  color: var(--ink-soft);
  font-size: var(--list-skill-size);
  line-height: 1.35;
}

.list-skill-summary-line {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.list-skill-label,
.list-skill-column-label {
  flex: 0 0 auto;
  color: var(--clay);
  font-family: var(--font-display);
  font-size: var(--list-skill-label-size);
  font-weight: 750;
  letter-spacing: .04em;
}

.list-skill-names {
  display: block;
  min-width: 0;
  color: var(--ink-soft);
  line-height: 1.45;
}

.list-skill-name {
  display: inline;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  white-space: nowrap;
}

.list-skill-name-separator {
  color: var(--muted);
  white-space: pre;
}

.list-skill-trait-ss {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 5px 8px;
  min-width: 0;
  margin-top: 5px;
  color: var(--ink-soft);
}

.list-skill-concept,
.list-skill-ss {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
}

.list-skill-concept .list-skill-label,
.list-skill-ss .list-skill-label {
  color: var(--clay);
}

.list-skill-concept > span:last-child {
  color: var(--muted);
}

.list-skill-trait-separator {
  color: var(--muted);
}

.list-skill-empty {
  color: var(--muted);
}

.list-skill-column {
  min-width: 0;
  align-self: center;
}

.list-skill-summary-b {
  margin-top: 0;
}

.list-skill-summary-b .list-skill-column-label {
  display: block;
  margin-bottom: 4px;
  color: var(--clay);
  letter-spacing: .12em;
}

.list-skill-summary-b .list-skill-names {
  max-height: 2.9em;
  overflow: hidden;
}

.list-skill-summary-b .list-skill-trait-ss {
  margin-top: 6px;
}

.list-skill-fixed-layer {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.list-skill-fixed-heading {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin-bottom: 8px;
}

.list-skill-fixed-summary {
  min-width: 0;
  color: var(--ink-soft);
  font-size: var(--list-skill-size);
  line-height: 1.45;
}

.list-skill-fixed-trait-ss {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: var(--list-skill-size);
}

.list-skill-fixed-trait-ss .list-skill-concept .list-skill-label,
.list-skill-fixed-trait-ss .list-skill-ss .list-skill-label {
  color: var(--clay);
}



@media (max-width: 1120px) {
  .player-list-item.list-skill-layout-a {
    grid-template-columns: 78px minmax(160px, .8fr) 68px minmax(250px, 1fr) auto;
  }

  .player-list-item.list-skill-layout-b {
    grid-template-columns: 78px minmax(160px, .75fr) 68px minmax(220px, 1fr) minmax(210px, .9fr) auto;
  }

  .list-card-main-row {
    grid-template-columns: 78px minmax(160px, .8fr) 68px minmax(250px, 1fr) auto;
    gap: 14px;
  }
}

@media (max-width: 840px) {
  .player-list-item.list-skill-layout-a,
  .player-list-item.list-skill-layout-b {
    grid-template-columns: 72px 1fr 64px auto;
  }

  .player-list-item.list-skill-layout-b .list-skill-column {
    grid-column: 2 / -1;
  }

  .player-list-item.list-skill-layout-b .list-actions,
  .list-card-main-row .list-actions {
    grid-column: 1 / -1;
  }

  .list-card-main-row {
    grid-template-columns: 72px 1fr 64px auto;
  }

  .list-card-main-row .orbit-list-stats {
    grid-column: 2 / -1;
  }
}

@media (max-width: 620px) {
  .player-list-item.list-skill-layout-a,
  .player-list-item.list-skill-layout-b {
    grid-template-columns: 66px 1fr 60px;
    gap: 10px;
    padding: 11px 4px;
  }

  .player-list-item.list-skill-layout-b .list-skill-column {
    grid-row: auto;
  }

  .list-card-main-row {
    grid-template-columns: 66px 1fr 60px;
    gap: 10px;
  }

  .list-card-main-row .orbit-list-stats,
  .list-card-main-row .list-actions {
    grid-column: 1 / -1;
  }

  .list-skill-summary-line {
    align-items: flex-start;
  }

  .list-skill-summary-a .list-skill-names {
    white-space: normal;
  }

  .list-skill-name {
    white-space: nowrap;
  }

  .list-skill-trait-ss {
    gap: 4px 7px;
  }

  .list-skill-summary-b .list-skill-names {
    max-height: none;
  }
}/* Shared quick small-skill trigger group and popover for Grid cards and List layouts. */
.player-card .card-skill-summary-trigger,
.list-skill-quick-trigger,
.quick-skill-trigger-group {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  cursor: pointer;
}

.quick-skill-trigger-group {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 5px 8px;
  width: 100%;
  min-width: 0;
  text-align: center;
}

.player-card .card-skill-summary-trigger:hover,
.player-card .card-skill-summary-trigger:focus-visible,
.list-skill-quick-trigger:hover,
.list-skill-quick-trigger:focus-visible,
.quick-skill-trigger-group:hover,
.quick-skill-trigger-group:focus-visible {
  color: var(--clay);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.player-card .card-skill-summary-small {
  justify-content: center;
  text-align: center;
}

.player-card .card-skill-summary-small .card-skill-summary-label {
  flex: 0 0 auto;
}

.player-card .card-skill-summary-small .card-skill-summary-text {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  text-align: center;
}

.player-card .card-skill-name {
  display: inline;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: inherit;
  white-space: nowrap;
}

.player-card .card-skill-name-separator {
  color: var(--muted);
  white-space: pre;
}

.list-skill-summary-a .quick-skill-trigger-group {
  justify-content: flex-start;
  text-align: left;
}

.list-skill-summary-b .quick-skill-trigger-group {
  display: block;
  text-align: left;
}

.list-skill-summary-b .quick-skill-trigger-group .list-skill-column-label {
  display: block;
  margin-bottom: 4px;
}

.list-skill-summary-b .quick-skill-trigger-group .list-skill-names {
  display: block;
}

.list-skill-fixed-trigger {
  display: block;
  width: 100%;
  text-align: left;
}

.list-skill-fixed-trigger .list-skill-fixed-heading,
.list-skill-fixed-trigger .list-skill-fixed-summary {
  display: block;
  width: 100%;
}

.list-skill-fixed-trigger .list-skill-fixed-heading {
  display: flex;
}

.quick-skill-popover {
  position: fixed;
  z-index: 1200;
  width: min(380px, calc(100vw - 32px));
  max-height: min(520px, 68vh);
  overflow-y: auto;
  padding: 14px 16px 15px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 16px 34px rgba(0, 0, 0, .24);
}

.quick-skill-popover[hidden] {
  display: none;
}

.quick-skill-popover-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.quick-skill-popover-header strong {
  color: var(--clay);
  font-size: 13px;
  font-weight: 750;
}

.quick-skill-close {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

.quick-skill-close:hover,
.quick-skill-close:focus-visible {
  color: var(--clay);
}

.quick-skill-list {
  min-width: 0;
}

.quick-skill-item {
  min-width: 0;
  padding: 10px 0 9px;
}

.quick-skill-item + .quick-skill-item {
  border-top: 1px solid var(--line);
}

.quick-skill-item h4 {
  margin: 0;
  overflow: hidden;
  color: var(--ink);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-skill-item p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.quick-skill-item .quick-skill-effect {
  color: var(--ink-soft);
}

.quick-skill-empty {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
}

@media (max-width: 620px) {
  .player-card .card-skill-summary-small.quick-skill-trigger-group {
    display: block;
  }

  .quick-skill-popover {
    left: 16px;
    right: auto;
    width: calc(100vw - 32px);
    max-height: 68dvh;
  }

  .quick-skill-item h4 {
    font-size: 12px;
  }

  .quick-skill-item p,
  .quick-skill-empty {
    font-size: 10px;
  }
}
/* V4 mobile readability pass: share the existing search/filter grid. */
@media (max-width: 620px) {
  .search-field {
    display: grid;
    grid-column: 1;
    grid-row: 1;
    gap: 4px;
    min-width: 0;
  }

  .search-field > .mound-label {
    display: block;
    min-width: 0;
  }

  .orbit-search {
    width: 100%;
    min-width: 0;
    padding-inline: 8px;
  }

  .orbit-search svg {
    flex: 0 0 19px;
    width: 19px;
    height: 19px;
    margin-right: 6px;
  }

  .orbit-search input {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    padding: 0;
    font-size: 14px;
    -webkit-appearance: none;
    appearance: none;
  }

  .orbit-search input::-webkit-search-cancel-button {
    display: none;
    -webkit-appearance: none;
    appearance: none;
  }

  .orbit-search kbd {
    display: none;
  }

  .reset-button {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
  }

  .mound-series {
    padding-inline: 0;
  }

  .advanced-filters > summary {
    justify-content: flex-start;
    gap: 8px;
    white-space: nowrap;
  }

  .advanced-filters > summary small {
    flex: 0 1 auto;
    min-width: 0;
    max-width: none;
    margin-left: 0;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
    font-size: 10px;
    letter-spacing: 0;
  }

  .team-tab .team-color.team-color-all {
    width: 22px;
    height: 22px;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--team-color) 18%, transparent);
  }

  .team-tab .team-color img {
    width: 26px;
    height: 26px;
  }
}
/* V4 Desktop TEAM FILTER sizing: keep the Mobile treatment unchanged. */
@media (min-width: 621px) {
  .team-tab .team-color.team-color-all {
    width: 22px;
    height: 22px;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--team-color) 18%, transparent);
  }

  .team-tab .team-color img {
    width: 26px;
    height: 26px;
  }
}
/* SS quick popup trigger uses the same small-skill interaction cue. */
.player-card .card-skill-summary-ss-trigger,
.list-skill-ss.quick-skill-ss-trigger {
  cursor: pointer;
}

.player-card .card-skill-summary-ss-trigger:hover,
.player-card .card-skill-summary-ss-trigger:focus-visible,
.player-card .card-skill-summary-ss-trigger[aria-expanded="true"],
.list-skill-ss.quick-skill-ss-trigger:hover,
.list-skill-ss.quick-skill-ss-trigger:focus-visible,
.list-skill-ss.quick-skill-ss-trigger[aria-expanded="true"] {
  color: var(--clay);
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* V4 desktop quick popup typography: shared by small-skill and SS popovers. */
@media (min-width: 621px) {
  .quick-skill-popover-header strong {
    font-size: 14px;
  }

  .quick-skill-item {
    padding: 12px 0 11px;
  }

  .quick-skill-item h4 {
    font-size: 16px;
    line-height: 1.4;
  }

  .quick-skill-item p,
  .quick-skill-empty {
    font-size: 14px;
    line-height: 1.5;
  }

  .quick-skill-item p {
    margin-top: 6px;
  }
}
/* V4 desktop nav typography: only the three primary navigation links. */
@media (min-width: 621px) {
  .score-nav a {
    font-size: 12px;
  }

  .score-nav a span {
    font-size: 11px;
  }
}
/* V4 compare shared player columns: every comparison item centers its label above the same player columns. */
.compare-alignment-surface {
  width: 100%;
  min-width: 0;
}

.compare-player-columns {
  display: grid;
  grid-template-columns: repeat(var(--compare-columns, 2), minmax(0, 1fr));
  column-gap: 14px;
  min-width: 0;
  width: 100%;
}

.compare-label-row,
.compare-row-heading,
.compare-grid-cell {
  min-width: 0;
}

.compare-row-heading {
  margin: 0;
}

.compare-label-row {
  display: block;
  width: 100%;
}

.compare-row-heading {
  margin: 0 0 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.compare-grid-cell {
  overflow-wrap: anywhere;
}

.compare-pitch-speed {
  white-space: nowrap;
}

.compare-section-title {
  width: 100%;
  text-align: center;
}

.compare-player-grid {
  margin-top: 18px;
}

.compare-player {
  min-width: 0;
  text-align: center;
}

.compare-stat-row,
.compare-skill-row,
.compare-pitch-row {
  width: 100%;
}
.compare-stat-row {
  display: grid;
  grid-template-columns: repeat(var(--compare-columns, 2), minmax(0, 1fr));
  column-gap: 14px;
  align-items: center;
  min-width: 0;
}

.compare-stat-row > .compare-row-heading {
  grid-column: var(--compare-label-start, 1) / var(--compare-label-end, 3);
  grid-row: 1;
  align-self: center;
  justify-self: center;
  margin: 0;
  padding: 0;
}

.compare-stat-row > .compare-player-columns {
  display: contents;
}

.compare-stat-row > .compare-player-columns > .compare-stat-value {
  grid-column: var(--compare-column);
  grid-row: 1;
}


.compare-stat-row {
  border-bottom: 1px solid var(--line);
}

.compare-stat-value,
.compare-pitch-cell {
  min-width: 0;
  text-align: center;
}

.compare-pitch-cell {
  display: grid;
  min-height: 52px;
  place-items: center;
}

.compare-stats {
  display: grid;
  gap: 0;
  min-width: 0;
}

.compare-skill-table,
.compare-pitch-table {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.compare-stats {
  margin-top: 0;
  padding-top: 8px;
}

.compare-item strong,
.compare-item p {
  overflow-wrap: anywhere;
}
.compare-skill-row .compare-text-card,
.compare-skill-row .compare-item,
.compare-skill-row .compare-item-list {
  text-align: center;
}

.compare-skill-row .compare-item-list {
  margin-top: 0;
}

.compare-skill-row .compare-item:first-child {
  padding-top: 0;
}

@media (min-width: 621px) {
  .compare-dialog {
    width: min(1400px, calc(100vw - 64px));
    max-height: calc(100vh - 48px);
  }

  .compare-dialog .dialog-frame {
    max-height: calc(100vh - 48px);
  }

  .compare-player-art {
    height: 168px;
  }

  .compare-player h3 {
    font-size: 23px;
    line-height: 1.12;
  }

  .compare-player p,
  .compare-series-line {
    font-size: 12px;
    line-height: 1.4;
  }
  .compare-player .compare-player-meta {
    font-size: 13px;
    line-height: 1.4;
  }

  .compare-player .compare-series-line {
    font-size: 12px;
    line-height: 1.4;
  }

  .compare-ovr small {
    font-size: 11px;
  }

  .compare-header p {
    font-size: 14px;
    line-height: 1.45;
  }

  .compare-section-title {
    margin-top: 26px;
    margin-bottom: 11px;
    font-size: 21px;
    line-height: 1.35;
  }

  .compare-row-heading {
    padding: 0;
    font-size: 12px;
    line-height: 1.4;
  }

  .compare-row-heading {
    margin-bottom: 7px;
    text-align: center;
  }

  .compare-stat-value {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    padding: 11px 9px;
    font-size: 16px;
    line-height: 1.35;
  }

  .compare-pitch-cell {
    min-height: 52px;
  }

  .compare-item strong {
    font-size: 14px;
    line-height: 1.4;
  }

  .compare-item p {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.5;
  }



  .compare-pitch-speed {
    font-size: 14px;
    line-height: 1.35;
  }

  .compare-empty {
    font-size: 13px;
  }
}

@media (min-width: 621px) and (max-width: 1120px) {
  .compare-player-columns,
  .compare-stat-row {
    column-gap: 12px;
  }


}

@media (max-width: 620px) {
  .compare-alignment-surface {
    width: 100%;
  }

  .compare-player-columns {
    column-gap: 8px;
  }

  .compare-player-grid {
    margin-top: 12px;
  }

  .compare-player {
    padding: 8px;
  }

  .compare-player-art {
    height: 108px;
  }

  .compare-player h3 {
    margin-top: 6px;
    font-size: 17px;
    line-height: 1.08;
  }

  .compare-player p {
    margin-top: 3px;
    font-size: 9px;
    line-height: 1.35;
  }

  .compare-player p.compare-player-meta {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
    text-overflow: clip;
    white-space: normal;
  }

  .compare-player .compare-series-line {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 3px;
    max-height: 2.7em;
    overflow: hidden;
    line-height: 1.25;
    text-overflow: clip;
    white-space: normal;
  }

  .compare-ovr {
    margin-top: 6px;
    font-size: 25px;
  }

  .compare-ovr small {
    font-size: 8px;
  }

  .compare-header {
    padding-right: 40px;
  }

  .compare-header h2 {
    font-size: 24px;
  }

  .compare-header p {
    font-size: 10px;
  }

  .compare-section-title {
    margin: 16px 0 7px;
    font-size: 16px;
  }

  .compare-row-heading {
    margin: 0 0 5px;
    padding: 0;
    font-size: 9px;
    line-height: 1.2;
    text-align: center;
  }

  .compare-stats {
    gap: 0;
  }

  .compare-skill-table,
  .compare-pitch-table {
    gap: 12px;
  }

  .compare-stat-row {
    column-gap: 8px;
  }

  .compare-stats {
    padding-top: 6px;
  }

  .compare-stat-value {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 6px 0;
    font-size: 11px;
  }

  .compare-text-card {
    padding: 8px;
    border-radius: 12px;
  }

  .compare-item-list {
    gap: 5px;
    margin-top: 5px;
  }

  .compare-item {
    padding: 6px 0;
  }

  .compare-item strong {
    font-size: 10px;
  }

  .compare-item p {
    margin-top: 3px;
    font-size: 9px;
  }

  .compare-pitch-cell {
    min-height: 46px;
    padding: 8px;
    text-align: center;
  }

  .compare-pitch-speed {
    font-size: 10px;
    line-height: 1.25;
    white-space: nowrap;
  }  .compare-dialog .dialog-frame {
    padding: 14px;
  }
}

/* Mobile responsive corrections: keep the existing V4 data and geometry intact. */
@media (max-width: 620px) {
  /* Reposition the existing summary strip into the hero's compact right column. */
  .archive-lede {
    grid-template-columns: minmax(22px, 7vw) minmax(0, 1fr) minmax(124px, 38%);
    column-gap: 12px;
    align-items: start;
  }

  .archive-lede > .vertical-season {
    display: flex;
    min-width: 0;
    gap: 2px;
  }

  .archive-lede .archive-kicker {
    white-space: nowrap;
    font-size: clamp(8px, 2.1vw, 9px);
    letter-spacing: .08em;
  }

  .archive-lede > .lede-copy {
    align-self: center;
  }

  .archive-orbit {
    display: grid;
    min-width: 0;
    min-height: 116px;
    margin-top: 8px;
    align-self: center;
  }

  .orbit-stitch {
    width: min(100%, 156px);
    height: 82px;
  }

  .summary-strip {
    width: 100%;
    min-width: 0;
    max-width: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2px;
  }

  .summary-stat {
    min-width: 0;
  }

  .summary-stat strong {
    font-size: clamp(18px, 5vw, 24px);
    line-height: 1;
  }

  .summary-stat.is-total strong {
    font-size: clamp(25px, 7vw, 31px);
  }

  .summary-stat span {
    margin-top: 3px;
    font-size: clamp(7px, 2.2vw, 9px);
    line-height: 1.1;
    letter-spacing: 0;
    white-space: nowrap;
  }

  .orbit-caption {
    display: none;
  }

  /* Give the search field the space that the reset control does not need. */
  .mound-control.mound-team {
    min-width: clamp(92px, 25vw, 104px);
  }

  .reset-button {
    min-width: 0;
    width: 100%;
    padding-inline: 8px;
  }

  /* Contain only the decorative team word; player content remains unclipped. */
  .player-card .orbit-visual {
    container-type: inline-size;
  }

  .player-card .team-ghost {
    left: 4px;
    right: 4px;
    width: auto;
    max-width: 100%;
    overflow: hidden;
    text-align: center;
    text-overflow: clip;
    white-space: nowrap;
    transform: skewX(-7deg);
    font-size: clamp(26px, 8vw, 42px);
    font-size: clamp(26px, 18cqw, 42px);
  }
}
/* V4 card skill alignment: keep the small-skill row and the trait/SS row centered. */
.player-card .card-skill-summary-small {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 5px;
  text-align: center;
}

.player-card .card-skill-summary-small .card-skill-summary-label {
  flex: 0 0 auto;
  margin: 0;
  text-align: center;
}

.player-card .card-skill-summary-small .card-skill-summary-text {
  display: block;
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  min-width: 0;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  overflow-wrap: anywhere;
  text-align: center;
}

.player-card .card-skill-summary-secondary {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 0;
  width: 100%;
  min-width: 0;
  text-align: center;
}

.player-card .card-skill-summary-group {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
  min-width: 0;
  width: auto;
  max-width: 100%;
  gap: 6px;
  text-align: center;
}

.player-card .card-skill-summary-group .card-skill-summary-content {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
  flex-wrap: nowrap;
  min-width: 0;
  max-width: 100%;
  text-align: center;
}

.player-card .card-skill-summary-group .card-skill-summary-name,
.player-card .card-skill-summary-group .card-skill-summary-effect {
  max-width: none;
  overflow: visible;
  margin-right: 0;
  text-overflow: clip;
  white-space: nowrap;
  overflow-wrap: normal;
}

/* Compare skill alignment stays scoped to Compare and is unaffected by the Card layout. */
.compare-skill-row .compare-text-card,
.compare-skill-row .compare-item-list,
.compare-skill-row .compare-item,
.compare-skill-row .compare-item strong,
.compare-skill-row .compare-item p {
  text-align: center;
}

@media (max-width: 620px) {
  .player-card .card-skill-summary-small.quick-skill-trigger-group {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 4px;
    width: 100%;
    min-width: 0;
    text-align: center;
  }

  .player-card .card-skill-summary-small .card-skill-summary-label {
    display: inline;
    width: auto;
    margin: 0;
    font-size: 8px;
    line-height: 1.2;
    text-align: center;
  }

  .player-card .card-skill-summary-small .card-skill-summary-text {
    display: block;
    width: auto;
    max-width: 100%;
    min-width: 0;
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    overflow-wrap: anywhere;
    font-size: 9px;
    line-height: 1.35;
    text-align: center;
  }

  .player-card .card-skill-summary-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 0;
  }

  .player-card .card-skill-summary-group {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 1px;
    width: auto;
    max-width: 100%;
  }

  .player-card .card-skill-summary-group .card-skill-summary-content {
    justify-content: center;
    flex-wrap: nowrap;
    gap: 2px;
    max-width: 100%;
    text-align: center;
  }

  .player-card .card-skill-summary-separator {
    display: inline-block;
    align-self: center;
    margin-inline: 2px;
  }
}

/* V4 Player Card summary centering: offset the existing asymmetric identity gutters. */
.player-card {
  --orbit-identity-start: 28px;
  --orbit-identity-end: 16px;
}

.player-card .card-skill-summary {
  align-items: center;
  text-align: center;
}

.player-card .card-skill-summary-row {
  position: relative;
  inset-inline-start: calc((var(--orbit-identity-end) - var(--orbit-identity-start)) / 2);
  width: 100%;
  margin: 0;
  justify-content: center;
  text-align: center;
}

@media (min-width: 390px) and (max-width: 620px) {
  .player-card {
    --orbit-identity-start: 8px;
    --orbit-identity-end: 4px;
  }
}

/* V4 Player Card small-skill row: span the full card width (same trick as the all-star block)
   so four skill names stay on one line; app.js fitSmallSkillRows() steps the font down if they still don't. */
.player-card .card-skill-summary-row.card-skill-summary-small {
  position: static;
  inset-inline-start: auto;
  box-sizing: border-box;
  width: calc(100% + var(--orbit-identity-start) + var(--orbit-identity-end));
  margin-inline-start: calc(-1 * var(--orbit-identity-start));
  padding-inline: 6px;
  align-items: baseline; /* label sits on the text baseline, same as the 特技 / SS row below it */
}

/* fitSmallSkillRows() measures right after changing font-size; the prefers-reduced-motion
   `* { transition-duration: .01ms }` rule would otherwise make those reads see the old size. */
.player-card .card-skill-summary-text,
.player-card .card-skill-summary-text * {
  transition: none !important;
}

/* Fixed line box (11px × 1.4) and a tight label box, so a stepped-down font neither shortens the row
   nor lets the baseline-aligned label hang below it and shift the card footer. */
@media (min-width: 621px) {
  .player-card .card-skill-summary-small .card-skill-summary-text {
    line-height: 15.4px;
  }

  .player-card .card-skill-summary-small .card-skill-summary-label {
    line-height: 1;
  }
}

/* Search mound (desktop): 系列 and 隊伍 get the same column width, and each dropdown menu lines up with
   its own trigger instead of the padded control (the old min-width let the 系列 menu poke out 29px). */
@media (min-width: 621px) {
  .search-mound {
    grid-template-columns: minmax(0, 1fr) minmax(150px, .42fr) minmax(150px, .42fr) auto;
  }

  .mound-control .v4-select-menu {
    left: 13px;
    right: 4px;
    min-width: 0;
  }
}
/* V4 Compare stats: one divider-label row followed by aligned player values for every count. */
.compare-stats {
  gap: 12px;
  border-top: 0;
}

.compare-stats .compare-stat-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  row-gap: 8px;
  align-items: stretch;
  border-bottom: 0;
}

.compare-stats .compare-stat-row > .compare-row-heading {
  display: flex;
  grid-column: 1;
  grid-row: 1;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  gap: 10px;
  width: 100%;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}

.compare-stats .compare-stat-row > .compare-row-heading::before,
.compare-stats .compare-stat-row > .compare-row-heading::after {
  content: "";
  flex: 1 1 0;
  min-width: 0;
  height: 1px;
  background: var(--line);
}

.compare-stats .compare-stat-row > .compare-player-columns {
  display: grid;
  grid-column: 1;
  grid-row: 2;
  grid-template-columns: repeat(var(--compare-columns, 2), minmax(0, 1fr));
  column-gap: 14px;
  width: 100%;
  min-width: 0;
}

.compare-stats .compare-stat-row > .compare-player-columns > .compare-stat-value {
  grid-column: var(--compare-column);
  grid-row: 1;
  align-self: center;
  padding: 0 9px;
}

@media (max-width: 620px) {
  .compare-stats {
    row-gap: 10px;
  }

  .compare-stats .compare-stat-row {
    row-gap: 6px;
  }

  .compare-stats .compare-stat-row > .compare-row-heading {
    gap: 8px;
  }

  .compare-stats .compare-stat-row > .compare-player-columns {
    column-gap: 8px;
  }

  .compare-stats .compare-stat-row > .compare-player-columns > .compare-stat-value {
    padding: 0;
  }
}

/* Mobile Compare headers: reserve the shared two-line metadata track. */
@media (max-width: 620px) {
  .compare-player-grid > .compare-player-columns > .compare-player .compare-player-meta {
    min-height: 2.7em;
  }
}
/* Desktop scale: keep the current layout geometry while making the full V4 canvas slightly more legible. */
@media (min-width: 841px) {
  .page-shell {
    zoom: 1.04;
  }
}
/* Desktop team-word optical alignment: keep the skewed label centered in its card. */
@media (min-width: 841px) {
  .player-card .team-ghost {
    left: calc(50% - 4px);
    overflow: visible;
    transform-origin: center center;
  }
}

/* V4 team wordmark face: add a compact sport-mark character without changing card geometry. */
.player-card .team-ghost {
  font-family: "Protest Revolution", Impact, "Arial Black", var(--font-display);
  font-weight: 400;
}

/* V4 team wordmark scale: enlarge every card team name without changing its geometry. */
.player-card .team-ghost {
  font-size: 84px;
}

@media (max-width: 389px) {
  .player-card .team-ghost {
    font-size: clamp(28px, 18cqw, 46px);
  }
}

@media (min-width: 390px) and (max-width: 620px) {
  .player-card .team-ghost {
    font-size: 50px;
  }
}
/* V4 team filter logos: show the source art without a colored circular frame. */
.team-tab .team-color:not(.team-color-all) {
  background: transparent;
  border: 0;
  box-shadow: none;
  width: 48px;
  height: 48px;
  justify-self: center;
  align-self: center;
}

.team-tab .team-color:not(.team-color-all) img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}
/* Reserve the full enlarged logo column so it cannot cover the team label. */
.team-tab {
  grid-template-columns: 48px max-content;
  grid-template-rows: 24px 24px;
  column-gap: 7px;
  min-height: 64px;
}

.team-tab .team-color {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  justify-self: center;
}

/* V4 team wordmark contrast tuning: keep each team's identity legible by theme. */
html[data-theme="light"] body .player-card[data-team-key="lamigo"] .team-ghost {
  opacity: .32;
}

html[data-theme="light"] body .player-card[data-team-key="national"] .team-ghost {
  opacity: .30;
}

html[data-theme="light"] body .player-card[data-team-key="eda"] .team-ghost {
  opacity: .30;
}

/* Match the requested light-mode visibility to Rakuten's existing .22 level. */
html[data-theme="light"] body .player-card[data-team-key="lions"] .team-ghost,
html[data-theme="light"] body .player-card[data-team-key="fubon"] .team-ghost,
html[data-theme="light"] body .player-card[data-team-key="rakuten"] .team-ghost,
html[data-theme="light"] body .player-card[data-team-key="brothers"] .team-ghost,
html[data-theme="light"] body .player-card[data-team-key="dragons"] .team-ghost,
html[data-theme="light"] body .player-card[data-team-key="hawks"] .team-ghost {
  opacity: .22;
}

html[data-theme="dark"] body .player-card[data-team-key="eda"] .team-ghost {
  color: color-mix(in srgb, var(--team-color) 30%, transparent) !important;
  opacity: 1;
}

html[data-theme="dark"] body .player-card[data-team-key="national"] .team-ghost {
  color: color-mix(in srgb, var(--team-color) 28%, transparent) !important;
  opacity: 1;
}

html[data-theme="dark"] body .player-card[data-team-key="brothers"] .team-ghost,
html[data-theme="dark"] body .player-card[data-team-key="fubon"] .team-ghost {
  color: color-mix(in srgb, var(--team-color) 26%, transparent) !important;
  opacity: 1;
}

html[data-theme="dark"] body .player-card[data-team-key="hawks"] .team-ghost {
  color: color-mix(in srgb, var(--team-color) 28%, transparent) !important;
  opacity: 1;
}
/* Mobile regression guard: keep each decorative team word fully inside its own card. */
@media (max-width: 620px) {
  .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .player-card .orbit-identity::before {
    left: 0;
    right: 0;
  }

  .player-card .team-ghost {
    left: 4px;
    right: 4px;
    width: auto;
    max-width: none;
    overflow: hidden;
    box-sizing: border-box;
    padding-inline: 2px;
    text-align: center;
    text-overflow: clip;
    white-space: nowrap;
    transform: skewX(-7deg);
    font-size: clamp(30px, calc(180cqw / var(--team-ghost-chars)), 50px);
  }
}
/* V4 TEAM FILTER: unify the all-team color block with the enlarged logo column. */
.team-tab {
  column-gap: 4px;
}

.team-tab .team-color.team-color-all {
  width: 48px;
  height: 48px;
  background: transparent !important;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.team-tab .team-color.team-color-all img {
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
}
/* V4 TEAM FILTER: apply the requested tighter spacing and all-team image size. */
.team-tab {
  column-gap: 2px;
}

.team-tab .team-color.team-color-all,
.team-tab .team-color.team-color-all img {
  width: 24px;
  height: 24px;
}
.team-tab[data-team=""] {
  grid-template-columns: 24px max-content;
  column-gap: 3px;
}

.team-tab {
  text-align: right;
}

.team-tab .team-count {
  justify-self: end;
  text-align: right;
}
/* V4 Grid Card trait/SS: mirror List typography and baseline while staying card-centered. */
.player-card .card-skill-summary-secondary {
  align-items: baseline;
}

.player-card .card-skill-summary-secondary > .card-skill-summary-group {
  align-items: baseline;
  align-self: auto;
  gap: 5px;
}

.player-card .card-skill-summary-secondary > .card-skill-summary-group > .card-skill-summary-label,
.player-card .card-skill-summary-secondary > .card-skill-summary-group > .card-skill-summary-content {
  align-self: baseline;
}

.player-card .card-skill-summary-secondary .card-skill-summary-content {
  align-items: baseline;
  gap: 5px;
}

.player-card .card-skill-summary-secondary .card-skill-summary-label {
  font-size: var(--list-skill-label-size);
  font-weight: 750;
  letter-spacing: .04em;
  line-height: 1.35;
}

.player-card .card-skill-summary-secondary .card-skill-summary-name {
  color: var(--ink-soft);
  font-size: var(--list-skill-size);
  font-weight: 700;
  line-height: 1.35;
}

.player-card .card-skill-summary-secondary .card-skill-summary-effect {
  color: var(--muted);
  font-size: var(--list-skill-size);
  line-height: 1.35;
}

.player-card .card-skill-summary-secondary .card-skill-summary-separator {
  margin-inline: 8px;
  font-size: var(--list-skill-size);
  line-height: 1.35;
}

@media (max-width: 620px) {
  .player-card .card-skill-summary-secondary > .card-skill-summary-group {
    gap: 2px;
  }

  .player-card .card-skill-summary-secondary .card-skill-summary-content {
    gap: 3px;
  }

  .player-card .card-skill-summary-secondary .card-skill-summary-label {
    font-size: 8px;
  }

  .player-card .card-skill-summary-secondary .card-skill-summary-name {
    font-size: 9px;
  }

  .player-card .card-skill-summary-secondary .card-skill-summary-effect {
    font-size: 8px;
  }

  .player-card .card-skill-summary-secondary .card-skill-summary-separator {
    margin-inline: 3px;
    font-size: 9px;
  }
}

@media (max-width: 389px) {
  .player-card .card-skill-summary-secondary > .card-skill-summary-group {
    gap: 1px;
  }

  .player-card .card-skill-summary-secondary .card-skill-summary-content {
    gap: 2px;
  }

  .player-card .card-skill-summary-secondary .card-skill-summary-separator {
    margin-inline: 2px;
  }
}

/* V4 Grid Card skill hover: keep gold labels static and underline only the text target. */
.player-card .card-skill-summary-trigger:hover,
.player-card .card-skill-summary-trigger:focus-visible,
.player-card .card-skill-summary-trigger[aria-expanded="true"] {
  color: inherit;
  text-decoration: none;
}

.player-card .card-skill-summary-trigger:hover .card-skill-summary-text,
.player-card .card-skill-summary-trigger:focus-visible .card-skill-summary-text,
.player-card .card-skill-summary-trigger[aria-expanded="true"] .card-skill-summary-text {
  color: var(--ink-soft);
  text-decoration-line: underline;
  text-decoration-color: var(--clay);
  text-underline-offset: 3px;
}

.player-card .card-skill-summary-trigger .card-skill-summary-label,
.player-card .card-skill-summary-ss.quick-skill-ss-trigger .card-skill-summary-label {
  color: var(--clay);
  text-decoration: none;
}

.player-card .card-skill-summary-ss.quick-skill-ss-trigger:hover,
.player-card .card-skill-summary-ss.quick-skill-ss-trigger:focus-visible,
.player-card .card-skill-summary-ss.quick-skill-ss-trigger[aria-expanded="true"] {
  color: inherit;
  text-decoration: none;
}

.player-card .card-skill-summary-ss.quick-skill-ss-trigger:hover .card-skill-summary-name,
.player-card .card-skill-summary-ss.quick-skill-ss-trigger:focus-visible .card-skill-summary-name,
.player-card .card-skill-summary-ss.quick-skill-ss-trigger[aria-expanded="true"] .card-skill-summary-name {
  color: var(--ink-soft);
  text-decoration-line: underline;
  text-decoration-color: var(--clay);
  text-underline-offset: 3px;
}/* V4 All-Star Grid skill layout: four centered rows in the existing skill-area envelope. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  --all-star-skill-area-height: 61.828px;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  align-content: center;
  gap: 2px;
  width: calc(100% + var(--orbit-identity-start) + var(--orbit-identity-end));
  height: var(--all-star-skill-area-height);
  margin-inline-start: calc(-1 * var(--orbit-identity-start));
  padding: 3px 0 2px;
  overflow: visible;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star > .card-skill-summary-row {
  position: static;
  inset-inline-start: auto;
  width: 100%;
  min-width: 0;
  margin: 0;
  justify-content: center;
  text-align: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-label {
  flex: 0 0 auto;
  margin: 0;
  line-height: 1.1;
  text-align: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-label {
  align-items: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  line-height: 1.1;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
  display: block;
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  max-height: none;
  min-width: 0;
  line-height: 1.1;
  overflow: visible;
  overflow-wrap: anywhere;
  text-align: center;
  white-space: normal;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept {
  align-items: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept > .card-skill-summary-group {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: 3px;
  max-width: 100%;
  min-width: 0;
  text-align: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-content {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: 3px;
  max-width: 100%;
  min-width: 0;
  text-align: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-name,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
  max-width: 100%;
  margin: 0;
  overflow: visible;
  line-height: 1.1;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss {
  align-items: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss > .card-skill-summary-group {
  gap: 4px;
  max-width: 100%;
}
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  grid-template-rows: auto auto auto auto;
  min-height: 0;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star > .card-skill-summary-row,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-group,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-content {
  min-height: 0;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-label,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
  line-height: 1;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
  letter-spacing: -.02em;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-name {
  font-size: 10px;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
  font-size: 9px;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-name {
  font-size: 10px;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
    font-size: 8px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-name {
    font-size: 8px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
    font-size: 7px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-name {
    font-size: 8px;
  }
}

@media (max-width: 389px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
    font-size: 7px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-name {
    font-size: 7px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
    font-size: 6px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-name {
    font-size: 7px;
  }
}
/* Final All-Star card correction: small labels, consistent readable skill content in three rows. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  grid-template-rows: auto auto auto;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-label {
  font-size: 9px;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
  font-size: 10px;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-label {
    font-size: 8px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 8px;
  }
}

@media (max-width: 389px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-label,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 7px;
  }
}

/* Final All-Star equal-height correction: match the existing card skill track at each breakpoint. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  box-sizing: border-box;
  --all-star-skill-area-height: 59.45px;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
  font-size: 10px !important;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    --all-star-skill-area-height: 61.078px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 8px !important;
  }
}

@media (max-width: 389px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    --all-star-skill-area-height: 73.219px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-label,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 7px !important;
  }
}
/* Final All-Star readability pass: enlarge skill content while keeping category labels compact. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
  font-size: 12px !important;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 9px !important;
  }
}

@media (max-width: 389px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 8px !important;
  }
}
/* Final All-Star fit pass: readable 11px desktop content with compact line rhythm. */
@media (min-width: 621px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    gap: 0;
    padding-block: 0;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    line-height: .9;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 11px !important;
  }
}
/* Final All-Star baseline pass: match the neighboring grid card height and skill baseline at medium widths. */
@media (min-width: 661px) and (max-width: 840px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    --all-star-skill-area-height: 58.89px;
    align-content: start;
    padding: 9px 0 7px;
  }
}
/* Final All-Star separation pass: preserve equal height while making the three rows visually distinct. */
@media (min-width: 661px) and (max-width: 840px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    row-gap: 2px;
    padding: 9px 0 4px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    line-height: .8;
  }
}
/* Final All-Star desktop baseline: start the small-skill row on the same track as normal cards. */
@media (min-width: 841px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    align-content: start;
    row-gap: 1px;
    padding: 9px 0 5px;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    line-height: .8;
  }
}
/* Final All-Star narrow-desktop fit: retain the shared baseline without row collisions. */
@media (min-width: 841px) and (max-width: 1100px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    row-gap: 1px;
    padding: 9px 0 0;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-name,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star .card-skill-summary-effect {
    font-size: 10px !important;
  }
}
/* Final All-Star two-row alignment: small skills share row one; trait and SS share row two. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  grid-template-rows: auto auto;
  align-content: start;
  gap: 8px;
  padding: 9px 0 8px;
  overflow: visible;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star > .card-skill-summary-row {
  position: static;
  inset-inline-start: auto;
  width: 100%;
  min-width: 0;
  margin: 0;
  justify-content: center;
  text-align: center;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  line-height: 1.1;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 5px;
  min-width: 0;
  overflow: hidden;
  line-height: 1.1;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-concept {
  display: inline-flex;
  align-items: baseline;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  max-width: none;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-concept > .card-skill-summary-label {
  flex: 0 0 auto;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-concept .card-skill-summary-content {
  display: inline-flex;
  align-items: baseline;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  max-width: none;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-concept .card-skill-summary-name,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-concept .card-skill-summary-effect {
  min-width: 0;
  max-width: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-concept .card-skill-summary-name {
  flex: 0 1 auto;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-concept .card-skill-summary-effect {
  flex: 1 1 auto;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-ss {
  display: inline-flex;
  align-items: baseline;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  max-width: 45%;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-ss .card-skill-summary-content {
  display: inline-flex;
  align-items: baseline;
  flex: 0 1 auto;
  flex-wrap: nowrap;
  min-width: 0;
  max-width: none;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-secondary .card-skill-summary-all-star-ss .card-skill-summary-name {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Final All-Star three-row alignment: small skills first, trait second, SS third. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  grid-template-rows: 15px minmax(0, 1fr) minmax(0, 1fr);
  align-content: start;
  row-gap: 6px;
  padding: 9px 0 4px;
  overflow: visible;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star > .card-skill-summary-row {
  position: static;
  inset-inline-start: auto;
  display: flex;
  align-items: baseline;
  width: 100%;
  min-width: 0;
  min-height: 0;
  margin: 0;
  justify-content: center;
  text-align: center;
  line-height: 1;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text {
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 5px;
  line-height: .9;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
  display: block;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: .9;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept {
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 4px;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept > .card-skill-summary-group {
  display: inline-flex;
  align-items: baseline;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-content {
  display: inline-flex;
  align-items: baseline;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  max-width: none;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-name,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
  min-width: 0;
  max-width: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-name {
  flex: 0 1 auto;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
  flex: 1 1 auto;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss {
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 4px;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss > .card-skill-summary-group {
  display: inline-flex;
  align-items: baseline;
  flex: 0 1 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-content {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: nowrap;
  min-width: 0;
  max-width: none;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-name {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    grid-template-rows: 13px minmax(0, 1fr) minmax(0, 1fr);
    row-gap: 4px;
    padding: 8px 0 5px;
  }
}

@media (max-width: 389px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    grid-template-rows: 12px minmax(0, 1fr) minmax(0, 1fr);
    row-gap: 4px;
    padding: 8px 0 5px;
  }
}
/* Keep each All-Star row on its grid track so row one shares the neighboring baseline. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  align-items: stretch;
}
@media (min-width: 621px) {
  /* Place the trait row on the same vertical baseline as ordinary cards' second row. */
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept {
    transform: translateY(2.5px);
  }
}
/* Final All-Star text split: trait description on row two; value and SS on row three. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-content {
  flex-wrap: nowrap;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss {
  align-items: baseline;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 5px;
  white-space: nowrap;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept-title {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 45%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  line-height: 1;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss > .card-skill-summary-group {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 48%;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-content {
  flex-wrap: nowrap;
  min-width: 0;
  max-width: none;
  overflow: hidden;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-name {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept-title {
    font-size: 9px;
  }
}

@media (max-width: 389px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept-title {
    font-size: 8px;
  }
}
/* Keep every All-Star small skill visible without clipping the glyph box. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
  line-height: 1.3;
  overflow: visible;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
  text-overflow: clip;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    grid-template-rows: auto auto auto;
    height: auto;
    min-height: var(--all-star-skill-area-height);
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
    white-space: normal;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text {
    align-items: flex-start;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text .card-skill-summary-text {
    overflow-wrap: anywhere;
  }
}

/* Show the complete All-Star trait and SS rows at every Grid Card breakpoint. */
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
  grid-template-rows: auto auto auto;
  height: auto;
  min-height: var(--all-star-skill-area-height);
  row-gap: 3px;
  padding: 4px 0 3px;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star > .card-skill-summary-row {
  overflow: visible;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept-title,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-name {
  line-height: 1.3;
  overflow: visible;
  text-overflow: clip;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept > .card-skill-summary-group,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-content,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss > .card-skill-summary-group,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-content {
  overflow: visible;
}

.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept-title,
.player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss > .card-skill-summary-group {
  max-width: none;
}

@media (max-width: 620px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-small-text,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss {
    flex-wrap: wrap;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept > .card-skill-summary-group,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-content,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss > .card-skill-summary-group,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-content {
    flex-wrap: wrap;
  }

  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept-title,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss .card-skill-summary-name {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* Keep the All-Star trait label visually grouped with its description on wider cards. */
@media (min-width: 621px) {
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept > .card-skill-summary-group,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-content {
    flex: 0 1 auto;
  }
}

/* All-Star rows reordered: row two is 特技 value · SS (like ordinary cards), row three is the lineup bonus. */
@media (min-width: 621px) {
  /* Drop the old baseline nudge so the three rows sit at an even row-gap. */
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept,
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-ss {
    transform: none;
  }

  /* Ordinary block = 9px + 15.4px 小技能 row + 4px gap + 17.7px baseline-aligned 特技/SS row + 8px + 0.77px border
     ≈ 54.9px (CSS px; .page-shell is zoomed 1.04). Give the three-row All-Star block the same floor
     (replacing the stale --all-star-skill-area-height values) so the detail buttons line up across a grid row. */
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    min-height: 54.9px;
    padding: 2px 0 1px;
  }

  /* The bonus condition is a secondary note; one step smaller keeps it clear of the card edges on 4-column grids. */
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star-concept .card-skill-summary-effect {
    font-size: 10px !important;
  }
}

@media (max-width: 620px) {
  /* Two-column phones: the three rows are taller than the ordinary block no matter what;
     drop the old 61px floor and keep the padding minimal so the gap is ~4px instead of ~12px. */
  .player-card:has(.card-skill-summary-all-star) .card-skill-summary-all-star {
    min-height: 0;
    padding: 1px 0;
  }
}

/* Narrow phones (< 390px, e.g. 375px / 360px / 320px): the mobile regression guard above keeps two card
   columns at every phone width, so reuse the compact two-column geometry that 390–620px already gets.
   Without it the identity gutters stay desktop-sized and the five stat values touch ("110107105100103"). */
@media (max-width: 389px) {
  :root {
    --grid-meta-size: 8px;
    --grid-series-size: 8px;
    --grid-stat-label-size: 7px;
    --grid-stat-value-size: 12px;
    --grid-secondary-size: 8px;
    --grid-cta-size: 9px;
  }

  .card-grid {
    gap: 24px 8px;
  }

  .player-card {
    --orbit-identity-start: 6px;
    --orbit-identity-end: 4px;
  }

  .orbit-visual {
    height: 236px;
  }

  .player-field {
    inset: 18px 2px 10px;
  }

  .orbit-visual .card-art {
    left: 0;
    right: 0;
  }

  .orbit-serial {
    top: 8px;
    left: 8px;
    font-size: 7px;
  }

  .orbit-rating {
    top: 14px;
    right: 5px;
  }

  .orbit-rating small {
    margin-right: 4px;
    font-size: 7px;
  }

  .orbit-rating strong {
    font-size: 38px;
  }

  .orbit-compare {
    top: 24px;
    left: 6px;
  }

  .compare-check {
    min-height: 36px;
    font-size: 9px;
  }

  .compare-check span {
    min-width: 36px;
    min-height: 36px;
  }

  .player-card .orbit-identity {
    margin: -18px var(--orbit-identity-end) 0 var(--orbit-identity-start);
  }

  .player-card .orbit-identity h4 {
    font-size: 17px;
  }

  .player-card .orbit-stats {
    margin-top: 8px;
    padding-block: 8px;
    column-gap: 2px;
  }

  .player-card .orbit-stat small {
    font-size: 7px;
  }

  .player-card .orbit-stat b,
  .player-card .orbit-stat.is-primary b {
    font-size: 12px;
    letter-spacing: -0.02em;
  }

  .player-card .detail-button {
    gap: 5px;
    margin-top: 7px;
    font-size: 9px;
  }

  .player-card .detail-button::after {
    width: 24px;
  }
}

/* Very narrow phones (≤ 359px, e.g. 320px): 特技 + SS no longer fit on one line; let SS wrap below instead of being
   clipped at the card edge. */
@media (max-width: 359px) {
  .player-card .card-skill-summary-secondary,
  .player-card .card-skill-summary-all-star-ss {
    flex-wrap: wrap;
    row-gap: 2px;
  }

  .player-card .card-skill-summary-secondary > .card-skill-summary-separator,
  .player-card .card-skill-summary-all-star-ss > .card-skill-summary-separator {
    display: none;
  }
}

/* Full player detail — small skills read as one sentence ("當沒有跑者時外野手的守備+6"); the value that increases
   is the thing players scan for, so it gets the accent colour and weight. */
.skill-detail .skill-effect-line {
  margin: 4px 0 0;
  color: var(--ink-soft);
  font-size: var(--detail-body-size);
  line-height: var(--detail-skill-line-height);
  white-space: normal;
}

.skill-detail .skill-effect-value,
.compare-item .skill-effect-value {
  margin-inline: 1px;
  color: var(--clay);
  font-family: var(--font-display);
  font-size: 1.12em;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* Decreases (e.g. 打擊-4) must not look like gains. */
.skill-detail .skill-effect-value.is-negative,
.compare-item .skill-effect-value.is-negative {
  color: var(--muted);
  font-weight: 700;
}

/* Full player detail on phones: the stacked header (220px art + 41px name + highlights) filled the whole screen.
   Put the art beside the name, scale the type down, and tighten spacing so stats and skills are reachable. */
@media (max-width: 620px) {
  :root {
    --detail-title-size: 26px;
    --detail-meta-size: 12px;
    --detail-meta-aux-size: 12px;
    --detail-section-title-size: 18px;
    --detail-highlight-name-size: 15px;
    --detail-skill-name-size: 15px;
    --detail-body-size: 13px;
    --detail-label-size: 11px;
    --detail-stat-label-size: 13px;
    --detail-stat-value-size: 15px;
    --detail-level-size: 12px;
    --detail-skill-line-height: 1.5;
  }

  .detail-dialog .dialog-frame {
    padding: 14px;
  }

  .detail-dialog .detail-header {
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 10px 14px;
    padding: 0 0 14px;
  }

  .detail-dialog .detail-art {
    grid-column: 1;
    min-height: 0;
    height: 132px;
  }

  .detail-dialog .detail-art .card-art,
  .detail-dialog .detail-art img {
    height: 100%;
    min-height: 0;
  }

  .detail-dialog .detail-art img {
    object-fit: contain;
    object-position: center bottom;
  }

  .detail-dialog .detail-player-meta {
    grid-column: 2;
    align-self: center;
    min-width: 0;
    padding-right: 40px;
  }

  .detail-dialog .detail-player-meta .detail-subline {
    margin: 4px 0 6px;
  }

  .detail-dialog .detail-series {
    margin-bottom: 4px;
  }

  .detail-dialog .detail-highlights {
    grid-column: 1 / -1;
    gap: 8px;
  }

  .detail-dialog .detail-highlight {
    padding: 10px 12px;
  }

  .detail-dialog .detail-layout {
    gap: 14px;
    padding-top: 14px;
  }

  .detail-dialog .detail-section {
    margin-bottom: 16px;
  }

  .detail-dialog .detail-stat {
    padding: 6px 2px;
  }

  .detail-dialog .skill-detail {
    padding: 8px 0;
  }
}

/* Safari will not break a line between two `white-space: nowrap` skill names, so on iPhone the whole list ran past
   the card into its neighbour. app.js puts a <wbr> after every "・"; this keeps any leftover text inside the card. */
.player-card .card-skill-summary-text,
.player-card .card-skill-summary-content {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

/* When the 小技能 names wrap (iPhone fonts are wider), a flex row stretched the name block to the full width and
   centred it, leaving a large hole after the label. Flow label and names as one centred paragraph instead. */
.player-card .card-skill-summary-row.card-skill-summary-small,
.player-card .card-skill-summary-row.card-skill-summary-all-star-small-text {
  display: block;
  text-align: center;
  /* The row itself still carries the page's 16px / 24px type, and a block gives every line a 24px strut, so a
     wrapped second line sat a full 24px below the first. Zero the strut; the label and names keep their own
     line-height, so each line is exactly as tall as its text. */
  line-height: 0;
}

.player-card .card-skill-summary-small > .card-skill-summary-label,
.player-card .card-skill-summary-all-star-small-text > .card-skill-summary-label {
  display: inline;
  margin-right: 6px;
}

.player-card .card-skill-summary-small > .card-skill-summary-text,
.player-card .card-skill-summary-all-star-small-text > .card-skill-summary-text {
  display: inline;
}

/* Phone List View, compact: the owner compared it with the original site's list, which shows about twice as many
   players per screen. Same content, tighter packing: year joins the team line, OVR floats top-right so the skill
   lines can use the full width, and the stats share one row with 比較 / 完整資料. */
@media (max-width: 620px) {
  .player-list-item.list-skill-layout-a {
    position: relative;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: start;
    gap: 8px 10px;
    padding: 10px 4px;
  }

  .player-list-item.list-skill-layout-a .orbit-list-art {
    grid-column: 1;
    grid-row: 1;
    width: 48px;
    height: 48px;
  }

  .player-list-item.list-skill-layout-a .list-player-main {
    display: grid;
    grid-column: 2 / -1;
    grid-row: 1;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: baseline;
    column-gap: 0;
  }

  .player-list-item.list-skill-layout-a .list-player-main h4 {
    grid-column: 1 / -1;
    grid-row: 1;
    padding-right: 64px;
    font-size: 20px;
  }

  .player-list-item.list-skill-layout-a .list-year {
    grid-column: 1;
    grid-row: 2;
    margin: 2px 0 0;
    font-size: 12px;
    line-height: 1.3;
    letter-spacing: .04em;
  }

  /* Spaces and dot in the team line's font, so this separator matches the " · " inside the team line exactly. */
  .player-list-item.list-skill-layout-a .list-year::after {
    content: " · ";
    color: var(--muted);
    font-family: var(--font-zh);
    letter-spacing: 0;
    white-space: pre;
  }

  .player-list-item.list-skill-layout-a .list-player-main > p:nth-of-type(2) {
    grid-column: 2;
    grid-row: 2;
    margin: 2px 0 0;
    padding-right: 64px;
    font-size: 12px;
    line-height: 1.3;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  .player-list-item.list-skill-layout-a .list-skill-summary {
    grid-column: 1 / -1;
    grid-row: 3;
    margin-top: 6px;
  }

  .player-list-item.list-skill-layout-a .list-skill-trait-ss {
    margin-top: 3px;
  }

  .player-list-item.list-skill-layout-a .list-overall {
    position: absolute;
    top: 10px;
    right: 4px;
  }

  .player-list-item.list-skill-layout-a .list-overall strong {
    font-size: 32px;
  }

  .player-list-item.list-skill-layout-a .orbit-list-stats {
    grid-column: 1 / 3;
    grid-row: 2;
    align-self: center;
  }

  .player-list-item.list-skill-layout-a .orbit-list-stats small {
    line-height: 1.2;
  }

  .player-list-item.list-skill-layout-a .orbit-list-stats b {
    font-size: 16px;
    line-height: 1.2;
  }

  .player-list-item.list-skill-layout-a .list-actions {
    grid-column: 3;
    grid-row: 2;
    align-self: center;
    gap: 8px;
  }

  .player-list-item.list-skill-layout-a .compare-check {
    min-height: 34px;
  }

  .player-list-item.list-skill-layout-a .compare-check span {
    min-width: 34px;
    min-height: 34px;
  }

  .player-list-item.list-skill-layout-a .detail-button {
    gap: 5px;
    min-height: 34px;
  }

  .player-list-item.list-skill-layout-a .detail-button::after {
    width: 14px;
  }
}
