:root{
  --npbsd-bg:#f5f6f7;
  --npbsd-panel:#ffffff;
  --npbsd-text:#17202a;
  --npbsd-navy:#16324f;
  --npbsd-muted:#687583;
  --npbsd-line:#d9dee3;
  --npbsd-line-strong:#b9c2ca;
  --npbsd-accent:#16324f;
  --npbsd-red:#a63d40;
  --npbsd-soft:#f8f9fa;
  --npbsd-link-soft:#f3f6f9;
  --npbsd-link-hover:#e7eef5;
  --npbsd-link:#2f669c;
  --npbsd-max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.npbsd-public{margin:0;background:var(--npbsd-bg);color:var(--npbsd-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.65}
body.npbsd-public a{color:var(--npbsd-navy);text-decoration:none}
body.npbsd-public a:hover{text-decoration:none}
.npbsd-shell{width:min(calc(100% - 36px),var(--npbsd-max));margin:0 auto}
.npbsd-site-header{background:#fff;border-bottom:1px solid var(--npbsd-line)}
.npbsd-header-inner{min-height:64px;display:flex;align-items:center;gap:24px;justify-content:space-between}
.npbsd-brand{font-size:19px;font-weight:800;letter-spacing:.01em;color:var(--npbsd-navy)!important;text-decoration:none!important;white-space:nowrap}
.npbsd-header-search{display:flex;gap:7px;width:min(410px,50vw)}
.npbsd-header-search input,.npbsd-big-search input{width:100%;min-width:0;border:1px solid var(--npbsd-line-strong);border-radius:5px;background:#fff;padding:9px 11px;font:inherit;color:var(--npbsd-text)}
.npbsd-header-search button,.npbsd-big-search button{border:1px solid var(--npbsd-navy);border-radius:5px;background:var(--npbsd-navy);color:#fff;font:inherit;font-weight:750;padding:9px 16px;white-space:nowrap;cursor:pointer}
.npbsd-header-search input:focus,.npbsd-big-search input:focus{outline:2px solid rgba(22,50,79,.16);border-color:var(--npbsd-navy)}
.npbsd-main{padding-top:24px;padding-bottom:58px}
.npbsd-breadcrumb{font-size:13px;color:var(--npbsd-muted);display:flex;gap:8px;align-items:center;margin-bottom:20px}
.npbsd-breadcrumb a{color:var(--npbsd-muted)}
.npbsd-breadcrumb a:hover{color:var(--npbsd-navy);text-decoration:underline}

/* Modern yearbook player header */
.npbsd-player-head{background:#fff;border-top:4px solid var(--npbsd-navy);border-bottom:1px solid var(--npbsd-line);padding:22px 26px 0;margin-bottom:34px}
.npbsd-kicker{font-size:14px;color:var(--npbsd-navy);margin:0 0 3px;font-weight:750}
.npbsd-player-head h1,.npbsd-search-hero h1,.npbsd-ranking-hero h1{font-size:clamp(29px,4vw,42px);line-height:1.22;letter-spacing:-.025em;margin:0;font-weight:850;color:var(--npbsd-text)}
.npbsd-ranking-title-suffix{white-space:nowrap}
.npbsd-subline{color:var(--npbsd-muted);margin:8px 0 0;font-size:14px}
.npbsd-player-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:22px;border-top:1px solid var(--npbsd-line)}
.npbsd-primary-metric,.npbsd-secondary-metric{padding:18px 0 19px}
.npbsd-primary-metric{padding-right:24px}
.npbsd-secondary-metric{padding-left:24px;border-left:1px solid var(--npbsd-line)}
.npbsd-key-label{display:block;color:var(--npbsd-muted);font-size:13px;margin-bottom:3px}
.npbsd-primary-metric strong{display:block;font-family:inherit;font-size:34px;line-height:1.2;letter-spacing:-.02em;font-weight:400;color:var(--npbsd-text)}
.npbsd-secondary-metric strong{display:block;font-family:inherit;font-size:34px;line-height:1.2;letter-spacing:-.02em;font-weight:400;color:var(--npbsd-text)}
.npbsd-key-note{display:block;color:var(--npbsd-muted);font-size:12px;margin-top:4px}
.npbsd-career-note{margin-top:1px;font-size:11px}


.npbsd-section{margin-top:34px}
.npbsd-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--npbsd-navy)}
.npbsd-section-head h2,.npbsd-note-section h2{font-size:22px;line-height:1.35;margin:0;font-weight:850;letter-spacing:-.01em}
.npbsd-section-head p{margin:0;color:var(--npbsd-muted);font-size:13px}
.npbsd-desktop-table-wrap{background:#fff;border:1px solid var(--npbsd-line);border-radius:4px;overflow:visible}
.npbsd-table{width:100%;border-collapse:collapse;font-size:14px}
.npbsd-table th{color:var(--npbsd-muted);font-weight:700;text-align:left;padding:11px 14px;border-bottom:1px solid var(--npbsd-line-strong);white-space:nowrap;background:#fafbfb}
.npbsd-table td{padding:13px 14px;border-bottom:1px solid var(--npbsd-line);vertical-align:middle}
.npbsd-table tbody tr:last-child td{border-bottom:0}
.npbsd-table tbody tr:hover td{background:#fcfcfc}
.npbsd-money-cell{white-space:nowrap;font-size:15px}
.npbsd-source-details{position:relative}
.npbsd-source-details summary{cursor:pointer;color:var(--npbsd-navy);font-weight:750;list-style:none;white-space:nowrap}
.npbsd-source-details summary::-webkit-details-marker{display:none}
.npbsd-source-details summary:hover{text-decoration:underline}
.npbsd-source-popover{position:absolute;z-index:10;right:0;top:28px;min-width:220px;max-width:310px;background:#fff;border:1px solid var(--npbsd-line-strong);border-radius:4px;padding:10px 12px;box-shadow:0 8px 20px rgba(23,32,42,.08)}
.npbsd-source-popover p{margin:4px 0;font-size:13px}
.npbsd-mobile-history{display:none}
.npbsd-note-section{background:#fff;border:1px solid var(--npbsd-line);border-left:4px solid var(--npbsd-navy);border-radius:4px;padding:18px 20px}
.npbsd-note-section p{margin:7px 0 0;color:var(--npbsd-muted);font-size:14px}
.npbsd-footer{border-top:1px solid var(--npbsd-line);background:#fff;color:var(--npbsd-muted);font-size:13px}
.npbsd-footer .npbsd-shell{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px}

/* Search/index */
.npbsd-search-hero,.npbsd-ranking-hero{padding:24px 0 18px;max-width:760px}
.npbsd-search-hero>p:not(.npbsd-kicker),.npbsd-ranking-hero>p:not(.npbsd-kicker){color:var(--npbsd-muted);margin:8px 0 0}
.npbsd-big-search{display:flex;gap:7px;margin-top:18px}
.npbsd-big-search input{padding:12px 13px;font-size:16px}
.npbsd-big-search button{padding:12px 21px}
.npbsd-results-head{align-items:center}
.npbsd-player-list,.npbsd-ranking-list{background:#fff;border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden}
.npbsd-player-list-item{display:grid;grid-template-columns:minmax(0,1fr) 90px 150px 18px;gap:16px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--npbsd-line);color:var(--npbsd-text)!important;text-decoration:none!important}
.npbsd-player-list-item:last-child{border-bottom:0}
.npbsd-player-list-item:hover{background:#fafbfb}
.npbsd-player-list-name{font-weight:800;min-width:0}
.npbsd-player-list-name small{display:block;color:var(--npbsd-muted);font-size:12px;font-weight:500;margin-top:1px}
.npbsd-player-list-item strong{text-align:right;white-space:nowrap}
.npbsd-list-arrow{color:var(--npbsd-muted);font-size:24px;line-height:1;text-align:right}
.npbsd-pagination{display:flex;gap:6px;justify-content:center;margin-top:22px;flex-wrap:wrap}
.npbsd-pagination a,.npbsd-pagination span{min-width:38px;height:38px;padding:0 10px;border:1px solid var(--npbsd-line);background:#fff;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;color:var(--npbsd-text)}
.npbsd-pagination span[aria-current]{background:var(--npbsd-navy);border-color:var(--npbsd-navy);color:#fff;font-weight:700}
.npbsd-empty{background:#fff;border:1px solid var(--npbsd-line);border-radius:4px;padding:24px}

/* Ranking pages: same modern yearbook language as player pages. */
.npbsd-ranking-hero{max-width:none;background:#fff;border-top:4px solid var(--npbsd-navy);border-bottom:1px solid var(--npbsd-line);padding:22px 26px 0}
.npbsd-ranking-hero>p:not(.npbsd-kicker){max-width:760px}
.npbsd-ranking-hero>.npbsd-partial-year-note{display:inline-block;margin-top:12px!important;padding:7px 10px;border:1px solid #d6b25e;border-radius:3px;background:#fff8df;color:#5f4a18!important;font-size:13px;line-height:1.55}
.npbsd-ranking-summary{display:grid;grid-template-columns:repeat(2,minmax(0,220px));margin:20px -26px 0;border-top:1px solid var(--npbsd-line)}
.npbsd-ranking-summary>div{padding:12px 26px 13px;border-right:1px solid var(--npbsd-line);background:var(--npbsd-link-soft)}
.npbsd-ranking-summary>div:last-child{border-right:0}
.npbsd-ranking-summary span{display:block;color:var(--npbsd-muted);font-size:12px}
.npbsd-ranking-summary strong{display:block;color:var(--npbsd-navy);font-size:19px;line-height:1.35;margin-top:1px}
.npbsd-ranking-section{margin-top:30px}
.npbsd-ranking-table{background:#fff;border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden}
.npbsd-ranking-table-head,.npbsd-ranking-table-row{display:grid;align-items:center;gap:14px;padding:0 15px}
.npbsd-ranking-season-ranking .npbsd-ranking-table-head,.npbsd-ranking-season-ranking .npbsd-ranking-table-row,.npbsd-ranking-team-ranking .npbsd-ranking-table-head,.npbsd-ranking-team-ranking .npbsd-ranking-table-row{grid-template-columns:62px minmax(220px,240px) 165px 125px 78px 90px;gap:20px;justify-content:start}
.npbsd-ranking-position-ranking .npbsd-ranking-table-head,.npbsd-ranking-position-ranking .npbsd-ranking-table-row{grid-template-columns:62px minmax(220px,240px) 165px 125px 78px;gap:20px;justify-content:start}
.npbsd-ranking-head-money,.npbsd-ranking-money{text-align:right}
.npbsd-ranking-head-change,.npbsd-ranking-change,.npbsd-ranking-head-age,.npbsd-ranking-age,.npbsd-ranking-head-position,.npbsd-ranking-position{text-align:center}
.npbsd-ranking-table-head{min-height:43px;background:#fafbfb;color:var(--npbsd-muted);font-size:12px;font-weight:700;border-bottom:1px solid var(--npbsd-line-strong)}
.npbsd-ranking-table-row{min-height:62px;border-bottom:1px solid var(--npbsd-line);color:var(--npbsd-text)!important;text-decoration:none!important;cursor:pointer;transition:background .14s ease}
.npbsd-ranking-table-row:last-child{border-bottom:0}
.npbsd-ranking-table-row:hover,.npbsd-ranking-table-row:focus-visible{background:var(--npbsd-link-soft)}
.npbsd-ranking-top3{background:#fbfcfd}
.npbsd-ranking-pos{font-size:19px;font-weight:850;color:var(--npbsd-navy);white-space:nowrap}
.npbsd-ranking-top3 .npbsd-ranking-pos{font-size:21px}
.npbsd-ranking-player{font-weight:800;min-width:0}
.npbsd-ranking-player>.npbsd-player-detail-link-label,.npbsd-contract-player>.npbsd-player-detail-link-label{color:var(--npbsd-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-skip-ink:auto}
.npbsd-ranking-table-row:hover .npbsd-player-detail-link-label,.npbsd-ranking-table-row:focus-visible .npbsd-player-detail-link-label,.npbsd-contract-table-row:hover .npbsd-player-detail-link-label,.npbsd-contract-table-row:focus-visible .npbsd-player-detail-link-label{text-decoration-thickness:2px}

.npbsd-ranking-active-chip{display:inline-flex;align-items:center;margin-left:6px;padding:1px 5px;border:1px solid #9cc8ad;border-radius:999px;background:#eef8f1;color:#28613b;font-size:9px;font-weight:800;line-height:1.35;vertical-align:middle}
.npbsd-ranking-team-meta{display:inline-flex;align-items:center;margin-left:8px;vertical-align:middle}
.npbsd-ranking-mobile-meta{display:none;color:var(--npbsd-muted);font-size:11px;font-weight:500;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.npbsd-ranking-mobile-age{display:none;color:var(--npbsd-muted);font-size:11px;font-weight:500;line-height:1.35;white-space:nowrap}
.npbsd-ranking-context{color:var(--npbsd-muted);font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.npbsd-ranking-change{text-align:center;font-weight:750}
.npbsd-ranking-change--up{color:#17685b}
.npbsd-ranking-change--down{color:#9b3344}
.npbsd-ranking-change--flat,.npbsd-ranking-change--missing{color:var(--npbsd-muted)}
.npbsd-ranking-age{text-align:center}
.npbsd-ranking-money{text-align:right;font-weight:850;white-space:nowrap;font-size:15px}
.npbsd-ranking-peak,.npbsd-ranking-breakdown{text-align:right;color:var(--npbsd-text);font-size:14px;font-weight:700;white-space:nowrap}
.npbsd-ranking-peak small{color:var(--npbsd-muted);font-size:11px;font-weight:500}
.npbsd-ranking-note{margin-top:28px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}


/* Keep the title topic together so Japanese punctuation never hangs at the end of a mobile line. */
.npbsd-title-player,.npbsd-title-topic{display:inline}
.npbsd-title-topic{white-space:nowrap}

@media (min-width:768px) and (max-width:960px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-head,.npbsd-ranking-season-ranking .npbsd-ranking-table-row,.npbsd-ranking-team-ranking .npbsd-ranking-table-head,.npbsd-ranking-team-ranking .npbsd-ranking-table-row{grid-template-columns:52px minmax(180px,200px) 135px 95px 56px 68px;gap:12px;justify-content:start}
  .npbsd-ranking-position-ranking .npbsd-ranking-table-head,.npbsd-ranking-position-ranking .npbsd-ranking-table-row{grid-template-columns:52px minmax(180px,200px) 135px 95px 56px;gap:12px;justify-content:start}
}

@media (max-width:767px){
  .npbsd-shell{width:min(calc(100% - 24px),var(--npbsd-max))}
  .npbsd-header-inner{min-height:58px;gap:10px}
  .npbsd-brand{font-size:16px}
  .npbsd-header-search{width:min(60vw,300px);gap:5px}
  .npbsd-header-search input{padding:8px 9px;font-size:14px}
  .npbsd-header-search button{padding:8px 10px;font-size:14px}
  .npbsd-main{padding-top:17px;padding-bottom:42px}
  .npbsd-breadcrumb{margin-bottom:13px}
  .npbsd-player-head{padding:17px 16px 0;margin-bottom:28px;border-top-width:3px}
  .npbsd-player-head h1,.npbsd-search-hero h1,.npbsd-ranking-hero h1{font-size:28px}
  .npbsd-player-head h1 .npbsd-title-player{display:inline}
  .npbsd-player-head h1 .npbsd-title-topic{display:inline;white-space:nowrap}
  .npbsd-subline{margin-top:6px}
  .npbsd-player-metrics{grid-template-columns:1fr;margin-top:17px}
  .npbsd-primary-metric,.npbsd-secondary-metric{padding:14px 0}
  .npbsd-primary-metric{padding-right:0}
  .npbsd-secondary-metric{padding-left:0;border-left:0;border-top:1px solid var(--npbsd-line);display:flex;align-items:baseline;justify-content:space-between;gap:12px}
  .npbsd-primary-metric strong{font-size:36px}
  .npbsd-secondary-metric strong{font-size:20px;white-space:nowrap}
  .npbsd-secondary-metric .npbsd-key-note{display:block}
  .npbsd-secondary-metric .npbsd-career-note{font-size:10.5px}
  .npbsd-secondary-metric>div{width:100%;align-items:flex-start}
  .npbsd-section{margin-top:27px}
  .npbsd-section-head{display:block;margin-bottom:9px;padding-bottom:7px}
  .npbsd-section-head h2,.npbsd-note-section h2{font-size:20px}
  .npbsd-section-head p{margin-top:3px;font-size:12px}
  .npbsd-desktop-table-wrap{display:none}
  .npbsd-mobile-history{display:block;background:#fff;border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden}
  .npbsd-history-card{border-bottom:1px solid var(--npbsd-line)}
  .npbsd-history-card:last-child{border-bottom:0}
  .npbsd-history-card summary{display:grid;grid-template-columns:55px minmax(0,1fr) auto 14px;gap:8px;align-items:center;padding:13px 12px;cursor:pointer;list-style:none;background:var(--npbsd-link-soft);transition:background .14s ease}
  .npbsd-history-card summary::-webkit-details-marker{display:none}
  .npbsd-history-card summary:hover,.npbsd-history-card summary:focus-visible{background:var(--npbsd-link-hover)}
  .npbsd-history-card[open] summary{background:var(--npbsd-link-hover);border-bottom:1px solid var(--npbsd-line)}
  .npbsd-history-year{font-weight:850}
  .npbsd-history-team{min-width:0;color:var(--npbsd-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .npbsd-history-salary{font-size:15px;white-space:nowrap;text-align:right}
  .npbsd-history-arrow{color:var(--npbsd-link);font-size:20px;font-weight:800;line-height:1;text-align:right;transition:transform .14s ease}
  .npbsd-history-card[open] .npbsd-history-arrow{transform:rotate(90deg)}
  .npbsd-history-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--npbsd-line)}
  .npbsd-history-detail-grid>div{background:#fff;padding:10px 12px}
  .npbsd-history-detail-grid span{display:block;color:var(--npbsd-muted);font-size:11px;margin-bottom:1px}
  .npbsd-history-detail-grid b{font-size:14px}
  .npbsd-mobile-source{margin:0;padding:8px 13px 11px;border:0;background:#f4f8fb;color:var(--npbsd-muted);font-size:10px;line-height:1.5}
  .npbsd-mobile-source-label{font-weight:500}
  .npbsd-mobile-source a{color:var(--npbsd-link)!important;font-weight:700}
  .npbsd-note-section{padding:15px}
  .npbsd-search-hero,.npbsd-ranking-hero{padding:17px 0 12px}
  .npbsd-big-search{margin-top:14px}.npbsd-big-search input{padding:11px}.npbsd-big-search button{padding:11px 15px}
  .npbsd-player-list-item{grid-template-columns:minmax(0,1fr) auto 14px;gap:8px;padding:12px}
  .npbsd-player-list-item strong{font-size:14px}.npbsd-list-arrow{font-size:20px}
  .npbsd-ranking-hero{padding:17px 16px 0;border-top-width:3px}
  .npbsd-ranking-hero>.npbsd-partial-year-note{margin-top:10px!important;font-size:12px}
  .npbsd-ranking-summary{margin:16px -16px 0;grid-template-columns:1fr 1fr}
  .npbsd-ranking-summary>div{padding:10px 12px 11px}
  .npbsd-ranking-summary strong{font-size:17px}
  .npbsd-ranking-section{margin-top:27px}
  .npbsd-ranking-table-head{display:none}
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,.npbsd-ranking-team-ranking .npbsd-ranking-table-row,.npbsd-ranking-position-ranking .npbsd-ranking-table-row{grid-template-columns:47px minmax(0,1fr) max-content;gap:8px;min-height:66px;padding:10px 11px;background:var(--npbsd-link-soft)}
  @media (min-width:480px){.npbsd-ranking-season-ranking .npbsd-ranking-table-row,.npbsd-ranking-team-ranking .npbsd-ranking-table-row,.npbsd-ranking-position-ranking .npbsd-ranking-table-row{grid-template-columns:47px minmax(180px,210px) max-content;justify-content:start;column-gap:12px}}
  .npbsd-ranking-table-row:hover,.npbsd-ranking-table-row:focus-visible{background:var(--npbsd-link-hover)}
  .npbsd-ranking-table-row .npbsd-ranking-context{display:none}
  .npbsd-ranking-pos{font-size:17px}.npbsd-ranking-top3 .npbsd-ranking-pos{font-size:19px}
  .npbsd-ranking-player{font-size:14px;overflow:hidden}
  .npbsd-ranking-team-meta{display:flex;align-items:center;gap:6px;margin-left:0;margin-top:3px}
  .npbsd-ranking-mobile-meta{display:flex;align-items:center;gap:6px;margin-top:3px;overflow:visible;text-overflow:clip}
  .npbsd-ranking-team-meta .npbsd-ranking-mobile-age{display:inline}
  .npbsd-ranking-money{font-size:14px}
}

@media (max-width:380px){
  .npbsd-shell{width:calc(100% - 20px)}
  .npbsd-header-search{width:62vw}.npbsd-header-search input{min-width:0}
  .npbsd-header-search button{padding-left:8px;padding-right:8px}
  .npbsd-history-card summary{grid-template-columns:50px minmax(0,1fr) auto 13px;padding-left:10px;padding-right:10px}.npbsd-history-salary{font-size:14px}
}

/* v0.8 navigation / discovery */
.npbsd-global-nav{background:#fff;border-bottom:1px solid var(--npbsd-line)}
.npbsd-global-nav-inner{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));max-width:var(--npbsd-max);margin-left:auto;margin-right:auto}
.npbsd-global-nav a{position:relative;display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border-right:1px solid var(--npbsd-line);font-size:13px;font-weight:750;color:var(--npbsd-navy)!important;text-decoration:none!important;background:#fff}
.npbsd-global-nav a:first-child{border-left:1px solid var(--npbsd-line)}
.npbsd-global-nav a:hover,.npbsd-global-nav a:focus-visible,.npbsd-global-nav a[aria-current="page"]{background:var(--npbsd-link-soft)}
.npbsd-global-nav a[aria-current="page"]:after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:3px;background:var(--npbsd-navy)}
.npbsd-menu-toggle,.npbsd-menu-close,.npbsd-menu-backdrop{display:none}
.npbsd-nav-label--mobile,.npbsd-nav-arrow{display:none}
.npbsd-responsive-text--mobile{display:none}
.npbsd-team-label::after{content:none}

.npbsd-discovery-section{margin-top:26px}
.npbsd-discovery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--npbsd-line);background:#fff;border-radius:4px;overflow:hidden}
.npbsd-discovery-grid a{position:relative;display:block;min-height:104px;padding:16px 34px 15px 17px;border-right:1px solid var(--npbsd-line);color:var(--npbsd-text)!important;text-decoration:none!important;background:var(--npbsd-link-soft);transition:background .14s ease}
.npbsd-discovery-grid a:last-child{border-right:0}
.npbsd-discovery-grid a:hover,.npbsd-discovery-grid a:focus-visible{background:var(--npbsd-link-hover)}
.npbsd-discovery-grid span{display:block;color:var(--npbsd-muted);font-size:11px;margin-bottom:4px}
.npbsd-discovery-grid strong{display:block;color:var(--npbsd-navy);font-size:16px;line-height:1.45}
.npbsd-discovery-grid b{position:absolute;right:14px;top:16px;color:var(--npbsd-link);font-size:22px;line-height:1}

.npbsd-section-more{font-size:13px;font-weight:750;color:var(--npbsd-link)!important;white-space:nowrap}
.npbsd-quick-links{display:flex;gap:8px;flex-wrap:wrap}
.npbsd-quick-links a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 16px;border:1px solid var(--npbsd-line);border-radius:4px;background:#fff;font-weight:750;color:var(--npbsd-navy)!important}
.npbsd-quick-links a:hover,.npbsd-quick-links a:focus-visible{background:var(--npbsd-link-soft);border-color:var(--npbsd-line-strong)}
.npbsd-quick-team-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden;background:#fff}
.npbsd-quick-team-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-right:1px solid var(--npbsd-line);border-bottom:1px solid var(--npbsd-line);font-weight:750;color:var(--npbsd-text)!important}
.npbsd-quick-team-links a:nth-child(3n){border-right:0}
.npbsd-quick-team-links a:nth-last-child(-n+3){border-bottom:0}
.npbsd-quick-team-links a:hover,.npbsd-quick-team-links a:focus-visible{background:var(--npbsd-link-soft)}
.npbsd-quick-team-links small{color:var(--npbsd-muted);font-size:11px;font-weight:500;white-space:nowrap}
.npbsd-feature-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden;background:#fff}
.npbsd-feature-links a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:14px 16px;border-right:1px solid var(--npbsd-line);color:var(--npbsd-text)!important;text-decoration:none!important;background:#fff}
.npbsd-feature-links a:last-child{border-right:0}
.npbsd-feature-links a:hover,.npbsd-feature-links a:focus-visible{background:var(--npbsd-link-soft)}
.npbsd-feature-links strong{color:var(--npbsd-navy);font-size:16px;line-height:1.4}
.npbsd-feature-links b{color:var(--npbsd-link);font-size:21px;line-height:1}

.npbsd-directory-hero{padding-bottom:20px;margin-bottom:6px}
.npbsd-position-directory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden;background:#fff}
.npbsd-position-directory a{position:relative;display:block;min-height:86px;padding:14px 30px 12px 15px;border-right:1px solid var(--npbsd-line);border-bottom:1px solid var(--npbsd-line);color:var(--npbsd-text)!important;text-decoration:none!important}
.npbsd-position-directory a:nth-child(4n){border-right:0}
.npbsd-position-directory a:hover,.npbsd-position-directory a:focus-visible{background:var(--npbsd-link-soft)}
.npbsd-position-directory strong{display:block;color:var(--npbsd-navy);font-size:17px}.npbsd-position-directory span{display:block;color:var(--npbsd-muted);font-size:11px;margin-top:3px}.npbsd-position-directory b{position:absolute;right:11px;top:14px;color:var(--npbsd-link);font-size:18px}

.npbsd-related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden;background:#fff}
.npbsd-related-grid a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:12px 14px;border-right:1px solid var(--npbsd-line);border-bottom:1px solid var(--npbsd-line);color:var(--npbsd-text)!important;text-decoration:none!important;font-weight:750}
.npbsd-related-grid a:nth-child(2n){border-right:0}
@media (min-width:768px){.npbsd-related-grid a:nth-last-child(-n+2):nth-child(odd),.npbsd-related-grid a:last-child{border-bottom:0}}
.npbsd-related-grid a:hover,.npbsd-related-grid a:focus-visible{background:var(--npbsd-link-soft)}
.npbsd-related-grid b{color:var(--npbsd-link);font-size:21px}
.npbsd-inline-rank-link{font-weight:750;color:var(--npbsd-link)!important}
.npbsd-history-links{display:grid;grid-template-columns:1fr;border-top:1px solid var(--npbsd-line);background:#fff}
.npbsd-history-links a{padding:9px 12px;border-bottom:1px solid var(--npbsd-line);font-size:12px;font-weight:750;color:var(--npbsd-link)!important}
.npbsd-history-links a:last-child{border-bottom:0}
.npbsd-footer-inner nav{display:flex;gap:18px;flex-wrap:wrap}.npbsd-footer-inner nav a{color:var(--npbsd-muted)!important}.npbsd-footer-inner nav a:hover{color:var(--npbsd-navy)!important}

/* Career totals precede explanatory figures in the desktop reading order. */
.npbsd-ranking-career-ranking .npbsd-ranking-table-head,.npbsd-ranking-career-ranking .npbsd-ranking-table-row{grid-template-columns:62px minmax(190px,1.35fr) minmax(155px,.9fr) minmax(190px,1fr)}
.npbsd-ranking-combined-career-ranking .npbsd-ranking-table-head,.npbsd-ranking-combined-career-ranking .npbsd-ranking-table-row{grid-template-columns:62px minmax(175px,1.2fr) minmax(150px,.95fr) minmax(130px,.8fr) minmax(130px,.8fr)}

.npbsd-league-chip{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:1px 5px;border:1px solid var(--npbsd-line-strong);border-radius:999px;background:#fff;color:var(--npbsd-muted);font-size:9px;font-weight:800;line-height:1.35;vertical-align:middle}
.npbsd-league-chip--mlb{border-color:#b8cce0;background:#edf5fc;color:#174e7a}
.npbsd-history-year .npbsd-league-chip{display:flex;width:max-content;margin:2px 0 0}
.npbsd-section-meta{text-align:right}
.npbsd-mlb-profile-link{display:inline-flex;margin-top:4px;color:var(--npbsd-link)!important;font-size:12px;font-weight:750;line-height:1.4;text-decoration:none!important;white-space:nowrap}
.npbsd-mlb-profile-link:hover,.npbsd-mlb-profile-link:focus-visible{text-decoration:underline!important}

@media (max-width:767px){
  .npbsd-responsive-text--desktop{display:none}
  .npbsd-responsive-text--mobile{display:inline}
  .npbsd-team-label[data-short] .npbsd-team-label-full{display:none}
  .npbsd-team-label[data-short]::after{content:attr(data-short)}
  .npbsd-header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand menu" "search search";align-items:center;gap:9px 12px;min-height:0;padding-top:10px;padding-bottom:11px}
  .npbsd-brand{grid-area:brand}
  .npbsd-header-search{grid-area:search;width:100%;max-width:none;gap:6px}
  .npbsd-header-search input{padding:8px 10px;font-size:14px}
  .npbsd-header-search button{min-width:54px;padding:8px 11px;font-size:14px}
  body.npbsd-player-page .npbsd-header-inner{grid-template-areas:"brand menu";gap:0 12px;padding-bottom:10px}
  body.npbsd-player-page .npbsd-header-search{display:none}
  .npbsd-menu-toggle{grid-area:menu;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--npbsd-line-strong);border-radius:5px;background:#fff;color:var(--npbsd-navy);cursor:pointer}
  .npbsd-menu-toggle:hover,.npbsd-menu-toggle:focus-visible{background:var(--npbsd-link-soft);border-color:var(--npbsd-navy)}
  .npbsd-menu-toggle:focus-visible,.npbsd-menu-close:focus-visible{outline:2px solid rgba(22,50,79,.2);outline-offset:2px}
  .npbsd-menu-icon,.npbsd-menu-icon:before,.npbsd-menu-icon:after{display:block;width:19px;height:2px;border-radius:2px;background:currentColor}
  .npbsd-menu-icon{position:relative}
  .npbsd-menu-icon:before,.npbsd-menu-icon:after{content:"";position:absolute;left:0}
  .npbsd-menu-icon:before{top:-6px}.npbsd-menu-icon:after{top:6px}
  .npbsd-global-nav{position:fixed;z-index:1002;top:0;right:0;bottom:0;width:min(84vw,320px);height:100vh;height:100dvh;border:0;background:#fff;box-shadow:-12px 0 30px rgba(23,32,42,.18);transform:translateX(102%);visibility:hidden;pointer-events:none;transition:transform .2s ease,visibility 0s linear .2s}
  .npbsd-global-nav.is-open{transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform .2s ease}
  .npbsd-menu-close{position:absolute;z-index:1;top:10px;right:12px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--npbsd-navy);font-size:29px;font-weight:400;line-height:1;cursor:pointer}
  .npbsd-menu-close:hover,.npbsd-menu-close:focus-visible{background:var(--npbsd-link-soft)}
  .npbsd-global-nav .npbsd-shell{width:100%}
  .npbsd-global-nav-inner{display:block;max-width:none;height:100%;margin:0;padding:58px 16px 24px;overflow-y:auto}
  .npbsd-global-nav a{justify-content:space-between;gap:12px;min-height:50px;padding:10px 14px;border:0;border-bottom:1px solid var(--npbsd-line);background:#fff;font-size:14px}
  .npbsd-global-nav a:first-child{border-left:0}.npbsd-global-nav a:last-child{border-right:0}
  .npbsd-global-nav a[aria-current="page"]{background:var(--npbsd-link-soft)}
  .npbsd-global-nav a[aria-current="page"]:after{left:0;right:auto;top:12px;bottom:12px;width:3px;height:auto}
  .npbsd-nav-label--desktop{display:none}
  .npbsd-nav-label--mobile{display:inline;min-width:0}
  .npbsd-nav-arrow{display:block;flex:0 0 auto;margin-left:auto;color:var(--npbsd-link);font-size:20px;font-weight:800;line-height:1}
  .npbsd-menu-backdrop{position:fixed;z-index:1001;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:rgba(10,24,38,.42);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}
  body.npbsd-menu-open{overflow:hidden}
  body.npbsd-menu-open .npbsd-menu-backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s ease}
  .npbsd-discovery-grid{grid-template-columns:1fr 1fr}
  .npbsd-discovery-grid a{min-height:88px;padding:13px 28px 12px 13px;border-bottom:1px solid var(--npbsd-line)}
  .npbsd-discovery-grid a:nth-child(2n){border-right:0}.npbsd-discovery-grid a:nth-last-child(-n+2){border-bottom:1px solid var(--npbsd-line)}.npbsd-discovery-grid a:last-child{border-bottom:0}.npbsd-discovery-grid a:last-child:nth-child(odd){grid-column:1/-1;border-right:0}
  .npbsd-discovery-grid strong{font-size:14px}.npbsd-discovery-grid b{right:10px;top:13px;font-size:19px}
  .npbsd-quick-team-links{grid-template-columns:1fr 1fr}
  .npbsd-quick-team-links a:nth-child(3n){border-right:1px solid var(--npbsd-line)}
  .npbsd-quick-team-links a:nth-child(2n){border-right:0}
  .npbsd-quick-team-links a:nth-last-child(-n+3){border-bottom:1px solid var(--npbsd-line)}
  .npbsd-quick-team-links a:nth-last-child(-n+2){border-bottom:0}
  .npbsd-feature-links{grid-template-columns:1fr}
  .npbsd-feature-links a{min-height:54px;padding:12px 13px;border-right:0;border-bottom:1px solid var(--npbsd-line)}
  .npbsd-feature-links a:last-child{border-bottom:0}
  .npbsd-feature-links strong{font-size:14px}
  .npbsd-directory-hero{padding-bottom:16px}
  .npbsd-position-directory{grid-template-columns:1fr 1fr}.npbsd-position-directory a:nth-child(4n){border-right:1px solid var(--npbsd-line)}.npbsd-position-directory a:nth-child(2n){border-right:0}.npbsd-position-directory strong{font-size:15px}
  .npbsd-related-grid{grid-template-columns:1fr}.npbsd-related-grid a{border-right:0}.npbsd-related-grid a:nth-last-child(-n+2){border-bottom:1px solid var(--npbsd-line)}.npbsd-related-grid a:last-child{border-bottom:0}
  .npbsd-ranking-career-ranking .npbsd-ranking-table-row,.npbsd-ranking-combined-career-ranking .npbsd-ranking-table-row{grid-template-columns:47px minmax(0,1fr) auto;gap:8px;min-height:66px;padding:10px 11px;background:var(--npbsd-link-soft)}
  .npbsd-ranking-active-chip{display:inline-flex}
  .npbsd-ranking-peak,.npbsd-ranking-breakdown{display:none}
  .npbsd-footer-inner{display:block!important;padding:17px 0}.npbsd-footer-inner nav{margin-top:7px;gap:13px}
}

/* Preserve a compact two-line rhythm on the narrowest common phone widths.
   The protected title suffix remains a single unbroken unit. */
@media (max-width:360px){
  .npbsd-ranking-hero h1{font-size:26px}
}

@media (prefers-reduced-motion:reduce) and (max-width:767px){
  .npbsd-global-nav,.npbsd-menu-backdrop{transition:none}
}


/* v0.10.2 multi-contract display */
.npbsd-contract-inline{display:block;margin-top:3px;color:var(--npbsd-muted);font-size:11px;font-weight:500;white-space:normal;line-height:1.45}
.npbsd-contract-change{border-top:1px solid var(--npbsd-line);background:#fff;padding:12px}
.npbsd-contract-change-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.npbsd-contract-change-head span{color:var(--npbsd-navy);font-size:12px;font-weight:800}
.npbsd-contract-change-head b{font-size:12px;color:var(--npbsd-muted);font-weight:650}
.npbsd-contract-timeline{border-left:2px solid var(--npbsd-line-strong);margin-left:6px;padding-left:12px}
.npbsd-contract-period{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:6px 0}
.npbsd-contract-period>div strong{display:block;font-size:14px;color:var(--npbsd-text)}
.npbsd-contract-period>div span{display:block;color:var(--npbsd-muted);font-size:10.5px;margin-top:1px}
.npbsd-contract-period>b{font-size:14px;white-space:nowrap;color:var(--npbsd-text)}
.npbsd-contract-period>p{grid-column:1/-1;margin:2px 0 0;color:var(--npbsd-muted);font-size:11px}
.npbsd-contract-transition{display:flex;align-items:center;gap:7px;height:24px;color:var(--npbsd-link);margin-left:-17px}
.npbsd-contract-transition span{display:flex;align-items:center;justify-content:center;width:8px;background:#fff;font-size:16px;font-weight:800}
.npbsd-contract-transition small{color:var(--npbsd-muted);font-size:10.5px;background:#fff;padding-right:4px}
.npbsd-contract-ranking-note{margin:9px 0 0;padding-top:8px;border-top:1px dashed var(--npbsd-line);color:var(--npbsd-muted);font-size:10.5px}

/* v0.10.72: OB pages use two career-value ranking cards instead of current-team/position cards. */


/* v0.10.73: compact pagination for the 100-row career ranking pages. */
.npbsd-pagination .npbsd-page-gap{border-color:transparent;background:transparent;min-width:24px;padding:0 2px;color:var(--npbsd-muted)}
.npbsd-pagination .npbsd-page-nav{padding:0 13px}
@media (max-width:767px){
  .npbsd-pagination{gap:4px;margin-top:18px}
  .npbsd-pagination a,.npbsd-pagination span{min-width:34px;height:36px;padding:0 8px;font-size:13px}
  .npbsd-pagination .npbsd-page-nav{padding:0 10px}
}


/* v0.10.77: shared presentation for public site-information pages. */
.npbsd-static-main{max-width:var(--npbsd-max)}
.npbsd-static-hero{padding:14px 0 8px;margin-bottom:14px}
.npbsd-static-hero h1{margin:0;color:var(--npbsd-navy);font-size:34px;line-height:1.28;letter-spacing:-.02em}
.npbsd-static-section{margin-top:0}
.npbsd-static-card{max-width:var(--npbsd-max);background:#fff;border:1px solid var(--npbsd-line);border-radius:6px;padding:30px 34px;box-shadow:0 8px 24px rgba(23,43,77,.05)}
.npbsd-static-content{color:var(--npbsd-text);font-size:15px;line-height:1.9}
.npbsd-static-content>*:first-child{margin-top:0}
.npbsd-static-content>*:last-child{margin-bottom:0}
.npbsd-static-content h1{font-size:24px;line-height:1.4;color:var(--npbsd-navy);margin:0 0 18px}
.npbsd-static-content h2{font-size:20px;line-height:1.45;color:var(--npbsd-navy);margin:30px 0 12px;padding-left:11px;border-left:4px solid var(--npbsd-link)}
.npbsd-static-content h3{font-size:17px;line-height:1.5;color:var(--npbsd-navy);margin:24px 0 9px}
.npbsd-static-content p{margin:0 0 15px}
.npbsd-static-content ul,.npbsd-static-content ol{margin:0 0 18px;padding-left:1.5em}
.npbsd-static-content li+li{margin-top:5px}
body.npbsd-public .npbsd-static-content a{color:var(--npbsd-link)!important;text-decoration:underline;text-underline-offset:2px}
body.npbsd-public .npbsd-static-content a:hover{text-decoration:none}
.npbsd-static-content strong{color:var(--npbsd-text)}
.npbsd-static-content hr{border:0;border-top:1px solid var(--npbsd-line);margin:28px 0}
.npbsd-static-content iframe{display:block;width:100%!important;max-width:100%!important;border:0;margin:4px 0 0}
.npbsd-static-page-contact .npbsd-static-card{max-width:var(--npbsd-max);padding:20px 22px 24px}
.npbsd-static-page-contact .npbsd-static-content>iframe:first-child{margin-top:0}
.npbsd-footer-inner nav{justify-content:flex-end}

@media (max-width:767px){
  .npbsd-static-hero{padding:8px 0 4px;margin-bottom:10px}
  .npbsd-static-hero h1{font-size:26px;line-height:1.32}
  .npbsd-static-card,.npbsd-static-page-contact .npbsd-static-card{max-width:none;padding:20px 16px;border-radius:5px;box-shadow:none}
  .npbsd-static-content{font-size:14px;line-height:1.85}
  .npbsd-static-content h1{font-size:21px}
  .npbsd-static-content h2{font-size:18px;margin-top:25px}
  .npbsd-static-content h3{font-size:16px}
  .npbsd-static-content iframe{min-width:0}
  .npbsd-static-page-contact .npbsd-static-content iframe{height:1200px!important}
  .npbsd-footer-inner nav{justify-content:flex-start}
}

/* v0.10.89: two-block canonical multi-year contract summary on player pages. */

/* v0.10.96: equalize desktop current/career salary value sizes and restore full-width left alignment for the mobile career block. */
.npbsd-primary-metric,.npbsd-secondary-metric>div{display:flex;flex-direction:column;align-items:flex-start;height:100%}
.npbsd-metric-cta-row{margin-top:auto;padding-top:16px}
.npbsd-metric-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;width:max-content;max-width:100%;margin-top:0;padding:7px 13px;border:1px solid #c8d4df;border-radius:999px;background:#f7fafc;box-shadow:0 1px 2px rgba(22,50,79,.05);color:var(--npbsd-navy)!important;font-size:11.5px;font-weight:750;line-height:1.2;letter-spacing:.005em;text-decoration:none!important;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}
.npbsd-metric-cta .npbsd-cta-arrow{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;border-radius:50%;background:#e7eef5;color:var(--npbsd-link);font-size:15px;font-weight:800;line-height:1;transition:background .14s ease,color .14s ease,transform .14s ease}
.npbsd-metric-cta:hover,.npbsd-metric-cta:focus-visible{background:#eef4f8;border-color:#aebfce;box-shadow:0 2px 6px rgba(22,50,79,.09);transform:translateY(-1px)}
.npbsd-metric-cta:hover .npbsd-cta-arrow,.npbsd-metric-cta:focus-visible .npbsd-cta-arrow{background:var(--npbsd-navy);color:#fff;transform:translateX(1px)}
.npbsd-metric-cta:focus-visible{outline:2px solid rgba(22,50,79,.16);outline-offset:2px}

@media (max-width:700px){
  .npbsd-primary-metric,.npbsd-secondary-metric>div{height:auto}
  .npbsd-primary-metric strong,.npbsd-secondary-metric strong{font-family:inherit;font-size:34px;font-weight:400;line-height:1.2;letter-spacing:-.02em}
  .npbsd-secondary-metric strong{white-space:nowrap}
  .npbsd-metric-cta-row{margin-top:11px;padding-top:0}
  .npbsd-metric-cta{margin-top:0;min-height:32px;padding:6px 11px;font-size:11px}
  .npbsd-metric-cta .npbsd-cta-arrow{width:17px;height:17px;flex-basis:17px;font-size:14px}
}


/* v0.10.99: make the mobile multi-year contract a third metric card matching salary/career cards; desktop is unchanged. */
@media (max-width:700px){
  .npbsd-multiyear-mobile-value{display:block;font-family:inherit;font-size:34px;font-weight:400;line-height:1.2;letter-spacing:-.02em;color:var(--npbsd-text);white-space:nowrap}
  .npbsd-multiyear-mobile-period,.npbsd-multiyear-mobile-amount{display:block;color:var(--npbsd-muted);font-size:12px;line-height:1.45;margin-top:4px}
  .npbsd-multiyear-mobile-amount{color:var(--npbsd-muted)}
}


/* v0.10.101: reduce only the mobile hero metric type size to 27px; desktop layout remains unchanged. */
@media (max-width:700px){
  .npbsd-primary-metric strong,.npbsd-secondary-metric strong{font-family:inherit;font-size:27px;font-weight:400;line-height:1.18;letter-spacing:-.02em}
  .npbsd-metric-cta-row{margin-top:9px;padding-top:0}
  .npbsd-metric-cta{min-height:30px;padding:5px 10px;font-size:10.75px;gap:7px}
  .npbsd-metric-cta .npbsd-cta-arrow{width:16px;height:16px;flex-basis:16px;font-size:13px}
  .npbsd-multiyear-mobile-value{display:block;font-family:inherit;font-size:27px;font-weight:400;line-height:1.18;letter-spacing:-.02em;color:var(--npbsd-text);white-space:nowrap}
  .npbsd-multiyear-mobile-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:nowrap;margin-top:5px;color:var(--npbsd-muted);font-size:11.5px;line-height:1.4;white-space:nowrap}
}


/* v0.10.102: compact mobile hero — salary and career share a 2-column row; contract stays full-width below. Desktop is unchanged. */
.npbsd-cta-label--mobile{display:none}
@media (max-width:700px){
  .npbsd-player-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:17px 0 0}
  .npbsd-player-metrics .npbsd-primary-metric{padding:12px 12px 12px 0;border-right:1px solid var(--npbsd-line)}
  .npbsd-player-metrics .npbsd-secondary-metric{padding:12px 0 12px 12px;border-left:0;border-top:0;display:block;min-width:0}
  .npbsd-player-metrics .npbsd-secondary-metric>div{width:100%;height:100%;padding-left:0;margin-left:0;display:flex;flex-direction:column;align-items:flex-start}
  .npbsd-player-metrics .npbsd-primary-metric strong,.npbsd-player-metrics .npbsd-secondary-metric strong{font-size:clamp(22px,6vw,27px);white-space:nowrap}
  .npbsd-player-metrics .npbsd-key-label{font-size:10.5px}
  .npbsd-player-metrics .npbsd-key-note{font-size:10.5px}
  .npbsd-player-metrics .npbsd-metric-cta-row{margin-top:auto;padding-top:10px;width:100%}
  .npbsd-player-metrics .npbsd-metric-cta{min-height:29px;padding:5px 8px;gap:5px;font-size:10px;max-width:100%}
  .npbsd-player-metrics .npbsd-metric-cta .npbsd-cta-arrow{width:15px;height:15px;font-size:12px;flex:0 0 15px}
  .npbsd-cta-label--desktop{display:none}
  .npbsd-cta-label--mobile{display:inline}
}


/* v0.10.103: CTA label spans must remain text, not inherit the circular arrow styling. */
.npbsd-metric-cta .npbsd-cta-label{display:inline-block;width:auto;height:auto;min-width:0;border-radius:0;background:transparent;color:inherit;font:inherit;line-height:inherit;white-space:nowrap;flex:0 1 auto}
.npbsd-metric-cta .npbsd-cta-label--desktop{display:inline-block}
.npbsd-metric-cta .npbsd-cta-label--mobile{display:none}
@media (max-width:700px){
  .npbsd-metric-cta{white-space:nowrap;overflow:hidden}
  .npbsd-metric-cta .npbsd-cta-label--desktop{display:none}
  .npbsd-metric-cta .npbsd-cta-label--mobile{display:inline-block;overflow:hidden;text-overflow:ellipsis}
  .npbsd-multiyear-mobile-value{grid-area:value;font-size:clamp(22px,6vw,27px);line-height:1.18;white-space:nowrap;margin:0}
  .npbsd-multiyear-mobile-meta{grid-area:meta;display:flex;align-items:baseline;justify-content:flex-end;gap:6px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;text-align:right;margin:0;align-self:end;color:var(--npbsd-muted);font-size:11px;line-height:1.4}
}


/* v0.10.106: mobile metric-label parity + resilient right-side contract metadata wrapping. Desktop is unchanged. */
@media (max-width:700px){
  .npbsd-player-metrics .npbsd-key-label{font-size:13px;line-height:1.35}

  .npbsd-multiyear-mobile-meta{
    min-width:0;
    max-width:100%;
    display:flex;
    align-items:baseline;
    justify-content:flex-end;
    flex-wrap:wrap;
    column-gap:8px;
    row-gap:2px;
    overflow:visible;
    white-space:normal;
    text-align:right;
  }
  .npbsd-multiyear-mobile-period,
  .npbsd-multiyear-mobile-amount{white-space:nowrap}
  .npbsd-multiyear-mobile-amount{
    border-left:1px solid var(--npbsd-line-strong);
    padding-left:8px;
  }
}


/* v0.10.157: use the same compact lead size on every mobile directory,
   ranking, contract and FA page. */
@media (max-width:767px){
  .npbsd-search-hero>p:not(.npbsd-kicker),
  .npbsd-ranking-hero>p:not(.npbsd-kicker){margin-top:7px}
}

/* v0.10.109: public multi-year contract list / contract-total ranking. */

/* FA public surface (v0.10.131). Active players use the previously unused
   third hero column; contract details move to a compact strip below it. */
.npbsd-player-metrics--with-fa{grid-template-columns:repeat(3,minmax(0,1fr));margin:22px -26px 0}
.npbsd-player-metrics--with-fa .npbsd-primary-metric,.npbsd-player-metrics--with-fa .npbsd-secondary-metric,.npbsd-fa-metric{padding:22px 26px 23px}
.npbsd-player-metrics--with-fa .npbsd-secondary-metric{padding-right:26px}
.npbsd-fa-metric{min-width:0;border-left:1px solid var(--npbsd-line);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
.npbsd-fa-metric>div{display:flex;flex-direction:column;height:100%;min-width:0}
.npbsd-fa-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:10px}
.npbsd-fa-value{display:block;min-width:0;padding:0;color:var(--npbsd-text);line-height:1.3;white-space:nowrap}
.npbsd-fa-kind{display:block;width:auto;color:var(--npbsd-navy);font-size:12px;font-weight:700}
.npbsd-fa-text{display:block;margin-top:4px;color:var(--npbsd-text);font-size:18px;font-weight:500}
.npbsd-fa-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;color:var(--npbsd-muted);font-size:11px;line-height:1.4}
.npbsd-fa-meta span+span:before{content:"｜";margin-right:7px;color:var(--npbsd-line-strong)}
.npbsd-fa-metric .npbsd-metric-cta-row{margin-top:auto;padding-top:12px}
.npbsd-contract-strip{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:16px;margin:0 -26px;padding:12px 26px;border-top:1px solid var(--npbsd-line);background:#f8fafc}
.npbsd-contract-strip .npbsd-key-label{margin:0}
.npbsd-contract-strip .npbsd-multiyear-mobile-value{font-family:inherit;font-size:17px;font-weight:650;line-height:1.3}
.npbsd-contract-strip .npbsd-multiyear-mobile-meta{display:flex;gap:12px;margin:0;color:var(--npbsd-muted);font-size:11.5px}
.npbsd-contract-strip a{color:var(--npbsd-navy);font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}

.npbsd-fa-main{padding-bottom:70px}
.npbsd-fa-hero{padding-bottom:22px}
.npbsd-fa-hero small{display:block;margin-top:13px;color:var(--npbsd-muted)}
.npbsd-fa-breadcrumb-current--mobile{display:none}
.npbsd-fa-year-nav{margin-top:20px}
.npbsd-fa-year-nav>span{display:block;margin-bottom:7px;color:var(--npbsd-muted);font-size:12px;font-weight:700}
.npbsd-fa-year-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.npbsd-fa-year-links a{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--npbsd-line-strong);border-radius:6px;background:#fff;color:var(--npbsd-navy)!important;font-size:13px;font-weight:750;text-decoration:none!important}
.npbsd-fa-year-links a:hover,.npbsd-fa-year-links a:focus-visible{border-color:var(--npbsd-navy);background:var(--npbsd-link-soft);outline:0}
.npbsd-fa-year-section{scroll-margin-top:16px}
.npbsd-fa-table-wrap{overflow-x:auto;border:1px solid var(--npbsd-line);border-radius:10px;background:#fff}
.npbsd-fa-table{width:100%;min-width:920px;border-collapse:collapse;font-size:12px}
.npbsd-fa-table th{padding:10px;background:#f5f7fa;color:var(--npbsd-muted);font-size:10.5px;line-height:1.35;text-align:left;white-space:normal}
.npbsd-fa-player-table .npbsd-fa-col-domestic,.npbsd-fa-player-table .npbsd-fa-col-overseas,.npbsd-fa-player-table .npbsd-fa-col-contract{white-space:nowrap}
.npbsd-fa-th-break{display:none}
.npbsd-fa-table td{padding:12px 10px;border-top:1px solid var(--npbsd-line);vertical-align:middle;white-space:nowrap}
.npbsd-fa-table tr:target{background:#fff9df}
.npbsd-fa-toggle-head,.npbsd-fa-toggle-cell,.npbsd-fa-detail-row{display:none}
.npbsd-fa-player-line{display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:start;gap:10px;width:min(100%,160px);min-width:0}.npbsd-fa-player-line .npbsd-fa-player{min-width:0;overflow-wrap:anywhere}.npbsd-fa-player-line .npbsd-fa-rank{box-sizing:border-box;width:100%;text-align:center}.npbsd-fa-player{display:inline-block;color:var(--npbsd-link)!important;font-size:14px;font-weight:750;text-decoration:underline!important;text-decoration-thickness:1px!important;text-underline-offset:3px}.npbsd-fa-player:hover,.npbsd-fa-player:focus-visible{text-decoration-thickness:2px!important}.npbsd-fa-table td small{display:block;margin-top:3px;color:var(--npbsd-muted)}
.npbsd-fa-rank{display:inline-block;padding:3px 6px;border:1px solid #d5dce2;border-radius:999px;background:#f1f3f5;color:#45525f;font-size:11px;line-height:1.35}.npbsd-fa-rank--a{border-color:#e4c268;background:#fff3d8;color:#805400}.npbsd-fa-rank--b{border-color:#bfd3e4;background:#edf4fb;color:#245b84}.npbsd-fa-rank--c{border-color:#c7ddce;background:#edf6ef;color:#2f6a43}
.npbsd-fa-days-max{color:#a61b1b;font-weight:850}
.npbsd-fa-eligibility-emphasis{display:inline-block;color:#a61b1b;font-weight:850;letter-spacing:-.01em}
.npbsd-fa-note,.npbsd-fa-sources{color:var(--npbsd-muted);font-size:11.5px;line-height:1.7}
.npbsd-fa-subhead{margin:22px 0 10px;color:var(--npbsd-navy);font-size:16px}.npbsd-fa-empty{padding:20px;border:1px solid var(--npbsd-line);border-radius:10px;background:#fff;color:var(--npbsd-muted)}
.npbsd-fa-guide{max-width:860px;margin-left:auto;margin-right:auto;padding:28px;background:#fff;border:1px solid var(--npbsd-line);border-radius:12px}.npbsd-fa-guide h2{margin:30px 0 8px;color:var(--npbsd-navy);font-size:22px}.npbsd-fa-guide h2:first-child{margin-top:0}.npbsd-fa-guide p{font-size:14px;line-height:1.9}
.npbsd-fa-other-teams,.npbsd-fa-related{margin-top:31px}
.npbsd-fa-other-teams .npbsd-section-head,.npbsd-fa-related .npbsd-section-head{margin-bottom:9px}
.npbsd-fa-other-team-group+.npbsd-fa-other-team-group{margin-top:15px}
.npbsd-fa-other-team-group h3{margin:0 0 7px;color:var(--npbsd-muted);font-size:12px;font-weight:700}
.npbsd-fa-other-team-links{display:flex;justify-content:flex-start;gap:8px}
.npbsd-fa-other-team-links a{flex:0 0 calc((100% - 40px)/6);min-width:0}
.npbsd-fa-other-team-links a,.npbsd-fa-related-links a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:10px 12px;border:1px solid var(--npbsd-line);border-radius:6px;background:#fff;color:var(--npbsd-navy)!important;font-size:12px;font-weight:750;line-height:1.4;text-decoration:none!important}
.npbsd-fa-other-team-links a:hover,.npbsd-fa-other-team-links a:focus-visible,.npbsd-fa-related-links a:hover,.npbsd-fa-related-links a:focus-visible{border-color:var(--npbsd-navy);background:var(--npbsd-link-soft)}
.npbsd-fa-other-team-links span,.npbsd-fa-related-links span{flex:0 0 auto;color:var(--npbsd-link);font-size:18px;line-height:1}
.npbsd-fa-related-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.npbsd-fa-related-links--count-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.npbsd-fa-related-links--count-5{grid-template-columns:repeat(5,minmax(0,1fr))}

@media (max-width:760px){
  .npbsd-fa-hero{padding-bottom:17px}
  .npbsd-fa-breadcrumb{gap:5px;margin-bottom:10px;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden}
  .npbsd-fa-breadcrumb>a{flex:0 0 auto}
  .npbsd-fa-breadcrumb-current{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .npbsd-fa-breadcrumb-current--desktop{display:none}
  .npbsd-fa-breadcrumb-current--mobile{display:block;overflow:hidden;text-overflow:ellipsis}
  .npbsd-fa-year-nav{margin-top:16px}
  .npbsd-fa-year-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .npbsd-fa-year-links a{min-height:42px;font-size:12px}
  .npbsd-player-metrics--with-fa{grid-template-columns:repeat(2,minmax(0,1fr));margin:17px 0 0}
  .npbsd-player-metrics--with-fa .npbsd-primary-metric{padding:12px 12px 12px 0;border-right:1px solid var(--npbsd-line)}
  .npbsd-player-metrics--with-fa .npbsd-secondary-metric{padding:12px 0 12px 12px;border:0}
  .npbsd-fa-metric{grid-column:1/-1;padding:10px 0 11px;border-left:0;border-top:1px solid var(--npbsd-line)}
  .npbsd-fa-metric>div{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"label" "values" "meta" "cta";align-items:center;gap:0}
  .npbsd-fa-metric .npbsd-key-label{grid-area:label;margin:0}
  .npbsd-fa-values{grid-area:values;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 0}
  .npbsd-fa-value{display:block;padding:0}
  .npbsd-fa-kind{font-size:10.5px}
  .npbsd-fa-text{margin-top:2px;font-size:15px;line-height:1.35}
  .npbsd-fa-meta{grid-area:meta;margin:0;font-size:10.5px}
  .npbsd-fa-metric .npbsd-metric-cta-row{grid-area:cta;justify-self:end;margin:7px 0 0;padding:0}
  .npbsd-fa-metric .npbsd-fa-detail-cta{min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--npbsd-link)!important;font-size:10.5px;font-weight:700;gap:4px;overflow:visible}
  .npbsd-fa-metric .npbsd-fa-detail-cta:hover,.npbsd-fa-metric .npbsd-fa-detail-cta:focus-visible{background:transparent;border-color:transparent;box-shadow:none;transform:none;text-decoration:underline!important;text-underline-offset:3px}
  .npbsd-fa-metric .npbsd-fa-detail-cta .npbsd-cta-arrow{display:inline;color:inherit;width:auto;height:auto;flex:0 0 auto;border-radius:0;background:transparent;font-size:14px;line-height:1;transform:none}
  .npbsd-fa-metric .npbsd-fa-detail-cta:hover .npbsd-cta-arrow,.npbsd-fa-metric .npbsd-fa-detail-cta:focus-visible .npbsd-cta-arrow{background:transparent;color:inherit;transform:translateX(1px)}
  .npbsd-contract-strip{grid-template-columns:minmax(0,1fr);gap:4px;margin:0;padding:12px 0;background:transparent}
  .npbsd-contract-strip .npbsd-key-label{grid-column:auto;margin:0 0 2px}
  .npbsd-contract-strip .npbsd-multiyear-mobile-value{grid-area:auto;justify-self:start;font-size:17px;line-height:1.35;white-space:normal}
  .npbsd-contract-strip .npbsd-multiyear-mobile-meta{grid-area:auto;display:flex;justify-content:flex-start;gap:3px 10px;flex-wrap:wrap;margin:0;text-align:left;white-space:normal}
  .npbsd-contract-strip .npbsd-multiyear-mobile-period,.npbsd-contract-strip .npbsd-multiyear-mobile-amount{white-space:nowrap}
  .npbsd-contract-strip a{grid-column:auto;justify-self:start;margin-top:4px}
  .npbsd-fa-table-wrap{overflow:visible;border:0;background:transparent}.npbsd-fa-table:not(.npbsd-fa-player-table){display:block;min-width:0}.npbsd-fa-table:not(.npbsd-fa-player-table) thead{display:none}.npbsd-fa-table:not(.npbsd-fa-player-table) tbody,.npbsd-fa-table:not(.npbsd-fa-player-table) tr,.npbsd-fa-table:not(.npbsd-fa-player-table) td{display:block}.npbsd-fa-table:not(.npbsd-fa-player-table) tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;padding:15px;border:1px solid var(--npbsd-line);border-radius:10px;background:#fff}.npbsd-fa-table:not(.npbsd-fa-player-table) td{padding:0;border:0;white-space:normal}.npbsd-fa-table:not(.npbsd-fa-player-table) td:before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--npbsd-muted);font-size:9.5px}.npbsd-fa-table:not(.npbsd-fa-player-table) td[data-label="選手"]{grid-column:1/-1}
  .npbsd-fa-player-table{display:table;width:100%;min-width:0;table-layout:fixed;border:1px solid var(--npbsd-line);border-radius:8px;border-collapse:separate;border-spacing:0;overflow:hidden;background:#fff;font-size:11.5px}
  .npbsd-fa-player-table thead{display:table-header-group}
  .npbsd-fa-player-table tbody{display:table-row-group}
  .npbsd-fa-player-table .npbsd-fa-player-row{display:table-row;margin:0;padding:0;border:0;border-radius:0;background:#fff}
  .npbsd-fa-player-table .npbsd-fa-player-row:target{background:#fff9df}
  .npbsd-fa-player-table th{padding:7px 4px;font-size:9.5px;line-height:1.3;vertical-align:bottom}
  .npbsd-fa-player-table .npbsd-fa-col-domestic,.npbsd-fa-player-table .npbsd-fa-col-overseas,.npbsd-fa-player-table .npbsd-fa-col-contract{white-space:normal}
  .npbsd-fa-th-break{display:inline}
  .npbsd-fa-player-table td{display:table-cell;padding:9px 5px;border:0;border-top:1px solid var(--npbsd-line);vertical-align:middle;white-space:normal;line-height:1.45}
  .npbsd-fa-player-table .npbsd-fa-col-position,.npbsd-fa-player-table .npbsd-fa-col-salary,.npbsd-fa-player-table .npbsd-fa-col-days,.npbsd-fa-player-table .npbsd-fa-col-contract{display:none}
  .npbsd-fa-player-table .npbsd-fa-col-player{width:38%}
  .npbsd-fa-player-table .npbsd-fa-col-domestic{width:24%}
  .npbsd-fa-player-table .npbsd-fa-col-overseas{width:25%}
  .npbsd-fa-player-table .npbsd-fa-toggle-head,.npbsd-fa-player-table .npbsd-fa-toggle-cell{display:table-cell;width:13%;text-align:center}
  .npbsd-fa-player-table .npbsd-fa-player{font-size:12.5px;line-height:1.4}
  .npbsd-fa-player-table .npbsd-fa-player-line{grid-template-columns:minmax(0,1fr) 24px;gap:8px;width:min(100%,112px)}
  .npbsd-fa-player-table .npbsd-fa-player-line .npbsd-fa-rank{margin-top:1px;padding:2px 4px;font-size:10px;line-height:1.35}
  .npbsd-fa-player-table td small{margin-top:2px;font-size:9px}
  .npbsd-fa-detail-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--npbsd-line-strong);border-radius:5px;background:#fff;color:var(--npbsd-navy);font:inherit;font-size:17px;font-weight:700;line-height:1;cursor:pointer}
  .npbsd-fa-detail-toggle:hover,.npbsd-fa-detail-toggle:focus-visible{border-color:var(--npbsd-navy);background:var(--npbsd-link-soft);outline:0}
  .npbsd-fa-detail-toggle[aria-expanded="true"]{background:var(--npbsd-navy);color:#fff}
  .npbsd-fa-player-table .npbsd-fa-detail-row:not([hidden]){display:table-row}
  .npbsd-fa-player-table .npbsd-fa-detail-row>td{display:table-cell;padding:0;border-top:0;background:#f7f9fb}
  .npbsd-fa-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0;padding:11px 12px 13px;border-top:1px dashed var(--npbsd-line-strong)}
  .npbsd-fa-detail-grid div{min-width:0}
  .npbsd-fa-detail-grid dt{color:var(--npbsd-muted);font-size:9.5px;line-height:1.35}
  .npbsd-fa-detail-grid dd{margin:2px 0 0;color:var(--npbsd-text);font-size:11.5px;line-height:1.45}
  .npbsd-fa-other-team-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .npbsd-fa-related-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .npbsd-fa-related-links a:last-child:nth-child(odd){grid-column:1/-1}
  .npbsd-fa-guide{padding:20px 16px}.npbsd-fa-guide h2{font-size:19px}.npbsd-fa-guide p{font-size:13px}
}
@media (max-width:380px){
  .npbsd-fa-value{white-space:normal}
  .npbsd-fa-kind,.npbsd-fa-text{display:block;width:auto}
  .npbsd-fa-text{margin-top:1px;white-space:nowrap}
}
.npbsd-contract-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin:18px auto 0;border:1px solid var(--npbsd-line);border-radius:999px;overflow:hidden;background:#fff}
.npbsd-contract-tabs a{position:relative;display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 18px;color:var(--npbsd-navy)!important;font-size:13px;font-weight:750;text-decoration:none!important;border-right:1px solid var(--npbsd-line)}
.npbsd-contract-tabs a:last-child{border-right:0}
.npbsd-contract-tabs a:hover,.npbsd-contract-tabs a:focus-visible,.npbsd-contract-tabs a[aria-current="page"]{background:var(--npbsd-link-soft)}
.npbsd-contract-tabs a[aria-current="page"]:after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:3px;background:var(--npbsd-navy)}
.npbsd-contract-table{background:#fff;border:1px solid var(--npbsd-line);border-radius:4px;overflow:hidden}
.npbsd-contract-table-head,.npbsd-contract-table-row{display:grid;align-items:center;gap:12px;padding:0 14px}
.npbsd-contract-table--list .npbsd-contract-table-head,.npbsd-contract-table--list .npbsd-contract-table-row{grid-template-columns:minmax(145px,1.2fr) minmax(150px,1fr) minmax(120px,.85fr) minmax(145px,.95fr) minmax(125px,.85fr)}
.npbsd-contract-table--ranking .npbsd-contract-table-head,.npbsd-contract-table--ranking .npbsd-contract-table-row{grid-template-columns:62px minmax(145px,1.2fr) minmax(150px,1fr) minmax(120px,.85fr) minmax(145px,.95fr)}
.npbsd-contract-table-head{min-height:44px;background:#fafbfb;color:var(--npbsd-muted);font-size:12px;font-weight:700;border-bottom:1px solid var(--npbsd-line-strong)}
.npbsd-contract-table-row{min-height:68px;border-bottom:1px solid var(--npbsd-line);color:var(--npbsd-text)!important;text-decoration:none!important;cursor:pointer;transition:background .14s ease}
.npbsd-contract-table-row:last-child{border-bottom:0}
.npbsd-contract-table-row:hover,.npbsd-contract-table-row:focus-visible{background:var(--npbsd-link-soft)}
.npbsd-contract-top3{background:#fbfcfd}
.npbsd-contract-rank{font-size:18px;font-weight:850;color:var(--npbsd-navy)}
.npbsd-contract-player{font-weight:800;min-width:0}
.npbsd-contract-mobile-years,.npbsd-contract-mobile-status{display:none}
.npbsd-contract-context{font-size:13px;color:var(--npbsd-text);min-width:0}
.npbsd-contract-money,.npbsd-contract-salary{display:block;text-align:right;font-size:14px;line-height:1.35;color:var(--npbsd-text);white-space:nowrap}
.npbsd-contract-money-value{font:inherit;color:inherit;white-space:nowrap}

@media (max-width:767px){
  .npbsd-contract-tabs{max-width:none;margin:14px 0 0;border-radius:7px}
  .npbsd-contract-tabs a{min-height:40px;padding:7px 8px;font-size:11.5px}
  .npbsd-contract-tabs a[aria-current="page"]:after{left:16px;right:16px;height:2px}
  .npbsd-contract-table-head{display:none}
  .npbsd-contract-table--list .npbsd-contract-table-row{grid-template-columns:minmax(0,1fr) minmax(145px,auto);grid-template-areas:"player money";gap:2px 8px;min-height:76px;padding:10px 11px;background:var(--npbsd-link-soft)}
  .npbsd-contract-table--ranking .npbsd-contract-table-row{grid-template-columns:45px minmax(0,1fr) minmax(130px,auto);grid-template-areas:"rank player player" "rank . money";gap:3px 8px;min-height:76px;padding:10px 11px;background:var(--npbsd-link-soft)}
  .npbsd-contract-table-row:hover,.npbsd-contract-table-row:focus-visible{background:var(--npbsd-link-hover)}
  .npbsd-contract-player{grid-area:player;align-self:end;font-size:16px;line-height:1.3;overflow-wrap:normal;word-break:normal}
  .npbsd-contract-rank{grid-area:rank;font-size:16px;align-self:center}
  .npbsd-contract-context{display:none}
  .npbsd-contract-money{grid-area:money;align-self:center;font-size:13px;font-weight:750}
  .npbsd-contract-table--list .npbsd-contract-money{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;white-space:normal}
  .npbsd-contract-table--ranking .npbsd-contract-money{display:flex;justify-content:flex-end;align-items:baseline;flex-wrap:wrap;white-space:normal}
  .npbsd-contract-mobile-years{display:inline;white-space:nowrap}
  .npbsd-contract-mobile-status{display:block;margin-bottom:2px;color:var(--npbsd-muted);font-size:10.5px;font-weight:500;line-height:1.35;white-space:nowrap}
  .npbsd-contract-money-value{white-space:nowrap}
  .npbsd-contract-salary{display:none}
  .npbsd-contract-hero .npbsd-ranking-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v0.10.110 mobile hero copy; v0.10.202 contract-list hierarchy. */
@media (max-width:767px){
  .npbsd-contract-hero>p:not(.npbsd-kicker){margin-top:7px}
  .npbsd-contract-table--list .npbsd-contract-money{font-size:13px;color:var(--npbsd-text);font-weight:750}
}

/* v0.10.117: per-season multi-year markers and responsive contract history. */
.npbsd-season-contract-badge{display:block;width:max-content;max-width:100%;margin-top:5px;padding:2px 7px;border:1px solid #c8d8e8;border-radius:999px;background:var(--npbsd-link-soft);color:var(--npbsd-navy)!important;font-size:10.5px;font-weight:750;line-height:1.45;text-decoration:none!important;white-space:normal}
.npbsd-season-contract-badge:hover,.npbsd-season-contract-badge:focus-visible{background:var(--npbsd-link-hover);border-color:var(--npbsd-line-strong)}
.npbsd-player-contract-history{overflow:hidden;border:1px solid var(--npbsd-line);border-radius:4px;background:#fff}
.npbsd-player-contract-row{display:grid;grid-template-columns:minmax(210px,1.35fr) minmax(120px,.7fr) minmax(170px,.85fr);gap:16px;align-items:center;padding:15px 17px;border-bottom:1px solid var(--npbsd-line)}
.npbsd-player-contract-row:last-child{border-bottom:0}
.npbsd-player-contract-value>span{display:block;color:var(--npbsd-muted);font-size:11px;margin-bottom:2px}
.npbsd-player-contract-value>strong{display:block;color:var(--npbsd-text);font-size:15px;line-height:1.4}
.npbsd-player-contract-amount{text-align:right}
.npbsd-player-contract-note{grid-column:1/-1;margin:0;padding-top:10px;border-top:1px dashed var(--npbsd-line);color:var(--npbsd-muted);font-size:11.5px;line-height:1.65}
.npbsd-player-contract-sources{grid-column:1/-1;display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:-4px;color:var(--npbsd-muted);font-size:11.5px}
.npbsd-player-contract-sources>span{font-weight:750;color:var(--npbsd-text)}
.npbsd-player-contract-sources a{color:var(--npbsd-link)!important;font-weight:700}
.npbsd-player-contract-sources b{font-weight:500}

@media (max-width:767px){
  .npbsd-section-meta{text-align:left}
  .npbsd-mlb-profile-link{margin-top:5px;font-size:12px;white-space:normal}
  .npbsd-history-team{display:block;min-width:0;white-space:normal;overflow:visible}
  .npbsd-history-team-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .npbsd-history-contract-badge{display:block;width:max-content;max-width:100%;margin-top:3px;padding:1px 5px;border:1px solid #c8d8e8;border-radius:999px;background:#fff;color:var(--npbsd-navy);font-size:9.5px;font-weight:750;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .npbsd-player-contract-history{display:grid;gap:12px;overflow:visible;border:0;border-radius:0;background:transparent}
  .npbsd-player-contract-row{grid-template-columns:1fr 1fr;gap:12px 8px;padding:14px 12px 13px;border:1px solid var(--npbsd-line-strong);border-top:3px solid var(--npbsd-navy);border-radius:6px;background:#fff;box-shadow:0 3px 10px rgba(23,43,77,.07)}
  .npbsd-player-contract-row:last-child{border-bottom:1px solid var(--npbsd-line-strong)}
  .npbsd-player-contract-value>strong{font-size:14px}
  .npbsd-player-contract-amount{text-align:right}
  .npbsd-player-contract-note{padding-top:9px;font-size:11px}
  .npbsd-player-contract-sources{margin-top:-2px;gap:6px;font-size:11px}
}

/* v0.10.156: keep large MLB-converted hero amounts inside the two-column
   mobile metric cards. The amount stays on one line and scales with viewport. */
@media (max-width:700px){
  .npbsd-player-metrics .npbsd-primary-metric,.npbsd-player-metrics .npbsd-secondary-metric,.npbsd-player-metrics--with-fa .npbsd-primary-metric,.npbsd-player-metrics--with-fa .npbsd-secondary-metric{min-width:0}
  .npbsd-player-metrics .npbsd-primary-metric strong,.npbsd-player-metrics .npbsd-secondary-metric strong,.npbsd-player-metrics--with-fa .npbsd-primary-metric strong,.npbsd-player-metrics--with-fa .npbsd-secondary-metric strong{
    max-width:100%;
    font-size:clamp(16px,4.7vw,22px);
    letter-spacing:-.04em;
    white-space:nowrap;
  }
}
/* v0.10.191: final Version 10 cascade layer. Keep this block last. */
:root{
  --npbsd-bg:#edf3f7;
  --npbsd-panel:#fff;
  --npbsd-text:#102538;
  --npbsd-navy:#073a63;
  --npbsd-navy-deep:#062b49;
  --npbsd-muted:#687d8e;
  --npbsd-line:#d8e2e9;
  --npbsd-line-strong:#bdcbd5;
  --npbsd-accent:#0780c7;
  --npbsd-red:#d42d38;
  --npbsd-soft:#f3f8fb;
  --npbsd-link-soft:#f3f8fb;
  --npbsd-link-hover:#eaf3f8;
  --npbsd-link:#0780c7;
  --npbsd-shadow:0 12px 30px rgba(17,49,73,.07);
  --npbsd-max:1120px;
}
body.npbsd-public{background:var(--npbsd-bg);color:var(--npbsd-text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}
body.npbsd-public a{color:inherit}
.npbsd-shell{width:min(calc(100% - 40px),var(--npbsd-max))}
.npbsd-site-header{border-top:3px solid var(--npbsd-link);border-bottom:0;background:#fff}
.npbsd-header-inner{min-height:72px;justify-content:flex-start;gap:32px}
.npbsd-brand{display:inline-flex;align-items:center;gap:11px;color:var(--npbsd-navy)!important;font-size:21px;font-weight:900;letter-spacing:-.025em}
.npbsd-brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--npbsd-navy);box-shadow:inset 3px 0 0 var(--npbsd-red);color:#fff;font-size:11px;font-weight:900;letter-spacing:.04em}
.npbsd-header-search{order:2;margin-left:auto;width:min(440px,46vw);height:42px;gap:0;background:var(--npbsd-soft)}
.npbsd-header-search input,.npbsd-big-search input{border:0;border-radius:0;background:transparent;padding:0 15px}
.npbsd-header-search input:focus,.npbsd-big-search input:focus{outline:0;box-shadow:inset 0 0 0 2px var(--npbsd-link)}
.npbsd-header-search button,.npbsd-big-search button{border:0;border-radius:0;background:var(--npbsd-link);color:#fff;padding:0 21px}
.npbsd-header-search button:hover,.npbsd-big-search button:hover{background:#0569a4}
.npbsd-menu-toggle{order:3}
.npbsd-menu-panel-head,.npbsd-menu-search{display:none}
.npbsd-global-nav{border:0;background:var(--npbsd-navy);box-shadow:0 4px 14px rgba(2,31,53,.12)}
.npbsd-global-nav-inner{max-width:var(--npbsd-max)}
.npbsd-global-nav a,.npbsd-global-nav a:first-child{min-height:44px;border:0;background:transparent;color:#fff!important;font-size:13px;font-weight:760}
.npbsd-global-nav a:hover,.npbsd-global-nav a:focus-visible,.npbsd-global-nav a[aria-current="page"]{background:rgba(255,255,255,.09)}
.npbsd-global-nav a[aria-current="page"]:after{left:22px;right:22px;bottom:0;background:#75cafa}
.npbsd-main{padding-top:30px;padding-bottom:72px}
.npbsd-breadcrumb{margin-bottom:16px;color:var(--npbsd-muted);font-size:13px}
.npbsd-section{margin-top:36px}
.npbsd-section-head{align-items:center;margin-bottom:14px;padding:0;border:0}
.npbsd-section-head h2,.npbsd-note-section h2{position:relative;padding-left:15px;font-size:22px;line-height:1.35;letter-spacing:-.02em}
.npbsd-section-head h2:before,.npbsd-note-section h2:before{content:"";position:absolute;left:0;top:.18em;width:4px;height:1.05em;background:var(--npbsd-link)}
.npbsd-section-head p,.npbsd-section-head a{color:var(--npbsd-muted);font-size:13px}
.npbsd-section-head a{color:var(--npbsd-link);font-weight:800}
.npbsd-player-page #salary-history .npbsd-section-head{align-items:flex-start}

/* Home and search */
.npbsd-search-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);grid-template-rows:auto auto auto;align-items:center;column-gap:58px;max-width:none;padding:42px 44px;background:linear-gradient(115deg,var(--npbsd-navy-deep),var(--npbsd-navy));box-shadow:var(--npbsd-shadow);color:#fff}
.npbsd-search-hero>.npbsd-kicker{grid-column:1;grid-row:1;margin:0 0 5px;color:#7dcef7;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.npbsd-search-hero>h1{grid-column:1;grid-row:2;margin:0 0 9px;color:#fff;font-size:clamp(32px,4.2vw,48px);line-height:1.18;letter-spacing:-.035em}
.npbsd-search-hero>p:not(.npbsd-kicker){grid-column:1;grid-row:3;margin:0;color:#d3e3ed;font-size:15px}
.npbsd-big-search{grid-column:2;grid-row:1/4;display:flex;height:52px;margin:0;gap:0;background:#fff;box-shadow:0 7px 18px rgba(0,21,36,.22)}
.npbsd-big-search input{background:#fff;font-size:16px;padding-inline:17px}
.npbsd-big-search button{padding-inline:26px}
/* Home ranking discovery: compact, low-contrast navigation cards. */
.npbsd-discovery-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;border:0;border-radius:0;background:transparent;overflow:visible}
.npbsd-discovery-grid a{min-height:68px;padding:10px 34px 10px 16px;border:1px solid #dbe7ee!important;border-radius:6px;background:#edf4f8;box-shadow:0 3px 10px rgba(17,49,73,.035);display:flex;flex-direction:column;justify-content:center;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
.npbsd-discovery-grid a:hover,.npbsd-discovery-grid a:focus-visible{background:#e3eef5;border-color:#cadde8!important;box-shadow:0 6px 16px rgba(17,49,73,.07);transform:translateY(-1px)}
.npbsd-discovery-grid span{margin-bottom:1px;color:#8294a2;font-size:10px;font-weight:700;line-height:1.25}
.npbsd-discovery-grid strong{margin-top:0;color:var(--npbsd-navy);font-size:14px;line-height:1.35;white-space:nowrap}
.npbsd-discovery-grid b{right:14px;top:50%;transform:translateY(-50%);color:var(--npbsd-link);font-size:21px}
.npbsd-quick-links{grid-template-columns:repeat(5,1fr);gap:10px;border:0;border-radius:0;background:transparent;overflow:visible}
.npbsd-quick-links a{min-height:62px;border:0!important;background:#fff;box-shadow:0 4px 13px rgba(17,49,73,.035);color:var(--npbsd-navy)!important;font-weight:900}
.npbsd-quick-links a:nth-child(2){background:var(--npbsd-navy);color:#fff!important}
.npbsd-quick-links a:hover,.npbsd-quick-links a:focus-visible{background:var(--npbsd-link);color:#fff!important;transform:translateY(-1px)}
.npbsd-quick-team-links{grid-template-columns:repeat(4,1fr);gap:10px 12px;border:0;border-radius:0;background:transparent;overflow:visible}
.npbsd-quick-team-links a{min-height:76px;padding:15px 38px 14px 18px;border:0!important;background:#fff;box-shadow:0 4px 14px rgba(17,49,73,.035);font-size:14px;font-weight:850;transition:.16s ease}
.npbsd-quick-team-links a:after{content:"›";position:absolute;right:17px;top:50%;transform:translateY(-50%);color:var(--npbsd-link);font-size:22px;font-weight:500}
.npbsd-quick-team-links a:hover,.npbsd-quick-team-links a:focus-visible{background:var(--npbsd-soft);color:var(--npbsd-navy)!important;transform:translateX(2px)}
.npbsd-feature-links{grid-template-columns:1fr 1fr;gap:14px;border:0;border-radius:0;background:transparent;overflow:visible}
.npbsd-feature-links a{min-height:78px;padding:25px 50px 22px 22px;border:0!important;background:linear-gradient(100deg,#fff,var(--npbsd-soft));box-shadow:0 5px 18px rgba(17,49,73,.045)}
.npbsd-feature-links a:hover,.npbsd-feature-links a:focus-visible{background:var(--npbsd-link-hover)}

/* Player hero and approved 2 x 2 information cards */
.npbsd-player-head--v10{margin:0;padding:0;border:0;background:transparent}
.npbsd-player-title{padding:27px 30px 24px;background:linear-gradient(112deg,var(--npbsd-navy-deep),var(--npbsd-navy));box-shadow:var(--npbsd-shadow);color:#fff}
.npbsd-player-title .npbsd-kicker{margin:0 0 2px;color:#75cafa;font-size:13px;font-weight:850}
.npbsd-player-head--v10 h1{margin:0 0 5px;color:#fff;font-size:clamp(29px,3.5vw,42px);line-height:1.22}
.npbsd-player-head--v10 .npbsd-subline{margin:0;color:#c7d9e5;font-size:13px}
.npbsd-player-metrics,.npbsd-player-metrics--with-fa{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0 0;border:0;background:transparent}
.npbsd-metric-card,.npbsd-player-metrics--with-fa .npbsd-metric-card{position:relative;display:block;min-width:0;min-height:164px;padding:20px 22px 52px;border:0;background:#fff;box-shadow:0 5px 18px rgba(17,49,73,.045)}
.npbsd-secondary-metric{border:0}
.npbsd-secondary-metric>div,.npbsd-fa-metric>div{display:block;height:auto}
.npbsd-metric-card .npbsd-key-label{margin:0 0 4px;color:var(--npbsd-muted);font-size:11px;font-weight:800;letter-spacing:.03em}
.npbsd-primary-metric strong,.npbsd-secondary-metric strong,.npbsd-contract-strip .npbsd-multiyear-mobile-value{display:block;color:var(--npbsd-navy);font-family:inherit;font-size:29px;font-weight:900;line-height:1.3;letter-spacing:-.025em}
.npbsd-key-note{margin-top:3px;color:var(--npbsd-muted);font-size:11px;line-height:1.5}
.npbsd-metric-cta-row,.npbsd-player-metrics .npbsd-metric-cta-row,.npbsd-player-metrics--with-fa .npbsd-metric-cta-row{position:absolute;left:21px;right:21px;bottom:14px;width:auto;margin:0;padding:0}
.npbsd-metric-cta,.npbsd-player-metrics .npbsd-metric-cta,.npbsd-player-metrics--with-fa .npbsd-metric-cta{display:inline-flex;min-height:0;max-width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--npbsd-link)!important;font-size:12px;font-weight:800;overflow:visible}
.npbsd-metric-cta .npbsd-cta-arrow,.npbsd-player-metrics .npbsd-metric-cta .npbsd-cta-arrow{display:inline;width:auto;height:auto;flex:0 0 auto;border-radius:0;background:transparent;color:inherit;font-size:16px;line-height:1}
.npbsd-metric-cta:hover,.npbsd-metric-cta:focus-visible{border:0;background:transparent;box-shadow:none;color:#045f96!important;transform:none}
.npbsd-metric-cta:hover .npbsd-cta-arrow,.npbsd-metric-cta:focus-visible .npbsd-cta-arrow{background:transparent;color:inherit;transform:translateX(3px)}
.npbsd-fa-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:8px}
.npbsd-fa-value{display:block;padding:0;border:0}
.npbsd-fa-kind{display:block;color:var(--npbsd-muted);font-size:12px}
.npbsd-fa-text{display:block;margin-top:1px;color:var(--npbsd-navy);font-size:24px;font-weight:900;line-height:1.2;white-space:nowrap}
.npbsd-fa-meta{position:absolute;right:22px;top:18px;display:flex;gap:5px;margin:0;padding:3px 8px;background:var(--npbsd-link-hover);color:var(--npbsd-navy);font-size:11px;font-weight:850;line-height:1.5}
.npbsd-contract-strip{grid-template-columns:none;align-items:initial;gap:0;margin:0;padding:20px 22px 52px;border:0;background:#fff}
.npbsd-contract-strip .npbsd-multiyear-mobile-meta{display:flex;gap:0;margin:0 0 2px;color:var(--npbsd-muted);font-size:11px;line-height:1.5;white-space:nowrap}
.npbsd-contract-strip .npbsd-multiyear-mobile-value{font-size:27px}

/* Tables, directories, contracts and FA share the Version 10 data language. */
.npbsd-ranking-hero,.npbsd-static-hero{max-width:none;padding:27px 30px 24px;border:0;background:linear-gradient(112deg,var(--npbsd-navy-deep),var(--npbsd-navy));box-shadow:var(--npbsd-shadow);color:#fff}
.npbsd-ranking-hero h1,.npbsd-static-hero h1{color:#fff;font-size:clamp(29px,3.5vw,42px)}
.npbsd-ranking-hero>p:not(.npbsd-kicker){color:#d3e3ed}
.npbsd-ranking-summary{margin:18px -30px -24px;border:0;background:rgba(255,255,255,.08)}
.npbsd-ranking-summary>div{border-color:rgba(255,255,255,.14);background:transparent}
.npbsd-ranking-summary span{color:#b9cfdd}.npbsd-ranking-summary strong{color:#fff}
.npbsd-ranking-table,.npbsd-contract-table,.npbsd-player-list,.npbsd-desktop-table-wrap,.npbsd-fa-table-wrap,.npbsd-player-contract-history,.npbsd-static-card{border:0;border-radius:0;background:#fff;box-shadow:0 6px 22px rgba(17,49,73,.045)}
.npbsd-ranking-table-head,.npbsd-contract-table-head,.npbsd-table thead,.npbsd-player-contract-head{background:#e8f0f6;color:var(--npbsd-navy);border-bottom:2px solid var(--npbsd-navy)}
.npbsd-ranking-table-row,.npbsd-contract-table-row,.npbsd-player-list-item{border-color:var(--npbsd-line)}
.npbsd-ranking-table-row:nth-child(odd),.npbsd-contract-table-row:nth-child(odd),.npbsd-player-list-item:nth-child(even){background:#f8fafc}
.npbsd-ranking-table-row:hover,.npbsd-contract-table-row:hover,.npbsd-player-list-item:hover{background:#eef8fd}
.npbsd-position-directory{gap:10px 12px;border:0;border-radius:0;background:transparent;overflow:visible}
.npbsd-position-directory a{border:0!important;background:#fff;box-shadow:0 4px 14px rgba(17,49,73,.035)}
.npbsd-position-directory a:hover{background:var(--npbsd-soft)}
.npbsd-contract-tabs{border:0;border-radius:0;background:transparent;gap:8px}
.npbsd-contract-tabs a{border:0!important;background:#fff;box-shadow:0 3px 12px rgba(17,49,73,.04)}
.npbsd-contract-tabs a[aria-current="page"]{background:var(--npbsd-navy);color:#fff!important}
.npbsd-contract-tabs a[aria-current="page"]:after{display:none}
.npbsd-fa-related-links,.npbsd-related-grid{gap:10px;border:0;background:transparent}
.npbsd-fa-related-links a,.npbsd-related-grid a{border:0!important;border-radius:0;background:#fff;box-shadow:0 4px 14px rgba(17,49,73,.035)}
.npbsd-note-section{padding:19px 21px;border:0;border-radius:0;background:#e5eef4}
.npbsd-note-section p{font-size:13px}

/* v0.10.308: player-page salary provenance is a low-priority footnote, not a section card. */
.npbsd-player-salary-note{
  margin:24px 0 0;
  padding:0;
  border:0;
  background:transparent;
}
.npbsd-player-salary-note p{
  margin:0;
  color:var(--npbsd-muted);
  font-size:11px;
  line-height:1.75;
}

/* Contract history: desktop comparison table, compact mobile summary. */
.npbsd-player-contract-history{display:block;overflow:hidden}
.npbsd-player-contract-head,.npbsd-player-contract-row{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(135px,.9fr) minmax(110px,.7fr) minmax(135px,.8fr);gap:18px;align-items:center;padding:0 20px}
.npbsd-player-contract-head{min-height:0;padding-top:10px;padding-bottom:10px;font-size:11px;font-weight:800;letter-spacing:.025em}
.npbsd-player-contract-row{min-height:0;padding-top:17px;padding-bottom:17px;row-gap:10px;border:0;border-bottom:1px solid var(--npbsd-line);background:#fff;box-shadow:none}
.npbsd-player-contract-team,.npbsd-player-contract-period,.npbsd-player-contract-value{color:var(--npbsd-text);font-size:13px;font-weight:400}
.npbsd-player-contract-period strong,.npbsd-player-contract-value strong{color:inherit;font-size:13px;font-weight:400}
.npbsd-player-contract-period small{display:block;color:var(--npbsd-muted);font-size:10px}
.npbsd-player-contract-amount{text-align:left}
.npbsd-player-contract-mobile-summary{display:none}
.npbsd-player-contract-note,.npbsd-player-contract-sources{grid-column:1/-1}
.npbsd-player-contract-sources--mobile{display:none}
.npbsd-player-contract-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 20px 15px;background:#fff}
.npbsd-player-contract-ranking-link{display:inline-flex;align-items:center;gap:6px;color:var(--npbsd-navy)!important;font-size:12px;font-weight:850}
.npbsd-player-contract-ranking-link b{color:var(--npbsd-link);font-size:18px;line-height:1}
.npbsd-player-contract-foot-sources{display:flex;align-items:center;justify-content:flex-end;gap:3px;flex-wrap:wrap;color:var(--npbsd-muted);font-size:10px}
.npbsd-player-contract-foot-sources a{color:var(--npbsd-link)!important;font-weight:700}
.npbsd-player-contract-foot-sources b{font-weight:500}
.npbsd-table th,
.npbsd-fa-table th{color:var(--npbsd-navy);background:#e8f0f6;border-bottom:2px solid var(--npbsd-navy)}
.npbsd-table tbody tr:nth-child(even) td,
.npbsd-fa-table tbody tr:nth-child(even) td{background:#f8fafc}
.npbsd-table tbody tr:last-child td,
.npbsd-fa-table tbody tr:last-child td{border-bottom:2px solid var(--npbsd-navy)}
.npbsd-table th:nth-child(4),
.npbsd-table td:nth-child(4){color:var(--npbsd-blue);font-weight:900}

.npbsd-footer{border:0;background:var(--npbsd-navy-deep);color:#dbe7ef}
.npbsd-footer .npbsd-shell{min-height:120px}
.npbsd-footer .npbsd-footer-inner>span{color:#fff;font-weight:850}
.npbsd-footer nav{display:flex;gap:22px;flex-wrap:wrap}
.npbsd-footer a{color:#c3d2dc!important}
.npbsd-footer a:hover{color:#fff!important;text-decoration:underline}

@media(min-width:901px) and (max-width:1199px){
  .npbsd-discovery-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .npbsd-discovery-grid{grid-template-columns:repeat(2,1fr)}
  .npbsd-quick-team-links{grid-template-columns:repeat(3,1fr)}
  .npbsd-search-hero{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:0}
  .npbsd-big-search{grid-column:1;grid-row:4;margin-top:24px}
}
@media(max-width:767px){
  .npbsd-shell{width:calc(100% - 24px)}
  .npbsd-site-header{border-top-width:2px}
  .npbsd-header-inner{min-height:59px;gap:8px}
  .npbsd-brand{font-size:17px;gap:8px}
  .npbsd-brand-mark{width:29px;height:29px;font-size:10px}
  .npbsd-header-search{display:none}
  .npbsd-menu-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;margin-left:auto;padding:0}
  .npbsd-menu-icon,.npbsd-menu-icon:before,.npbsd-menu-icon:after{width:22px;height:2px}
  .npbsd-global-nav{top:0;width:min(84vw,350px);height:100dvh;background:#fff;color:var(--npbsd-text);box-shadow:-18px 0 40px rgba(4,31,51,.22)}
  .npbsd-global-nav-inner{display:block;padding:0 16px 24px}
  .npbsd-menu-panel-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;min-height:58px;margin:0 -16px 12px;padding:8px 16px;border-bottom:1px solid var(--npbsd-line);background:#fff;color:var(--npbsd-navy)}
  .npbsd-menu-panel-head>strong{font-size:15px;font-weight:900}
  .npbsd-menu-panel-head .npbsd-menu-close{position:static;display:flex;align-items:center;gap:7px;width:auto;height:40px;padding:0 7px 0 11px;border:1px solid var(--npbsd-line-strong);border-radius:4px;background:#fff;color:var(--npbsd-navy);font:inherit;font-size:12px;font-weight:850;cursor:pointer}
  .npbsd-menu-panel-head .npbsd-menu-close b{font-size:25px;font-weight:500;line-height:1}
  .npbsd-menu-panel-head .npbsd-menu-close:hover,.npbsd-menu-panel-head .npbsd-menu-close:focus-visible{border-color:var(--npbsd-link);background:var(--npbsd-soft)}
  .npbsd-menu-search{display:flex;gap:6px;margin:0 4px 12px;padding:0 0 13px;border-bottom:1px solid var(--npbsd-line)}
  .npbsd-menu-search label{display:block;flex:1;min-width:0}
  .npbsd-menu-search input{display:block;width:100%;height:42px;padding:0 11px;border:1px solid var(--npbsd-line-strong);border-radius:0;background:var(--npbsd-soft);color:var(--npbsd-text);font:inherit;font-size:14px}
  .npbsd-menu-search input:focus{outline:2px solid rgba(7,128,199,.18);outline-offset:0;border-color:var(--npbsd-link)}
  .npbsd-menu-search button{flex:0 0 auto;min-width:58px;height:42px;padding:0 12px;border:0;background:var(--npbsd-link);color:#fff;font:inherit;font-size:13px;font-weight:850;cursor:pointer}
  .npbsd-menu-search button:hover,.npbsd-menu-search button:focus-visible{background:#0569a4}
  .npbsd-global-nav a,.npbsd-global-nav a:first-child{justify-content:space-between;min-height:53px;padding:10px 20px;border-top:0;border-bottom:1px solid var(--npbsd-line);background:#fff;color:var(--npbsd-text)!important;font-size:14px}
  .npbsd-global-nav-inner>a:first-of-type{border-top:0}
  .npbsd-global-nav a:hover,.npbsd-global-nav a:focus-visible,.npbsd-global-nav a[aria-current="page"]{background:var(--npbsd-soft)}
  .npbsd-global-nav a[aria-current="page"]:after{display:none}
  .npbsd-nav-arrow{color:var(--npbsd-link)}
  .npbsd-menu-backdrop{background:rgba(4,25,42,.48)}
  .npbsd-main{padding-top:18px;padding-bottom:48px}
  .npbsd-breadcrumb{min-width:0;margin-bottom:12px;gap:5px;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden}
  .npbsd-breadcrumb>*{flex:0 0 auto;white-space:nowrap}
  .npbsd-breadcrumb>:last-child{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .npbsd-section{margin-top:29px}
  .npbsd-section-head{display:flex;align-items:center;gap:10px;margin-bottom:11px}
  .npbsd-section-head h2,.npbsd-note-section h2{padding-left:12px;font-size:19px}
  .npbsd-section-head h2:before,.npbsd-note-section h2:before{width:3px}
  .npbsd-section-head p{display:none}
  .npbsd-search-hero{padding:26px 18px}
  .npbsd-search-hero>h1{font-size:29px}
  .npbsd-big-search{height:46px;margin-top:21px}
  .npbsd-big-search button{padding-inline:18px}
  .npbsd-discovery-grid{grid-template-columns:1fr;gap:8px}
  .npbsd-discovery-grid a{min-height:62px;padding:9px 36px 9px 14px}
  .npbsd-discovery-grid strong{margin-top:0;font-size:14px}
  .npbsd-quick-links{grid-template-columns:repeat(5,1fr);gap:6px}
  .npbsd-quick-links a{min-height:51px;font-size:13px}
  .npbsd-quick-team-links{grid-template-columns:repeat(2,1fr);gap:8px}
  .npbsd-quick-team-links a{min-height:67px;padding:12px 31px 11px 13px;font-size:12px}
  .npbsd-feature-links{grid-template-columns:1fr;gap:8px}
  .npbsd-feature-links a{min-height:62px;padding:18px 44px 16px 16px;font-size:13px}
  .npbsd-player-title{padding:21px 17px 18px}
  .npbsd-player-head--v10 h1{font-size:clamp(21px,6.4vw,25px);line-height:1.28}
  .npbsd-player-head--v10 h1 .npbsd-title-player{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-break:strict}
  .npbsd-player-head--v10 h1 .npbsd-title-topic{display:block;white-space:nowrap}
  .npbsd-player-metrics,.npbsd-player-metrics--with-fa{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 0}
  .npbsd-player-metrics .npbsd-metric-card,.npbsd-player-metrics--with-fa .npbsd-metric-card{min-height:146px;padding:14px 13px 47px;border:0}
  .npbsd-primary-metric strong,.npbsd-secondary-metric strong,.npbsd-contract-strip .npbsd-multiyear-mobile-value{font-size:clamp(17px,5.2vw,22px);white-space:nowrap}
  .npbsd-key-note{font-size:9px}
  .npbsd-metric-cta-row,.npbsd-player-metrics .npbsd-metric-cta-row,.npbsd-player-metrics--with-fa .npbsd-metric-cta-row{left:13px;right:13px;bottom:10px}
  .npbsd-metric-cta,.npbsd-player-metrics .npbsd-metric-cta,.npbsd-player-metrics--with-fa .npbsd-metric-cta{font-size:10px;gap:4px;white-space:nowrap;overflow:hidden}
  .npbsd-fa-metric{grid-column:auto;padding:14px 13px 47px;border:0}
  .npbsd-fa-metric>div{display:block}
  .npbsd-fa-metric .npbsd-key-label{padding-right:58px}
  .npbsd-fa-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:7px}
  .npbsd-fa-kind{font-size:10px}.npbsd-fa-text{font-size:19px}
  .npbsd-fa-meta{right:13px;top:13px;max-width:56%;padding:2px 5px;font-size:9px;white-space:nowrap}
  .npbsd-ranking-hero,.npbsd-static-hero{padding:21px 17px 18px}
  .npbsd-ranking-hero h1,.npbsd-static-hero h1{font-size:27px}
  .npbsd-ranking-summary{margin:16px -17px -18px}
  .npbsd-ranking-summary>div{padding:10px 12px 11px}
  .npbsd-ranking-summary strong{font-size:17px}
  .npbsd-position-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .npbsd-player-contract-history{display:grid;gap:8px;overflow:visible;background:transparent;box-shadow:none}
  .npbsd-player-contract-head{display:none}
  .npbsd-player-contract-row{display:block;min-height:0;padding:17px 18px;border:0;background:#fff;box-shadow:0 5px 18px rgba(17,49,73,.04)}
  .npbsd-player-contract-team{color:var(--npbsd-muted);font-size:10px}
  .npbsd-player-contract-period{margin-top:1px;color:var(--npbsd-muted);font-size:10px}
  .npbsd-player-contract-period strong{color:inherit;font-size:10px;font-weight:400}
  .npbsd-player-contract-duration,.npbsd-player-contract-amount{display:none}
  .npbsd-player-contract-mobile-summary{display:block;margin-top:8px;color:var(--npbsd-navy);font-size:20px;line-height:1.35;font-weight:900;white-space:nowrap}
  .npbsd-player-contract-note{margin-top:10px;padding-top:9px;font-size:11px}
  .npbsd-player-contract-sources--mobile{display:flex;margin-top:12px;font-size:9px}
  .npbsd-player-contract-foot{display:block;margin-top:0;padding:13px 18px 15px;box-shadow:0 5px 18px rgba(17,49,73,.04)}
  .npbsd-player-contract-foot-sources{display:none}
  .npbsd-note-section{padding:15px 16px}
  .npbsd-player-salary-note{margin-top:22px}
  .npbsd-player-salary-note p{font-size:10px;line-height:1.7}
  .npbsd-player-page #salary-history .npbsd-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(118px,.72fr);align-items:start;gap:10px}
  .npbsd-player-page #salary-history .npbsd-section-head h2{white-space:nowrap}
  .npbsd-player-page #salary-history .npbsd-section-meta{min-width:0;margin:0;text-align:right}
  .npbsd-player-page #salary-history .npbsd-mlb-profile-link{display:inline-flex;justify-content:flex-end;max-width:100%;margin:0;font-size:9px;line-height:1.5;white-space:normal;text-align:left}
  .npbsd-footer .npbsd-shell{display:block;min-height:0;padding:27px 0}
  .npbsd-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:7px 15px;margin-top:13px;font-size:11px}
}
@media(max-width:380px){
  .npbsd-shell{width:calc(100% - 18px)}
  .npbsd-brand{font-size:16px}
  .npbsd-player-head--v10 h1{font-size:clamp(21px,6.4vw,24px)}
  .npbsd-quick-links{grid-template-columns:repeat(3,1fr)}
  .npbsd-player-contract-mobile-summary{font-size:18px}
}

/* Card-count variants and the Production contract-history footer. */
.npbsd-player-metrics--v10-three{grid-template-columns:repeat(3,minmax(0,1fr));margin-left:0;margin-right:0}
.npbsd-player-metrics--v10-four{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0;margin-right:0}
@media(max-width:767px){
  .npbsd-player-metrics--v10-three,.npbsd-player-metrics--v10-four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .npbsd-player-metrics--v10-three>.npbsd-metric-card:last-child{grid-column:1/-1;min-height:132px}
}

/* v0.10.251: public team finders use text-only club identification. */
.npbsd-quick-team-links{grid-template-columns:repeat(3,minmax(0,1fr))}
.npbsd-quick-team-links a{position:relative;display:flex;align-items:center;justify-content:flex-start;min-height:72px;padding:13px 42px 13px 16px}
.npbsd-quick-team-links a:after{right:16px}
.npbsd-team-name{display:block;min-width:0;color:var(--npbsd-navy);font-size:14px;font-weight:900;line-height:1.4}
@media(max-width:900px){
  .npbsd-contract-strip{margin:0;padding:14px 13px 47px;background:#fff}
  .npbsd-contract-strip .npbsd-multiyear-mobile-value{font-size:clamp(17px,5.2vw,22px);white-space:nowrap}
  .npbsd-contract-strip .npbsd-multiyear-mobile-meta{display:block;margin:3px 0 0;font-size:clamp(9px,2.4vw,10px);line-height:1.5;white-space:nowrap;overflow:visible}
  .npbsd-contract-strip .npbsd-multiyear-mobile-period,.npbsd-contract-strip .npbsd-multiyear-mobile-separator{display:none}
  .npbsd-contract-strip .npbsd-multiyear-mobile-amount{display:block;max-width:100%;padding-left:0;border-left:0;letter-spacing:-.025em;white-space:nowrap}
}
@media(max-width:767px){
  .npbsd-quick-team-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .npbsd-quick-team-links a{justify-content:center;min-height:62px;padding:9px 5px;text-align:center}
  .npbsd-quick-team-links a:after{display:none}
  .npbsd-team-name{font-size:clamp(9px,2.9vw,11px);line-height:1.25;white-space:nowrap}
}

/* v0.10.213-214: shared desktop dropdowns and mobile navigation accordions. */
.npbsd-global-nav{z-index:100;overflow:visible}
.npbsd-global-nav-inner{overflow:visible}
.npbsd-nav-item{position:relative;min-width:0}
.npbsd-nav-parent-row{display:flex;min-height:44px}
.npbsd-global-nav .npbsd-nav-main-link{flex:1 1 auto;min-width:0;padding-left:10px;padding-right:10px}
.npbsd-nav-submenu-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;padding:0;border:0;background:transparent;color:#fff;cursor:pointer}
.npbsd-nav-submenu-toggle:hover,.npbsd-nav-submenu-toggle:focus-visible{background:rgba(255,255,255,.09);outline:0}
.npbsd-nav-submenu-toggle i{position:relative;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .16s ease}
.npbsd-nav-item.is-submenu-open .npbsd-nav-submenu-toggle i{transform:translateY(2px) rotate(225deg)}
.npbsd-nav-submenu-indicator{display:none;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.npbsd-nav-submenu{position:absolute;z-index:101;top:100%;right:0;width:280px;padding:9px;background:#fff;box-shadow:0 14px 34px rgba(3,29,48,.2);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-5px);transition:opacity .14s ease,transform .14s ease,visibility 0s linear .14s}
.npbsd-nav-submenu--teams{left:0;right:auto;width:720px;padding:12px}
.npbsd-nav-submenu-index-link{display:none!important}
.npbsd-nav-submenu-links{display:grid;gap:2px}
.npbsd-global-nav .npbsd-nav-submenu-links>a,.npbsd-global-nav .npbsd-nav-team-link{min-height:0;border:0;background:#fff;color:var(--npbsd-navy)!important;text-decoration:none!important}
.npbsd-global-nav .npbsd-nav-submenu-links>a{justify-content:space-between;padding:12px 13px;font-size:13px}
.npbsd-global-nav .npbsd-nav-submenu-links>a:hover,.npbsd-global-nav .npbsd-nav-submenu-links>a:focus-visible,.npbsd-global-nav .npbsd-nav-team-link:hover,.npbsd-global-nav .npbsd-nav-team-link:focus-visible{background:var(--npbsd-soft);outline:0}
.npbsd-nav-submenu-links>a span{color:var(--npbsd-link);font-size:18px;line-height:1}
.npbsd-nav-team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.npbsd-global-nav .npbsd-nav-team-link{display:flex;justify-content:center;min-height:54px;padding:8px 9px;text-align:center}
.npbsd-nav-team-name{display:block;max-width:100%;color:var(--npbsd-navy)!important;font-size:11px;font-weight:850;line-height:1.35}
.npbsd-nav-team-name--mobile{display:none}
.npbsd-global-nav .npbsd-nav-team-link:hover .npbsd-nav-team-name,.npbsd-global-nav .npbsd-nav-team-link:focus-visible .npbsd-nav-team-name{color:var(--npbsd-navy)!important}

@media(min-width:768px){
  .npbsd-global-nav{position:relative}
  .npbsd-nav-submenu-toggle{display:none}
  .npbsd-global-nav .npbsd-nav-main-link{gap:11px;padding-left:14px;padding-right:14px}
  .npbsd-nav-submenu-indicator{display:block;flex:0 0 auto;margin-left:2px}
  .npbsd-nav-item--has-submenu:hover>.npbsd-nav-submenu,.npbsd-nav-item--has-submenu:focus-within>.npbsd-nav-submenu,.npbsd-nav-item--has-submenu.is-submenu-open>.npbsd-nav-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
}
@media(min-width:768px) and (max-width:1199px){
  .npbsd-nav-submenu--teams{width:560px}
  .npbsd-nav-team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:767px){
  .npbsd-global-nav{z-index:1002;overflow:hidden}
  .npbsd-global-nav-inner{height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
  .npbsd-nav-item{display:block}
  .npbsd-nav-parent-row{display:grid;grid-template-columns:minmax(0,1fr) 48px;min-height:53px;border-bottom:1px solid var(--npbsd-line)}
  .npbsd-global-nav .npbsd-nav-main-link,.npbsd-global-nav .npbsd-nav-main-link:first-child{min-height:52px;padding:10px 8px 10px 20px;border:0;background:#fff;color:var(--npbsd-text)!important}
  .npbsd-global-nav .npbsd-nav-main-link:hover,.npbsd-global-nav .npbsd-nav-main-link:focus-visible,.npbsd-global-nav .npbsd-nav-main-link[aria-current="page"]{background:var(--npbsd-soft)}
  .npbsd-nav-submenu-toggle{width:48px;min-height:52px;border:0;border-left:1px solid var(--npbsd-line);background:#fff;color:var(--npbsd-link)}
  .npbsd-nav-submenu-toggle:hover,.npbsd-nav-submenu-toggle:focus-visible{background:var(--npbsd-soft)}
  .npbsd-nav-submenu-indicator{display:none}
  .npbsd-nav-submenu{position:static;width:auto;padding:0 8px 10px;background:#f4f8fb;box-shadow:none;opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:none;display:none}
  .npbsd-nav-item.is-submenu-open>.npbsd-nav-submenu{display:block}
  .npbsd-global-nav .npbsd-nav-submenu-index-link,.npbsd-global-nav .npbsd-nav-submenu-index-link:first-child{display:flex!important;justify-content:space-between;min-height:43px;padding:8px 10px;border:0;border-bottom:1px solid var(--npbsd-line);background:transparent;color:var(--npbsd-link)!important;font-size:11.5px;font-weight:800}
  .npbsd-global-nav .npbsd-nav-submenu-links>a,.npbsd-global-nav .npbsd-nav-submenu-links>a:first-child{min-height:43px;padding:8px 10px;border:0;border-bottom:1px solid var(--npbsd-line);background:transparent;color:var(--npbsd-navy)!important;font-size:12px}
  .npbsd-nav-submenu-links>a:last-child{border-bottom:0}
  .npbsd-nav-team-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding-top:7px}
  .npbsd-global-nav .npbsd-nav-team-link,.npbsd-global-nav .npbsd-nav-team-link:first-child{justify-content:center;min-height:48px;padding:7px 4px;border:0;background:#fff;color:var(--npbsd-navy)!important;text-align:center}
  .npbsd-nav-team-name--desktop{display:none}
  .npbsd-nav-team-name--mobile{display:block;font-size:9.5px;line-height:1.25;white-space:nowrap}
}

/* DataPlus player-page administrator preview (v0.10.245). */
.npbsd-dataplus-admin-badge{display:inline-flex;align-items:center;min-height:25px;padding:3px 9px;border:1px solid #9fc7df;background:#eef7fc;color:#075f95;font-size:10px;font-weight:850;letter-spacing:.02em;white-space:nowrap}
.npbsd-season-stats-desktop{display:block}
.npbsd-season-stats-mobile{display:none}
.npbsd-season-stats-panel{overflow:hidden;background:#fff;box-shadow:0 5px 18px rgba(17,49,73,.045)}
.npbsd-season-stats-table{width:100%;table-layout:fixed;border-collapse:collapse;color:var(--npbsd-text)}
.npbsd-season-stats-table thead{background:#e8f0f6;color:var(--npbsd-navy);border-bottom:2px solid var(--npbsd-navy)}
.npbsd-season-stats-table th,.npbsd-season-stats-table td{padding:12px 7px;border-bottom:1px solid var(--npbsd-line);text-align:center;vertical-align:middle;white-space:nowrap}
.npbsd-season-stats-table thead th{font-size:11px;font-weight:800}
.npbsd-season-stats-table tbody th{font-size:12px;font-weight:700}
.npbsd-season-stats-table tbody td{font-size:14px;font-weight:400;font-variant-numeric:tabular-nums}
.npbsd-season-stats-table tbody tr:last-child th,.npbsd-season-stats-table tbody tr:last-child td{border-bottom:0}
.npbsd-season-stats-table .npbsd-season-year{width:8%;font-size:14px;font-weight:850;color:var(--npbsd-navy);background:#fafcfd}
.npbsd-season-stats-table th:nth-child(2){width:10%}
.npbsd-season-stats-table--pitching th:nth-child(4),.npbsd-season-stats-table--pitching td:nth-child(4){width:18%}
.npbsd-season-stats-mobile-wrap{overflow:hidden;border:1px solid var(--npbsd-line);background:#fff}
.npbsd-season-stats-mobile-table{width:100%;table-layout:fixed;border-collapse:collapse;color:var(--npbsd-text)}
.npbsd-season-stats-mobile-table thead{background:#e8f0f6;color:var(--npbsd-navy);border-bottom:2px solid var(--npbsd-navy)}
.npbsd-season-stats-mobile-table th,.npbsd-season-stats-mobile-table td{padding:6px 3px;border-bottom:1px solid var(--npbsd-line);text-align:center;vertical-align:middle}
.npbsd-season-stats-mobile-table thead th{padding-top:7px;padding-bottom:7px;font-size:9px;font-weight:800;white-space:nowrap}
.npbsd-season-stats-mobile-table tbody td{font-size:12px;font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap}
.npbsd-season-stats-mobile-table .npbsd-season-mobile-year{width:14%;font-size:13px;font-weight:850;color:var(--npbsd-navy);background:#fafcfd;white-space:nowrap;border-right:1px solid #edf2f5}
.npbsd-season-mobile-action{width:12%}.npbsd-season-mobile-toggle{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0;border:0;background:transparent;color:var(--npbsd-link);font-size:9px;font-weight:700;line-height:1.2;white-space:nowrap;cursor:pointer}
.npbsd-season-mobile-toggle::after{content:'＋';margin-left:2px}
.npbsd-season-mobile-toggle[aria-expanded="true"]::after{content:'−'}
.npbsd-season-mobile-detail-row[hidden]{display:none}
.npbsd-season-mobile-detail-row td{padding:0;border-bottom:1px solid var(--npbsd-line);background:#f8fbfd}
.npbsd-season-mobile-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px 5px;gap:4px}
.npbsd-season-stats-mobile-table--pitching .npbsd-season-mobile-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.npbsd-season-stats-asof{margin:7px 0 0;text-align:right;color:#718396;font-size:11px;line-height:1.5}
/* v0.10.402: link to プロ野球データプラス below the season stats (plain note, not a button). */
.npbsd-season-stats-dataplus{margin:4px 0 0;text-align:right;color:#718396;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
body.npbsd-public .npbsd-season-stats-dataplus a{color:var(--npbsd-link,#0b6aa8);text-decoration:underline;text-underline-offset:2px}
body.npbsd-public .npbsd-season-stats-dataplus a:hover{text-decoration:none}
.npbsd-season-mobile-detail-grid>div{min-width:0;text-align:center}
.npbsd-season-mobile-detail-grid span{display:block;color:var(--npbsd-muted);font-size:8px;font-weight:700;white-space:nowrap}
.npbsd-season-mobile-detail-grid b{display:block;margin-top:1px;color:var(--npbsd-text);font-size:12px;font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap}

@media(max-width:767px){
  .npbsd-dataplus-admin-badge{min-height:21px;padding:2px 6px;font-size:8px}
  .npbsd-season-stats-desktop{display:none}
  .npbsd-season-stats-mobile{display:block}
  .npbsd-season-stats-mobile-table--pitching th:nth-child(4),.npbsd-season-stats-mobile-table--pitching td:nth-child(4){width:26%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(3),.npbsd-season-stats-mobile-table--batting td:nth-child(3){width:16%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(4),.npbsd-season-stats-mobile-table--batting td:nth-child(4){width:18%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(5),.npbsd-season-stats-mobile-table--batting td:nth-child(5){width:16%}
  .npbsd-season-stats-asof{font-size:10px;text-align:left;margin-top:6px}
  .npbsd-season-stats-dataplus{font-size:11px;text-align:left}
}


/* v0.10.253 team links (球団から探す / menu); the marks themselves are in the v0.10.409 block. */
.npbsd-quick-team-links a{gap:12px}
.npbsd-global-nav .npbsd-nav-team-link{align-items:center;justify-content:flex-start;gap:8px;padding-left:10px;padding-right:10px;text-align:left}
.npbsd-nav-team-name{flex:1 1 auto;min-width:0}
@media(max-width:767px){
  .npbsd-quick-team-links a{justify-content:flex-start;gap:7px;min-height:62px;padding:8px 5px 8px 8px;text-align:left}
  .npbsd-team-name{flex:1 1 auto;min-width:0}
  .npbsd-global-nav .npbsd-nav-team-link,.npbsd-global-nav .npbsd-nav-team-link:first-child{justify-content:flex-start;gap:6px;padding:7px 5px;text-align:left}
}


/* v0.10.269: mobile-only hero card vertical-rhythm normalization.
   Use one compact-but-breathable height/CTA reserve for the salary, career,
   FA and multi-year-contract cards. Desktop is unchanged. */
@media (max-width:767px){
  .npbsd-player-metrics>.npbsd-primary-metric,
  .npbsd-player-metrics>.npbsd-secondary-metric,
  .npbsd-player-metrics>.npbsd-fa-metric,
  .npbsd-player-metrics>.npbsd-contract-strip{
    min-height:122px;
    padding-bottom:35px;
  }
}

/* v0.10.270: mobile-only FA value width hardening.
   Keep domestic/overseas FA values at the same typography while preserving
   the two-column layout for longer remaining-day strings. Desktop unchanged. */
@media (max-width:767px){
  .npbsd-player-metrics .npbsd-fa-values,
  .npbsd-player-metrics--with-fa .npbsd-fa-values{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .npbsd-player-metrics .npbsd-fa-value,
  .npbsd-player-metrics--with-fa .npbsd-fa-value{
    min-width:0;
  }
  .npbsd-player-metrics .npbsd-fa-text,
  .npbsd-player-metrics--with-fa .npbsd-fa-text{
    font-size:17px;
    line-height:1.18;
    letter-spacing:-.02em;
    white-space:nowrap;
  }
}


/* v0.10.271: mobile-only FA two-row value layout.
   Keep domestic/overseas values at identical typography and provide the full
   card width to each value row. Desktop remains unchanged. */
@media (max-width:767px){
  .npbsd-player-metrics .npbsd-fa-values,
  .npbsd-player-metrics--with-fa .npbsd-fa-values{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:7px;
    margin-top:7px;
  }
  .npbsd-player-metrics .npbsd-fa-value,
  .npbsd-player-metrics--with-fa .npbsd-fa-value{
    display:grid;
    grid-template-columns:52px minmax(0,1fr);
    align-items:baseline;
    column-gap:8px;
    min-width:0;
  }
  .npbsd-player-metrics .npbsd-fa-kind,
  .npbsd-player-metrics--with-fa .npbsd-fa-kind{
    display:block;
    font-size:13px;
    font-weight:600;
    line-height:1.2;
    white-space:nowrap;
  }
  .npbsd-player-metrics .npbsd-fa-text,
  .npbsd-player-metrics--with-fa .npbsd-fa-text{
    display:block;
    min-width:0;
    margin-top:0;
    font-size:16px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:-.015em;
    white-space:nowrap;
  }
}


/* v0.10.272: mobile-only adaptive FA layout by hero card count.
   Three-card pages give the full-width FA card two side-by-side columns;
   four-card pages retain the safer two-row layout from v0.10.271. */
@media (max-width:767px){
  .npbsd-player-metrics--v10-three .npbsd-fa-values{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    margin-top:7px;
  }
  .npbsd-player-metrics--v10-three .npbsd-fa-value{
    display:block;
    min-width:0;
  }
  .npbsd-player-metrics--v10-three .npbsd-fa-kind{
    display:block;
    font-size:13px;
    font-weight:600;
    line-height:1.2;
    white-space:nowrap;
  }
  .npbsd-player-metrics--v10-three .npbsd-fa-text{
    display:block;
    min-width:0;
    margin-top:3px;
    font-size:16px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:-.015em;
    white-space:nowrap;
  }
}

/* v0.10.274: desktop hero-card vertical rhythm.
   Base spacing is measured from the muted supporting-note line to the CTA.
   Mobile (<=767px) is intentionally unchanged. */
@media (min-width:768px){
  .npbsd-player-metrics .npbsd-metric-card,
  .npbsd-player-metrics--with-fa .npbsd-metric-card{
    min-height:144px;
    padding-bottom:48px;
  }
}


/* v0.10.315: compact public player search results with row-adaptive mobile height.
   Desktop remains one-line. Mobile remains two columns, but no longer reserves
   two name lines for every card: only a grid row containing a wrapped long name
   grows, and its sibling card stretches to the same row height automatically. */
.npbsd-player-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px 12px;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.npbsd-player-list-item,
.npbsd-player-list-item:nth-child(even){
  display:grid;
  grid-template-columns:minmax(0,1fr) 14px;
  gap:8px;
  align-items:center;
  min-width:0;
  min-height:74px;
  padding:12px 13px;
  border:0;
  background:#fff;
  box-shadow:0 4px 14px rgba(17,49,73,.04);
}
.npbsd-player-list-item:last-child{border-bottom:0}
.npbsd-player-list-item:hover,.npbsd-player-list-item:focus-visible{background:#eef8fd}
.npbsd-player-list-name{display:block;min-width:0;font-weight:800}
.npbsd-player-list-primary-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.35}
.npbsd-player-list-name .npbsd-player-list-meta{display:block;min-width:0;margin-top:3px;color:var(--npbsd-muted)!important;font-size:11px!important;font-weight:500!important;line-height:1.35;letter-spacing:-.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.npbsd-player-list-item .npbsd-list-arrow{font-size:20px;text-align:right}
@media (max-width:767px){
  .npbsd-player-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
  .npbsd-player-list-item,
  .npbsd-player-list-item:nth-child(even){min-height:72px;height:100%;padding:11px 10px;gap:5px}
  .npbsd-player-list-name{
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    align-self:stretch;
    min-width:0;
  }
  .npbsd-player-list-primary-name{
    align-self:center;
    min-height:0;
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
    line-break:strict;
    font-size:clamp(12px,3.6vw,14px);
    line-height:1.35;
  }
  .npbsd-player-list-name .npbsd-player-list-meta{align-self:end;margin-top:2px;font-size:clamp(8.5px,2.35vw,10px)!important;letter-spacing:-.035em}
  .npbsd-player-list-item .npbsd-list-arrow{font-size:18px}
}


/* v0.10.277: split TOP/FARM season stats and career totals. */
.npbsd-season-level-groups{display:grid;gap:22px}
.npbsd-season-level-group{min-width:0}
.npbsd-season-level-heading{margin:0 0 8px;color:var(--npbsd-navy);font-size:17px;font-weight:850;line-height:1.35}
.npbsd-season-career-row th,.npbsd-season-career-row td{background:#f0f6fa!important;border-top:2px solid #a9c6d9!important;font-weight:750!important}
.npbsd-season-career-row .npbsd-season-career-label{color:#075f95!important}
.npbsd-season-stats-table--batting th:first-child{width:10%}
.npbsd-season-stats-table--pitching th:first-child{width:10%}
.npbsd-season-stats-table--pitching th:nth-child(3),.npbsd-season-stats-table--pitching td:nth-child(3){width:20%}
@media(max-width:767px){
  .npbsd-season-level-groups{gap:18px}
  .npbsd-season-level-heading{margin-bottom:6px;font-size:15px}
  .npbsd-season-stats-mobile-table .npbsd-season-mobile-year{width:18%}
  .npbsd-season-stats-mobile-table--pitching th:nth-child(3),.npbsd-season-stats-mobile-table--pitching td:nth-child(3){width:31%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(2),.npbsd-season-stats-mobile-table--batting td:nth-child(2){width:18%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(3),.npbsd-season-stats-mobile-table--batting td:nth-child(3){width:20%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(4),.npbsd-season-stats-mobile-table--batting td:nth-child(4){width:18%}
  .npbsd-season-mobile-action{width:14%}
}

/* v0.10.278: multi-team season totals + mobile RBI main column. */
@media(max-width:767px){
  .npbsd-season-stats-mobile-table .npbsd-season-mobile-year{width:14%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(2),.npbsd-season-stats-mobile-table--batting td:nth-child(2){width:16%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(3),.npbsd-season-stats-mobile-table--batting td:nth-child(3){width:18%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(4),.npbsd-season-stats-mobile-table--batting td:nth-child(4){width:17%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(5),.npbsd-season-stats-mobile-table--batting td:nth-child(5){width:17%}
  .npbsd-season-stats-mobile-table--batting .npbsd-season-mobile-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .npbsd-season-stats-mobile-table--batting .npbsd-season-mobile-action{width:16%}
}

/* v0.10.294: batting hits column on PC; mobile hits stays in detail. */
.npbsd-season-stats-table--batting th:first-child,
.npbsd-season-stats-table--batting td:first-child{width:9%}
.npbsd-season-stats-table--batting th:nth-child(2),
.npbsd-season-stats-table--batting td:nth-child(2){width:9%}
.npbsd-season-stats-table--batting th:nth-child(3),
.npbsd-season-stats-table--batting td:nth-child(3){width:9%}
@media(max-width:767px){
  .npbsd-season-stats-mobile-table--batting .npbsd-season-mobile-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v0.10.295: balanced PC batting columns + 4-column mobile batting detail. */
.npbsd-season-stats-table--batting th,.npbsd-season-stats-table--batting td{width:11.111111%!important;padding-left:10px;padding-right:10px}
@media(max-width:767px){.npbsd-season-stats-mobile-table--batting .npbsd-season-mobile-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:2px;padding-left:3px;padding-right:3px}}

/* v0.10.298: dual-role / conversion player batting + pitching sections. */
.npbsd-season-level-groups--dual-role .npbsd-season-stat-type-group+.npbsd-season-stat-type-group{margin-top:16px}
.npbsd-season-stat-type-heading{margin:0 0 7px;color:var(--npbsd-navy);font-size:13px;font-weight:850;line-height:1.35}
@media(max-width:767px){
  .npbsd-season-level-groups--dual-role .npbsd-season-stat-type-group+.npbsd-season-stat-type-group{margin-top:12px}
  .npbsd-season-stat-type-heading{margin-bottom:5px;font-size:12px}
}

/* v0.10.307: semantic TOP/FARM H2 structure + refined mobile FARM disclosure.
   TOP/FARM headings keep the same site accent; only table surfaces carry level color.
   FARM is always visible on desktop and collapsed by default only on mobile. */
.npbsd-dataplus-player-preview-meta{display:flex;justify-content:flex-end;margin-bottom:6px}
.npbsd-season-level-group--top{
  --npbsd-level-accent:#2f669c;
  --npbsd-level-head:#e8f1f8;
  --npbsd-level-soft:#f0f6fa;
  --npbsd-level-border:#a9c6d9;
}
.npbsd-season-level-group--farm{
  --npbsd-level-accent:#35705d;
  --npbsd-level-head:#e8f3ee;
  --npbsd-level-soft:#f0f7f3;
  --npbsd-level-border:#a8cbbb;
}
.npbsd-season-level-heading{
  position:relative;
  margin:0 0 10px;
  padding-left:15px;
  color:var(--npbsd-navy);
  font-size:22px;
  font-weight:850;
  line-height:1.35;
  letter-spacing:-.02em;
}
.npbsd-season-level-heading:before{
  content:"";
  position:absolute;
  left:0;
  top:.18em;
  width:4px;
  height:1.05em;
  background:var(--npbsd-link);
}
.npbsd-season-level-details{margin:0}
.npbsd-season-level-summary{display:none}
.npbsd-season-level-summary-label--open{display:none}
.npbsd-season-level-content{min-width:0}
.npbsd-season-level-group .npbsd-season-stats-table thead,
.npbsd-season-level-group .npbsd-season-stats-mobile-table thead{
  background:var(--npbsd-level-head);
  border-bottom-color:var(--npbsd-level-accent);
}
.npbsd-season-level-group .npbsd-season-career-row th,
.npbsd-season-level-group .npbsd-season-career-row td{
  background:var(--npbsd-level-soft)!important;
  border-top-color:var(--npbsd-level-border)!important;
}
.npbsd-season-level-group .npbsd-season-career-row .npbsd-season-career-label{
  color:var(--npbsd-level-accent)!important;
}
@media(max-width:767px){
  .npbsd-dataplus-player-preview-meta{margin-bottom:5px}
  .npbsd-season-level-heading{margin-bottom:7px;padding-left:12px;font-size:19px}
  .npbsd-season-level-heading:before{width:3px}
  .npbsd-season-level-summary{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:36px;
    margin:0 0 12px;
    padding:8px 12px;
    border:1px solid rgba(7,128,199,.22);
    border-radius:999px;
    background:rgba(255,255,255,.92);
    box-shadow:0 2px 10px rgba(17,49,73,.05);
    color:var(--npbsd-link);
    cursor:pointer;
    list-style:none;
    font-size:13px;
    font-weight:800;
    line-height:1;
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
  }
  .npbsd-season-level-summary::-webkit-details-marker{display:none}
  .npbsd-season-level-summary:hover,.npbsd-season-level-summary:focus-visible{
    background:#fff;
    border-color:rgba(7,128,199,.36);
    box-shadow:0 4px 12px rgba(17,49,73,.08);
  }
  .npbsd-season-level-summary:focus-visible{outline:2px solid rgba(7,128,199,.15);outline-offset:2px}
  .npbsd-season-level-summary-state{
    position:relative;
    flex:0 0 10px;
    width:10px;
    height:10px;
    margin-top:-1px;
    color:currentColor;
  }
  .npbsd-season-level-summary-state:before{
    content:"";
    position:absolute;
    inset:0;
    width:7px;
    height:7px;
    margin:auto;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg);
    transition:transform .16s ease,margin-top .16s ease;
  }
  .npbsd-season-level-details[open] .npbsd-season-level-summary-state:before{transform:rotate(-135deg);margin-top:2px}
  .npbsd-season-level-details[open] .npbsd-season-level-summary-label--closed{display:none}
  .npbsd-season-level-details[open] .npbsd-season-level-summary-label--open{display:inline}
}


/* v0.10.311: add compact NPB team column immediately after season on PC/SP stats tables. */
.npbsd-season-stats-table .npbsd-season-team{font-size:12px;font-weight:750;line-height:1.15;letter-spacing:-.025em;color:var(--npbsd-navy);white-space:nowrap}
.npbsd-season-stats-table--batting th,.npbsd-season-stats-table--batting td{width:10%!important}
.npbsd-season-stats-table--batting th:first-child,.npbsd-season-stats-table--batting td:first-child{width:8%!important}
.npbsd-season-stats-table--batting th:nth-child(2),.npbsd-season-stats-table--batting td:nth-child(2){width:12%!important}
.npbsd-season-stats-table--pitching th:first-child,.npbsd-season-stats-table--pitching td:first-child{width:9%}
.npbsd-season-stats-table--pitching th:nth-child(2),.npbsd-season-stats-table--pitching td:nth-child(2){width:13%}
.npbsd-season-stats-table--pitching th:nth-child(3),.npbsd-season-stats-table--pitching td:nth-child(3){width:10%}
.npbsd-season-stats-table--pitching th:nth-child(4),.npbsd-season-stats-table--pitching td:nth-child(4){width:18%}
.npbsd-season-stats-table--pitching th:nth-child(5),.npbsd-season-stats-table--pitching td:nth-child(5){width:13%}
.npbsd-season-stats-table--pitching th:nth-child(6),.npbsd-season-stats-table--pitching td:nth-child(6){width:12%}
.npbsd-season-stats-table--pitching th:nth-child(7),.npbsd-season-stats-table--pitching td:nth-child(7){width:12%}
.npbsd-season-stats-table--pitching th:nth-child(8),.npbsd-season-stats-table--pitching td:nth-child(8){width:13%}
.npbsd-season-team--career{color:var(--npbsd-muted)!important;font-weight:650!important}
@media(max-width:767px){
  .npbsd-season-stats-mobile-table .npbsd-season-mobile-year{width:13%}
  .npbsd-season-stats-mobile-table .npbsd-season-mobile-team{width:20%;padding-left:2px;padding-right:2px;color:var(--npbsd-navy);font-size:clamp(7.5px,2.3vw,9px);font-weight:800;line-height:1.05;letter-spacing:-.045em;white-space:normal}
  .npbsd-season-team-list{display:inline-block;max-width:100%;white-space:nowrap}
  .npbsd-season-team-list>span{display:inline;white-space:nowrap}
  .npbsd-season-stats-mobile-table--batting th:nth-child(3),.npbsd-season-stats-mobile-table--batting td:nth-child(3){width:11%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(4),.npbsd-season-stats-mobile-table--batting td:nth-child(4){width:14%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(5),.npbsd-season-stats-mobile-table--batting td:nth-child(5){width:13%}
  .npbsd-season-stats-mobile-table--batting th:nth-child(6),.npbsd-season-stats-mobile-table--batting td:nth-child(6){width:13%}
  .npbsd-season-stats-mobile-table--batting .npbsd-season-mobile-action{width:16%}
  .npbsd-season-stats-mobile-table--pitching th:nth-child(3),.npbsd-season-stats-mobile-table--pitching td:nth-child(3){width:10%}
  .npbsd-season-stats-mobile-table--pitching th:nth-child(4),.npbsd-season-stats-mobile-table--pitching td:nth-child(4){width:28%;font-size:10px;letter-spacing:-.035em}
  .npbsd-season-stats-mobile-table--pitching th:nth-child(5),.npbsd-season-stats-mobile-table--pitching td:nth-child(5){width:15%}
  .npbsd-season-stats-mobile-table--pitching .npbsd-season-mobile-action{width:14%}
}

/* v0.10.317: NPB official major-title crowns. Registry-backed TOP completed seasons only. */
.npbsd-stat-title-value{display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
.npbsd-stat-title-number{font-weight:700}
.npbsd-stat-title-crown{display:inline-block;flex:0 0 auto;margin-left:1px;color:#c28a00;font-size:12px;line-height:1;transform:translateY(-1px);text-shadow:0 1px 0 rgba(255,255,255,.8);cursor:help}
.npbsd-pitching-record{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.npbsd-pitching-record-segment{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}
.npbsd-pitching-record-space{display:inline-block;width:.28em;flex:0 0 auto}
@media(max-width:767px){
  .npbsd-stat-title-value{gap:2px}
  .npbsd-stat-title-crown{font-size:10px;margin-left:0}
  .npbsd-pitching-record-segment{gap:1px}
  .npbsd-pitching-record-space{width:.18em}
}
@media(max-width:767px){
  .npbsd-season-stats-mobile-table--pitching .npbsd-pitching-record{font-size:clamp(10px,3vw,12px);letter-spacing:-.02em}
}
@media(max-width:360px){
  .npbsd-pitching-record .npbsd-stat-title-crown{font-size:9px}
  .npbsd-pitching-record-segment{gap:0}
  .npbsd-pitching-record-space{width:.1em}
}

/* FA annual archive navigation (v0.10.326). */
.npbsd-fa-season-archive-nav{display:flex;align-items:center;gap:12px;margin:0 0 22px;padding:10px 14px;border:1px solid #dbe5ee;border-radius:10px;background:#f8fbfd;font-size:14px}.npbsd-fa-season-archive-nav>span{font-weight:700;color:#52677a;white-space:nowrap}.npbsd-fa-season-archive-nav>div{display:flex;gap:8px;flex-wrap:wrap}.npbsd-fa-season-archive-nav a{display:inline-flex;align-items:center;min-height:32px;padding:5px 11px;border:1px solid #cad8e4;border-radius:999px;background:#fff;color:#176f9f;text-decoration:none;font-weight:700}.npbsd-fa-season-archive-nav a.is-current{background:#176f9f;border-color:#176f9f;color:#fff}.npbsd-fa-season-archive-nav a:hover{text-decoration:none;filter:brightness(.97)}
@media (max-width:700px){.npbsd-fa-season-archive-nav{align-items:flex-start;gap:8px;padding:9px 10px}.npbsd-fa-season-archive-nav>div{gap:6px}.npbsd-fa-season-archive-nav a{min-height:30px;padding:4px 9px;font-size:13px}}

/* FA current-market table v0.10.346: canonical comparison layout + mobile typography. */
.npbsd-fa-market-table{min-width:900px;table-layout:fixed}
.npbsd-fa-market-table .npbsd-fa-col-player{width:20%;text-align:left}
.npbsd-fa-market-table .npbsd-fa-col-rank{width:7%;text-align:center}
.npbsd-fa-market-table .npbsd-fa-col-age{width:8%;text-align:center}
.npbsd-fa-market-table .npbsd-fa-col-market-position{width:10%;text-align:center}
.npbsd-fa-market-table .npbsd-fa-col-salary{width:15%;text-align:center;white-space:nowrap}
.npbsd-fa-market-table .npbsd-fa-col-stats{width:30%;text-align:center}
.npbsd-fa-market-table .npbsd-fa-col-status{width:10%;text-align:center}
.npbsd-fa-market-table th,.npbsd-fa-market-table td{text-align:center}
.npbsd-fa-market-table .npbsd-fa-col-player{text-align:left}
.npbsd-fa-market-table .npbsd-fa-detail-row>td{text-align:left}
.npbsd-fa-market-table .npbsd-fa-player-line{display:block;width:auto;max-width:none}
.npbsd-fa-market-table .npbsd-fa-col-rank .npbsd-fa-rank{min-width:34px;text-align:center}
.npbsd-fa-market-table td.npbsd-fa-col-market-position{font-weight:400;color:inherit;white-space:nowrap}
.npbsd-fa-market-table .npbsd-fa-right-label{font-weight:400}
.npbsd-fa-market-table .npbsd-fa-stats-summary{display:inline-block;line-height:1.55;white-space:nowrap}
.npbsd-fa-market-rank-break{display:none}

@media (max-width:782px){
  .npbsd-fa-player-table.npbsd-fa-market-table{width:100%;min-width:0;table-layout:fixed}
  .npbsd-fa-player-table.npbsd-fa-market-table th{font-size:10.5px;font-weight:700;line-height:1.35;color:var(--npbsd-navy)}
  .npbsd-fa-market-rank-break{display:inline}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-player{display:table-cell;width:27%;text-align:center}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-rank{display:table-cell;width:11%;text-align:center}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-age{display:table-cell;width:10%;text-align:center}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-market-position{display:table-cell;width:14%;text-align:center}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-salary{display:table-cell;width:26%;text-align:center;white-space:nowrap}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-toggle-head,
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-toggle-cell{display:table-cell;width:12%;text-align:center}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-stats,
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-status{display:none}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-player .npbsd-fa-player-line{display:block;width:100%;max-width:none;text-align:center}
  .npbsd-fa-player-table.npbsd-fa-market-table td.npbsd-fa-col-age,
  .npbsd-fa-player-table.npbsd-fa-market-table td.npbsd-fa-col-market-position,
  .npbsd-fa-player-table.npbsd-fa-market-table td.npbsd-fa-col-salary{font-family:inherit;font-size:10.5px;font-weight:400;line-height:1.45;color:inherit}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-rank .npbsd-fa-rank{min-width:26px;padding:2px 4px;font-size:10.5px}
  .npbsd-fa-market-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 14px;padding:10px 12px 11px}
  .npbsd-fa-market-detail-grid>div{display:flex;align-items:baseline;gap:6px;min-width:0}
  .npbsd-fa-market-detail-grid>div:last-child{justify-content:flex-end;white-space:nowrap}
  .npbsd-fa-market-detail-grid dt{flex:0 0 auto;margin:0}
  .npbsd-fa-market-detail-grid dd{min-width:0;margin:0;line-height:1.45}
}

@media (max-width:480px){
  .npbsd-fa-player-table.npbsd-fa-market-table th{padding-left:2px;padding-right:2px;font-size:8.8px}
  .npbsd-fa-player-table.npbsd-fa-market-table td{padding-left:3px;padding-right:3px}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-player{width:28%}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-rank{width:10%}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-age{width:10%}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-market-position{width:14%}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-salary{width:26%;letter-spacing:-.02em}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-toggle-head,
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-toggle-cell{width:12%}
  .npbsd-fa-player-table.npbsd-fa-market-table td.npbsd-fa-col-age,
  .npbsd-fa-player-table.npbsd-fa-market-table td.npbsd-fa-col-market-position,
  .npbsd-fa-player-table.npbsd-fa-market-table td.npbsd-fa-col-salary{font-size:8.8px}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-col-rank .npbsd-fa-rank{font-size:8.8px}
  .npbsd-fa-player-table.npbsd-fa-market-table .npbsd-fa-player{font-size:11.5px}
  .npbsd-fa-player-table.npbsd-fa-market-table td small{font-size:8.5px}
  .npbsd-fa-market-detail-grid{gap:6px 8px;padding-left:9px;padding-right:9px}
  .npbsd-fa-market-detail-grid dt{font-size:8.8px}
  .npbsd-fa-market-detail-grid dd{font-size:10.5px}
}

/* v0.10.355: canonical desktop content width + fixed-page wide shell. */
@media (min-width:768px){
  .npbsd-static-hero,.npbsd-static-card,.npbsd-static-page-contact .npbsd-static-hero,.npbsd-static-page-contact .npbsd-static-card{max-width:var(--npbsd-max)}
  .npbsd-static-page:not(.npbsd-static-page-contact) .npbsd-static-content>*{max-width:960px}
}

/* v0.10.360: ranking alignment reset — balanced PC columns, left-aligned salary cells, calmer rank scale. */
.npbsd-ranking-season-ranking .npbsd-ranking-head-money,
.npbsd-ranking-season-ranking .npbsd-ranking-money,
.npbsd-ranking-season-ranking .npbsd-ranking-head-change,
.npbsd-ranking-season-ranking .npbsd-ranking-change,
.npbsd-ranking-season-ranking .npbsd-ranking-head-age,
.npbsd-ranking-season-ranking .npbsd-ranking-age,
.npbsd-ranking-season-ranking .npbsd-ranking-head-position,
.npbsd-ranking-season-ranking .npbsd-ranking-position,
.npbsd-ranking-team-ranking .npbsd-ranking-head-money,
.npbsd-ranking-team-ranking .npbsd-ranking-money,
.npbsd-ranking-team-ranking .npbsd-ranking-head-change,
.npbsd-ranking-team-ranking .npbsd-ranking-change,
.npbsd-ranking-team-ranking .npbsd-ranking-head-age,
.npbsd-ranking-team-ranking .npbsd-ranking-age,
.npbsd-ranking-team-ranking .npbsd-ranking-head-position,
.npbsd-ranking-team-ranking .npbsd-ranking-position,
.npbsd-ranking-position-ranking .npbsd-ranking-head-money,
.npbsd-ranking-position-ranking .npbsd-ranking-money,
.npbsd-ranking-position-ranking .npbsd-ranking-head-change,
.npbsd-ranking-position-ranking .npbsd-ranking-change,
.npbsd-ranking-position-ranking .npbsd-ranking-head-age,
.npbsd-ranking-position-ranking .npbsd-ranking-age{text-align:left}
.npbsd-ranking-season-ranking .npbsd-ranking-money,
.npbsd-ranking-team-ranking .npbsd-ranking-money,
.npbsd-ranking-position-ranking .npbsd-ranking-money{justify-self:start}
.npbsd-ranking-season-ranking .npbsd-ranking-pos,
.npbsd-ranking-team-ranking .npbsd-ranking-pos,
.npbsd-ranking-position-ranking .npbsd-ranking-pos,
.npbsd-ranking-season-ranking .npbsd-ranking-top3 .npbsd-ranking-pos,
.npbsd-ranking-team-ranking .npbsd-ranking-top3 .npbsd-ranking-pos,
.npbsd-ranking-position-ranking .npbsd-ranking-top3 .npbsd-ranking-pos{font-size:15px;font-weight:800}
@media (min-width:961px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-head,.npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-head,.npbsd-ranking-team-ranking .npbsd-ranking-table-row{
    grid-template-columns:72px minmax(240px,1.5fr) minmax(165px,1fr) minmax(125px,.85fr) minmax(80px,.6fr) minmax(95px,.7fr);
    column-gap:24px;
    justify-content:stretch;
  }
  .npbsd-ranking-position-ranking .npbsd-ranking-table-head,.npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:72px minmax(250px,1.6fr) minmax(170px,1fr) minmax(125px,.82fr) minmax(80px,.6fr);
    column-gap:26px;
    justify-content:stretch;
  }
}
@media (min-width:768px) and (max-width:960px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-head,.npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-head,.npbsd-ranking-team-ranking .npbsd-ranking-table-row{
    grid-template-columns:54px minmax(190px,1.35fr) minmax(135px,.95fr) minmax(95px,.76fr) minmax(56px,.55fr) minmax(68px,.62fr);
    column-gap:14px;
    justify-content:stretch;
  }
  .npbsd-ranking-position-ranking .npbsd-ranking-table-head,.npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:54px minmax(200px,1.45fr) minmax(140px,.98fr) minmax(95px,.76fr) minmax(56px,.55fr);
    column-gap:15px;
    justify-content:stretch;
  }
}
@media (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-money,
  .npbsd-ranking-team-ranking .npbsd-ranking-money,
  .npbsd-ranking-position-ranking .npbsd-ranking-money{text-align:left;justify-self:start}
  .npbsd-ranking-season-ranking .npbsd-ranking-pos,
  .npbsd-ranking-team-ranking .npbsd-ranking-pos,
  .npbsd-ranking-position-ranking .npbsd-ranking-pos,
  .npbsd-ranking-season-ranking .npbsd-ranking-top3 .npbsd-ranking-pos,
  .npbsd-ranking-team-ranking .npbsd-ranking-top3 .npbsd-ranking-pos,
  .npbsd-ranking-position-ranking .npbsd-ranking-top3 .npbsd-ranking-pos{font-size:15px}
}
@media (min-width:480px) and (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(165px,190px) max-content;
    column-gap:12px;
    justify-content:start;
  }
}


/* v0.10.361: mobile salary-column position correction.
 * The salary text was already left-aligned in v0.10.360, but the flexible
 * player track still consumed residual width and pushed the salary column
 * visually to the far right. Cap the player track on phone layouts so the
 * salary column itself begins closer to the player while preserving the
 * existing rank/player/salary three-cell structure and full-row click target.
 */
@media (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,clamp(128px,40vw,180px)) max-content;
    column-gap:8px;
    justify-content:start;
  }
  .npbsd-ranking-season-ranking .npbsd-ranking-money,
  .npbsd-ranking-team-ranking .npbsd-ranking-money,
  .npbsd-ranking-position-ranking .npbsd-ranking-money{
    text-align:left;
    justify-self:start;
    width:max-content;
  }
}
@media (min-width:480px) and (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(165px,180px) max-content;
    column-gap:12px;
    justify-content:start;
  }
}


/* v0.10.362: mobile salary balance + results-head metadata normalization.
 * Mobile salary keeps left-aligned text inside a right-side fixed-width track:
 * long values can reach the right edge, while short values start from the same
 * salary-column left baseline. Desktop salary-ranking layout remains v0.10.360.
 * Result metadata moves from far-right floating placement to a left-side
 * heading group for ranking/career/contract/search result heads.
 */
@media (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) clamp(120px,36vw,150px);
    column-gap:8px;
    justify-content:stretch;
  }
  .npbsd-ranking-season-ranking .npbsd-ranking-money,
  .npbsd-ranking-team-ranking .npbsd-ranking-money,
  .npbsd-ranking-position-ranking .npbsd-ranking-money{
    width:auto;
    min-width:0;
    text-align:left;
    justify-self:stretch;
  }
}
@media (min-width:480px) and (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) 150px;
    column-gap:12px;
  }
}
@media (min-width:768px){
  .npbsd-results-head{
    justify-content:flex-start;
    align-items:baseline;
    flex-wrap:wrap;
    column-gap:14px;
    row-gap:4px;
  }
  .npbsd-results-head>p{margin:0}
}


/* v0.10.363: mobile salary right-balance + contract header/value baseline fix.
 * Mobile salary values remain left-aligned inside their own cell, but the
 * salary track is narrowed so the longest ordinary value can approach the
 * row's right edge while short values share one left baseline.
 * Contract desktop/tablet monetary columns now use the same left edge as
 * their headers; the grid tracks themselves are unchanged.
 */
@media (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) 108px;
    column-gap:8px;
    justify-content:stretch;
  }
  .npbsd-ranking-season-ranking .npbsd-ranking-money,
  .npbsd-ranking-team-ranking .npbsd-ranking-money,
  .npbsd-ranking-position-ranking .npbsd-ranking-money{
    width:auto;
    min-width:0;
    text-align:left;
    justify-self:stretch;
  }
}
@media (min-width:480px) and (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) 112px;
    column-gap:12px;
  }
}
@media (min-width:768px){
  .npbsd-contract-table .npbsd-contract-money,
  .npbsd-contract-table .npbsd-contract-salary{
    text-align:left;
    justify-self:start;
  }
}

/* v0.10.364: ranking alignment consistency.
 * Keep the v0.10.363 mobile salary track position, but right-align salary
 * text inside that fixed track so short/long values share one right edge.
 * Career-ranking numeric columns use the same left baseline for header/value,
 * and all public ranking position labels share the calmer 15px scale.
 */
@media (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-money,
  .npbsd-ranking-team-ranking .npbsd-ranking-money,
  .npbsd-ranking-position-ranking .npbsd-ranking-money{
    text-align:right;
    justify-self:stretch;
  }
}
@media (min-width:768px){
  .npbsd-ranking-career-ranking .npbsd-ranking-head-money,
  .npbsd-ranking-career-ranking .npbsd-ranking-money,
  .npbsd-ranking-career-ranking .npbsd-ranking-peak,
  .npbsd-ranking-combined-career-ranking .npbsd-ranking-head-money,
  .npbsd-ranking-combined-career-ranking .npbsd-ranking-money,
  .npbsd-ranking-combined-career-ranking .npbsd-ranking-breakdown{
    text-align:left;
    justify-self:start;
  }
}
.npbsd-ranking-pos,
.npbsd-ranking-top3 .npbsd-ranking-pos,
.npbsd-contract-rank{
  font-size:15px;
  font-weight:800;
}

/* v0.10.366: mobile salary right-gutter tuning.
 * Keep v0.10.365's accepted salary track and right-aligned salary text, but
 * reduce the trailing gutter to 24px so the common salary edge moves right
 * without touching the row boundary. Other accepted ranking rules are unchanged.
 */
@media (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) 108px 24px;
    column-gap:8px;
    justify-content:stretch;
  }
  .npbsd-ranking-season-ranking .npbsd-ranking-money,
  .npbsd-ranking-team-ranking .npbsd-ranking-money,
  .npbsd-ranking-position-ranking .npbsd-ranking-money{
    grid-column:3;
    text-align:right;
    justify-self:stretch;
  }
}
@media (min-width:480px) and (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) 112px 24px;
    column-gap:12px;
  }
}


/* v0.10.367: mobile salary edge symmetry.
 * Keep the accepted 108/112px salary track and right-aligned salary text,
 * but remove the extra trailing gutter. The ranking row already has equal
 * 11px left/right padding on SP, so the rank text left edge and salary text
 * right edge now share the same effective outer inset.
 */
@media (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) 108px;
    column-gap:8px;
    justify-content:stretch;
  }
  .npbsd-ranking-season-ranking .npbsd-ranking-money,
  .npbsd-ranking-team-ranking .npbsd-ranking-money,
  .npbsd-ranking-position-ranking .npbsd-ranking-money{
    grid-column:3;
    text-align:right;
    justify-self:stretch;
  }
}
@media (min-width:480px) and (max-width:767px){
  .npbsd-ranking-season-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-team-ranking .npbsd-ranking-table-row,
  .npbsd-ranking-position-ranking .npbsd-ranking-table-row{
    grid-template-columns:47px minmax(0,1fr) 112px;
    column-gap:12px;
  }
}


/* v0.10.369: public card tone unification (A refined).
 * Keep the data-first layout, but replace flat square white cards with a
 * restrained shared surface: near-white fill, 12px radius, subtle border,
 * soft shadow, and a small hover lift. Data tables/rows stay table-like.
 */
:root{
  --npbsd-card-bg:#fcfdff;
  --npbsd-card-border:#e1eaf0;
  --npbsd-card-radius:12px;
  --npbsd-card-shadow:0 5px 16px rgba(17,49,73,.055);
  --npbsd-card-shadow-hover:0 10px 24px rgba(17,49,73,.09);
  --npbsd-card-hover:#f8fbfd;
  --npbsd-card-arrow-bg:#edf6fb;
}

/* Shared clickable card surfaces. */
.npbsd-discovery-grid a,.npbsd-quick-links a,.npbsd-quick-team-links a,.npbsd-feature-links a,.npbsd-position-directory a,.npbsd-contract-tabs a,.npbsd-fa-related-links a,.npbsd-fa-other-team-links a,.npbsd-related-grid a{
  border:1px solid var(--npbsd-card-border)!important;
  border-radius:var(--npbsd-card-radius)!important;
  background:var(--npbsd-card-bg);
  box-shadow:var(--npbsd-card-shadow);
  overflow:hidden;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;
}
.npbsd-discovery-grid a:hover,.npbsd-discovery-grid a:focus-visible,.npbsd-quick-links a:hover,.npbsd-quick-links a:focus-visible,.npbsd-quick-team-links a:hover,.npbsd-quick-team-links a:focus-visible,.npbsd-feature-links a:hover,.npbsd-feature-links a:focus-visible,.npbsd-position-directory a:hover,.npbsd-position-directory a:focus-visible,.npbsd-contract-tabs a:hover,.npbsd-contract-tabs a:focus-visible,.npbsd-fa-related-links a:hover,.npbsd-fa-related-links a:focus-visible,.npbsd-fa-other-team-links a:hover,.npbsd-fa-other-team-links a:focus-visible,.npbsd-related-grid a:hover,.npbsd-related-grid a:focus-visible{
  background:var(--npbsd-card-hover);
  border-color:#d2e0e9!important;
  box-shadow:var(--npbsd-card-shadow-hover);
  transform:translateY(-2px);
}

/* Non-link card surfaces. */
.npbsd-metric-card,
.npbsd-static-card,
.npbsd-empty{
  border:1px solid var(--npbsd-card-border)!important;
  border-radius:var(--npbsd-card-radius)!important;
  background:var(--npbsd-card-bg);
  box-shadow:var(--npbsd-card-shadow);
  overflow:hidden;
}

/* Home discovery keeps the compact v0.10.368 dimensions, but uses the
 * shared near-white card surface so cards separate clearly from page BG. */
.npbsd-discovery-grid a{background:var(--npbsd-card-bg)}
.npbsd-discovery-grid a:hover,.npbsd-discovery-grid a:focus-visible{background:var(--npbsd-card-hover)}

/* Year selector: preserve the active year as the one strong filled state. */
.npbsd-quick-links a:nth-child(2){
  border-color:var(--npbsd-navy)!important;
  background:var(--npbsd-navy);
  color:#fff!important;
  box-shadow:0 7px 18px rgba(6,43,73,.16);
}
.npbsd-quick-links a:nth-child(2):hover,.npbsd-quick-links a:nth-child(2):focus-visible{
  background:#0a4b7d;
  border-color:#0a4b7d!important;
  color:#fff!important;
}

/* Calm circular arrow treatment for the main home cards only. */
.npbsd-discovery-grid b{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  right:12px;
  border-radius:999px;
  background:var(--npbsd-card-arrow-bg);
  color:var(--npbsd-link);
  font-size:20px;
}
.npbsd-discovery-grid a:hover b,.npbsd-discovery-grid a:focus-visible b{background:#e1f0f8}

@media(max-width:767px){
  .npbsd-discovery-grid a,.npbsd-quick-links a,.npbsd-quick-team-links a,.npbsd-feature-links a,.npbsd-position-directory a,.npbsd-contract-tabs a,.npbsd-fa-related-links a,.npbsd-fa-other-team-links a,.npbsd-related-grid a,.npbsd-metric-card,.npbsd-static-card,.npbsd-empty{
    border-radius:10px!important;
    box-shadow:0 4px 13px rgba(17,49,73,.05);
  }
}

/* v0.10.370: TOP exploration typography + compact year selector only.
 * Keep v0.10.369 card tone globally. Normalize only primary TOP discovery labels
 * to the team-card weight, and make the five year buttons lower and single-row
 * on mobile without affecting related/FA/player card typography. */
.npbsd-discovery-grid strong,
.npbsd-feature-links strong{
  font-weight:850;
}
.npbsd-quick-links a{
  min-height:50px;
  padding:6px 12px;
  font-weight:850;
  line-height:1.2;
  white-space:nowrap;
}
@media(max-width:767px){
  .npbsd-quick-links{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:5px;
  }
  .npbsd-quick-links a{
    min-height:44px;
    padding:4px 5px;
    font-size:12px;
    font-weight:850;
    line-height:1.15;
  }
}
@media(max-width:380px){
  .npbsd-quick-links{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:4px;
  }
  .npbsd-quick-links a{
    min-height:42px;
    padding:3px 2px;
    font-size:11px;
  }
}


/* v0.10.371: TOP year selector hover visibility + balanced mobile five-column fill only.
 * Fix the legacy white-on-hover rule for inactive years, and make the mobile
 * selector a true full-width grid instead of inheriting the old flex layout. */
.npbsd-quick-links a:not(:nth-child(2)):hover,
.npbsd-quick-links a:not(:nth-child(2)):focus-visible{
  background:var(--npbsd-card-hover);
  border-color:#d2e0e9!important;
  color:var(--npbsd-navy)!important;
}
@media(max-width:767px){
  .npbsd-quick-links{
    display:grid;
    width:100%;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:6px;
  }
  .npbsd-quick-links a{
    width:100%;
    min-width:0;
    min-height:48px;
    padding:5px 3px;
    font-size:13px;
  }
}
@media(max-width:380px){
  .npbsd-quick-links{
    display:grid;
    width:100%;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:5px;
  }
  .npbsd-quick-links a{
    min-height:46px;
    padding:4px 2px;
    font-size:12px;
  }
}

/* v0.10.380 Advertisement Management v1 */
.npbsd-ad-slot{box-sizing:border-box;position:relative}
.npbsd-ad-slot .npbsd-ad-label{display:block;margin:0 0 5px;color:#8495a4;font-size:10px;font-weight:700;line-height:1.2;letter-spacing:.04em;text-align:center}
.npbsd-ad-slot .npbsd-ad-code{display:flex;align-items:center;justify-content:center;max-width:100%;min-width:0}
.npbsd-ad-slot .npbsd-ad-code>iframe,.npbsd-ad-slot .npbsd-ad-code>img{max-width:100%}
.npbsd-ad-slot--primary-inline{width:100%;min-height:90px;margin:18px auto 22px;padding:7px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:visible}
.npbsd-ad-slot--floating-managed{position:fixed;z-index:960;right:18px;bottom:18px;max-width:min(360px,calc(100vw - 36px));min-width:0;padding:5px;background:rgba(255,255,255,.96);border:1px solid rgba(13,59,91,.12);border-radius:8px;box-shadow:0 8px 28px rgba(13,59,91,.16)}
.npbsd-ad-slot--floating-managed .npbsd-ad-label{margin-bottom:3px}
.npbsd-ad-slot--floating-provider{width:0;height:0;margin:0;padding:0;overflow:visible}
.npbsd-ad-slot--floating-provider>.npbsd-ad-label{display:none}
.npbsd-ad-close{position:absolute;z-index:2;top:-11px;right:-11px;width:26px;height:26px;padding:0;border:1px solid #cbd5dd;border-radius:50%;background:#fff;color:#405364;font:700 18px/22px Arial,sans-serif;text-align:center;cursor:pointer;box-shadow:0 2px 8px rgba(13,59,91,.14)}
.npbsd-ad-close:hover,.npbsd-ad-close:focus-visible{color:#0d3b5b;border-color:#8ca5b8;outline:none}
.npbsd-ad-slot[hidden]{display:none!important}
@media (max-width:767px){
  .npbsd-ad-slot--primary-inline{min-height:250px;margin:14px auto 18px;padding:5px 0}
  .npbsd-ad-slot--floating-managed{left:50%;right:auto;bottom:12px;transform:translateX(-50%);max-width:calc(100vw - 24px);padding:4px}
  .npbsd-ad-slot--floating-managed .npbsd-ad-code{max-width:100%}
}

/* v0.10.385: multi-year contract list filter/sort (client-side, season list only). */
/* v0.10.386: compact toolbar styling — same width, smaller controls, count/reset on the same row. */
.npbsd-contract-filter{display:flex;align-items:flex-end;gap:18px;margin:0 0 12px;padding:10px 14px 11px;background:#fff;border:1px solid var(--npbsd-line);border-radius:8px;box-shadow:0 2px 10px rgba(17,49,73,.035)}
.npbsd-contract-filter[hidden]{display:none!important}
.npbsd-contract-filter-fields{flex:1 1 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}
.npbsd-contract-filter-field{display:flex;flex-direction:column;gap:3px;min-width:0}
.npbsd-contract-filter-field label{color:var(--npbsd-muted);font-size:10px;font-weight:800;line-height:1.3;letter-spacing:.06em}
.npbsd-contract-filter-field select{box-sizing:border-box;width:100%;min-width:0;height:32px;margin:0;padding:0 26px 0 10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border:1px solid transparent;border-radius:6px;background:#f2f6f9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='5' viewBox='0 0 9 5'%3E%3Cpath d='M1 1l3.5 3L8 1' fill='none' stroke='%2316324f' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--npbsd-text);font:inherit;font-size:12.5px;font-weight:700;line-height:1.2;-webkit-appearance:none;appearance:none;cursor:pointer;transition:background-color .14s ease,border-color .14s ease}
.npbsd-contract-filter-field select:hover{background-color:#e8eff5}
.npbsd-contract-filter-field select:focus-visible{outline:2px solid var(--npbsd-link);outline-offset:1px;background-color:#fff;border-color:var(--npbsd-line-strong)}
.npbsd-contract-filter-foot{flex:0 0 auto;display:flex;align-items:center;gap:12px;height:32px;margin:0;padding:0;border:0}
.npbsd-contract-filter-count{margin:0;color:var(--npbsd-muted);font-size:11px;line-height:1.2;white-space:nowrap}
.npbsd-contract-filter-count strong{color:var(--npbsd-navy);font-size:14px;font-weight:900}
.npbsd-contract-filter-reset{flex:0 0 auto;height:32px;padding:0 12px;border:1px solid var(--npbsd-line);border-radius:6px;background:#fff;color:var(--npbsd-navy);font:inherit;font-size:11.5px;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .14s ease,border-color .14s ease}
.npbsd-contract-filter-reset:hover{background:var(--npbsd-link-soft);border-color:var(--npbsd-line-strong)}
.npbsd-contract-filter-reset:focus-visible{outline:2px solid var(--npbsd-link);outline-offset:1px}
.npbsd-contract-filter-empty[hidden],.npbsd-contract-table[hidden]{display:none!important}
.npbsd-contract-table-row[hidden]{display:none!important}
/* Striping follows visible rows once JS filtering is active (the original nth-child stripe counts hidden rows). */
.npbsd-contract-table.is-js-filter .npbsd-contract-table-row{background:#fff}
.npbsd-contract-table.is-js-filter .npbsd-contract-table-row:hover,.npbsd-contract-table.is-js-filter .npbsd-contract-table-row:focus-visible{background:var(--npbsd-link-soft)}
.npbsd-contract-table.is-js-filter .npbsd-contract-table-row.is-stripe{background:#f8fafc}
.npbsd-contract-table.is-js-filter .npbsd-contract-table-row.is-last-visible{border-bottom:0}
@media(max-width:900px){
  .npbsd-contract-filter{flex-direction:column;align-items:stretch;gap:9px}
  .npbsd-contract-filter-foot{justify-content:space-between}
}
@media(max-width:767px){
  .npbsd-contract-filter{gap:8px;padding:9px 10px}
  .npbsd-contract-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 7px}
  .npbsd-contract-filter-field{gap:2px}
  .npbsd-contract-filter-field label{font-size:9.5px}
  .npbsd-contract-filter-field select{height:28px;padding-left:8px;padding-right:22px;border-radius:5px;background-position:right 7px center;font-size:11.5px}
  .npbsd-contract-filter-foot{height:auto;padding-top:7px;border-top:1px solid var(--npbsd-line)}
  .npbsd-contract-filter-count{font-size:10.5px}
  .npbsd-contract-filter-count strong{font-size:13px}
  .npbsd-contract-filter-reset{height:28px;padding:0 10px;border-radius:5px;font-size:11px}
}

/* v0.10.385: player page metric cards never overflow; unpublished contract term stays compact. */
.npbsd-player-metrics>.npbsd-metric-card{min-width:0}
.npbsd-player-metrics .npbsd-metric-card strong,.npbsd-player-metrics .npbsd-metric-card .npbsd-key-note,.npbsd-contract-strip .npbsd-multiyear-mobile-meta span{overflow-wrap:break-word}
.npbsd-contract-strip--term-unknown .npbsd-multiyear-mobile-meta{white-space:normal}
.npbsd-contract-strip--term-unknown .npbsd-multiyear-mobile-meta .npbsd-multiyear-mobile-summary{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere}
/* v0.10.405 team payroll tables (/teams/ and /teams/{team}/): equal cell padding on every column;
   rank, team and name columns have set widths, the year column (v0.10.406) and the number columns share the
   rest equally; numbers in the normal weight (v0.10.406). */
.npbsd-payroll-table-wrap{background:#fff;box-shadow:0 6px 22px rgba(17,49,73,.06)}
.npbsd-payroll-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12.5px;line-height:1.5}
.npbsd-payroll-table th,.npbsd-payroll-table td{padding:10px 12px;text-align:left;vertical-align:middle;overflow-wrap:anywhere}
.npbsd-payroll-table th{color:var(--npbsd-navy);background:#e8f0f6;border-bottom:2px solid var(--npbsd-navy);font-size:11px;font-weight:800;line-height:1.35}
.npbsd-payroll-table td{border-top:1px solid var(--npbsd-line);font-weight:400}
.npbsd-payroll-table tbody tr:nth-child(even) td{background:#f8fafc}
.npbsd-payroll-table tbody tr:last-child td{border-bottom:2px solid var(--npbsd-navy)}
.npbsd-payroll-table td small{display:block;margin-top:2px;color:var(--npbsd-muted);font-size:11px}
body.npbsd-public .npbsd-payroll-table td a{color:var(--npbsd-link);text-decoration:underline;text-underline-offset:2px}
body.npbsd-public .npbsd-payroll-table td a:hover{text-decoration:none}
.npbsd-payroll-table .npbsd-payroll-col-rank{width:6em}
.npbsd-payroll-table .npbsd-payroll-col-team{width:18em}
.npbsd-payroll-table .npbsd-payroll-col-name{width:12em}
.npbsd-payroll-table--wide-team .npbsd-payroll-col-team{width:30em}
.npbsd-payroll-note{margin:8px 0 0;color:var(--npbsd-muted);font-size:12px}
.npbsd-payroll-unit{display:none}
.npbsd-payroll-short::after{content:none}
@media (max-width:767px){
  .npbsd-payroll-table{font-size:12px}
  .npbsd-payroll-table th,.npbsd-payroll-table td{padding:8px 6px;white-space:nowrap}
  .npbsd-payroll-table .npbsd-payroll-pc-only{display:none}
  .npbsd-payroll-table .npbsd-payroll-col-rank{width:4.2em}
  .npbsd-payroll-table .npbsd-payroll-col-team,.npbsd-payroll-table--wide-team .npbsd-payroll-col-team{width:42%}
  .npbsd-payroll-short[data-short] .npbsd-payroll-short-full{display:none}
  .npbsd-payroll-short[data-short]::after{content:attr(data-short)}
  .npbsd-payroll-unit{display:block;margin:0 0 6px;color:var(--npbsd-muted);font-size:11px;text-align:right}
}
/* v0.10.407 year directory of the season / team / position index pages: one block per decade, year-only links
   in 5 columns on PC and phones (no accordion). */
.npbsd-year-directory{display:grid;gap:10px}
.npbsd-year-decade{padding:14px 18px 16px;background:#fff;box-shadow:0 4px 14px rgba(17,49,73,.035)}
.npbsd-year-decade h3{margin:0 0 10px;color:var(--npbsd-navy);font-size:16px;font-weight:900;line-height:1.3}
.npbsd-year-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
body.npbsd-public .npbsd-year-grid a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 4px;border:1px solid var(--npbsd-line);border-radius:6px;background:#f8fafc;color:var(--npbsd-navy);font-size:15px;font-weight:800;text-decoration:none;white-space:nowrap}
body.npbsd-public .npbsd-year-grid a:hover,body.npbsd-public .npbsd-year-grid a:focus-visible{border-color:var(--npbsd-link);background:var(--npbsd-link-soft);color:var(--npbsd-link)}
.npbsd-year-note{margin:8px 0 0;color:var(--npbsd-muted);font-size:12px}
@media (max-width:767px){
  .npbsd-year-decade{padding:12px 12px 13px}
  .npbsd-year-decade h3{margin-bottom:8px;font-size:15px}
  .npbsd-year-grid{gap:6px}
  body.npbsd-public .npbsd-year-grid a{min-height:44px;font-size:14px}
}
/* v0.10.409 one-character team marks (年俸DB の決まり): the character of the season's official name, the colour of
   the lineage (today's club; 近鉄 its own). Next to player names in tables (20px, phones 18px), on the 球団から探す
   cards (44px, phones 28px so the club name stays inside the card) and in the menu (28px, phones 25px). */
.npbsd-team-mark{--npbsd-mark-bg:#f2f5f7;--npbsd-mark-fg:#344a5b;--npbsd-mark-border:#91a2ae;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:border-box;width:20px;height:20px;margin-left:6px;border:1.5px solid var(--npbsd-mark-border);border-radius:4px;background:var(--npbsd-mark-bg);color:var(--npbsd-mark-fg);font-size:12px;font-weight:800;font-style:normal;line-height:1;letter-spacing:0;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:default}
.npbsd-team-mark--two{font-size:10px;letter-spacing:-.04em}
.npbsd-team-mark--card,.npbsd-team-mark--nav{margin-left:0}
.npbsd-team-mark--card{width:44px;height:44px;border-width:2px;border-radius:8px;font-size:24px}
.npbsd-team-mark--card.npbsd-team-mark--two{font-size:18px}
.npbsd-team-mark--nav{width:28px;height:28px;border-radius:6px;font-size:15px}
.npbsd-team-mark--nav.npbsd-team-mark--two{font-size:12px}
.npbsd-team-mark--giants{--npbsd-mark-bg:#171717;--npbsd-mark-fg:#f39800;--npbsd-mark-border:#f39800}
.npbsd-team-mark--hanshin{--npbsd-mark-bg:#ffffff;--npbsd-mark-fg:#111111;--npbsd-mark-border:#111111;background-image:repeating-linear-gradient(to right,#fff 0 2px,#cfcfcf 2px 3px)}
.npbsd-team-mark--hawks{--npbsd-mark-bg:#ffc300;--npbsd-mark-fg:#111111;--npbsd-mark-border:#111111}
.npbsd-team-mark--dragons{--npbsd-mark-bg:#00479d;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#00479d}
.npbsd-team-mark--carp{--npbsd-mark-bg:#e60012;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#e60012}
.npbsd-team-mark--swallows{--npbsd-mark-bg:#002f6c;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#002f6c}
.npbsd-team-mark--baystars{--npbsd-mark-bg:#005eb8;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#005eb8}
.npbsd-team-mark--fighters{--npbsd-mark-bg:#ffffff;--npbsd-mark-fg:#00468b;--npbsd-mark-border:#00468b}
.npbsd-team-mark--marines{--npbsd-mark-bg:#1a1a1a;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#1a1a1a}
.npbsd-team-mark--lions{--npbsd-mark-bg:#003366;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#003366}
.npbsd-team-mark--eagles{--npbsd-mark-bg:#8c001a;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#8c001a}
.npbsd-team-mark--buffaloes{--npbsd-mark-bg:#002654;--npbsd-mark-fg:#f3d384;--npbsd-mark-border:#002654}
.npbsd-team-mark--kintetsu{--npbsd-mark-bg:#c8102e;--npbsd-mark-fg:#ffffff;--npbsd-mark-border:#c8102e}
.npbsd-fa-player-name{min-width:0}
/* 契約更改ランキング: the player column takes the width of the removed club column (mark and 移籍 note on one line). */
.npbsd-payroll-table--changes .npbsd-payroll-col-name{width:20em}
@media (max-width:767px){
  .npbsd-team-mark{width:18px;height:18px;margin-left:5px;font-size:11px}
  .npbsd-team-mark--two{font-size:9px}
  .npbsd-team-mark--card,.npbsd-team-mark--nav{margin-left:0}
  .npbsd-team-mark--card{width:28px;height:28px;border-radius:6px;font-size:16px}
  .npbsd-team-mark--card.npbsd-team-mark--two{font-size:12px}
  .npbsd-team-mark--nav{width:25px;height:25px;border-radius:5px;font-size:13px}
  .npbsd-team-mark--nav.npbsd-team-mark--two{font-size:10px}
  .npbsd-payroll-table--changes .npbsd-payroll-col-name{width:12em}
}
/* v0.10.410 the mark on the left of the name: mark and name as one inline-flex pair (a long name wraps inside its
   own box, the mark never stays alone on a line; notes such as 「…から移籍」 stay under the name). Colours (v0.10.411):
   阪神 white with a black 「神」, black frame and light grey stripes (案C), ソフトバンク yellow ground with black and a
   black frame as thick as every other club's (v0.10.412). */
.npbsd-mark-name{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;min-width:0;vertical-align:baseline}
.npbsd-mark-name>.npbsd-team-mark{margin-left:0}
.npbsd-mark-name>:not(.npbsd-team-mark){min-width:0}
.npbsd-ranking-player .npbsd-mark-name>.npbsd-player-detail-link-label,.npbsd-contract-player .npbsd-mark-name>.npbsd-player-detail-link-label{color:var(--npbsd-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-skip-ink:auto}
.npbsd-fa-player-name{display:inline-flex;align-items:baseline;gap:6px;max-width:100%}
.npbsd-fa-player-name>.npbsd-team-mark{margin-left:0}
@media (max-width:767px){
  .npbsd-mark-name,.npbsd-fa-player-name{gap:5px}
}
/* v0.10.413 layout tweaks (Human 2026-10-24): the four number boxes at the top of the 契約更改ランキング in one row (PC:
   4 x 220px; phones: 4 equal columns with smaller text). The table alignment is the v0.10.414 rule B' below. */
.npbsd-ranking-summary.npbsd-ranking-summary--four{grid-template-columns:repeat(4,minmax(0,220px))}
@media (max-width:767px){
  .npbsd-ranking-summary.npbsd-ranking-summary--four{grid-template-columns:repeat(4,minmax(0,1fr))}
  .npbsd-ranking-summary--four>div{padding:10px 8px 11px}
  .npbsd-ranking-summary--four span{font-size:11px;white-space:nowrap}
  .npbsd-ranking-summary--four strong{font-size:15px;white-space:nowrap}
}
/* v0.10.415 tables (Controller / Human 2026-10-24, site-wide; replaces rule B' of v0.10.414).
   Left-aligned: only the name column of a table that lines up many players (or clubs) to compare them (rankings,
   lists, free-agent tables, 契約更改, the club tables of /teams/), as wide as its longest name (on phones up to
   --npbsd-key-cap, longer names wrap with the mark kept on the first line). A table of one player / one club over the
   seasons (a player's 年俸推移, 成績, 契約履歴; a club's 推移 and ポジション別) has no left-aligned column. Every other
   column is centred, a heading like its column. Columns are as wide as their contents and the rest of the width is
   shared out between them (justify-content:space-between), so the space between neighbouring contents is the same.
   Tables are grids (table / row / cell semantics kept) with every row one box over all columns (subgrid), so the
   stripes and rules drawn on the cells before are drawn on the rows. Lists built as grids (rankings, multi-year
   contracts, a player's contract history on PC): one grid per list with the rows as subgrids. */
:root{--npbsd-key-cap:150px}
/* real tables as grids, each row one box over all columns */
table.npbsd-rule-table,table.npbsd-fa-table,table.npbsd-table,table.npbsd-season-stats-table,table.npbsd-season-stats-mobile-table{display:grid;grid-template-columns:var(--npbsd-cols);justify-content:space-between;border-collapse:separate;border-spacing:0}
table.npbsd-rule-table>thead,table.npbsd-rule-table>tbody,table.npbsd-fa-table>thead,table.npbsd-fa-table>tbody,table.npbsd-table>thead,table.npbsd-table>tbody,table.npbsd-season-stats-table>thead,table.npbsd-season-stats-table>tbody,table.npbsd-season-stats-mobile-table>thead,table.npbsd-season-stats-mobile-table>tbody{display:contents}
table.npbsd-rule-table>:is(thead,tbody)>tr:not([hidden]),table.npbsd-fa-table>:is(thead,tbody)>tr:not([hidden]),table.npbsd-table>:is(thead,tbody)>tr:not([hidden]),table.npbsd-season-stats-table>:is(thead,tbody)>tr:not([hidden]),table.npbsd-season-stats-mobile-table>:is(thead,tbody)>tr:not([hidden]){display:grid;grid-column:1/-1;grid-template-columns:subgrid;gap:normal}
table.npbsd-rule-table :is(td,th):not(#npbsd-none),table.npbsd-fa-table :is(td,th):not(#npbsd-none),table.npbsd-table :is(td,th):not(#npbsd-none),table.npbsd-season-stats-table :is(td,th):not(#npbsd-none),table.npbsd-season-stats-mobile-table :is(td,th):not(#npbsd-none){width:auto!important;min-width:0;align-content:center}  /* :not(#…) outranks the cell widths with !important of the old table layout */
table.npbsd-rule-table :is(td,th)[colspan],table.npbsd-fa-table :is(td,th)[colspan],table.npbsd-table :is(td,th)[colspan],table.npbsd-season-stats-table :is(td,th)[colspan],table.npbsd-season-stats-mobile-table :is(td,th)[colspan]{grid-column:1/-1}
@media (max-width:767px){table.npbsd-rule-table,table.npbsd-fa-table,table.npbsd-table,table.npbsd-season-stats-table,table.npbsd-season-stats-mobile-table{grid-template-columns:var(--npbsd-cols-sp,var(--npbsd-cols))}}
/* a table without a name column (one player / one club over the seasons, other groups): every column as wide as its
   contents plus the same share of the rest (auto columns stretched), so the outer columns keep half a space too */
table.npbsd-table,table.npbsd-season-stats-table,table.npbsd-season-stats-mobile-table,table.npbsd-rule-table:not(:has(.npbsd-col-key)){justify-content:normal}
/* columns of the tables the templates write (payroll-style tables carry theirs from PHP): name column max-content, the rest auto */
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-player-table{--npbsd-cols:max-content repeat(5,auto);--npbsd-cols-sp:fit-content(var(--npbsd-key-cap)) repeat(3,auto)}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-player-table:has(th.npbsd-fa-col-position){--npbsd-cols:auto max-content repeat(5,auto)}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-market-table{--npbsd-cols:max-content repeat(6,auto);--npbsd-cols-sp:fit-content(var(--npbsd-key-cap)) repeat(5,auto);--npbsd-key-cap:96px}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-outcome-table{--npbsd-cols:max-content repeat(4,auto)}
table.npbsd-table{--npbsd-cols:repeat(8,auto)}  /* v0.10.416: 球団内順位 after NPB順位 */
table.npbsd-table :is(td,th):not(#npbsd-none):not(#npbsd-none-2){min-width:auto}  /* v0.10.416: with 8 columns at 768-1000 px a column keeps its content width (the 所属 names wrap) instead of the salary running over */
table.npbsd-season-stats-table--batting{--npbsd-cols:repeat(10,auto)}
table.npbsd-season-stats-table--pitching{--npbsd-cols:repeat(8,auto)}
table.npbsd-season-stats-mobile-table--batting{--npbsd-cols:repeat(7,auto)}
table.npbsd-season-stats-mobile-table--pitching{--npbsd-cols:repeat(6,auto)}
/* alignment: the name column of a comparison table left, every other column centred (headings like their columns) */
table.npbsd-rule-table :is(td,th),table.npbsd-fa-table :is(td,th),table.npbsd-table :is(td,th),table.npbsd-season-stats-table :is(td,th),table.npbsd-season-stats-mobile-table :is(td,th){text-align:center}
table.npbsd-rule-table .npbsd-col-key,table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table .npbsd-fa-col-player,table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-outcome-table tr>:first-child{text-align:left;white-space:nowrap}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table .npbsd-fa-col-player .npbsd-fa-player-line{width:max-content;max-width:none;margin:0;text-align:left;grid-template-columns:max-content 26px}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-market-table .npbsd-fa-col-player .npbsd-fa-player-line{display:block;text-align:left}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table .npbsd-fa-toggle-cell .npbsd-fa-detail-toggle{margin:0 auto}
table.npbsd-table td>*{text-align:center}
table.npbsd-table td>.npbsd-season-contract-badge{margin-inline:auto}  /* v0.10.416: the block badge (“7年契約・4年目”) under the salary centred like the salary */
@media (max-width:767px){
  table.npbsd-rule-table .npbsd-col-key,table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table .npbsd-fa-col-player{white-space:normal}
  table.npbsd-rule-table .npbsd-col-key>*{width:max-content;max-width:100%}
  table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table .npbsd-fa-col-player .npbsd-fa-player-line{max-width:100%;grid-template-columns:minmax(0,max-content) 24px}
  table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-market-table .npbsd-fa-col-player .npbsd-fa-player-line{display:block}
}
/* stripes and rules on the rows (the cells drew them before; same colours and widths) */
table.npbsd-payroll-table.npbsd-payroll-table thead tr{background:#e8f0f6;border-bottom:2px solid var(--npbsd-navy)}
table.npbsd-payroll-table.npbsd-payroll-table tbody tr{border-top:1px solid var(--npbsd-line)}
table.npbsd-payroll-table.npbsd-payroll-table tbody tr:first-child{border-top:0}
table.npbsd-payroll-table.npbsd-payroll-table tbody tr:nth-child(even){background:#f8fafc}
table.npbsd-payroll-table.npbsd-payroll-table tbody tr:last-child,.npbsd-fold.is-folded table.npbsd-payroll-table.npbsd-payroll-table tbody tr:has(+ .npbsd-fold-extra){border-bottom:2px solid var(--npbsd-navy)}
table.npbsd-fa-table.npbsd-fa-table thead tr{background:#e8f0f6;border-bottom:2px solid var(--npbsd-navy)}
table.npbsd-fa-table.npbsd-fa-table tbody tr{border-top:1px solid var(--npbsd-line)}
table.npbsd-fa-table.npbsd-fa-table tbody tr:nth-child(even){background:#f8fafc}
table.npbsd-fa-table.npbsd-fa-table tbody tr:last-child{border-bottom:2px solid var(--npbsd-navy)}
table.npbsd-fa-table.npbsd-fa-table tbody tr:target{background:#fff9df}
table.npbsd-table.npbsd-table thead tr{background:#e8f0f6;border-bottom:2px solid var(--npbsd-navy)}
table.npbsd-table.npbsd-table tbody tr{border-bottom:1px solid var(--npbsd-line)}
table.npbsd-table.npbsd-table tbody tr:nth-child(even){background:#f8fafc}
table.npbsd-table.npbsd-table tbody tr:hover{background:#fcfcfc}
table.npbsd-table.npbsd-table tbody tr:last-child{border-bottom:2px solid var(--npbsd-navy)}
:is(table.npbsd-season-stats-table,table.npbsd-season-stats-mobile-table) thead tr{background:#e8f0f6;border-bottom:2px solid var(--npbsd-navy)}
:is(table.npbsd-season-stats-table,table.npbsd-season-stats-mobile-table) tbody tr{border-bottom:1px solid var(--npbsd-line)}
table.npbsd-season-stats-table tbody tr:last-child{border-bottom:0}
:is(table.npbsd-season-stats-table,table.npbsd-season-stats-mobile-table) tbody tr.npbsd-season-career-row{background:#f0f6fa;border-top:2px solid #a9c6d9}
:is(table.npbsd-payroll-table,table.npbsd-fa-table,table.npbsd-table) :is(td,th):not(#npbsd-none),:is(table.npbsd-season-stats-table,table.npbsd-season-stats-mobile-table) :is(td,th):not(#npbsd-none):not(#npbsd-none-2){border-top:0!important;border-bottom:0!important}
@media (max-width:767px){table.npbsd-fa-table.npbsd-fa-table:not(.npbsd-fa-player-table) tr:not([hidden]){margin:0;padding:0;border-left:0;border-right:0;border-radius:0}}
/* grid lists: one grid, rows as subgrids */
.npbsd-ranking-table.npbsd-ranking-table,.npbsd-contract-table.npbsd-contract-table{display:grid;column-gap:20px;justify-content:space-between}
.npbsd-ranking-table>.npbsd-ranking-table-head,.npbsd-ranking-table>.npbsd-ranking-table-row,
.npbsd-contract-table>.npbsd-contract-table-head,.npbsd-contract-table>.npbsd-contract-table-row{grid-column:1/-1;grid-template-columns:subgrid;grid-template-areas:none;column-gap:normal;justify-content:normal}  /* the list's gaps, with the space shared out between the columns */
.npbsd-ranking-table.npbsd-ranking-season-ranking,.npbsd-ranking-table.npbsd-ranking-team-ranking{grid-template-columns:auto max-content repeat(4,auto)}
.npbsd-ranking-table.npbsd-ranking-position-ranking,.npbsd-ranking-table.npbsd-ranking-combined-career-ranking{grid-template-columns:auto max-content repeat(3,auto)}
.npbsd-ranking-table.npbsd-ranking-career-ranking{grid-template-columns:auto max-content repeat(2,auto)}
.npbsd-contract-table.npbsd-contract-table--list{grid-template-columns:max-content repeat(4,auto)}
.npbsd-contract-table.npbsd-contract-table--ranking{grid-template-columns:auto max-content repeat(3,auto)}
.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>*,
.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>*{grid-area:auto;justify-self:stretch;min-width:0;text-align:center}
.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(2),
.npbsd-contract-table--list>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(1),
.npbsd-contract-table--ranking>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(2){text-align:left}
.npbsd-contract-table>.npbsd-contract-table-row>.npbsd-contract-money{display:block;text-align:center}
@media (min-width:768px){
  .npbsd-player-contract-history.npbsd-player-contract-history{display:grid;grid-template-columns:repeat(4,auto);justify-content:normal;column-gap:18px}
  .npbsd-player-contract-history>*{grid-column:1/-1}
  .npbsd-player-contract-history>.npbsd-player-contract-head,.npbsd-player-contract-history>.npbsd-player-contract-row{grid-template-columns:subgrid;column-gap:normal}
  .npbsd-player-contract-history>:is(.npbsd-player-contract-head,.npbsd-player-contract-row)>*{justify-self:stretch;min-width:0;text-align:center}
  .npbsd-player-contract-history>.npbsd-player-contract-row>.npbsd-player-contract-note{grid-column:1/-1;text-align:left}
}
@media (max-width:767px){
  .npbsd-ranking-table.npbsd-ranking-table,.npbsd-contract-table.npbsd-contract-table{column-gap:8px}
  .npbsd-ranking-table>.npbsd-ranking-table-row,.npbsd-contract-table>.npbsd-contract-table-row{column-gap:normal}
  .npbsd-ranking-table.npbsd-ranking-table,.npbsd-contract-table.npbsd-contract-table--ranking{grid-template-columns:auto fit-content(var(--npbsd-key-cap)) auto}
  .npbsd-contract-table.npbsd-contract-table--list{grid-template-columns:fit-content(var(--npbsd-key-cap)) auto}
  .npbsd-ranking-table>.npbsd-ranking-table-row>:nth-child(2),.npbsd-contract-table--list>.npbsd-contract-table-row>:nth-child(1),
  .npbsd-contract-table--ranking>.npbsd-contract-table-row>:nth-child(2){text-align:left}
  .npbsd-contract-table>.npbsd-contract-table-row>.npbsd-contract-money{display:flex;flex-direction:column;align-items:center;justify-content:center}
}
/* v0.10.415 long lists: the first rows, the rest opened in place by the button (rows stay in the HTML; nothing is
   folded without JavaScript). npbsd-fold--sp: folded on phones only. */
.npbsd-fold:not(.npbsd-fold--sp).is-folded .npbsd-fold-extra{display:none!important}
@media (max-width:767px){.npbsd-fold--sp.is-folded .npbsd-fold-extra{display:none!important}}
@media (min-width:768px){.npbsd-fold-toggle.npbsd-fold-toggle--sp{display:none}}
.npbsd-fold-toggle{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:14px auto 0;padding:10px 22px;border:1px solid #c9d6df;border-radius:999px;background:#fff;color:var(--npbsd-navy);font-size:13px;font-weight:700;line-height:1.3;cursor:pointer}
.npbsd-fold-toggle.npbsd-fold-toggle[hidden]{display:none}
.npbsd-fold-toggle::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.npbsd-fold-toggle[aria-expanded="true"]::after{transform:translateY(2px) rotate(-135deg)}
.npbsd-fold-toggle:hover{background:#f3f7fa}
/* v0.10.415 page contents of the 契約更改 ranking (under the number boxes) */
.npbsd-page-toc{margin:16px 0 0}
.npbsd-page-toc ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
body.npbsd-public .npbsd-page-toc a{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border:1px solid #c9d6df;border-radius:999px;background:#fff;color:var(--npbsd-navy);font-size:13px;font-weight:700;text-decoration:none}
body.npbsd-public .npbsd-page-toc a:hover{background:#f3f7fa;text-decoration:none}
.npbsd-payroll-section[id]{scroll-margin-top:16px}
/* v0.10.418 player cards narrow (Controller / Human 2026-10-25): the cards at the top of a player page on PC widths.
   The FA card keeps 国内FA and 海外FA side by side while its content box is at least 300px wide (as before; the
   longest remaining-time text, 「あと4年144日」 at 152px, still clears the other half); narrower, the two stack in two
   rows. A card link longer than its card (「NPB・MLB生涯年俸ランキングを見る」, 「…のFA取得状況を見る」) wraps onto a second
   line inside the space kept for the link instead of running under its arrow. Type sizes and texts unchanged. */
@media (min-width:768px){
  .npbsd-player-metrics>.npbsd-fa-metric{container-type:inline-size}
  .npbsd-player-metrics .npbsd-metric-cta>.npbsd-cta-label--desktop{min-width:0;white-space:normal}
}
@container (max-width:299.98px){
  .npbsd-player-metrics .npbsd-fa-values{grid-template-columns:minmax(0,1fr);row-gap:8px}
}
/* v0.10.419 narrow PC fixes (Controller / Human 2026-10-25). Page-top descriptions use the width of their heading.
   On PC widths of 768-1111 px only (1112 px and up and phones unchanged): no overlapping text, nothing running out of
   its box, and amounts, club and player names never broken in the middle of a word. word-break:keep-all lets Japanese
   text break only at spaces and punctuation (・ 〜 （ →), so 「82億350万円」, 「千葉ロッテマリーンズ」 or 「マルティネス」
   stay on one line; where a table then needs more room, its cell padding (and on /teams/ the type size) shrinks at
   those widths only. The menu keeps each item on one line with columns at least as wide as their label (it fits from
   768 px, so the phone menu still starts at 767 px). 球団から探す drops to two columns while a card cannot hold
   「東北楽天ゴールデンイーグルス」 (308 px); the large amounts of the player cards scale down with a card under 244 px
   (「約308億3,232万円」 is 238 px at 29 px). */
.npbsd-ranking-hero>p:not(.npbsd-kicker){max-width:none}
@media (min-width:768px) and (max-width:1111px){
  .npbsd-global-nav-inner{grid-template-columns:repeat(7,minmax(max-content,1fr))}
  .npbsd-global-nav .npbsd-nav-main-link .npbsd-nav-label--desktop{white-space:nowrap}
  .npbsd-contract-table.npbsd-contract-table--list{grid-template-columns:repeat(5,auto)}
  .npbsd-contract-table--list>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>*{min-width:auto;word-break:keep-all}
  table.npbsd-payroll-table :is(td,th):not(#npbsd-none):not(#npbsd-none-2){min-width:auto;word-break:keep-all;overflow-wrap:normal}
  table.npbsd-table :is(td,th){word-break:keep-all}
  .npbsd-section-head>h2{word-break:keep-all}
  .npbsd-quick-team-links{grid-template-columns:repeat(auto-fill,minmax(308px,1fr))}
  .npbsd-quick-team-links .npbsd-team-name{word-break:keep-all}
  .npbsd-player-metrics>.npbsd-metric-card{container-type:inline-size}
  .npbsd-player-metrics>.npbsd-metric-card strong{font-size:min(29px,11.9cqi)}
}
@media (min-width:768px) and (max-width:899px){
  table.npbsd-table :is(td,th):not(#npbsd-none){padding-left:10px;padding-right:10px}
}
@media (min-width:768px) and (max-width:913px){
  table.npbsd-payroll-table:has(th:nth-child(9)) :is(td,th):not(#npbsd-none):not(#npbsd-none-2){padding-left:6px;padding-right:6px;font-size:12px}
}
@media (min-width:768px) and (max-width:799px){
  table.npbsd-payroll-table:has(th:nth-child(9)) :is(td,th):not(#npbsd-none):not(#npbsd-none-2){padding-left:5px;padding-right:5px;font-size:11.5px}
}
/* v0.10.420 phone names (Controller 2026-10-25): on phones a player name breaks only where Japanese allows it (after 「・」, never before it, and at spaces), as on narrow PC screens from v0.10.419; the name column widens instead. */
@media (max-width:767px){
  :is(.npbsd-player-detail-link-label,td.npbsd-payroll-col-name a){word-break:keep-all;line-break:strict}
}
/* v0.10.421 (Controller / Human 2026-10-25). The page-top description of every page (any *-hero, also pages added
   later) has one size on phones, set only here: 13px / 1.7 as on /salary/{year}/; PC sizes unchanged. */
@media (max-width:767px){
  main [class*="-hero"]>p:not(.npbsd-kicker):not(.npbsd-partial-year-note){font-size:13px;line-height:1.7}
}
/* v0.10.422 (Controller / Human 2026-10-25, from a mock). (1) The page contents of the 契約更改 pages are separate
   square buttons in the link blue with 「▾」 and a light blue ground on hover: one row of equal buttons on PC, two rows
   on phones (2 a row for 4 buttons, 3 a row for 5 or 6). (2) The 年度ごと list of /salary/changes/ on PC is an exception
   to the table rule: groups (選手 left, number right in the change colour) under a two-row head with a coloured line
   (v0.10.423: column widths and the switch to the phone table below). (3) On phones a table-rule table of 年度・アップ額1位・
   ダウン額1位 instead. */
.npbsd-page-toc ul{display:grid;grid-template-columns:repeat(var(--npbsd-toc-n,4),minmax(0,1fr));gap:8px}
body.npbsd-public .npbsd-page-toc a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:6px 10px;border:1px solid var(--npbsd-link);border-radius:4px;background:#fff;color:var(--npbsd-link);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}
body.npbsd-public .npbsd-page-toc a::after{content:"▾";font-size:12px;line-height:1}
body.npbsd-public .npbsd-page-toc a:hover,body.npbsd-public .npbsd-page-toc a:focus-visible{background:#eaf3fb;text-decoration:none}
@media (max-width:767px){
  .npbsd-page-toc ul{grid-template-columns:repeat(var(--npbsd-toc-sp,3),minmax(0,1fr))}
  body.npbsd-public .npbsd-page-toc a{padding:6px;font-size:12px}
}
table.npbsd-years-table{width:100%;border-collapse:collapse;font-size:12.5px;line-height:1.5}
.npbsd-years-table th,.npbsd-years-table td{padding:10px 8px;vertical-align:middle;white-space:nowrap}
.npbsd-years-table th{color:var(--npbsd-navy);background:#e8f0f6;font-size:11px;font-weight:800;line-height:1.35}
.npbsd-years-table thead tr:last-child th,.npbsd-years-table thead th[rowspan]{border-bottom:2px solid var(--npbsd-navy)}
.npbsd-years-table td{border-top:1px solid var(--npbsd-line)}
.npbsd-years-table tbody tr:nth-child(even) td{background:#f8fafc}
.npbsd-years-table tbody tr:last-child td{border-bottom:2px solid var(--npbsd-navy)}
.npbsd-years-table th.npbsd-years-group{padding-bottom:7px;border-bottom:3px solid #17685b;text-align:center}
.npbsd-years-table th.npbsd-years-group--down{border-bottom-color:#9b3344}
.npbsd-years-table .npbsd-years-line{display:flex;align-items:center;justify-content:inherit;min-height:22px}
.npbsd-years-table td.npbsd-years-num .npbsd-years-line{justify-content:flex-end}
.npbsd-years-table .npbsd-years-num--up,.npbsd-years-table .npbsd-years-num--rate{color:#17685b}
.npbsd-years-table .npbsd-years-num--down{color:#9b3344}
body.npbsd-public .npbsd-years-table td a{color:var(--npbsd-link);text-decoration:underline;text-underline-offset:2px}
body.npbsd-public .npbsd-years-table td a:hover{text-decoration:none}
/* v0.10.423 (Controller / Human 2026-10-25, from a mock). The 年度ごと list of /salary/changes/ with fixed column widths,
   not widths from the contents: on PC a narrow 年度 and three groups of exactly the same width, each split alike (選手
   takes the rest, the number column is wide enough for the longest value, −4億2,500万円), the same side padding in every
   cell, the dividing lines as cell borders. Below 900px the PC table gives way to the phone table (年度・アップ額1位・
   ダウン額1位, the amount under the name), with the lead without アップ率. The phone table: a narrow 年度 and two halves,
   every cell left with the same padding, the amount under the name's first character. */
table.npbsd-years-table{table-layout:fixed}
.npbsd-years-table th,.npbsd-years-table td{padding:10px 12px}
.npbsd-years-table col.npbsd-years-c-year{width:76px}
.npbsd-years-table col.npbsd-years-c-num{width:116px}
.npbsd-years-table .npbsd-years-year{text-align:left}
.npbsd-years-table .npbsd-years-name{text-align:left;border-left:1px solid var(--npbsd-line)}
.npbsd-years-table th.npbsd-years-group{border-left:1px solid var(--npbsd-line)}
.npbsd-years-table .npbsd-years-num{text-align:right}
table.npbsd-payroll-table.npbsd-payroll-table--changes-years{grid-template-columns:64px repeat(2,minmax(0,1fr))}
table.npbsd-payroll-table.npbsd-payroll-table--changes-years :is(th,td):not(#npbsd-none):not(#npbsd-none-2){padding-left:12px;padding-right:12px;text-align:left;justify-content:flex-start}
table.npbsd-payroll-table.npbsd-payroll-table--changes-years td small{padding-left:26px}
@media (min-width:900px){
  .npbsd-years-sp{display:none}
}
@media (max-width:899px){
  .npbsd-years-pc,.npbsd-years-pc-note{display:none}
}
@media (max-width:767px){
  table.npbsd-payroll-table.npbsd-payroll-table--changes-years{grid-template-columns:56px repeat(2,minmax(0,1fr))}
  table.npbsd-payroll-table.npbsd-payroll-table--changes-years :is(th,td):not(#npbsd-none):not(#npbsd-none-2){padding-left:10px;padding-right:10px}
  table.npbsd-payroll-table.npbsd-payroll-table--changes-years td small{padding-left:24px}
}
/* v0.10.424 (Controller / Human 2026-10-25, from a mock). The 年度ごと list of /salary/changes/ with the contents of each
   group or cell as one block of a fixed width in the middle (the same space left and right of it). PC: 選手 (120px, the
   longest name with its mark) and the number (96px, the longest value) side by side, 選手 left and the number right,
   the same in the three groups and in the second head row; the 選手 and number columns share the group alike, the 選手
   cell spanning a column of 24px more, so the block sits in the middle of the group. The phone table (also on narrow PC screens): the name with the
   amount under it as a block of 120px (112px on phones) in the middle of each column, text left, the heading on the same
   line; a column too narrow for it keeps the block at the cell's left padding. */
.npbsd-years-table col.npbsd-years-c-num{width:auto}
.npbsd-years-table col.npbsd-years-c-shift{width:24px}
.npbsd-years-table :is(td,th).npbsd-years-name{padding-right:0}
.npbsd-years-table :is(td,th).npbsd-years-num{padding-left:0}
.npbsd-years-table .npbsd-years-unit{display:block;text-align:left}
.npbsd-years-table .npbsd-years-name .npbsd-years-unit{width:120px;margin-left:auto}
.npbsd-years-table .npbsd-years-num .npbsd-years-unit{width:96px;margin-right:auto;text-align:right}
table.npbsd-payroll-table.npbsd-payroll-table--changes-years :is(th,td).npbsd-col-key:not(#npbsd-none):not(#npbsd-none-2){padding-left:max(12px,calc((100% - 120px) / 2))}
@media (max-width:767px){
  table.npbsd-payroll-table.npbsd-payroll-table--changes-years :is(th,td).npbsd-col-key:not(#npbsd-none):not(#npbsd-none-2){padding-left:max(10px,calc((100% - 112px) / 2))}
}
/* v0.10.425 (Controller / Human 2026-10-25, from a mock). プロ◯年目の年俸 /ranking/pro-year/: the 入団 line (and the list's
   年度) small under the name on phones only, where the PC column is hidden; a shared first place one name a line. */
table.npbsd-payroll-table td small.npbsd-pro-year-sp{display:none}
table.npbsd-payroll-table td .npbsd-pro-year-line{display:block}
table.npbsd-payroll-table td .npbsd-pro-year-line+.npbsd-pro-year-line{margin-top:4px}
@media (max-width:767px){
  table.npbsd-payroll-table td small.npbsd-pro-year-sp{display:block}
}
/* v0.10.430 (Controller / Human 2026-10-26, from the T128 mock). 1億円プレーヤー /salary/100m/ and /salary/{year}/100m/: the 「新」
   mark right of the name (a season's first 1億円), the bar of the number of players (PC only, in a PC-only column), and the
   part of a number-box label shown on PC only (the phone labels fit the one row of four). */
table.npbsd-payroll-table td .npbsd-100m-new{display:inline-block;margin-left:6px;padding:0 5px;border-radius:3px;background:#c2410c;color:#fff;font-size:11px;font-weight:700;line-height:18px;vertical-align:1px;white-space:nowrap}
table.npbsd-payroll-table td .npbsd-100m-bars{display:flex;align-items:center;width:200px;max-width:100%}
table.npbsd-payroll-table td .npbsd-100m-bar{display:block;height:9px;background:var(--npbsd-navy)}
table.npbsd-payroll-table td .npbsd-100m-bar:first-child{border-radius:2px 0 0 2px}
table.npbsd-payroll-table td .npbsd-100m-bar--new{background:#c2410c;border-radius:0 2px 2px 0}
.npbsd-ranking-summary b.npbsd-100m-pc-text{font-weight:inherit}
@media (max-width:767px){
  .npbsd-ranking-summary b.npbsd-100m-pc-text{display:none}
}
/* v0.10.435 (Human 2026-10-27): the last small fixes, each only where it went wrong (other widths unchanged).
   The MLB mark of a 年俸推移 year cell keeps its 6px from the year as a space (a zero-size space widened by word-spacing)
   instead of a margin, so when the mark drops under the year (768 px) it sits centred under it; on one line nothing moves.
   NPB・MLB 生涯年俸 and 生涯年俸 on 339 px and less: a little less room around the columns so that the longest name
   (「ダルビッシュ有」) and amount fit. FA names never broken in the middle of a word on phones, as the other tables
   (v0.10.420; below 360 px the name column widens for it, from 360 px the table keeps its widths). On phones an FA
   heading breaks only between its phrases (span.npbsd-phrase, one piece each). A phone 年俸推移 card wraps a club change
   (「レンジャーズ → ドジャース」) after the arrow instead of cutting it. */
table.npbsd-table td>strong+.npbsd-league-chip{margin-left:0}
table.npbsd-table td>strong:has(+.npbsd-league-chip)::after{content:" ";font-size:0;word-spacing:6px}
@media (max-width:339px){
  .npbsd-ranking-table.npbsd-ranking-table:is(.npbsd-ranking-career-ranking,.npbsd-ranking-combined-career-ranking){column-gap:6px}
  :is(.npbsd-ranking-career-ranking,.npbsd-ranking-combined-career-ranking) .npbsd-ranking-table-row.npbsd-ranking-table-row{padding-left:8px;padding-right:8px}
}
@media (max-width:767px){
  table.npbsd-fa-table a.npbsd-fa-player{word-break:keep-all;line-break:strict}
  .npbsd-phrase-break .npbsd-phrase{display:inline-block;max-width:100%}
  .npbsd-history-team .npbsd-history-team-name{white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
}
@media (max-width:359px){
  table.npbsd-fa-table a.npbsd-fa-player{overflow-wrap:normal}
}
/* v0.10.437 (Human 2026-10-27): FA宣言 — the 「宣言」 mark right of the rank mark (no new column), the badge of the
   player's FA card on the line of its label (below it, on one line, only where it does not fit), the result column.
   v0.10.438: the mark sits inside the rank mark, outside it to the right (position absolute), so the rank mark, the
   name column and the row keep their place and size; the grid column of the mark only for a row without a rank */
.npbsd-fa-declared-mark{display:inline-block;margin-left:4px;padding:1px 4px;border:1px solid #c9d3dc;border-radius:3px;background:#fff;color:var(--npbsd-navy);font-size:10px;font-weight:800;line-height:1.3;white-space:nowrap;vertical-align:middle}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table .npbsd-fa-col-player .npbsd-fa-player-line:has(>.npbsd-fa-declared-mark){grid-template-columns:max-content 26px max-content;column-gap:6px}
.npbsd-fa-player-line>.npbsd-fa-declared-mark{grid-column:3;margin:1px 0 0;align-self:start}
.npbsd-fa-rank:has(>.npbsd-fa-declared-mark){position:relative}
.npbsd-fa-rank>.npbsd-fa-declared-mark{position:absolute;left:calc(100% + 4px);top:50%;margin:0;transform:translateY(-50%)}
/* v0.10.438 (Human 2026-10-27): where the mark does not fit beside the rank mark — 334-429 px: the rank column of a market
   table that has a mark is wider by the mark (every row and the heading the same; 334 px and up, where no name column gets
   narrower); 333 px and less: the mark below the rank mark */
@media (min-width:334px) and (max-width:429px){
  table.npbsd-fa-table.npbsd-fa-market-table:has(.npbsd-fa-declared-mark) :is(td,th).npbsd-fa-col-rank:not(#npbsd-none){padding-right:33px}
}
@media (max-width:333px){
  .npbsd-fa-rank>.npbsd-fa-declared-mark{left:50%;top:calc(100% + 2px);transform:translateX(-50%)}
}
.npbsd-fa-key-label--declared{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:1px}
.npbsd-fa-declared-badge{color:var(--npbsd-link)!important;font-size:10px;font-weight:700;letter-spacing:0;line-height:inherit;white-space:nowrap;text-decoration:none!important}
.npbsd-fa-declared-badge:hover,.npbsd-fa-declared-badge:focus-visible{text-decoration:underline!important;text-underline-offset:2px}
table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-player-table.npbsd-fa-declaration-table{--npbsd-cols:max-content repeat(4,auto);--npbsd-cols-sp:fit-content(var(--npbsd-key-cap)) repeat(4,auto)}
table.npbsd-fa-declaration-table .npbsd-fa-result{font-weight:800}
table.npbsd-fa-declaration-table tr.is-pending .npbsd-fa-result{color:var(--npbsd-muted);font-weight:700}
@media (max-width:767px){
  table.npbsd-fa-table.npbsd-fa-table.npbsd-fa-table .npbsd-fa-col-player .npbsd-fa-player-line:has(>.npbsd-fa-declared-mark){grid-template-columns:minmax(0,max-content) 24px max-content;column-gap:4px}
  .npbsd-fa-player-table.npbsd-fa-declaration-table .npbsd-fa-col-salary{display:table-cell;white-space:nowrap}
  .npbsd-fa-declared-mark{padding:0 3px;font-size:9px}
  .npbsd-fa-key-label--declared{row-gap:3px}  /* wrapped below the label: clear of the rank chip at the top right */
  .npbsd-fa-declared-badge{font-size:9px;line-height:1.25}
}
/* v0.10.450 (Human 2026-11-01, T172): the list 「{年}年の退団選手」 (the ranking table; on phones the date under the name).
   v0.10.451 (T173): the section 「入団・移籍・退団」 of the player page: two columns, 出来事 left-aligned */
table.npbsd-payroll-table--departures .npbsd-departure-kind{font-weight:800}
table.npbsd-payroll-table--departures .npbsd-departure-pending{color:var(--npbsd-muted)}
.npbsd-departures-team{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-size:16px}
.npbsd-departures-team small{color:var(--npbsd-muted);font-size:13px;font-weight:700}
.npbsd-departures-empty{padding:18px;border:1px dashed #c9d3dc;border-radius:8px;background:#fff;color:var(--npbsd-muted)}
.npbsd-departures-empty p{margin:0}
table.npbsd-payroll-table--transactions :is(th,td):nth-child(1){white-space:nowrap}
table.npbsd-payroll-table--transactions :is(th,td):nth-child(2):not(#npbsd-none){text-align:left;white-space:normal;overflow-wrap:anywhere}
/* v0.10.454 (Human / Controller 2026-11-02, T178): the list 「{年}年の退団選手」 has no salary on phones: its sentence under the table goes with the column */
@media (max-width:767px){
  .npbsd-departures-pc-text{display:none}
  table.npbsd-payroll-table--departures .npbsd-departure-result{white-space:normal;word-break:keep-all}  /* the longest name fits: before 「へ移籍」 only */
}
@media (max-width:767px){
  /* v0.10.459 (T191): a part of a name too long for its cell breaks inside the cell and never lies on the next column. */
  :is(.npbsd-ranking-player,.npbsd-contract-player) .npbsd-player-detail-link-label{overflow-wrap:break-word}
  /* v0.10.460 (T191): WebKit does not pass the space of justify-content:space-between on to the rows that are subgrids, so the right column stood in the middle. The name column takes the rest of the width instead: the right column ends at the right in every engine, the space is between the name and it. */
  .npbsd-contract-table.npbsd-contract-table--list{grid-template-columns:minmax(0,1fr) auto;justify-content:normal}
  .npbsd-ranking-table:is(.npbsd-ranking-season-ranking,.npbsd-ranking-team-ranking,.npbsd-ranking-position-ranking,.npbsd-ranking-career-ranking){grid-template-columns:auto minmax(0,1fr) auto;justify-content:normal}
  /* v0.10.461 (T191): the name of the contract list stands in the middle of its row, not at the bottom; the rankings already do. */
  .npbsd-contract-table--list>.npbsd-contract-table-row>.npbsd-contract-player{align-self:center}
}
/* v0.10.462-0.10.463 (Human / Controller 2026-11-05, T193): THE COMMON RULE OF THE TABLES ON PHONES. One place for the values; every table uses them, a new table too.
   Sizes, weights and line heights of the kinds of text, the space in the cells, the space at the left and right of a table. A table too narrow for them changes its columns, not the values. The cards of the player page are not tables. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (max-width:767px){
  :root{--npbsd-sp-name-size:13px;--npbsd-sp-sub-size:11px;--npbsd-sp-value-size:13px;--npbsd-sp-rank-size:13px;--npbsd-sp-small-size:10.5px;--npbsd-sp-head-size:11px;--npbsd-sp-bold:800;--npbsd-sp-thin:400;--npbsd-sp-name-line:1.65;--npbsd-sp-sub-line:1.35;--npbsd-sp-head-line:1.35;--npbsd-sp-cell-y:14px;--npbsd-sp-head-y:8px;--npbsd-sp-col-gap:8px;--npbsd-sp-inset:11px}
  .npbsd-contract-player .npbsd-player-detail-link-label:not(#npbsd-none):not(#npbsd-none-2),.npbsd-ranking-player .npbsd-player-detail-link-label:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-rule-table td.npbsd-col-key:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-rule-table td.npbsd-col-key a:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-name:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-name a:not(#npbsd-none):not(#npbsd-none-2),a.npbsd-fa-player:not(#npbsd-none):not(#npbsd-none-2){font-size:var(--npbsd-sp-name-size);font-weight:var(--npbsd-sp-bold);line-height:var(--npbsd-sp-name-line)}
  .npbsd-contract-player:not(#npbsd-none):not(#npbsd-none-2),.npbsd-ranking-player:not(#npbsd-none):not(#npbsd-none-2){line-height:var(--npbsd-sp-name-line)}
  .npbsd-ranking-mobile-age:not(#npbsd-none):not(#npbsd-none-2),.npbsd-ranking-mobile-meta:not(#npbsd-none):not(#npbsd-none-2),.npbsd-ranking-team-meta:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-rule-table td small:not(#npbsd-none):not(#npbsd-none-2){margin-top:0;font-size:var(--npbsd-sp-sub-size);font-weight:var(--npbsd-sp-thin);line-height:var(--npbsd-sp-sub-line)}
  .npbsd-ranking-money:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-money-value:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-mobile-years:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-num:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-num a:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-payroll-table:not(.npbsd-payroll-table--transactions) td.npbsd-payroll-col-text:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-payroll-table:not(.npbsd-payroll-table--transactions) td.npbsd-payroll-col-text :is(b,span):not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-year:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-year a:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-domestic:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-overseas:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-age:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-market-position:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-salary:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table tbody td:not(.npbsd-season-mobile-team,.npbsd-season-mobile-action):not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table tbody td:not(.npbsd-season-mobile-team,.npbsd-season-mobile-action) span:not(#npbsd-none):not(#npbsd-none-2){font-size:var(--npbsd-sp-value-size)}
  /* the weight of the values: only the value that decides the rank is bold, in a table with a column of ranks. How to tell: the rank column has plain numbers (a link in it is the heading of a row). The value that decides the rank is the first number column shown without a link. A new table follows the same rule. What was bold for a meaning stays (a title of the season stats, an FA day count): those are elements of their own. */
  .npbsd-contract-money-value:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-mobile-years:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-num:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-num a:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-payroll-table:not(.npbsd-payroll-table--transactions) td.npbsd-payroll-col-text:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-payroll-table:not(.npbsd-payroll-table--transactions) td.npbsd-payroll-col-text :is(b,span):not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-domestic:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-overseas:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-age:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-market-position:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-fa-col-salary:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table tbody tr:not(.npbsd-season-career-row) td:not(.npbsd-season-mobile-team,.npbsd-season-mobile-action):not(#npbsd-none):not(#npbsd-none-2){font-weight:var(--npbsd-sp-thin)}
  .npbsd-ranking-money:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-table--ranking .npbsd-contract-money-value:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-payroll-table:has(td.npbsd-payroll-col-rank):not(:has(td.npbsd-payroll-col-rank a))>tbody>tr>:nth-child(1 of td.npbsd-payroll-col-num:not(.npbsd-payroll-pc-only):not(:has(a))):not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-year:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-year a:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-payroll-table td.npbsd-payroll-col-text:first-child:not(#npbsd-none):not(#npbsd-none-2){font-weight:var(--npbsd-sp-bold)}
  table.npbsd-payroll-table--transactions td.npbsd-payroll-col-text:not(#npbsd-none):not(#npbsd-none-2){font-size:var(--npbsd-sp-value-size);font-weight:var(--npbsd-sp-thin)}
  .npbsd-ranking-pos:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-rank:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-rank:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-rank a:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-payroll-col-team.npbsd-col-eq:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table tbody th:not(#npbsd-none):not(#npbsd-none-2){font-size:var(--npbsd-sp-rank-size);font-weight:var(--npbsd-sp-bold)}
  .npbsd-contract-mobile-status:not(#npbsd-none):not(#npbsd-none-2),.npbsd-fa-rank:not(#npbsd-none):not(#npbsd-none-2),.npbsd-ranking-active-chip:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-season-mobile-team:not(#npbsd-none):not(#npbsd-none-2),td.npbsd-season-mobile-team span:not(#npbsd-none):not(#npbsd-none-2){font-size:var(--npbsd-sp-small-size);font-weight:var(--npbsd-sp-thin)}
  table.npbsd-payroll-table thead th:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-fa-table thead th:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table thead th:not(#npbsd-none):not(#npbsd-none-2){font-size:var(--npbsd-sp-head-size);font-weight:var(--npbsd-sp-bold);line-height:var(--npbsd-sp-head-line);padding-block:var(--npbsd-sp-head-y)}
  /* the rows: the space at the left and right of the table and in the cells; the columns with the same gap */
  .npbsd-ranking-table.npbsd-ranking-table,.npbsd-contract-table.npbsd-contract-table,table.npbsd-rule-table.npbsd-rule-table,table.npbsd-fa-table.npbsd-fa-player-table,table.npbsd-season-stats-mobile-table.npbsd-season-stats-mobile-table{column-gap:var(--npbsd-sp-col-gap);justify-content:normal}
  .npbsd-ranking-table>.npbsd-ranking-table-row:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-table>.npbsd-contract-table-row:not(#npbsd-none):not(#npbsd-none-2){min-height:0;padding:var(--npbsd-sp-cell-y) var(--npbsd-sp-inset)}
  table.npbsd-rule-table>:is(thead,tbody)>tr:not(:has(>[colspan])):not(#npbsd-none):not(#npbsd-none-2),table.npbsd-fa-table.npbsd-fa-player-table>:is(thead,tbody)>tr:not(:has(>[colspan])):not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table>:is(thead,tbody)>tr:not(:has(>[colspan])):not(#npbsd-none):not(#npbsd-none-2){padding-inline:var(--npbsd-sp-inset)}
  table.npbsd-rule-table>tbody>tr>:not([colspan]):not(#npbsd-none):not(#npbsd-none-2),table.npbsd-fa-table.npbsd-fa-player-table>tbody>tr>:not([colspan]):not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table>tbody>tr>:not([colspan]):not(#npbsd-none):not(#npbsd-none-2){padding:var(--npbsd-sp-cell-y) 0}
  table.npbsd-rule-table>thead>tr>*:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-fa-table.npbsd-fa-player-table>thead>tr>*:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-season-stats-mobile-table>thead>tr>*:not(#npbsd-none):not(#npbsd-none-2){padding-inline:0}
  /* the name in the middle of its row, the right column at the right and in the middle */
  .npbsd-contract-table>.npbsd-contract-table-row>.npbsd-contract-player:not(#npbsd-none):not(#npbsd-none-2),.npbsd-ranking-table>.npbsd-ranking-table-row>*:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-table>.npbsd-contract-table-row>*:not(#npbsd-none):not(#npbsd-none-2){align-self:center}
  .npbsd-ranking-money:not(#npbsd-none):not(#npbsd-none-2),.npbsd-contract-table>.npbsd-contract-table-row>.npbsd-contract-money:not(#npbsd-none):not(#npbsd-none-2){text-align:right;align-items:flex-end}
  table.npbsd-rule-table:has(.npbsd-col-key)>:is(thead,tbody)>tr>:nth-last-child(1 of :not(.npbsd-payroll-pc-only)):not([colspan],.npbsd-col-key):not(#npbsd-none):not(#npbsd-none-2){text-align:right}
  /* the name column takes the rest of the width in every table that compares players or clubs, so the right column ends at the right in every engine (WebKit does not pass the space of justify-content on to the rows that are subgrids) */
  .npbsd-contract-table.npbsd-contract-table--list:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) auto}
  .npbsd-contract-table.npbsd-contract-table--ranking:not(#npbsd-none):not(#npbsd-none-2),.npbsd-ranking-table.npbsd-ranking-table:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:auto minmax(0,1fr) auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(2 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(3 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>.npbsd-col-key:first-child){grid-template-columns:minmax(0,1fr) auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(2 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(3 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>:first-child+.npbsd-col-key){grid-template-columns:auto minmax(0,1fr)}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(3 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(4 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>.npbsd-col-key:first-child){grid-template-columns:minmax(0,1fr) auto auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(3 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(4 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>:first-child+.npbsd-col-key){grid-template-columns:auto minmax(0,1fr) auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(4 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(5 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>.npbsd-col-key:first-child){grid-template-columns:minmax(0,1fr) auto auto auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(4 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(5 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>:first-child+.npbsd-col-key){grid-template-columns:auto minmax(0,1fr) auto auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(5 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(6 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>.npbsd-col-key:first-child){grid-template-columns:minmax(0,1fr) auto auto auto auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(5 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(6 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>:first-child+.npbsd-col-key){grid-template-columns:auto minmax(0,1fr) auto auto auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(6 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(7 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>.npbsd-col-key:first-child){grid-template-columns:minmax(0,1fr) auto auto auto auto auto}
  table.npbsd-rule-table:not(#npbsd-none):not(#npbsd-none-2):not(.npbsd-payroll-table--changes-years):has(>thead>tr>:nth-child(6 of :not(.npbsd-payroll-pc-only))):not(:has(>thead>tr>:nth-child(7 of :not(.npbsd-payroll-pc-only)))):has(>thead>tr>:first-child+.npbsd-col-key){grid-template-columns:auto minmax(0,1fr) auto auto auto auto}
  table.npbsd-fa-table.npbsd-fa-player-table:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) repeat(3,auto)}
  table.npbsd-fa-table.npbsd-fa-market-table:not(#npbsd-none):not(#npbsd-none-2),table.npbsd-fa-table.npbsd-fa-declaration-table:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) repeat(5,auto)}
  table.npbsd-fa-table.npbsd-fa-declaration-table:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) repeat(4,auto)}
  table.npbsd-fa-table.npbsd-fa-player-table .npbsd-fa-toggle-cell:not(#npbsd-none):not(#npbsd-none-2){justify-self:end}
  /* the years table of 契約更改 keeps its two equal name columns; its year column is as wide as the year in the size of the rule */
  table.npbsd-payroll-table.npbsd-payroll-table--changes-years:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:auto repeat(2,minmax(0,1fr))}
  /* the club names of the list of clubs fit their boxes at 375 px too */
  .npbsd-team-name{font-size:clamp(9px,2.8vw,11px)}
  /* the market table: the rank mark no wider than it needs, the 「宣言」 mark under it (the row keeps its height), as the name would not fit beside it */
  table.npbsd-fa-table.npbsd-fa-market-table .npbsd-fa-col-rank .npbsd-fa-rank:not(#npbsd-none):not(#npbsd-none-2){min-width:24px}
  table.npbsd-fa-table.npbsd-fa-market-table:has(.npbsd-fa-declared-mark) :is(td,th).npbsd-fa-col-rank:not(#npbsd-none):not(#npbsd-none-2){padding-right:0}
  table.npbsd-fa-table.npbsd-fa-market-table>tbody>tr:not(:has(>[colspan])):not(#npbsd-none):not(#npbsd-none-2){min-height:56px}
  table.npbsd-fa-table.npbsd-fa-market-table .npbsd-fa-rank>.npbsd-fa-declared-mark:not(#npbsd-none):not(#npbsd-none-2){left:50%;top:calc(100% + 1px);transform:translateX(-50%)}
  /* the total line of the seasons keeps its weight; its club is small text */
  table.npbsd-season-stats-mobile-table .npbsd-season-career-row td.npbsd-season-mobile-team{font-weight:var(--npbsd-sp-thin)!important}
}
/* v0.10.462 (T193): the tables too narrow for the common rule keep its values and change their columns: below 411 px the amount breaks after 億, so that a name is not broken in a word */
@media (max-width:410px){
  table.npbsd-fa-table.npbsd-fa-market-table:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) auto auto auto fit-content(64px) auto}
  table.npbsd-fa-table.npbsd-fa-market-table td.npbsd-fa-col-salary:not(#npbsd-none):not(#npbsd-none-2){white-space:normal;word-break:normal;line-break:auto;overflow-wrap:break-word}
  table.npbsd-payroll-table--foreign:has(>thead>tr>:nth-child(4 of :not(.npbsd-payroll-pc-only))):not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:auto minmax(0,1fr) fit-content(64px) fit-content(64px)}
  table.npbsd-payroll-table--foreign td.npbsd-payroll-col-num:not(#npbsd-none):not(#npbsd-none-2){white-space:normal;word-break:normal;line-break:auto;overflow-wrap:break-word}
}
@media (max-width:359px){
  /* on the narrowest phones the mark stands over the name in the FA tables, so that the name stays whole */
  table.npbsd-fa-table.npbsd-fa-player-table .npbsd-fa-player-name:not(#npbsd-none):not(#npbsd-none-2){flex-direction:column;align-items:flex-start;gap:2px}
}
@media (max-width:380px){
  table.npbsd-fa-table.npbsd-fa-market-table .npbsd-fa-detail-toggle:not(#npbsd-none):not(#npbsd-none-2){width:26px;min-width:26px}
  table.npbsd-fa-table.npbsd-fa-market-table:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) auto auto auto fit-content(58px) auto}
  table.npbsd-fa-table.npbsd-fa-player-table:not(.npbsd-fa-market-table,.npbsd-fa-declaration-table):not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) fit-content(56px) fit-content(56px) auto}
  table.npbsd-fa-table.npbsd-fa-player-table :is(td.npbsd-fa-col-domestic,td.npbsd-fa-col-overseas):not(#npbsd-none):not(#npbsd-none-2){white-space:normal;word-break:normal;line-break:auto;overflow-wrap:break-word}
}
@media (max-width:360px){
  /* the smallest phones: the heading ポジション on two lines, the amount narrower */
  table.npbsd-fa-table.npbsd-fa-market-table:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:minmax(0,1fr) auto auto fit-content(40px) fit-content(50px) fit-content(37px)}
  table.npbsd-fa-table.npbsd-fa-market-table th.npbsd-fa-col-market-position:not(#npbsd-none):not(#npbsd-none-2){white-space:normal;word-break:break-all}
}
/* v0.10.462 (T193): Safari (hanging-punctuation is its own) on PC widths: WebKit does not pass the space of justify-content:space-between on to the rows that are subgrids. The same space comes from a track of 1fr between the columns, so the columns stand where Chrome has them. Chrome does not read this block. */
@supports (hanging-punctuation:first){
@media (min-width:768px){
  .npbsd-ranking-table.npbsd-ranking-table,.npbsd-contract-table.npbsd-contract-table{--npbsd-wk-gap:20px}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(2):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(2 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(2):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(2):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(3):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(3 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(3):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(3):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(4):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(4 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(4):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(4):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(5):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(5 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(5):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(5):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(6):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(6 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(6):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(6):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(7):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(7 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(7):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(7):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(8):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(8 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(8):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(8):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(9):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(9 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(9):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(9):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(10):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(10 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(10):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(10):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(11):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(11 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(11):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(11):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key):has(>thead>tr>:nth-child(12):last-child),table.npbsd-fa-table.npbsd-fa-player-table:has(>thead>tr>:nth-child(12 of :not(.npbsd-fa-toggle-head)):nth-last-child(1 of :not(.npbsd-fa-toggle-head))),.npbsd-ranking-table.npbsd-ranking-table:has(>.npbsd-ranking-table-head>:nth-child(12):last-child),.npbsd-contract-table.npbsd-contract-table:has(>.npbsd-contract-table-head>:nth-child(12):last-child){grid-template-columns:minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto) minmax(var(--npbsd-wk-gap,0px),1fr) minmax(0,auto);justify-content:normal;column-gap:0}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(1):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(1):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(1),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(1){grid-column:1}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(2):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(2):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(2),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(2){grid-column:3}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(3):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(3):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(3),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(3){grid-column:5}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(4):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(4):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(4),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(4){grid-column:7}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(5):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(5):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(5),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(5){grid-column:9}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(6):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(6):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(6),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(6){grid-column:11}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(7):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(7):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(7),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(7){grid-column:13}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(8):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(8):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(8),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(8){grid-column:15}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(9):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(9):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(9),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(9){grid-column:17}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(10):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(10):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(10),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(10){grid-column:19}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(11):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(11):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(11),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(11){grid-column:21}
  table.npbsd-rule-table:has(.npbsd-col-key) tr>:nth-child(12):not([colspan]),table.npbsd-fa-table.npbsd-fa-player-table tr>:nth-child(12):not([colspan]),.npbsd-ranking-table>:is(.npbsd-ranking-table-head,.npbsd-ranking-table-row)>:nth-child(12),.npbsd-contract-table>:is(.npbsd-contract-table-head,.npbsd-contract-table-row)>:nth-child(12){grid-column:23}
  .npbsd-contract-table.npbsd-contract-table--list:not(#npbsd-none):not(#npbsd-none-2){grid-template-columns:auto minmax(20px,1fr) auto minmax(20px,1fr) auto minmax(20px,1fr) auto minmax(20px,1fr) auto}
  .npbsd-contract-table--list .npbsd-contract-context:not(#npbsd-none):not(#npbsd-none-2){white-space:normal;word-break:normal;overflow-wrap:break-word}
}
}
/* v0.10.465 (Human 2026-11-05, T196): the menu in four groups; the submenu of 年俸ランキング holds the 12 clubs and the 4 positions; the top page has the cards of 「ランキング特集」 with headings only; a third card in 「契約・FA情報」. */
@media (min-width:768px){
  .npbsd-global-nav-inner.npbsd-global-nav-inner{grid-template-columns:repeat(4,minmax(max-content,1fr))}
  .npbsd-nav-submenu.npbsd-nav-submenu--wide{left:0;right:auto;width:min(560px,calc(100vw - 48px))}
  .npbsd-nav-submenu.npbsd-nav-submenu{max-height:calc(100vh - 60px);overflow-y:auto}
  .npbsd-nav-submenu--wide .npbsd-nav-team-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 4px}
}
.npbsd-nav-submenu-group{display:block;padding:10px 13px 3px;color:var(--npbsd-muted);font-size:11px;font-weight:800;line-height:1.35}
.npbsd-nav-submenu-group:first-child{padding-top:4px}
.npbsd-global-nav .npbsd-nav-submenu-links a[aria-current="page"]:after{display:none}
.npbsd-nav-submenu-compact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.npbsd-global-nav .npbsd-nav-submenu-compact>a{justify-content:center;min-height:40px;padding:8px 6px;border:0;background:#fff;color:var(--npbsd-navy)!important;font-size:12px;text-decoration:none!important}
.npbsd-global-nav .npbsd-nav-submenu-compact>a:hover,.npbsd-global-nav .npbsd-nav-submenu-compact>a:focus-visible{background:var(--npbsd-soft)}
.npbsd-ranking-feature-grid.npbsd-ranking-feature-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.npbsd-feature-links-section .npbsd-feature-links{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:960px){.npbsd-ranking-feature-grid.npbsd-ranking-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){
  .npbsd-ranking-feature-grid.npbsd-ranking-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .npbsd-feature-links-section .npbsd-feature-links{grid-template-columns:1fr}
  .npbsd-nav-submenu-group{padding:9px 10px 3px}
  .npbsd-global-nav .npbsd-nav-submenu-compact>a{min-height:43px}
  .npbsd-nav-submenu-compact{padding-top:5px}
  .npbsd-global-nav .npbsd-nav-team-link,.npbsd-global-nav .npbsd-nav-team-link:first-child{gap:3px;padding-left:1px;padding-right:1px}
}
/* v0.10.470 / v0.10.471 (T205): ランキングでの順位 under the cards of the player page, one list on PC and phones; the design C
   (Human 2026-11-06): a box of the site's soft blue, the left bar of the site's headings, the rank large in navy (phones 17px: the
   one exception to the rank size of the phones' common rule, Human 2026-11-06), 「上位N%」 for the top 10% */
.npbsd-player-ranks{margin:16px 0 20px;padding:14px 18px 4px;border:1px solid var(--npbsd-line);border-radius:8px;background:var(--npbsd-soft)}
.npbsd-player-ranks-title{position:relative;margin:0 0 4px;padding-left:12px;color:var(--npbsd-navy);font-size:15px;font-weight:850;line-height:1.35}
.npbsd-player-ranks-title:before{content:"";position:absolute;left:0;top:.18em;width:4px;height:1.05em;background:var(--npbsd-link)}
.npbsd-player-ranks-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;margin:0;padding:0;list-style:none}
.npbsd-player-ranks-list li{min-width:0;margin:0;border-bottom:1px solid var(--npbsd-line)}
.npbsd-player-ranks-list li:nth-last-child(-n+2):nth-child(odd),.npbsd-player-ranks-list li:last-child{border-bottom:0}
.npbsd-player-ranks-link{display:grid;grid-template-columns:minmax(0,1fr) auto 10px;align-items:center;column-gap:12px;min-height:48px;padding:8px 2px;text-decoration:none!important}
.npbsd-player-ranks-label{min-width:0;color:var(--npbsd-link);font-size:14px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.npbsd-player-ranks-link:hover .npbsd-player-ranks-label,.npbsd-player-ranks-link:focus-visible .npbsd-player-ranks-label{text-decoration:underline}
.npbsd-player-ranks-value{display:inline-flex;align-items:baseline;gap:3px;color:var(--npbsd-muted);font-size:12px;font-weight:400;line-height:1.45;white-space:nowrap;font-variant-numeric:tabular-nums}
.npbsd-player-ranks-value b{color:var(--npbsd-navy);font-size:20px;font-weight:850;line-height:1.1}
.npbsd-player-ranks-times{margin-right:6px;color:var(--npbsd-text);font-size:13px}
.npbsd-player-ranks-top{display:inline-flex;align-items:center;align-self:center;margin-right:6px;padding:1px 6px;border:1px solid var(--npbsd-link);border-radius:999px;background:#fff;color:var(--npbsd-link);font-size:10px;font-weight:800;line-height:1.35}
.npbsd-player-ranks-arrow{color:var(--npbsd-link);font-size:16px;line-height:1}
@media (max-width:767px){
  .npbsd-player-ranks{margin:12px 0 16px;padding:12px var(--npbsd-sp-inset) 2px}
  .npbsd-player-ranks-title{padding-left:10px;font-size:14px}
  .npbsd-player-ranks-title:before{width:3px}
  .npbsd-player-ranks-list{grid-template-columns:1fr}
  .npbsd-player-ranks-list li:nth-last-child(-n+2):nth-child(odd){border-bottom:1px solid var(--npbsd-line)}
  .npbsd-player-ranks-list li:last-child{border-bottom:0}
  .npbsd-player-ranks-link{column-gap:var(--npbsd-sp-col-gap);min-height:0;padding:10px 0}
  .npbsd-player-ranks-label{font-size:var(--npbsd-sp-name-size);font-weight:var(--npbsd-sp-bold);line-height:var(--npbsd-sp-sub-line)}
  .npbsd-player-ranks-value{font-size:var(--npbsd-sp-sub-size);font-weight:var(--npbsd-sp-thin)}
  .npbsd-player-ranks-value b{font-size:17px;font-weight:var(--npbsd-sp-bold)}
  .npbsd-player-ranks-times{font-size:var(--npbsd-sp-value-size)}
  .npbsd-player-ranks-top{margin-right:4px;padding:1px 5px;font-size:var(--npbsd-sp-small-size)}
}
