.club-title{font-size:1.3rem;color:#fff;margin-bottom:6px;padding-left:12px}
.club-subtitle{color:#8faec8;font-size:.85rem;margin-bottom:18px}
.validation-panel{margin:0 0 20px;padding:16px;border:1px solid #235266;border-top:2px solid #4ecdc4;background:linear-gradient(135deg,#101c2a,#101827)}
.validation-kicker{color:#4ecdc4;font-size:.67rem;letter-spacing:.14em;font-weight:800}
.validation-panel h3{color:#f2f8ff;font-size:1rem;margin:5px 0 8px}
.validation-desc,.validation-note{color:#9ab7cc;font-size:.78rem;line-height:1.65}
.validation-meta{margin:10px 0;color:#65e8df;font-size:.76rem}
.validation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.validation-grid h4{color:#cfe9fa;font-size:.82rem;margin:0 0 5px}
.validation-table{width:100%;border-collapse:collapse;font-size:.68rem}
.validation-table th,.validation-table td{padding:5px 4px;border:1px solid #24445b;text-align:right;white-space:nowrap}
.validation-table th{color:#9ccfea;background:#132436;font-weight:700}
.validation-table th:first-child{text-align:left}
.validation-table td{color:#d6e7f3}
.validation-note{margin-top:10px;color:#7897ae}
.badge-guide-details{margin-bottom:14px}
.badge-guide-details summary{font-size:.82rem;color:#7ec8e3;cursor:pointer;padding:8px 12px;background:#0d1520;border:1px solid #1e3a5f;border-radius:6px;min-height:44px;display:flex;align-items:center}
.badge-guide-details[open] summary{border-radius:6px 6px 0 0;border-bottom:none}
.badge-guide-body{padding:12px 16px;background:#0d1520;border:1px solid #1e3a5f;border-top:none;border-radius:0 0 6px 6px;font-size:.82rem;color:#b8cad8;line-height:1.7}
.badge-guide-row{display:flex;align-items:center;gap:8px;margin:6px 0}
.grade-legend{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin-bottom:18px;overflow:hidden;border:1px solid #1e3a5f;border-radius:4px}
.grade-chip{display:flex;align-items:baseline;justify-content:center;gap:5px;min-height:44px;padding:6px 4px;color:#a9bfd0;background:#111c2b;font-size:.68rem}
.grade-chip b{font-size:.86rem;font-weight:800}
.grade-s{border-top:2px solid #ffd700}.grade-a{border-top:2px solid #ff6b6b}.grade-b{border-top:2px solid #4ecdc4}.grade-c{border-top:2px solid #f59e0b}.grade-d{border-top:2px solid #6c8ebf}
.horse-list{display:flex;flex-direction:column;gap:6px}
/* 画面外の行は描画を省略する。696頭のクラブで絞り込み解除が155ms→8msになる。
   contain-intrinsic-size は未描画時の高さの見積もり（実測の最頻値78px）。
   auto を付けると一度描画した行の実寸を記憶するので、スクロール位置がずれない。
   非対応ブラウザは無視するだけで、従来どおり動作する。 */
.horse-row-wrap{display:flex;align-items:center;gap:0;content-visibility:auto;contain-intrinsic-size:auto 78px}
.horse-row-wrap[hidden],.year-group-title[hidden]{display:none!important}
.performance-focus-guide{display:flex;align-items:flex-start;gap:9px;margin:-6px 0 14px;padding:9px 12px;background:#0d1520;border:1px solid #1e3a5f;border-radius:6px;color:#8faec8;font-size:.72rem;line-height:1.6}
.performance-focus-guide b{color:#e6eef5}
.performance-focus-line{flex:0 0 3px;width:3px;height:34px;border-radius:2px;background:#ffd700;box-shadow:0 0 8px #ffd70066}
.performance-focus .horse-row{border-left:3px solid #ffd700;box-shadow:inset 3px 0 8px -3px #ffd70044}
.horse-row{display:flex;align-items:center;gap:14px;flex:1;background:#131a2a;border:1px solid #1e3a5f;border-radius:8px;padding:14px 16px;transition:border-color .2s,background .2s;min-height:48px}
.horse-row:hover{background:#1a2332;text-decoration:none}
.hr-dual-score{display:flex;gap:10px;align-items:center;flex-shrink:0}
.hr-score-col{width:44px;text-align:center}
.hr-score-sep{width:1px;background:#1e3a5f;align-self:stretch}
.hr-rank-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:20px;border-radius:4px;font-size:.72rem;font-weight:800;letter-spacing:.02em;margin:0 auto 2px}
.hr-rank-badge.rank-S{color:#2b2100;background:linear-gradient(135deg,#fff3a3,#ffd166)}
.hr-rank-badge.rank-A{color:#fff;background:#ef6b73}
.hr-rank-badge.rank-B{color:#06231f;background:#4ecdc4}
.hr-rank-badge.rank-C{color:#311d00;background:#f59e0b}
.hr-rank-badge.rank-D{color:#fff;background:#6078a0}
.hr-score{font-size:1.05rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.hr-score-label{display:block;margin-top:3px;color:#718ba8;font-size:.56rem;letter-spacing:.03em;white-space:nowrap}
.hr-info{flex:1;min-width:0}
.hr-name{font-size:1.02rem;color:#fff;font-weight:700;letter-spacing:.01em}
.hr-parents{font-size:.78rem;color:#7a9ab5;margin-top:3px}
.hr-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.hr-tag{padding:2px 6px;background:#0e2030;border:1px solid #244969;border-radius:2px;color:#8fc9e8;font-size:.66rem;line-height:1.2}
.hr-tag b{color:#4ecdc4;margin-left:2px}
.hr-compare{display:inline-flex;align-self:stretch;align-items:center;padding:0 14px;background:#102131;border:1px solid #1e3a5f;border-left:0;color:#7ec8e3;font-size:.7rem;font-weight:700;cursor:pointer;min-height:44px}
.hr-compare:hover,.hr-compare.is-selected{background:#164151;color:#66f0e6}
.hr-del{display:none;background:#1a1a2e;border:1px solid #1e3a5f;border-left:none;border-radius:0 8px 8px 0;color:#e74c3c88;font-size:1.1rem;padding:0 14px;cursor:pointer;align-self:stretch;transition:color .2s,background .2s;min-height:44px}
.hr-del:hover{color:#e74c3c;background:#2a1a1a}
.admin-mode .hr-del{display:block}
.admin-mode .horse-row{border-radius:8px 0 0 8px}
.horse-row{border-radius:8px}
.year-group-title{font-size:.95rem;color:#7ec8e3;margin:28px 0 10px;padding:10px 14px;background:#0c1520;border-radius:6px;border-bottom:1px solid #1a3050}
.year-group-title:first-child{margin-top:0}
.year-group-count{font-size:.78rem;color:#8faec8;font-weight:400}
.year-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.year-nav a{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#131a2a;border:1px solid #1e3a5f;border-radius:20px;color:#7ec8e3;font-size:.85rem;font-weight:600;white-space:nowrap;transition:border-color .2s,background .2s;min-height:44px}
.year-nav a:hover{background:#1a2d44;text-decoration:none}
.ynav-count{font-size:.72rem;color:#8faec8;font-weight:400}
.filter-panel{display:grid;grid-template-columns:minmax(140px,1.4fr) repeat(4,minmax(90px,1fr)) auto;gap:7px;align-items:center;margin-bottom:14px;padding:10px;background:#101a29;border:1px solid #1e3a5f;border-radius:6px}
.filter-panel input,.filter-panel select{width:100%;min-height:44px;padding:0 9px;background:#0b1420;border:1px solid #25415d;border-radius:4px;color:#dcecff;font:inherit;font-size:.76rem}
.filter-panel input:focus,.filter-panel select:focus{border-color:#4ecdc4;outline:0}
.compare-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;background:#163342;border:1px solid #2d7280;border-radius:4px;color:#65e8df;font-size:.72rem;font-weight:700;white-space:nowrap}
.filter-status{margin:-5px 0 12px;color:#7f9bb9;font-size:.72rem}
.back-top{display:inline-block;margin-top:24px;padding:10px 22px;background:#1a2332;border:1px solid #1e3a5f;border-radius:6px;color:#7ec8e3;font-size:.85rem;min-height:44px}
.back-top:hover{background:#243447;text-decoration:none}
.to-top{position:fixed;bottom:20px;right:20px;width:44px;height:44px;background:#1a2332ee;border:1px solid #1e3a5f;border-radius:50%;color:#7ec8e3;font-size:1.2rem;display:flex;align-items:center;justify-content:center;z-index:20;backdrop-filter:blur(4px)}
.to-top:hover{background:#243447;text-decoration:none;border-color:#4ecdc4}
@media(max-width:600px){.horse-row{padding:12px;gap:10px;min-height:48px}.hr-dual-score{gap:6px}.hr-score-col{width:38px}.hr-rank-badge{width:22px;height:18px;font-size:.65rem}.hr-score{font-size:.92rem}.hr-score-label{font-size:.52rem}.hr-name{font-size:.92rem}.hr-parents{font-size:.75rem}.grade-chip{font-size:.6rem}.grade-chip b{font-size:.74rem}.year-nav{gap:6px}.year-nav a{padding:6px 12px;font-size:.8rem;min-height:44px}.filter-panel{grid-template-columns:1fr 1fr}.validation-grid{grid-template-columns:1fr}.validation-panel{padding:12px;overflow:hidden}.validation-table{font-size:.64rem}.filter-panel input{grid-column:1/-1}.compare-link{grid-column:1/-1}.hr-compare{padding:0 10px;font-size:.62rem;min-height:44px}}
