.horse-modal-header{background:var(--primary);color:#fff;border-bottom:1px solid #ffffff26;flex-shrink:0;padding:1.1rem 1.5rem;position:relative}.horse-modal-header--secondary{background:var(--primary)}.horse-modal-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-weight:900;transition:all .2s;display:flex;position:absolute;top:1.25rem;right:1.25rem}.horse-modal-close:hover{background:#ffffff47;transform:scale(1.05)}.horse-modal-header-row{align-items:center;gap:1rem;padding-right:2.5rem;display:flex}.horse-modal-number{background:var(--bg-color);color:var(--primary);border:1px solid var(--card-border);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.4rem;font-weight:900;display:flex;box-shadow:0 4px 12px #00000026}.horse-modal-title{color:#fff;letter-spacing:-.3px;font-size:1.35rem;font-weight:900;font-family:var(--font-outfit), "Outfit", sans-serif;margin:0}.horse-modal-subtitle{color:#ffffffd9;margin:.2rem 0 0;font-size:.82rem;font-weight:600}.horse-modal-body{background:var(--bg-color);flex:1;padding:1.25rem 1.5rem 3rem;overflow-y:auto}.horse-modal-stats{grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1.25rem;display:grid}.horse-stat-box{background:var(--card-bg);text-align:center;border:1px solid var(--card-border);border-radius:8px;padding:.6rem .4rem;box-shadow:0 2px 6px #00000005}.horse-stat-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:2px;font-size:.68rem;font-weight:800;display:block}.horse-stat-value{color:var(--text-color);font-size:1rem;font-weight:900}.horse-stat-value--green{color:var(--secondary)}.horse-stat-value--primary{color:var(--primary)}.horse-modal-toto{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex;box-shadow:0 2px 6px #00000005}.horse-modal-toto-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:800}.horse-modal-toto-value{letter-spacing:3px;color:var(--primary);font-size:1.2rem;font-weight:900;font-family:var(--font-mono,monospace)}.horse-modal-tabs{background:var(--primary-alpha-06);border:1px solid var(--card-border);border-radius:10px;gap:.5rem;margin-bottom:1rem;padding:.25rem;display:flex}.horse-modal-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:.55rem .75rem;font-family:inherit;font-size:.82rem;font-weight:800;transition:all .2s}.horse-modal-tab.active{background:var(--card-bg);color:var(--primary);font-weight:900;box-shadow:0 2px 8px #00000014}.horse-modal-loading,.horse-modal-empty{text-align:center;color:var(--text-muted);padding:2rem 1.5rem;font-size:.85rem}.horse-modal-empty{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;padding:1.5rem}.horse-run-list,.horse-galop-list{flex-direction:column;gap:.6rem;display:flex}.horse-run-card{background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;border-radius:10px;padding:.85rem 1rem;font-size:.85rem;transition:all .15s;box-shadow:0 2px 6px #00000008}.horse-run-card:hover{border-color:var(--primary);box-shadow:0 4px 14px var(--primary-alpha-15);transform:translateY(-1px)}.horse-run-card-top{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.horse-run-title{color:var(--primary);font-size:.92rem;font-weight:900}.horse-rank-badge{border-radius:6px;padding:.15rem .5rem;font-size:.8rem;font-weight:900}.horse-rank-badge--win{color:var(--secondary);background:#66800b1f;border:1px solid #66800b40}.horse-rank-badge--place{background:var(--primary-alpha-08);color:var(--primary);border:1px solid var(--primary-alpha-20)}.horse-rank-badge--other{color:var(--text-muted);border:1px solid var(--card-border);background:#0000000a}.horse-run-meta{color:var(--text-muted);flex-wrap:wrap;gap:.4rem .6rem;font-size:.78rem;font-weight:600;display:flex}.horse-run-meta-accent{color:var(--accent);font-weight:800}.horse-run-meta-name{color:var(--text-color)}.horse-galop-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;padding:.85rem 1rem;font-size:.85rem;box-shadow:0 2px 6px #00000008}.horse-galop-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.horse-galop-title{color:var(--primary);font-size:.9rem;font-weight:900}.horse-galop-status{white-space:nowrap;border-radius:6px;padding:.15rem .45rem;font-size:.75rem;font-weight:800}.horse-galop-status--hr{color:var(--secondary);background:#66800b1f;border:1px solid #66800b40}.horse-galop-status--r{background:var(--primary-alpha-08);color:var(--primary);border:1px solid var(--primary-alpha-20)}.horse-galop-status--default{color:var(--accent);background:#ad83011f;border:1px solid #ad830140}.horse-galop-time{color:var(--text-color);font-size:.82rem;font-weight:800;font-family:var(--font-mono,monospace);border:1px solid var(--card-border);background:#bc52150d;border-radius:6px;margin:.35rem 0;padding:.5rem .75rem}.horse-galop-jockey{color:var(--text-muted);margin-top:.2rem;font-size:.75rem;font-weight:600}.horse-run-modal-body{background:var(--bg-color);flex:1;padding:1.25rem 1.5rem 3rem;overflow-y:auto}.horse-competitor-list{flex-direction:column;gap:.5rem;display:flex}.horse-competitor-row{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;align-items:center;gap:.65rem;padding:.75rem .85rem;display:flex;box-shadow:0 1px 3px #00000005}.horse-competitor-row--target{background:linear-gradient(135deg, var(--primary-alpha-10) 0%, var(--primary-alpha-05) 100%);border:1.5px solid var(--primary);box-shadow:0 3px 8px var(--primary-alpha-15)}.horse-finish-badge{color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:30px;height:30px;padding:0 .25rem;font-size:.75rem;font-weight:900;display:flex}.horse-finish-badge--win{background:var(--primary);min-width:44px}.horse-finish-badge--2{background:var(--flexoki-orange-400)}.horse-finish-badge--3{background:var(--flexoki-yellow-400)}.horse-finish-badge--4{background:var(--primary)}.horse-finish-badge--other{background:var(--flexoki-400)}.horse-competitor-info{flex:1;min-width:0}.horse-competitor-name{color:var(--text-color);flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.88rem;font-weight:800;display:flex}.horse-competitor-name--target{color:var(--primary)}.horse-target-tag{background:var(--primary);color:#fff;border-radius:4px;padding:.1rem .35rem;font-size:.68rem;font-weight:800}.horse-competitor-meta{color:var(--text-muted);flex-wrap:wrap;gap:.5rem;margin-top:.2rem;font-size:.75rem;font-weight:600;display:flex}.horse-competitor-weight{color:var(--accent);font-weight:800}.horse-competitor-odds{text-align:right;color:var(--text-muted);flex-shrink:0;font-size:.78rem;font-weight:800}.horse-competitor-ganyan{color:var(--primary)}.horse-competitor-degree{color:var(--text-muted);font-size:.75rem}@media (max-width:480px){.horse-modal-stats{grid-template-columns:repeat(2,1fr)}}
