@charset "UTF-8";
:root {
  color-scheme: light;
  --ink: #242b34;
  --muted: #606875;
  --paper: #f6f7f9;
  --white: #ffffff;
  --line: #e1e4e8;
  --team-primary: #e5b500;
  --team-strong: #765b00;
  --team-on: #171717;
  --team-soft: #fdf8e8;
  --team-pale: #fefdf9;
  --team-line: #f0d780;
  --team-secondary: #efcd66;
  --upper: #17634b;
  --middle: #3f6272;
  --lower: #985031;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--team-pale); color: var(--ink); font-size: 15px; line-height: 1.65; }
button, input, select { font: inherit; color: inherit; }
button, select, summary { cursor: pointer; }
button { border: 0; }
a { color: inherit; text-underline-offset: 4px; }
button, a, select, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--team-strong); outline-offset: 4px; }
h1, h2, h3, h4, p { margin: 0; }
h1 { font-size: clamp(28px, 3vw, 38px); letter-spacing: -.045em; line-height: 1.35; }
h2 { font-size: 21px; line-height: 1.45; }
h3 { font-size: 18px; line-height: 1.5; }
h4 { font-size: 18px; }
small { font-size: 12px; }
select, input[type="search"] { max-width: 100%; background: var(--white); border: 1px solid #bcc8bd; border-radius: 8px; padding: 10px 12px; }
button:disabled { cursor: default; }
.site-header { display: flex; align-items: center; gap: 36px; padding: 20px max(28px, calc((100vw - 1224px) / 2)); background: var(--white); border-top: 6px solid var(--team-primary); border-bottom: 1px solid var(--line); }
.brand { display: flex; gap: 10px; align-items: center; white-space: nowrap; font-size: 22px; font-weight: 800; text-decoration: none; letter-spacing: -.04em; }
.brand-logo { display: block; flex: 0 0 32px; width: 32px; height: auto; background: #f7f6f2; border-radius: 50%; }
.brand small { display: block; color: var(--muted); font-size: 10px; font-weight: 400; letter-spacing: 0; }
.main-nav { display: flex; gap: 8px; }
.main-nav a { text-decoration: none; padding: 10px 13px; border-radius: 6px; white-space: nowrap; font-size: 14px; font-weight: 650; }
.main-nav a[aria-current="page"] { color: var(--team-on); background: var(--team-primary); }
.main-nav a:hover { background: var(--team-soft); color: var(--team-strong); }
.main-nav a[aria-current="page"]:hover { background: var(--team-strong); color: white; }
.team-control { margin-left: auto; display: grid; gap: 3px; font-size: 11px; font-weight: 700; }
.team-control select { max-width: 250px; font-size: 14px; font-weight: 600; padding-block: 8px; }
.site-main, .site-footer { width: min(1200px, calc(100% - 56px)); margin-inline: auto; }
.site-main { padding-block: 32px 48px; min-height: 65vh; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 23px; }
.page-heading p:not(.section-kicker) { margin-top: 10px; color: var(--muted); }
.section-kicker { display: block; color: var(--team-strong); font-size: 12px; font-weight: 650; margin-bottom: 6px; letter-spacing: .05em; }
.text-link, .text-button { font-size: 13px; font-weight: 650; background: none; padding: 4px 0; }
.text-link { white-space: nowrap; }
.text-button { text-decoration: underline; text-underline-offset: 4px; }
.rank-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.rank-card { padding: 20px 24px 13px; border: 1px solid var(--line); border-top: 4px solid var(--team-primary); border-radius: 14px; background: var(--white); }
.rank-card h2 { display: flex; align-items: center; gap: 8px; font-size: 16px; color: var(--ink); font-weight: 600; }
.rank-value { display: flex; align-items: baseline; gap: 9px; margin-top: 3px; font-variant-numeric: tabular-nums; }
.rank-value > strong { color: var(--team-strong); font-size: 54px; font-weight: 750; letter-spacing: -.06em; line-height: 1.25; }
.rank-value > span { font-size: 14px; }
.rank-value .rank-actual { display: flex; gap: 10px; align-items: baseline; margin-left: auto; font-size: 13px; color: var(--muted); }
.rank-actual b { color: var(--ink); font-size: 28px; font-weight: 650; }
.rank-scale { width: 100%; height: 37px; display: block; overflow: visible; }
.rank-line { stroke: #d9e1d8; stroke-width: 3; }
.rank-tick { fill: #8c9e90; }
.rank-marker { fill: var(--team-primary); stroke: var(--team-strong); stroke-width: 2; }
.rank-scale text { fill: var(--muted); font-size: 10px; }
.hero-note { margin: 8px 0 20px; font-size: 12px; color: var(--muted); }
.band-upper { color: var(--upper); }
.band-middle { color: var(--middle); }
.band-lower { color: var(--lower); }
.band-unknown { color: var(--muted); }
.focus-section { margin-block: 20px 28px; }
.focus-section > h2 { font-size: 17px; margin-bottom: 10px; }
.focus-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.focus-card, .strength-card { padding: 16px 19px; border: 1px solid var(--team-line); border-left: 4px solid var(--team-primary); border-radius: 12px; background: var(--team-soft); }
.focus-card h3, .strength-card h3 { font-size: 17px; margin: 5px 0; }
.focus-card h3 a { text-decoration: none; }
.focus-card h3 a:hover { text-decoration: underline; }
.focus-card p, .strength-card p { font-size: 13px; color: var(--muted); }
.focus-label { font-size: 11px; font-weight: 750; letter-spacing: .05em; color: var(--team-strong); }
.focus-card .text-button { color: var(--muted); margin-top: 5px; }
.strength-card { background: var(--white); border-color: var(--team-line); border-left-color: var(--team-primary); }
.strength-card .focus-label { color: var(--team-strong); }
.strength-card p { color: var(--muted); }
.strength-card a { font-size: 13px; display: inline-block; margin-top: 9px; }
.analysis-layout { display: grid; grid-template-columns: .95fr 1.2fr; gap: 22px; align-items: start; margin-block: 22px; }
.panel { background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: 25px; min-width: 0; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.section-lead { color: var(--muted); font-size: 13px; margin: -2px 0 15px; }
.help-button { display: inline-grid; place-items: center; flex-shrink: 0; vertical-align: middle; min-width: 28px; min-height: 28px; border: 1px solid #b5c1b2; border-radius: 50%; background: transparent; color: var(--muted); font-size: 13px; font-weight: 650; padding: 0; margin-left: 4px; }
.help-button:hover { background: var(--team-soft); color: var(--ink); }
.map-legend { display: flex; gap: 13px; align-items: center; font-size: 12px; margin-bottom: 16px; }
.map-legend > span { display: flex; align-items: center; gap: 4px; }
.map-legend > span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.map-legend small { margin-left: auto; color: var(--muted); font-size: 11px; }
.baseball-field { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-areas: ". outfield ." "short . second" "third pitcher first" ". catcher ."; gap: 9px 12px; padding: 20px 18px 18px; border: 1px solid var(--team-line); border-radius: 45% 45% 16px 16px; background: radial-gradient(ellipse at 50% 77%, #e9dfc8 0 34%, transparent 34.4%), repeating-radial-gradient(ellipse at 50% 85%, var(--team-pale) 0 34px, var(--team-soft) 35px 69px); }
.field-position { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; width: 100%; padding: 7px 4px; background: #fffef8f5; border: 1px solid #c6d4be; border-radius: 9px; box-shadow: 0 2px 3px #1c403309; }
.field-position > span:first-child { font-size: 13px; font-weight: 700; color: var(--ink); }
.field-position strong { font-size: 21px; line-height: 1.3; font-weight: 750; font-variant-numeric: tabular-nums; }
.field-position strong small { font-size: 11px; font-weight: 450; }
.field-band { font-size: 11px; }
.field-position.band-lower { background: #fff3e7; border-color: #e2b99b; }
.field-position.band-upper { background: #f2f8ed; border-color: #acbfa4; }
.field-position[aria-pressed="true"] { outline: 3px solid var(--ink); outline-offset: 2px; }
.field-position:hover { box-shadow: 0 3px 8px #193d3520; }
.field-hint { font-size: 10px; color: #795c33; }
.field-pitcher { grid-area: pitcher; }
.field-catcher { grid-area: catcher; }
.field-first { grid-area: first; }
.field-second { grid-area: second; }
.field-third { grid-area: third; }
.field-short { grid-area: short; }
.field-outfield { grid-area: outfield; }
.dh-map-entry { display: flex; align-items: center; gap: 16px; width: 100%; margin-top: 16px; padding: 14px 16px; border: 1px solid var(--team-line); border-radius: 9px; background: var(--team-pale); color: var(--team-strong); text-align: left; }
.dh-map-entry > span:first-child { flex-shrink: 0; font-size: 21px; font-weight: 750; }
.dh-map-entry > span:last-child { margin-left: auto; }
.dh-map-entry strong { font-size: 13px; }
.dh-map-entry small { display: block; color: var(--muted); font-size: 11px; }
.dh-map-entry:hover { background: var(--team-soft); }
.dh-map-entry[aria-pressed="true"] { outline: 2px solid var(--team-strong); outline-offset: 2px; }
.note { font-size: 12px; line-height: 1.7; color: var(--muted); margin-top: 12px; }
.dot-legend { display: flex; gap: 14px; flex-wrap: wrap; margin-block: 12px 16px; font-size: 11px; color: var(--muted); }
.dot-legend > span { display: inline-flex; gap: 6px; align-items: center; }
.player-dot { display: inline-block; width: 8px; height: 8px; border: 1.5px solid var(--team-strong); background: var(--team-primary); border-radius: 50%; flex: 0 0 auto; }
.player-dot.is-development { background: transparent; }
.player-dot.is-top { width: 13px; height: 13px; border-width: 2px; background: var(--team-primary); border-color: var(--ink); }
.player-dot.is-top.is-development { background: transparent; }
.age-matrix { width: 100%; table-layout: fixed; border-collapse: collapse; }
.age-matrix th { font-size: 12px; font-weight: 600; text-align: center; padding: 9px 3px; white-space: normal; background: none; border-bottom: 1px solid var(--line); }
.age-matrix th:first-child { width: 46px; text-align: left; }
.age-matrix td { padding: 3px; border-bottom: 1px solid #e5e8df; vertical-align: middle; }
.age-cell { display: grid; place-items: center; padding: 8px; border-radius: 7px; width: 100%; min-height: 44px; background: var(--team-pale); color: #a2ada1; }
.age-cell:not(:disabled):hover { background: var(--team-soft); }
.age-dots { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; justify-content: center; }
.position-detail { margin-block: 24px; scroll-margin-top: 18px; }
.position-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; font-size: 15px; }
.rank-pill { display: inline-block; background: #f2f2e8; padding: 6px 12px; border-radius: 6px; font-weight: 700; }
.age-strip { display: flex; flex-wrap: wrap; gap: 8px 20px; border-block: 1px solid var(--line); margin-block: 18px 22px; padding-block: 12px; color: var(--muted); font-size: 12px; }
.age-strip b { color: var(--ink); font-weight: 650; }
.candidate-section { margin-block: 22px; }
.candidate-heading { display: flex; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.candidate-heading h3 span { color: var(--muted); font-size: 13px; font-weight: 450; margin-left: 5px; }
.candidate-section > .note { margin: 0 0 13px; }
.candidate-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.role-entry { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-block: 20px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--team-pale); }
.role-entry h2 { font-size: 15px; }
.role-entry span { font-size: 13px; color: var(--muted); }
.dh-role-heading { font-size: 18px; font-weight: 650; }
.dh-data-status { display: inline-block; margin-top: 12px; padding: 5px 10px; background: var(--team-soft); border-radius: 5px; font-size: 13px; }
.dh-role-grid { margin-top: 22px; }
.dh-role-card h3 { font-size: 18px; }
.dh-stat-label { margin-top: 18px; font-size: 12px; color: var(--muted); }
.dh-role-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-block: 10px; }
.dh-role-metrics dt { font-size: 11px; color: var(--muted); }
.dh-role-metrics dd { margin: 4px 0 0; font-size: 17px; font-weight: 650; }
.dh-reference { margin-top: 12px; font-size: 12px; }
.position-groups { display: grid; grid-template-columns: 1fr 2fr; column-gap: 22px; }
.position-groups > .candidate-section { display: grid; grid-template-rows: subgrid; grid-row: 1 / span 4; row-gap: 0; }
.position-groups > .candidate-section:first-child { grid-column: 1; }
.position-groups > .candidate-section:not(:first-child) { grid-column: 2; }
.position-groups > .candidate-section > .candidate-grid { align-self: start; }
.position-groups > .candidate-section:first-child .candidate-grid { grid-template-columns: 1fr; }
.position-groups > .candidate-section:not(:first-child) .candidate-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.position-groups > .tie-note { grid-column: 1 / -1; order: 1; }
.player-card { padding: 18px; border: 1px solid var(--team-line); border-top: 3px solid var(--team-primary); border-radius: 10px; background: var(--team-pale); min-width: 0; }
.player-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.player-card header > span { font-size: 13px; white-space: nowrap; }
.player-button { background: none; padding: 2px 0; font-weight: 700; text-align: left; text-decoration: underline; text-underline-offset: 4px; }
.player-badges { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-block: 8px 14px; }
.tag { display: inline-block; padding: 2px 6px; border-radius: 4px; background: #e3ecdf; color: #42603a; font-size: 11px; white-space: nowrap; }
.tag-development { background: #fcf0d1; color: #80611d; }
.stage-badge { font-size: 10px; color: var(--muted); }
.mini-stat { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 9px; align-items: baseline; font-size: 12px; padding-top: 8px; border-top: 1px solid var(--line); margin-top: 8px; font-variant-numeric: tabular-nums; }
.mini-stat > span { font-size: 11px; color: var(--muted); }
.mini-stat b { font-size: 16px; }
.mini-stat small { display: block; font-size: 10px; color: var(--muted); margin-top: 2px; }
.card-extra { font-size: 11px; color: var(--muted); margin-top: 10px; }
.more-candidates { margin-top: 12px; }
.more-candidates > summary { border-bottom: 1px solid var(--line); padding: 11px 0; color: var(--team-strong); font-size: 13px; }
.more-candidates > .candidate-grid { margin-top: 13px; }
summary { cursor: pointer; font-weight: 600; }
.method-details { border-top: 1px solid var(--line); padding: 16px 0; font-size: 13px; margin-top: 22px; }
.method-details p { margin-block: 12px; }
.method-details summary { color: var(--muted); }
.reason-list { padding-left: 22px; }
.reason-list li { margin-block: 12px; }
.tie-note { border-left: 3px solid var(--team-primary); padding: 12px 16px; background: #fcf5e6; font-size: 13px; }
.button { display: inline-flex; justify-content: center; align-items: center; padding: 10px 14px; border-radius: 7px; font-size: 13px; font-weight: 650; background: var(--team-primary); color: var(--team-on); text-decoration: none; }
.button-light { color: var(--ink); background: var(--team-soft); border: 1px solid var(--line); }
.club-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.club-card { background: linear-gradient(var(--team-soft), var(--white) 105px); border: 1px solid var(--line); border-top: 5px solid var(--team-primary); border-radius: 13px; padding: 22px; }
.club-card.is-selected { outline: 2px solid var(--team-strong); outline-offset: 2px; }
.club-card header > span { font-size: 11px; color: var(--muted); }
.club-card h2 { margin-block: 6px 20px; font-size: 19px; }
.club-card h2 a { text-decoration: none; }
.club-card h2 a span { color: var(--muted); }
.club-ranks { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.club-ranks > div { display: flex; flex-direction: column; padding-left: 10px; border-left: 3px solid var(--team-primary); }
.club-ranks strong { color: var(--team-strong); font-size: 31px; font-weight: 700; line-height: 1.6; }
.club-ranks small { font-weight: 400; font-size: 12px; color: var(--muted); }
.club-ranks span { font-size: 12px; }
.club-focus { margin-top: 20px; padding-top: 13px; border-top: 1px solid var(--line); font-size: 13px; }
.club-focus > span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 4px; }
.filters { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 14px; }
.filters label { display: grid; gap: 4px; font-size: 12px; }
.filters .checkbox-label { display: flex; gap: 5px; align-items: center; padding: 10px 0; }
input[type="checkbox"] { accent-color: var(--team-strong); }
.filter-panel { margin-bottom: 22px; }
.table-wrap { width: 100%; overflow-x: auto; margin-top: 12px; }
table { border-collapse: collapse; font-size: 13px; width: 100%; font-variant-numeric: tabular-nums; }
th, td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
th { font-size: 12px; color: var(--muted); font-weight: 600; background: var(--team-pale); }
td small { display: block; font-size: 11px; color: var(--muted); }
th .help-button { min-width: 23px; min-height: 23px; font-size: 11px; }
.roster-section { margin-top: 24px; }
.comparison-layout { display: grid; grid-template-columns: 1.25fr 1fr; gap: 22px; }
.bar-axis, .bar-row { display: grid; grid-template-columns: 75px minmax(0, 1fr) 62px 56px; gap: 9px; align-items: center; }
.bar-axis { font-size: 10px; color: var(--muted); margin-block: 20px 12px; }
.bar-list { list-style: none; padding: 0; margin: 0; }
.bar-row { padding: 8px 0; font-size: 12px; border-bottom: 1px solid #edf0e8; }
.bar-row a { font-size: 11px; text-decoration: none; }
.bar-row.is-selected a, .bar-row.is-selected .bar-value { font-weight: 750; }
.bar-svg { display: block; width: 100%; height: 24px; fill: var(--team-primary); color: var(--muted); }
.bar-row.is-selected { background: var(--team-soft); }
.bar-row.is-selected .bar-svg { fill: var(--team-primary); }
.bar-svg.is-reference { fill: var(--team-primary); opacity: .4; }
.bar-value, .bar-rank { text-align: right; font-variant-numeric: tabular-nums; }
.bar-rank small { display: block; font-size: 10px; }
.radar-svg { width: 100%; display: block; max-width: 440px; margin: 12px auto; }
.radar-grid, .radar-spoke { fill: none; stroke: #dce4dc; }
.radar-area { fill: var(--team-primary); fill-opacity: .18; stroke: var(--team-primary); stroke-width: 2; }
.radar-average-area { fill: #6691c125; stroke: #698eb6; stroke-width: 2; stroke-dasharray: 5 4; }
.radar-average-segment { stroke: #698eb6; stroke-width: 2; stroke-dasharray: 5 4; }
.radar-average-dot { fill: #698eb6; }
.radar-segment { stroke: var(--team-primary); stroke-width: 2; }
.radar-dot { fill: var(--team-primary); stroke: white; stroke-width: 1.5; }
.radar-label { font-size: 11px; fill: var(--ink); font-weight: 600; }
.radar-explanation { font-size: 9px; fill: var(--muted); font-weight: 400; }
.radar-legend { display: flex; gap: 18px; font-size: 12px; color: var(--team-strong); }
.radar-legend span + span { color: #5578a0; }
.metric-values { margin-block: 18px 0; }
.metric-values > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-block: 9px; border-top: 1px solid var(--line); font-size: 12px; }
.metric-values dd { margin: 0; font-weight: 650; }
.metric-values small { font-weight: 400; color: var(--muted); }
.site-footer { border-top: 1px solid var(--line); padding-block: 24px 36px; color: var(--muted); font-size: 12px; }
.site-footer details { margin-block: 15px; max-width: 850px; }
.site-footer p { margin-block: 10px; }
code { overflow-wrap: anywhere; }
.source-details { font-size: 12px; margin-block: 18px; overflow-wrap: anywhere; }
.source-details ul { padding-left: 18px; }
.hand-summary { display: flex; flex-wrap: wrap; gap: 16px; margin-block: 16px; }
.hand-card { flex: 1 1 260px; padding: 16px; border: 1px solid var(--line); border-radius: 9px; }
.hand-card h3 { font-size: 15px; }
.hand-card p { font-size: 12px; }
.hand-track { display: flex; height: 10px; border-radius: 5px; overflow: hidden; }
.hand-right { background: var(--team-primary); }
.hand-left { background: var(--team-secondary); }
.hand-both { background: var(--team-strong); }
.hand-unknown { background: #a0a69b; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 11px; background: var(--paper); padding: 12px; }
dialog { width: min(900px, calc(100% - 32px)); max-height: 88dvh; padding: 28px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); color: var(--ink); }
dialog::backdrop { background: #10292099; }
.help-dialog { width: min(660px, calc(100% - 32px)); }
.dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 18px; }
.dialog-heading h2 { font-size: 25px; }
.dialog-heading p { font-size: 13px; margin-top: 8px; }
.dialog-heading button { padding: 9px 12px; border-radius: 6px; background: var(--team-soft); flex-shrink: 0; font-size: 13px; }
.dialog-history { margin-block: 22px; }
.loading, .empty { color: var(--muted); padding-block: 18px; }
.error { margin-block: 30px; padding: 22px; border: 1px solid #d39368; border-radius: 12px; }
.visually-hidden { display: inline-block; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
.skip-link { display: block; background: var(--ink); color: white; text-align: center; line-height: 0; overflow: hidden; }
.skip-link:focus { line-height: 2.5; }
.dh-entry { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 7px 20px; margin-block: 22px; padding: 15px 20px; border-left: 5px solid var(--team-primary); border-radius: 8px; background: var(--team-soft); text-decoration: none; }
.dh-entry span { font-size: 12px; color: var(--team-strong); }
.dh-entry strong { font-size: 15px; }
.dh-overview { display: grid; grid-template-columns: 1.3fr 1fr; gap: 22px; }
.dh-count { display: flex; gap: 13px; align-items: baseline; margin-block: 15px; }
.dh-count strong { color: var(--team-strong); font-size: 44px; line-height: 1.3; }
.dh-count span { font-size: 14px; }
.dh-shortlist { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.dh-shortlist .button { padding: 7px 10px; background: var(--white); }
.dh-league-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dh-league-list li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px; border-left: 4px solid var(--team-primary); background: var(--team-soft); border-radius: 5px; }
.dh-league-list a { font-size: 13px; }
.dh-league-list strong { font-size: 18px; color: var(--team-strong); }
.dh-selector { margin-block: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.dh-selector > label { font-weight: 650; }
.dh-selector > select { flex: 1 1 340px; }
.dh-selector > .note { width: 100%; margin: 0; }
.dh-verdict { background: var(--team-soft); padding: 14px 18px; border-left: 4px solid var(--team-primary); }
.dh-scenario { scroll-margin-top: 18px; }
.dh-impact-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 22px; margin-top: 24px; align-items: start; }
.dh-impact-layout h3 { margin-bottom: 12px; }
.dh-impact-card { border-bottom: 1px solid var(--line); padding: 13px 0 16px; }
.dh-impact-card:first-of-type { padding-top: 0; }
.dh-impact-card h4 { margin-bottom: 8px; }
.dh-impact-card h4 > span { margin-left: 8px; font-size: 12px; color: var(--muted); font-weight: 400; }
.dh-impact-card p { font-size: 14px; }
.dh-impact-card .text-link { display: inline-block; margin-top: 10px; }
.dh-replacement-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 15px; }
.dh-lineup { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-block: 20px; }
.dh-lineup > div { background: var(--team-soft); border-top: 3px solid var(--team-primary); padding: 12px; border-radius: 6px; }
.dh-lineup span { display: block; color: var(--muted); font-size: 12px; }
.dh-lineup strong { font-size: 14px; }
@media (max-width: 1100px) {
  .site-header { gap: 18px; padding: 16px 24px; }
  .brand { font-size: 19px; }
  .main-nav { gap: 2px; }
  .main-nav a { padding-inline: 8px; font-size: 13px; }
  .team-control select { max-width: 220px; }
  .analysis-layout { grid-template-columns: .95fr 1.1fr; gap: 16px; }
  .panel { padding: 20px; }
  .focus-card h3, .strength-card h3 { font-size: 16px; }
  .baseball-field { padding-inline: 10px; gap: 8px; }
  .club-grid { grid-template-columns: 1fr 1fr; }
  .candidate-grid { gap: 10px; }
  .player-card { padding: 14px; }
  .player-card h4 { font-size: 16px; }
}
@media (max-width: 768px) {
  .site-header { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 8px; padding: 14px 16px 10px; }
  .brand { font-size: 19px; gap: 8px; }
  .brand small { display: none; }
  .team-control { min-width: 0; font-size: 0; gap: 0; width: 100%; }
  .team-control select { width: 100%; font-size: 12px; padding: 9px 5px; min-width: 0; }
  .main-nav { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; gap: 6px; }
  .main-nav a { flex: 1; text-align: center; padding: 8px 6px; font-size: 12px; }
  .site-main, .site-footer { width: calc(100% - 32px); }
  .site-main { padding-top: 22px; }
  .page-heading { align-items: flex-start; gap: 8px; margin-bottom: 15px; flex-wrap: wrap; }
  h1 { font-size: 28px; }
  h2 { font-size: 20px; }
  .page-heading > .text-link { font-size: 12px; }
  .section-kicker { font-size: 11px; margin-bottom: 5px; }
  .rank-grid { gap: 9px; }
  .rank-card { padding: 13px 12px 10px; border-radius: 11px; }
  .rank-card h2 { display: block; font-size: 13px; min-height: 43px; }
  .rank-card .help-button { min-width: 23px; min-height: 23px; font-size: 11px; }
  .rank-value { gap: 5px; flex-wrap: wrap; margin-top: 4px; }
  .rank-value > strong { color: var(--team-strong); font-size: 42px; }
  .rank-value > span { font-size: 11px; }
  .rank-value .rank-actual { width: 100%; margin: -2px 0 4px; gap: 8px; font-size: 11px; }
  .rank-actual b { font-size: 22px; }
  .rank-scale { height: 28px; }
  .hero-note { font-size: 11px; margin: 8px 0 14px; }
  .focus-section { margin: 16px 0 22px; }
  .focus-section > h2 { font-size: 16px; }
  .focus-grid { grid-template-columns: 1fr; gap: 9px; }
  .focus-card, .strength-card { padding: 13px 15px; }
  .focus-card h3, .strength-card h3 { margin-block: 3px; font-size: 17px; }
  .focus-card p, .strength-card p { font-size: 12px; }
  .strength-card { display: grid; grid-template-columns: 1fr auto; gap: 0 9px; }
  .strength-card .focus-label, .strength-card h3, .strength-card p { grid-column: 1; }
  .strength-card a { grid-column: 2; grid-row: 2 / 4; align-self: center; margin: 0; font-size: 12px; }
  .analysis-layout { grid-template-columns: 1fr; gap: 17px; }
  .panel { padding: 19px 16px; }
  .baseball-field { gap: 8px 12px; padding: 20px 13px 18px; }
  .field-position { padding-block: 8px; }
  .field-position strong { font-size: 22px; }
  .age-matrix th { font-size: 11px; }
  .age-matrix th:first-child { width: 37px; }
  .age-matrix td { padding: 2px; }
  .age-cell { padding: 7px 4px; }
  .age-dots { gap: 4px; }
  .dot-legend { gap: 8px; font-size: 10px; }
  .candidate-grid { grid-template-columns: 1fr; }
  .position-groups { display: block; }
  .position-groups > .candidate-section { display: block; }
  .player-card { padding: 17px; }
  .player-card h4 { font-size: 19px; }
  .mini-stat { font-size: 14px; grid-template-columns: 30px 1fr; }
  .mini-stat b { font-size: 17px; }
  .stage-badge { font-size: 11px; }
  .position-summary { gap: 8px; font-size: 13px; }
  .position-detail .section-heading h2 { font-size: 20px; }
  .position-detail .section-heading > button { white-space: nowrap; font-size: 12px; }
  .age-strip { gap: 7px 14px; }
  .candidate-heading h3 { font-size: 17px; }
  .club-grid, .comparison-layout { grid-template-columns: 1fr; gap: 15px; }
  .dh-overview, .dh-impact-layout { grid-template-columns: 1fr; gap: 17px; }
  .dh-entry { padding: 13px 15px; }
  .dh-entry strong { font-size: 14px; }
  .dh-selector > select { min-width: 0; width: 100%; font-size: 13px; }
  .dh-count { align-items: center; }
  .dh-league-list { gap: 9px; }
  .dh-league-list li { padding: 11px 9px; }
  .dh-lineup { grid-template-columns: 1fr 1fr; }
  .dh-replacement-grid { grid-template-columns: 1fr; }
  .club-card { padding: 20px; }
  .club-card h2 { font-size: 20px; }
  .filters { gap: 12px; }
  .filters label { flex: 1 1 40%; min-width: 0; }
  .filters select { min-width: 0; width: 100%; font-size: 13px; }
  .filters label:first-child { flex-basis: 100%; }
  .bar-axis, .bar-row { grid-template-columns: 68px minmax(0, 1fr) 49px 44px; gap: 6px; }
  .bar-axis { font-size: 9px; }
  .bar-value { font-size: 11px; }
  .bar-rank { font-size: 12px; }
  dialog { padding: 22px 16px; }
  .dialog-heading h2 { font-size: 22px; }
  .dialog-heading button { padding: 8px; font-size: 12px; }
}
@media (prefers-reduced-motion: no-preference) {
  a, button { transition: background-color .15s, box-shadow .15s; }
}
/* v03 dashboard and destination navigation */
[hidden] { display: none !important; }
.page-actions, .club-actions, .section-nav { display: flex; gap: 10px; flex-wrap: wrap; }
.page-actions { flex-shrink: 0; }
.section-nav { border-bottom: 1px solid var(--team-line); margin-bottom: 24px; padding-bottom: 12px; }
.section-nav a { padding: 10px 18px; border-radius: 7px; text-decoration: none; background: var(--white); font-weight: 600; }
.section-nav a[aria-current] { background: var(--team-primary); color: var(--team-on); }
.dashboard-hero { display: grid; grid-template-columns: 2.2fr 1fr; gap: 18px; align-items: stretch; }
.dashboard-hero .rank-grid { align-items: stretch; }
.dashboard-hero .rank-card { display: flex; flex-direction: column; justify-content: center; }
.dashboard-hero .rank-value { flex-wrap: wrap; margin-block: 15px; }
.dashboard-hero .rank-actual { width: 100%; margin-left: 0; }
.composite-components { margin: 0 0 14px; color: var(--ink); font-variant-numeric: tabular-nums; }
.composite-components > div { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding-block: 6px; border-top: 1px solid var(--line); font-size: 13px; }
.composite-components dd { margin: 0; text-align: right; }
.composite-components small { display: block; color: var(--muted); font-size: 10px; }
.dashboard-hero .rank-scale { margin-top: auto; }
.hero-radar { padding: 12px 18px; }
.hero-radar h2 { font-size: 14px; }
.hero-radar .radar-svg { max-width: 290px; margin: 0 auto; }
.dashboard-section { margin-block: 28px; }
.age-volume-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.age-volume-labels, .age-volume-row { display: grid; grid-template-columns: 70px 1fr 1fr; gap: 15px; align-items: center; }
.age-volume-labels { font-size: 11px; color: var(--muted); margin-top: 18px; }
.age-volume-labels small { display: block; font-size: 10px; }
.age-volume-row { margin-block: 13px; font-size: 12px; font-variant-numeric: tabular-nums; }
.age-volume-row > div { min-width: 0; }
.age-volume-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.volume-track { display: flex; overflow: hidden; height: 13px; background: #e9ebed; border-radius: 3px; }
.volume-track > span { flex: 0 0 auto; }
.volume-registered { background: var(--team-primary); }
.volume-development { background: repeating-linear-gradient(135deg, var(--team-primary) 0 2px, var(--white) 2px 5px); border: 1px solid var(--team-strong); }
.volume-usage { background: var(--team-strong); }
.volume-unknown, .volume-other { background: #ced1d7; }
.volume-main { background: var(--team-strong); }
.usage-list { margin: 20px 0 0; padding: 0; list-style: none; }
.usage-list li { display: grid; grid-template-columns: 135px 1fr 75px; align-items: center; gap: 12px; padding-block: 8px; border-bottom: 1px solid var(--line); }
.usage-list small { display: block; color: var(--muted); font-weight: 400; font-size: 10px; }
.usage-list b { text-align: right; font-size: 16px; }
.usage-list .player-button { font-size: 14px; }
.reserve-panel .section-heading { align-items: center; }
.reserve-panel .section-heading .note { margin-top: 8px; }
.reserve-unit { display: inline-flex; align-items: center; gap: 4px; color: var(--team-strong); font-size: 12px; flex-shrink: 0; }
.reserve-unit .baseball-icon { width: 20px; height: 26px; }
.reserve-table { table-layout: fixed; }
.reserve-table th, .reserve-table td { white-space: normal; padding: 14px 16px; }
.reserve-table thead th { background: transparent; font-size: 12px; font-weight: 500; }
.reserve-table thead th:first-child { width: 16%; }
.reserve-table tbody th { background: transparent; color: var(--ink); }
.reserve-table tbody th a { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 44px; color: inherit; font-size: 18px; text-decoration: none; }
.reserve-table tbody th a:hover { color: var(--team-strong); text-decoration: underline; }
.reserve-table tbody th small { display: block; font-size: 11px; color: var(--muted); font-weight: 400; }
.reserve-link-arrow { color: var(--team-strong); font-size: 16px; }
.reserve-count { display: flex; align-items: center; gap: 12px; }
.reserve-count strong { font-size: 22px; font-weight: 650; white-space: nowrap; }
.reserve-count strong small { display: inline; margin-left: 3px; font-size: 10px; font-weight: 400; }
.reserve-people { display: flex; flex-wrap: wrap; gap: 2px; }
.reserve-people:empty { display: none; }
.reserve-people .baseball-icon { width: 18px; height: 25px; }
.reserve-main .reserve-people { color: var(--team-strong); }
.reserve-experienced .reserve-people { color: var(--team-primary); }
.reserve-young .reserve-people .baseball-icon { fill: var(--white); stroke: var(--team-strong); stroke-width: 2; }
.reserve-other .reserve-people { color: #b1b8bf; }
.reserve-cell-label { display: none; }
.reserve-method { margin-top: 14px; font-size: 12px; color: var(--muted); }
.reserve-method > summary { padding-block: 10px; width: fit-content; min-height: 44px; }
.reserve-method dl { margin: 8px 0 14px; display: grid; gap: 10px; }
.reserve-method dl > div { display: grid; grid-template-columns: 125px 1fr; gap: 12px; }
.reserve-method dt { font-weight: 650; color: var(--ink); }
.reserve-method dd { margin: 0; }
.sort-control { display: grid; font-size: 12px; gap: 5px; min-width: 170px; }
.comparison-caption { display: flex; gap: 8px; align-items: center; font-size: 13px; }
.club-overview-link { display: block; text-decoration: none; }
.club-overview-link:hover h2 { text-decoration: underline; }
.club-card h2 { font-size: 18px; margin-bottom: 18px; }
.club-card .radar-svg { margin: 0 auto; max-width: 290px; }
.club-card .club-ranks strong { line-height: 1.25; }
.club-card .club-ranks strong small { padding-left: 5px; }
.club-facts { border-top: 1px solid var(--line); padding-top: 12px; font-size: 13px; }
.club-facts p { display: flex; gap: 12px; margin-block: 4px; }
.club-facts span { min-width: 42px; color: var(--muted); font-size: 11px; }
.club-actions { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 14px; }
.club-actions a { flex: 1; display: flex; justify-content: space-between; gap: 8px; font-size: 13px; font-weight: 650; text-decoration: none; }
.club-actions a + a { border-left: 1px solid var(--line); padding-left: 15px; }
.dh-intro > p { margin-top: 12px; }
.dh-scenario { margin-top: 22px; }
.dh-scenario .dh-impact-layout { margin-top: 0; grid-template-columns: minmax(220px, 1fr) 2.1fr; }
.dh-batting-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; border-top: 1px solid var(--team-line); margin-top: 20px; padding-top: 12px; }
.dh-batting-row > span, .dh-batting-row > p { grid-column: 1 / -1; font-size: 12px; }
.dh-batting-row b { font-size: 22px; font-variant-numeric: tabular-nums; }
.dh-batting-row small { display: block; font-size: 9px; color: var(--muted); font-weight: 400; }
.dh-replacements .candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.preparation-panel { max-width: 800px; padding: 48px; border-top: 5px solid var(--team-primary); }
.preparation-panel > p { max-width: 600px; margin-block: 20px 30px; line-height: 1.9; }
.preparation-panel > a { margin-right: 20px; margin-bottom: 12px; }
@media (max-width: 1100px) {
  .site-header { flex-wrap: wrap; gap: 14px 20px; }
  .dashboard-hero { grid-template-columns: 2fr 1fr; }
  .age-volume-labels, .age-volume-row { grid-template-columns: 55px 1fr 1fr; gap: 10px; }
  .usage-list li { grid-template-columns: 110px 1fr 65px; gap: 9px; }
}
@media (max-width: 768px) {
  .dashboard-hero { grid-template-columns: 1fr; gap: 12px; }
  .dashboard-hero .rank-value { margin-block: 5px; }
  .hero-radar { display: grid; grid-template-columns: 80px 1fr; align-items: center; }
  .hero-radar .radar-svg { max-width: 255px; width: 100%; }
  .hero-radar h2 { font-size: 13px; }
  .hero-radar > .note { grid-column: 1 / -1; }
  .hero-radar > .text-button { grid-column: 1 / -1; justify-self: start; }
  .age-volume-grid { grid-template-columns: 1fr; gap: 16px; }
  .dashboard-section { margin-block: 23px; }
  .age-volume-labels, .age-volume-row { grid-template-columns: 55px 1fr 1fr; gap: 12px; }
  .page-actions { width: 100%; margin-block: 6px 2px; }
  .page-actions a { flex: 1; }
  .section-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
  .section-nav a { padding: 9px 10px; text-align: center; font-size: 13px; }
  .club-card h2 { font-size: 20px; }
  .sort-control { width: 100%; margin-top: 10px; }
  .club-card .radar-svg { max-width: 285px; }
  .comparison-caption { font-size: 12px; }
  .dh-scenario .dh-impact-layout { grid-template-columns: 1fr; }
  .dh-replacements .candidate-grid { grid-template-columns: 1fr; }
  .dh-selector { margin-block: 15px; gap: 8px; }
  .preparation-panel { padding: 25px 20px; }
}
.radar-five .radar-label { font-size: 18px; }
.radar-five .radar-explanation { font-size: 13px; }

/* STEP4: Tigers reinforcement report and evidence-only pitching roles. */
.dh-tigers .dh-role-metrics > div { display: grid; grid-template-rows: subgrid; grid-row: span 2; }
.pitcher-roles { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.pitcher-role { display: inline-flex; gap: 5px; align-items: center; padding: 5px 7px; font-size: 11px; border: 1px solid #ccd3d4; border-radius: 6px; background: #f8f9fa; }
.role-symbol { display: grid; place-items: center; border-radius: 50%; width: 20px; height: 20px; font-weight: 750; background: #e7e9ed; color: #555c66; }
.role-starting .role-symbol { background: var(--team-primary); color: var(--team-on); }
.role-relief .role-symbol { background: #326977; color: white; }
.role-both .role-symbol { background: #655183; color: white; }
.role-history { margin-block: 16px; padding-block: 14px; border-block: 1px solid var(--line); }
.role-history > div { display: flex; gap: 20px; align-items: baseline; }
.role-history h4 { font-size: 13px; }
.role-evidence { display: flex; gap: 28px; margin-block: 20px; }
.role-evidence dd { margin: 0; font-size: 24px; font-weight: 700; }
@media (max-width: 768px) {
  .role-history > div { display: block; margin-top: 12px; }
  .role-history .pitcher-roles { margin-top: 6px; }
}

/* STEP4 v04: Tigers priority decisions; all layout stays in normal grid/flex flow. */
.baseball-icon { width: 24px; height: 24px; fill: currentColor; stroke: currentColor; stroke-width: 1.2; flex-shrink: 0; }
.baseball-icon .icon-detail { fill: none; stroke: var(--white); stroke-width: 1.4; }
.priority-report { display: grid; gap: 44px; }
.priority-intro > header { margin-bottom: 24px; }
.priority-intro h2 { font-size: clamp(23px, 2.4vw, 32px); letter-spacing: .025em; }
.priority-intro > header .note { margin-top: 10px; font-size: 12px; }
.priority-picks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: start; }
.priority-pick { padding: 22px 24px 10px; background: var(--team-pale); border: 1px solid var(--team-line); border-top: 5px solid var(--team-primary); border-radius: 14px; display: grid; grid-template-rows: repeat(5, auto); }
.priority-pick > header { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.priority-number { color: var(--team-strong); font-size: 20px; font-weight: 750; line-height: 1; font-variant-numeric: tabular-nums; }
.priority-meta { color: var(--muted); font-size: 11px; }
.priority-portrait { display: grid; justify-items: center; gap: 16px; margin-block: 18px; }
.player-illustration { width: 100%; max-width: 145px; color: var(--ink); }
.player-type-asset { display: grid; place-items: center; width: min(100%, 160px); aspect-ratio: 1; background: var(--team-pale); }
.player-type-asset > .player-illustration, .player-type-png { width: 100%; max-width: none; height: auto; object-fit: contain; }
.player-type-asset > .baseball-icon { width: 70%; height: auto; color: var(--ink); }
.priority-portrait h3 { text-align: center; text-wrap: balance; font-size: clamp(24px, 2.1vw, 28px); line-height: 1.45; }
.priority-portrait h3 > span { display: block; }
.priority-main-metric { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0; padding-block: 12px; border-top: 1px solid var(--team-line); }
.priority-main-metric dt { font-size: 12px; color: var(--muted); }
.priority-main-metric dd { margin: 0; font-size: 22px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.priority-art-slot { display: grid; place-items: center; inline-size: 144px; block-size: 144px; overflow: hidden; background: var(--team-pale); }
.priority-art-slot > .player-type-asset { inline-size: 100%; block-size: 100%; aspect-ratio: auto; }
.priority-art-slot svg, .priority-art-slot img { max-inline-size: 100%; max-block-size: 100%; object-fit: contain; }
.priority-card-summary { font-size: 13px; line-height: 1.8; min-block-size: 3.6em; margin: 0 0 18px; color: var(--muted); }
.priority-card-details { min-width: 0; }
.priority-card-toggle { width: 100%; border: 0; background: transparent; color: inherit; text-align: left; display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 44px; padding-block: 10px; font-size: 12px; font-weight: 650; list-style: none; }
.priority-card-toggle > span { font-size: 18px; font-weight: 400; color: var(--team-strong); }
.priority-card-toggle[aria-expanded="true"] > span { transform: rotate(45deg); }
.priority-card-detail-body { padding-top: 20px; border-top: 1px solid var(--team-line); }
.priority-card-skills { display: grid; gap: 14px; margin: 0 0 26px; }
.priority-card-skills dt { color: var(--muted); font-size: 11px; margin-bottom: 4px; }
.priority-card-skills dd { margin: 0; font-size: 13px; font-weight: 650; }
.priority-comparison-section { margin-bottom: 18px; }
.priority-comparison-heading { display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; justify-content: space-between; }
.priority-comparison-heading h4 { font-size: 13px; }
.priority-comparison-heading > span { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 10px; }
.priority-comparison-heading i { inline-size: 9px; block-size: 9px; background: var(--team-primary); border: 1px solid var(--team-strong); }
.priority-comparison-heading .comparison-other { background: #bcc4cb; border-color: #bcc4cb; margin-left: 5px; }
.priority-comparisons { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 20px; }
.priority-comparison { margin: 0; min-width: 0; }
.priority-comparison figcaption { font-size: 13px; font-weight: 650; }
.priority-comparison figcaption small { display: block; margin-top: 4px; font-size: 10px; font-weight: 400; color: var(--muted); }
.priority-comparison-value { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; flex-wrap: wrap; line-height: 1.5; margin-block: 10px; font-variant-numeric: tabular-nums; }
.priority-comparison-value b { font-size: 23px; color: var(--team-strong); }
.priority-comparison-value span { font-size: 11px; white-space: nowrap; text-align: right; }
.priority-comparison-value > span > small { display: block; color: var(--muted); font-size: 10px; }
.priority-comparison-bars { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; gap: 4px; height: 44px; border-bottom: 1px solid #9ca6ae; }
.priority-comparison-bars > span { background: #bcc4cb; border-radius: 2px 2px 0 0; }
.priority-comparison-bars > .is-tigers, .priority-comparison-bars > .is-own { background: var(--team-primary); outline: 1px solid var(--team-strong); }
.priority-comparison-scale { display: flex; justify-content: space-between; color: var(--muted); font-size: 10px; line-height: 1.5; margin-top: 6px; }
.priority-comparison-note { margin-top: 16px; font-size: 11px; line-height: 1.8; }
.priority-skill-reasons dd p { margin-top: 4px; }
.priority-comparison-detail { margin-block: 14px; }
.priority-comparison-detail > summary { font-size: 13px; font-weight: 700; }
.priority-comparison-detail table { width: 100%; table-layout: fixed; font-size: 12px; margin-top: 10px; }
.priority-comparison-detail th, .priority-comparison-detail td { white-space: normal; overflow-wrap: anywhere; }
.priority-comparison-detail th:first-child { width: 24%; }
.priority-comparison-detail caption { text-align: left; font-size: 11px; color: var(--muted); }
.priority-comparison-detail td small { display: block; color: var(--muted); }
.priority-comparison-detail .is-tigers, .priority-comparison-detail .is-own { background: var(--team-soft); }
.priority-open { border: 0; background: transparent; padding: 10px 0; min-height: 44px; align-items: center; display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; text-align: left; }
.priority-open:hover { text-decoration: underline; }
.priority-budget > header { display: flex; justify-content: space-between; gap: 24px; align-items: baseline; margin-bottom: 24px; }
.priority-budget h2, .priority-risk-map h2, .priority-reasons h2 { font-size: 21px; }
.priority-budget-assumption { max-width: 440px; font-size: 12px; color: var(--muted); }
.priority-budget-assumption > summary { padding-block: 10px; }
.priority-budget-assumption p { margin-top: 8px; }
.priority-decisions { display: grid; grid-template-columns: 1fr 1.3fr; gap: 18px; align-items: start; }
.priority-decision { border-top: 4px solid var(--team-primary); background: var(--team-pale); border-radius: 6px; padding: 14px; }
.priority-decision h3 { display: flex; gap: 7px; align-items: center; font-size: 15px; }
.priority-decision h3 > span { font-size: 12px; }
.decision-next { border-color: #8a9a88; background: #f3f6f1; }
.decision-defer { border-color: #bfc5c8; background: #f5f6f7; }
.priority-decision button { display: flex; width: 100%; align-items: baseline; gap: 7px; padding: 12px 0; border: 0; border-bottom: 1px solid #c9cfc980; background: transparent; text-align: left; font-size: 13px; font-weight: 650; }
.priority-decision button:last-child { border: 0; padding-bottom: 0; }
.priority-decision button > span:last-child { margin-left: auto; }
.priority-decision small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; margin-top: 3px; }
.priority-budget > .note { margin-top: 14px; }
.priority-risk-map > header { display: flex; gap: 20px; align-items: baseline; justify-content: space-between; margin-bottom: 18px; }
.priority-risk-header, .priority-risk-row { display: grid; grid-template-columns: .6fr repeat(3, 1fr); gap: 14px; align-items: center; padding: 9px 0; }
.priority-risk-header { color: var(--muted); font-size: 12px; }
.priority-risk-row { border-top: 1px solid var(--line); text-decoration: none; }
.priority-risk-row > b { font-size: 14px; }
.priority-risk-row > span { display: flex; align-items: center; gap: 8px; border-radius: 5px; padding: 6px 10px; font-size: 12px; }
.priority-risk-row i { font-style: normal; font-weight: 750; font-size: 15px; }
.risk-strong { color: #21614e; background: #edf5ee; }
.risk-attention { color: #845013; background: #fff1d9; }
.risk-internal { color: #476473; background: #f0f5f7; }
.risk-unknown { color: #666d76; background: #f3f4f5; }
.priority-risk-map > .note { margin-top: 12px; }
.priority-generation h3 { display: flex; align-items: center; gap: 8px; font-size: 21px; }
.priority-generation > header { margin-bottom: 18px; }
.generation-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.generation-group { min-width: 0; }
.generation-group h4 { display: flex; align-items: baseline; gap: 10px; font-size: 17px; padding-bottom: 10px; }
.generation-group h4 b { font-size: 13px; color: var(--muted); font-weight: 500; }
.generation-band { display: grid; grid-template-columns: 64px minmax(0, 1fr) 100px; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.generation-band > span { font-size: 12px; color: var(--muted); }
.generation-people { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; }
.generation-person { border: 0; background: transparent; padding: 0; display: inline-flex; color: var(--team-strong); border-radius: 3px; }
.generation-person .baseball-icon { width: 21px; height: 28px; stroke-width: 1; }
.generation-person.is-development .baseball-icon { fill: var(--white); stroke-width: 2.5; }
.generation-person:hover { background: var(--team-soft); }
.generation-empty { color: var(--muted); font-size: 12px; min-height: 28px; display: flex; align-items: center; }
.generation-volume small { display: block; text-align: right; font-size: 10px; margin-top: 3px; }
.priority-generation > .note { margin-top: 14px; }
.priority-reason { background: var(--white); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; scroll-margin-top: 18px; }
.priority-reason > summary { display: flex; align-items: center; gap: 16px; padding: 16px 20px; font-size: 15px; font-weight: 650; }
.priority-reason > summary::marker { content: ''; }
.priority-reason > summary > span:last-child { margin-left: auto; font-size: 11px; color: var(--team-strong); white-space: nowrap; }
.priority-reason-rank { color: var(--team-strong); font-size: 25px; font-variant-numeric: tabular-nums; }
.priority-reason > summary small { display: block; color: var(--muted); font-size: 11px; font-weight: 400; }
.priority-reason[open] > summary { background: var(--team-pale); border-bottom: 1px solid var(--line); }
.priority-reason-body { padding: 24px; }
.priority-rationale { font-size: 14px; line-height: 1.9; margin-bottom: 24px; max-width: 72ch; }
.priority-profile { display: grid; gap: 8px; margin: 0 0 20px; font-size: 12px; }
.priority-profile > div { display: grid; grid-template-columns: 84px 1fr; gap: 14px; }
.priority-profile dt { color: var(--muted); }
.priority-profile dd { margin: 0; }
.priority-reason-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.priority-reason-columns h4 { font-size: 14px; margin-bottom: 7px; }
.priority-reason-columns p { font-size: 13px; line-height: 1.9; margin-bottom: 18px; }
.priority-usage h4 { display: flex; align-items: center; gap: 7px; }
.priority-usage-player { padding: 10px 0; border-bottom: 1px solid var(--line); }
.priority-usage-name { display: flex; gap: 10px; align-items: baseline; margin-bottom: 5px; }
.priority-usage-name .player-button { font-size: 13px; }
.priority-usage-name small { font-size: 10px; color: var(--muted); }
.priority-usage-row { display: grid; grid-template-columns: 25px minmax(0, 1fr) 83px; gap: 3px 10px; font-size: 11px; align-items: center; margin-top: 5px; }
.priority-usage-row > b { text-align: right; font-size: 11px; }
.priority-usage-row > small { grid-column: 2 / 4; font-size: 10px; color: var(--muted); }
.priority-usage-track { display: flex; height: 8px; background: #e8ebed; border-radius: 3px; overflow: hidden; }
.priority-usage-fill { display: block; background: var(--team-primary); border-radius: inherit; height: 100%; }
.priority-usage-fill.is-farm { background: #647f8a; }
.priority-evidence { margin-top: 16px; border-block: 1px solid var(--line); font-size: 12px; }
.priority-evidence summary { padding-block: 12px; font-weight: 600; }
.priority-evidence dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; }
.priority-evidence dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); }
.priority-evidence small { display: block; font-size: 10px; color: var(--muted); }
.priority-evidence dd { margin: 0; font-weight: 700; text-align: right; }
.priority-evidence pre { max-height: 300px; overflow: auto; font-size: 10px; }
.priority-evidence li { overflow-wrap: anywhere; }
.priority-unknown { font-size: 12px; color: var(--muted); margin-block: 15px; }
.priority-reasons { padding-top: 12px; border-top: 1px solid var(--line); }
.priority-background { border-block: 1px solid var(--line); }
.priority-background > summary { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-block: 24px; font-size: 19px; font-weight: 650; }
.priority-background > summary > span { color: var(--muted); font-size: 12px; font-weight: 400; }
.priority-background > summary > span::after { content: "＋"; margin-left: 12px; color: var(--team-strong); }
.priority-background[open] > summary > span::after { content: "−"; }
.priority-background-body { display: grid; gap: 24px; padding-bottom: 24px; }
.priority-method h2 { font-size: 19px; }
.priority-method summary { padding-block: 12px; font-weight: 600; font-size: 13px; }
.priority-method p { font-size: 12px; line-height: 1.9; margin-block: 10px; overflow-wrap: anywhere; }
.priority-method table { font-size: 12px; }
@media (min-width: 769px) and (max-width: 1100px) {
  .priority-main-metric { display: grid; grid-template-columns: 1fr; gap: 3px; }
  .priority-main-metric dd { justify-self: end; }
}
@media (max-width: 1100px) {
  .generation-band { grid-template-columns: 56px minmax(0, 1fr) 76px; }
}
@media (max-width: 768px) {
  .priority-report { gap: 32px; }
  .priority-picks { grid-template-columns: 1fr; gap: 12px; }
  .priority-pick { padding: 18px 18px 8px; }
  .priority-number { font-size: 18px; }
  .priority-meta { font-size: 10px; }
  .priority-portrait { grid-template-columns: 88px minmax(0, 1fr); gap: 16px; margin-block: 20px 16px; align-items: center; }
  .priority-art-slot { inline-size: 88px; block-size: 88px; }
  .priority-card-summary { margin-bottom: 16px; }
  .priority-portrait h3 { text-align: left; justify-self: start; font-size: clamp(21px, 6vw, 25px); }
  .priority-main-metric { padding-block: 9px; }
  .priority-main-metric dt { font-size: 11px; }
  .priority-main-metric dd { font-size: 20px; }
  .priority-comparison-value b { font-size: 21px; }
  .priority-budget > header { display: block; }
  .priority-decisions { grid-template-columns: 1fr; gap: 12px; }
  .priority-decision { padding: 12px; }
  .priority-risk-map > header { display: block; }
  .priority-risk-map header .note { font-size: 10px; margin-top: 5px; }
  .priority-risk-header, .priority-risk-row { grid-template-columns: 33px repeat(3, minmax(0, 1fr)); gap: 5px; }
  .priority-risk-header { font-size: 9px; }
  .priority-risk-row > b { font-size: 12px; }
  .priority-risk-row > span { flex-direction: column; align-items: flex-start; gap: 1px; font-size: 10px; padding: 5px; line-height: 1.5; }
  .priority-risk-row i { font-size: 13px; }
  .generation-groups, .priority-reason-columns { grid-template-columns: 1fr; gap: 20px; }
  .priority-generation h3, .priority-budget h2, .priority-risk-map h2 { font-size: 18px; }
  .generation-band { grid-template-columns: 51px minmax(0, 1fr) 77px; gap: 7px; }
  .generation-person .baseball-icon { width: 19px; height: 26px; }
  .priority-reason > summary { padding: 12px; gap: 9px; font-size: 13px; }
  .priority-reason > summary > span:last-child { font-size: 10px; }
  .priority-reason-rank { font-size: 22px; }
  .priority-reason-body { padding: 18px; }
  .priority-background > summary { font-size: 17px; }
  .priority-evidence dl { grid-template-columns: 1fr; }
  .priority-profile > div { grid-template-columns: 70px 1fr; gap: 9px; }
}

/* User-requested Tigers field drawing only; rankings, counts and other teams are unchanged. */
.field-stadium { grid-template-areas: ". outfield ." "short second-base second" "third pitcher first" "third-base . first-base" ". home-base ." ". catcher ."; gap: 9px 12px; padding: 22px 12px 16px; border-radius: 42% 42% 14px 14px; background: #b9ceaa url('../images/baseball-diamond.svg') center / 100% 100% no-repeat; border-color: #9fb995; }
.field-stadium .field-position { background: #fffffff2; border-color: #aebcab; }
.field-stadium .field-position.band-lower { background: #fff1e5f5; border-color: #d99c75; }
.field-stadium .field-position.band-upper { background: #f3f8eef5; }
.stadium-base { display: flex; align-items: center; justify-content: center; padding: 4px 0; }
.stadium-base i { display: block; width: 24px; aspect-ratio: 1; background: #fffefb; border: 2px solid #68705d; transform: rotate(45deg); box-shadow: 2px 2px 0 #58674c30; }
.stadium-second { grid-area: second-base; }
.stadium-third { grid-area: third-base; }
.stadium-first { grid-area: first-base; }
.stadium-home { grid-area: home-base; }
.stadium-home i { transform: none; clip-path: polygon(0 0,100% 0,100% 55%,50% 100%,0 55%); }
@media (max-width: 768px) {
  .field-stadium { gap: 7px; padding: 22px 7px 14px; }
  .field-stadium .field-position { padding: 6px 2px; }
  .field-stadium .field-band { font-size: 10px; }
  .field-stadium .field-hint { font-size: 9px; }
}

/* Position roster: individual people instead of 100% stacks. */
@media (max-width: 960px) {
  .reserve-table th, .reserve-table td { padding: 12px 8px; }
  .reserve-count { gap: 6px; }
  .reserve-people .baseball-icon { width: 16px; height: 23px; }
}
@media (max-width: 768px) {
  .reserve-panel .section-heading { align-items: flex-start; gap: 12px; }
  .reserve-unit { font-size: 10px; }
  .reserve-table, .reserve-table tbody { display: block; }
  .reserve-table thead { display: none; }
  .reserve-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; padding-block: 16px; border-top: 1px solid var(--line); }
  .reserve-table th, .reserve-table td { display: block; border: 0; padding: 0; }
  .reserve-table tbody th { grid-column: 1 / -1; }
  .reserve-table tbody th a { font-size: 19px; }
  .reserve-table tbody th a > span:first-child { display: flex; align-items: baseline; gap: 10px; }
  .reserve-cell-label { display: block; color: var(--muted); font-size: 12px; margin-bottom: 4px; }
  .reserve-count { gap: 9px; min-height: 30px; }
  .reserve-count strong { font-size: 20px; }
  .reserve-people .baseball-icon { width: 17px; height: 24px; }
  .reserve-method { border-top: 1px solid var(--line); margin-top: 0; padding-top: 4px; }
  .reserve-method dl > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Shared browsing flow: choose a club, a position, then a player. */
.view-method { color: var(--muted); font-size: 12px; margin-top: 14px; }
.view-method > summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style: none; border-top: 1px solid var(--line); }
.view-method > summary::-webkit-details-marker, .view-disclosure > summary::-webkit-details-marker { display: none; }
.view-method > summary::after, .view-disclosure > summary::after { content: '＋'; flex-shrink: 0; }
.view-method[open] > summary::after, .view-disclosure[open] > summary::after { content: '−'; }
.view-method > p { margin-block: 10px; max-width: 75ch; }
.view-disclosure { background: var(--white); border: 1px solid var(--line); border-radius: 14px; margin-block: 28px; padding: 6px 22px; }
.view-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; min-height: 58px; }
.view-disclosure > .panel { border: 0; padding-inline: 0; }
.view-disclosure > .analysis-layout { margin-block: 8px 20px; }
.comparison-caption { align-items: baseline; justify-content: space-between; margin-bottom: 26px; gap: 18px; }
.comparison-caption > .view-method { margin-top: 0; max-width: 650px; }
.comparison-caption > .view-method > summary { border: 0; min-width: 105px; }
.club-grid { gap: 24px; }
.club-card { padding: 20px; background: var(--white); }
.club-overview-link { border-radius: 6px; }
.club-card:focus-within { box-shadow: 0 0 0 2px var(--team-line); }
.club-card header { min-height: 84px; }
.club-card h2 { margin: 5px 0 10px; font-size: 18px; }
.club-card h2 > span { display: inline-block; color: var(--team-strong); font-size: 15px; }
.club-visual { display: grid; grid-template-columns: minmax(0, 1fr) 78px; align-items: center; gap: 10px; margin-block: 4px 22px; }
.club-visual .radar-svg { width: 100%; max-width: none; }
.club-visual .club-ranks { grid-template-columns: 1fr; gap: 22px; }
.club-visual .club-ranks > div { padding-left: 10px; }
.club-visual .club-ranks strong { font-size: 31px; }
.club-visual .club-ranks strong small { display: block; padding: 0; font-size: 10px; }
.club-facts { padding-block: 12px 0; font-size: 12px; }
.club-facts p { gap: 8px; }
.club-actions { margin-top: 12px; padding-top: 8px; }
.club-actions a { min-height: 44px; align-items: center; }
.club-actions a:hover { color: var(--team-strong); text-decoration: underline; }
.team-board { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.team-board .field-panel { padding: 24px; }
.field-panel .section-heading .note { margin-top: 5px; }
.team-board .baseball-field { gap: 8px; }
.team-board .field-position { min-height: 74px; }
.team-balance > .radar-svg { max-width: 350px; margin: 0 auto; }
.team-balance .radar-legend { justify-content: center; margin: 0 0 24px; }
.team-balance .rank-grid { align-items: start; gap: 20px; }
.team-balance .rank-card { border: 0; border-radius: 0; background: none; padding: 0; }
.team-balance .rank-card h2 { font-size: 14px; min-height: 0; }
.team-balance .rank-card .rank-value { margin-block: 8px; flex-wrap: nowrap; align-items: baseline; gap: 6px; }
.team-balance .rank-value > strong { font-size: 42px; }
.team-balance .rank-value > span { font-size: 11px; white-space: nowrap; }
.team-balance .rank-scale { height: 30px; }
.team-balance .rank-card .view-method { margin-top: 8px; }
.section-shortcuts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 26px 0 40px; }
.section-shortcuts button { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 54px; padding: 12px 18px; background: var(--team-soft); color: var(--team-strong); border: 1px solid var(--team-line); border-radius: 9px; font-weight: 600; }
.section-shortcuts button:hover { background: var(--white); }
.dashboard-section { margin-block: 40px; scroll-margin-top: 22px; }
.dashboard-section > .section-heading .note { margin-top: 5px; }
.generation-key { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 11px; color: var(--muted); }
.age-volume-row { width: 100%; border-bottom: 1px solid var(--line); background: transparent; border-radius: 7px; padding: 14px 0; margin: 0; text-align: left; min-height: 64px; }
.age-volume-row:not(:disabled):hover { background: var(--team-soft); }
.age-volume-row > span:first-child { color: var(--ink); font-weight: 600; }
.generation-count, .generation-count-volume { min-width: 0; }
.generation-count-dots { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; min-height: 13px; }
.generation-count-dots .player-dot { width: 9px; height: 9px; }
.player-dot.is-unknown { background: #a0a7ae; border-color: #737b84; }
.age-volume-row small { color: var(--ink); }
.generation-roster { list-style: none; padding: 0; margin: 22px 0; }
.generation-roster li { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.generation-roster small { display: block; color: var(--muted); font-size: 11px; font-weight: 400; }
.generation-roster b { text-align: right; font-size: 20px; }
.generation-roster .player-button { min-height: 44px; }
.usage-list li { padding-block: 13px; }
.usage-measure > small { margin-top: 4px; }
.position-picker { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.position-picker button { min-height: 48px; padding: 10px 4px; border: 1px solid var(--team-line); border-radius: 8px; background: var(--white); font-weight: 650; }
.position-picker button[aria-pressed="true"] { background: var(--team-primary); color: var(--team-on); border-color: var(--team-primary); }
.position-picker button:hover { outline: 2px solid var(--team-strong); outline-offset: 2px; }
.position-workspace { scroll-margin-top: 16px; }
.position-workspace .position-detail { margin-top: 20px; }
.position-workspace .candidate-section { margin-block: 22px 34px; }
.age-strip { gap: 8px; padding-block: 14px; }
.age-strip button { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex: 1 1 150px; padding: 10px 12px; min-height: 44px; background: var(--team-pale); border: 1px solid var(--line); border-radius: 7px; font-size: 12px; color: var(--muted); }
.age-strip button[aria-pressed="true"] { border-color: var(--team-strong); color: var(--team-strong); background: var(--team-soft); }
.age-strip button:disabled { opacity: .6; }
.age-strip button:not(:disabled):hover { border-color: var(--team-strong); }
.candidate-method { margin-top: 0; }
.player-card .player-button { min-height: 44px; }
.player-card .mini-stat { padding-block: 12px 4px; }
.metric-focus { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 0 22px; border-bottom: 1px solid var(--line); }
.metric-focus > span:first-child { color: var(--muted); font-size: 12px; }
.metric-focus strong { display: block; color: var(--team-strong); font-size: 36px; line-height: 1.3; }
.metric-direction { font-size: 12px; color: var(--muted); }
.metric-comparison .bar-svg { fill: #c7cdd4; }
.metric-comparison .bar-row.is-selected .bar-svg { fill: var(--team-primary); }
.metric-comparison .bar-row { padding-block: 10px; }
.section-nav a:hover { box-shadow: inset 0 0 0 1px var(--team-strong); }
@media (prefers-reduced-motion: no-preference) {
  .club-card { transition: box-shadow .15s ease, border-color .15s ease; }
  .club-card:hover { box-shadow: 0 7px 20px #242b340d; border-color: var(--team-line); border-top-color: var(--team-primary); }
}
@media (max-width: 1100px) {
  .team-board { gap: 18px; }
  .team-board .field-panel { padding: 18px; }
  .team-balance .rank-grid { gap: 10px; }
  .team-balance .rank-card h2 { font-size: 12px; }
  .team-balance .rank-value > strong { font-size: 35px; }
  .team-balance .rank-value > span { font-size: 10px; }
}
@media (max-width: 768px) {
  .comparison-caption { display: grid; gap: 0; margin-bottom: 16px; }
  .comparison-caption > .view-method > summary { justify-content: flex-start; }
  .club-grid { gap: 22px; }
  .club-card { padding: 18px; }
  .club-card header { min-height: 0; }
  .club-visual { grid-template-columns: minmax(0, 1fr) 76px; margin-block: 10px 14px; }
  .club-visual .club-ranks strong { font-size: 32px; }
  .club-card h2 { font-size: 19px; }
  .team-board { grid-template-columns: 1fr; gap: 20px; }
  .team-board .field-panel { padding: 18px 14px; }
  .team-board .field-position { min-height: 72px; }
  .team-balance > .radar-svg { max-width: 290px; }
  .team-balance .rank-card h2 { font-size: 13px; }
  .team-balance .rank-value > strong { font-size: 40px; }
  .team-balance .rank-value > span { font-size: 11px; }
  .section-shortcuts { gap: 6px; margin-block: 20px 32px; }
  .section-shortcuts button { gap: 5px; padding: 9px 8px; min-height: 48px; font-size: 11px; }
  .section-shortcuts button > span { display: none; }
  .dashboard-section { margin-block: 32px; }
  .dashboard-section > .section-heading { flex-wrap: wrap; }
  .age-volume-labels, .age-volume-row { grid-template-columns: 53px minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .age-volume-row { padding-block: 14px; }
  .generation-count-dots { gap: 4px; }
  .generation-count-dots .player-dot { width: 8px; height: 8px; }
  .view-disclosure { padding-inline: 14px; margin-block: 24px; }
  .view-disclosure > summary { font-size: 13px; }
  .view-disclosure .analysis-layout { grid-template-columns: 1fr; }
  .position-picker { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .position-picker button { font-size: 13px; }
  .section-nav { display: flex; gap: 6px; flex-wrap: wrap; }
  .section-nav a { flex: 1; padding: 11px 8px; font-size: 12px; white-space: nowrap; }
  .age-strip button { flex-basis: 130px; }
  .metric-focus strong { font-size: 32px; }
}
.club-visual .radar-label { font-size: 24px; }
.club-visual .radar-explanation { display: none; }
.priority-card-summary { color: var(--ink); line-height: 1.9; }
.priority-portrait h3 { font-size: clamp(22px, 1.8vw, 26px); }
.priority-role-plan { margin-block: 22px; padding: 20px; border-left: 3px solid var(--team-primary); background: var(--team-pale); }
.priority-role-plan > p { margin-top: 12px; }
.priority-role-records { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 22px; }
.priority-role-records > div { min-width: 0; }
.priority-role-records dt { font-size: 13px; }
.priority-role-records small { display: block; color: var(--muted); font-size: 11px; }
.priority-role-records dd { margin: 4px 0 0; font-size: 23px; font-weight: 700; }
@media (min-width: 769px) {
  .priority-picks { align-items: stretch; }
  .priority-pick { grid-template-rows: subgrid; grid-row: span 5; row-gap: 0; }
  .priority-portrait { grid-template-rows: 144px 1fr; align-items: center; }
  .priority-card-toggle { align-self: start; }
}
@media (max-width: 768px) {
  .priority-portrait h3 { font-size: 21px; text-wrap: pretty; }
  .priority-role-records { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .priority-role-plan { padding: 14px; }
}
@media (max-width: 768px) {
  .field-stadium .field-hint { display: none; }
}

/* UI/UX v02: selection previews and progressive disclosure. */
.team-field { display: grid; gap: 16px; min-width: 0; }
.field-position[aria-pressed="true"], .dh-map-entry[aria-pressed="true"] { outline: 3px solid var(--team-strong); outline-offset: 2px; background: var(--team-soft); }
.position-preview { padding: 22px; border-color: var(--team-line); background: var(--team-pale); }
.position-preview > header { display: flex; gap: 14px; align-items: baseline; margin-bottom: 18px; }
.position-preview h2 { font-size: 24px; }
.position-preview > header > span { color: var(--team-strong); font-size: 16px; font-weight: 650; }
.preview-groups { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 16px; }
.preview-groups > section + section { border-left: 1px solid var(--team-line); padding-left: 14px; }
.preview-groups h3 { font-size: 12px; color: var(--muted); font-weight: 500; }
.preview-count { margin-top: 6px; font-size: 26px; font-weight: 700; }
.preview-count small { margin-left: 4px; font-size: 12px; font-weight: 400; }
.preview-people { list-style: none; padding: 0; margin: 8px 0 0; }
.preview-people li { display: grid; gap: 1px; margin-bottom: 8px; }
.preview-people .player-button { justify-self: start; text-align: left; }
.preview-people small, .preview-groups > section > small { color: var(--muted); font-size: 11px; }
.position-preview > .text-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 14px; }
.priority-picks { align-items: stretch; }
.priority-pick.is-expanded { outline: 2px solid var(--team-strong); outline-offset: 2px; }
.priority-card-toggle[aria-expanded="true"] { color: var(--team-strong); }
.priority-detail-panel { grid-column: 1 / -1; min-width: 0; padding: 24px; border: 1px solid var(--team-line); border-radius: 14px; background: var(--team-pale); }
.priority-detail-panel[hidden], .priority-card-details[hidden] { display: none; }
.priority-card-details > h3 { font-size: 20px; margin-bottom: 18px; }
.priority-detail-panel .priority-card-skills { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.priority-detail-panel .priority-comparisons { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.priority-detail-panel .priority-card-detail-body { border-top: 0; padding-top: 0; }
.priority-detail-panel .priority-card-summary { min-block-size: 0; }
.priority-art-slot, .priority-art-slot > .player-type-asset { background: transparent; }
.priority-pick { grid-template-rows: repeat(4, auto); grid-row: auto; }
.priority-portrait { grid-template-columns: 1fr; grid-template-rows: 144px auto; }
.priority-card-detail-body > .priority-card-summary { margin-bottom: 20px; }
.priority-fold > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 44px; list-style: none; }
.priority-fold > summary::-webkit-details-marker { display: none; }
.priority-fold > summary::after { content: '＋'; color: var(--team-strong); font-size: 22px; }
.priority-fold[open] > summary::after { content: '−'; }
.priority-fold > summary h2 { margin: 0; font-size: 17px; }
.priority-fold[open] > summary { padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.priority-fold { padding-block: 14px; }
@media (max-width: 768px) {
  .position-preview { padding: 18px 14px; }
  .preview-groups { grid-template-columns: 1fr; gap: 10px; }
  .preview-groups > section { display: grid; grid-template-columns: 1fr 1.2fr; align-items: baseline; gap: 8px; }
  .preview-groups > section + section { border-left: 0; border-top: 1px solid var(--team-line); padding: 10px 0 0; }
  .preview-groups h3 { font-size: 12px; }
  .preview-count { margin: 0; font-size: 22px; }
  .preview-people { margin-top: 0; }
  .priority-portrait { grid-template-columns: 1fr; grid-template-rows: 104px auto; gap: 14px; }
  .priority-art-slot { inline-size: 104px; block-size: 104px; }
  .priority-detail-panel { padding: 20px 18px; }
  .priority-detail-panel .priority-comparisons { grid-template-columns: 1fr; gap: 24px; }
  .priority-portrait h3 { text-align: center; justify-self: center; }
}
.position-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: start; margin-top: 22px; }
.position-workspace .position-overview > .candidate-section { margin: 0; min-width: 0; }
.candidate-overview > .candidate-heading { margin-bottom: 14px; }
.candidate-overview h3 { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 18px; }
.candidate-overview .candidate-grid { grid-template-columns: 1fr; gap: 10px; }
.candidate-overview .player-card { padding: 12px 14px; border-top-width: 3px; }
.candidate-overview .player-card h4 { font-size: 17px; }
.candidate-overview .player-card header > span { font-size: 12px; }
.candidate-overview .player-card .player-button { min-height: 36px; }
.candidate-overview .player-badges { margin-block: 3px 8px; }
.candidate-overview .mini-stat { padding: 8px 0 3px; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; font-size: 12px; }
.candidate-overview .mini-stat b { font-size: 16px; }
.candidate-overview .mini-stat small, .candidate-overview .stage-badge { font-size: 10px; }
.candidate-overview .more-candidates { margin-top: 10px; }
.candidate-overview .view-method { margin-top: 12px; font-size: 12px; }
.candidate-overview .empty { padding: 18px 12px; font-size: 13px; background: var(--team-pale); border: 1px dashed var(--line); border-radius: 8px; }
.age-strip button { display: grid; grid-template-columns: 1fr auto; align-content: start; gap: 7px; }
.age-strip-dots { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.age-strip-dots .player-dot { width: 8px; height: 8px; }
.club-visual { grid-template-columns: minmax(0, 65fr) minmax(0, 35fr); gap: 8px; }
.club-card header > span { font-size: 11px; }
.club-card h2 { margin-top: 0; margin-bottom: 6px; }
.club-facts p { white-space: nowrap; }
@media (max-width: 768px) {
  .position-overview { grid-template-columns: 1fr; gap: 28px; }
  .candidate-overview h3 { font-size: 18px; }
  .age-strip { gap: 6px; }
  .age-strip button { flex-basis: 90px; padding: 10px 8px; font-size: 11px; }
  .club-visual { grid-template-columns: minmax(0, 65fr) minmax(0, 35fr); }
}

@media (min-width: 769px) {
  .priority-picks[data-priority-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Individual batting comparison; separate from the existing team ranking radar. */
.player-comparison { margin-block: 24px; padding-block: 22px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.player-comparison-heading { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.player-comparison-heading h3 { margin: 0; font-size: 20px; }
.player-comparison-heading p { font-size: 12px; color: var(--muted); margin: 6px 0 0; }
.player-comparison-volume { background: var(--team-soft); color: var(--team-strong); border-radius: 6px; padding: 6px 9px; font-size: 12px; white-space: nowrap; }
.player-comparison-body { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; margin-top: 18px; align-items: center; }
.player-comparison-figure { margin: 0; min-width: 0; }
.player-radar { display: block; width: 100%; max-width: 440px; margin-inline: auto; overflow: visible; }
.player-radar-grid, .player-radar-spoke { fill: none; stroke: #dfe5e8; }
.player-radar-average { fill: none; stroke: #687e8b; stroke-dasharray: 5 4; stroke-width: 2; }
.player-radar-area { fill: var(--team-primary); fill-opacity: .16; stroke: var(--team-primary); stroke-width: 2.5; }
.player-radar-segment { stroke: var(--team-primary); stroke-width: 2.5; }
.player-radar-dot { fill: var(--team-primary); stroke: white; stroke-width: 1.5; }
.player-radar-label { font-size: 15px; fill: var(--ink); font-weight: 700; }
.player-radar-score { font-size: 13px; fill: var(--team-strong); font-weight: 600; }
.player-radar-scale { font-size: 10px; fill: #667782; paint-order: stroke; stroke: white; stroke-width: 3; }
.player-comparison-figure figcaption { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; font-size: 12px; color: var(--team-strong); }
.player-comparison-figure figcaption span + span { color: #687e8b; }
.player-comparison-figure > .note { text-align: center; font-size: 11px; }
.player-comparison-highlights { display: grid; gap: 18px; min-width: 0; }
.player-comparison-highlights h4 { font-size: 14px; margin: 0 0 8px; }
.player-comparison-highlights h4 small { font-size: 11px; color: var(--muted); font-weight: 400; }
.player-comparison-ranking { margin: 0; padding: 0; list-style: none; }
.player-comparison-ranking li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.player-comparison-ranking li > div { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.player-comparison-ranking strong { font-size: 13px; }
.player-comparison-ranking div > span { font-size: 20px; font-weight: 700; color: var(--team-strong); font-variant-numeric: tabular-nums; }
.player-comparison-ranking small { font-size: 10px; font-weight: 400; color: var(--muted); }
.player-comparison-ranking p { font-size: 11px; margin: 3px 0 0; }
.player-comparison-ranking p span { color: var(--muted); }
.player-comparison-note { font-size: 12px; background: var(--team-soft); padding: 12px 14px; border-radius: 7px; margin: 18px 0 10px; line-height: 1.7; }
.player-comparison-defense { border-left: 3px solid var(--line); padding-left: 12px; margin: 16px 0; font-size: 12px; }
.player-comparison-defense strong { margin-right: 12px; }
.player-comparison-defense p { margin: 5px 0 0; color: var(--muted); line-height: 1.7; }
.player-comparison-method { margin-top: 16px; font-size: 12px; line-height: 1.7; }
.player-comparison-method summary { cursor: pointer; font-weight: 600; }
.player-comparison-method .table-wrap { margin-block: 12px; }
.player-comparison-method th, .player-comparison-method td { font-size: 12px; }
.player-comparison-self { background: var(--team-soft); }
.player-comparison-running { margin-top: 20px; padding: 16px; background: var(--team-soft); border-radius: 8px; }
.player-comparison-running h4 { margin: 0; font-size: 14px; }
.player-comparison-running h4 small { margin-left: 8px; font-weight: 400; color: var(--muted); }
.player-comparison-running dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.player-comparison-running dt { font-size: 12px; color: var(--muted); }
.player-comparison-running dd { margin: 4px 0 0; font-size: 24px; font-weight: 700; color: var(--team-strong); font-variant-numeric: tabular-nums; }
.player-comparison-running p { font-size: 12px; line-height: 1.7; margin: 8px 0 0; }
@media (max-width: 768px) {
  .player-comparison-heading { flex-wrap: wrap; }
  .player-comparison-heading h3 { font-size: 18px; }
  .player-comparison-body { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 14px; }
  .player-comparison-highlights { gap: 20px; }
  .player-comparison-ranking li { padding: 9px 0; }
  .player-comparison-figure figcaption { font-size: 11px; }
}

/* The reinforcement overview and draft board form one continuous flow. */
.draft-path { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 24px; font-size:13px; color:var(--muted); }
.draft-path a { padding:8px 12px; border-radius:6px; text-decoration:none; }
.draft-path a[aria-current] { color:var(--team-strong); background:var(--team-soft); font-weight:700; }
.draft-path a:hover { text-decoration:underline; }
.draft-type-link { display:block; margin-top:14px; padding:11px 14px; border-radius:7px; border:1px solid var(--team-line); background:var(--team-soft); color:var(--team-strong); font-size:13px; font-weight:650; text-align:center; text-decoration:none; }
.draft-type-link:hover { background:var(--team-primary); color:var(--team-on); }
