:root {
    color-scheme: dark;
    --background: #06111d;
    --surface: #0d1d2d;
    --surface-soft: #12263a;
    --border: #203a51;
    --text: #f4f8fb;
    --muted: #91a7ba;
    --accent: #34d399;
    --accent-blue: #38bdf8;
    --warning: #fbbf24;
    --danger: #fb7185;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-width: 320px;
    background:
        radial-gradient(circle at top right, rgba(56, 189, 248, 0.12), transparent 34rem),
        var(--background);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif;
}

a { color: inherit; text-decoration: none; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 10;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    background: rgba(6, 17, 29, 0.9);
    backdrop-filter: blur(14px);
}

.brand {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    max-width: 1120px;
    margin: auto;
    padding: 0.85rem 1rem;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--accent-blue), var(--accent));
    color: #03111c;
    font-weight: 900;
}

.brand strong, .brand small { display: block; }
.brand small { margin-top: 0.15rem; color: var(--muted); font-size: 0.72rem; }

.page-container { width: min(1120px, 100%); margin: auto; padding: 1.25rem 1rem 3rem; }

.hero, .detail-hero {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    padding: 1.5rem 0;
}

.eyebrow { margin: 0 0 0.35rem; color: var(--accent); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.16em; }
h1 { margin: 0; font-size: clamp(1.8rem, 6vw, 3.2rem); line-height: 1.08; }
.hero-copy, .detail-hero p { margin: 0.6rem 0 0; color: var(--muted); }

.date-form { min-width: 180px; }
.date-form label { display: block; margin-bottom: 0.35rem; color: var(--muted); font-size: 0.8rem; }
.date-form select {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    color: var(--text);
    font-size: 1rem;
}

.summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1.2rem; }
.summary-card, .panel {
    border: 1px solid var(--border);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(18,38,58,0.96), rgba(11,28,43,0.96));
    box-shadow: 0 16px 34px rgba(0,0,0,0.2);
}
.summary-card { padding: 1rem; }
.summary-card span { display: block; color: var(--muted); font-size: 0.76rem; }
.summary-card strong { display: block; margin-top: 0.25rem; font-size: 1.15rem; }

.ranking-list { display: grid; gap: 0.75rem; }
.ranking-card {
    display: grid;
    grid-template-columns: 72px 1fr 92px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: rgba(13,29,45,0.92);
    transition: transform 0.15s ease, border-color 0.15s ease;
}
.ranking-card:hover { transform: translateY(-2px); border-color: var(--accent-blue); }
.rank-column, .score-column { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 1rem 0.5rem; }
.rank-column { background: rgba(56,189,248,0.08); }
.rank-column span, .score-column span { color: var(--muted); font-size: 0.65rem; letter-spacing: 0.08em; }
.rank-column strong { font-size: 1.8rem; }
.score-column { background: rgba(52,211,153,0.08); }
.score-column strong { color: var(--accent); font-size: 1.8rem; }
.ranking-main { min-width: 0; padding: 0.9rem 1rem; }
.race-heading, .card-bottom, .panel-title-row { display: flex; justify-content: space-between; align-items: center; gap: 0.6rem; }
.race-heading small { margin-left: 0.35rem; color: var(--muted); }
.stadium-code { margin-right: 0.35rem; color: var(--accent-blue); font-size: 0.72rem; font-weight: 800; }
.judgment { flex: none; padding: 0.3rem 0.65rem; border-radius: 999px; background: rgba(56,189,248,0.15); color: var(--accent-blue); font-size: 0.75rem; font-weight: 800; }
.judgment-高い { background: rgba(52,211,153,0.16); color: var(--accent); }
.judgment-低い { background: rgba(251,113,133,0.14); color: var(--danger); }
.racer-line { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.85rem; }
.racer-line > span:not(.lane-badge) { color: var(--muted); font-size: 0.78rem; }
.racer-number { white-space: nowrap; }
.lane-badge { display: inline-grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; font-weight: 900; }
.lane-3 { background: #ef4444; color: white; }
.lane-4 { background: #3b82f6; color: white; }
.card-bottom { margin-top: 0.7rem; }
.stars, .large-stars { color: var(--warning); letter-spacing: 0.06em; }
.entry-message { overflow: hidden; color: var(--muted); font-size: 0.75rem; text-overflow: ellipsis; white-space: nowrap; }

.back-link { display: inline-block; margin: 0.5rem 0; color: var(--accent-blue); }
.detail-score { display: flex; flex-direction: column; align-items: end; }
.detail-score span, .detail-score small { color: var(--muted); }
.detail-score strong { color: var(--accent); font-size: 3rem; line-height: 1; }
.detail-grid, .lane-comparison, .reason-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 1rem; }
.panel { padding: 1.15rem; margin-bottom: 1rem; }
.panel h2 { margin: 0 0 1rem; font-size: 1.05rem; }
.large-stars { margin: 0.8rem 0; font-size: 1.4rem; }
.racer-profile { display: flex; align-items: center; gap: 0.8rem; }
.racer-profile .lane-badge { width: 44px; height: 44px; font-size: 1.2rem; }
.racer-profile strong { font-size: 1.2rem; }
.racer-profile p { margin: 0.2rem 0 0; color: var(--muted); }
.score-breakdown { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.7rem; }
.score-breakdown div { padding: 0.85rem; border-radius: 12px; background: rgba(255,255,255,0.04); }
.score-breakdown span, .score-breakdown strong { display: block; }
.score-breakdown span { color: var(--muted); font-size: 0.75rem; }
.score-breakdown strong { margin-top: 0.25rem; color: var(--accent); font-size: 1.3rem; }
.score-breakdown .negative { color: var(--danger); }
.metric-list { margin: 1rem 0 0; }
.metric-list div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.metric-list dt { color: var(--muted); }
.metric-list dd { margin: 0; font-weight: 700; }
.reason-list { margin: 0; padding-left: 1.2rem; }
.reason-list li { margin: 0.55rem 0; line-height: 1.55; }
.plus-list li::marker { color: var(--accent); }
.minus-list li::marker { color: var(--danger); }
.ticket-list { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.ticket-list span { padding: 0.55rem 0.75rem; border: 1px solid var(--border); border-radius: 10px; background: rgba(56,189,248,0.08); font-weight: 800; }
.empty-state { padding: 3rem 1rem; text-align: center; color: var(--muted); }
.site-footer { padding: 1.2rem; border-top: 1px solid rgba(255,255,255,0.06); color: var(--muted); text-align: center; font-size: 0.75rem; }

@media (max-width: 700px) {
    .page-container { padding-inline: 0.75rem; }
    .hero, .detail-hero { align-items: stretch; flex-direction: column; }
    .date-form { width: 100%; }
    .summary-grid { grid-template-columns: 1fr 1fr; }
    .summary-card:first-child { grid-column: 1 / -1; }
    .ranking-card { grid-template-columns: 54px 1fr 70px; }
    .ranking-main { padding: 0.8rem 0.7rem; }
    .rank-column strong, .score-column strong { font-size: 1.4rem; }
    .race-heading { align-items: flex-start; }
    .race-heading > div { min-width: 0; }
    .race-heading strong { display: block; }
    .entry-message { max-width: 170px; }
    .detail-score { align-items: flex-start; }
    .detail-grid, .lane-comparison, .reason-grid { grid-template-columns: 1fr; }
    .score-breakdown { grid-template-columns: 1fr 1fr; }
}

/* レース詳細拡張 */
.notice-text { color: var(--warning); font-weight: 700; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1rem; }
.section-heading h2 { margin: 0; }
.section-heading > p { margin: 0; color: var(--muted); font-size: 0.75rem; }
.compact-metrics { margin-top: 0; }
.result-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; }
.result-summary-grid div { padding: 0.9rem; border-radius: 12px; background: rgba(255,255,255,0.04); }
.result-summary-grid span, .result-summary-grid strong { display: block; }
.result-summary-grid span { color: var(--muted); font-size: 0.75rem; }
.result-summary-grid strong { margin-top: 0.3rem; }
.racer-table-wrap { overflow-x: auto; border: 1px solid rgba(255,255,255,0.06); border-radius: 12px; }
.racer-table { width: 100%; min-width: 1040px; border-collapse: collapse; }
.racer-table th, .racer-table td { padding: 0.72rem; border-bottom: 1px solid rgba(255,255,255,0.06); text-align: right; white-space: nowrap; }
.racer-table th { position: sticky; top: 0; background: #102337; color: var(--muted); font-size: 0.72rem; }
.racer-table th:first-child, .racer-table td:first-child, .racer-table th:nth-child(2), .racer-table td:nth-child(2) { text-align: left; }
.racer-table td small, .racer-name-cell small { display: block; margin-top: 0.18rem; color: var(--muted); font-size: 0.68rem; }
.racer-table .focus-row { background: rgba(56,189,248,0.05); }
.emphasis-value { color: var(--accent); font-weight: 800; }
.racer-detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.racer-detail-card { min-width: 0; }
.racer-detail-card.focus-card { border-color: rgba(56,189,248,0.55); }
.st-value-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin: 1rem 0; }
.st-value-strip div { padding: 0.65rem; border-radius: 10px; background: rgba(255,255,255,0.04); text-align: center; }
.st-value-strip span, .st-value-strip strong { display: block; }
.st-value-strip span { color: var(--muted); font-size: 0.68rem; }
.st-value-strip strong { margin-top: 0.2rem; font-size: 1.05rem; }
.st-history > span { color: var(--muted); font-size: 0.75rem; }
.st-history > div { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.45rem; }
.st-history b { padding: 0.28rem 0.38rem; border-radius: 6px; background: rgba(255,255,255,0.06); font-size: 0.72rem; }
.st-history b.slow-st { background: rgba(251,113,133,0.18); color: var(--danger); }
.score-group-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.group-score { color: var(--accent); font-size: 1.35rem; }
.group-score.negative { color: var(--danger); }
.scored-reason-list { margin: 0; padding: 0; list-style: none; }
.scored-reason-list li { display: grid; grid-template-columns: 42px 1fr; gap: 0.55rem; padding: 0.55rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); line-height: 1.45; }
.scored-reason-list b { color: var(--muted); }
.scored-reason-list .reason-plus b { color: var(--accent); }
.scored-reason-list .reason-minus b { color: var(--danger); }
.lane-1 { background: #f8fafc; color: #0f172a; }
.lane-2 { background: #111827; color: white; border: 1px solid #64748b; }
.lane-5 { background: #facc15; color: #111827; }
.lane-6 { background: #22c55e; color: white; }

@media (max-width: 700px) {
    .result-summary-grid { grid-template-columns: 1fr 1fr; }
    .racer-detail-grid, .score-group-grid { grid-template-columns: 1fr; }
    .section-heading { align-items: flex-start; flex-direction: column; }
    .racer-detail-card { padding: 1rem; }
}

/* Sprint 1: Homeダッシュボード */
.home-hero { display:flex; justify-content:flex-end; align-items:end; gap:1rem; padding:1.15rem 0 .85rem; }
.home-date-only .date-form { margin-left:auto; }
.home-summary { display:grid; grid-template-columns:1.4fr repeat(3, 1fr); gap:.75rem; margin-bottom:1.6rem; }
.primary-summary { border-color:rgba(52,211,153,.48); }
.dashboard-section { margin:1.5rem 0 2rem; }
.section-title-row { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:.9rem; }
.section-title-row h2 { margin:0; font-size:1.25rem; }
.section-kicker { margin:0 0 .25rem; color:var(--accent); font-size:.67rem; font-weight:900; letter-spacing:.14em; }
.section-note { color:var(--muted); font-size:.72rem; }
.top-race-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:.75rem; }
.top-race-card { display:flex; flex-direction:column; min-width:0; padding:1rem; border:1px solid var(--border); border-radius:16px; background:linear-gradient(155deg,rgba(18,38,58,.98),rgba(9,24,38,.98)); box-shadow:0 14px 30px rgba(0,0,0,.18); transition:.15s ease; }
.top-race-card:hover { transform:translateY(-3px); border-color:var(--accent-blue); }
.top-race-rank-1 { border-color:rgba(251,191,36,.6); box-shadow:0 16px 34px rgba(251,191,36,.08); }
.top-race-header,.top-race-score,.top-race-racer { display:flex; align-items:center; justify-content:space-between; gap:.55rem; }
.top-rank { color:var(--warning); font-weight:900; }
.top-race-name { margin:.9rem 0; }
.top-race-name strong,.top-race-name small { display:block; }
.top-race-name strong { font-size:1.05rem; }
.top-race-name small { margin-top:.25rem; color:var(--muted); }
.top-race-score strong { color:var(--accent); font-size:1.55rem; }
.top-race-score strong small { margin-left:.1rem; color:var(--muted); font-size:.65rem; }
.top-race-racer { justify-content:flex-start; margin-top:.85rem; }
.top-race-racer > span:last-child { min-width:0; }
.top-race-racer strong,.top-race-racer small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top-race-racer small { margin-top:.15rem; color:var(--muted); font-size:.67rem; }
.deadline-placeholder { margin-top:auto; padding-top:.85rem; color:var(--muted); font-size:.76rem; font-weight:800; }
.deadline-safe { color:var(--accent); }
.deadline-warning { color:var(--warning); }
.deadline-danger { color:var(--danger); }
.deadline-neutral { color:var(--muted); }
.dashboard-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:1rem; }
.dashboard-panel { margin:0; }
.compact-title-row { align-items:center; }
.live-badge { padding:.3rem .6rem; border-radius:999px; background:rgba(145,167,186,.12); color:var(--muted); font-size:.68rem; font-weight:900; }
.live-badge.is-live { background:rgba(52,211,153,.15); color:var(--accent); }
.near-deadline-list { display:grid; gap:.55rem; }
.near-deadline-card { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.8rem; border:1px solid rgba(255,255,255,.07); border-radius:12px; background:rgba(255,255,255,.035); }
.near-deadline-card > div:first-child strong,.near-deadline-card > div:first-child span,.near-time strong,.near-time small { display:block; }
.near-deadline-card span,.near-time small { margin-top:.2rem; color:var(--muted); font-size:.7rem; }
.near-time { flex:none; text-align:right; }
.status-loading { padding:1rem; border-radius:12px; background:rgba(255,255,255,.035); color:var(--muted); font-size:.8rem; }
.status-list { display:grid; }
.status-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.72rem 0; border-bottom:1px solid rgba(255,255,255,.06); }
.status-row span { display:flex; align-items:center; gap:.55rem; color:var(--muted); }
.status-row strong { text-align:right; }
.status-last-updated { margin-top:.3rem; border-bottom:0; }
.status-last-updated strong { font-size:.78rem; }
.status-dot { width:8px; height:8px; border-radius:50%; background:var(--muted); }
.status-ok { background:var(--accent); box-shadow:0 0 0 4px rgba(52,211,153,.08); }
.status-wait { background:var(--warning); }
.status-info { background:var(--accent-blue); }
.stadium-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; }
.stadium-card { display:flex; justify-content:space-between; align-items:center; gap:.75rem; padding:.9rem; border:1px solid var(--border); border-radius:14px; background:rgba(13,29,45,.88); transition:.15s ease; }
.stadium-card:hover { transform:translateY(-2px); border-color:var(--accent-blue); }
.stadium-card strong,.stadium-card small { display:block; }
.stadium-card small { margin-top:.18rem; color:var(--muted); font-size:.67rem; }
.stadium-number { display:inline-block; margin-bottom:.25rem; color:var(--accent-blue); font-size:.68rem; font-weight:900; }
.stadium-best { flex:none; text-align:right; }
.stadium-best span { color:var(--muted); font-size:.63rem; }
.stadium-best strong { color:var(--accent); }
.ranking-all-section details { border:1px solid var(--border); border-radius:16px; background:rgba(13,29,45,.7); }
.ranking-all-section summary { cursor:pointer; padding:1rem; color:var(--accent-blue); font-weight:800; }
.compact-ranking-list { padding:0 .75rem .75rem; }

@media (max-width: 960px) {
    .top-race-grid { grid-template-columns:repeat(2,1fr); }
    .top-race-card:first-child { grid-column:1 / -1; }
    .stadium-grid { grid-template-columns:repeat(3,1fr); }
}

@media (max-width: 700px) {
    .home-hero { align-items:flex-end; padding-top:.8rem; }
    .home-date-only .date-form { width:100%; margin-left:0; }
    .home-summary { grid-template-columns:1fr 1fr; }
    .primary-summary { grid-column:1 / -1; }
    .top-race-grid,.dashboard-grid { grid-template-columns:1fr; }
    .top-race-card:first-child { grid-column:auto; }
    .stadium-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
    .stadium-card { align-items:flex-start; flex-direction:column; gap:.45rem; padding:.7rem; }
    .stadium-card > div:first-child { min-width:0; }
    .stadium-card > div:first-child strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .stadium-best { width:100%; display:flex; align-items:center; justify-content:space-between; text-align:left; }
    .stadium-best small { margin-top:0; }
    .section-title-row { align-items:flex-start; }
    .section-note { max-width:45%; text-align:right; }
}

@media (max-width: 520px) {
    .stadium-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-summary { gap:.55rem; }
    .near-deadline-card { align-items:flex-start; }
}

/* Home v3: 開催日切替・開催場LIVEカード・結果表示 */
.home-date-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0 .4rem;
}
.home-date-header h1 { font-size: clamp(1.55rem, 4vw, 2.35rem); }
.day-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(82px, 1fr));
    gap: .45rem;
    padding: .35rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: rgba(13,29,45,.82);
}
.day-switch-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: .55rem .9rem;
    border-radius: 10px;
    color: var(--muted);
}
.day-switch-button strong,.day-switch-button small { display: block; }
.day-switch-button small { margin-top: .12rem; font-size: .67rem; }
.day-switch-button.is-active {
    background: linear-gradient(135deg, rgba(56,189,248,.22), rgba(52,211,153,.18));
    color: var(--text);
    box-shadow: inset 0 0 0 1px rgba(56,189,248,.35);
}
.stadium-section-first { margin-top: 1rem; }
.stadium-loading { grid-column: 1 / -1; }
.section-message { min-height: 1.1rem; margin: .55rem 0 0; color: var(--muted); font-size: .75rem; }
.live-stadium-card { min-height: 116px; }
.live-stadium-card.is-disabled { cursor: default; }
.stadium-card-main { min-width: 0; }
.stadium-card-main > strong { font-size: 1.08rem; }
.stadium-race-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stadium-next-race { flex: none; text-align: right; }
.stadium-next-race strong { font-size: 1.25rem; }
.stadium-next-race span,.stadium-next-race small { display: block; margin-top: .18rem; font-size: .68rem; }
.result-badge {
    flex: none;
    padding: .3rem .55rem;
    border-radius: 999px;
    background: rgba(251,191,36,.14);
    color: var(--warning);
    font-size: .68rem;
    font-weight: 900;
}
.race-result-line,.ranking-result-line {
    margin-top: .75rem;
    padding-top: .65rem;
    border-top: 1px solid rgba(255,255,255,.07);
    color: var(--warning);
    font-size: .72rem;
    font-weight: 800;
}
.ranking-result-line { margin-top: .5rem; padding-top: .45rem; }
.home-ranking-empty { margin-top: 1rem; border: 1px solid var(--border); border-radius: 16px; background: rgba(13,29,45,.7); }

@media (max-width: 700px) {
    .home-date-header { align-items: stretch; }
    .day-switch { flex: none; }
    .live-stadium-card { min-height: 132px; }
    .stadium-next-race { width: 100%; text-align: left; }
}

@media (max-width: 430px) {
    .home-date-header h1 { font-size: 1.35rem; }
    .day-switch-button { padding: .48rem .62rem; }
    .live-stadium-card { min-height: 142px; }
}

/* Home v4: 開催場カードをスマホでも左右2分割し、高さを抑える。 */
.live-stadium-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
    min-height: 96px;
}
.stadium-card-main {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
}
.stadium-next-race {
    width: auto;
    min-width: 72px;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    text-align: right;
    padding-left: .55rem;
    border-left: 1px solid rgba(255,255,255,.08);
}
.closing-soon-panel { margin-top: 1.2rem; }
.home-summary-bottom {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 1.2rem;
    margin-bottom: .5rem;
}

@media (max-width: 700px) {
    .live-stadium-card {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 96px;
        padding: .72rem;
    }
    .stadium-next-race {
        width: auto;
        text-align: right;
        align-items: flex-end;
    }
    .stadium-next-race strong { font-size: 1.15rem; }
    .stadium-card-main > strong { font-size: 1rem; }
    .stadium-card-main small { font-size: .64rem; }
}

@media (max-width: 430px) {
    .live-stadium-card { min-height: 92px; gap: .4rem; padding: .62rem; }
    .stadium-next-race { min-width: 64px; padding-left: .4rem; }
    .home-summary-bottom { gap: .45rem; }
    .home-summary-bottom .summary-card { padding: .7rem .45rem; }
    .home-summary-bottom .summary-card span { font-size: .62rem; }
    .home-summary-bottom .summary-card strong { font-size: 1rem; }
}

/* Home最下部の概要は、スマホでも必ず横3列で表示する。 */
@media (max-width: 700px) {
    .home-summary-bottom {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .home-summary-bottom .summary-card:first-child {
        grid-column: auto;
    }
}

/* Sprint 2: 開催場別1R〜12R一覧 */
.stadium-page-header { padding: 1rem 0 .8rem; }
.back-link { display:inline-block; margin-bottom:.8rem; color:var(--accent-blue); font-size:.78rem; font-weight:800; }
.stadium-page-header h1 { margin:.1rem 0; font-size:clamp(1.8rem,5vw,2.7rem); }
.stadium-page-meta,.stadium-page-meeting { margin:.3rem 0 0; color:var(--muted); }
.stadium-page-meeting { color:var(--text); font-weight:700; }
.stadium-race-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; padding-bottom:1.5rem; }
.stadium-race-card { padding:1rem; border:1px solid var(--border); border-radius:16px; background:linear-gradient(155deg,rgba(18,38,58,.98),rgba(9,24,38,.98)); }
.stadium-race-card:hover { border-color:var(--accent-blue); transform:translateY(-2px); }
.stadium-race-card-head,.stadium-race-score,.stadium-race-lane4 { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.stadium-race-card-head > strong { font-size:1.15rem; }
.stadium-race-score { margin:.85rem 0; }
.stadium-race-score > strong { color:var(--accent); font-size:1.45rem; }
.stadium-race-score small { color:var(--muted); font-size:.65rem; }
.stadium-race-lane4 { justify-content:flex-start; min-width:0; font-size:.78rem; }
.stadium-race-lane4 span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stadium-race-result,.stadium-race-deadline { margin-top:.75rem; padding-top:.6rem; border-top:1px solid rgba(255,255,255,.07); font-size:.72rem; font-weight:800; }
.stadium-race-result { color:var(--warning); }
.stadium-race-deadline { color:var(--muted); }
@media (max-width:900px){ .stadium-race-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:600px){ .stadium-race-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem;} .stadium-race-card{padding:.75rem;} }

/* Sprint 2 follow-up: detail fixed navigation and 3-column mobile stadium list */
.race-sticky-nav {
    position: sticky;
    top: 62px;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    margin: -.25rem 0 .85rem;
    padding: .55rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: rgba(7,24,39,.96);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,.22);
}
.race-nav-home,.race-nav-buttons a,.race-nav-buttons span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .45rem .65rem;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 10px;
    background: rgba(255,255,255,.04);
    font-size: .72rem;
    font-weight: 800;
    white-space: nowrap;
}
.race-nav-home { color: var(--accent-blue); }
.race-nav-buttons { display: flex; gap: .4rem; margin-left: auto; }
.race-nav-buttons span { color: var(--muted); opacity: .65; }

@media (max-width: 600px) {
    .stadium-race-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .42rem; }
    .stadium-race-card { padding: .58rem; border-radius: 12px; min-width: 0; }
    .stadium-race-card-head > strong { font-size: .95rem; }
    .stadium-race-card-head .judgment,.stadium-race-card-head .result-badge { padding: .2rem .35rem; font-size: .55rem; }
    .stadium-race-score { display: block; margin: .55rem 0; }
    .stadium-race-score .stars { display: block; overflow: hidden; white-space: nowrap; font-size: .68rem; }
    .stadium-race-score > strong { display: block; margin-top: .15rem; font-size: 1.08rem; }
    .stadium-race-lane4 { font-size: .64rem; }
    .stadium-race-lane4 .lane-badge { width: 20px; height: 20px; min-width: 20px; }
    .stadium-race-result,.stadium-race-deadline { margin-top: .48rem; padding-top: .4rem; font-size: .6rem; }
    .race-sticky-nav { top: 55px; align-items: stretch; padding: .45rem; }
    .race-nav-home { flex: 0 0 auto; padding-inline: .5rem; font-size: .65rem; }
    .race-nav-buttons { flex: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .28rem; }
    .race-nav-buttons a,.race-nav-buttons span { min-width: 0; padding: .4rem .2rem; font-size: .61rem; }
}


/* Sprint 2 cache/layout follow-up */
/* Homeの開催場はスマホでも3列。情報量の多い開催場ページは2列。 */
@media (max-width: 600px) {
    .stadium-section-first .stadium-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: .42rem;
    }
    .stadium-section-first .live-stadium-card {
        min-height: 86px;
        padding: .55rem;
        gap: .3rem;
    }
    .stadium-section-first .stadium-card-main > strong {
        font-size: .9rem;
    }
    .stadium-section-first .stadium-card-main small,
    .stadium-section-first .stadium-next-race span,
    .stadium-section-first .stadium-next-race small {
        font-size: .56rem;
    }
    .stadium-section-first .stadium-next-race {
        min-width: 48px;
        padding-left: .3rem;
    }
    .stadium-section-first .stadium-next-race strong {
        font-size: 1rem;
    }
    .stadium-race-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }
    .stadium-race-card {
        padding: .75rem;
    }
    .stadium-race-card-head > strong { font-size: 1.05rem; }
    .stadium-race-score { display: flex; margin: .7rem 0; }
    .stadium-race-score .stars { font-size: .8rem; }
    .stadium-race-score > strong { font-size: 1.25rem; }
    .stadium-race-lane4 { font-size: .72rem; }
    .stadium-race-result,.stadium-race-deadline { font-size: .68rem; }
}

.stadium-sticky-nav {
    position: sticky;
    top: 62px;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    margin: -.25rem 0 .85rem;
    padding: .55rem .7rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: rgba(7,24,39,.96);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,.22);
}
.stadium-sticky-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: .45rem .7rem;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 10px;
    background: rgba(255,255,255,.04);
    color: var(--accent-blue);
    font-size: .72rem;
    font-weight: 800;
}
.stadium-sticky-nav strong { font-size: .76rem; }
@media (max-width: 600px) {
    .stadium-sticky-nav { top: 55px; padding: .45rem; }
    .stadium-sticky-nav a { min-height: 34px; padding: .38rem .55rem; font-size: .66rem; }
    .stadium-sticky-nav strong { font-size: .68rem; }
}

/* Sprint 2 display refinement */
.stadium-grade-line,.stadium-day-line { display:block; line-height:1.25; }
.stadium-switch-nav { display:grid; grid-template-columns:1fr auto 1fr; }
.stadium-switch-nav a:last-child { justify-self:end; }
.stadium-home-link { color:var(--accent) !important; }
.stadium-page-grade,.stadium-page-day { margin:.22rem 0 0; font-weight:900; }
.stadium-page-grade { color:var(--accent-blue); }
.stadium-page-day { color:var(--muted); }
.stadium-race-time { color:var(--muted); font-size:.72rem; font-weight:900; }
.stadium-race-title-text { min-height:1.2rem; margin-top:.4rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); font-size:.78rem; font-weight:800; }
.hot-head-racer { display:flex; align-items:center; gap:.48rem; padding:.55rem; border:1px solid rgba(251,146,60,.28); border-radius:11px; background:rgba(251,146,60,.08); }
.hot-head-icon { font-size:1.25rem; filter:drop-shadow(0 0 7px rgba(251,146,60,.65)); }
.hot-head-racer small,.hot-head-racer strong { display:block; }
.hot-head-racer small { color:#fb923c; font-size:.6rem; font-weight:900; }
.hot-head-racer strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.76rem; }
.top-race-tickets { margin-top:.8rem; padding:.55rem .65rem; border-radius:10px; background:rgba(56,189,248,.08); }
.top-race-tickets small,.top-race-tickets strong { display:block; }
.top-race-tickets small { color:var(--accent-blue); font-size:.6rem; font-weight:900; }
.top-race-tickets strong { margin-top:.18rem; font-size:.72rem; line-height:1.45; }
.race-heading > div small { display:block; margin-top:.18rem; color:var(--muted); }
.ranking-score-summary { display:flex; align-items:center; justify-content:space-between; margin-top:.45rem; }
.ranking-score-summary strong { color:var(--accent); }
@media (max-width:600px) {
  .stadium-switch-nav a { min-width:0; padding:.38rem .35rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .stadium-race-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hot-head-racer strong { font-size:.68rem; }
  .stadium-race-title-text { font-size:.7rem; }
}

/* Display contract v2 */
.live-stadium-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; }
.live-stadium-card.tomorrow-stadium-card { grid-template-columns:1fr; }
.stadium-card-main,.stadium-next-race { min-width:0; }
.stadium-card-main > strong,.stadium-card-main > small,.stadium-next-race > strong,.stadium-next-race > span,.stadium-next-race > small { display:block; }
.stadium-card-main { text-align:left; }
.stadium-next-race { text-align:right; }
.stadium-page-nav { display:grid; grid-template-columns:1fr 3fr; }
.stadium-page-nav .race-nav-home { width:100%; justify-content:center; }
.stadium-nav-buttons { display:grid; grid-template-columns:1fr 1fr; width:100%; margin-left:0; }
.stadium-nav-buttons a { justify-content:center; }
.detail-race-nav-buttons { display:grid; grid-template-columns:1fr 1fr; }
.detail-race-nav-buttons a,.detail-race-nav-buttons span { justify-content:center; }
.race-nav-buttons .is-disabled { pointer-events:none; opacity:.38; }
.race-flow-preview { margin:.55rem 0; padding:.55rem; border:1px solid rgba(56,189,248,.22); border-radius:10px; background:rgba(56,189,248,.07); }
.race-flow-preview small,.race-flow-preview strong { display:block; }
.race-flow-preview small { color:var(--accent-blue); font-size:.6rem; font-weight:900; }
.race-flow-preview strong { margin-top:.15rem; font-size:.78rem; }
.race-state-label { padding:.25rem .42rem; border-radius:999px; font-size:.62rem; font-weight:900; }
.state-finished { background:rgba(34,197,94,.15); color:#86efac; }
.state-closed { background:rgba(148,163,184,.15); color:#cbd5e1; }
@media(max-width:600px){
 .stadium-page-nav{grid-template-columns:1fr 3fr;}
 .stadium-page-nav .race-nav-home,.stadium-nav-buttons a{font-size:.6rem;padding:.38rem .2rem;}
 .live-stadium-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
 .live-stadium-card.tomorrow-stadium-card{grid-template-columns:1fr;}
}

/* 2026-07-30 navigation and compact ticket refinements */
.detail-four-nav { display:grid; grid-template-columns:1fr 1fr 1.5fr 1fr; gap:8px; }
.detail-four-nav > a,.detail-four-nav > span { display:flex; align-items:center; justify-content:center; min-width:0; text-align:center; }
.compact-ticket-details summary { display:flex; align-items:center; gap:8px; white-space:nowrap; overflow:hidden; cursor:pointer; }
.compact-ticket-details summary strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compact-ticket-details summary::-webkit-details-marker { display:none; }
.ticket-expanded { margin-top:8px; line-height:1.7; }
.stadium-race-card.is-unavailable { opacity:.72; cursor:default; }
@media (max-width:640px){ .detail-four-nav{grid-template-columns:.8fr .8fr 1.4fr .8fr;gap:4px}.detail-four-nav>a,.detail-four-nav>span{font-size:12px;padding:9px 4px} }

/* 2026-07-30 prediction/result polish */
/* 詳細画面の固定ナビも開催場一覧と同じ「枠付きボタン」に統一する。 */
.detail-four-nav > a,
.detail-four-nav > span {
    min-height: 38px;
    padding: .45rem .55rem;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 10px;
    background: rgba(255,255,255,.045);
    color: var(--text);
    font-size: .72rem;
    font-weight: 800;
}
.detail-four-nav > a:first-child { color: var(--accent-blue); }
.detail-four-nav > span.is-disabled { color: var(--muted); opacity: .38; }
.ticket-group-list { display: grid; gap: .7rem; }
.ticket-group { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: .7rem; align-items: start; padding: .7rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.025); }
.ticket-group-label strong,.ticket-group-label span { display:block; }
.ticket-group-label strong { font-size: .82rem; }
.ticket-group-label span { margin-top:.15rem; color:var(--muted); font-size:.65rem; }
.ticket-role-本命 .ticket-group-label strong { color:#fbbf24; }
.ticket-role-対抗 .ticket-group-label strong { color:#60a5fa; }
.ticket-role-押さえ .ticket-group-label strong { color:#c4b5fd; }
.ticket-group-numbers { display:flex; flex-wrap:wrap; gap:.42rem; }
.ticket-group-numbers span { padding:.42rem .58rem; border:1px solid rgba(255,255,255,.1); border-radius:9px; background:rgba(56,189,248,.07); font-weight:900; }
.bet-skip-message { display:flex; align-items:center; gap:.8rem; padding:.8rem; border:1px solid rgba(148,163,184,.22); border-radius:12px; background:rgba(148,163,184,.07); }
.bet-skip-message strong { font-size:1.05rem; }
.bet-skip-message small { color:var(--muted); }
.prediction-hit-panel { position:relative; overflow:hidden; border-color:rgba(239,68,68,.45); }
.prediction-hit-panel::after { content:'的中'; position:absolute; right:18px; bottom:4px; transform:rotate(-13deg); color:rgba(239,68,68,.13); font-size:4rem; font-weight:1000; pointer-events:none; }
.prediction-hit-badge { display:inline-flex; align-items:center; justify-content:center; padding:.3rem .55rem; border:2px solid #ef4444; border-radius:999px; color:#fca5a5; background:rgba(239,68,68,.08); font-size:.7rem; font-weight:1000; }
.stadium-prediction-hits { display:flex; flex-wrap:wrap; gap:.35rem; margin:.45rem 0; }
.stadium-prediction-hits span { padding:.28rem .42rem; border:1px solid rgba(239,68,68,.42); border-radius:999px; color:#fca5a5; background:rgba(239,68,68,.08); font-size:.61rem; font-weight:900; }
@media(max-width:600px){
  .ticket-group { grid-template-columns:72px minmax(0,1fr); gap:.5rem; padding:.58rem; }
  .ticket-group-numbers span { padding:.36rem .45rem; font-size:.72rem; }
  .detail-four-nav > a,.detail-four-nav > span { min-height:36px; font-size:.62rem; padding:.38rem .2rem; }
}

/* 買い目的中をランキング内でコンパクトに表示 */
.compact-hit-badge {
  font-size: .68rem;
  white-space: nowrap;
  padding: .2rem .45rem;
}
.ticket-group-numbers span,
.ticket-list span {
  white-space: nowrap;
}

/* 予想的中は詳細・TOP5・全国ランキング・12R一覧で同じ透かしを使う。 */
.top-race-card.prediction-hit-panel,
.ranking-card.prediction-hit-panel,
.stadium-race-card.prediction-hit-panel {
    position: relative;
    overflow: hidden;
    border-color: rgba(239, 68, 68, .45);
}
.top-race-card.prediction-hit-panel::after,
.ranking-card.prediction-hit-panel::after,
.stadium-race-card.prediction-hit-panel::after {
    content: '的中';
    position: absolute;
    right: 12px;
    bottom: -2px;
    transform: rotate(-13deg);
    color: rgba(239, 68, 68, .12);
    font-size: 3.2rem;
    font-weight: 1000;
    pointer-events: none;
    z-index: 0;
}
.top-race-card.prediction-hit-panel > *,
.ranking-card.prediction-hit-panel > *,
.stadium-race-card.prediction-hit-panel > * { position: relative; z-index: 1; }
.ranking-hit-line { margin-top: .45rem; }
.preliminary-detail-notice { margin: -.25rem 0 1rem; }

/* Home開催場カードは締切ラベルを分割しない */
.stadium-card .deadline-time, .stadium-card [data-deadline-time], .stadium-card__deadline { white-space: nowrap; font-size: clamp(.68rem, 2.7vw, .82rem); }
.stadium-card__name { font-size: clamp(.88rem, 3.3vw, 1.05rem); }


/* Home開催場カード: 締切時刻は専用1行に固定し、狭い3列でも折り返さない。 */
.stadium-section-first .live-stadium-card {
    grid-template-columns: minmax(0, 1fr) minmax(42px, .72fr);
}
.stadium-section-first .stadium-next-race {
    min-width: 0;
    overflow: hidden;
}
.stadium-section-first .stadium-next-race > strong,
.stadium-section-first .stadium-next-race > span,
.stadium-section-first .stadium-next-race > small,
.stadium-section-first .stadium-deadline-clock {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    line-height: 1.15;
}
.stadium-section-first .stadium-deadline-clock {
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
}
@media (max-width: 600px) {
    .stadium-section-first .live-stadium-card {
        grid-template-columns: minmax(0, 1fr) minmax(38px, .68fr);
        padding-inline: .48rem;
    }
    .stadium-section-first .stadium-card-main > strong {
        font-size: clamp(.76rem, 3.2vw, .9rem);
    }
    .stadium-section-first .stadium-next-race > span,
    .stadium-section-first .stadium-next-race > small {
        font-size: clamp(.48rem, 2.25vw, .58rem);
    }
    .stadium-section-first .stadium-next-race > strong {
        font-size: clamp(.82rem, 3.4vw, 1rem);
    }
}

/* 的中と高額払戻を全画面で明確に強調する。 */
.prediction-hit-panel,
.top-race-card.prediction-hit-panel,
.ranking-card.prediction-hit-panel,
.stadium-race-card.prediction-hit-panel {
    border: 3px solid rgba(239, 68, 68, .88) !important;
}
.prediction-hit-panel::after,
.top-race-card.prediction-hit-panel::after,
.ranking-card.prediction-hit-panel::after,
.stadium-race-card.prediction-hit-panel::after {
    color: rgba(239, 68, 68, .24) !important;
    text-shadow: 0 0 1px rgba(255,255,255,.12);
}
.high-payout,
.high-payout * {
    color: #ff4d4f !important;
    font-weight: 1000 !important;
}

/* 締切ラベルを残しつつ、狭いカードでも1行に収める。 */
.stadium-section-first .stadium-next-race {
    min-width: 56px;
}
.stadium-section-first .stadium-deadline-clock {
    display: flex !important;
    justify-content: flex-end;
    align-items: baseline;
    gap: .18rem;
    font-size: clamp(.48rem, 2vw, .62rem) !important;
    letter-spacing: -.045em;
}
.stadium-section-first .stadium-deadline-clock b {
    font-size: .82em;
    font-weight: 900;
}
.stadium-section-first .stadium-next-race.is-finished {
    display: grid;
    align-content: center;
    gap: .16rem;
}
.stadium-section-first .stadium-next-race.is-finished strong,
.stadium-section-first .stadium-next-race.is-finished span {
    text-align: right;
}

/* 2026-07-31 Home開催場カード: 終了前後で左右境界を同じ位置に固定する。 */
.stadium-section-first .live-stadium-card:not(.tomorrow-stadium-card) {
    grid-template-columns: minmax(0, 50%) minmax(0, 50%) !important;
    column-gap: 0 !important;
}
.stadium-section-first .stadium-card-main {
    padding-right: .5rem;
}
.stadium-section-first .stadium-next-race {
    width: 100% !important;
    min-width: 0 !important;
    padding-left: .5rem;
    box-sizing: border-box;
}
.stadium-section-first .stadium-next-race.is-finished {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.stadium-section-first .stadium-next-race.is-finished strong {
    width: 100%;
    text-align: right;
    font-size: clamp(.76rem, 3vw, .94rem);
}


/* レース詳細の情報設計を整理 */
.compact-detail-hero { margin-bottom: .8rem; }
.detail-score-summary small { white-space: nowrap; }
.prediction-result-panel { display: grid; gap: 0; padding: 0; overflow: hidden; }
.prediction-block { padding: 1rem; }
.prediction-block + .prediction-block { border-top: 1px solid rgba(148,163,184,.22); }
.prediction-title-row { align-items: flex-start; }
.flow-summary-badges { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
.flow-badge, .entry-change-badge { display: inline-flex; align-items: center; min-height: 30px; padding: .3rem .65rem; border-radius: 999px; font-weight: 900; background: rgba(59,130,246,.13); border: 1px solid rgba(59,130,246,.32); }
.flow-summary-text { margin: .45rem 0 .8rem; color: var(--muted-text, #94a3b8); }
.exhibition-revision-block { background: rgba(245,158,11,.055); }
.entry-change-badge { background: rgba(245,158,11,.15); border-color: rgba(245,158,11,.38); }
.entry-order-area { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-bottom: .8rem; }
.entry-order-area > div { padding: .7rem; border-radius: .8rem; background: rgba(148,163,184,.07); }
.entry-order-area > div > span { display:block; margin-bottom:.45rem; font-size:.78rem; color:var(--muted-text,#94a3b8); font-weight:800; }
.lane-order-row { display:flex; gap:.3rem; flex-wrap:wrap; }
.racer-section-heading { align-items: center; gap: .7rem; }
.scroll-guide { display:inline-flex; align-items:center; min-height:36px; padding:.35rem .75rem; border-radius:999px; background:rgba(59,130,246,.14); border:1px solid rgba(59,130,246,.35); color:inherit; font-weight:900; text-decoration:none; white-space:nowrap; }
.st-overview-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) auto; gap:.65rem; margin-bottom:.75rem; }
.st-overview-strip > div { padding:.7rem; border-radius:.8rem; background:rgba(148,163,184,.07); }
.st-overview-strip span { display:block; font-size:.72rem; color:var(--muted-text,#94a3b8); }
.st-overview-strip strong { display:block; margin-top:.15rem; font-size:1.05rem; }
.help-chip { align-self:stretch; border:1px solid rgba(148,163,184,.3); border-radius:.8rem; background:rgba(148,163,184,.08); color:inherit; font-weight:900; padding:.55rem .8rem; cursor:pointer; }
.has-scroll-cue { position:relative; box-shadow: inset -18px 0 20px -22px rgba(255,255,255,.85); }
.racer-name-cell a { color:inherit; text-decoration:none; display:block; }
.racer-name-cell a:hover strong { text-decoration:underline; }
.help-dialog { width:min(520px,calc(100vw - 2rem)); border:1px solid rgba(148,163,184,.28); border-radius:1rem; padding:1rem; background:#111827; color:#f8fafc; }
.help-dialog::backdrop { background:rgba(2,6,23,.7); }
.dialog-close { float:right; border:0; border-radius:999px; width:34px; height:34px; cursor:pointer; }
.accordion-racer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.racer-detail-card { padding:0; overflow:hidden; scroll-margin-top:120px; }
.racer-detail-summary { list-style:none; padding:1rem; cursor:pointer; display:grid; gap:.65rem; }
.racer-detail-summary::-webkit-details-marker { display:none; }
.racer-detail-summary::after { content:'開く ＋'; justify-self:end; font-size:.76rem; font-weight:900; color:var(--muted-text,#94a3b8); }
.racer-detail-card[open] .racer-detail-summary::after { content:'閉じる −'; }
.racer-summary-values { display:flex; gap:.65rem; flex-wrap:wrap; font-size:.78rem; font-weight:800; }
.racer-detail-body { padding:0 1rem 1rem; border-top:1px solid rgba(148,163,184,.16); }
.secondary-analysis-panel > summary { cursor:pointer; list-style:none; padding:.2rem 0; }
.secondary-analysis-panel > summary::-webkit-details-marker { display:none; }
.secondary-analysis-panel > summary::after { content:' ＋'; }
.secondary-analysis-panel[open] > summary::after { content:' −'; }
@media (max-width: 700px) {
  .prediction-block { padding:.85rem; }
  .prediction-title-row { display:grid; gap:.6rem; }
  .flow-summary-badges { justify-content:flex-start; }
  .entry-order-area { grid-template-columns:1fr; }
  .racer-section-heading { display:grid; }
  .scroll-guide { justify-self:start; }
  .st-overview-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .st-overview-strip .help-chip { grid-column:1/-1; }
  .accordion-racer-grid { grid-template-columns:1fr; }
  .racer-table-wrap { margin-inline:-.35rem; padding-inline:.35rem; }
}

/* 2026-08-02 レース詳細の視認性・比較表・選手ジャンプ調整 */
.detail-flow-preview { margin: .35rem 0 .7rem; }
.detail-flow-line { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.detail-flow-line strong { margin-top:.12rem; }
.flow-reason-details { margin:.45rem 0 .9rem; border:1px solid rgba(148,163,184,.18); border-radius:.75rem; background:rgba(148,163,184,.045); overflow:hidden; }
.flow-reason-details summary { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.65rem; padding:.65rem .75rem; cursor:pointer; list-style:none; }
.flow-reason-details summary::-webkit-details-marker { display:none; }
.flow-reason-preview { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; line-height:1.55; color:var(--muted-text,#94a3b8); }
.flow-reason-details summary small { white-space:nowrap; color:var(--accent-blue,#38bdf8); font-weight:900; }
.flow-reason-details > p { margin:0; padding:.75rem; border-top:1px solid rgba(148,163,184,.14); line-height:1.7; color:var(--muted-text,#94a3b8); }
.result-block { margin-top:.8rem; border-top:1px solid rgba(148,163,184,.3) !important; padding-top:1.2rem; }
.entry-order-area { gap:1rem; }
.entry-order-area .lane-order-row { gap:.5rem; }
.entry-order-area .lane-badge { width:24px; height:24px; font-size:.78rem; }
.st-overview-header { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin:.1rem 0 .65rem; padding:.7rem .8rem; border-left:3px solid rgba(56,189,248,.65); background:rgba(56,189,248,.055); border-radius:.2rem .75rem .75rem .2rem; }
.st-overview-header strong,.st-overview-header small { display:block; }
.st-overview-header small { margin-top:.2rem; color:var(--muted-text,#94a3b8); line-height:1.5; }
.racer-table { min-width:940px; font-size:.9em; }
.racer-table th,.racer-table td { padding:.6rem .58rem; }
.racer-table th { font-size:.68rem; }
.racer-table td small,.racer-name-cell small { font-size:.62rem; margin-top:.12rem; }
.racer-table .lane-badge { width:27px; height:27px; font-size:.86rem; }
.racer-detail-card { scroll-margin-top:170px; }
.racer-detail-summary { padding:.9rem; gap:.55rem; }
.racer-summary-values { gap:.4rem .7rem; }
.racer-summary-values span { padding:.2rem .38rem; border-radius:.45rem; background:rgba(148,163,184,.07); }
.racer-summary-st-history small { display:block; margin-bottom:.3rem; color:var(--muted-text,#94a3b8); font-weight:800; }
.racer-summary-st-history > div { display:flex; flex-wrap:wrap; gap:.28rem; }
.racer-summary-st-history b,.racer-summary-st-history span { padding:.2rem .34rem; border-radius:.38rem; background:rgba(148,163,184,.08); font-size:.7rem; }
.secondary-analysis-panel[open] .score-breakdown { margin-top:1rem; }
.secondary-analysis-panel .score-group-grid { margin-top:1rem; }

@media (max-width:700px) {
  .detail-flow-line { align-items:flex-start; }
  .flow-reason-details summary { grid-template-columns:1fr; gap:.35rem; }
  .flow-reason-details summary small { justify-self:start; }
  .result-block { margin-top:.95rem; padding-top:1.15rem; }
  .entry-order-area .lane-order-row { gap:.42rem; }
  .entry-order-area .lane-badge { width:23px; height:23px; font-size:.74rem; }
  .st-overview-header { align-items:flex-start; flex-direction:column; }
  .racer-table { min-width:900px; }
  .racer-table th,.racer-table td { padding:.55rem .5rem; }
  .racer-detail-card { scroll-margin-top:190px; }
}

/* Race detail information architecture refinement */
.race-meta-line,.meeting-name-line{margin:.15rem 0;color:var(--muted);font-size:.92rem}
.meeting-name-line{font-weight:700}
.corner-score-label{display:block;color:#7dd3fc;font-weight:800;letter-spacing:.04em}
.detail-score-summary strong em{font-size:.68rem;font-style:normal;margin-left:.15rem;color:var(--muted)}
.flow-evaluation-line{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.35rem;color:var(--muted);font-size:.82rem;font-weight:700}
.flow-reason-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.flow-reason-details[open] .flow-reason-preview,.flow-reason-details[open] .reason-more-label{display:none}
.flow-reason-full{margin:.7rem 0 0;white-space:pre-line}
.result-ratio-grid{grid-template-columns:minmax(0,4fr) minmax(0,6fr)}
.result-ratio-grid .result-narrow,.result-ratio-grid .result-wide{min-width:0}
.result-lane-row{gap:.28rem;flex-wrap:nowrap}
.result-lane-row .lane-badge{width:25px;height:25px;font-size:.78rem}
.lane-separator{color:var(--muted);font-size:.75rem}
.scroll-guide-static{cursor:default;pointer-events:none}
.table-help-button{width:21px;height:21px;padding:0;border-radius:50%;border:1px solid rgba(125,211,252,.65);background:rgba(14,165,233,.13);color:#7dd3fc;font-weight:900;cursor:pointer}
.racer-jump-row{cursor:pointer}
.racer-jump-row:hover{background:rgba(56,189,248,.12)}
.current-meet-history-strip{display:flex;gap:.35rem;overflow-x:auto;padding:.35rem 0 .1rem;scrollbar-width:thin}
.meet-history-chip{display:grid;grid-template-columns:auto auto;gap:.08rem .35rem;flex:0 0 auto;padding:.38rem .48rem;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:rgba(255,255,255,.035);font-size:.72rem}
.meet-history-chip b{grid-column:1/-1}
.meet-history-chip small,.meet-history-chip strong{white-space:nowrap}
.score-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.score-index-button{display:flex;justify-content:space-between;align-items:center;gap:.45rem;padding:.7rem .75rem;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.035);color:inherit;cursor:pointer}
.collapsible-score-groups{margin-top:1.35rem}
.score-group-card>summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;list-style:none}
.score-group-card>summary::-webkit-details-marker{display:none}
.score-group-card .scored-reason-list{margin-top:1rem}
.stadium-page-meeting-name{margin:.3rem 0 0;color:var(--muted);font-size:.9rem}
@media(max-width:700px){
  .result-ratio-grid{grid-template-columns:minmax(0,4fr) minmax(0,6fr)}
  .score-index{grid-template-columns:repeat(2,minmax(0,1fr))}
  .current-meet-history-strip{margin-inline:-.2rem;padding-inline:.2rem}
}

/* 2026-08-02 レース詳細の結果・的中・余白調整 */
.flow-reason-details[open] summary { padding-bottom: .25rem; }
.flow-reason-details[open] .flow-reason-full {
  margin: 0;
  padding: .35rem .75rem .8rem;
  border-top: 0;
}
.winning-ticket {
  color: #fff !important;
  background: rgba(220,38,38,.9) !important;
  border-color: rgba(248,113,113,.95) !important;
  box-shadow: 0 0 0 2px rgba(248,113,113,.22), 0 6px 16px rgba(127,29,29,.24);
  font-weight: 900;
}
.result-layout-compact { display: grid; gap: .8rem; }
.result-finish-full,
.result-meta-row > div {
  padding: .8rem;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
}
.result-finish-full > span,
.result-meta-row > div > span { display:block; color:var(--muted); font-size:.75rem; margin-bottom:.35rem; }
.result-finish-full .result-lane-row { flex-wrap: nowrap; overflow: hidden; }
.result-meta-row { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:.65rem; }
.result-meta-row strong { display:block; margin-top:.2rem; }
.racer-overview-panel .st-comparison-panel { margin-top: 1.25rem; }
.score-summary-label { display:flex; flex-direction:column; gap:.15rem; }
.score-summary-label h2 { margin:0; }
.score-summary-label small { color:var(--accent-blue,#38bdf8); font-weight:800; }
.score-group-card[open] .score-summary-label small { visibility:hidden; }
.stadium-race-grid { margin-top: 1.25rem; }

@media (max-width: 640px) {
  .result-meta-row { grid-template-columns: 1fr; }
  .result-finish-full .lane-badge { width:1.7rem; height:1.7rem; font-size:.78rem; }
}
.racer-overview-panel .st-overview-header { margin-top: 1.35rem; }
.stadium-page-hero + .stadium-race-grid { margin-top: 1.4rem; }

/* 結果エリア: 進入・着順・払戻を同じ視覚ルールで整理 */
.result-subpanel{margin-top:1rem;padding:1rem;border:1px solid var(--border-color,#d9dee7);border-radius:14px;background:rgba(255,255,255,.58)}
.result-subpanel h3{margin:0 0 .75rem;font-size:1rem}
.entry-result-subpanel .entry-order-area{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.entry-result-subpanel .entry-order-area>div{min-width:0}
.compact-result-lanes{gap:.34rem;flex-wrap:nowrap}
.compact-result-lanes .lane-badge{width:1.72rem;height:1.72rem;min-width:1.72rem;font-size:.78rem}
.result-finish-line,.trifecta-payout-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem}
.trifecta-payout-line{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border-color,#d9dee7)}
.result-finish-line>div:first-child,.trifecta-payout-line>div:first-child{min-width:0}
.result-finish-line span,.trifecta-payout-line span,.entry-order-area span{display:block;margin-bottom:.3rem;font-size:.78rem;color:var(--muted-color,#687386)}
.winning-method-inline{text-align:right;white-space:nowrap}
.other-payout-details{margin-top:1rem;border-top:1px solid var(--border-color,#d9dee7);padding-top:.85rem}
.other-payout-details summary{cursor:pointer;font-weight:700;color:var(--primary-color,#3159d8)}
.other-payout-grid{display:grid;gap:.65rem;margin-top:.8rem}
.other-payout-row{display:grid;grid-template-columns:5rem 1fr;gap:.75rem;padding:.65rem .75rem;border-radius:10px;background:rgba(245,247,251,.9)}
.other-payout-row div{display:flex;flex-wrap:wrap;gap:.4rem .85rem}
.prediction-title-row{align-items:flex-start}
.prediction-title-row .prediction-hit-badge{margin-left:auto;white-space:nowrap}

@media(max-width:640px){
  .result-subpanel{padding:.82rem}
  .entry-result-subpanel .entry-order-area{gap:.6rem}
  .compact-result-lanes{gap:.23rem}
  .compact-result-lanes .lane-badge{width:1.48rem;height:1.48rem;min-width:1.48rem;font-size:.7rem}
  .result-finish-line,.trifecta-payout-line{grid-template-columns:minmax(0,1fr) auto;gap:.55rem}
  .other-payout-row{grid-template-columns:4.2rem 1fr;padding:.55rem .6rem}
}

/* レース詳細結果UIの競合解消 */
.prediction-title-with-hit{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.prediction-title-with-hit .prediction-hit-badge{position:static;margin:.1rem 0 0 auto;align-self:flex-start}
.result-block{display:grid;gap:1rem}
.result-group{padding:.95rem 0;border-top:1px solid var(--border-color,#d9dee7);background:transparent!important;border-radius:0!important}
.result-group:first-of-type{border-top:0;padding-top:.25rem}
.result-group h3{margin:0 0 .65rem;font-size:.9rem;color:var(--muted-color,#687386)}
.result-entry-lines{display:grid;grid-template-columns:1fr;gap:.75rem}
.result-entry-line{display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto;align-items:center;gap:.65rem}
.result-entry-line>span{font-size:.78rem;color:var(--muted-color,#687386)}
.result-finish-content,.result-trifecta-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0}
.result-inline-note{display:flex;align-items:baseline;gap:.45rem;white-space:nowrap}
.result-inline-note span{font-size:.75rem;color:var(--muted-color,#687386)}
.result-payout-value{white-space:nowrap;font-size:1.05rem}
.compact-result-lanes{display:flex;align-items:center;gap:.38rem;min-width:0}
.compact-result-lanes .lane-badge{display:inline-flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle;margin:0}
.other-payout-details{display:block;margin-top:.15rem;padding-top:.8rem;border-top:1px solid var(--border-color,#d9dee7)}
.other-payout-details>summary{display:list-item;cursor:pointer;font-weight:800;color:var(--primary-color,#3159d8)}

@media(max-width:640px){
  .prediction-title-with-hit{align-items:flex-start}
  .prediction-title-with-hit .prediction-hit-badge{font-size:.7rem;padding:.3rem .5rem}
  .result-finish-content,.result-trifecta-content{gap:.65rem}
  .result-entry-line{grid-template-columns:2.7rem minmax(0,1fr) auto}
}

/* 2026-08-02: 配色切替、旧Safari互換、小画面調整 */
.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:1120px;margin:auto;padding-right:1rem}
.header-inner .brand{margin:0;padding-right:.5rem}
.theme-toggle{flex:none;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-weight:900;min-width:42px;height:34px;cursor:pointer}

html[data-theme="light"]{
  color-scheme:light;
  --background:#f5f7fb;
  --surface:#ffffff;
  --surface-soft:#edf2f7;
  --border:#cbd5e1;
  --text:#172033;
  --muted:#64748b;
  --accent:#059669;
  --accent-blue:#0284c7;
  --warning:#b45309;
  --danger:#dc2626;
}
html[data-theme="light"] body{background:radial-gradient(circle at top right,rgba(14,165,233,.10),transparent 34rem),var(--background)}
html[data-theme="light"] .site-header{background:rgba(245,247,251,.92);border-bottom-color:rgba(15,23,42,.12)}
html[data-theme="light"] .summary-card,
html[data-theme="light"] .panel{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(241,245,249,.98));box-shadow:0 14px 30px rgba(15,23,42,.08)}
html[data-theme="light"] .ranking-card,
html[data-theme="light"] .stadium-card,
html[data-theme="light"] .ranking-all-section details,
html[data-theme="light"] .home-ranking-empty{background:rgba(255,255,255,.96)}
html[data-theme="light"] .score-breakdown div,
html[data-theme="light"] .status-loading{background:rgba(15,23,42,.04)}
html[data-theme="light"] .metric-list div,
html[data-theme="light"] .status-row,
html[data-theme="light"] .race-result-line,
html[data-theme="light"] .ranking-result-line{border-color:rgba(15,23,42,.10)}
html[data-theme="light"] .help-dialog{background:#fff;color:#172033;border-color:#cbd5e1}
html[data-theme="light"] .other-payout-row{background:#eef2f7}

/* dialog未対応の古いSafariでは、open属性がない限り必ず隠す。 */
dialog:not([open]){display:none!important}
dialog.dialog-fallback-open{position:fixed;z-index:1000;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:block;max-height:calc(100vh - 2rem);overflow:auto}
dialog.dialog-fallback-open::before{content:"";position:fixed;inset:0;background:rgba(2,6,23,.70);z-index:-1}

/* 結果表示の艇番・区切り・見出し位置を統一 */
.result-group-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}
.result-group-heading h3{margin:0!important}
.winning-method-heading{display:flex;align-items:baseline;gap:.4rem;margin-left:auto;white-space:nowrap}
.winning-method-heading span{font-size:.74rem;color:var(--muted)}
.winning-method-heading strong{font-size:.92rem}
.lane-separator{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:.76rem;line-height:1;margin:0 -.08rem}

/* iPhone 6s相当の幅でもHome開催場カードを3列で読めるようにする。 */
@media(max-width:390px){
  .page-container{padding-inline:.45rem}
  .stadium-section-first .stadium-grid{gap:.28rem}
  .stadium-section-first .live-stadium-card{min-height:82px;padding:.44rem .32rem}
  .stadium-section-first .stadium-card-main{padding-right:.24rem;overflow:visible}
  .stadium-section-first .stadium-card-main>strong{font-size:.76rem;line-height:1.12;overflow:visible;text-overflow:clip;white-space:nowrap;letter-spacing:-.04em}
  .stadium-section-first .stadium-card-main small{font-size:.49rem;line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:clip}
  .stadium-section-first .stadium-next-race{padding-left:.25rem}
  .stadium-section-first .stadium-next-race>strong{font-size:.82rem}
  .stadium-section-first .stadium-next-race>span{font-size:.48rem}
  .stadium-section-first .stadium-deadline-clock{font-size:.46rem!important;gap:.1rem;letter-spacing:-.06em}
  .stadium-section-first .stadium-deadline-clock b{font-size:.78em}
  .home-date-header h1{font-size:1.15rem}
  .day-switch-button{padding:.4rem .45rem}
}

/* 2026-08-02: light theme completeness, stronger borders, iPhone 6s compatibility */
:root{
  --nav-bg:rgba(7,24,39,.96);
  --nav-item-bg:rgba(255,255,255,.04);
  --nav-item-border:rgba(255,255,255,.12);
  --card-gradient:linear-gradient(155deg,rgba(18,38,58,.98),rgba(9,24,38,.98));
  --card-flat:rgba(13,29,45,.92);
  --table-head-bg:#10283d;
  --table-head-text:#f4f8fb;
  --strong-border:rgba(148,163,184,.34);
  --lane-outline:#f8fafc;
}
html[data-theme="light"]{
  --nav-bg:rgba(255,255,255,.97);
  --nav-item-bg:#f8fafc;
  --nav-item-border:#94a3b8;
  --card-gradient:linear-gradient(155deg,#ffffff,#eef2f7);
  --card-flat:#ffffff;
  --table-head-bg:#e2e8f0;
  --table-head-text:#172033;
  --strong-border:#94a3b8;
  --lane-outline:#172033;
}
.day-switch{background:var(--surface);border-color:var(--strong-border)}
.day-switch-button{color:var(--muted);border:1px solid transparent}
.day-switch-button.is-active{background:var(--surface-soft);border-color:var(--accent-blue);box-shadow:none;color:var(--text)}
.top-race-card,.ranking-card{background:var(--card-flat)}
.stadium-race-card{background:var(--card-gradient)}
.race-sticky-nav{background:var(--nav-bg);border-color:var(--strong-border)}
.race-nav-home,.race-nav-buttons a,.race-nav-buttons span{background:var(--nav-item-bg);border-color:var(--nav-item-border);color:var(--text)}
.race-nav-home{color:var(--accent-blue)}
.racer-table thead th{background:var(--table-head-bg)!important;color:var(--table-head-text)!important;border-color:var(--strong-border)!important}
.near-deadline-card{border-color:var(--strong-border);background:var(--surface)}
.near-deadline-card.deadline-safe{border-color:#16a34a}
.near-deadline-card.deadline-warning{border-color:#d97706}
.near-deadline-card.deadline-danger{border-color:#dc2626}
.meet-history-chip,.racer-summary-st-history b,.racer-summary-st-history span{border:1px solid var(--strong-border);background:var(--surface-soft)}
.lane-badge{box-shadow:0 0 0 1.5px var(--lane-outline)}
.lane-1{background:#fff;color:#111827}
.lane-2{background:#111827;color:#fff}
html[data-theme="light"] .lane-1{box-shadow:0 0 0 1.5px #172033}
html[data-theme="light"] .lane-2{box-shadow:0 0 0 1.5px #172033}
html[data-theme="light"] .top-race-card,
html[data-theme="light"] .ranking-card,
html[data-theme="light"] .stadium-race-card,
html[data-theme="light"] .race-sticky-nav,
html[data-theme="light"] .day-switch,
html[data-theme="light"] .near-deadline-card{box-shadow:0 8px 20px rgba(15,23,42,.08)}

/* Other payout rows: colored lane badges and aligned amounts */
.other-payout-row{display:grid;grid-template-columns:minmax(4.5rem,.65fr) minmax(0,2fr);align-items:start;gap:.75rem;border:1px solid var(--strong-border)}
.other-payout-values{display:grid;gap:.42rem}
.other-payout-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem}
.other-payout-combination{display:flex;align-items:center;gap:.16rem;min-width:0}
.other-payout-combination .lane-badge{width:22px;height:22px;min-width:22px;font-size:.68rem}
.other-payout-amount{justify-self:end;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}

/* Hide help dialogs on old Safari until explicitly opened. */
dialog,.help-dialog{display:none!important}
dialog[open],.help-dialog[open],dialog.dialog-fallback-open,.help-dialog.dialog-fallback-open{display:block!important}

@media(max-width:390px){
  .stadium-section-first .stadium-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stadium-section-first .live-stadium-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0;overflow:hidden}
  .stadium-section-first .stadium-card-main,.stadium-section-first .stadium-next-race{min-width:0;width:auto}
  .stadium-section-first .stadium-card-main>strong{font-size:.72rem;letter-spacing:-.06em}
  .stadium-section-first .stadium-card-main small{font-size:.46rem}
  .stadium-section-first .stadium-next-race>strong{font-size:.78rem}
  .stadium-section-first .stadium-next-race>span{font-size:.45rem;white-space:nowrap}
  .stadium-section-first .stadium-deadline-clock{font-size:.43rem!important;white-space:nowrap}
  .other-payout-row{grid-template-columns:4rem minmax(0,1fr);gap:.45rem;padding:.55rem}
  .other-payout-item{gap:.35rem}
}

/* 2026-08-02: light theme contrast and legacy Safari help overlay refinement */
.stadium-section-first .stadium-next-race{
  border-left-color:var(--strong-border)!important;
}
.stadium-race-card .race-flow-preview{
  border-color:var(--strong-border);
}
.stadium-race-result{
  border-top-color:var(--strong-border)!important;
}
.racer-table tbody tr+tr td{
  border-top:1px solid var(--strong-border)!important;
}
.stars,.large-stars{
  color:#fbbf24!important;
  text-shadow:0 0 10px rgba(251,191,36,.22);
}
html[data-theme="light"] .stars,
html[data-theme="light"] .large-stars{
  color:#f59e0b!important;
  text-shadow:none;
}
html[data-theme="light"] .state-finished{
  color:#166534;
  background:#dcfce7;
  border:1px solid #86efac;
}
html[data-theme="light"] .flow-reason-preview,
html[data-theme="light"] .flow-reason-full{
  color:#475569;
}
html[data-theme="light"] .ticket-role-本命 .ticket-group-label strong{
  color:#b45309;
}
html[data-theme="light"] .ticket-role-対抗 .ticket-group-label strong{
  color:#1d4ed8;
}
html[data-theme="light"] .ticket-role-押さえ .ticket-group-label strong{
  color:#7e22ce;
}
.other-payout-row .other-payout-values{
  display:grid!important;
  width:100%;
  gap:.42rem!important;
}
.other-payout-row .other-payout-item{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  width:100%;
  align-items:center;
  gap:.75rem!important;
}
.other-payout-row .other-payout-amount{
  justify-self:end!important;
  text-align:right!important;
  min-width:5.8rem;
}
.help-dialog[hidden]{display:none!important}
.help-dialog.help-dialog-open{
  display:block!important;
  position:fixed;
  z-index:1100;
  inset:0;
  width:auto;
  max-width:none;
  max-height:none;
  margin:0;
  padding:clamp(4rem,15vh,8rem) 1rem 1rem;
  border:0;
  border-radius:0;
  background:rgba(2,6,23,.72)!important;
  color:inherit;
  overflow:auto;
}
.help-dialog.help-dialog-open>h2,
.help-dialog.help-dialog-open>p,
.help-dialog.help-dialog-open>.dialog-close{
  position:relative;
  z-index:1;
}
.help-dialog.help-dialog-open::after{
  content:"";
  position:absolute;
  z-index:0;
  top:clamp(3rem,12vh,6rem);
  left:50%;
  width:min(520px,calc(100% - 2rem));
  min-height:180px;
  transform:translateX(-50%);
  border:1px solid var(--strong-border);
  border-radius:1rem;
  background:var(--surface);
  box-shadow:0 24px 70px rgba(0,0,0,.35);
}
.help-dialog.help-dialog-open>h2,
.help-dialog.help-dialog-open>p{
  width:min(472px,calc(100% - 4rem));
  margin-left:auto;
  margin-right:auto;
}
.help-dialog.help-dialog-open>h2{margin-top:1rem}
.help-dialog.help-dialog-open>.dialog-close{
  display:block;
  width:2.25rem;
  height:2.25rem;
  margin:0 calc((100% - min(472px,calc(100% - 4rem)))/2) 0 auto;
}
html.modal-open{overflow:hidden}
.inline-help-button{
  display:inline-grid;
  place-items:center;
  width:19px;
  height:19px;
  margin-left:.18rem;
  padding:0;
  border:1px solid var(--accent-blue);
  border-radius:50%;
  background:transparent;
  color:var(--accent-blue);
  font-size:.68rem;
  font-weight:900;
  cursor:pointer;
  vertical-align:middle;
}
@media(max-width:390px){
  .help-dialog.help-dialog-open{padding-top:4.2rem}
  .other-payout-row .other-payout-amount{min-width:5.2rem}
}
.stadium-race-result>span{display:block}
.stadium-race-payout-line{margin-top:.38rem;padding-top:.38rem;border-top:1px solid var(--strong-border)}

/* 2026-08-03: race detail UI additions omitted from previous update ZIP */
.reason-close-label { display: none; }
details[open] .reason-open-label { display: none; }
details[open] .reason-close-label { display: inline; }
.racer-detail-name { font-size: 1.2em; line-height: 1.25; margin: 0 0 0.2rem; }
.racer-origin-line { margin-top: 0.2rem; color: var(--text-subtle, #9ca3af); }
.result-entry-group,
.result-finish-group,
.result-trifecta-group { border-top: 1px solid var(--border-color, #374151); padding-top: 0.75rem; margin-top: 0.75rem; }
[data-theme="light"] .result-entry-group,
[data-theme="light"] .result-finish-group,
[data-theme="light"] .result-trifecta-group { border-top-color: #cbd5e1; }


/* ===== 2026-08-03 latest project baseline fixes ===== */
/* 展開根拠: 開閉時にラベルを入れ替え、上線や空白を作らない。 */
.flow-reason-details[open] .flow-reason-preview { display: none !important; }
.flow-reason-details[open] .reason-open-label { display: none !important; }
.flow-reason-details:not([open]) .reason-close-label { display: none !important; }
.flow-reason-details[open] .reason-close-label { display: inline !important; }
.flow-reason-details[open] .reason-more-label { display: inline !important; }
.flow-reason-details[open] summary { padding: .65rem .75rem !important; border-bottom: 0 !important; }
.flow-reason-details > .flow-reason-full { border-top: 0 !important; padding-top: .15rem !important; }

/* 6艇比較表: テーマを問わず選手ごとの境界線を明示。 */
.racer-table tbody tr > td { border-bottom: 1px solid var(--strong-border, rgba(148,163,184,.35)) !important; }
.racer-table tbody tr:last-child > td { border-bottom: 0 !important; }
html[data-theme="light"] .racer-table tbody tr > td { border-bottom-color: #b8c2d1 !important; }

/* 選手詳細: ST3項目を必ず縦3行、名前とプロフィールを読みやすく。 */
.racer-summary-values { display: grid !important; grid-template-columns: 1fr !important; gap: .28rem !important; }
.racer-summary-values > span { display: flex; align-items: center; min-height: 1.45rem; }
.racer-detail-name { font-size: 1.28rem !important; font-weight: 900; }
.racer-origin-line { margin-top: .18rem; color: var(--muted-text, #94a3b8); }
.current-meet-history-strip { border: 1px solid var(--strong-border, rgba(148,163,184,.32)); border-radius: .7rem; padding: .45rem; }
html[data-theme="light"] .current-meet-history-strip { border-color: #b8c2d1; background: #f8fafc; }

/* 白テーマの固定ナビは外枠と各ボタンの境界を明確にする。 */
html[data-theme="light"] .race-sticky-nav {
  background: rgba(255,255,255,.98) !important;
  border: 2px solid #94a3b8 !important;
  box-shadow: 0 5px 18px rgba(15,23,42,.14) !important;
}
html[data-theme="light"] .race-sticky-nav > a,
html[data-theme="light"] .race-sticky-nav > span {
  background: #f8fafc !important;
  border: 1px solid #aab5c4 !important;
  color: #172033 !important;
}
html[data-theme="light"] .race-sticky-nav > a:hover { background: #e8eef6 !important; }

/* その他払戻: 勝式名 / 組番 / 金額を固定し、金額を完全右寄せ。 */
.other-payout-row { grid-template-columns: 4.6rem minmax(0,1fr) !important; }
.other-payout-values { width: 100%; display: grid !important; gap: .4rem !important; }
.other-payout-item { width: 100%; display: grid !important; grid-template-columns: minmax(0,1fr) minmax(5.5rem,auto) !important; }
.other-payout-amount { justify-self: end !important; text-align: right !important; min-width: 5.5rem; }

/* 白テーマの見出し・星・終了表示。 */
html[data-theme="light"] .stars,
html[data-theme="light"] .large-stars,
html[data-theme="light"] .star-rating { color: #e87900 !important; text-shadow: none !important; }
html[data-theme="light"] .state-finished { color: #116329 !important; background: #dcfce7 !important; border-color: #4ade80 !important; }
html[data-theme="light"] .flow-reason-preview,
html[data-theme="light"] .flow-reason-full { color: #475569 !important; }
html[data-theme="light"] .ticket-role-本命 .ticket-group-label strong { color: #9a5800 !important; }

@media (max-width: 390px) {
  .racer-detail-name { font-size: 1.12rem !important; }
  .racer-detail-summary { padding: .72rem !important; }
  .current-meet-history-strip { padding: .35rem; }
}

/* 2026-08-03 20:00 detail/history compatibility fixes */
html[data-theme="light"] .racer-table-wrap{
  border:1px solid #94a3b8!important;
  border-radius:.9rem;
  box-shadow:inset 0 0 0 1px rgba(148,163,184,.2);
}
html[data-theme="light"] .racer-table{
  border-collapse:separate;
  border-spacing:0;
}
.flow-title-text{display:block;line-height:1.35}
.ranking-result-status{display:flex;justify-content:flex-end;margin:.35rem 0 .25rem}
.ranking-result-status .result-badge{position:static;max-width:100%}
.current-meet-history-strip .meet-history-chip{border:1px solid var(--strong-border)}
.racer-origin-line:empty{display:none}

/* 2026-08-03 21:00 result placement / finished cards / compatibility */
.home-result-block,
.ranking-result-status {
  margin-top: .7rem;
  padding-top: .55rem;
  border-top: 1px solid var(--strong-border);
}
.home-result-status,
.ranking-result-status {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: .35rem;
  text-align: left;
}
.home-result-status .result-badge,
.ranking-result-status .result-badge { position: static !important; }
.top-race-header .result-badge,
.race-heading > .result-badge { display: none !important; }

.live-stadium-card.is-finished-card,
.stadium-race-card.is-finished-card,
.top-race-card.is-finished-card,
.ranking-card.is-finished-card {
  filter: saturate(.45);
  opacity: .82;
  background: color-mix(in srgb, var(--card-flat) 82%, #64748b 18%) !important;
}
html[data-theme="light"] .live-stadium-card.is-finished-card,
html[data-theme="light"] .stadium-race-card.is-finished-card,
html[data-theme="light"] .top-race-card.is-finished-card,
html[data-theme="light"] .ranking-card.is-finished-card {
  background: #e5e7eb !important;
  border-color: #9ca3af !important;
}
html[data-theme="dark"] .other-payout-row {
  background: rgba(15, 31, 48, .92) !important;
  color: var(--text) !important;
}
html[data-theme="dark"] .other-payout-item {
  background: transparent !important;
}

/* Help overlay: old Safariでも十分な高さを確保する。 */
.help-dialog.help-dialog-open::after {
  min-height: min(420px, calc(100vh - 7rem)) !important;
}
.help-dialog.help-dialog-open > h2,
.help-dialog.help-dialog-open > p {
  line-height: 1.7 !important;
  font-size: clamp(.9rem, 3.6vw, 1rem) !important;
}
@media (max-width: 390px) {
  .help-dialog.help-dialog-open { padding-top: 3.2rem !important; }
  .help-dialog.help-dialog-open::after {
    top: 2.4rem !important;
    width: calc(100% - 1rem) !important;
    min-height: calc(100vh - 4.8rem) !important;
  }
  .help-dialog.help-dialog-open > h2,
  .help-dialog.help-dialog-open > p {
    width: calc(100% - 2.2rem) !important;
  }
}
.brand-mark { overflow:hidden; padding:0 !important; }
.brand-mark img { display:block; width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.live-stadium-card.is-finished-card,
.stadium-race-card.is-finished-card { background: rgba(71,85,105,.28) !important; }

/* 2026-08-03 22:05: score details contrast and ranking result de-duplication */
.ranking-result-block{
  margin-top:.72rem;
  padding-top:.66rem;
  border-top:2px solid var(--strong-border);
}
.ranking-result-status{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:.45rem;
  margin:0 0 .45rem;
  text-align:left;
}
.ranking-result-line{margin-top:0!important;padding-top:.45rem;border-top:1px solid var(--strong-border)}
html[data-theme="light"] .score-index-button,
html[data-theme="light"] .score-group-card{
  border:1px solid #94a3b8!important;
  background:#ffffff!important;
  box-shadow:0 1px 3px rgba(15,23,42,.08);
}
html[data-theme="light"] .score-index-button:hover,
html[data-theme="light"] .score-group-card[open]{background:#f8fafc!important}
html[data-theme="light"] .score-group-card>summary{
  border-bottom:0 solid #cbd5e1;
}
html[data-theme="light"] .score-group-card[open]>summary{
  padding-bottom:.7rem;
  border-bottom-width:1px;
}
html[data-theme="light"] .scored-reason-list li{
  border-bottom:1px solid #cbd5e1!important;
}
html[data-theme="light"] .scored-reason-list li:last-child{border-bottom:0!important}
html[data-theme="light"] .score-summary-label small{color:#475569}

/* Source help blocks remain hidden; runtime overlay is created with inline styles for old Safari. */
.help-dialog{display:none!important}

/* 2026-08-03 22:20: 全国ランキング結果エリアの重複区切り線を解消 */
.ranking-result-block .ranking-result-status {
  padding-top: 0 !important;
  border-top: 0 !important;
}

/* 2026-08-03 ランキング方式切替 */
.header-controls{display:flex;align-items:center;gap:8px;flex:none}
.ranking-mode-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-weight:900;text-decoration:none;box-sizing:border-box}
.ranking-mode-toggle:hover{border-color:var(--accent);transform:translateY(-1px)}
@media (max-width:380px){.header-controls{gap:5px}.ranking-mode-toggle,.theme-toggle{min-width:40px;padding:0 7px}}

/* 返還艇は着順とは分け、艇番同士をハイフンなしで表示する。 */
.returned-lanes-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-top: 0.65rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--line-color, rgba(255,255,255,0.16));
}
.returned-lanes-row > span:first-child {
    font-size: 0.82rem;
    font-weight: 700;
    opacity: 0.8;
}
.returned-lanes-row .lane-order-row {
    gap: 0.45rem;
}

/* 2026-08-04 return / pending / hit visibility */
.return-alert-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border:2px solid #f97316;border-radius:999px;background:#7c2d12;color:#fff7ed;font-weight:900;font-size:.72rem;letter-spacing:.02em;box-shadow:0 0 0 2px rgba(249,115,22,.18)}
.detail-return-alert{margin-left:auto}.home-return-alert{margin-left:auto}.stadium-race-result .return-alert-badge{margin-left:auto}
.result-pending-label{display:flex;flex-direction:column;gap:3px;color:#f59e0b;font-weight:800}.result-pending-label small{font-size:.68rem}
.stadium-race-card.is-finished-card.prediction-hit-panel{opacity:1;filter:none;border:3px solid #ef4444!important;box-shadow:0 0 0 2px rgba(239,68,68,.24),0 10px 26px rgba(0,0,0,.24)!important}
html[data-theme='light'] .return-alert-badge{background:#ffedd5;color:#9a3412;border-color:#ea580c}
html[data-theme='light'] .result-pending-label{color:#92400e}

/* 2026-08-04 21:30 final visibility and state fixes */
.stadium-result-main-line{display:flex;align-items:center;justify-content:space-between;gap:.55rem;width:100%}
.stadium-result-main-line .return-alert-badge{margin-left:auto;flex:none}
html[data-theme="light"] .stadium-race-card.is-finished-card.prediction-hit-panel{
  border:5px solid #dc2626!important;
  background:#fff1f2!important;
  box-shadow:0 0 0 3px rgba(220,38,38,.28),0 12px 28px rgba(127,29,29,.18)!important;
}
html[data-theme="light"] .stadium-race-card.is-finished-card.prediction-hit-panel::after{
  color:rgba(185,28,28,.22)!important;
}
html[data-theme="light"] .stadium-race-card.has-returned-lanes{
  box-shadow:inset 0 0 0 2px rgba(234,88,12,.30);
}
.return-alert-badge{white-space:nowrap}

.absence-alert-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.18rem 0.5rem;
  border: 2px solid #d97706;
  border-radius: 999px;
  background: #fff7ed;
  color: #9a3412;
  font-weight: 800;
  font-size: 0.72rem;
  white-space: nowrap;
}
[data-theme="dark"] .absence-alert-badge {
  background: #431407;
  color: #fdba74;
  border-color: #fb923c;
}
.absence-inline {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.result-line-return-slot{display:flex;justify-content:flex-end;min-width:max-content}
.result-entry-line .returned-inline{margin-left:0}

/* 展示後最終予想 */
.exhibition-final-badges { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.entry-stable-badge { display:inline-flex; align-items:center; padding:5px 9px; border:1px solid var(--border-color); border-radius:999px; font-size:.76rem; font-weight:700; color:var(--muted-text); background:var(--card-bg); }
.exhibition-final-flow { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:10px 0 6px; }
.exhibition-final-flow strong { font-size:1.05rem; }
.exhibition-final-flow span { font-size:.84rem; font-weight:700; }
.exhibition-final-summary { margin-top:4px; }

/* 展示公開後は、最終予想を朝予想より先に表示する。 */
.prediction-result-panel > .exhibition-revision-block { order: -1; }

/* 中止レースは締切済み・結果未確定と区別して表示する。 */
.race-state-label.state-cancelled{font-weight:800}
.result-cancelled-label{margin:.9rem 0 0;font-weight:800;text-align:center}
.stadium-race-cancelled strong{font-weight:800}


/* 2026-08-10: hamburger menu / flow-first navigation */
.header-inner{position:relative;gap:.55rem;padding-left:.65rem}
.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;flex:0 0 40px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;padding:0 10px}
.menu-toggle span{display:block;width:100%;height:2px;border-radius:999px;background:var(--text)}
.header-spacer{width:40px;flex:0 0 40px}
.site-menu-overlay{position:fixed;inset:0;z-index:1190;background:rgba(2,6,23,.48);opacity:0;transition:opacity .18s ease}
.site-menu-overlay.is-open{opacity:1}
.site-menu{position:fixed;z-index:1200;left:0;top:0;bottom:0;width:min(86vw,320px);background:var(--surface);border-right:1px solid var(--border);box-shadow:18px 0 50px rgba(2,6,23,.24);transform:translateX(-102%);transition:transform .2s ease;padding:max(14px,env(safe-area-inset-top)) 14px 20px;overflow-y:auto}
.site-menu.is-open{transform:translateX(0)}
html.menu-open{overflow:hidden}
.site-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:4px 4px 12px;border-bottom:1px solid var(--border)}
.site-menu-heading strong{font-size:1.08rem}
.site-menu-close{border:0;background:transparent;color:var(--text);font-size:1.75rem;line-height:1;width:38px;height:38px;cursor:pointer}
.site-menu-nav{display:grid;gap:6px;padding-top:12px}
.site-menu-nav a,.site-menu-action{display:flex;width:100%;align-items:center;min-height:44px;padding:.7rem .8rem;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:750;text-decoration:none;text-align:left;cursor:pointer;box-sizing:border-box}
.site-menu-nav a:hover,.site-menu-action:hover{background:var(--surface-soft);border-color:var(--border)}
.site-menu-nav a.is-active{background:var(--surface-soft);border-color:var(--accent-blue);color:var(--accent-blue)}
.site-menu-section{margin-top:10px;padding:.35rem .8rem;color:var(--muted);font-size:.76rem;font-weight:900;letter-spacing:.05em}
@media(max-width:640px){
  .header-inner{padding-left:.45rem;padding-right:.45rem;gap:.35rem}
  .menu-toggle,.header-spacer{width:38px;flex-basis:38px;height:38px}
  .brand-mark{width:32px;height:32px}
  .brand strong{font-size:.95rem}
  .brand small{font-size:.62rem}
}


/* 2026-08-10: Home quick navigation / collapsible deadline / anchor offset */
.home-date-header{display:block;padding:1rem 0 .4rem}
.home-date-title{min-width:0}
.home-date-actions-row{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-top:.75rem}
.home-jump-actions{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0}
.home-jump-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.6rem .82rem;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);font-size:.78rem;font-weight:850;text-decoration:none;box-shadow:0 6px 16px rgba(2,6,23,.08)}
.home-jump-button:hover{border-color:var(--accent-blue);background:var(--surface-soft)}
.home-date-actions-row .day-switch{margin-left:auto;flex:0 0 auto}
#home-recommended,#home-ranking-section{scroll-margin-top:118px}
.home-collapsible{border:1px solid var(--strong-border);border-radius:14px;background:var(--surface);overflow:hidden}
.home-collapsible>summary{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-height:54px;padding:.75rem .9rem;cursor:pointer;font-weight:850;list-style:none}
.home-collapsible>summary::-webkit-details-marker{display:none}
.home-collapsible>summary:before{content:'▶';font-size:.72rem;color:var(--muted);margin-right:.2rem}
.home-collapsible[open]>summary:before{content:'▼'}
.home-collapsible>summary>span:first-of-type{display:flex;align-items:center;gap:.5rem;min-width:0}
.home-collapsible .section-kicker{margin:0}
.closing-soon-section{margin-top:.9rem}
.closing-soon-body{padding:0 .85rem .85rem}
.stadium-section-first{margin-top:1rem}
.stadium-race-card{scroll-margin-top:150px}
@media(max-width:700px){
  .home-date-actions-row{align-items:stretch;gap:.55rem}
  .home-jump-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:1 1 auto;gap:.4rem}
  .home-jump-button{padding:.5rem .45rem;font-size:.68rem;line-height:1.2;text-align:center}
  .home-date-actions-row .day-switch{flex:0 0 auto;grid-template-columns:repeat(2,minmax(62px,1fr));gap:.3rem;padding:.28rem}
  .home-date-actions-row .day-switch-button{padding:.42rem .48rem}
  #home-recommended,#home-ranking-section{scroll-margin-top:104px}
  .stadium-race-card{scroll-margin-top:132px}
}
@media(max-width:430px){
  .home-date-actions-row{gap:.4rem}
  .home-jump-button{font-size:.62rem;padding:.46rem .3rem}
  .home-date-actions-row .day-switch-button{padding:.4rem .38rem}
  .home-date-actions-row .day-switch-button small{font-size:.58rem}
}


/* 2026-08-10: refresh control / hit badges / flow ranking compact layout */
.header-controls-left{display:flex;align-items:center;gap:.4rem;flex:0 0 auto}
.page-refresh-button{display:inline-grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:800 1.35rem/1 system-ui,sans-serif;cursor:pointer}
.page-refresh-button:hover{background:var(--surface-soft);border-color:var(--accent-blue)}
.header-spacer-double{width:84px;flex:0 0 84px}
.card-hit-badges{display:flex;justify-content:flex-end;align-items:center;gap:.3rem;min-height:24px;flex-wrap:wrap}
.flow-hit-badge{display:inline-flex;align-items:center;padding:.28rem .48rem;border-radius:999px;background:rgba(56,189,248,.16);color:var(--accent-blue);font-size:.68rem;font-weight:900;white-space:nowrap}
.ranking-all-section .ranking-card:not(:has(.score-column)){grid-template-columns:72px minmax(0,1fr)}
@media(max-width:640px){
  .header-controls-left{gap:.25rem}
  .page-refresh-button{width:38px;height:38px;flex-basis:38px}
  .header-spacer-double{width:79px;flex-basis:79px}
  .card-hit-badges{gap:.2rem}
  .compact-hit-badge,.flow-hit-badge{font-size:.58rem;padding:.22rem .34rem}
}

/* Phase6-6H-7: display-mode detail / neutral flow analysis */
.flow-analysis-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:1rem 0}
.flow-analysis-summary>div{padding:.8rem;border:1px solid var(--border);border-radius:12px;background:var(--card-flat);display:flex;flex-direction:column;gap:.25rem}
.flow-analysis-summary small,.flow-lane-reference small{color:var(--muted)}
.flow-analysis-description{line-height:1.75;margin:.85rem 0 1rem}
.flow-lane-reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:.8rem 0 1rem}
.flow-lane-reference{display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:12px;background:var(--card-flat)}
.flow-lane-reference>div{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.top-race-card.is-finished-card,.ranking-card.is-finished-card{filter:saturate(.45);opacity:.82;background:color-mix(in srgb,var(--card-flat) 82%,#64748b 18%)!important}
html[data-theme="light"] .top-race-card.is-finished-card,html[data-theme="light"] .ranking-card.is-finished-card{background:#e5e7eb!important;border-color:#9ca3af!important}
@media(max-width:700px){.flow-analysis-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-lane-reference-grid{grid-template-columns:1fr}}


/* Phase6-6H-8: hit visibility / flow details / stadium anchor */
.top-race-card.is-finished-card.prediction-hit-panel,
.ranking-card.is-finished-card.prediction-hit-panel{
  opacity:1!important;filter:none!important;border:3px solid #ef4444!important;
  box-shadow:0 0 0 2px rgba(239,68,68,.22),0 10px 26px rgba(0,0,0,.24)!important;
}
.top-race-card.flow-hit-panel:not(.prediction-hit-panel),
.ranking-card.flow-hit-panel:not(.prediction-hit-panel){
  position:relative;overflow:hidden;opacity:1!important;filter:none!important;
  border:3px solid #38bdf8!important;
  box-shadow:0 0 0 2px rgba(56,189,248,.18),0 10px 26px rgba(0,0,0,.22)!important;
}
.top-race-card.flow-hit-panel:not(.prediction-hit-panel)::after,
.ranking-card.flow-hit-panel:not(.prediction-hit-panel)::after{
  content:'展開的中';position:absolute;right:8px;bottom:2px;transform:rotate(-12deg);
  color:rgba(56,189,248,.20);font-size:2.6rem;font-weight:1000;pointer-events:none;z-index:0;
}
.top-race-card.flow-hit-panel>*,.ranking-card.flow-hit-panel>*{position:relative;z-index:1}
.flow-skip-label{display:inline-flex;align-items:center;padding:.18rem .42rem;border-radius:999px;background:rgba(148,163,184,.14);color:var(--muted);font-size:.72rem;font-weight:900}
.stadium-race-card.is-anchor-target{outline:3px solid var(--accent-blue);outline-offset:2px;box-shadow:0 0 0 4px rgba(56,189,248,.12),0 14px 30px rgba(0,0,0,.24)}
.flow-detail-section{margin-top:1rem}
.flow-detail-section>h2{margin:0 0 .65rem;font-size:.95rem}
.flow-head-candidate-grid,.flow-detail-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.flow-head-candidate,.flow-detail-group{border:1px solid var(--border);border-radius:12px;background:var(--card-flat);padding:.75rem}
.flow-head-candidate{display:flex;gap:.65rem;align-items:flex-start}
.flow-head-candidate>div{min-width:0;flex:1}
.flow-candidate-title,.flow-detail-group>header{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.flow-candidate-title b,.flow-detail-group>header b{color:var(--accent);white-space:nowrap}
.flow-head-candidate p,.flow-detail-group p{margin:.45rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.55}
.flow-detail-group ul{margin:.55rem 0 0;padding-left:1.15rem}
.flow-detail-group li{margin:.3rem 0;font-size:.78rem;line-height:1.5}
.flow-detail-group.is-established{border-color:rgba(56,189,248,.48)}
.compact-flow-analysis-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin:.4rem 0 0}
@media(max-width:700px){.flow-head-candidate-grid,.flow-detail-group-grid{grid-template-columns:1fr}}

/* Phase6-6H-9: Home hit cards match the 12R card visibility. */
.top-race-card.is-finished-card.prediction-hit-panel,
.ranking-card.is-finished-card.prediction-hit-panel{
  background:color-mix(in srgb,var(--card-flat) 78%,#7f1d1d 22%)!important;
  border:5px solid #dc2626!important;
  box-shadow:0 0 0 3px rgba(220,38,38,.28),0 12px 28px rgba(127,29,29,.20)!important;
}
html[data-theme="light"] .top-race-card.is-finished-card.prediction-hit-panel,
html[data-theme="light"] .ranking-card.is-finished-card.prediction-hit-panel{
  background:#fff1f2!important;
  border:5px solid #dc2626!important;
  box-shadow:0 0 0 3px rgba(220,38,38,.28),0 12px 28px rgba(127,29,29,.18)!important;
}


/* Phase6-6H-50: header edge progress indicator (Safari-like, no layout shift) */
.site-load-progress{position:absolute;left:0;right:0;bottom:-2px;height:3px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .12s ease;z-index:30}
.site-load-progress.is-active{opacity:1}
.site-load-progress>span{display:block;width:0;height:100%;background:var(--accent-blue);box-shadow:0 0 7px color-mix(in srgb,var(--accent-blue) 65%,transparent);transition:width .11s ease-out}
@media (prefers-reduced-motion: reduce){.site-load-progress,.site-load-progress>span{transition:none}}

/* Web会員 / 認証 */
.header-auth { display:flex; justify-content:flex-end; min-width:92px; }
.header-auth-link { display:flex; flex-direction:column; align-items:flex-end; min-width:0; color:var(--text); text-decoration:none; line-height:1.15; }
.header-auth-link:hover { color:var(--accent-blue); }
.header-auth-name { max-width:110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.78rem; font-weight:800; }
.header-auth-link small { margin-top:.18rem; color:var(--muted); font-size:.62rem; }
.header-auth-guest .header-auth-name { color:var(--muted); }
.site-menu-form { margin:0; }
.site-menu-form .site-menu-action { width:100%; text-align:left; }
.site-menu-account-note { padding:.5rem .75rem; color:var(--muted); font-size:.72rem; line-height:1.45; }
.auth-shell { display:grid; place-items:center; min-height:calc(100vh - 190px); padding:1.5rem 0; }
.auth-card { width:min(520px,100%); padding:1.5rem; border:1px solid var(--border); border-radius:18px; background:var(--surface); box-shadow:0 18px 44px rgba(0,0,0,.18); }
.auth-card h1 { font-size:clamp(1.7rem,6vw,2.4rem); }
.auth-lead { margin:.7rem 0 1.2rem; color:var(--muted); line-height:1.6; }
.auth-form { display:grid; gap:.9rem; margin-top:1rem; }
.auth-form label { display:grid; gap:.35rem; color:var(--muted); font-size:.78rem; font-weight:700; }
.auth-form input { width:100%; box-sizing:border-box; padding:.85rem .9rem; border:1px solid var(--border); border-radius:10px; background:var(--surface-soft); color:var(--text); font-size:1rem; }
.auth-primary-button,.auth-secondary-button,.auth-primary-link { display:inline-flex; justify-content:center; align-items:center; box-sizing:border-box; min-height:44px; padding:.75rem 1rem; border:0; border-radius:10px; font-weight:900; cursor:pointer; text-decoration:none; }
.auth-primary-button,.auth-primary-link { background:var(--accent-blue); color:#041522; }
.auth-secondary-button { width:100%; background:rgba(255,255,255,.07); color:var(--text); }
.auth-error { margin:.8rem 0; padding:.8rem; border:1px solid rgba(251,113,133,.35); border-radius:10px; background:rgba(251,113,133,.1); color:var(--danger); }
.auth-notice { margin:1rem 0; padding:1rem; border:1px solid var(--border); border-radius:10px; color:var(--muted); line-height:1.6; }
.auth-secondary-links { display:flex; justify-content:space-between; gap:1rem; margin-top:1rem; font-size:.82rem; }
.auth-secondary-links a { color:var(--accent-blue); }
.account-card { width:min(760px,100%); }
.account-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; margin:1.2rem 0; }
.account-grid div { min-width:0; padding:.85rem; border-radius:10px; background:rgba(255,255,255,.04); }
.account-grid span,.account-grid strong { display:block; }
.account-grid span { color:var(--muted); font-size:.72rem; }
.account-grid strong { margin-top:.25rem; overflow-wrap:anywhere; }
.logout-form { margin-top:.75rem; }
.admin-page { padding-top:.5rem; }
.admin-summary-grid { margin-top:1rem; }
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; min-width:940px; border-collapse:collapse; }
.admin-table th,.admin-table td { padding:.7rem .65rem; border-bottom:1px solid rgba(255,255,255,.07); text-align:left; white-space:nowrap; }
.admin-table th { color:var(--muted); font-size:.72rem; }
.admin-table td { font-size:.8rem; }
.admin-table td small { display:block; margin-top:.18rem; color:var(--muted); }
.admin-note code { color:var(--accent-blue); }
@media (max-width:700px) {
  .header-auth { min-width:52px; }
  .header-auth-name { max-width:66px; font-size:.7rem; }
  .header-auth-link small { display:none; }
  .account-grid { grid-template-columns:1fr; }
  .auth-card { padding:1.1rem; }
}
.worker-admin-table { min-width:760px; }
.admin-error-cell { max-width:420px; overflow:hidden; text-overflow:ellipsis; }

/* PublicPrep: account header actions / email verification */
.header-auth-actions{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;white-space:nowrap}
.header-auth-button{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:.35rem .55rem;border-radius:8px;text-decoration:none;font-size:.7rem;font-weight:850;line-height:1}
.header-auth-register{border:1px solid var(--border);color:var(--text);background:var(--surface-soft)}
.header-auth-login{border:1px solid transparent;color:#041522;background:var(--accent-blue)}
.auth-form label small{font-weight:500;line-height:1.45;color:var(--muted)}
.auth-resend-form{margin-top:.55rem}
@media(max-width:560px){
 .header-auth{min-width:auto}
 .header-auth-actions{gap:.2rem}
 .header-auth-button{min-height:30px;padding:.32rem .42rem;font-size:.62rem}
}

/* PublicPrep Phase3: compact header auth + login registration CTA */
.auth-register-cta{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);text-align:center}
.auth-register-cta p{margin:0 0 .55rem;color:var(--muted);font-size:.78rem}
.auth-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.55rem 1rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-soft);color:var(--text);font-size:.8rem;font-weight:850;text-decoration:none}
.auth-secondary-button:hover{border-color:var(--accent-blue);color:var(--accent-blue)}
.header-auth-actions .header-auth-login{min-width:58px}

/* PublicPrep Phase4: centered branding / clearer auth affordance */
.header-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  width:min(1120px,100%);
  box-sizing:border-box;
  margin:auto;
  padding:.62rem 1rem;
  gap:.6rem;
}
.header-controls-left{justify-self:start}
.header-inner .brand{
  grid-column:2;
  justify-self:center;
  margin:0;
  padding:0;
  text-align:center;
  gap:0;
  min-width:0;
}
.brand-copy{display:block;min-width:0;text-align:center}
.brand strong{font-size:1.02rem;letter-spacing:.02em;white-space:nowrap}
.brand small{font-size:.62rem;letter-spacing:.03em;white-space:nowrap}
.header-auth{grid-column:3;justify-self:end;min-width:0}
.header-auth-actions .header-auth-login{min-width:74px;min-height:38px;padding:.52rem .78rem;font-size:.78rem;border-radius:10px}
.header-auth-link{align-items:flex-end}
.header-auth-name{font-size:.8rem}
.header-admin-label{display:inline-flex!important;margin-top:.18rem;padding:.12rem .35rem;border-radius:999px;background:color-mix(in srgb,var(--accent-blue) 14%,transparent);color:var(--accent-blue)!important;font-size:.58rem!important;font-weight:900}
@media(max-width:640px){
  .header-inner{grid-template-columns:minmax(76px,1fr) auto minmax(76px,1fr);padding:.5rem .45rem;gap:.3rem}
  .brand strong{font-size:.92rem}
  .brand small{font-size:.56rem}
  .header-auth-actions .header-auth-login{min-width:68px;min-height:36px;padding:.46rem .62rem;font-size:.72rem}
  .header-auth-name{max-width:76px;font-size:.7rem}
}

/* PublicPrep Phase5: compact-device header / ranking width / richer registration */
.brand{display:flex!important;align-items:center!important;justify-content:center;gap:.42rem!important}
.brand-icon{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(2,6,23,.18)}
.brand-icon img{display:block;width:100%;height:100%;object-fit:cover}
.brand-copy{display:flex;flex-direction:column;justify-content:center;line-height:1.05}
.header-auth-link{flex-direction:row;align-items:center;justify-content:flex-end;gap:.34rem}
.header-admin-label{margin-top:0!important;flex:0 0 auto}

/* 全国ランキングは狭い端末ほど順位列を縮め、スコアを右端まで使う。 */
.ranking-all-section .ranking-score-summary{width:100%;margin-top:.42rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.35rem}
.ranking-all-section .ranking-score-summary .stars{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ranking-all-section .ranking-score-summary strong{justify-self:end;white-space:nowrap;text-align:right}

/* 登録画面 */
.register-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:.95rem 0 1.2rem}
.register-flow>div{min-width:0;padding:.72rem .62rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);text-align:center}
.register-flow span{display:grid;place-items:center;width:24px;height:24px;margin:0 auto .35rem;border-radius:999px;background:var(--accent-blue);color:#041522;font-size:.72rem;font-weight:950}
.register-flow strong,.register-flow small{display:block}
.register-flow strong{font-size:.76rem}
.register-flow small{margin-top:.2rem;color:var(--muted);font-size:.6rem;line-height:1.35}
.register-form{gap:.75rem}
.auth-field-group{padding:.85rem;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface-soft) 72%,transparent)}
.auth-password-group{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.register-security-note{display:flex;flex-direction:column;gap:.2rem;padding:.72rem .8rem;border-left:3px solid var(--accent-blue);border-radius:8px;background:rgba(56,189,248,.08);font-size:.7rem;line-height:1.5}
.register-security-note span{color:var(--muted)}
.register-submit-button{min-height:48px;font-size:.9rem}
.register-login-cta{margin-top:1.1rem}
.register-login-cta .auth-secondary-button{min-width:132px}
.register-home-link{justify-content:center;margin-top:.75rem}

@media(max-width:640px){
  .header-inner{min-height:64px;padding-top:.62rem;padding-bottom:.62rem}
  .brand-icon{width:27px;height:27px;border-radius:7px}
  .header-auth-link{gap:.25rem}
  .header-admin-label{font-size:.52rem!important;padding:.1rem .28rem}
  .ranking-all-section .ranking-card:not(:has(.score-column)){grid-template-columns:52px minmax(0,1fr)}
  .ranking-all-section .ranking-main{padding-left:.62rem;padding-right:.42rem}
  .ranking-all-section .rank-column{padding-left:.2rem;padding-right:.2rem}
}
@media(max-width:380px){
  .header-inner{grid-template-columns:76px minmax(0,1fr) 66px;min-height:66px;padding:.58rem .34rem;gap:.18rem}
  .header-controls-left{gap:.18rem}
  .menu-toggle,.page-refresh-button{width:36px;height:40px;flex-basis:36px;border-radius:9px}
  .menu-toggle{padding-left:9px;padding-right:9px}
  .brand{gap:.3rem!important}
  .brand-icon{width:25px;height:25px}
  .brand strong{font-size:.82rem}
  .brand small{font-size:.5rem}
  .header-auth-actions .header-auth-login{min-width:62px;min-height:40px;padding:.44rem .5rem;font-size:.7rem}
  .header-auth-name{max-width:58px;font-size:.64rem}
  .header-admin-label{font-size:.48rem!important;padding:.08rem .23rem}
  .ranking-all-section .ranking-card:not(:has(.score-column)){grid-template-columns:48px minmax(0,1fr)}
  .ranking-all-section .rank-column strong{font-size:1.25rem}
  .ranking-all-section .rank-column span{font-size:.52rem}
  .ranking-all-section .ranking-main{padding:.68rem .32rem .7rem .52rem}
  .ranking-all-section .ranking-score-summary{column-gap:.2rem}
  .ranking-all-section .ranking-score-summary strong{font-size:1.05rem}
  .ranking-all-section .ranking-score-summary .stars{font-size:.72rem;letter-spacing:.02em}
  .register-flow{gap:.3rem}
  .register-flow>div{padding:.58rem .35rem}
  .register-flow small{font-size:.55rem}
}
@media(max-width:520px){
  .auth-password-group{grid-template-columns:1fr}
}


/* PublicPrep Phase6-2: 320〜393pxを連続補正するスマホUI */
.compact-only-break{display:none}
.auth-password-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.35rem}
.auth-password-input-wrap input{min-width:0}
.password-visibility-button{min-width:52px;border:1px solid var(--border);border-radius:9px;background:var(--surface-soft);color:var(--text);font-size:.68rem;font-weight:850;cursor:pointer}
.password-rule-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin-top:-.15rem}
.password-rule-grid span{padding:.45rem .35rem;border:1px solid var(--border);border-radius:8px;color:var(--muted);background:var(--surface-soft);font-size:.62rem;font-weight:750;text-align:center;transition:.15s ease}
.password-rule-grid span.is-ok{border-color:#16a34a;color:#16a34a;background:rgba(22,163,74,.08)}
.password-match-status.is-ok{color:#16a34a!important}
.password-match-status.is-error{color:var(--danger)!important}
.username-availability-status.is-ok{color:#16a34a!important}
.username-availability-status.is-error{color:var(--danger)!important}

@media(max-width:393px){
  /* 393px(iPhone 15 CSS幅)の見た目を上限として、320pxまで滑らかに縮める。 */
  .header-inner{
    grid-template-columns:clamp(72px,19.3vw,76px) minmax(0,1fr) clamp(64px,17.3vw,68px)!important;
    min-height:clamp(64px,17.8vw,70px)!important;
    padding:clamp(.46rem,2.4vw,.58rem) clamp(.26rem,1.4vw,.42rem)!important;
    gap:clamp(.12rem,.7vw,.28rem)!important;
  }
  .header-controls-left{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;justify-content:flex-start!important;
    gap:clamp(4px,1.25vw,5px)!important;width:auto!important;min-width:0!important;
  }
  .menu-toggle,.page-refresh-button{
    box-sizing:border-box!important;width:clamp(33px,9.15vw,36px)!important;height:clamp(33px,9.15vw,36px)!important;
    min-width:clamp(33px,9.15vw,36px)!important;max-width:clamp(33px,9.15vw,36px)!important;
    min-height:clamp(33px,9.15vw,36px)!important;max-height:clamp(33px,9.15vw,36px)!important;
    flex:0 0 clamp(33px,9.15vw,36px)!important;border-radius:9px!important;padding:0!important;margin:0!important;
  }
  .menu-toggle{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:center!important;gap:4px!important}
  .menu-toggle span{display:block!important;width:15px!important;height:2px!important;min-height:2px!important;flex:0 0 2px!important;margin:0!important;background:var(--text)!important}
  .page-refresh-button{display:grid!important;place-items:center!important;font-size:clamp(1.02rem,4.5vw,1.12rem)!important;line-height:1!important;text-align:center!important;text-indent:0!important}

  .brand{gap:clamp(.2rem,.85vw,.34rem)!important;max-width:100%;min-width:0}
  .brand-icon{width:clamp(23px,6.9vw,27px);height:clamp(23px,6.9vw,27px);border-radius:7px}
  .brand strong{font-size:clamp(.75rem,3.35vw,.9rem);letter-spacing:0;white-space:nowrap}
  .brand small{font-size:clamp(.44rem,1.95vw,.54rem);letter-spacing:.01em;white-space:nowrap}
  .header-auth{width:auto;max-width:100%;min-width:0;overflow:visible}
  .header-auth-actions .header-auth-login{min-width:clamp(58px,16.8vw,66px);min-height:38px;padding:.42rem .4rem;font-size:clamp(.65rem,2.8vw,.72rem)}
  .header-auth-link{gap:.18rem;min-width:0}
  .header-admin-label{font-size:clamp(.43rem,1.8vw,.5rem)!important;padding:.07rem .2rem}
  .header-auth-name{max-width:clamp(44px,14vw,56px);font-size:clamp(.58rem,2.55vw,.67rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* Home上部: 高さを必要以上に引き伸ばさない。 */
  .home-date-actions-row{align-items:flex-start!important;gap:clamp(.32rem,1.5vw,.45rem)!important}
  .home-jump-actions{align-self:flex-start!important;grid-auto-rows:auto!important;gap:clamp(.28rem,1.2vw,.38rem)!important}
  .home-jump-button{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;height:auto!important;min-height:clamp(44px,12.2vw,48px)!important;padding:.38rem .22rem!important;font-size:clamp(.59rem,2.65vw,.67rem)!important;line-height:1.2!important;text-align:center;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
  .home-jump-button span{display:block!important;white-space:nowrap!important;word-break:keep-all!important}
  .compact-only-break{display:block!important}

  /* CLOSING SOON / 締切が近いレース / LIVE を1行で維持。 */
  .home-collapsible>summary{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:clamp(.15rem,.8vw,.28rem)!important;min-height:50px;padding:.58rem clamp(.38rem,1.8vw,.56rem)!important;font-size:clamp(.65rem,2.75vw,.74rem)!important}
  .home-collapsible>summary:before{font-size:.57rem!important;margin-right:0!important}
  .home-collapsible>summary>span:first-of-type{display:flex!important;flex-direction:row!important;align-items:center!important;gap:clamp(.16rem,.7vw,.26rem)!important;min-width:0!important;white-space:nowrap!important;overflow:visible!important}
  .closing-soon-section .section-kicker{display:inline!important;margin:0!important;font-size:clamp(.4rem,1.7vw,.47rem)!important;letter-spacing:0!important;white-space:nowrap!important}
  .closing-soon-section .live-badge{padding:.2rem .3rem!important;font-size:clamp(.48rem,1.95vw,.55rem)!important;white-space:nowrap!important}

  .ranking-all-section .ranking-card:not(:has(.score-column)){grid-template-columns:clamp(44px,12.2vw,48px) minmax(0,1fr)}
  .ranking-all-section .ranking-main{padding:.64rem .24rem .68rem .44rem}
  .ranking-all-section .rank-column{padding-left:.1rem;padding-right:.1rem}
  .ranking-all-section .ranking-score-summary{grid-template-columns:minmax(0,1fr) max-content;column-gap:.14rem}
  .ranking-all-section .ranking-score-summary strong{justify-self:end;margin-right:0;font-size:1.03rem}
  .ranking-all-section .ranking-score-summary .stars{font-size:.7rem}

  .register-flow{grid-template-columns:1fr;gap:.35rem}
  .register-flow>div{display:grid;grid-template-columns:26px 1fr;grid-template-rows:auto auto;column-gap:.45rem;text-align:left;align-items:center;padding:.55rem .65rem}
  .register-flow span{grid-row:1 / 3;margin:0}
  .register-flow strong{font-size:.72rem}.register-flow small{font-size:.57rem}
  .password-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* PublicPrep Phase6: 管理者システムログ */
.admin-log-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.7rem 0;padding:.7rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}
.admin-log-summary span{font-size:.78rem}.admin-log-summary strong{color:var(--danger);font-size:1rem}.admin-log-summary small{color:var(--muted)}
.system-error-table{min-width:1040px}.system-error-table tr.is-unacknowledged{background:rgba(220,38,38,.045)}
.system-error-message{max-width:420px;white-space:normal!important}.system-error-message strong,.system-error-message small{display:block}.system-error-message small{margin-top:.18rem;color:var(--muted);overflow-wrap:anywhere}
.log-state,.log-severity{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .42rem;border-radius:999px;font-size:.62rem;font-weight:900;white-space:nowrap}
.log-state.is-open{background:rgba(220,38,38,.12);color:#dc2626}.log-state.is-ack{background:rgba(100,116,139,.12);color:var(--muted)}
.log-severity.severity-2{background:rgba(217,119,6,.12);color:#d97706}.log-severity.severity-3,.log-severity.severity-4{background:rgba(220,38,38,.12);color:#dc2626}
.admin-mini-button{min-height:32px;padding:.35rem .55rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.68rem;font-weight:850;cursor:pointer}
.admin-mini-button:hover{border-color:var(--accent-blue)}

/* PublicPrep Phase6-3: iPhone 15を基準に、小型幅だけ段階補正する最終上書き */
/*
 * 基準:
 *   390〜393px: iPhone 15側の既存見た目を維持
 *   376〜389px: ごく軽い中間補正
 *   320〜375px: iPhone 6s級の必要箇所だけ補正
 * 以前の <=393px 連続縮小指定をここで打ち消す。
 */
@media (min-width: 390px) and (max-width: 393px) {
  .header-inner{
    grid-template-columns:minmax(80px,1fr) auto minmax(80px,1fr)!important;
    min-height:64px!important;
    padding:.62rem .45rem!important;
    gap:.3rem!important;
  }
  .header-controls-left{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:.25rem!important;width:auto!important;min-width:0!important}
  .menu-toggle,.page-refresh-button{width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;min-height:38px!important;max-height:38px!important;flex:0 0 38px!important;border-radius:10px!important;padding:0!important}
  .menu-toggle{display:inline-flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:4px!important}
  .menu-toggle span{display:block!important;width:18px!important;height:2px!important;min-height:2px!important;flex:0 0 2px!important;margin:0!important;background:var(--text)!important}
  .page-refresh-button{display:grid!important;place-items:center!important;font-size:1.25rem!important;line-height:1!important}
  .brand{gap:.42rem!important}
  .brand-icon{width:27px!important;height:27px!important}
  .brand strong{font-size:.92rem!important}
  .brand small{font-size:.56rem!important}
  .header-auth-actions .header-auth-login{min-width:68px!important;min-height:38px!important;padding:.46rem .62rem!important;font-size:.72rem!important}
  .header-auth-name{max-width:76px!important;font-size:.7rem!important}
  .compact-only-break{display:none!important}
  .home-jump-button{height:auto!important;min-height:0!important;padding:.55rem .55rem!important;font-size:.74rem!important;line-height:1.2!important;white-space:nowrap!important}
  .home-collapsible>summary{font-size:inherit!important}
  .closing-soon-section .section-kicker{font-size:.67rem!important;letter-spacing:.14em!important}
  .closing-soon-section .live-badge{font-size:.62rem!important}
}

@media (min-width: 376px) and (max-width: 389px) {
  .header-inner{
    grid-template-columns:minmax(78px,1fr) auto minmax(78px,1fr)!important;
    min-height:64px!important;
    padding:.6rem .4rem!important;
    gap:.26rem!important;
  }
  .header-controls-left{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:.22rem!important;width:auto!important;min-width:0!important}
  .menu-toggle,.page-refresh-button{width:37px!important;height:37px!important;min-width:37px!important;max-width:37px!important;min-height:37px!important;max-height:37px!important;flex:0 0 37px!important;padding:0!important;border-radius:9px!important}
  .menu-toggle{display:inline-flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:4px!important}
  .menu-toggle span{display:block!important;width:17px!important;height:2px!important;min-height:2px!important;flex:0 0 2px!important;margin:0!important;background:var(--text)!important}
  .page-refresh-button{display:grid!important;place-items:center!important;font-size:1.18rem!important;line-height:1!important}
  .brand{gap:.36rem!important}
  .brand-icon{width:26px!important;height:26px!important}
  .brand strong{font-size:.88rem!important}
  .brand small{font-size:.53rem!important}
  .header-auth-actions .header-auth-login{min-width:65px!important;min-height:38px!important;padding:.44rem .54rem!important;font-size:.71rem!important}
  .header-auth-name{max-width:68px!important;font-size:.67rem!important}
  .compact-only-break{display:none!important}
  .home-jump-button{height:auto!important;min-height:0!important;padding:.52rem .4rem!important;font-size:.7rem!important;line-height:1.18!important;white-space:nowrap!important}
  .closing-soon-section .section-kicker{font-size:.61rem!important;letter-spacing:.08em!important}
  .closing-soon-section .live-badge{font-size:.58rem!important}
}

@media (max-width: 375px) {
  .header-inner{
    grid-template-columns:76px minmax(0,1fr) 68px!important;
    min-height:64px!important;
    padding:.55rem .32rem!important;
    gap:.18rem!important;
  }
  .header-controls-left{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-start!important;gap:4px!important;width:76px!important;min-width:76px!important}
  .menu-toggle,.page-refresh-button{position:relative!important;display:grid!important;place-items:center!important;box-sizing:border-box!important;width:36px!important;height:36px!important;min-width:36px!important;max-width:36px!important;min-height:36px!important;max-height:36px!important;flex:0 0 36px!important;padding:0!important;margin:0!important;border-radius:9px!important}
  /* 古いspan描画の競合を避け、背景グラデーションで確実に3本線を描く。 */
  .menu-toggle{background-color:var(--surface)!important;background-image:linear-gradient(var(--text),var(--text)),linear-gradient(var(--text),var(--text)),linear-gradient(var(--text),var(--text))!important;background-repeat:no-repeat!important;background-size:17px 2px,17px 2px,17px 2px!important;background-position:center calc(50% - 6px),center 50%,center calc(50% + 6px)!important}
  .menu-toggle span{display:none!important}
  .page-refresh-button{font-size:1.14rem!important;line-height:1!important;text-align:center!important;text-indent:0!important;background:var(--surface)!important}
  .brand{gap:.3rem!important;min-width:0!important}
  .brand-icon{width:25px!important;height:25px!important}
  .brand strong{font-size:.83rem!important;white-space:nowrap!important}
  .brand small{font-size:.5rem!important;white-space:nowrap!important}
  .header-auth-actions .header-auth-login{min-width:62px!important;min-height:38px!important;padding:.42rem .48rem!important;font-size:.69rem!important}
  .header-auth-name{max-width:58px!important;font-size:.64rem!important}

  /* 375px以下だけ、意味の切れ目で明示改行。高さは内容分だけ。 */
  .compact-only-break{display:block!important}
  .home-jump-button{display:block!important;height:auto!important;min-height:0!important;padding:.48rem .3rem!important;font-size:.68rem!important;line-height:1.2!important;text-align:center!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:normal!important}
  .home-jump-button span{display:inline!important;white-space:nowrap!important;word-break:keep-all!important}
  .home-jump-button .compact-only-break{display:block!important}

  /* CLOSING SOON / 日本語 / LIVE は1行。日本語サイズは極端に縮めない。 */
  .home-collapsible>summary{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:.18rem!important;min-height:48px!important;padding:.55rem .38rem!important;font-size:.7rem!important}
  .home-collapsible>summary:before{font-size:.56rem!important;margin:0!important}
  .home-collapsible>summary>span:first-of-type{display:flex!important;flex-direction:row!important;align-items:center!important;gap:.18rem!important;min-width:0!important;white-space:nowrap!important;overflow:hidden!important}
  .closing-soon-section .section-kicker{display:inline!important;margin:0!important;font-size:.5rem!important;letter-spacing:0!important;white-space:nowrap!important}
  .closing-soon-section .live-badge{padding:.18rem .28rem!important;font-size:.52rem!important;white-space:nowrap!important}
}

/* PublicPrep Phase6-5: header scale-up / aligned Home shortcuts / closing-soon two-line header */
.header-inner{
  min-height:70px;
  padding-top:.72rem;
  padding-bottom:.72rem;
}
.header-controls-left{gap:.38rem}
.menu-toggle,.page-refresh-button{
  width:44px;
  height:44px;
  flex-basis:44px;
  border-radius:11px;
}
.brand{gap:.5rem!important}
.brand strong{font-size:1.18rem}
.brand small{font-size:.72rem}
.brand-icon{width:36px;height:36px;border-radius:9px}
.header-auth-actions .header-auth-login{min-width:82px;min-height:44px;font-size:.86rem}
.header-auth-name{font-size:.9rem}
.header-admin-label{font-size:.62rem!important}

/* Home shortcut buttons: 今日/明日の切替ボタンと高さを揃え、文字を上下左右中央へ。 */
.home-jump-actions{align-items:stretch}
.home-jump-button,
.home-date-actions-row .day-switch-button{
  box-sizing:border-box;
  min-height:54px;
}
.home-jump-button{
  display:flex!important;
  flex-direction:column;
  align-items:center!important;
  justify-content:center!important;
  padding:.45rem .72rem!important;
  line-height:1.18!important;
}

/* 締切見出しは、1行目=CLOSING SOON/LIVE、2行目=日本語タイトル。 */
.home-collapsible>summary{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:.45rem;
  min-height:66px;
  padding:.64rem .9rem;
}
.home-collapsible>summary>span.closing-summary-copy{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:.22rem!important;
  min-width:0;
  overflow:visible!important;
  white-space:normal!important;
}
.closing-summary-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-width:0}
.closing-summary-top .section-kicker{font-size:.67rem!important;letter-spacing:.14em!important;white-space:nowrap!important}
.closing-summary-top .live-badge{margin-left:auto;font-size:.62rem!important;white-space:nowrap!important}
.closing-summary-title{display:block;font-size:.9rem;line-height:1.2;white-space:nowrap}

@media(max-width:640px){
  .header-inner{min-height:72px;padding-top:.7rem;padding-bottom:.7rem}
  .menu-toggle,.page-refresh-button{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;min-height:42px!important;max-height:42px!important;flex:0 0 42px!important}
  .brand{gap:.42rem!important}
  .brand strong{font-size:1.04rem!important}
  .brand small{font-size:.64rem!important}
  .brand-icon{width:32px!important;height:32px!important}
  .header-auth-name{font-size:.78rem!important;max-width:82px!important}
  .header-auth-actions .header-auth-login{min-height:42px!important;font-size:.78rem!important}
  .home-jump-button,.home-date-actions-row .day-switch-button{min-height:52px!important}
  .home-jump-button{font-size:.7rem!important}
  .closing-summary-title{font-size:.86rem}
}

/* 376〜389pxはiPhone 15寄りのサイズを維持。小さくしすぎない。 */
@media(min-width:376px) and (max-width:389px){
  .header-inner{grid-template-columns:86px minmax(0,1fr) 76px!important;min-height:70px!important;padding:.65rem .38rem!important}
  .header-controls-left{gap:4px!important}
  .menu-toggle,.page-refresh-button{width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;min-height:40px!important;max-height:40px!important;flex:0 0 40px!important}
  .brand strong{font-size:.98rem!important}.brand small{font-size:.59rem!important}.brand-icon{width:30px!important;height:30px!important}
  .home-jump-button{font-size:.7rem!important;white-space:nowrap!important}
  .compact-only-break{display:none!important}
}

/* 6s級: ヘッダー左は横2ボタンを維持。Homeボタンは必要な時だけ指定位置で2行。 */
@media(max-width:375px){
  .header-inner{grid-template-columns:84px minmax(0,1fr) 68px!important;min-height:70px!important;padding:.62rem .28rem!important;gap:.16rem!important}
  .header-controls-left{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;width:84px!important;min-width:84px!important;gap:4px!important}
  .menu-toggle,.page-refresh-button{width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;min-height:40px!important;max-height:40px!important;flex:0 0 40px!important;border-radius:10px!important}
  .menu-toggle{background-size:18px 2px,18px 2px,18px 2px!important;background-position:center calc(50% - 6px),center 50%,center calc(50% + 6px)!important}
  .brand{gap:.3rem!important}
  .brand strong{font-size:.9rem!important}.brand small{font-size:.54rem!important}.brand-icon{width:28px!important;height:28px!important}
  .header-auth-name{font-size:.66rem!important;max-width:58px!important}
  .home-jump-button,.home-date-actions-row .day-switch-button{min-height:52px!important}
  .home-jump-button{display:flex!important;padding:.36rem .24rem!important;font-size:.68rem!important;line-height:1.15!important}
  .home-jump-button span{display:block!important}
  .compact-only-break{display:block!important}
  .home-collapsible>summary{grid-template-columns:auto minmax(0,1fr)!important;min-height:64px!important;padding:.58rem .55rem!important;gap:.35rem!important;font-size:inherit!important}
  .home-collapsible>summary:before{font-size:.6rem!important}
  .closing-summary-top .section-kicker{font-size:.61rem!important;letter-spacing:.09em!important}
  .closing-summary-top .live-badge{font-size:.58rem!important;padding:.2rem .34rem!important}
  .closing-summary-title{font-size:.84rem!important}
}


/* PublicPrep Phase6-6: brand copy exact-center, icon on refresh side, Home header fixes */
.header-inner{position:relative}
.brand{position:relative!important;display:block!important;min-width:0!important;height:48px!important}
.brand-copy{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;text-align:center!important;white-space:nowrap!important;z-index:2}
.brand-icon{position:absolute!important;top:50%!important;right:calc(50% + clamp(62px,16.5vw,76px))!important;transform:translateY(-50%)!important;margin:0!important}
.home-jump-actions{align-items:stretch!important}
.home-jump-button,.home-date-actions-row .day-switch-button{height:54px!important;min-height:54px!important;max-height:54px!important;box-sizing:border-box!important;align-items:center!important;justify-content:center!important}
.closing-soon-section .home-collapsible>summary{grid-template-columns:18px minmax(0,1fr)!important}
.closing-soon-section .home-collapsible>summary:before{grid-column:1!important;grid-row:1!important;align-self:center!important;justify-self:start!important;margin:0!important;font-size:.72rem!important}
.closing-soon-section .closing-summary-copy{grid-column:2!important;grid-row:1!important;width:100%!important}
.closing-summary-title{font-size:1.05rem!important;font-weight:850!important}
.auth-forgot-link{display:block;text-align:center;margin-top:.15rem;font-size:.82rem;color:var(--accent-blue);font-weight:750;text-decoration:none}
.auth-notice{padding:.7rem .8rem;border-radius:10px;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25);font-size:.86rem;line-height:1.5}
@media(max-width:640px){
  .brand{height:46px!important}
  .brand-copy strong{font-size:1.14rem!important}.brand-copy small{font-size:.68rem!important}
  .brand-icon{width:34px!important;height:34px!important;right:calc(50% + clamp(58px,16vw,68px))!important}
  .closing-summary-title{font-size:1rem!important}
}
@media(max-width:375px){
  .brand-copy strong{font-size:1rem!important}.brand-copy small{font-size:.6rem!important}
  .brand-icon{width:30px!important;height:30px!important;right:calc(50% + 58px)!important}
  .closing-soon-section .home-collapsible>summary{grid-template-columns:16px minmax(0,1fr)!important;padding:.62rem .6rem!important}
  .closing-soon-section .home-collapsible>summary:before{font-size:.66rem!important}
  .closing-summary-title{font-size:.96rem!important}
}

.ranking-building-banner{margin:.35rem 0 .75rem;padding:.65rem .8rem;border:1px solid rgba(59,130,246,.3);border-radius:10px;background:rgba(59,130,246,.08);font-size:.78rem;font-weight:750;color:var(--text)}

/* PublicPrep Phase6-7: Home card density / hit stack / exact shortcut height / ticket-change badge */
.home-date-actions-row{align-items:stretch!important}
.home-jump-actions,.day-switch{align-items:stretch!important}
.home-jump-button,.home-date-actions-row .day-switch-button{
  height:56px!important;min-height:56px!important;max-height:56px!important;
  box-sizing:border-box!important;margin:0!important;
}
.home-date-actions-row .day-switch-button{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
.card-result-stack{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:.12rem;min-width:70px}
.card-result-stack .card-hit-badges{min-height:0;justify-content:flex-end}
.card-flow-percent{color:var(--accent);font-size:1.15rem;line-height:1.05;font-weight:950;white-space:nowrap}
.card-flow-stars{font-size:.7rem;line-height:1;white-space:nowrap}
.home-flow-title{display:flex;align-items:baseline;gap:.42rem;margin:.08rem 0 .48rem;padding:.38rem .48rem;border-radius:9px;background:rgba(56,189,248,.07);min-width:0}
.home-flow-title small{flex:none;color:var(--muted);font-size:.62rem;font-weight:850}
.home-flow-title strong{min-width:0;font-size:.78rem;line-height:1.3;overflow-wrap:anywhere}
.ranking-flow-title{margin:.28rem 0 .35rem}
.ticket-change-badge{display:inline-flex!important;align-items:center;justify-content:center;margin:0 0 .28rem auto!important;padding:.24rem .42rem;border-radius:999px;background:rgba(251,191,36,.16);border:1px solid rgba(251,191,36,.38);color:#fbbf24!important;font-size:.62rem!important;font-weight:950;line-height:1.15;white-space:nowrap}
.near-flow-title{font-weight:800;color:var(--text)!important}
/* 展開的中のみのカードは青枠を明示。買い目的中が同時なら従来どおり赤枠を優先する。 */
.top-race-card.flow-hit-panel:not(.prediction-hit-panel),.ranking-card.flow-hit-panel:not(.prediction-hit-panel){border:3px solid #38bdf8!important}
@media(max-width:640px){
  .home-jump-button,.home-date-actions-row .day-switch-button{height:54px!important;min-height:54px!important;max-height:54px!important}
  .card-flow-percent{font-size:1.02rem}.card-flow-stars{font-size:.64rem}
  .home-flow-title{gap:.3rem;padding:.32rem .4rem}.home-flow-title strong{font-size:.72rem}
}


/* PublicPrep Phase6-8: iPhone15基準でHomeカード表示を一本化 */
/* 日付切替グループ全体と同じ見た目の高さへ合わせる。 */
.home-date-actions-row .home-jump-button{
  height:68px!important;
  min-height:68px!important;
  max-height:68px!important;
  padding:.55rem .72rem!important;
}

/* 展開予想は買い目と同じ箱・同じ文字サイズで表示する。 */
.home-flow-title,
.ranking-flow-title{
  display:block!important;
  margin-top:.8rem!important;
  margin-bottom:0!important;
  padding:.55rem .65rem!important;
  border-radius:10px!important;
  background:rgba(56,189,248,.08)!important;
  border:0!important;
  min-width:0!important;
}
.home-flow-title small,
.ranking-flow-title small{
  display:block!important;
  color:var(--accent-blue)!important;
  font-size:.6rem!important;
  font-weight:900!important;
  line-height:1.2!important;
}
.home-flow-title strong,
.ranking-flow-title strong{
  display:block!important;
  margin-top:.18rem!important;
  color:var(--text)!important;
  font-size:.72rem!important;
  line-height:1.45!important;
  font-weight:850!important;
  overflow-wrap:anywhere!important;
}
/* 展開予想の直後に買い目が来る場合は箱同士の間隔を詰める。 */
.home-flow-title + .top-race-tickets{margin-top:.45rem!important}

/* 的中バッジ → 右上の成立度% → その直下の星、を15/6s共通にする。 */
.top-race-header,
.race-heading{align-items:flex-start!important}
.card-result-stack{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  gap:.12rem!important;
  margin-left:auto!important;
  min-width:78px!important;
  flex:0 0 auto!important;
  text-align:right!important;
}
.card-result-stack .card-hit-badges{
  display:flex!important;
  width:100%!important;
  justify-content:flex-end!important;
  align-items:center!important;
  min-height:0!important;
}
.card-flow-percent{
  display:block!important;
  width:100%!important;
  margin-top:.04rem!important;
  color:#34d399!important;
  font-size:1.28rem!important;
  line-height:1.05!important;
  font-weight:950!important;
  text-align:right!important;
  white-space:nowrap!important;
}
.card-flow-stars{
  display:block!important;
  width:100%!important;
  color:#fbbf24!important;
  font-size:.72rem!important;
  line-height:1!important;
  text-align:right!important;
  white-space:nowrap!important;
}

/* 小型端末でも同じ構造を使い、カードの右側に無駄な余白を残さない。 */
@media(max-width:375px){
  .home-date-actions-row .home-jump-button{
    height:68px!important;min-height:68px!important;max-height:68px!important;
    padding:.45rem .28rem!important;
  }
  .card-result-stack{min-width:72px!important}
  .card-flow-percent{font-size:1.2rem!important;color:#34d399!important}
  .card-flow-stars{font-size:.68rem!important}
  .ranking-all-section .compact-ranking-list{
    padding-left:.15rem!important;
    padding-right:.15rem!important;
  }
  .ranking-all-section .ranking-card{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .ranking-all-section .ranking-main{
    padding-right:.18rem!important;
  }
}

/* PublicPrep Phase6-9: Home navigation/card visual refresh (iPhone15 baseline) */
.header-auth-link{flex-direction:row!important;align-items:center!important;gap:.34rem!important}
.header-auth-caret{display:inline-block;color:var(--text);font-size:.72rem;font-weight:900;line-height:1;transform:translateY(-1px)}

/* 今日/明日は既存デザインを維持し、ジャンプ2ボタンだけ視認性を上げる。 */
.home-jump-actions{gap:.55rem!important}
.home-date-actions-row .home-jump-button{
  display:flex!important;
  flex-direction:row!important;
  gap:.46rem!important;
  height:68px!important;
  min-height:68px!important;
  max-height:68px!important;
  padding:.58rem .9rem!important;
  border:2px solid #f97316!important;
  border-radius:12px!important;
  background:var(--surface)!important;
  color:#ea580c!important;
  box-shadow:0 5px 14px rgba(249,115,22,.08)!important;
  font-size:.88rem!important;
  font-weight:900!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
.home-date-actions-row .home-jump-button:hover{background:rgba(249,115,22,.06)!important;border-color:#ea580c!important}
.home-jump-icon{width:20px;height:20px;flex:0 0 20px;fill:currentColor}
.home-jump-button span{display:inline!important;white-space:nowrap!important}
.home-jump-button .compact-only-break{display:none!important}

/* TOP5 / 全国ランキング共通カード */
.top-race-card,
.ranking-card.home-unified-card{
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:none!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  padding:1.08rem 1rem 1rem!important;
  border-radius:17px!important;
  background:var(--card-flat)!important;
  box-shadow:0 8px 22px rgba(15,23,42,.06)!important;
  box-sizing:border-box!important;
}
html[data-theme="light"] .top-race-card,
html[data-theme="light"] .ranking-card.home-unified-card{background:#fff!important}
.top-race-header{width:100%;min-height:58px}
.top-rank{font-size:1.18rem!important;color:#c2410c!important;font-weight:950!important;line-height:1!important}
.top-race-name{margin:.22rem 0 .62rem!important}
.top-race-name strong{font-size:1.02rem!important;line-height:1.2!important}
.top-race-name small{margin-top:.16rem!important;font-size:.72rem!important;line-height:1.15!important}

/* 的中バッジ → 展開成立度 → 星の3段を右上に固定。 */
.card-result-stack{min-width:132px!important;gap:.18rem!important}
.card-result-stack .card-hit-badges{display:flex!important;justify-content:flex-end!important;gap:.22rem!important;min-height:0!important}
.card-flow-percent{
  color:#34d399!important;
  font-size:1.18rem!important;
  line-height:1.08!important;
  font-weight:950!important;
  text-align:right!important;
}
.card-flow-stars{color:#f59e0b!important;font-size:.78rem!important;letter-spacing:.02em!important;text-align:right!important}

/* 展開予想は買い目と同じ1行ボックス。 */
.home-flow-title,
.ranking-flow-title{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:.48rem!important;
  margin:.08rem 0 .46rem!important;
  padding:.52rem .64rem!important;
  min-height:43px!important;
  border-radius:10px!important;
  background:rgba(56,189,248,.08)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.home-flow-title small,
.ranking-flow-title small{
  display:inline!important;
  flex:0 0 auto!important;
  color:var(--accent-blue)!important;
  font-size:.72rem!important;
  font-weight:900!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.home-flow-title strong,
.ranking-flow-title strong{
  display:block!important;
  min-width:0!important;
  margin:0!important;
  color:var(--text)!important;
  font-size:.76rem!important;
  line-height:1.2!important;
  font-weight:850!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.home-flow-title + .top-race-tickets{margin-top:0!important}

/* ランキングもTOP5と同じ幅・カード構造。 */
.ranking-all-section .compact-ranking-list{padding:.65rem!important;gap:.72rem!important}
.ranking-all-section .ranking-card.home-unified-card{margin:0!important}
.ranking-all-section .ranking-result-block{margin-top:.48rem!important}

@media(max-width:640px){
  .home-date-actions-row .home-jump-button{font-size:.82rem!important;gap:.4rem!important;padding:.55rem .68rem!important}
  .home-jump-icon{width:18px;height:18px;flex-basis:18px}
  .card-result-stack{min-width:126px!important}
  .card-flow-percent{font-size:1.1rem!important}
}

/* 6s級では既存カード構造を保ったまま文字と余白だけ縮小。 */
@media(max-width:375px){
  .home-date-actions-row .home-jump-button{
    height:68px!important;min-height:68px!important;max-height:68px!important;
    padding:.48rem .38rem!important;
    gap:.28rem!important;
    font-size:.69rem!important;
    border-width:1.5px!important;
  }
  .home-jump-icon{width:15px;height:15px;flex-basis:15px}
  .top-race-card,.ranking-card.home-unified-card{padding:.88rem .72rem .82rem!important}
  .top-race-header{min-height:52px!important}
  .top-race-name{margin:.14rem 0 .5rem!important}
  .card-result-stack{min-width:112px!important}
  .card-flow-percent{font-size:.96rem!important}
  .card-flow-stars{font-size:.68rem!important}
  .home-flow-title,.ranking-flow-title{padding:.46rem .52rem!important;gap:.34rem!important;min-height:39px!important}
  .home-flow-title small,.ranking-flow-title small{font-size:.65rem!important}
  .home-flow-title strong,.ranking-flow-title strong{font-size:.68rem!important}
  .ranking-all-section .compact-ranking-list{padding-left:.08rem!important;padding-right:.08rem!important}
  .ranking-all-section .ranking-card.home-unified-card{width:100%!important;margin:0!important}
}

/* Phase6-10: Home上部とカード情報配置を最終整理 */
.home-date-header{display:block!important;padding-top:.7rem!important}
.home-date-top-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:.7rem!important}
.home-date-title{min-width:0!important;flex:1 1 auto!important}
.home-date-title .section-kicker{margin-bottom:.1rem!important}
.home-date-title h1{margin:0!important}
.home-date-inline-switch{flex:0 0 auto!important;margin:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(62px,1fr))!important;gap:.28rem!important;padding:.24rem!important}
.home-date-inline-switch .day-switch-button{height:44px!important;min-height:44px!important;max-height:44px!important;padding:.3rem .48rem!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
.home-jump-actions-full{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.55rem!important;width:100%!important;margin-top:.62rem!important}
.home-jump-actions-full .home-jump-button{width:100%!important;height:58px!important;min-height:58px!important;max-height:58px!important;font-size:.96rem!important}

/* TOP5: 右上情報はフローから外し、左側の順位→場名を詰める。 */
.top-race-card{position:relative!important}
.top-race-card .top-race-header{min-height:22px!important;height:22px!important;margin:0!important;padding:0!important}
.top-race-card .top-race-name{margin:.08rem 0 .5rem!important;padding-right:148px!important}
.top-race-card .card-result-stack{position:absolute!important;top:1rem!important;right:1rem!important;z-index:3!important}
.card-flow-percent{display:inline-flex!important;align-items:center!important;justify-content:center!important;border:2px solid #22c55e!important;border-radius:9px!important;padding:.28rem .48rem!important;background:rgba(34,197,94,.05)!important;color:#16a34a!important}
html[data-theme="dark"] .card-flow-percent{color:#34d399!important;border-color:#34d399!important;background:rgba(52,211,153,.08)!important}
.flow-hit-badge.compact-hit-badge{border:2px solid #38bdf8!important;background:rgba(56,189,248,.1)!important;color:#0284c7!important;box-shadow:0 0 0 1px rgba(56,189,248,.05)!important}
html[data-theme="dark"] .flow-hit-badge.compact-hit-badge{color:#7dd3fc!important}
.prediction-hit-badge.compact-hit-badge{border-width:2px!important}

/* 全国ランキングは従来の左RANK列＋TOP5と同じ本文カード。 */
.ranking-card.home-unified-card{display:grid!important;grid-template-columns:58px minmax(0,1fr)!important;padding:0!important;overflow:hidden!important;position:relative!important}
.ranking-card.home-unified-card .home-rank-column{grid-column:1!important;grid-row:1!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;padding:.9rem .25rem!important;background:rgba(56,189,248,.08)!important;min-height:100%!important}
.ranking-card.home-unified-card .home-rank-column span{font-size:.56rem!important;letter-spacing:.08em!important;color:var(--muted)!important;font-weight:800!important}
.ranking-card.home-unified-card .home-rank-column strong{font-size:1.5rem!important;line-height:1.05!important;margin-top:.12rem!important}
.ranking-card.home-unified-card .ranking-card-main{grid-column:2!important;grid-row:1!important;min-width:0!important;padding:.9rem .8rem .82rem!important;position:relative!important}
.ranking-card.home-unified-card .top-race-header{min-height:0!important;height:0!important;margin:0!important;padding:0!important}
.ranking-card.home-unified-card .card-result-stack{position:absolute!important;top:.82rem!important;right:.78rem!important;z-index:3!important}
.ranking-card.home-unified-card .top-race-name{margin:.05rem 0 .5rem!important;padding-right:148px!important}

@media(max-width:640px){
  .home-jump-actions-full .home-jump-button{font-size:.9rem!important}
  .home-date-inline-switch .day-switch-button{padding:.28rem .38rem!important}
}
@media(max-width:375px){
  .home-date-top-row{gap:.35rem!important}
  .home-date-inline-switch{grid-template-columns:repeat(2,minmax(54px,1fr))!important;gap:.2rem!important;padding:.18rem!important}
  .home-date-inline-switch .day-switch-button{height:40px!important;min-height:40px!important;max-height:40px!important;padding:.2rem .25rem!important}
  .home-jump-actions-full{gap:.35rem!important;margin-top:.5rem!important}
  .home-jump-actions-full .home-jump-button{height:54px!important;min-height:54px!important;max-height:54px!important;font-size:.72rem!important;padding:.42rem .32rem!important;gap:.24rem!important}
  .home-jump-actions-full .home-jump-icon{width:15px!important;height:15px!important;flex-basis:15px!important}
  .top-race-card .card-result-stack{top:.8rem!important;right:.7rem!important}
  .top-race-card .top-race-name{padding-right:120px!important}
  .card-flow-percent{font-size:.9rem!important;padding:.24rem .35rem!important}
  .ranking-card.home-unified-card{grid-template-columns:48px minmax(0,1fr)!important}
  .ranking-card.home-unified-card .home-rank-column{padding:.75rem .1rem!important}
  .ranking-card.home-unified-card .home-rank-column strong{font-size:1.3rem!important}
  .ranking-card.home-unified-card .ranking-card-main{padding:.78rem .58rem .72rem!important}
  .ranking-card.home-unified-card .card-result-stack{top:.7rem!important;right:.55rem!important}
  .ranking-card.home-unified-card .top-race-name{padding-right:118px!important}
}


/* Phase6-11: カード右上情報の高さを本文側へ確保し、重なりだけを修正 */
/* TOP5: 順位/場名の位置は維持し、展開予想の開始位置だけ右上スタックより下へ。 */
.top-race-card .top-race-name{
  min-height:54px!important;
  margin-bottom:.72rem!important;
}
.top-race-card.has-result-badges .top-race-name{
  min-height:82px!important;
  margin-bottom:.72rem!important;
}

/* 全国ランキングも同じ考え方。RANK列や左右位置は変更しない。 */
.ranking-card.home-unified-card .top-race-name{
  min-height:62px!important;
  margin-bottom:.72rem!important;
}
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:90px!important;
  margin-bottom:.72rem!important;
}

/* 展開予想と買い目のラベル・本文を同じサイズ感に統一。 */
.home-flow-title small,
.ranking-flow-title small,
.top-race-tickets summary small{
  font-size:.72rem!important;
  line-height:1.2!important;
  font-weight:900!important;
}
.home-flow-title strong,
.ranking-flow-title strong,
.top-race-tickets summary strong{
  font-size:.76rem!important;
  line-height:1.2!important;
  font-weight:850!important;
}
.top-race-tickets{
  padding:.52rem .64rem!important;
  min-height:43px!important;
  box-sizing:border-box!important;
}
.top-race-tickets summary{
  min-height:22px!important;
}

/* 予想情報と締切/結果の境界は常に同じ位置に線を出す。 */
.top-race-card .deadline-placeholder,
.top-race-card .home-result-block{
  border-top:1px solid rgba(100,116,139,.72)!important;
  margin-top:.58rem!important;
  padding-top:.72rem!important;
}
.ranking-card.home-unified-card .deadline-placeholder,
.ranking-card.home-unified-card .ranking-result-block{
  border-top:1px solid rgba(100,116,139,.72)!important;
  margin-top:.58rem!important;
  padding-top:.72rem!important;
}

@media(max-width:375px){
  .top-race-card .top-race-name{min-height:50px!important;margin-bottom:.6rem!important}
  .top-race-card.has-result-badges .top-race-name{min-height:76px!important}
  .ranking-card.home-unified-card .top-race-name{min-height:58px!important;margin-bottom:.6rem!important}
  .ranking-card.home-unified-card.has-result-badges .top-race-name{min-height:84px!important}
  .home-flow-title small,
  .ranking-flow-title small,
  .top-race-tickets summary small{font-size:.65rem!important}
  .home-flow-title strong,
  .ranking-flow-title strong,
  .top-race-tickets summary strong{font-size:.68rem!important}
}


/* Phase6-12: 星の下～展開予想だけを詰める。右上の重なり防止領域は維持する。 */
.top-race-card .top-race-name{
  min-height:48px!important;
  margin-bottom:.22rem!important;
}
.top-race-card.has-result-badges .top-race-name{
  min-height:76px!important;
  margin-bottom:.22rem!important;
}
.ranking-card.home-unified-card .top-race-name{
  min-height:54px!important;
  margin-bottom:.22rem!important;
}
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:82px!important;
  margin-bottom:.22rem!important;
}
.home-flow-title,
.ranking-flow-title{
  margin-top:.22rem!important;
}

@media(max-width:375px){
  .top-race-card .top-race-name{min-height:46px!important;margin-bottom:.18rem!important}
  .top-race-card.has-result-badges .top-race-name{min-height:72px!important}
  .ranking-card.home-unified-card .top-race-name{min-height:52px!important;margin-bottom:.18rem!important}
  .ranking-card.home-unified-card.has-result-badges .top-race-name{min-height:78px!important}
  .home-flow-title,.ranking-flow-title{margin-top:.18rem!important}
}


/* Phase6-14: 4角期待値は展開成立度と同じ位置・サイズ、赤文字・赤枠。 */
.card-corner-point{
  color:#dc2626!important;
  border:1.5px solid #dc2626!important;
  border-radius:7px!important;
  padding:.18rem .38rem!important;
  background:rgba(220,38,38,.07)!important;
}



/* Phase6-16: PC版TOP5もスマホと同じ1列表示に統一する。 */
#home-recommended .top-race-grid{
  grid-template-columns:1fr!important;
}

/* Phase6-18: 終了バッジ・終了濃度・下部ブラウザ風ナビを正しく適用 */
.top-rank-wrap{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:.28rem!important;
}
.finished-race-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:max-content!important;
  min-width:0!important;
  padding:.18rem .48rem!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:999px!important;
  background:#64748b!important;
  color:#fff!important;
  font-size:.60rem!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:.04em!important;
  box-shadow:0 2px 7px rgba(0,0,0,.16)!important;
}
.finished-race-badge[hidden]{display:none!important}

/* TOP5は「終了」を#順位の完全な上段にする */
.top-race-header .top-rank-wrap .top-rank{
  display:block!important;
}

/* ランキング左列は上下中央。終了→RANK→順位を縦に中央配置 */
.ranking-card.home-unified-card .home-rank-column{
  justify-content:center!important;
  align-items:center!important;
}
.home-rank-column .rank-finished-badge{
  margin:0 0 .38rem 0!important;
}

/* 終了カードは開催場/TOP5と同程度まで明確に暗くする */
.ranking-card.home-unified-card.is-finished-card{
  opacity:.72!important;
  filter:brightness(.68) saturate(.65)!important;
}
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel,
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel{
  opacity:.82!important;
  filter:brightness(.74) saturate(.76)!important;
}

/* 12R/詳細ではヘッダー更新を消し、下部操作バーへ集約 */
.with-bottom-nav .header-controls-left .page-refresh-button{
  display:none!important;
}
.with-bottom-nav .page-container{
  padding-bottom:calc(76px + env(safe-area-inset-bottom))!important;
}
.with-bottom-nav .site-footer{
  padding-bottom:calc(76px + env(safe-area-inset-bottom))!important;
}

/* Safari風: viewport下端に常時固定、必ず横1列 */
.mobile-browser-nav{
  position:fixed!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  z-index:999!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr)!important;
  align-items:center!important;
  gap:.55rem!important;
  width:100%!important;
  margin:0!important;
  padding:.50rem max(.72rem,env(safe-area-inset-left))
          calc(.50rem + env(safe-area-inset-bottom))
          max(.72rem,env(safe-area-inset-right))!important;
  background:rgba(7,24,39,.96)!important;
  border:0!important;
  border-top:1px solid var(--strong-border)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  box-shadow:0 -8px 26px rgba(0,0,0,.25)!important;
}
html[data-theme="light"] .mobile-browser-nav{
  background:rgba(248,250,252,.96)!important;
}
.mobile-browser-nav button,
.mobile-browser-nav a{
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  height:44px!important;
  min-height:44px!important;
  margin:0!important;
  padding:0 .55rem!important;
  border:1px solid var(--border)!important;
  border-radius:13px!important;
  background:var(--panel)!important;
  color:var(--text)!important;
  font:inherit!important;
  font-size:.78rem!important;
  font-weight:900!important;
  line-height:1!important;
  text-align:center!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
.mobile-browser-nav .browser-nav-home{
  color:var(--accent-blue)!important;
}
.mobile-browser-nav .browser-nav-back,
.mobile-browser-nav .browser-nav-refresh{
  font-size:1.30rem!important;
}
.mobile-browser-nav button{
  cursor:pointer!important;
}
.mobile-browser-nav button:disabled,
.mobile-browser-nav button.is-disabled{
  opacity:.35!important;
  cursor:default!important;
}


/* Phase6-19: 終了バッジを完全2段化し、ランキング終了状態を明確化 */
.top-race-card.is-finished-card .top-race-header{
  min-height:52px!important;
  height:52px!important;
  align-items:flex-start!important;
}
.top-race-card.is-finished-card .top-rank-wrap{
  min-height:48px!important;
  justify-content:flex-start!important;
  gap:.34rem!important;
}
.top-race-card.is-finished-card .top-rank-wrap .finished-race-badge,
.top-race-card.is-finished-card .top-rank-wrap .top-rank{
  position:static!important;
  transform:none!important;
}
.ranking-card.home-unified-card .home-rank-column .rank-finished-badge{
  color:#fff!important;
  background:#475569!important;
  border-color:#64748b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="dark"] .ranking-card.home-unified-card .home-rank-column .rank-finished-badge{
  color:#fff!important;
  background:#64748b!important;
  border-color:#94a3b8!important;
}
.ranking-card.home-unified-card.is-finished-card{
  opacity:.62!important;
  filter:brightness(.58) saturate(.58) grayscale(.08)!important;
}
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel,
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel{
  opacity:.72!important;
  filter:brightness(.64) saturate(.66) grayscale(.04)!important;
}

/* Phase6-23: 全画面固定フッター・終了カード/的中表示統一・人気表示 */
.page-refresh-button{display:none!important}
.page-container{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
.site-footer{padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
.mobile-browser-nav{
  position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:9999!important;
  display:grid!important;grid-template-columns:1fr 1.45fr 1fr!important;align-items:center!important;
  gap:.55rem!important;width:100%!important;box-sizing:border-box!important;
  padding:.5rem max(.72rem,env(safe-area-inset-left)) calc(.5rem + env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-right))!important;
}
.mobile-browser-nav button{display:flex!important;width:100%!important;min-width:0!important;height:44px!important;align-items:center!important;justify-content:center!important}
.mobile-browser-nav button:disabled,.mobile-browser-nav button.is-disabled{opacity:.34!important;filter:grayscale(.35)!important;cursor:default!important}

/* TOP5/ランキングの終了暗さを同一にする。opacityではなく背景/brightnessで的中色を残す。 */
.top-race-card.is-finished-card,
.ranking-card.home-unified-card.is-finished-card{
  opacity:1!important;
  filter:brightness(.60) saturate(.62) grayscale(.06)!important;
}
.top-race-card.is-finished-card.prediction-hit-panel,
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel,
.top-race-card.is-finished-card.flow-hit-panel,
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel{
  opacity:1!important;
  filter:brightness(.62) saturate(.78)!important;
}
/* 暗い終了カードでも的中を判別できるよう、透かし/バッジを強める。 */
.top-race-card.is-finished-card.prediction-hit-panel::after,
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel::after{
  color:rgba(255,35,35,.72)!important;text-shadow:0 0 10px rgba(255,255,255,.18)!important;
}
.top-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after,
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after{
  color:rgba(35,185,255,.76)!important;text-shadow:0 0 10px rgba(255,255,255,.16)!important;
}
.top-race-card.is-finished-card .prediction-hit-badge,
.ranking-card.home-unified-card.is-finished-card .prediction-hit-badge{
  color:#fff!important;background:#dc2626!important;border-color:#fecaca!important;box-shadow:0 0 0 2px rgba(239,68,68,.28)!important;
}
.top-race-card.is-finished-card .flow-hit-badge,
.ranking-card.home-unified-card.is-finished-card .flow-hit-badge{
  color:#fff!important;background:#0284c7!important;border-color:#bae6fd!important;box-shadow:0 0 0 2px rgba(56,189,248,.25)!important;
}

/* 右上スタックはバッジの幅に引っ張られて成立度/星が左へずれない。 */
.top-race-card .card-result-stack,
.ranking-card.home-unified-card .card-result-stack{
  align-items:flex-end!important;text-align:right!important;
}
.top-race-card .card-result-stack .card-flow-percent,
.ranking-card.home-unified-card .card-result-stack .card-flow-percent,
.top-race-card .card-result-stack .card-flow-stars,
.ranking-card.home-unified-card .card-result-stack .card-flow-stars{
  width:auto!important;align-self:flex-end!important;margin-left:auto!important;margin-right:0!important;
}
.top-race-card .card-result-stack .card-hit-badges,
.ranking-card.home-unified-card .card-result-stack .card-hit-badges{
  width:auto!important;align-self:flex-end!important;margin-left:auto!important;
}
/* 的中バッジ追加時も星→展開予想の間だけが広がらないよう固定。 */
.top-race-card.has-result-badges .home-flow-title,
.ranking-card.home-unified-card.has-result-badges .ranking-flow-title{margin-top:.08rem!important}

/* 終了バッジは必ず順位より上段。 */
.top-race-card.is-finished-card .top-rank-wrap{display:flex!important;flex-direction:column!important;align-items:flex-start!important}
.top-race-card.is-finished-card .finished-race-badge{order:1!important;margin:0 0 .26rem!important}
.top-race-card.is-finished-card .top-rank{order:2!important}
.ranking-card.home-unified-card .rank-finished-badge{color:#fff!important;background:#475569!important;border-color:#94a3b8!important}

/* 12R/詳細の人気表示 */
.stadium-result-popularity{margin-left:.55rem;color:var(--muted)!important;font-size:.68rem!important;font-weight:850!important;white-space:nowrap!important}
.result-payout-stack,.other-payout-money{display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:center!important;gap:.08rem!important}
.result-popularity{display:block!important;color:var(--muted)!important;font-size:.62rem!important;font-weight:850!important;line-height:1.1!important;white-space:nowrap!important}
.other-payout-money .other-payout-amount{display:block!important}


/* Phase6-24: TOP5的中カードの右上スタック・透かし・展開的中枠を最終調整 */
/* バッジ幅で成立度/星が左へ動かないよう、右上スタック幅を固定。 */
.top-race-card .card-result-stack{
  width:150px!important;
  min-width:150px!important;
  align-items:flex-end!important;
  text-align:right!important;
  gap:.16rem!important;
}
.top-race-card .card-result-stack .card-hit-badges{
  width:150px!important;
  min-width:150px!important;
  display:flex!important;
  flex-wrap:nowrap!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:.22rem!important;
  margin:0!important;
}
.top-race-card .card-result-stack .card-flow-percent,
.top-race-card .card-result-stack .card-flow-stars{
  align-self:flex-end!important;
  margin:0!important;
  transform:none!important;
}

/* 的中バッジが増えても、星の直下から展開予想を始める。 */
.top-race-card.has-result-badges .top-race-name{
  min-height:66px!important;
  margin-bottom:0!important;
}
.top-race-card.has-result-badges .home-flow-title{
  margin-top:0!important;
}

/* 終了カードの暗さは維持しつつ、透かしは本文を邪魔しない濃さ・高さへ。 */
.top-race-card.is-finished-card.prediction-hit-panel::after,
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel::after{
  bottom:38px!important;
  right:12px!important;
  font-size:3.0rem!important;
  color:rgba(255,55,55,.34)!important;
  text-shadow:0 0 8px rgba(255,80,80,.25),0 0 2px rgba(255,255,255,.18)!important;
}
.top-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after,
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after{
  bottom:38px!important;
  right:10px!important;
  font-size:2.65rem!important;
  color:rgba(56,189,248,.38)!important;
  text-shadow:0 0 8px rgba(56,189,248,.28),0 0 2px rgba(255,255,255,.16)!important;
}

/* 買い目的中は赤枠、展開だけ的中は青枠。両方なら赤枠を優先しバッジで両方示す。 */
.top-race-card.is-finished-card.prediction-hit-panel,
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel{
  border:3px solid #ef4444!important;
  box-shadow:0 0 0 2px rgba(239,68,68,.26),0 9px 24px rgba(0,0,0,.22)!important;
}
.top-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel),
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel){
  border:3px solid #38bdf8!important;
  box-shadow:0 0 0 2px rgba(56,189,248,.25),0 9px 24px rgba(0,0,0,.22)!important;
}

/* バッジ文字自体を明るくし、終了カード上でも沈まないようにする。 */
.top-race-card.is-finished-card .prediction-hit-badge,
.ranking-card.home-unified-card.is-finished-card .prediction-hit-badge{
  color:#fff!important;
  background:#ef4444!important;
  border-color:#fecaca!important;
  text-shadow:0 0 5px rgba(255,255,255,.42)!important;
  box-shadow:0 0 9px rgba(239,68,68,.48),0 0 0 1px rgba(255,255,255,.16)!important;
}
.top-race-card.is-finished-card .flow-hit-badge,
.ranking-card.home-unified-card.is-finished-card .flow-hit-badge{
  color:#fff!important;
  background:#0ea5e9!important;
  border-color:#bae6fd!important;
  text-shadow:0 0 5px rgba(255,255,255,.40)!important;
  box-shadow:0 0 9px rgba(14,165,233,.48),0 0 0 1px rgba(255,255,255,.14)!important;
}

@media(max-width:375px){
  .top-race-card .card-result-stack{width:132px!important;min-width:132px!important}
  .top-race-card .card-result-stack .card-hit-badges{width:132px!important;min-width:132px!important;gap:.14rem!important}
  .top-race-card.has-result-badges .top-race-name{min-height:62px!important}
}


/* Phase6-25: Homeカード右上情報を自然レイアウトへ統一 */
.top-race-summary-row,
.ranking-summary-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start!important;
  gap:.65rem!important;
  margin:0 0 .34rem!important;
}
.top-race-summary-left{min-width:0!important}
.top-race-summary-row .top-race-name,
.ranking-summary-row .top-race-name{
  min-height:0!important;
  margin:.22rem 0 0!important;
  padding-right:0!important;
}
.top-race-summary-row .card-result-stack,
.ranking-summary-row .card-result-stack{
  position:static!important;
  top:auto!important;
  right:auto!important;
  width:auto!important;
  min-width:128px!important;
  max-width:160px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  gap:.14rem!important;
  margin:0!important;
  text-align:right!important;
}
.top-race-summary-row .card-hit-badges,
.ranking-summary-row .card-hit-badges{
  width:auto!important;
  min-width:0!important;
  max-width:160px!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  gap:.18rem!important;
  margin:0!important;
}
.top-race-summary-row .card-flow-percent,
.top-race-summary-row .card-flow-stars,
.ranking-summary-row .card-flow-percent,
.ranking-summary-row .card-flow-stars{
  align-self:flex-end!important;
  margin:0!important;
  transform:none!important;
}
.top-race-summary-row + .home-flow-title,
.ranking-summary-row + .ranking-flow-title{
  margin-top:.10rem!important;
}
/* 旧absolute版の「的中時だけ高さを余計に取る」指定を無効化 */
.top-race-card.has-result-badges .top-race-name,
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:0!important;
  margin-bottom:0!important;
}
.top-race-card.has-result-badges .home-flow-title,
.ranking-card.home-unified-card.has-result-badges .ranking-flow-title{
  margin-top:.10rem!important;
}

/* 買い目的中/展開的中の外枠は同じ太さ。色だけ赤/青。 */
.top-race-card.is-finished-card.prediction-hit-panel,
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel{
  border:4px solid #ef4444!important;
  box-shadow:0 0 0 2px rgba(239,68,68,.28),0 0 15px rgba(239,68,68,.18),0 9px 24px rgba(0,0,0,.22)!important;
}
.top-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel),
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel){
  border:4px solid #38bdf8!important;
  box-shadow:0 0 0 2px rgba(56,189,248,.28),0 0 15px rgba(56,189,248,.20),0 9px 24px rgba(0,0,0,.22)!important;
}

/* 透かしは少し上へ移し、文字を隠し過ぎない濃さ＋発光感にする */
.top-race-card.is-finished-card.prediction-hit-panel::after,
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel::after{
  bottom:52px!important;
  right:12px!important;
  font-size:2.8rem!important;
  color:rgba(255,70,70,.27)!important;
  text-shadow:0 0 10px rgba(255,55,55,.34),0 0 3px rgba(255,255,255,.14)!important;
}
.top-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after,
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after{
  bottom:52px!important;
  right:10px!important;
  font-size:2.5rem!important;
  color:rgba(70,200,255,.30)!important;
  text-shadow:0 0 10px rgba(56,189,248,.36),0 0 3px rgba(255,255,255,.14)!important;
}

/* 進捗ラインはヘッダーではなく固定フッターの上線として使う */
.mobile-browser-nav{position:fixed!important}
.mobile-browser-nav .site-load-progress{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:-3px!important;
  bottom:auto!important;
  height:3px!important;
  z-index:10001!important;
}
.site-header .site-load-progress{display:none!important}

/* 12R人気は払戻の直後に一続きで表示 */
.stadium-result-popularity{
  margin-left:0!important;
  color:var(--muted)!important;
}

@media(max-width:375px){
  .top-race-summary-row,
  .ranking-summary-row{gap:.42rem!important}
  .top-race-summary-row .card-result-stack,
  .ranking-summary-row .card-result-stack{min-width:112px!important;max-width:136px!important}
  .top-race-summary-row .card-hit-badges,
  .ranking-summary-row .card-hit-badges{max-width:136px!important;gap:.12rem!important}
}


/* Phase6-26: 指摘反映 - TOP5は維持し、ランキング成立度だけPhase6-25前へ戻す。 */
/* 的中/展開的中の透かし位置はPhase6-24の高さへ戻す。 */
.top-race-card.is-finished-card.prediction-hit-panel::after,
.ranking-card.home-unified-card.is-finished-card.prediction-hit-panel::after{
  bottom:38px!important;
  right:12px!important;
  font-size:3.0rem!important;
  color:rgba(255,55,55,.34)!important;
  text-shadow:0 0 8px rgba(255,80,80,.25),0 0 2px rgba(255,255,255,.18)!important;
}
.top-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after,
.ranking-card.home-unified-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after{
  bottom:38px!important;
  right:10px!important;
  font-size:2.65rem!important;
  color:rgba(56,189,248,.38)!important;
  text-shadow:0 0 8px rgba(56,189,248,.28),0 0 2px rgba(255,255,255,.16)!important;
}


/* Phase6-27: 全国ランキングはTOP5の自然レイアウトから分離。
   右上の成立度/星ぶんの高さを本文側に確保し、展開予想との重なりを防ぐ。 */
.ranking-card.home-unified-card .top-race-name{
  min-height:62px!important;
  margin:.05rem 0 .72rem!important;
  padding-right:148px!important;
}
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:90px!important;
  margin-bottom:.72rem!important;
}
.ranking-card.home-unified-card .ranking-flow-title{
  margin-top:0!important;
}
@media(max-width:375px){
  .ranking-card.home-unified-card .top-race-name{
    min-height:58px!important;
    margin-bottom:.6rem!important;
    padding-right:118px!important;
  }
  .ranking-card.home-unified-card.has-result-badges .top-race-name{min-height:84px!important}
}


/* Phase6-28: 全国ランキングの成立度/星と展開予想の間だけ少し詰める。TOP5は変更しない。 */
.ranking-card.home-unified-card .top-race-name{
  min-height:58px!important;
  margin:.05rem 0 .30rem!important;
}
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:86px!important;
  margin-bottom:.30rem!important;
}
@media(max-width:375px){
  .ranking-card.home-unified-card .top-race-name{
    min-height:54px!important;
    margin-bottom:.24rem!important;
  }
  .ranking-card.home-unified-card.has-result-badges .top-race-name{min-height:80px!important}
}


/* Phase6-29: 全国ランキングの星と展開予想の間をもう一段だけ詰める。TOP5は維持。 */
.ranking-card.home-unified-card .top-race-name{
  min-height:54px!important;
  margin:.05rem 0 .12rem!important;
}
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:82px!important;
  margin-bottom:.12rem!important;
}
@media(max-width:375px){
  .ranking-card.home-unified-card .top-race-name{
    min-height:50px!important;
    margin-bottom:.10rem!important;
  }
  .ranking-card.home-unified-card.has-result-badges .top-race-name{min-height:76px!important}
}

/* Phase6-31: 朝ランキング固定のまま展示後変更だけを明示する。 */
.home-exhibition-change{
  display:flex;align-items:center;gap:.34rem;width:max-content;max-width:100%;
  margin:.02rem 0 .18rem;padding:.22rem .42rem;border-radius:999px;
  border:1px solid rgba(239,68,68,.42);background:rgba(239,68,68,.08);
  color:#dc2626;font-size:.62rem;font-weight:950;line-height:1.15;
}
.home-exhibition-change[hidden]{display:none!important}
.home-exhibition-change span{color:var(--muted);font-size:.58rem;font-weight:800}
.exhibition-hit-badge.compact-hit-badge{
  border:2px solid #f97316!important;background:rgba(249,115,22,.12)!important;
  color:#ea580c!important;box-shadow:0 0 0 1px rgba(249,115,22,.08)!important;
}
html[data-theme="dark"] .exhibition-hit-badge.compact-hit-badge{color:#fdba74!important}

/* 12R一覧: 展示後に予想が変わったカードだけ赤基調。変更なしは従来表示。 */
.stadium-race-card.has-exhibition-change .stadium-race-score > strong.exhibition-updated-score{
  color:#ef4444!important;
}
.stadium-exhibition-label{
  display:block;margin:0 0 .12rem;color:#ef4444;font-size:.58rem;font-style:normal;
  font-weight:950;line-height:1.1;
}
.stadium-race-card .race-flow-preview.exhibition-updated-flow{
  border-color:rgba(239,68,68,.42)!important;background:rgba(239,68,68,.08)!important;
}
.stadium-race-card .race-flow-preview.exhibition-updated-flow small{
  color:#dc2626!important;
}
.stadium-race-card .race-flow-preview.exhibition-updated-flow small span{
  display:inline-flex;margin-left:.34rem;padding:.08rem .28rem;border-radius:999px;
  background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.28);
  color:#ef4444;font-size:.52rem;font-weight:950;
}
.stadium-race-card .race-flow-preview.exhibition-updated-flow strong{color:#b91c1c!important}
html[data-theme="dark"] .stadium-race-card .race-flow-preview.exhibition-updated-flow strong{color:#fca5a5!important}

/* 全国ランキングの星→展開予想間はもう少しだけ詰める。 */
.ranking-card.home-unified-card .top-race-name{
  min-height:50px!important;margin:.03rem 0 .04rem!important;
}
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:78px!important;margin-bottom:.04rem!important;
}
@media(max-width:375px){
  .ranking-card.home-unified-card .top-race-name{min-height:47px!important;margin-bottom:.02rem!important}
  .ranking-card.home-unified-card.has-result-badges .top-race-name{min-height:73px!important}
}


/* Phase6-32: 展示後成立度は5pt以上だけ強調し、展開変更と独立表示する。 */
.stadium-score-value{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:0}
.stadium-score-value .stadium-exhibition-label{margin:0 0 .08rem;text-align:right;white-space:nowrap}
.stadium-score-value > strong{display:block}
.exhibition-hit-badge.compact-hit-badge{
  border-color:#8b5cf6!important;background:rgba(139,92,246,.12)!important;
  color:#7c3aed!important;
}
html[data-theme="dark"] .exhibition-hit-badge.compact-hit-badge{color:#c4b5fd!important}


/* Phase6-34: 12R一覧の透かしも、現在表示している予想の的中結果に合わせる。 */
.stadium-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel){
  position:relative;
  overflow:hidden;
  border-color:rgba(56,189,248,.55)!important;
}
.stadium-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel)::after{
  content:'展開的中';
  position:absolute;
  right:10px;
  bottom:4px;
  transform:rotate(-13deg);
  color:rgba(56,189,248,.30);
  text-shadow:0 0 8px rgba(56,189,248,.26),0 0 2px rgba(255,255,255,.14);
  font-size:2.35rem;
  font-weight:1000;
  pointer-events:none;
  z-index:0;
}
.stadium-race-card.is-finished-card.flow-hit-panel:not(.prediction-hit-panel) > *{
  position:relative;
  z-index:1;
}

/* Phase6-44: 展示後予想差分表示の縦余白を圧縮 */
.top-race-card .home-exhibition-hit,
.ranking-card.home-unified-card .home-exhibition-hit{margin-top:-.12rem!important;margin-bottom:.06rem!important;line-height:1!important}
.top-race-card .home-exhibition-change,
.ranking-card.home-unified-card .home-exhibition-change{margin-top:.02rem!important;margin-bottom:.08rem!important;line-height:1.12!important}
.top-race-card .home-exhibition-hit + .home-exhibition-change,
.ranking-card.home-unified-card .home-exhibition-hit + .home-exhibition-change{margin-top:-.02rem!important}
.top-race-card .home-exhibition-change + .home-flow-title,
.ranking-card.home-unified-card .home-exhibition-change + .ranking-flow-title{margin-top:.10rem!important}
.top-race-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge,
.ranking-card.home-unified-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge{position:relative!important;top:-2px!important}
.ranking-hit-progress{display:inline-block;margin-left:.45rem;font-size:.78rem;font-weight:800;color:var(--muted);white-space:nowrap}

/* Phase6-45: 全国ランキングだけ展示後差分表示の縦位置をさらに調整 */
.ranking-card.home-unified-card .card-result-stack{
  top:.94rem!important;
}
.ranking-card.home-unified-card .top-race-name{
  min-height:46px!important;
  margin-top:.14rem!important;
  margin-bottom:.04rem!important;
}
.ranking-card.home-unified-card.has-result-badges .top-race-name{
  min-height:70px!important;
  margin-bottom:.02rem!important;
}
.ranking-card.home-unified-card .home-exhibition-change{
  margin-top:-.12rem!important;
  margin-bottom:.04rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit{
  margin-top:-.34rem!important;
  margin-bottom:-.02rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge{
  position:relative!important;
  top:-6px!important;
}
.ranking-card.home-unified-card .home-exhibition-hit + .home-exhibition-change{
  margin-top:-.16rem!important;
}
.ranking-card.home-unified-card .home-exhibition-change + .ranking-flow-title{
  margin-top:.02rem!important;
}
.ranking-hit-progress{
  margin-left:.5rem!important;
  letter-spacing:.01em;
}
@media(max-width:375px){
  .ranking-card.home-unified-card .card-result-stack{top:.82rem!important}
  .ranking-card.home-unified-card .top-race-name{min-height:43px!important}
  .ranking-card.home-unified-card.has-result-badges .top-race-name{min-height:66px!important}
}


/* Phase6-46: ランキング展示後表示をさらに上へ。TOP5は変更しない。 */
.ranking-card.home-unified-card .home-exhibition-hit{
  position:relative!important;
  top:-5px!important;
  margin-top:-.48rem!important;
  margin-bottom:-.10rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge{
  top:-10px!important;
}
.ranking-card.home-unified-card .home-exhibition-change{
  position:relative!important;
  top:-5px!important;
  margin-top:-.20rem!important;
  margin-bottom:-.06rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit + .home-exhibition-change{
  margin-top:-.24rem!important;
}
.ranking-card.home-unified-card .home-exhibition-change + .ranking-flow-title{
  margin-top:.14rem!important;
}

/* 12R一覧: 展示後変更ラベルを少し上へ逃がし、星と重ならないよう余白を確保。 */
.stadium-race-card.has-exhibition-change .stadium-race-score{
  align-items:flex-start!important;
  padding-top:.18rem!important;
}
.stadium-race-card.has-exhibition-change .stadium-score-value{
  position:relative!important;
  top:-5px!important;
}
.stadium-race-card.has-exhibition-change .stadium-score-value .stadium-exhibition-label{
  position:relative!important;
  top:-2px!important;
  margin-bottom:.04rem!important;
}


/* Phase6-47: ランキング展示後バッジ/変更案内をさらに上へ。TOP5は変更しない。 */
.ranking-card.home-unified-card .home-exhibition-hit{
  top:-10px!important;
  margin-top:-.62rem!important;
  margin-bottom:-.14rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge{
  top:-15px!important;
}
.ranking-card.home-unified-card .home-exhibition-change{
  top:-10px!important;
  margin-top:-.30rem!important;
  margin-bottom:-.02rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit + .home-exhibition-change{
  margin-top:-.34rem!important;
}
.ranking-card.home-unified-card .home-exhibition-change + .ranking-flow-title{
  margin-top:.22rem!important;
}

/* 12R一覧: 展示後変更/期待度表示をさらに上へ逃がし、星を完全に見せる。 */
.stadium-race-card.has-exhibition-change .stadium-race-score{
  padding-top:0!important;
  transform:translateY(-9px)!important;
}
.stadium-race-card.has-exhibition-change .stadium-score-value{
  top:-8px!important;
}
.stadium-race-card.has-exhibition-change .stadium-score-value .stadium-exhibition-label{
  top:-5px!important;
  margin-bottom:.10rem!important;
}


/* Phase6-49: 表示位置の再整理。Phase6-48の壊れたCSSを置き換える。 */
/* ランキング: 変更案内だけを下へ戻す。展示後予想的中バッジはPhase6-47の位置を維持。 */
.ranking-card.home-unified-card .home-exhibition-change{
  position:relative!important;
  top:2px!important;
  margin-top:.02rem!important;
  margin-bottom:.08rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit + .home-exhibition-change{
  margin-top:.02rem!important;
}
.ranking-card.home-unified-card .home-exhibition-change + .ranking-flow-title{
  margin-top:.08rem!important;
}

/* 12R一覧: 展示後変更ラベルを星/成立度の行から分離。ラベル有無で星の幅を変えない。 */
.stadium-exhibition-note{
  display:block;
  margin:.30rem 0 -.32rem;
  color:#ef4444;
  font-size:.58rem;
  font-weight:950;
  line-height:1.15;
  text-align:right;
  white-space:nowrap;
}
.stadium-race-card.has-exhibition-change .stadium-race-score{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:.35rem!important;
  transform:none!important;
  padding-top:0!important;
  margin:.70rem 0!important;
  overflow:visible!important;
}
.stadium-race-card.has-exhibition-change .stadium-race-score .stars{
  display:block!important;
  flex:0 0 auto!important;
  min-width:max-content!important;
  overflow:visible!important;
  white-space:nowrap!important;
}
.stadium-race-card.has-exhibition-change .stadium-score-value{
  position:static!important;
  flex:0 0 auto!important;
  top:auto!important;
  padding-top:0!important;
  overflow:visible!important;
}

/* 締切済み/結果確定済みだけ、星・成立度から展開予想までを明確に詰める。締切前は触らない。 */
.stadium-race-card.is-closed-card .stadium-race-score,
.stadium-race-card.is-finished-card .stadium-race-score{
  margin-bottom:.16rem!important;
}
.stadium-race-card.is-closed-card .race-flow-preview,
.stadium-race-card.is-finished-card .race-flow-preview{
  margin-top:.10rem!important;
}
.stadium-race-card.is-closed-card.has-exhibition-change .stadium-race-score,
.stadium-race-card.is-finished-card.has-exhibition-change .stadium-race-score{
  margin-bottom:.14rem!important;
}
@media(max-width:600px){
  .stadium-exhibition-note{
    margin:.28rem 0 -.28rem;
    font-size:.54rem;
  }
  .stadium-race-card.has-exhibition-change .stadium-race-score{
    margin:.62rem 0!important;
    gap:.25rem!important;
  }
  .stadium-race-card.is-closed-card .stadium-race-score,
  .stadium-race-card.is-finished-card .stadium-race-score{
    margin-bottom:.12rem!important;
  }
  .stadium-race-card.is-closed-card .race-flow-preview,
  .stadium-race-card.is-finished-card .race-flow-preview{
    margin-top:.08rem!important;
  }
}


/* Phase6-50: ランキング展示後表示の最終位置関係。
   バッジは変更案内の直上へ戻し、変更案内だけ現状より少し上げる。 */
.ranking-card.home-unified-card .home-exhibition-hit{
  position:relative!important;
  top:0!important;
  margin:-.08rem 0 .04rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge{
  position:relative!important;
  top:0!important;
}
.ranking-card.home-unified-card .home-exhibition-change{
  position:relative!important;
  top:-2px!important;
  margin:0 0 .06rem!important;
}
.ranking-card.home-unified-card .home-exhibition-hit + .home-exhibition-change{
  margin-top:0!important;
}
.ranking-card.home-unified-card .home-exhibition-change + .ranking-flow-title{
  margin-top:.06rem!important;
}


/* Phase6-51: ランキングの「展示後予想的中」バッジだけを半分程度上へ。 */
.ranking-card.home-unified-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge{
  position:relative!important;
  top:-10px!important;
}

/* Stripe subscription billing */
.account-billing-box{margin-top:1rem;padding:1rem;border:1px solid var(--line,#d9dee8);border-radius:14px}
.account-billing-box h2{margin:.1rem 0 .8rem;font-size:1rem}
.account-plan-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:.6rem 0}
.account-plan-actions form,.account-plan-actions button{width:100%}
@media(max-width:560px){.account-plan-actions{grid-template-columns:1fr}}

/* Phase6-57: 決済検証用の仮プラン権限制御 */
.site-menu-locked-feature{display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.7rem .85rem;color:var(--muted);opacity:.72;cursor:not-allowed}
.site-menu-locked-feature small,.site-menu-action-locked small{font-size:.62rem;font-weight:900;letter-spacing:.02em}
.site-menu-action-locked{display:flex!important;justify-content:space-between!important;align-items:center!important;opacity:.6!important;cursor:not-allowed!important}
.account-feature-test-box{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}
.account-feature-test-box h2{margin:0 0 .7rem;font-size:1rem}
.account-feature-test-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.account-feature-test-grid>div{display:grid;gap:.22rem;padding:.7rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.account-feature-test-grid strong{font-size:.82rem}.account-feature-test-grid span{font-size:.68rem;color:var(--muted)}
.account-feature-test-box>p{margin:.65rem 0 0;font-size:.72rem;color:var(--muted)}
@media(max-width:560px){.account-feature-test-grid{grid-template-columns:1fr}}


/* Phase6-67: 公開ページ / 問い合わせ / AdSense準備 */
.site-footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:.45rem 1rem;margin-bottom:.55rem}
.site-footer-links a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.site-footer-plan-note{margin:.25rem 0 0;opacity:.72}
.public-page-shell{max-width:820px;margin:0 auto;padding:1rem 0 2rem}
.public-page-card{background:var(--card-bg,#102536);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:clamp(1rem,3vw,2rem);box-shadow:0 12px 28px rgba(0,0,0,.12)}
html[data-theme="light"] .public-page-card{background:#fff;border-color:rgba(15,23,42,.12)}
.public-page-card h1{margin:.15rem 0 1rem}.public-page-card h2{font-size:1.05rem;margin:1.45rem 0 .5rem}.public-page-card p{line-height:1.8}.public-page-card a{text-decoration:underline;text-underline-offset:3px}
.public-page-lead{color:var(--muted);margin-bottom:1.2rem}.public-page-note{font-size:.84rem;color:var(--muted)}
.contact-form{display:grid;gap:1rem}.contact-form label{display:grid;gap:.42rem;font-weight:700}.contact-form input,.contact-form select,.contact-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(127,127,127,.32);border-radius:10px;padding:.78rem .85rem;background:var(--input-bg,#0b1d2b);color:inherit;font:inherit}.contact-form textarea{resize:vertical;min-height:150px}
html[data-theme="light"] .contact-form input,html[data-theme="light"] .contact-form select,html[data-theme="light"] .contact-form textarea{background:#fff}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Phase6-68: TOP5の「展示後予想的中」が変更注記へ重ならないよう半バッジ分上へ。 */
.top-race-card .home-exhibition-hit{
  position:relative!important;
  top:-9px!important;
  margin-top:-.16rem!important;
  margin-bottom:-.18rem!important;
}
.top-race-card .home-exhibition-hit:not([hidden]) .exhibition-hit-badge{
  position:relative!important;
  top:-2px!important;
}
/* バッジを上げてもレース名と右上情報が窮屈にならない最小余白。 */
.top-race-card.has-result-badges .top-race-summary-row{
  min-height:58px!important;
}
@media(max-width:375px){
  .top-race-card.has-result-badges .top-race-summary-row{min-height:55px!important}
}


/* Phase6-69: TOP5展示後的中バッジの重なりを解消。
   右上の的中/成立度/星をバッジ上昇分だけ上へ逃がし、
   レース名～展示後的中の間にも専用の高さを確保する。 */
.top-race-card.has-result-badges .card-result-stack{
  position:relative!important;
  top:-9px!important;
}
.top-race-card.has-result-badges .top-race-summary-row{
  min-height:68px!important;
}
.top-race-card.has-result-badges .top-race-summary-left{
  align-self:flex-start!important;
}
.top-race-card.has-result-badges .top-race-name{
  padding-bottom:7px!important;
}
.top-race-card .home-exhibition-hit{
  top:-9px!important;
  margin-top:-.08rem!important;
  margin-bottom:-.12rem!important;
}
@media(max-width:375px){
  .top-race-card.has-result-badges .card-result-stack{top:-8px!important}
  .top-race-card.has-result-badges .top-race-summary-row{min-height:65px!important}
  .top-race-card.has-result-badges .top-race-name{padding-bottom:6px!important}
}


/* Phase6-70: TOP5のレース名と展示後予想的中バッジの間をわずかに広げる。 */
.top-race-card.has-result-badges .top-race-name{padding-bottom:11px!important}
@media(max-width:375px){.top-race-card.has-result-badges .top-race-name{padding-bottom:10px!important}}

/* Phase6-74: registration terms consent */
.register-terms-consent{display:flex!important;align-items:flex-start;gap:.6rem;padding:.8rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);font-size:.72rem;line-height:1.55}.register-terms-consent input{width:auto!important;margin-top:.2rem;flex:0 0 auto}.register-terms-consent a{text-decoration:underline;font-weight:800}
