/* Task 20: /players/{id} 選手個人ページ */
.player-view { background: var(--paper); min-height: 60vh; }
.player-loading, .player-notfound { padding: 90px 7vw; }
.player-notfound h1 { font: 800 40px 'Noto Sans JP', sans-serif; letter-spacing: -2px; margin: 0 0 14px; }
.player-notfound p { color: #77746c; font-size: 14px; margin: 0 0 26px; }

.player-hero { position: relative; padding: 60px 7vw 40px; color: var(--team-ink, #fff); background: linear-gradient(120deg, var(--team-accent, #11120f), #11120f 78%); overflow: hidden; }
.player-team-link { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; font: 700 13px 'Noto Sans JP', sans-serif; opacity: .92; }
.player-team-link:hover { opacity: 1; text-decoration: underline; }
.player-team-link .team-logo { width: 30px; height: 30px; font-size: 18px; border-width: 1px; }
.player-hero-main { display: flex; align-items: center; gap: 22px; margin: 20px 0 4px; }
.player-hero-no { font: 800 92px/1 'Barlow Condensed', sans-serif; letter-spacing: -2px; opacity: .9; }
.player-hero-name h1 { font: 800 46px/1.02 'Noto Sans JP', sans-serif; letter-spacing: -2px; margin: 0; }
.player-kana { margin: 6px 0 0; font: 600 12px 'Barlow Condensed', sans-serif; letter-spacing: 2px; opacity: .8; }
.player-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.player-badge { padding: 5px 12px; border-radius: 999px; font: 700 11px 'Noto Sans JP', sans-serif; letter-spacing: .4px; }
/* Task 21: 一覧カードの状態バッジ（.roster-badge）と同じ固定色（--status-*、style.css :root）に統一。チームカラーには依存しない。 */
.player-badge.first { background: var(--status-active); color: var(--status-ink,#fff); }
.player-badge.ikusei { background: var(--status-development); color: var(--status-ink,#fff); }
.player-badge.farm { background: var(--status-farm); color: var(--status-ink,#fff); }
.player-badge.inactive { background: var(--red); color: #fff; }
/* Task 27: 功労選手（OB）の「元選手」バッジ。--status-ob は teams.css :root の専用グレー。 */
.player-badge.ob { background: var(--status-ob, #5c6470); color: #fff; }
.player-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 22px; }
.follow-button.player-follow { padding: 11px 22px; border-radius: 999px; border: 0; background: #fff; color: var(--ink); font: 700 13px 'Noto Sans JP', sans-serif; letter-spacing: .3px; }
.follow-button.player-follow.following { background: var(--lime); color: var(--ink); }
.player-npb-link { color: inherit; text-decoration: none; font: 700 12px 'Noto Sans JP', sans-serif; border-bottom: 1px solid currentColor; padding-bottom: 3px; opacity: .9; }
.player-npb-link:hover { opacity: 1; }
.player-npb-link b { font-size: .9em; margin-left: 4px; }

.player-section { padding: 40px 7vw; border-top: 1px solid var(--line); }
.player-section h2 { font: 800 26px 'Noto Sans JP', sans-serif; letter-spacing: -1px; margin: 0 0 20px; }
.player-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1px; margin: 0; background: var(--line); border: 1px solid var(--line); }
.player-fact { display: flex; gap: 12px; padding: 14px 16px; background: #fff; }
.player-fact dt { flex: 0 0 84px; color: #89867c; font-size: 11px; font-weight: 700; padding-top: 2px; }
.player-fact dd { margin: 0; font-size: 13px; font-weight: 600; line-height: 1.6; }

.player-stat-block { margin-bottom: 26px; }
.player-stat-block h3 { font: 700 15px 'Noto Sans JP', sans-serif; margin: 0 0 10px; }
.player-table-scroll { overflow-x: auto; border: 1px solid var(--line); background: #fff; -webkit-overflow-scrolling: touch; }
.player-stat-table { border-collapse: collapse; width: 100%; min-width: 620px; font-size: 12px; }
.player-stat-table th, .player-stat-table td { padding: 8px 10px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--line); }
.player-stat-table thead th { background: var(--ink); color: #fff; font: 700 11px 'Barlow Condensed', sans-serif; letter-spacing: .4px; position: sticky; top: 0; }
.player-stat-table th:first-child, .player-stat-table td:first-child { text-align: left; }
.player-stat-table tbody tr:hover td { background: #fbf9f3; }
.player-stat-table tr.yearly-total td { background: #fff7c7; font-weight: 700; border-top: 2px solid var(--ink); }

.player-video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-items: start; }
.player-video-grid .video-card { color: var(--ink); }
.player-video-grid .video-card h3 { font-size: 13px; }
.player-video-grid .video-card p { color: #89867c; }
.player-empty { color: #89867c; font-size: 13px; margin: 0; }

@media (max-width: 780px) {
  .player-hero { padding: 46px 5vw 32px; }
  .player-hero-no { font-size: 66px; }
  .player-hero-name h1 { font-size: 33px; }
  .player-section { padding: 32px 5vw; }
  .player-section h2 { font-size: 22px; }
  .player-video-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 440px) {
  .player-hero-main { gap: 14px; }
  .player-hero-no { font-size: 54px; }
  .player-video-grid { grid-template-columns: 1fr; }
}
