/* Malpago web + app WebView. Data colors (gate badges/charts) stay independent. */
/* BEGIN GENERATED COLOR TOKENS */
/* Source: malpago/docs/design/color-tokens.json. Do not edit this block.
   Regenerate from the app repo: python3 tool/design_review/sync_color_tokens.py */
:root {
    --mp-primary: #3157a4;
    --mp-focus: #3157a4;
    --mp-primary-rgb: 49 87 164;
    --mp-primary-hover: #244583;
    --mp-primary-hover-rgb: 36 69 131;
    --mp-primary-soft: #eff3fb;
    --mp-primary-soft-rgb: 239 243 251;
    --mp-primary-light: #8fa9d7;
    --mp-ink: #17243a;
    --mp-accent: #d8e4fa;
    --mp-info: #506887;
    --mp-info-tint: #a0b0c8;
    --mp-info-dark: #344c6b;
    --mp-canvas: #f6f7f9;
    --mp-surface: #ffffff;
    --mp-surface-variant: #edf0f4;
    --mp-neutral-soft: #edf0f4;
    --mp-muted: #596579;
    --mp-tertiary: #5f6e83;
    --mp-success: #237653;
    --mp-success-soft: #edf6f0;
    --mp-success-dark: #195c40;
    --mp-warning: #946200;
    --mp-warning-soft: #f7eedb;
    --mp-warning-dark: #795000;
    --mp-danger: #b5413a;
    --mp-danger-soft: #f9eae8;
    --mp-danger-dark: #96332e;
    --mp-info-soft: #eaf0f5;
    --mp-border: #dce1e8;
    --mp-control-border: #7d8898;
    --mp-disabled: #e7ebf0;
    --mp-disabled-text: #66758c;
}
/* END GENERATED COLOR TOKENS */

body.mp-app {
    background: var(--mp-canvas);
    color: var(--mp-ink);
    font-family: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
    -webkit-font-smoothing: antialiased;
    line-height: 1.55;
}
.mp-app :is(button, a, input, select, textarea, summary):focus-visible {
    outline: 3px solid var(--mp-focus);
    outline-offset: 3px;
}
.mp-app input[type='checkbox'], .mp-app input[type='radio'] { accent-color: var(--mp-primary); }
.mp-app .mp-site-nav { border-bottom: 1px solid var(--mp-border); box-shadow: none; }
.mp-site-nav a, .mp-site-nav button { min-height: 44px; }
.mp-brand-mark { width: 36px; height: 36px; object-fit: cover; flex: none; border-radius: 28%; }
.mp-app #floating-app-cta img { border-radius: 28%; }
.mp-app-download-banner { background: var(--mp-primary-soft); border-top: 1px solid var(--mp-border); }
.mp-app-download-banner a { min-width: 44px; }
@media (min-width: 1024px) { .mp-brand-mark { width: 40px; height: 40px; } }
.mp-app .tier-badge-free { background: var(--mp-muted); }
.mp-app .tier-badge-premium { background: var(--mp-primary); }
.mp-app .tier-badge-vip { background: var(--mp-ink); }
.mp-app .mp-button-primary { background: var(--mp-primary); color: #fff; min-height: 44px; }
.mp-app .mp-button-primary:hover { background: var(--mp-primary-hover); }
.mp-app .mp-backbar { border-color: var(--mp-border); }
.mp-app .mp-backbar__btn { min-height: 44px; color: var(--mp-ink); }
.mp-app .mp-backbar__btn:hover, .mp-app .mp-backbar__btn:hover i { color: var(--mp-primary); }
.mp-embed .mp-page { padding-top: 16px; }
.mp-app .mapa-chat-btn, .mp-app .mapa-chat-widget .wh { background: var(--mp-primary); }
.mp-app .mapa-chat-btn .cb-pulse { animation: none; }
.mp-app .mapa-chat-widget .wmsg.user .wmsg-bubble,
.mp-app .mapa-chat-widget .w-send-btn,
.mp-app .mapa-chat-widget .w-quick-item:hover { background: var(--mp-primary); border-color: var(--mp-primary); }
.mp-app .mapa-chat-widget .w-send-btn:disabled { background: #dce3ee; }
.mp-app .mapa-chat-widget .w-welcome h4,
.mp-app .mapa-chat-widget .w-footer a { color: var(--mp-primary); }
.mp-app .mapa-chat-widget .w-textarea:focus { border-color: var(--mp-primary); }
.mp-app .mapa-chat-widget .wh-actions button,
.mp-app .mapa-chat-widget .w-send-btn,
.mp-app .mapa-chat-widget .w-attach-btn { min-width: 44px; min-height: 44px; }

/* Race detail: one action color, white surfaces, labels for prediction meaning. */
.mp-race-detail { font-variant-numeric: tabular-nums; }
.mp-race-detail .mp-race-hero { background: var(--mp-ink); }
.mp-race-detail .mp-pick-card { background: var(--mp-surface); border-color: var(--mp-border); }
.mp-race-detail .mp-pick-card--first { background: var(--mp-primary-soft); border-color: #a8bce2; }
.mp-race-detail .mp-guide { background: var(--mp-surface); color: var(--mp-muted); border-color: var(--mp-border); }
.mp-race-detail .mp-guide:hover { background: var(--mp-primary-soft); }
.mp-race-detail .mp-guide i { color: var(--mp-primary); }
.mp-race-detail .mp-decision-status { color: var(--mp-primary); background: var(--mp-primary-soft); }
.mp-race-detail .mp-decision-status--pass,
.mp-race-detail .mp-decision-status--finished,
.mp-race-detail .mp-decision-status--pending { color: var(--mp-muted); background: #eef1f3; }
.mp-race-detail .mp-decision-status--locked { color: var(--mp-warning); background: var(--mp-warning-soft); }
.mp-race-detail #race-detail-v3 :is(button, a:not(nav a)) { min-height: 44px; }
.mp-race-detail #race-detail-v3 .text-slate-400 { color: var(--mp-muted); }
.mp-race-detail #race-detail-v3 .mp-race-hero .text-slate-400 { color: #b5c6ce; }

.mp-race-detail :is(.view-mode-btn, .pred-filter-btn, .odds-subtab, .live-odds-tab, .user-odds-tab) {
    min-height: 44px;
    color: var(--mp-muted);
    background: var(--mp-surface);
    font-size: 13px;
}
.mp-race-detail :is(.view-mode-btn, .pred-filter-btn, .odds-subtab, .live-odds-tab, .user-odds-tab).active {
    color: #fff;
    background: var(--mp-primary);
    border-color: var(--mp-primary);
}
.mp-race-detail :is(#predictor-select, #version-display-btn, .marks-help-btn) { min-height: 44px; font-size: 14px; }
.mp-race-detail #version-display-btn { background: var(--mp-primary-soft); color: var(--mp-primary); border-color: var(--mp-border); }
.mp-race-detail #version-dropdown { border-color: var(--mp-border); }
.mp-race-detail .expert-marks-table { border: 1px solid var(--mp-border) !important; }
.mp-race-detail .expert-marks-table th { background: var(--mp-primary-soft); color: var(--mp-primary); border-color: var(--mp-border); }
.mp-race-detail .expert-prediction-table thead { background: var(--mp-ink); }
.mp-race-detail .expert-prediction-table .popularity-bar { background: var(--mp-primary); }
.mp-race-detail .mp-pick-heading { background: #eef1f3; }
.mp-race-detail .mp-pick-heading h3 { color: var(--mp-ink); }
.mp-race-detail .mp-pick-heading p { color: var(--mp-muted); }
.mp-race-detail .prediction-item { background: var(--mp-surface); border-color: var(--mp-border); background-image: none; }
.mp-race-detail .prediction-item[data-rank='1'] { background: var(--mp-primary-soft); border-color: #a8bce2; }
.mp-race-detail .mp-rank-badge { background: var(--mp-muted); background-image: none; }
.mp-race-detail .prediction-item[data-rank='1'] .mp-rank-badge { background: var(--mp-primary); }
.mp-race-detail .mp-result-row { background: var(--mp-surface); background-image: none; border: 1px solid var(--mp-border); }
.mp-race-detail .mp-result-row[data-rank='1'] { background: var(--mp-primary-soft); border-color: #a8bce2; }
.mp-race-detail .mp-result-row[data-rank='1'] .mp-rank-badge { background: var(--mp-primary); }
.mp-race-detail .mp-result-summary { background: var(--mp-canvas); border-color: var(--mp-border); }
.mp-race-detail .mp-predicted-number { background: var(--mp-primary-soft); color: var(--mp-primary); border-color: #c4d1e7; }
.mp-race-detail .fav-toggle { min-height: 44px; min-width: 44px; }
.mp-race-detail .mp-probability-bar { background: var(--mp-primary); background-image: none; }
.mp-race-detail .mp-section-toggle { min-height: 48px; background: #eef1f3; background-image: none; }
.mp-race-detail .mp-metric-card { background: var(--mp-canvas); background-image: none; border-color: var(--mp-border); }
.mp-race-detail .mp-metric-card > div { color: var(--mp-muted); }
.mp-race-detail .mp-metric-card > div[id] { color: var(--mp-ink); }
.mp-race-detail #expert-analysis-section { background: var(--mp-primary-soft); background-image: none; border-color: var(--mp-border); }
.mp-race-detail .prediction-lock-icon, .mp-race-detail .prediction-lock-count { color: var(--mp-primary); }
.mp-race-detail .prediction-lock-btn.primary { background: var(--mp-primary); }
.mp-race-detail .prediction-lock-btn.secondary { color: var(--mp-primary); border-color: var(--mp-primary); }
.mp-race-detail .prediction-lock-btn { min-height: 44px; }
.mp-race-detail .loading-spinner { border-top-color: var(--mp-primary); }

/* Metric ranks use the same ordered tint, keeping actual gate identities intact. */
.mp-race-detail #race-insights .ri-c1 { color: var(--mp-primary); }
.mp-race-detail #race-insights .ri-c3 { color: var(--mp-info); }
.mp-race-detail #race-insights .ri-m1 { background: #dce6f8; color: #244583; }
.mp-race-detail #race-insights .ri-m2 { background: #eff3fb; color: #3157a4; }
.mp-race-detail #race-insights .ri-m3 { background: #f4f6fb; color: #46658c; }
.mp-race-detail #race-insights .ri-hb:focus-visible { outline: 2px solid var(--mp-primary); }
.mp-app #ri-sheet .ri-close { min-height: 44px; background: var(--mp-primary); }

@media (max-width: 640px) {
    .mp-race-detail #race-detail-v3 .mp-race-hero > div { align-items: flex-start; flex-wrap: wrap; }
    .mp-race-detail #race-detail-v3 .mp-race-hero > div > :last-child { margin-left: auto; }
    .mp-race-detail .tab-nav::-webkit-scrollbar-track { background: var(--mp-surface); }
    .mp-race-detail .tab-nav::-webkit-scrollbar-thumb { background: #c4d1e7; }
    .mp-race-detail #best-predictions > .flex:first-child { align-items: flex-start; flex-wrap: wrap; gap: 12px; }
    .mp-race-detail :is(#horses, #odds, #results) { padding: 16px 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .mp-app { scroll-behavior: auto; }
    .mp-race-detail :is(.tab-content, .prediction-content, .fade-in, .hover-card) { animation: none; transition: none; transform: none; }
}

/* 출전마 마크 (pages/malpago/marks.py · partials/marks.html, 2026-10-22) — Tailwind 빌드와 무관하게 쓰는 공용 표시 */
.mp-marks { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.mp-mark { display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border: 1px solid transparent; border-radius: 999px; font-size: 11.5px; font-weight: 700; line-height: 1.6; white-space: nowrap; }
.mp-mark i { font-size: 10.5px; }
.mp-mark--amber { color: #92400e; background: #fef3c7; border-color: #fde68a; }
.mp-mark--emerald { color: #065f46; background: #d1fae5; border-color: #a7f3d0; }
.mp-mark--green { color: #166534; background: #dcfce7; border-color: #bbf7d0; }
.mp-mark--sky { color: #075985; background: #e0f2fe; border-color: #bae6fd; }
.mp-mark--rose { color: #9f1239; background: #ffe4e6; border-color: #fecdd3; }
.mp-mark--violet { color: #5b21b6; background: #ede9fe; border-color: #ddd6fe; }
.mp-mark-legend { margin: 0 0 12px; border: 1px solid var(--mp-border, #dce3ee); border-radius: 8px; background: var(--mp-surface, #fff); font-size: 13px; }
.mp-mark-legend > summary { cursor: pointer; padding: 9px 12px; color: var(--mp-muted, #596579); font-weight: 600; }
.mp-mark-legend ul { display: grid; gap: 8px; margin: 0; padding: 4px 12px 12px; list-style: none; }
.mp-mark-legend li { display: flex; align-items: flex-start; gap: 10px; }
.mp-mark-legend li .mp-mark { flex: none; }
.mp-mark-legend .mp-mark-desc { color: var(--mp-muted, #596579); line-height: 1.5; }
@media (min-width: 768px) { .mp-mark-legend ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 프로필·예측 화면 탭 줄 (2026-10-22) — 좁은 화면에서 페이지를 가로로 밀어내지 않고 탭 줄 안에서만 넘긴다.
   기수·조교사 프로필이 390px 화면에서 544px 로 넘쳤다. */
nav[aria-label="Tabs"] { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
nav[aria-label="Tabs"]::-webkit-scrollbar { display: none; }
nav[aria-label="Tabs"] > .tab-btn { flex: none; white-space: nowrap; }
@media (max-width: 640px) {
    nav[aria-label="Tabs"].px-6 { padding-left: 16px; padding-right: 16px; }
    nav[aria-label="Tabs"].space-x-8 > :not([hidden]) ~ :not([hidden]) { margin-left: 20px; }
}

/* 손님 기수 화면 — 공식 성적·다음 출전·최근 기승 (2026-10-31, 10-30 시안 .sx-* 를 옮김) */
.mp-gp-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; box-shadow: 0 1px 2px #0000000d; padding: 16px; }
.mp-gp-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 10px; }
.mp-gp-head h2 { font-size: 15px; font-weight: 800; color: #111827; letter-spacing: -.02em; margin: 0; }
.mp-gp-head small, .mp-gp-note { font-size: 12px; color: #6b7280; }
.mp-gp-note { margin: 10px 0 0; line-height: 1.6; }
.mp-gp-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.mp-gp-stat { border: 1px solid #e5e7eb; border-radius: 12px; padding: 14px; min-width: 0; }
.mp-gp-stat h3 { font-size: 14px; font-weight: 800; color: #111827; margin: 0; }
.mp-gp-stat .src { display: block; font-size: 11.5px; color: #6b7280; margin: 2px 0 10px; }
.mp-gp-stat .big { display: flex; align-items: baseline; gap: 6px; margin-bottom: 10px; }
.mp-gp-stat .big strong { font-size: 26px; font-weight: 900; letter-spacing: -.03em; color: #111827; font-variant-numeric: tabular-nums; }
.mp-gp-stat .big span { font-size: 13px; color: #6b7280; }
.mp-gp-stat dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0; }
.mp-gp-stat dl div { background: #f9fafb; border-radius: 8px; padding: 6px 4px; text-align: center; }
.mp-gp-stat dt { font-size: 11px; color: #6b7280; }
.mp-gp-stat dd { margin: 0; font-size: 15px; font-weight: 800; color: #111827; font-variant-numeric: tabular-nums; }
.mp-gp-stat dd.rate { color: #4f46e5; }
.mp-gp-rides { list-style: none; margin: 0; padding: 0; }
.mp-gp-rides .day { margin: 12px 0 6px; font-size: 12.5px; font-weight: 800; color: #334155; }
.mp-gp-rides .day:first-child { margin-top: 0; }
.mp-gp-ride { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid #f3f4f6; min-width: 0; }
.mp-gp-ride.muted { opacity: .5; }
.mp-gp-ride .race { flex: none; width: 74px; }
.mp-gp-ride .race a, .mp-gp-ride .race b { display: block; font-size: 14px; font-weight: 800; color: #111827; }
.mp-gp-ride .race small { display: block; font-size: 11.5px; color: #6b7280; }
.mp-gp-ride .horse { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; }
.mp-gp-ride .horse > a, .mp-gp-ride .horse > b { font-weight: 700; color: #111827; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-gp-ride .horse span.t { font-size: 12px; color: #6b7280; white-space: nowrap; }
.mp-gp-ride .meta { flex: none; font-size: 12px; color: #6b7280; text-align: right; }
.mp-gp-ride a:hover { color: #4338ca; text-decoration: underline; }
.mp-gp-ride.recent .race { width: 96px; }
.mp-gp-ride .fin { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 26px; border-radius: 8px; background: #f3f4f6; font-weight: 800; font-size: 13px; color: #374151; }
.mp-gp-ride .fin.p1 { background: #fef3c7; color: #92400e; }
.mp-gp-ride .fin.p3 { background: #ffedd5; color: #9a3412; }
.mp-gp-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.mp-gp-links a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 46px; padding: 0 14px; border-radius: 10px; background: #eef2ff; color: #3730a3; font-size: 13.5px; font-weight: 700; }
.mp-gp-links a:hover { background: #e0e7ff; }
.mp-gp-links a i { font-size: 11px; }
/* 손님 화면 잠금 상자 — 흐린 자리표시 높이가 고정이라 휴대폰에서 제목이 두 줄이 되면 버튼이 잘렸다 (2026-10-30 발견) */
.mp-gp-lock { min-height: 340px; }
.mp-gp-lock h2 { word-break: keep-all; }
@media (max-width: 639px) {
    .mp-gp-card { padding: 14px 12px; }
    .mp-gp-stats, .mp-gp-links { grid-template-columns: minmax(0, 1fr); }
    .mp-gp-ride .meta { display: none; }
    .mp-gp-ride .race { width: 64px; }
    .mp-gp-lock { min-height: 390px; }
}

/* 경기 페이지 v2 (2026-11-01, 10-31 시안 m6 mockup.css 를 옮김) — 빈 날 안내 한 줄 · 접힌 개최일 달력 · 탭 링크 */
.mp-rc { --t1: #2563eb; --t3: #9333ea; --t2: #16a34a; --t4: #d97706; }
.mp-rc .t1 { --t: var(--t1); } .mp-rc .t2 { --t: var(--t2); } .mp-rc .t3 { --t: var(--t3); } .mp-rc .t4 { --t: var(--t4); }

/* 경마장 탭 — 운영 버튼 모양 그대로, <a> 로 (가운데 정렬만) */
.mp-rc-tab { display: inline-flex; align-items: center; justify-content: center; }

/* 빈 날 안내 한 줄 (목록 바로 위) */
.mp-rc-note { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 10px 14px; border-radius: 10px; background: #fffbeb; border: 1px solid #fde68a; font-size: 13.5px; line-height: 1.55; color: #78350f; }
.mp-rc-note > i { flex: none; margin-top: 3px; color: #b45309; }
.mp-rc-note b { color: #451a03; }

/* 날짜 줄 + 개최일(접힘) — 요약 버튼은 날짜 줄 오른쪽 끝 자리를 비워 두고 거기에 absolute 로 앉힌다(열어도 버튼이 안 움직인다) */
.mp-rc-daterow-wrap { position: relative; }
.mp-rc-daterow { padding-right: 48px; min-height: 40px; }
.mp-rc-dt > summary { list-style: none; cursor: pointer; position: absolute; top: 0; right: 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 40px; min-width: 40px; padding: 0 10px; border-radius: 8px; border: 1px solid #d1d5db; background: #fff; color: #374151; font-size: 14px; font-weight: 600; white-space: nowrap; transition: background-color .15s; }
.mp-rc-dt > summary::-webkit-details-marker { display: none; }
.mp-rc-dt > summary::marker { content: ''; }
.mp-rc-dt > summary:hover { background: #f9fafb; }
.mp-rc-dt > summary .mp-rc-dtlbl { display: none; }
.mp-rc-dt > summary .mp-rc-dtchev { font-size: 10px; opacity: .7; }
.mp-rc-dt[open] > summary { background: var(--mp-primary-soft); border-color: var(--mp-primary); color: var(--mp-primary); }
.mp-rc-dt[open] > summary .mp-rc-dtchev { transform: rotate(180deg); }
.mp-rc-calpanel { margin-top: 14px; padding-top: 14px; border-top: 1px solid #f1f2f4; }

/* 개최일 달력 (열었을 때만 보인다; HTML 에는 항상 있어 로봇은 읽는다) */
.mp-rc-calhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin-bottom: 8px; }
.mp-rc-calhead h3 { margin: 0; font-size: 15px; font-weight: 800; color: var(--mp-ink); }
.mp-rc-calhead h3 i { color: var(--mp-primary); margin-right: 4px; }
.mp-rc-legend { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; padding: 0; list-style: none; font-size: 11.5px; font-weight: 600; color: var(--mp-muted); }
.mp-rc-legend li { display: inline-flex; align-items: center; gap: 4px; }
.mp-rc-dot { display: inline-block; width: 7px; height: 7px; border-radius: 999px; background: var(--t, #9ca3af); }
.mp-rc-legend .mp-rc-ring { display: inline-block; width: 12px; height: 12px; border-radius: 999px; border: 2px solid var(--mp-primary); }
.mp-rc-legend .mp-rc-fill { display: inline-block; width: 12px; height: 12px; border-radius: 4px; background: var(--mp-primary); }
.mp-rc-legend .mp-rc-hatch { display: inline-block; width: 12px; height: 12px; border-radius: 3px; border: 1px solid #d1d5db; background: repeating-linear-gradient(135deg, #f9fafb 0 2px, #d1d5db 2px 4px); }
.mp-rc-months { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px 20px; }
.mp-rc-month h4 { margin: 0 0 4px; font-size: 13px; font-weight: 800; color: #374151; }
.mp-rc-month h4 small { margin-left: 6px; font-weight: 500; color: var(--mp-muted); }
.mp-rc-month.is-next { display: none; }                 /* 모바일: 다음 달은 다음 경주일·발표 전 경계가 거기 있을 때만 */
.mp-rc-month.is-next.is-mobile-show { display: block; }
.mp-rc-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; margin: 0; padding: 0; list-style: none; }
.mp-rc-wd { padding: 2px 0; text-align: center; font-size: 11px; font-weight: 700; color: var(--mp-muted); }
.mp-rc-wd.is-sun, .mp-rc-day.is-sun .mp-rc-num { color: #c2410c; }
.mp-rc-wd.is-sat, .mp-rc-day.is-sat .mp-rc-num { color: #1d4ed8; }
.mp-rc-day { position: relative; min-height: 40px; border-radius: 8px; }
.mp-rc-day > a, .mp-rc-day > .mp-rc-cell { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; height: 100%; min-height: 40px; padding: 4px 0 3px; border-radius: 8px; border: 1px solid transparent; }
.mp-rc-day > a:hover { background: var(--mp-primary-soft); }
.mp-rc-num { font-size: 13px; font-weight: 700; line-height: 1.1; color: #374151; }
.mp-rc-dots { display: flex; gap: 2px; margin-top: 3px; min-height: 7px; }
.mp-rc-day.has-race > a, .mp-rc-day.has-race > .mp-rc-cell { background: #f9fafb; border-color: #eef0f3; }
.mp-rc-day.is-past { opacity: .45; }
.mp-rc-day.is-today { opacity: 1; }
.mp-rc-day.is-today > a, .mp-rc-day.is-today > .mp-rc-cell { box-shadow: inset 0 0 0 2px var(--mp-primary); }
.mp-rc-day.is-next > a { background: var(--mp-primary); border-color: var(--mp-primary); }
.mp-rc-day.is-next .mp-rc-num { color: #fff; }
.mp-rc-day.is-next .mp-rc-dot { box-shadow: 0 0 0 1.5px #fff; }
.mp-rc-day.is-unknown > .mp-rc-cell { background: repeating-linear-gradient(135deg, #fafafa 0 4px, #e5e7eb 4px 8px); }   /* 빗금 = 발표 전 */
.mp-rc-day.is-unknown .mp-rc-num { color: #9ca3af; font-weight: 600; }
.mp-rc-blank { min-height: 0; }
.mp-rc-next { margin: 10px 0 0; font-size: 13.5px; line-height: 1.6; color: #374151; }
.mp-rc-next a { color: var(--mp-primary); font-weight: 700; }
.mp-rc-next a i { font-size: 10px; }
.mp-rc-next small { display: block; font-size: 12px; color: var(--mp-muted); }

@media (min-width: 640px) {
  .mp-rc-daterow { padding-right: 112px; }
  .mp-rc-dt > summary .mp-rc-dtlbl { display: inline; }
  .mp-rc-months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mp-rc-month.is-next { display: block; }
  .mp-rc-day { min-height: 46px; }
  .mp-rc-day > a, .mp-rc-day > .mp-rc-cell { min-height: 46px; }
  .mp-rc-num { font-size: 14px; }
  .mp-rc-dot { width: 8px; height: 8px; }
}

/* 손님 경주 화면 — 출전마 링크·기수·조교사 줄, 같은 경마장 경주 칩 (2026-11-01, 10-30 시안 .sx-entries/.sx-chips 를 옮김) */
.mp-gp-entry-people { display: block; font-size: 12px; color: #6b7280; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-gp-entry-people a { color: #4b5563; }
.mp-gp-entry-people a:hover, .mp-gp-entries-rich a:hover { color: #4338ca; text-decoration: underline; }
.mp-gp-region { flex: none; font-size: 10.5px; font-weight: 700; color: #475569; background: #e2e8f0; border-radius: 4px; padding: 1px 5px; }
.mp-gp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mp-gp-chip { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 52px; min-height: 44px; padding: 4px 8px; border: 1px solid #e5e7eb; border-radius: 10px; background: #fff; color: #374151; line-height: 1.15; }
.mp-gp-chip b { font-size: 13px; }
.mp-gp-chip small { font-size: 10.5px; color: #6b7280; }
.mp-gp-chip[aria-current] { background: #17243a; border-color: #17243a; color: #fff; }
.mp-gp-chip[aria-current] small { color: #cbd5e1; }
@media (max-width: 639px) {
    /* 시안(10-30 A4): 휴대폰은 한 줄 — 번호 · 마명 · 기수·조교사 */
    ol.mp-gp-entries-rich { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    ol.mp-gp-entries-rich li { min-height: 44px; }
    ol.mp-gp-entries-rich li > span.min-w-0 { display: flex; align-items: center; gap: 8px; }
    ol.mp-gp-entries-rich li > span.min-w-0 > span:first-child { flex: 1; }
    ol.mp-gp-entries-rich .mp-gp-entry-people { flex: none; margin-top: 0; max-width: 46%; }
}
