.horse-modal-header{background:var(--surface-elevated);color:var(--text-color);border-bottom:1px solid var(--border-subtle);flex-shrink:0;padding:1.1rem 1.5rem;position:relative}.horse-modal-header--secondary{background:var(--surface-elevated);border-bottom:1px solid var(--border-subtle)}.horse-modal-close{background:var(--card-bg);border:1px solid var(--border-subtle);color:var(--text-color);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:.9rem;font-weight:900;transition:all .15s;display:flex;position:absolute;top:1.25rem;right:1.25rem}.horse-modal-close:hover{background:var(--border-subtle);color:var(--text-color);transform:scale(1.05)}.horse-modal-header-row{align-items:center;gap:1rem;padding-right:2.5rem;display:flex}.horse-modal-number{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.35rem;font-weight:900;display:flex;box-shadow:0 4px 12px #bc521540}.horse-modal-title{color:var(--text-color);letter-spacing:-.3px;font-size:1.35rem;font-weight:900;font-family:var(--font-outfit), "Outfit", sans-serif;margin:0}.horse-modal-subtitle{color:var(--text-muted);margin:.2rem 0 0;font-size:.82rem;font-weight:600}.horse-modal-body{background:var(--card-bg);flex:1;padding:1.25rem 1.5rem 2.5rem;overflow-y:auto}.horse-modal-connections{grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:.9rem;display:grid}.horse-connection-box{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:10px;flex-direction:column;gap:3px;min-width:0;padding:.65rem .75rem;display:flex;box-shadow:0 2px 6px #00000005}.horse-connection-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:.68rem;font-weight:800}.horse-connection-value{color:var(--text-color);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:800;overflow:hidden}@media (max-width:640px){.horse-modal-connections{grid-template-columns:repeat(3,1fr);gap:.4rem}.horse-connection-box{padding:.5rem .45rem}.horse-connection-label{font-size:.6rem}.horse-connection-value{font-size:.78rem}}.horse-modal-stats{grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem;display:grid}.horse-stat-box{background:var(--surface-elevated);text-align:center;border:1px solid var(--border-subtle);border-radius:10px;padding:.65rem .5rem;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(--surface-elevated);border:1px solid var(--border-subtle);border-radius:10px;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(--surface-elevated);border:1px solid var(--border-subtle);border-radius:12px;gap:.5rem;margin-bottom:1rem;padding:.3rem;display:flex}.horse-modal-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:.55rem .75rem;font-family:inherit;font-size:.82rem;font-weight:800;transition:all .2s}.horse-modal-tab:hover:not(.active){color:var(--text-color);background:var(--border-subtle)}.horse-modal-tab.active{background:var(--card-bg);color:var(--primary);border:1px solid var(--border-subtle);font-weight:900;box-shadow:0 2px 8px #00000014}.horse-modal-loading,.horse-modal-empty{text-align:center;color:var(--text-muted);padding:2.5rem 1.5rem;font-size:.85rem}.horse-modal-empty{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:10px}.horse-run-list,.horse-galop-list{flex-direction:column;gap:.65rem;display:flex}.horse-run-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);cursor:pointer;border-radius:12px;padding:.85rem 1.1rem;font-size:.85rem;transition:all .15s;box-shadow:0 2px 6px #00000005}.horse-run-card:hover{border-color:var(--primary);background:var(--card-bg);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:.2rem .55rem;font-size:.8rem;font-weight:900}.horse-rank-badge--win{color:var(--secondary);background:#66800b26;border:1px solid #66800b4d}.horse-rank-badge--place{background:var(--primary-alpha-10);color:var(--primary);border:1px solid var(--primary-alpha-20)}.horse-rank-badge--other{background:var(--card-bg);color:var(--text-muted);border:1px solid var(--border-subtle)}.horse-run-meta{color:var(--text-muted);flex-wrap:wrap;gap:.4rem .75rem;font-size:.8rem;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(--surface-elevated);border:1px solid var(--border-subtle);border-radius:12px;padding:.85rem 1.1rem;font-size:.85rem;box-shadow:0 2px 6px #00000005}.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:.2rem .55rem;font-size:.75rem;font-weight:800}.horse-galop-status--hr{color:var(--secondary);background:#66800b26;border:1px solid #66800b4d}.horse-galop-status--r{background:var(--primary-alpha-10);color:var(--primary);border:1px solid var(--primary-alpha-20)}.horse-galop-status--default{color:var(--accent);background:#ad830126;border:1px solid #ad83014d}.horse-galop-time{background:var(--card-bg);color:var(--text-color);font-size:.82rem;font-weight:800;font-family:var(--font-mono,monospace);border:1px solid var(--border-subtle);border-radius:8px;margin:.4rem 0;padding:.55rem .8rem}.horse-galop-jockey{color:var(--text-muted);margin-top:.2rem;font-size:.78rem;font-weight:600}.horse-run-modal-body{background:var(--card-bg);flex:1;padding:1.25rem 1.5rem 2.5rem;overflow-y:auto}.horse-competitor-list{flex-direction:column;gap:.55rem;display:flex}.horse-competitor-row{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:10px;align-items:center;gap:.75rem;padding:.75rem 1rem;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 10px var(--primary-alpha-15)}.horse-finish-badge{color:#fff;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;height:32px;padding:0 .3rem;font-size:.78rem;font-weight:900;display:flex}.horse-finish-badge--win{background:var(--secondary);min-width:48px}.horse-finish-badge--2{background:var(--primary)}.horse-finish-badge--3{background:var(--accent);color:var(--flexoki-black)}.horse-finish-badge--4{background:var(--flexoki-400)}.horse-finish-badge--other{background:var(--border-subtle);color:var(--text-muted)}.horse-competitor-info{flex:1;min-width:0}.horse-competitor-name{color:var(--text-color);flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.88rem;font-weight:800;display:flex}.horse-competitor-name--target{color:var(--primary)}.horse-target-tag{background:var(--primary);color:#fff;letter-spacing:.3px;border-radius:5px;padding:.12rem .4rem;font-size:.68rem;font-weight:800}.horse-competitor-meta{color:var(--text-muted);flex-wrap:wrap;gap:.55rem;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:.8rem;font-weight:800}.horse-competitor-ganyan{color:var(--primary);font-weight:900}.horse-competitor-degree{color:var(--text-muted);font-size:.75rem}@media (max-width:480px){.horse-modal-stats{grid-template-columns:repeat(2,1fr)}.horse-modal-header,.horse-modal-body,.horse-run-modal-body{padding:1rem}}
