/* v20 compact race dashboard, odds status and compact manshu list */
.v20-race-dashboard{background:#f5f9fc;padding:10px 0 18px;min-height:calc(100vh - 150px)}
.v20-dashboard-head{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:7px 11px;margin-bottom:8px;border:1px solid #dce8f1;border-radius:12px;background:#fff}
.v20-date-title{display:flex;align-items:baseline;gap:10px;min-width:0}.v20-date-title>span{color:#2584c4;font-size:9px;font-weight:950;letter-spacing:.14em}.v20-date-title strong{color:#17344d;font-size:17px}.v20-date-title em{color:#6c8193;font-size:10px;font-style:normal;font-weight:800}
.v20-date-switcher{display:flex;gap:4px;align-items:center}.v20-date-switcher a,.v20-date-switcher button{display:grid;place-items:center;height:30px;padding:0 9px;border:1px solid #d6e3ed;border-radius:7px;background:#fff;color:#245a82;font-weight:900}.v20-date-switcher input{height:30px;border:1px solid #d6e3ed;border-radius:7px;padding:0 7px;color:#28485f;background:#fff}.v20-tomorrow-chip{padding:7px 10px;border-radius:8px;background:#eaf6ff;color:#176ca8;font-size:10px;font-weight:900;white-space:nowrap}
.v20-deadline-panel,.v20-venues-panel{border:1px solid #dce8f1;border-radius:12px;background:#fff;overflow:hidden}.v20-deadline-panel{margin-bottom:10px}.v20-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border-bottom:1px solid #edf2f6}.v20-panel-title>div{display:flex;align-items:baseline;gap:9px}.v20-panel-title span{color:#3288bd;font-size:8px;font-weight:950;letter-spacing:.14em}.v20-panel-title h1,.v20-panel-title h2{margin:0;color:#17344d;font-size:15px}.v20-panel-title>small{color:#718596;font-size:9px;font-weight:900}
.v20-deadline-list{display:grid}.v20-deadline-item{display:grid;grid-template-columns:58px 1fr 70px 46px 94px;align-items:center;gap:8px;min-height:34px;padding:3px 10px;border-bottom:1px solid #eff4f7;color:#263f53}.v20-deadline-item:last-child{border-bottom:0}.v20-deadline-item:hover{background:#f6fbff}.v20-deadline-item time{font-size:16px;font-weight:950;color:#0e5e94;font-variant-numeric:tabular-nums}.v20-deadline-item>strong{font-size:12px}.v20-deadline-item>strong b{color:#1885ca}.v20-countdown{justify-self:end;color:#e56c25;font-size:10px;font-weight:950}.v20-race-status{justify-self:center;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:950}.v20-race-status.state-program{background:#edf3f8;color:#64798c}.v20-race-status.state-preview{background:#ddf7f5;color:#0b7e76}.v20-race-status.state-result{background:#e6f5ec;color:#198158}.v20-odds-status{justify-self:end;color:#4e7b9d;font-size:8px;font-weight:850}.v20-empty{padding:14px;color:#8193a2;font-size:11px}
.v20-venue-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:#e9f0f5}.v20-venue-mini{display:grid;grid-template-columns:25px 1fr auto;grid-template-rows:auto auto;align-items:center;gap:1px 6px;min-height:49px;padding:5px 7px;background:#fff;color:#29485f}.v20-venue-mini.is-active:hover{z-index:1;background:#f2faff;box-shadow:inset 0 0 0 1px #98ccea}.v20-venue-mini.is-off{background:#f7f8f9;color:#98a5af}.v20-venue-code{grid-row:1/3;display:grid;place-items:center;width:25px;height:25px;border-radius:6px;background:#e8f4fc;color:#177dbb;font-size:9px;font-weight:950}.v20-venue-mini.is-off .v20-venue-code{background:#eceff1;color:#a4adb5}.v20-venue-mini>strong{font-size:12px;white-space:nowrap}.v20-venue-mini>em{justify-self:end;font-size:9px;font-style:normal;font-weight:950;color:#2887bd}.v20-venue-mini.is-off>em{color:#9ba6ae}.v20-next-race{grid-column:2/4;color:#6f8392;font-size:8px;white-space:nowrap}.v20-next-race b{color:#245d83}.v20-next-race small{color:#db702c;font-size:8px;font-weight:900}
.v20-dashboard-links{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:7px}.v20-dashboard-links a{display:flex;align-items:center;gap:8px;padding:6px 9px;border:1px solid #dce8f1;border-radius:9px;background:#fff}.v20-dashboard-links b{color:#2080bd;font-size:9px}.v20-dashboard-links span{color:#344f64;font-size:10px;font-weight:900}
.v20-upset-list{display:grid;gap:5px}.v20-upset-row{display:grid;grid-template-columns:34px 130px 90px 92px minmax(180px,1fr) 54px;gap:8px;align-items:center;padding:7px 10px;border:1px solid #dbe7ef;border-radius:9px;background:#fff;color:#29465a}.v20-upset-row:hover{border-color:#9bcbe9;background:#f7fbfe}.v20-upset-rank{font-size:11px;font-weight:950;color:#e77a2f}.v20-upset-race strong{display:block;font-size:12px}.v20-upset-race small{color:#728594;font-size:8px}.v20-upset-close strong{display:block;color:#175d89;font-size:13px}.v20-upset-close small{color:#e2762c;font-size:8px;font-weight:900}.v20-upset-prob strong{display:block;font-size:13px;color:#a85121}.v20-upset-prob small{color:#7d8d98;font-size:8px}.v20-upset-form{overflow:hidden;font-size:10px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.v20-upset-form small{display:block;color:#7f909d;font-size:8px;font-weight:700}.v20-upset-score{text-align:right;font-size:11px;font-weight:950;color:#a45627}
.v20-formation-odds{margin-top:8px;padding:8px 10px;border-radius:9px;background:#f5f9fc}.v20-formation-odds>div{display:flex;flex-wrap:wrap;gap:5px}.v20-formation-odds span{display:inline-flex;gap:4px;padding:3px 6px;border:1px solid #dce7ef;border-radius:6px;background:#fff;font-size:9px}.v20-formation-odds b{color:#a34e23}.v20-formation-odds>small{display:block;margin-top:5px;color:#778b9b;font-size:8px}
@media(max-width:1100px){.v20-venue-grid{grid-template-columns:repeat(4,1fr)}.v20-upset-row{grid-template-columns:30px 120px 82px 86px 1fr}.v20-upset-score{display:none}}
@media(max-width:760px){.v20-dashboard-head{grid-template-columns:1fr}.v20-date-title{flex-wrap:wrap}.v20-tomorrow-chip{justify-self:start}.v20-deadline-item{grid-template-columns:52px 1fr 64px 42px}.v20-odds-status{display:none}.v20-venue-grid{grid-template-columns:repeat(2,1fr)}.v20-dashboard-links{grid-template-columns:repeat(2,1fr)}.v20-upset-row{grid-template-columns:28px 1fr 70px}.v20-upset-close{display:none}.v20-upset-form{grid-column:2/4}.v20-upset-prob{text-align:right}}
