html,
body {
	overflow-x: auto;
}

main,
#inner,
#container {
	overflow: visible;
}

article {
	width: 1080px;
	max-width: 100%;
	margin: 0 auto;
}

.race_detail_container {
	width: 100%;
}

.race_important_updates_area {
	margin-bottom: 18px;
	padding: 14px 16px;
	border: 1px solid rgba(231, 84, 128, 0.16);
	border-radius: 16px;
	background: linear-gradient(
		180deg,
		rgba(255, 244, 247, 0.96) 0%,
		rgba(255, 249, 250, 0.98) 100%
	);
	box-shadow: 0 10px 24px rgba(186, 62, 105, 0.08);
}

.race_important_updates_header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.race_important_updates_header h2 {
	margin: 0;
	font-size: clamp(1.05rem, 0.98rem + 0.32vw, 1.2rem);
	color: #8c2249;
}

.race_important_updates_hint {
	font-size: var(--font-size-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	color: rgba(140, 34, 73, 0.72);
}

.race_important_updates_list {
	display: grid;
	gap: 8px;
}

.race_important_updates_item {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.68);
}

.race_important_updates_badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(186, 62, 105, 0.12);
	color: #9a214c;
	font-size: 0.76rem;
	font-weight: 700;
	white-space: nowrap;
}

.race_important_updates_text {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.5;
	color: #5c2235;
}

.race_important_updates_item--cancel .race_important_updates_badge {
	background: rgba(201, 48, 97, 0.16);
	color: #a31d49;
}

article h1 {
	margin-bottom: 16px;
}

.race_floating_panels {
	position: fixed;
	left: 14px;
	bottom: 14px;
	z-index: 120;
	display: grid;
	gap: 6px;
	width: min(300px, calc(100vw - 28px));
}

.race_floating_summary {
	padding: 10px 12px;
	border: 1px solid rgba(16, 24, 40, 0.12);
	border-radius: 12px;
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.94) 0%,
		rgba(249, 250, 251, 0.92) 100%
	);
	backdrop-filter: blur(8px);
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
	font-size: var(--font-size-xs);
	line-height: 1.35;
}

.race_floating_results {
	display: grid;
	gap: 8px;
	padding: 10px 12px;
	border: 1px solid rgba(140, 92, 26, 0.2);
	border-radius: 12px;
	background: linear-gradient(
		180deg,
		rgba(255, 251, 235, 0.96) 0%,
		rgba(255, 255, 255, 0.98) 100%
	);
	box-shadow: 0 10px 28px rgba(140, 92, 26, 0.12);
	color: #5b3a14;
	font-size: var(--font-size-xs);
	line-height: 1.35;
}

.race_floating_results {
	width: min(300px, calc(100vw - 28px));
}

.race_floating_results_header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.race_floating_results_title {
	margin: 0;
	font-size: var(--font-size-sm);
	font-weight: 800;
	color: #6f4318;
}

.race_floating_results_count {
	color: #9a6a33;
	font-size: var(--font-size-xxs);
	font-weight: 700;
}

.race_floating_results_body {
	display: grid;
	gap: 10px;
}

.race_floating_results_actions {
	display: flex;
	justify-content: flex-end;
}

.race_floating_results_link {
	color: #8b5a00;
	font-size: var(--font-size-xxs);
	font-weight: 800;
	text-decoration: none;
}

.race_floating_results_link:hover {
	text-decoration: underline;
}

.race_result_horse_link {
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: inherit;
	text-align: left;
	cursor: pointer;
}

.race_result_horse_link:hover {
	text-decoration: underline;
}

.race_floating_odds_happening {
	display: grid;
	gap: 8px;
	align-content: start;
	min-height: 100%;
	padding: 10px 12px;
	border: 1px solid rgba(198, 90, 56, 0.18);
	border-radius: 12px;
	background: linear-gradient(
		180deg,
		rgba(255, 248, 239, 0.96) 0%,
		rgba(255, 253, 249, 0.98) 100%
	);
	box-shadow: 0 10px 28px rgba(198, 90, 56, 0.1);
	color: #7b341e;
	text-decoration: none;
	font-size: var(--font-size-xs);
	line-height: 1.35;
}

.race_floating_odds_happening:hover {
	border-color: rgba(198, 90, 56, 0.3);
	box-shadow: 0 12px 30px rgba(198, 90, 56, 0.14);
	opacity: 1 !important;
}

.race_floating_odds_happening_header,
.race_floating_odds_happening_item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.race_floating_odds_happening_title {
	font-weight: 800;
	color: #7b2f24;
}

.race_floating_odds_happening_count,
.race_floating_odds_happening_hint {
	color: #9a5b41;
	font-size: var(--font-size-xxs);
	font-weight: 700;
}

.race_floating_odds_happening_list {
	display: grid;
	gap: 6px;
}

.race_floating_odds_happening_item {
	padding: 7px 8px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.78);
}

.race_floating_odds_happening_horse {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	font-weight: 700;
	color: #111827;
}

.race_floating_odds_happening_horse_number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 24px;
	padding: 0 6px;
	border-radius: 999px;
	background: linear-gradient(
		180deg,
		rgba(198, 90, 56, 0.22) 0%,
		rgba(241, 195, 111, 0.34) 100%
	);
	color: #7b2f24;
	font-size: var(--font-size-xxs);
	font-weight: 800;
}

.race_floating_odds_happening_change {
	flex: 0 0 auto;
	color: #6a4a3d;
	font-size: var(--font-size-xxs);
	font-weight: 700;
}

.race_floating_summary_item {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 8px;
	align-items: start;
}

.race_floating_summary_label {
	color: #6b7280;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.race_floating_summary_value {
	min-width: 0;
	color: #111827;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.race_title_sub_actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: -4px 0 18px;
}

.race_title_sub_action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 0 12px;
	border-radius: 999px;
	border: 1px solid rgba(17, 17, 17, 0.12);
	background: rgba(17, 17, 17, 0.04);
	color: #4b5563;
	text-decoration: none;
	font-size: var(--font-size-xs);
	font-weight: 600;
	letter-spacing: 0.01em;
	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		color 0.18s ease;
}

.race_title_sub_action:hover {
	background: rgba(17, 17, 17, 0.08);
	border-color: rgba(17, 17, 17, 0.18);
	color: #1f2937;
}

.race_title_sub_action--win5 {
	background: linear-gradient(
		180deg,
		rgba(191, 219, 254, 0.18),
		rgba(255, 255, 255, 0.92)
	);
}

.admin_race_bet_area {
	margin-top: 8px;
}

.admin_race_bet_list {
	display: grid;
	gap: 12px;
}

.admin_race_bet_item {
	position: relative;
	display: grid;
	gap: 12px;
	padding: 16px 18px;
	border: 1px solid rgba(15, 23, 42, 0.12);
	border-radius: 18px;
	background:
		radial-gradient(circle at top right, rgba(250, 204, 21, 0.12), transparent 32%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.96));
	box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
	overflow: hidden;
}

.admin_race_bet_item::after {
	content: "";
	position: absolute;
	left: 18px;
	right: 18px;
	top: 50%;
	border-top: 1px dashed rgba(148, 163, 184, 0.5);
	pointer-events: none;
}

.admin_race_bet_item_header,
.admin_race_bet_metrics,
.admin_race_bet_selection_row {
	position: relative;
	z-index: 1;
}

.admin_race_bet_item_header,
.admin_race_bet_selection_row,
.admin_race_bet_metrics {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 14px;
}

.admin_race_bet_labels {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
}

.admin_race_bet_type,
.admin_race_bet_method,
.admin_race_bet_status {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 0 10px;
	border-radius: 999px;
	font-size: var(--font-size-xxs);
	font-weight: 800;
	letter-spacing: 0.03em;
}

.admin_race_bet_type {
	background: rgba(15, 23, 42, 0.08);
	color: #0f172a;
}

.admin_race_bet_method {
	background: rgba(59, 130, 246, 0.1);
	color: #1d4ed8;
}

.admin_race_bet_status--pending {
	background: rgba(148, 163, 184, 0.16);
	color: #475569;
}

.admin_race_bet_status--hit {
	background: rgba(21, 128, 61, 0.12);
	color: #166534;
}

.admin_race_bet_status--miss {
	background: rgba(220, 38, 38, 0.1);
	color: #b91c1c;
}

.admin_race_bet_selection_label {
	font-size: var(--font-size-xxs);
	font-weight: 700;
	color: #64748b;
}

.admin_race_bet_selection_text {
	font-family: "JetBrains Mono", "Consolas", monospace;
	font-size: 1rem;
	font-weight: 800;
	color: #0f172a;
	letter-spacing: 0.08em;
}

.admin_race_bet_metrics {
	font-size: var(--font-size-xs);
	font-weight: 700;
	color: #334155;
}

.admin_race_bet_profit--plus {
	color: #166534;
}

.admin_race_bet_profit--minus {
	color: #b91c1c;
}

@media (max-width: 720px) {
	.admin_race_bet_item {
		padding: 14px 14px;
	}

	.admin_race_bet_item::after {
		left: 14px;
		right: 14px;
	}

	.admin_race_bet_item_header,
	.admin_race_bet_selection_row,
	.admin_race_bet_metrics {
		align-items: flex-start;
		flex-direction: column;
	}
}

.race_page_actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 10px;
	margin-bottom: 14px;
}

.race_page_action_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 999px;
	background: #ffffff;
	color: #111111;
	text-decoration: none;
	font-weight: 700;
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}

.race_page_action_button--newsprint {
	background: #161310;
	color: #ffffff;
}

.race_info {
	display: flex;
	flex-direction: column;
	gap: 10px;
	border: 2px solid rgba(0, 0, 0, 0.55);
	padding: 16px;
	margin-bottom: 40px;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.race_info--turf {
	border-color: #1b5e20;
	box-shadow: 0 10px 24px rgba(27, 94, 32, 0.18);
}

.race_info--dirt {
	border-color: #4e342e;
	box-shadow: 0 10px 24px rgba(78, 52, 46, 0.18);
}

.race_info--jump {
	border-color: #8d6e00;
	box-shadow: 0 10px 24px rgba(141, 110, 0, 0.18);
}

.race_info_item {
	display: flex;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
	padding-bottom: 4px;
}

.race_info_label {
	min-width: 220px;
	max-width: 220px;
	margin-right: 1rem;
}

.race_info_text {
	width: 100%;
}

.race_weather_text {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.race_weather_summary {
	font-weight: 600;
}

.race_weather_details {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
}

.race_weather_detail_item {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.04);
	font-size: var(--font-size-xs);
	white-space: nowrap;
}

.race_weather_detail_label {
	font-weight: 700;
	color: #5f6368;
}

.race_weather_detail_value {
	font-weight: 700;
	color: #111111;
}

.jra_link {
	display: block;
	margin-top: 16px;
	margin-left: auto;
	border-bottom: 1px dashed var(--color-jra);
}

.same_day_race_links {
	margin: -22px 0 28px;
	padding: 10px 14px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	background: rgba(0, 0, 0, 0.025);
	font-size: var(--font-size-xs);
	line-height: 1.8;
}

.same_day_race_group + .same_day_race_group {
	margin-top: 4px;
}

.same_day_race_group--history {
	margin-bottom: 6px;
	padding-bottom: 6px;
	border-bottom: 1px dashed rgba(0, 0, 0, 0.14);
}

.same_day_race_group_label {
	font-weight: 700;
	margin-right: 8px;
}

.same_day_race_group_items {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0 6px;
}

.same_day_race_separator {
	color: rgba(0, 0, 0, 0.45);
}

.same_day_race_link {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}

.same_day_race_link:hover {
	border-bottom-color: rgba(0, 0, 0, 0.7);
}

.same_day_race_link--current {
	font-weight: 700;
	border-bottom: none;
}

.race_detail_fast_fallback_notice {
	margin: -8px 0 24px;
	padding: 12px 14px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	background: rgba(255, 248, 225, 0.8);
	color: #5f4b00;
	font-size: var(--font-size-sm);
	line-height: 1.7;
}

.race_detail_fast_fallback_notice p {
	margin: 0;
}

.track_bias_area {
	margin-bottom: 40px;
	padding: 16px 18px 18px;
	border: 2px solid rgba(0, 0, 0, 0.45);
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.track_bias_area--compact {
	margin-bottom: 24px;
	padding: 12px 14px 14px;
}

.track_bias_area--front-inner {
	border-color: #8b5a00;
}

.track_bias_area--outside-late {
	border-color: #1e5a86;
}

.track_bias_header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}

.track_bias_header--compact {
	margin-bottom: 10px;
	padding-bottom: 8px;
}

.track_bias_header h2 {
	margin: 0 0 6px;
	font-size: var(--font-size-xl);
	font-weight: bold;
}

.track_bias_header--compact h2 {
	margin-bottom: 0;
	font-size: var(--font-size-lg);
	line-height: 1.2;
}

.track_bias_summary {
	margin: 0;
	line-height: 1.6;
}

.track_bias_details {
	margin-top: 0;
}

.track_bias_details > summary {
	list-style: none;
	cursor: pointer;
}

.track_bias_details > summary::-webkit-details-marker {
	display: none;
}

.track_bias_details[open] > summary {
	margin-bottom: 10px;
}

.track_bias_details > summary.track_bias_header {
	margin-bottom: 0;
}

.track_bias_details_lead {
	margin: 0 0 10px;
	line-height: 1.55;
}

.track_bias_details_lead--subtle {
	color: #5f6368;
	font-size: var(--font-size-sm);
}

.track_bias_label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 96px;
	padding: 5px 11px;
	border-radius: 999px;
	background: #111111;
	color: #ffffff;
	font-weight: bold;
	white-space: nowrap;
}

.track_bias_detail_grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 10px;
	margin-top: 0;
}

.track_bias_detail_item {
	display: grid;
	grid-template-columns: 1fr max-content;
	gap: 3px 8px;
	padding: 9px 11px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 8px;
	background: rgba(0, 0, 0, 0.025);
}

.track_bias_detail_label {
	color: #5f6368;
	font-size: var(--font-size-xs);
	font-weight: bold;
}

.track_bias_detail_value,
.track_bias_detail_score {
	font-weight: bold;
}

.track_bias_detail_score {
	font-variant-numeric: tabular-nums;
}

.track_bias_detail_note {
	grid-column: 1 / -1;
	color: #666666;
	font-size: var(--font-size-xs);
	line-height: 1.4;
}

.track_bias_detail--front .track_bias_detail_score {
	color: #8b5a00;
}

.track_bias_detail--late .track_bias_detail_score {
	color: #1e5a86;
}

.track_bias_recommendations {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
}

.track_bias_recommendations_label {
	font-weight: bold;
}

.track_bias_recommendation {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(17, 17, 17, 0.06);
	font-size: var(--font-size-xs);
}

.track_bias_recommendation_number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	border-radius: 999px;
	background: #111111;
	color: #ffffff;
	font-weight: bold;
}

.track_bias_recommendation_name {
	font-weight: bold;
}

.track_bias_recommendation_reason {
	color: #5f6368;
}

.track_bias_recommendations--pedigree {
	margin-top: 12px;
	align-items: stretch;
}

.track_bias_recommendation--pedigree {
	display: grid;
	grid-template-columns: max-content max-content 1fr;
	gap: 4px 8px;
	align-items: center;
	padding: 8px 10px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.72);
}

.track_bias_recommendation_note {
	grid-column: 1 / -1;
	color: #6a4a3d;
	font-size: var(--font-size-m);
	line-height: 1.5;
}

.track_bias_recommendation_name_button {
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
}

.track_bias_recommendation_name_button:hover,
.track_bias_recommendation_name_button:focus-visible,
.track_bias_recommendation_name_button.is-active {
	color: #8a5a14;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.track_bias_recommendation_comment_details {
	grid-column: 1 / -1;
	display: grid;
	gap: 6px;
}

.track_bias_recommendation_comment_summary {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	padding: 6px 10px;
	box-sizing: border-box;
	border: 1px solid rgba(176, 124, 48, 0.22);
	border-radius: 999px;
	background: rgba(255, 249, 239, 0.92);
	color: #8a5a14;
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.track_bias_recommendation_comment_summary::-webkit-details-marker {
	display: none;
}

.track_bias_recommendation_comment_summary::after {
	content: "開く";
	margin-left: auto;
	font-size: 10px;
	color: #9c6a1d;
}

.track_bias_recommendation_comment_details[open]
	.track_bias_recommendation_comment_summary::after {
	content: "閉じる";
}

.track_bias_recommendation_comment_panel {
	padding: 0 2px;
}

.pedigree_recommendation_area {
	margin-bottom: 40px;
	padding: 16px 18px 18px;
	border: 2px solid rgba(176, 124, 48, 0.34);
	background: linear-gradient(
		180deg,
		rgba(255, 249, 239, 0.96),
		rgba(255, 255, 255, 0.98) 72%
	);
	box-shadow: 0 10px 24px rgba(176, 124, 48, 0.08);
}

.prediction_recommendation_bundle_area {
	margin-bottom: 40px;
	padding: 16px 18px 18px;
	border: 2px solid rgba(15, 23, 42, 0.14);
	border-radius: 18px;
	background: linear-gradient(
		180deg,
		rgba(248, 250, 252, 0.96),
		rgba(255, 255, 255, 0.98)
	);
	box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.prediction_recommendation_bundle_area
	> .prediction_recommendation_area--bundled,
.prediction_recommendation_bundle_area
	> .pedigree_recommendation_area--bundled {
	margin-bottom: 0;
}

.prediction_recommendation_bundle_area
	> .prediction_recommendation_area--bundled
	+ .prediction_recommendation_area--bundled,
.prediction_recommendation_bundle_area
	> .prediction_recommendation_area--bundled
	+ .pedigree_recommendation_area--bundled,
.prediction_recommendation_bundle_area
	> .pedigree_recommendation_area--bundled
	+ .prediction_recommendation_area--bundled,
.prediction_recommendation_bundle_area
	> .pedigree_recommendation_area--bundled
	+ .pedigree_recommendation_area--bundled {
	margin-top: 14px;
}

.pedigree_recommendation_area .prediction_recommendation_header {
	margin-bottom: 10px;
}

.pedigree_recommendation_area h2 {
	margin: 0;
	font-size: var(--font-size-xl);
	font-weight: bold;
}

.pedigree_recommendation_area h3 {
	font-size: var(--font-size-m);
}

.prediction_recommendation_header--bundle {
	margin-bottom: 14px;
}

.prediction_recommendation_header--bundle h2 {
	margin: 0;
	font-size: var(--font-size-xl);
	font-weight: 800;
}

.prediction_recommendation_header--subsection {
	margin-bottom: 10px;
}

.prediction_recommendation_header--subsection h3 {
	margin: 0;
}

.pedigree_recommendation_area .track_bias_recommendations--pedigree {
	margin-top: 0;
}

.pedigree_recommendation_comment_area {
	margin-top: 14px;
	padding: 12px 14px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(176, 124, 48, 0.18);
}

.pedigree_recommendation_comment_panel {
	display: grid;
	gap: 8px;
	padding-bottom: 0;
}

.pedigree_recommendation_comment_name {
	font-weight: 700;
	color: #4a2f1f;
}

.prediction_recommendation_area {
	margin-bottom: 40px;
	padding: 16px 18px 18px;
	border: 2px solid rgba(0, 0, 0, 0.45);
	background: linear-gradient(180deg, rgba(214, 230, 255, 0.28), #ffffff 68%);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.prediction_recommendation_snapshot_grid {
	display: grid;
	gap: 20px;
	margin-bottom: 36px;
}

.prediction_recommendation_snapshot_grid--single {
	grid-template-columns: minmax(0, 1fr);
}

.prediction_recommendation_snapshot_grid--split {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
}

.prediction_recommendation_area--snapshot {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin-bottom: 40px;
}

.prediction_recommendation_area--bundled {
	padding: 14px 16px 16px;
	border-radius: 16px;
}

.prediction_recommendation_header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}

.prediction_recommendation_header h2 {
	margin-bottom: 4px;
	font-size: var(--font-size-xl);
	font-weight: bold;
}

.prediction_recommendation_summary {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	color: #4a5560;
	font-size: var(--font-size-sm);
}

.prediction_recommendation_merged_list {
	display: grid;
	gap: 10px;
}

.prediction_recommendation_area--snapshot
	.prediction_recommendation_merged_list {
	flex: 1 1 auto;
}

.prediction_recommendations--maid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	align-items: stretch;
	gap: 12px;
	margin-top: 0;
}

.prediction_recommendation_area--paddock {
	padding: 14px 16px 16px;
	border-radius: 16px;
}

.prediction_recommendations--paddock {
	margin-top: 0;
}

.prediction_recommendation_merged_horse {
	padding: 12px 14px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.92);
}

.prediction_recommendation_maid_card {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	padding: 18px 16px 14px;
	border: 1px solid rgba(15, 23, 42, 0.14);
	border-radius: 12px;
	background: #ffffff;
	color: #1f2937;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.prediction_recommendation_maid_card[data-scroll-horse-number] {
	cursor: pointer;
}

.prediction_recommendation_maid_card[data-scroll-horse-number]:hover,
.prediction_recommendation_maid_card[data-scroll-horse-number]:focus-visible {
	border-color: rgba(15, 23, 42, 0.32);
	background: #ffffff;
	box-shadow:
		0 0 0 3px rgba(148, 163, 184, 0.18),
		0 4px 12px rgba(15, 23, 42, 0.08);
}

.prediction_recommendation_maid_card--paddock {
	padding-top: 12px;
}

.prediction_recommendation_result_badge_row {
	display: flex;
	min-width: 0;
	pointer-events: none;
}

.prediction_recommendation_merged_horse_main {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 0;
}

.prediction_recommendation_maid_card_main {
	display: grid;
	grid-template-columns: max-content max-content minmax(9em, 1fr) max-content;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.prediction_recommendation_rank_symbol {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 24px;
	border-radius: 999px;
	background: rgba(17, 17, 17, 0.08);
	color: #7c2d12;
	font-size: 13px;
	font-weight: 800;
	line-height: 1;
}

.prediction_recommendation_horse_number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	border-radius: 999px;
	background: #111111;
	color: #ffffff;
	font-weight: bold;
}

.prediction_recommendation_horse_name {
	min-width: 0;
	color: #111827 !important;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.prediction_recommendation_result_badge {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: var(--font-size-xs);
	font-weight: bold;
	line-height: 1.2;
	white-space: nowrap;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.prediction_recommendation_result_badge--hit {
	background: #0f766e;
	color: #ffffff;
}

.prediction_recommendation_result_badge--hit.prediction_recommendation_result_badge--winner {
	background: linear-gradient(180deg, #f59e0b 0%, #b45309 100%);
	color: #ffffff;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.28),
		0 3px 8px rgba(180, 83, 9, 0.22);
}

.prediction_recommendation_result_badge--hit.prediction_recommendation_result_badge--runner-up {
	background: linear-gradient(180deg, #38bdf8 0%, #0369a1 100%);
	color: #ffffff;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.26),
		0 3px 8px rgba(3, 105, 161, 0.18);
}

.prediction_recommendation_result_badge--hit.prediction_recommendation_result_badge--third {
	background: linear-gradient(180deg, #fb7185 0%, #be123c 100%);
	color: #ffffff;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.24),
		0 3px 8px rgba(190, 18, 60, 0.18);
}

.prediction_recommendation_result_badge--other {
	background: rgba(15, 23, 42, 0.12);
	color: #475569;
}

.prediction_recommendation_support_label {
	display: inline-flex;
	align-items: center;
	justify-self: end;
	padding: 4px 10px;
	border-radius: 999px;
	border: 1px solid rgba(148, 163, 184, 0.3);
	background: #f8fafc;
	color: #475569;
	font-size: var(--font-size-xs);
	font-weight: bold;
	white-space: nowrap;
}

.prediction_recommendation_maid_badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 9px;
	border-radius: 999px;
	background: rgba(124, 45, 18, 0.08);
	color: #7c2d12;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
}

.prediction_recommendation_support_meta {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	color: #4b5563;
	font-size: var(--font-size-xs);
	line-height: 1.5;
}

.prediction_recommendation_support_note {
	margin: 0;
	color: #6a4a3d;
	font-size: var(--font-size-xs);
	line-height: 1.6;
}

.prediction_recommendation_merged_horse--gold {
	border-color: rgba(217, 119, 6, 0.28);
	background: linear-gradient(180deg, rgba(255, 251, 235, 0.98), #ffffff 68%);
}

.prediction_recommendation_merged_horse--silver {
	border-color: rgba(148, 163, 184, 0.3);
	background: linear-gradient(180deg, rgba(248, 250, 252, 0.98), #ffffff 68%);
}

.prediction_recommendation_merged_horse--bronze {
	border-color: rgba(234, 88, 12, 0.24);
	background: linear-gradient(180deg, rgba(255, 247, 237, 0.98), #ffffff 68%);
}

.prediction_recommendation_merged_horse--gold
	.prediction_recommendation_rank_symbol {
	border: 1px solid rgba(180, 83, 9, 0.22);
	background: #fff1b8;
	color: #92400e;
}

.prediction_recommendation_merged_horse--silver
	.prediction_recommendation_rank_symbol {
	border: 1px solid rgba(71, 85, 105, 0.18);
	background: #e5e7eb;
	color: #334155;
}

.prediction_recommendation_merged_horse--bronze
	.prediction_recommendation_rank_symbol {
	border: 1px solid rgba(154, 52, 18, 0.18);
	background: #fed7aa;
	color: #7c2d12;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--default {
	border: 1px solid rgba(71, 85, 105, 0.18);
	background: linear-gradient(180deg, #7a818b 0%, #575d66 100%);
	color: #ffffff;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--kuri {
	border: 1px solid rgba(168, 95, 37, 0.26);
	background: linear-gradient(180deg, #dd9146 0%, #a85f25 100%);
	color: #fff7ed;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--tochi-kuri {
	border: 1px solid rgba(115, 61, 19, 0.28);
	background: linear-gradient(180deg, #aa6830 0%, #733d13 100%);
	color: #fff7ed;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--kage {
	border: 1px solid rgba(120, 68, 42, 0.24);
	background: linear-gradient(180deg, #a96a45 0%, #78442a 100%);
	color: #fff7ed;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--kuro-kage {
	border: 1px solid rgba(47, 33, 26, 0.3);
	background: linear-gradient(180deg, #735446 0%, #2f211a 100%);
	color: #fffaf5;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--aokage {
	border: 1px solid rgba(59, 74, 94, 0.28);
	background: linear-gradient(180deg, #68809a 0%, #3b4a5e 100%);
	color: #f8fafc;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--ao {
	border: 1px solid rgba(38, 44, 53, 0.28);
	background: linear-gradient(180deg, #4e5968 0%, #262c35 100%);
	color: #f8fafc;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--ashige {
	border: 1px solid rgba(170, 163, 149, 0.3);
	background: linear-gradient(180deg, #e4e0d7 0%, #aaa395 100%);
	color: #334155;
}

.prediction_recommendation_rank_symbol.horse_condition_mark--shiro {
	border: 1px solid rgba(92, 92, 92, 0.18);
	background: linear-gradient(180deg, #ffffff 0%, #e8e6df 100%);
	color: #475569;
}

.prediction_recommendation_maid_card--winner {
	border-color: rgba(217, 119, 6, 0.34);
	background: linear-gradient(180deg, rgba(255, 251, 235, 0.98), #ffffff);
	box-shadow:
		inset 4px 0 0 rgba(217, 119, 6, 0.72),
		0 1px 2px rgba(15, 23, 42, 0.04);
}

.prediction_recommendation_maid_card--runner-up {
	border-color: rgba(71, 85, 105, 0.28);
	background: linear-gradient(180deg, rgba(248, 250, 252, 0.98), #ffffff);
	box-shadow:
		inset 4px 0 0 rgba(100, 116, 139, 0.64),
		0 1px 2px rgba(15, 23, 42, 0.04);
}

.prediction_recommendation_maid_card--third {
	border-color: rgba(194, 65, 12, 0.28);
	background: linear-gradient(180deg, rgba(255, 247, 237, 0.98), #ffffff);
	box-shadow:
		inset 4px 0 0 rgba(194, 65, 12, 0.62),
		0 1px 2px rgba(15, 23, 42, 0.04);
}

.prediction_recommendation_version {
	margin: 12px 0 0;
	align-self: flex-end;
	color: rgba(17, 17, 17, 0.42);
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: 0.02em;
}

@media (max-width: 900px) {
	.prediction_recommendation_snapshot_grid--split {
		grid-template-columns: minmax(0, 1fr);
	}

	.prediction_recommendation_maid_card_main {
		grid-template-columns: max-content max-content minmax(0, 1fr);
	}

	.prediction_recommendation_support_label {
		grid-column: 2 / -1;
		justify-self: start;
	}
}

/* レース結果 */
.race_result {
	margin-bottom: 40px;
	padding: 16px 18px 18px;
	border: 2px solid rgba(0, 0, 0, 0.45);
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.race_result h2 {
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
	font-size: var(--font-size-xl);
	font-weight: bold;
}

.race_result_list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.race_result_list--floating {
	gap: 6px;
}

.race_result_details {
	margin-top: 12px;
}

.race_result_details--floating {
	margin-top: 4px;
}

.race_result_details > summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border: 1px solid rgba(0, 0, 0, 0.14);
	border-radius: 999px;
	background: rgba(17, 17, 17, 0.04);
	color: #4b5563;
	font-size: var(--font-size-xs);
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

.race_result_details > summary::-webkit-details-marker {
	display: none;
}

.race_result_details[open] > summary {
	margin-bottom: 10px;
}

.race_result_list--collapsed {
	margin-top: 0;
}

.race_result_list--floating-collapsed {
	margin-top: 8px;
}

.race_result_item {
	display: grid;
	grid-template-columns: 64px minmax(0, 1.6fr) repeat(4, max-content);
	align-items: center;
	gap: 8px 12px;
	padding: 12px 14px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 10px;
	background: #ffffff;
}

.race_result_item--floating {
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 6px 10px;
	padding: 9px 10px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: inset 0 0 0 1px rgba(140, 92, 26, 0.06);
}

.race_result_item--floating .race_result_horse {
	min-width: 0;
}

.race_result_item--place-1,
.race_result_item--winner {
	border-color: rgba(187, 137, 0, 0.55);
	background: linear-gradient(90deg, rgba(218, 175, 8, 0.18), #ffffff 52%);
	box-shadow: 0 10px 20px rgba(218, 175, 8, 0.18);
}

.race_result_item--place-1 .race_result_position,
.race_result_item--winner .race_result_position {
	color: #8b5a00;
}

.race_result_item--place-1 .race_result_horse_number,
.race_result_item--winner .race_result_horse_number {
	background: #f7d224;
	color: #6b4500;
}

.race_result_item--place-2 {
	border-color: rgba(120, 127, 140, 0.45);
	background: linear-gradient(90deg, rgba(176, 183, 194, 0.16), #ffffff 54%);
}

.race_result_item--place-2 .race_result_position {
	color: #5c6470;
}

.race_result_item--place-2 .race_result_horse_number {
	background: #dde3ea;
	color: #525c66;
}

.race_result_item--place-3 {
	border-color: rgba(179, 112, 54, 0.45);
	background: linear-gradient(90deg, rgba(217, 135, 75, 0.16), #ffffff 54%);
}

.race_result_item--place-3 .race_result_position {
	color: #9b5a22;
}

.race_result_item--place-3 .race_result_horse_number {
	background: #f3d2b8;
	color: #8f4d16;
}

.race_result_item--place-1,
.race_result_item--place-2,
.race_result_item--place-3,
.race_result_item--place-4,
.race_result_item--place-5 {
	border-left-width: 4px;
	padding-left: 10px;
}

.race_result_item--place-4,
.race_result_item--place-5 {
	background: linear-gradient(90deg, rgba(93, 99, 108, 0.06), #ffffff 56%);
	border-color: rgba(93, 99, 108, 0.18);
}

.race_result_position {
	font-weight: bold;
	color: #111111;
	white-space: nowrap;
}

.race_result_horse {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	font-weight: bold;
	color: #111111;
}

.race_result_horse_number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2em;
	padding: 1px 8px;
	border-radius: 999px;
	background: #eef1f5;
	color: #445;
	font-size: var(--font-size-xs);
	font-weight: bold;
	line-height: 1.4;
}

.race_result_jockey,
.race_result_time,
.race_result_margin,
.race_result_popularity {
	font-size: var(--font-size-s);
	line-height: 1.4;
	color: #444444;
	white-space: nowrap;
}

.race_result_jockey {
	font-weight: 600;
}

.race_result_time {
	font-variant-numeric: tabular-nums;
}

.race_result_margin {
	color: #5f6368;
}

.race_result_popularity {
	font-weight: bold;
	color: #8b5a00;
}

@media (max-width: 767px) {
	.race_result {
		padding: 14px 12px 16px;
	}

	.race_result_item {
		grid-template-columns: 56px minmax(0, 1fr);
		grid-auto-rows: auto;
	}

	.race_result_horse,
	.race_result_jockey,
	.race_result_time,
	.race_result_margin,
	.race_result_popularity {
		grid-column: 2;
	}

	.race_result_jockey,
	.race_result_time,
	.race_result_margin,
	.race_result_popularity {
		margin-left: 0;
	}
}

/* 馬柱 */
.race_horse_list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: max-content;
	min-width: 1080px;
	overflow: visible;
}

/* 馬ごとのハコ */
.race_horse {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
	padding: 12px 24px;
	position: relative;
	width: max-content;
	min-width: 100%;
	overflow: visible;
	background-color: #ffffff;
}

/* 馬ごとのメイン部分 */
.horse_main {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 0 0 1080px;
	min-width: 1080px;
	padding-right: 18px;
	padding-bottom: 28px;
	background-color: #ffffff;
}

.race_horse--has-highlights .horse_main {
	padding-left: 0;
	border-left: 0;
	border-radius: 0;
}

.horse_box {
	display: flex;
	flex-direction: row;
}

.horse_item_upper {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(150px, max-content);
	gap: 10px 18px;
	align-items: start;
	padding-bottom: 16px;
	border-bottom: 1px solid gray;
}

.horse_item_upper > .horse_box,
.horse_item_upper > .jockey_box,
.horse_item_upper > .horse_profile_meta,
.horse_item_upper > .weight_area,
.horse_item_upper > .ground_record_area {
	grid-column: 1;
}

.race_horse--jump-ready .horse_main {
	box-shadow: inset 0 0 0 1px rgba(11, 122, 83, 0.18);
}

.race_horse--jump-ready .horse_number {
	color: #0b7a53;
}

/* 馬番 */
.horse_number {
	display: block;
	min-width: 80px;
	max-width: 80px;
	margin-right: 1rem;
	font-size: var(--font-size-xxl);
	font-weight: bold;
	letter-spacing: -1px;
}

/* 枠番 */
.frame_number {
	margin-left: 1rem;
	font-size: var(--font-size-xs);
	letter-spacing: 2px;
}

.frame_number.frame-1 {
	background: #ffffff;
	color: #111111;
}

.frame_number.frame-2 {
	background: #111111;
	color: #ffffff;
}

.frame_number.frame-3 {
	background: #e53935;
	color: #ffffff;
}

.frame_number.frame-4 {
	background: #1565c0;
	color: #ffffff;
}

.frame_number.frame-5 {
	background: #fdd835;
	color: #111111;
}

.frame_number.frame-6 {
	background: #2e7d32;
	color: #ffffff;
}

.frame_number.frame-7 {
	background: #fb8c00;
	color: #111111;
}

.frame_number.frame-8 {
	background: #f48fb1;
	color: #111111;
}

.frame_number_text,
.frame_color_text {
	display: block;
	font-size: var(--font-size-xs);
}

/* 馬名 */
.horse_name_box {
	width: 100%;
}

.horse_name {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 8px;
	margin: auto 0;
	margin-bottom: 8px;
	width: max-content;
	max-width: 100%;
	font-size: var(--font-size-l);
	font-weight: bold;
	border-bottom: 1px dashed rgba(0, 0, 0, 0.15);
}

.horse_name span {
	font-weight: bold;
}

.horse_sex {
	color: #111;
}

.horse_sex_mark {
	display: inline-flex;
	align-items: center;
	min-height: 22px;
	padding: 2px 8px;
	border: 1px solid rgba(123, 127, 134, 0.2);
	border-radius: 999px;
	background: rgba(244, 245, 247, 0.9);
	font-size: var(--font-size-xs);
	font-weight: 700;
	line-height: 1.3;
}

.horse_birth_date {
	display: inline-flex;
	align-items: center;
	min-height: 22px;
	padding: 2px 8px;
	border: 1px solid rgba(123, 127, 134, 0.2);
	border-radius: 999px;
	background: rgba(244, 245, 247, 0.9);
	color: #5f6368;
	font-size: var(--font-size-xs);
	line-height: 1.3;
	white-space: nowrap;
	font-weight: 700;
}

.horse_identity_meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin-top: 4px;
	margin-bottom: 8px;
}

.horse_style_meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin-top: 0;
	font-size: var(--font-size-xs);
	line-height: 1.45;
}

.horse_weight_mark {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-left: 8px;
	color: #666;
	font-size: var(--font-size-xs);
	line-height: 1.3;
	white-space: nowrap;
	vertical-align: middle;
}

.horse_weight_mark--previous {
	color: #8b6b2f;
}

.horse_weight_mark--unknown {
	color: #888;
}

.horse_weight_grade {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.8em;
	padding: 1px 6px;
	border-radius: 999px;
	font-size: calc(var(--font-size-xs) * 0.95);
	font-weight: bold;
	line-height: 1.2;
	vertical-align: middle;
	background: #eef1f5;
	color: #445;
}

.horse_weight_grade--s {
	background: #0b7a53;
	color: #fff;
}

.horse_weight_grade--a {
	background: #1565c0;
	color: #fff;
}

.horse_weight_grade--b {
	background: #d77b00;
	color: #fff;
}

.horse_weight_grade--c {
	background: #b45309;
	color: #fff;
}

.horse_weight_grade--d {
	background: #a11d1d;
	color: #fff;
}

/* ジョッキー */
.jockey_box {
	display: flex;
	flex-direction: row;
	gap: 8px;
}

.jockey_weight_box {
	display: flex;
	flex-direction: row;
	gap: 4px;
}

.jockey_name {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: max-content;
	max-width: 100%;
	border-bottom: 1px dashed gray;
}

.jockey_leading_star {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
}

.jockey_history_box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
}

.weight_area {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid rgba(0, 0, 0, 0.12);
	font-size: var(--font-size-xs);
	line-height: 1.35;
}

.weight_area_item {
	display: inline-grid;
	grid-template-columns: max-content max-content;
	align-items: baseline;
	gap: 2px 6px;
	min-width: 118px;
	padding: 4px 8px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.74);
}

.weight_area_label {
	color: #5f6368;
	font-weight: bold;
	white-space: nowrap;
}

.weight_area_value {
	color: #111111;
	font-weight: bold;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.weight_area_note {
	grid-column: 1 / -1;
	color: #666666;
	font-size: var(--font-size-xxs);
	white-space: nowrap;
}

.ground_record_area {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid rgba(0, 0, 0, 0.12);
	width: 100%;
	box-sizing: border-box;
	align-self: stretch;
}

.ground_record_area_row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	width: 100%;
}

.ground_record_area_title {
	color: #6b6f76;
	font-size: var(--font-size-xxs);
	font-weight: 700;
	line-height: 1.35;
}

.ground_record_area_value {
	color: #111111;
	font-size: var(--font-size-xs);
	font-weight: 700;
	line-height: 1.5;
	word-break: break-word;
}

.ground_record_area_summary--zero {
	color: #8b949e;
}

.weight_compare--heavy {
	color: #0042ff;
}

.weight_compare--light {
	color: #d00000;
}

.weight_compare--standard {
	color: #111111;
}

/* 血統 */
.horse_pedigree_badge {
	display: inline-flex;
	align-items: center;
	margin-left: 10px;
	padding: 3px 9px;
	border-radius: 999px;
	font-size: var(--font-size-s);
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.04em;
	vertical-align: middle;
}

.horse_pedigree_badge.race_horse--pedigree-strong {
	background: #0b7a53;
	color: #ffffff;
}

.horse_pedigree_badge.race_horse--pedigree-good {
	background: #d77b00;
	color: #ffffff;
}

.horse_pedigree_badge.race_horse--pedigree-note {
	background: #1565c0;
	color: #ffffff;
}

.horse_pedigree_badge--strong {
	background: #0b7a53;
	color: #ffffff;
}

.horse_pedigree_badge--note {
	background: #1565c0;
	color: #ffffff;
}

.horse_pedigree_badge--caution {
	background: #d77b00;
	color: #ffffff;
}

.horse_pedigree_badge--disadvantage {
	background: #8f1d1d;
	color: #ffffff;
}

.horse_running_style_text {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	border: 1px solid rgba(21, 101, 192, 0.18);
	background: rgba(21, 101, 192, 0.08);
	color: #24425f;
	font-weight: 700;
	font-size: var(--font-size-xs);
	line-height: 1.45;
}

.horse_rotation {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.horse_rotation span {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	background: rgba(255, 255, 255, 0.76);
	color: #5a5a5a;
	font-size: var(--font-size-xs);
	font-weight: 600;
	line-height: 1.45;
}

.horse_rotation span.horse_style_chip--gear-first {
	border-color: rgba(183, 100, 0, 0.28);
	background: rgba(215, 123, 0, 0.14);
	color: #8a4f00;
}

.horse_rotation span.horse_style_chip--gear-repeat {
	border-color: rgba(11, 122, 83, 0.24);
	background: rgba(11, 122, 83, 0.12);
	color: #0d6a49;
}

.horse_rotation span.horse_style_chip--gear-change {
	border-color: rgba(21, 101, 192, 0.22);
	background: rgba(21, 101, 192, 0.1);
	color: #24507a;
}

.horse_badge_area {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
	align-self: start;
	min-width: 132px;
	max-width: 180px;
}

.horse_badge_area .horse_pedigree_badge,
.horse_badge_area .horse_prediction_badge,
.horse_badge_area .horse_popularity_badge {
	margin-left: 0;
	white-space: nowrap;
	padding: 4px 9px;
	font-size: var(--font-size-xs);
	line-height: 1.35;
	min-height: 28px;
	box-sizing: border-box;
}

.horse_badge_area .horse_pedigree_badge[data-badge-symbol="×"],
.horse_badge_area .horse_prediction_badge[data-badge-symbol="×"],
.live_popularity_slot[data-badge-symbol="×"] .horse_popularity_badge {
	background: linear-gradient(180deg, #6f1d1b 0%, #541211 100%);
	color: #ffffff;
	border-color: rgba(88, 21, 19, 0.5);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.horse_badge_area .horse_pedigree_badge[data-badge-symbol="△"],
.horse_badge_area .horse_prediction_badge[data-badge-symbol="△"],
.live_popularity_slot[data-badge-symbol="△"] .horse_popularity_badge {
	background: linear-gradient(180deg, #8b97a6 0%, #67717d 100%);
	color: #ffffff;
	border-color: rgba(87, 98, 109, 0.45);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

.horse_badge_area .horse_pedigree_badge[data-badge-symbol="▲"],
.horse_badge_area .horse_prediction_badge[data-badge-symbol="▲"],
.live_popularity_slot[data-badge-symbol="▲"] .horse_popularity_badge {
	background: linear-gradient(180deg, #d8911a 0%, #b56b00 100%);
	color: #ffffff;
	border-color: rgba(161, 98, 0, 0.45);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.horse_badge_area .horse_pedigree_badge[data-badge-symbol="◯"],
.horse_badge_area .horse_prediction_badge[data-badge-symbol="◯"],
.live_popularity_slot[data-badge-symbol="◯"] .horse_popularity_badge {
	background: linear-gradient(180deg, #2b7db4 0%, #1f5f95 100%);
	color: #ffffff;
	border-color: rgba(22, 76, 120, 0.45);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.horse_badge_area .horse_pedigree_badge[data-badge-symbol="◎"],
.horse_badge_area .horse_prediction_badge[data-badge-symbol="◎"],
.live_popularity_slot[data-badge-symbol="◎"] .horse_popularity_badge {
	background: linear-gradient(180deg, #17915b 0%, #0d7447 100%);
	color: #ffffff;
	border-color: rgba(10, 103, 64, 0.45);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.3),
		inset 0 -1px 0 rgba(0, 0, 0, 0.08),
		0 5px 10px rgba(0, 0, 0, 0.1);
}

.horse_badge_area .horse_pedigree_badge[data-badge-symbol="◉"],
.horse_badge_area .horse_prediction_badge[data-badge-symbol="◉"],
.live_popularity_slot[data-badge-symbol="◉"] .horse_popularity_badge {
	background: linear-gradient(180deg, #0c7669 0%, #07564c 100%);
	color: #ffffff;
	border-color: rgba(7, 86, 76, 0.48);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.34),
		inset 0 -1px 0 rgba(0, 0, 0, 0.08),
		0 5px 10px rgba(0, 0, 0, 0.12);
}

.weight_area--profile {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 6px;
}

.weight_area_item--profile {
	min-width: 170px;
}

.weight_area_item--profile .weight_area_label,
.weight_area_item--profile .weight_area_value,
.weight_area_item--profile .weight_area_note {
	overflow-wrap: anywhere;
}

.weight_area_item--leading {
	background: rgba(245, 197, 66, 0.12);
	border-color: rgba(212, 161, 0, 0.22);
}

.weight_area_item--profile.horse_profile_meta_item--accent .weight_area_value {
	color: #0b7a53;
}

.weight_area_item--profile.horse_profile_meta_item--note .weight_area_value {
	color: #1565c0;
}

.weight_area_item--profile.horse_profile_meta_item--caution .weight_area_value {
	color: #b56400;
}

.weight_area_item--profile.horse_profile_meta_item--jump {
	background: linear-gradient(135deg, #0b7a53 0%, #156c8d 100%);
	border-color: rgba(11, 122, 83, 0.2);
}

.weight_area_item--profile.horse_profile_meta_item--jump .weight_area_label,
.weight_area_item--profile.horse_profile_meta_item--jump .weight_area_value,
.weight_area_item--profile.horse_profile_meta_item--jump .weight_area_note {
	color: #ffffff;
	font-weight: 700;
}

.weight_area_note--leading_star {
	color: #b88400;
	font-weight: 700;
}

.horse_profile_meta_item--accent {
	background: rgba(11, 122, 83, 0.08);
	border-color: rgba(11, 122, 83, 0.18);
}

.horse_profile_meta_item--note {
	background: rgba(21, 101, 192, 0.08);
	border-color: rgba(21, 101, 192, 0.18);
}

.horse_profile_meta_item--caution {
	background: rgba(215, 123, 0, 0.1);
	border-color: rgba(215, 123, 0, 0.18);
}

.horse_profile_meta_item--jump {
	background: linear-gradient(135deg, #0b7a53 0%, #156c8d 100%);
	border-color: rgba(11, 122, 83, 0.2);
}

.horse_profile_subsection {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 6px;
	padding: 10px 12px;
	border: 1px solid rgba(11, 122, 83, 0.16);
	border-radius: 12px;
	background: linear-gradient(
		180deg,
		rgba(11, 122, 83, 0.06),
		rgba(255, 255, 255, 0.96)
	);
}

.horse_profile_subsection--bloodline {
	width: 100%;
	box-sizing: border-box;
}

.horse_profile_subsection_label {
	color: #0b5d43;
	font-size: var(--font-size-xxs);
	font-weight: 700;
	letter-spacing: 0.03em;
}

.horse_profile_subsection_value {
	color: #1f2937;
	font-size: var(--font-size-xs);
	font-weight: 700;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.horse_profile_meta_label {
	color: #8a8a8a;
}

.horse_profile_meta_value {
	color: #5a5a5a;
}

.horse_profile_meta_item--jump .horse_profile_meta_label,
.horse_profile_meta_item--jump .horse_profile_meta_value {
	color: #ffffff;
	font-weight: 700;
}

.horse_profile_meta_leading_star {
	color: #d6a100;
	font-size: 12px;
	line-height: 1;
}

.horse_profile_meta_badge {
	color: #8a6300;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

.live_placeholder_label {
	font-weight: 700;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.live_placeholder_shell {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 24px;
	padding: 4px 8px;
	border: 1px dashed rgba(109, 124, 145, 0.36);
	border-radius: 999px;
	background: linear-gradient(
		90deg,
		rgba(244, 247, 251, 0.92) 0%,
		rgba(232, 238, 246, 0.98) 48%,
		rgba(244, 247, 251, 0.92) 100%
	);
	background-size: 200% 100%;
	color: #6b7482;
	font-size: 11px;
	line-height: 1;
	overflow: hidden;
	animation: live-placeholder-wave 1.8s ease-in-out infinite;
}

.live_placeholder_bar {
	display: inline-block;
	width: 32px;
	height: 8px;
	border-radius: 999px;
	background: rgba(149, 163, 184, 0.46);
}

.live_placeholder_shell--odds {
	width: 96px;
}

.live_placeholder_shell--odds .live_placeholder_bar {
	width: 40px;
}

.live_placeholder_shell--popularity {
	width: 64px;
}

.live_placeholder_shell--popularity .live_placeholder_bar {
	width: 28px;
}

@keyframes live-placeholder-wave {
	0% {
		background-position: 100% 50%;
		opacity: 0.72;
		transform: translateY(0);
	}

	50% {
		background-position: 0% 50%;
		opacity: 1;
		transform: translateY(-1px);
	}

	100% {
		background-position: 100% 50%;
		opacity: 0.72;
		transform: translateY(0);
	}
}

.horse_leading_badge {
	background: linear-gradient(180deg, #fff0a6 0%, #f4c93b 100%);
	color: #6a4b00;
	border: 1px solid rgba(202, 150, 0, 0.3);
	box-shadow: 0 4px 10px rgba(188, 145, 0, 0.14);
}

.horse_odds_happening_badge {
	background: linear-gradient(180deg, #fff2d9 0%, #f1c36f 100%);
	color: #8a3e2d;
	border: 1px solid rgba(198, 90, 56, 0.24);
	box-shadow: 0 4px 10px rgba(198, 90, 56, 0.1);
}

.race_odds_happening {
	margin-bottom: 32px;
	padding: 14px 16px 16px;
	border: 1px solid rgba(198, 90, 56, 0.18);
	border-radius: 14px;
	background: linear-gradient(
		180deg,
		rgba(255, 248, 239, 0.96) 0%,
		rgba(255, 253, 249, 0.98) 100%
	);
	box-shadow: 0 8px 20px rgba(198, 90, 56, 0.06);
}

.race_odds_happening h2 {
	margin: 0 0 10px;
	font-size: var(--font-size-l);
}

.race_odds_happening_list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.race_odds_happening_item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	padding: 8px 10px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.76);
}

.race_odds_happening_horse {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 700;
}

.race_odds_happening_horse_number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 30px;
	padding: 0 8px;
	border-radius: 999px;
	background: linear-gradient(
		180deg,
		rgba(198, 90, 56, 0.22) 0%,
		rgba(241, 195, 111, 0.34) 100%
	);
	color: #7b2f24;
	font-size: var(--font-size-s);
	font-weight: 800;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.race_odds_happening_change,
.race_odds_happening_time {
	color: #6a4a3d;
	font-size: var(--font-size-xs);
}

.race_odds_happening_odds {
	font-weight: 700;
}

.race_odds_happening_odds--single-digit {
	color: #c81e1e;
}

.horse_past_races {
	display: inline-flex;
	flex: 0 0 auto;
	gap: 12px;
	margin-left: 18px;
	padding-bottom: 4px;
	overflow: visible;
}

.horse_past_race_card {
	display: flex;
	flex: 0 0 280px;
	flex-direction: column;
	gap: 6px;
	padding: 12px 14px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 10px;
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.96) 0%,
		rgba(247, 247, 247, 0.96) 100%
	);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
	max-width: none;
	padding-bottom: 12px;
	overflow: visible;
	color: inherit;
	text-decoration: none;
	transition:
		transform 0.16s ease,
		box-shadow 0.16s ease;
}

.horse_past_race_card:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
}

.horse_past_race_header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: var(--font-size-xs);
	font-weight: 700;
}

.horse_past_race_date {
	color: #2c3e50;
	white-space: nowrap;
}

.horse_past_race_location {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(32, 58, 96, 0.1);
	color: #1d3d6b;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.horse_past_race_name {
	color: #111111;
	font-size: var(--font-size-s);
	font-weight: 700;
	line-height: 1.4;
}

.horse_past_race_meta,
.horse_past_race_stats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.horse_past_race_meta_item,
.horse_past_race_stat_item {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(17, 17, 17, 0.05);
	color: #444444;
	font-size: var(--font-size-xs);
	line-height: 1.45;
}

.horse_past_race_finish {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 3.4em;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: var(--font-size-xs);
	font-weight: 700;
	line-height: 1.45;
	background: rgba(17, 17, 17, 0.08);
	color: #333333;
}

.horse_past_race_lap {
	color: #555555;
	font-size: var(--font-size-xs);
	line-height: 1.55;
	white-space: normal;
	word-break: break-word;
}

.horse_past_disadvantage {
	display: block;
	gap: 8px;
	margin-top: 14px;
	padding: 12px 14px;
	width: 100%;
	box-sizing: border-box;
	align-self: stretch;
	border: 1px solid rgba(170, 32, 32, 0.12);
	border-radius: 12px;
	background: linear-gradient(
		180deg,
		rgba(170, 32, 32, 0.08),
		rgba(255, 248, 246, 0.96)
	);
}

.horse_past_disadvantage_summary {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 6px;
	cursor: pointer;
	list-style: none;
}

.horse_past_disadvantage_summary::-webkit-details-marker {
	display: none;
}

.horse_past_disadvantage_summary::after {
	content: "開く";
	color: #8f1f1f;
	font-size: 11px;
	font-weight: 700;
	margin-left: 2px;
}

.horse_past_disadvantage[open] .horse_past_disadvantage_summary::after {
	content: "閉じる";
}

.horse_past_disadvantage_title {
	margin: 0;
	color: #8f1f1f;
	font-size: var(--font-size-xs);
	font-weight: 800;
	letter-spacing: 0.04em;
}

.horse_past_disadvantage_count {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(143, 31, 31, 0.08);
	color: #8f1f1f;
	font-size: 11px;
	font-weight: 700;
}

.horse_past_disadvantage_list {
	display: grid;
	gap: 8px;
	margin-top: 10px;
}

.horse_past_disadvantage_item {
	display: grid;
	gap: 4px;
	padding-top: 8px;
	border-top: 1px solid rgba(170, 32, 32, 0.12);
}

.horse_past_disadvantage_item:first-child {
	padding-top: 0;
	border-top: 0;
}

.horse_past_disadvantage_meta {
	color: #7a4b2a;
	font-size: 11px;
	font-weight: 700;
	text-decoration: none;
}

a.horse_past_disadvantage_meta:hover {
	text-decoration: underline;
}

.horse_past_disadvantage_note {
	color: #4f2323;
	font-size: var(--font-size-xs);
	line-height: 1.6;
}

.horse_past_race_card--finish-1 .horse_past_race_finish {
	background: linear-gradient(180deg, #ffe88b 0%, #f3c700 100%);
	color: #5f4100;
}

.horse_past_race_card--finish-1 {
	border-color: rgba(201, 154, 0, 0.35);
	background: linear-gradient(
		180deg,
		rgba(255, 244, 183, 0.98) 0%,
		rgba(255, 234, 148, 0.92) 100%
	);
}

.horse_past_race_card--finish-2 .horse_past_race_finish {
	background: linear-gradient(180deg, #f8fbff 0%, #d8e1eb 52%, #bcc8d5 100%);
	color: #33414f;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.horse_past_race_card--finish-2 {
	border-color: rgba(132, 145, 161, 0.42);
	background: linear-gradient(
		180deg,
		rgba(247, 250, 253, 0.99) 0%,
		rgba(228, 235, 242, 0.96) 54%,
		rgba(214, 223, 232, 0.92) 100%
	);
	box-shadow: 0 8px 20px rgba(117, 128, 143, 0.12);
}

.horse_past_race_card--finish-3 .horse_past_race_finish {
	background: linear-gradient(180deg, #f5d1b2 0%, #dda46b 100%);
	color: #6a3510;
}

.horse_past_race_card--finish-3 {
	border-color: rgba(181, 118, 66, 0.3);
	background: linear-gradient(
		180deg,
		rgba(251, 228, 205, 0.98) 0%,
		rgba(238, 197, 157, 0.92) 100%
	);
}

.horse_past_race_card--finish-4 .horse_past_race_finish {
	background: rgba(90, 126, 180, 0.1);
	color: #4d6a90;
}

.horse_past_race_card--finish-4 {
	border-color: rgba(90, 126, 180, 0.16);
	background: linear-gradient(
		180deg,
		rgba(243, 247, 252, 0.96) 0%,
		rgba(233, 240, 248, 0.9) 100%
	);
}

.horse_past_race_card--finish-5 .horse_past_race_finish {
	background: rgba(120, 128, 140, 0.14);
	color: #4f5661;
}

.horse_past_race_card--finish-5 {
	border-color: rgba(120, 128, 140, 0.22);
	background: linear-gradient(
		180deg,
		rgba(245, 246, 248, 0.96) 0%,
		rgba(232, 235, 239, 0.9) 100%
	);
}

.horse_past_race_card--finish-excluded .horse_past_race_finish,
.horse_past_race_card--finish-cancelled .horse_past_race_finish {
	background: linear-gradient(180deg, #6b7280 0%, #4b5563 100%);
	color: #ffffff;
}

.horse_past_race_card--finish-excluded,
.horse_past_race_card--finish-cancelled {
	border-color: rgba(75, 85, 99, 0.42);
	background: linear-gradient(
		180deg,
		rgba(224, 226, 230, 0.98) 0%,
		rgba(187, 192, 200, 0.94) 100%
	);
}

.horse_bias_badge--front {
	background: #8b5a00;
	color: #ffffff;
}

.horse_bias_badge--late {
	background: #1e5a86;
	color: #ffffff;
}

.horse_bias_badge--pace {
	background: #0b6b59;
	color: #ffffff;
}

.horse_bias_badge--bad {
	background: #8f1d1d;
	color: #ffffff;
}

.horse_prediction_badge--hit {
	background: #b83a3a;
	color: #ffffff;
}

.horse_prediction_badge--place {
	background: #d77b00;
	color: #ffffff;
}

.horse_prediction_badge--ev {
	background: #2358a5;
	color: #ffffff;
}

.horse_prediction_badge--anauma {
	background: #6c3aa8;
	color: #ffffff;
}

.horse_prediction_badge--wide {
	background: #0b6b59;
	color: #ffffff;
}

.horse_prediction_badge--handicap {
	background: #9a4b17;
	color: #ffffff;
}

.horse_prediction_badge--newcomer {
	background: #11724b;
	color: #ffffff;
}

.horse_prediction_badge--two-year-old {
	background: #4f4ab2;
	color: #ffffff;
}

.horse_prediction_badge--jump {
	background: #4b5563;
	color: #ffffff;
}

.horse_prediction_badge--vanish {
	background: #5c1717;
	color: #ffffff;
	font-size: var(--font-size-xxs);
	padding-inline: 6px;
}

.horse_prediction_badge--result {
	padding-inline: 8px;
	letter-spacing: 0.02em;
}

.horse_prediction_badge--result-vanish {
	background: #7f1d1d;
	color: #ffffff;
}

.horse_popularity_badge {
	display: inline-flex;
	align-items: center;
	margin-left: 10px;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: var(--font-size-xs);
	font-weight: bold;
	line-height: 1.4;
	letter-spacing: 0.04em;
	vertical-align: middle;
	border: 1px solid transparent;
}

.horse_popularity_badge--1 {
	background: linear-gradient(180deg, #ffe88b 0%, #f3c700 100%);
	color: #5f4100;
	box-shadow: 0 6px 14px rgba(189, 143, 0, 0.22);
}

.horse_popularity_badge--2 {
	background: linear-gradient(180deg, #edf1f5 0%, #d5dde6 100%);
	color: #414d59;
	box-shadow: 0 4px 10px rgba(93, 103, 117, 0.14);
}

.horse_popularity_badge--3 {
	background: linear-gradient(180deg, #f5d1b2 0%, #dda46b 100%);
	color: #6a3510;
	box-shadow: 0 4px 10px rgba(167, 100, 45, 0.14);
}

.horse_popularity_badge--4 {
	background: rgba(90, 126, 180, 0.16);
	color: #365781;
	border-color: rgba(90, 126, 180, 0.24);
}

.horse_popularity_badge--5 {
	background: rgba(120, 128, 140, 0.14);
	color: #4f5661;
	border-color: rgba(120, 128, 140, 0.2);
	opacity: 0.92;
}

.horse_condition_mark {
	position: relative;
	display: inline-block;
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin-right: 8px;
	border: 1px solid rgba(32, 24, 18, 0.22);
	border-radius: 50%;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.38),
		inset 0 -1px 0 rgba(0, 0, 0, 0.12),
		0 3px 7px rgba(0, 0, 0, 0.16);
	font-size: 0;
	line-height: 0;
	color: transparent;
	overflow: hidden;
	vertical-align: middle;
	cursor: help;
	transform: translateY(0);
	transition:
		transform 160ms ease,
		box-shadow 160ms ease,
		filter 160ms ease;
}

.horse_condition_mark::before {
	content: "";
	position: absolute;
	inset: 2px 3px auto;
	height: 5px;
	border-radius: 999px;
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.72) 0%,
		rgba(255, 255, 255, 0.14) 100%
	);
	opacity: 0.92;
	pointer-events: none;
}

.horse_condition_mark::after {
	content: attr(data-coat-label);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translate(-50%, 4px);
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(17, 17, 17, 0.92);
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
	transition:
		opacity 140ms ease,
		transform 140ms ease;
	z-index: 3;
}

.horse_condition_mark:hover,
.horse_condition_mark:focus-visible,
.horse_condition_mark:active {
	transform: translateY(-1px) scale(1.08);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.44),
		inset 0 -1px 0 rgba(0, 0, 0, 0.12),
		0 5px 12px rgba(0, 0, 0, 0.18);
	filter: saturate(1.08);
}

.horse_condition_mark:hover::after,
.horse_condition_mark:focus-visible::after,
.horse_condition_mark:active::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

.horse_condition_mark:focus-visible {
	outline: 2px solid rgba(21, 101, 192, 0.34);
	outline-offset: 2px;
}

.horse_condition_mark--default {
	background: linear-gradient(180deg, #7a818b 0%, #575d66 100%);
}

.horse_condition_mark--kuri {
	background: linear-gradient(180deg, #dd9146 0%, #a85f25 100%);
}

.horse_condition_mark--tochi-kuri {
	background: linear-gradient(180deg, #aa6830 0%, #733d13 100%);
}

.horse_condition_mark--kage {
	background: linear-gradient(180deg, #a96a45 0%, #78442a 100%);
}

.horse_condition_mark--kuro-kage {
	background: linear-gradient(180deg, #735446 0%, #2f211a 100%);
}

.horse_condition_mark--aokage {
	background: linear-gradient(180deg, #68809a 0%, #3b4a5e 100%);
}

.horse_condition_mark--ao {
	background: linear-gradient(180deg, #4e5968 0%, #262c35 100%);
}

.horse_condition_mark--ashige {
	background: linear-gradient(180deg, #e4e0d7 0%, #aaa395 100%);
}

.horse_condition_mark--shiro {
	background: linear-gradient(180deg, #ffffff 0%, #e8e6df 100%);
	border-color: rgba(92, 92, 92, 0.18);
}

.horse_sex_mark.race_horse--sex-female {
	color: #d00000 !important;
}

.horse_sex_mark.race_horse--sex-male {
	color: #0042ff !important;
}

.horse_sex_mark.race_horse--sex-neutral {
	color: #111 !important;
}

.horse_odds_box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-top: 8px;
	min-width: 96px;
	min-height: 28px;
	font-size: var(--font-size-s);
	line-height: 1.4;
}

.horse_odds_box--loading {
	flex-wrap: nowrap;
}

.horse_odds_box--ready {
	min-width: 0;
}

.horse_odds_item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 2px 0;
}

.horse_odds_separator {
	display: inline-flex;
	align-items: center;
	color: #666666;
	font-weight: 700;
	line-height: 1;
}

.horse_odds_label {
	font-weight: bold;
	color: #444;
}

.horse_odds_value {
	font-weight: bold;
	color: #111;
}

.horse_odds_popularity {
	color: #546273;
	font-size: var(--font-size-xs);
	font-weight: 600;
}

.horse_odds_value--single_digit {
	color: #b40000;
}

.live_popularity_slot {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	width: 100%;
	min-width: 0;
	min-height: 24px;
}

.live_popularity_slot--ready {
	min-width: 0;
}

/* 血統 */
.horse_bloodline_section {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin-top: 10px;
	width: 100%;
}

.horse_bloodline_details {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
}

.horse_bloodline_toggle {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	align-self: stretch;
	width: 100%;
	min-height: 32px;
	padding: 8px 14px;
	box-sizing: border-box;
	border: 1px solid rgba(11, 122, 83, 0.18);
	border-radius: 999px;
	background: linear-gradient(
		180deg,
		rgba(11, 122, 83, 0.12),
		rgba(255, 255, 255, 0.96)
	);
	box-shadow: 0 6px 14px rgba(11, 122, 83, 0.12);
	color: #0b5d43;
	font-size: var(--font-size-xs);
	font-weight: 700;
	letter-spacing: 0.02em;
	list-style: none;
	cursor: pointer;
	user-select: none;
}

.horse_bloodline_toggle::-webkit-details-marker {
	display: none;
}

.horse_bloodline_details[open] > .horse_bloodline_toggle {
	margin-bottom: 8px;
}

.horse_bloodline_panel {
	width: min(100%, 380px);
	padding: 10px 12px;
	border: 1px solid rgba(11, 122, 83, 0.14);
	border-radius: 14px;
	background: linear-gradient(
		180deg,
		rgba(244, 252, 249, 0.98),
		rgba(255, 255, 255, 0.98)
	);
	box-shadow: 0 10px 24px rgba(11, 122, 83, 0.08);
}

.horse_bloodline_panel .horse_analysis_text {
	margin-top: 0;
	font-size: var(--font-size-xs);
	line-height: 1.55;
	color: #444444;
}

.bloodline_point {
	margin: 0 0 6px;
	color: #0b5d43;
	font-size: var(--font-size-xs);
	font-weight: 700;
}

.horse_bloodline {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 4px;
	margin-top: 8px;
	max-width: 100%;
	font-size: var(--font-size-xxs);
	color: #797979;
	line-height: 1.2;
	position: static;
}

.horse_bloodline--preview {
	margin-top: 0;
}

@media (max-width: 760px) {
	.horse_item_upper {
		grid-template-columns: 1fr;
	}

	.horse_badge_area {
		grid-column: 1;
		grid-row: auto;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-start;
		align-items: center;
		min-width: 0;
	}
}

@media (max-width: 767px) {
	html,
	body {
		overflow-x: hidden;
	}

	article {
		width: calc(100% - 16px);
	}

	.race_floating_panels {
		left: 8px;
		right: 8px;
		bottom: 8px;
		width: auto;
	}

	.race_floating_summary,
	.race_floating_odds_happening,
	.race_floating_results {
		padding: 9px 10px;
		gap: 5px;
		font-size: var(--font-size-xxs);
	}

	.race_floating_results[open] {
		width: auto;
	}

	.race_floating_summary_item {
		grid-template-columns: 46px minmax(0, 1fr);
		gap: 6px;
	}

	.race_floating_odds_happening_item {
		padding: 6px 7px;
	}

	.race_floating_odds_happening_header,
	.race_floating_odds_happening_item {
		align-items: flex-start;
	}

	.race_floating_results_preview_item {
		grid-template-columns: 38px minmax(0, 1fr);
	}

	.race_info {
		padding: 14px 12px;
		margin-bottom: 28px;
	}

	.race_info_item {
		flex-direction: column;
		gap: 4px;
	}

	.race_info_label {
		min-width: 0;
		max-width: none;
		margin-right: 0;
		font-size: var(--font-size-s);
		font-weight: bold;
	}

	.track_bias_area {
		padding: 14px 12px 16px;
	}

	.track_bias_header {
		flex-direction: column;
		align-items: stretch;
	}

	.track_bias_label {
		align-self: flex-start;
	}

	.track_bias_detail_grid {
		grid-template-columns: 1fr;
	}

	.track_bias_recommendation {
		width: 100%;
		flex-wrap: wrap;
	}

	.race_result {
		padding: 14px 12px 16px;
	}

	.race_result_item {
		grid-template-columns: 56px minmax(0, 1fr);
		grid-auto-rows: auto;
	}

	.race_result_horse,
	.race_result_jockey,
	.race_result_time,
	.race_result_margin,
	.race_result_popularity {
		grid-column: 2;
	}

	.race_result_jockey,
	.race_result_time,
	.race_result_margin,
	.race_result_popularity {
		margin-left: 0;
	}

	.race_horse_list {
		align-items: stretch;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.race_horse {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		flex-direction: column;
		padding: 16px 12px;
		overflow-x: hidden;
	}

	.horse_main {
		box-sizing: border-box;
		flex: 1 1 auto;
		min-width: 0;
		width: 100%;
		max-width: 100%;
		padding-right: 0;
		padding-bottom: 20px;
		overflow-x: hidden;
	}

	.horse_box {
		flex-direction: column;
	}

	.horse_name,
	.jockey_name,
	.horse_identity_meta,
	.horse_style_meta,
	.horse_profile_meta,
	.jockey_history_box,
	.horse_analysis_text,
	.horse_bloodline_panel,
	.horse_bloodline {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.horse_weight_mark,
	.weight_area_item--profile,
	.horse_badge_area .horse_pedigree_badge,
	.horse_badge_area .horse_prediction_badge,
	.horse_badge_area .horse_popularity_badge,
	.weight_area_label,
	.weight_area_value,
	.weight_area_note {
		white-space: normal;
	}

	.jockey_box,
	.jockey_weight_box {
		flex-wrap: wrap;
		min-width: 0;
	}

	.weight_area--profile {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 4px;
	}

	.horse_identity_meta,
	.horse_style_meta {
		justify-content: flex-start;
	}

	.weight_area_item--profile {
		display: flex;
		flex-wrap: wrap;
		max-width: 100%;
		min-width: 0;
	}

	.weight_area_item--profile .weight_area_label,
	.weight_area_item--profile .weight_area_value,
	.weight_area_item--profile .weight_area_note {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	.horse_bloodline_details {
		align-items: stretch;
	}

	.horse_bloodline_toggle {
		align-self: flex-start;
	}

	.horse_bloodline_panel {
		width: 100%;
	}

	.horse_item_upper {
		grid-template-columns: 1fr;
	}

	.horse_badge_area {
		width: 100%;
		grid-column: 1;
		grid-row: auto;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-start;
		align-items: flex-start;
		min-width: 0;
	}

	.weight_area_item {
		box-sizing: border-box;
		flex: 1 1 calc(50% - 4px);
		min-width: calc(50% - 4px);
	}

	.horse_bloodline {
		position: static;
		margin-top: 8px;
		overflow-wrap: anywhere;
	}

	.horse_past_races {
		box-sizing: border-box;
		display: flex;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		margin-left: 0;
		padding-bottom: 8px;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		touch-action: pan-x;
	}

	.horse_past_race_card {
		flex: 0 0 min(280px, calc(100vw - 40px));
	}
}

@media (max-width: 767px) {
	/* race/detail は馬柱の情報量を優先し、モバイルでも PC レイアウトを維持する */
	html,
	body {
		overflow-x: auto;
	}

	article.race_detail_page--desktop-on-mobile {
		width: 1080px;
		max-width: none;
		min-width: 1080px;
	}

	.race_detail_page--desktop-on-mobile .race_detail_container {
		width: 100%;
		min-width: 1080px;
	}

	.race_detail_page--desktop-on-mobile .race_floating_panels {
		left: 14px;
		right: auto;
		bottom: 14px;
		width: min(300px, calc(100vw - 28px));
	}

	.race_detail_page--desktop-on-mobile .race_floating_summary,
	.race_detail_page--desktop-on-mobile .race_floating_odds_happening,
	.race_detail_page--desktop-on-mobile .race_floating_results {
		padding: 10px 12px;
		gap: 6px;
		font-size: var(--font-size-xs);
	}

	.race_detail_page--desktop-on-mobile .race_floating_results[open] {
		width: min(520px, calc(100vw - 28px));
	}

	.race_detail_page--desktop-on-mobile .race_floating_summary_item {
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 8px;
	}

	.race_detail_page--desktop-on-mobile .race_floating_odds_happening_item {
		padding: 8px 9px;
	}

	.race_detail_page--desktop-on-mobile .race_floating_odds_happening_header,
	.race_detail_page--desktop-on-mobile .race_floating_odds_happening_item {
		align-items: center;
	}

	.race_detail_page--desktop-on-mobile .race_floating_results_preview_item {
		grid-template-columns: 42px minmax(0, 1fr);
	}

	.race_detail_page--desktop-on-mobile .race_info {
		padding: 16px;
		margin-bottom: 40px;
	}

	.race_detail_page--desktop-on-mobile .race_info_item {
		flex-direction: row;
		gap: 0;
	}

	.race_detail_page--desktop-on-mobile .race_info_label {
		min-width: 220px;
		max-width: 220px;
		margin-right: 1rem;
		font-size: inherit;
		font-weight: inherit;
	}

	.race_detail_page--desktop-on-mobile .track_bias_area,
	.race_detail_page--desktop-on-mobile .prediction_recommendation_area,
	.race_detail_page--desktop-on-mobile .pedigree_recommendation_area {
		padding: 16px 18px 18px;
	}

	.race_detail_page--desktop-on-mobile .track_bias_header {
		flex-direction: row;
		align-items: flex-start;
	}

	.race_detail_page--desktop-on-mobile .track_bias_label {
		align-self: auto;
	}

	.race_detail_page--desktop-on-mobile .track_bias_detail_grid {
		grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	}

	.race_detail_page--desktop-on-mobile .track_bias_recommendation {
		width: auto;
		flex-wrap: nowrap;
	}

	.race_detail_page--desktop-on-mobile
		.prediction_recommendation_snapshot_grid--split {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.race_detail_page--desktop-on-mobile .race_result {
		padding: 16px 18px 18px;
	}

	.race_detail_page--desktop-on-mobile .race_result_item {
		grid-template-columns: 64px minmax(0, 1.6fr) repeat(4, max-content);
		grid-auto-rows: initial;
	}

	.race_detail_page--desktop-on-mobile .race_result_horse,
	.race_detail_page--desktop-on-mobile .race_result_jockey,
	.race_detail_page--desktop-on-mobile .race_result_time,
	.race_detail_page--desktop-on-mobile .race_result_margin,
	.race_detail_page--desktop-on-mobile .race_result_popularity {
		grid-column: auto;
	}

	.race_detail_page--desktop-on-mobile .race_result_jockey,
	.race_detail_page--desktop-on-mobile .race_result_time,
	.race_detail_page--desktop-on-mobile .race_result_margin,
	.race_detail_page--desktop-on-mobile .race_result_popularity {
		margin-left: 0;
	}

	.race_detail_page--desktop-on-mobile .race_horse_list {
		align-items: flex-start;
		width: max-content;
		max-width: none;
		min-width: 1080px;
		overflow: visible;
	}

	.race_detail_page--desktop-on-mobile .race_horse {
		box-sizing: content-box;
		width: max-content;
		max-width: none;
		min-width: 100%;
		flex-direction: row;
		padding: 24px;
		overflow: visible;
	}

	.race_detail_page--desktop-on-mobile .horse_main {
		box-sizing: border-box;
		flex: 0 0 1080px;
		width: auto;
		max-width: none;
		min-width: 1080px;
		padding-right: 18px;
		padding-bottom: 28px;
		overflow: visible;
	}

	.race_detail_page--desktop-on-mobile .horse_box {
		flex-direction: row;
	}

	.race_detail_page--desktop-on-mobile .horse_name,
	.race_detail_page--desktop-on-mobile .jockey_name,
	.race_detail_page--desktop-on-mobile .horse_identity_meta,
	.race_detail_page--desktop-on-mobile .horse_style_meta,
	.race_detail_page--desktop-on-mobile .horse_profile_meta,
	.race_detail_page--desktop-on-mobile .jockey_history_box,
	.race_detail_page--desktop-on-mobile .horse_analysis_text,
	.race_detail_page--desktop-on-mobile .horse_bloodline_panel,
	.race_detail_page--desktop-on-mobile .horse_bloodline {
		width: auto;
		max-width: 100%;
		min-width: 0;
	}

	.race_detail_page--desktop-on-mobile .horse_weight_mark,
	.race_detail_page--desktop-on-mobile .weight_area_label,
	.race_detail_page--desktop-on-mobile .weight_area_value,
	.race_detail_page--desktop-on-mobile .weight_area_note,
	.race_detail_page--desktop-on-mobile .horse_badge_area .horse_pedigree_badge,
	.race_detail_page--desktop-on-mobile
		.horse_badge_area
		.horse_prediction_badge,
	.race_detail_page--desktop-on-mobile
		.horse_badge_area
		.horse_popularity_badge {
		white-space: nowrap;
	}

	.race_detail_page--desktop-on-mobile .jockey_box,
	.race_detail_page--desktop-on-mobile .jockey_weight_box {
		flex-wrap: nowrap;
	}

	.race_detail_page--desktop-on-mobile .weight_area--profile {
		display: flex;
		grid-template-columns: none;
		gap: 8px;
	}

	.race_detail_page--desktop-on-mobile .horse_identity_meta,
	.race_detail_page--desktop-on-mobile .horse_style_meta {
		justify-content: flex-start;
	}

	.race_detail_page--desktop-on-mobile .weight_area_item--profile {
		display: block;
		max-width: none;
		min-width: 170px;
	}

	.race_detail_page--desktop-on-mobile .horse_bloodline_details {
		align-items: flex-start;
	}

	.race_detail_page--desktop-on-mobile .horse_bloodline_toggle {
		align-self: auto;
	}

	.race_detail_page--desktop-on-mobile .horse_bloodline_panel {
		width: auto;
	}

	.race_detail_page--desktop-on-mobile .horse_item_upper {
		grid-template-columns: minmax(0, 1fr) minmax(150px, max-content);
	}

	.race_detail_page--desktop-on-mobile .horse_badge_area {
		width: 100%;
		grid-column: 1;
		grid-row: auto;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-start;
		align-items: flex-start;
		align-self: auto;
		min-width: 0;
		max-width: none;
	}

	.race_detail_page--desktop-on-mobile .horse_bloodline {
		position: static;
		margin-top: 8px;
		overflow-wrap: normal;
	}

	.race_detail_page--desktop-on-mobile .horse_past_races {
		box-sizing: content-box;
		display: inline-flex;
		width: auto;
		max-width: none;
		min-width: 0;
		margin-left: 18px;
		padding-bottom: 4px;
		overflow: visible;
	}

	.race_detail_page--desktop-on-mobile .horse_past_race_card {
		flex: 0 0 280px;
	}
}
