:root{color:#111;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--border-thin:#e5e5e5;--border-thick:#111;--muted:#999;--ink:#111;--accent:#111;--saturday:#1f66b3;--sunday:#c9413b;background:#fff;font-family:Inter,Noto Sans JP,Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}*{box-sizing:border-box}body{background:#fff;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1280px,100% - 32px);margin:0 auto;padding:0 0 48px}.masthead{text-align:center;border-bottom:3px double var(--border-thick);padding:28px 0 14px}.mastheadTitle{letter-spacing:6px;text-transform:uppercase;margin:0;font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:500;line-height:1.1}.mastheadSub{color:var(--muted);margin:6px 0 0;font-size:.82rem}.mastheadNav{justify-content:center;gap:0;margin-top:10px;display:flex}.mastheadNav button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:4px;padding:6px 18px;font-size:.82rem;font-weight:500;display:inline-flex}.mastheadNav button:hover{color:var(--ink)}.mastheadNav button.isActive{color:var(--ink);border-bottom-color:var(--border-thick)}.helpPage{padding:24px 0 48px}.helpContent{max-width:720px;margin:0 auto}.helpSection{padding:0}.helpDivider{background:var(--border-thin);height:1px;margin:28px 0}.helpHeading{letter-spacing:-.3px;border-bottom:2px solid var(--border-thick);margin-bottom:14px;padding-bottom:8px;font-size:1.1rem;font-weight:500}.helpText{color:#444;margin:0;font-size:.88rem;line-height:1.75}.helpSteps{gap:0;display:grid}.helpStep{border-bottom:1px solid var(--border-thin);grid-template-columns:32px 1fr;gap:14px;padding:14px 0;display:grid}.helpStep:last-child{border-bottom:none}.helpStepNumber{border:2px solid var(--border-thick);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;width:28px;height:28px;font-size:.88rem;font-weight:500;display:flex}.helpStepTitle{margin:0 0 4px;font-size:.95rem;font-weight:500}.helpGrid{grid-template-columns:1fr 1fr;gap:0;display:grid}.helpGridItem{border-bottom:1px solid var(--border-thin);border-right:1px solid var(--border-thin);padding:16px}.helpGridItem:nth-child(2n){border-right:none}.helpGridItem:nth-last-child(-n+2){border-bottom:none}.helpItemLabel{margin:0 0 6px;font-size:.88rem;font-weight:500}.helpLapExamples{gap:8px;margin-top:8px;display:grid}.helpLapRow{align-items:center;gap:10px;display:flex}.helpLapBadge{border:1px solid var(--border-thin);white-space:nowrap;flex:none;padding:2px 8px;font-size:.78rem;font-weight:500}.helpLapBadge.positive{color:#1a7a4c;border-color:#1a7a4c}.helpLapBadge.mixed{color:#b45309;border-color:#b45309}.helpLapBadge.negative{color:#b91c1c;border-color:#b91c1c}.helpTips{gap:0;display:grid}.helpTip{border-bottom:1px solid var(--border-thin);gap:4px;padding:14px 0;display:grid}.helpTip:last-child{border-bottom:none}.helpTip strong{font-size:.88rem;font-weight:500}@media (width<=620px){.helpGrid{grid-template-columns:1fr}.helpGridItem{border-right:none}.helpGridItem:nth-last-child(-n+2){border-bottom:1px solid var(--border-thin)}.helpGridItem:last-child{border-bottom:none}}.dayNav{border-bottom:1px solid var(--border-thin);justify-content:center;align-items:center;gap:16px;padding:10px 0;display:flex}.dayNav button{border:1px solid var(--border-thin);min-height:36px;color:var(--ink);background:#fff;border-radius:0;align-items:center;gap:4px;padding:0 10px;font-size:.82rem;font-weight:500;display:inline-flex}.dayNav button:hover{background:#f5f5f5}.dayNav button:disabled{cursor:not-allowed;opacity:.35}.dayNav button:disabled:hover{background:#fff}.dayNavCurrent{align-items:center;gap:10px;font-size:.95rem;font-weight:500;display:flex}.dayNavCurrent strong{color:var(--ink)}.dayStrip{border-bottom:1px solid var(--border-thin);gap:0;display:flex;overflow-x:auto}.dayPill{min-height:40px;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.82rem;font-weight:500;display:inline-flex}.dayPill:hover{color:var(--ink);background:#fafafa}.dayPill>.dateLabel{font-size:.82rem}.dayPill strong{color:inherit}.dayPill.isActive{color:var(--ink);border-bottom-color:var(--border-thick)}.dateLabel{white-space:nowrap;align-items:baseline;min-width:0;display:inline-flex}.dateLabelMain{color:var(--ink)}.dateLabelWeekday{color:var(--muted)}.weekdaySat{color:var(--saturday)!important}.weekdaySun{color:var(--sunday)!important}.trackTabs{border-bottom:1px solid var(--border-thin);background:#fafafa;justify-content:center;gap:0;display:flex}.trackTabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:10px 24px;font-size:.88rem;font-weight:500}.trackTabs button:hover{color:var(--ink)}.trackTabs button.isActive{color:var(--ink);border-bottom-color:var(--border-thick)}.toolbar{border-bottom:1px solid var(--border-thin);align-items:center;padding:8px 0;display:flex}.searchBox{color:var(--muted);flex:1;align-items:center;gap:8px;padding:0 8px;display:flex}.searchBox input{width:100%;min-width:0;min-height:36px;color:var(--ink);background:0 0;border:0;outline:0;font-size:.88rem}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.editorialBoard{grid-template-columns:1fr;min-height:400px;display:grid}.sectionLabel{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;border-bottom:2px solid var(--border-thick);margin-bottom:0;padding:8px 0;font-size:.72rem;font-weight:500}.venueSection{border-bottom:1px solid var(--border-thin)}.venueSection+.venueSection{margin-top:0}.venueHeading{border-bottom:2px solid var(--border-thick);justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;display:flex}.venueHeading h3{letter-spacing:1px;margin:0;font-size:1rem;font-weight:500}.venueHeading span{color:var(--muted);font-size:.82rem;font-weight:500}.raceRow{border-bottom:1px solid var(--border-thin);cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border-top:none;border-left:none;border-right:none;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.raceRow:hover{background:#fafafa}.raceNo{font-variant-numeric:tabular-nums;color:var(--ink);font-size:1.2rem;font-weight:500}.raceRowMain{gap:2px;min-width:0;display:grid}.raceTitleLine{align-items:center;gap:6px;min-width:0;display:inline-flex}.raceTitleLine strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.95rem;font-weight:500;line-height:1.35;overflow:hidden}.raceRowMeta{color:var(--muted);font-size:.78rem}.raceRowRight{color:var(--muted);text-align:right;white-space:nowrap;font-size:.82rem}.gradeBadge{white-space:nowrap;min-width:24px;min-height:18px;color:var(--ink);background:0 0;border:1px solid #bbb;border-radius:2px;flex:none;justify-content:center;align-items:center;padding:1px 6px;font-size:.7rem;font-weight:500;line-height:1;display:inline-flex}.grade-g1,.grade-jg1{color:#4f5ed8;border-color:#4f5ed8}.grade-g2,.grade-jg2{color:#dc3f48;border-color:#dc3f48}.grade-g3,.grade-jg3{color:#27845f;border-color:#27845f}.grade-l{color:#7a55c1;border-color:#7a55c1}.emptyBoard{min-height:180px;color:var(--muted);border-bottom:1px solid var(--border-thin);place-items:center;display:grid}.backButton{border:1px solid var(--border-thin);min-height:36px;color:var(--ink);background:#fff;border-radius:0;align-items:center;gap:6px;margin:12px 0;padding:0 10px;font-size:.82rem;font-weight:500;display:inline-flex}.backButton:hover{background:#f5f5f5}.raceHeader{border-bottom:3px double var(--border-thick);justify-content:space-between;align-items:flex-end;gap:24px;padding:16px 0;display:flex}.raceMeta{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:.85rem;display:flex}.raceMeta span{align-items:center;gap:4px;display:inline-flex}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.5px;margin-bottom:0;font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:500;line-height:1.1}h2{letter-spacing:-.3px;margin:6px 0 0;font-size:clamp(1.2rem,1.8vw,1.6rem);font-weight:500;line-height:1.2}h3{margin:0;font-size:1rem;font-weight:500;line-height:1.25}.summaryGrid{flex:none;gap:0;display:flex}.summaryGrid div{border-left:1px solid var(--border-thin);flex-direction:column;justify-content:center;align-items:center;min-width:80px;min-height:56px;padding:6px 14px;display:flex}.summaryGrid div:first-child{border-left:none}.summaryGrid span{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem;font-weight:500}.summaryGrid strong{font-size:1.4rem;font-weight:500;line-height:1}.raceScatterSection{border-top:1px solid var(--border-thin);margin-top:20px;padding-top:16px}.raceScatterGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.raceScatterCard{border-right:1px solid var(--border-thin);min-width:0;padding:16px}.raceScatterCard:last-child{border-right:none}.raceScatterHeader{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.raceScatterHeader .eyebrow{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;margin:0 0 4px;font-size:.7rem;font-weight:500}.raceScatterHeader h3{font-size:.95rem;font-weight:500}.raceScatterHeader>span{border:1px solid var(--border-thin);color:var(--muted);text-align:center;flex:none;padding:3px 8px;font-size:.78rem;font-weight:500}.raceScatterFrame{border:1px solid var(--border-thin);background:#fafafa;height:300px;margin-top:10px;padding:8px 4px 4px}.scatterMarker circle{stroke-width:2px;filter:drop-shadow(0 1px 2px #00000026)}.scatterMarker text{pointer-events:none;font-size:.72rem;font-weight:700}.scatterTooltip{border:1px solid var(--border-thin);color:var(--ink);background:#fffffff5;gap:3px;padding:8px 10px;font-size:.82rem;display:grid;box-shadow:0 4px 12px #00000014}.scatterTooltip span{color:var(--muted);font-size:.78rem}.scatterNote{color:var(--muted);margin:8px 0 0;font-size:.78rem}.layout{border-top:2px solid var(--border-thick);align-items:flex-start;gap:0;margin-top:20px;display:flex}.horsePanel{border-right:2px solid var(--border-thick);flex-shrink:0;width:340px;max-height:100vh;position:sticky;top:0;overflow:hidden}.panelHeading{border-bottom:1px solid var(--border-thin);color:var(--muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;padding:8px 12px;font-size:.72rem;font-weight:500;display:flex}.panelHeading svg{width:14px;height:14px}.horseList{max-height:calc(100vh - 42px);padding:0;overflow:auto}.horseRow{border:none;border-bottom:1px solid var(--border-thin);width:100%;min-height:52px;color:var(--ink);text-align:left;background:0 0;border-radius:0;align-items:center;gap:8px;margin:0;padding:6px 12px;display:flex}.horseRow:hover{background:#fafafa}.horseRow.isActive{border-left:3px solid var(--border-thick);background:#f5f5f5;padding-left:9px}.horseNumber{border:1px solid #0000;border-radius:4px;place-items:center;width:26px;height:26px;font-size:.78rem;font-weight:700;display:grid}.horseMain{flex:1;gap:2px;min-width:0;display:grid}.horseName{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:500;overflow:hidden}.trainer{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.horseBadges{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.workoutLevelBadge{border:1px solid var(--border-thin);white-space:nowrap;background:0 0;border-radius:0;align-items:center;width:max-content;min-height:18px;padding:1px 6px;font-size:.7rem;font-weight:500;line-height:1;display:inline-flex}.workoutLevelBadge.level-5{color:#1a7a4c;border-color:#1a7a4c}.workoutLevelBadge.level-4{color:#1e5a9c;border-color:#1e5a9c}.workoutLevelBadge.level-3{color:#666;border-color:#888}.workoutLevelBadge.level-2{color:#b45309;border-color:#b45309}.workoutLevelBadge.level-1{color:#b91c1c;border-color:#b91c1c}.mlSignalBadge{border:1px solid var(--border-thin);white-space:nowrap;background:#fff;border-radius:0;align-items:center;width:max-content;min-height:18px;padding:1px 6px;font-size:.7rem;font-weight:600;line-height:1;display:inline-flex}.mlSignalBadge.signal-a,.mlSignalSummary.signal-a{color:#147a56;background:#f0f8f3;border-color:#147a56}.mlSignalBadge.signal-b,.mlSignalSummary.signal-b{color:#1f5fa8;background:#f1f6ff;border-color:#1f5fa8}.mlSignalBadge.signal-c,.mlSignalSummary.signal-c{color:#666;background:#f7f7f7;border-color:#888}.mlSignalBadge.signal-d,.mlSignalSummary.signal-d{color:#b42318;background:#fff5f4;border-color:#b42318}.countTrack{background:#e5e5e5;border-radius:0;width:100%;height:4px;position:relative;overflow:hidden}.countFill{position:absolute;top:0;bottom:0;left:0}.hillFill{background:#111}.woodFill{background:#999}.counts{justify-items:end;min-width:40px;display:grid}.counts strong{font-size:1.1rem;font-weight:500;line-height:1}.counts small{color:var(--muted);white-space:nowrap;font-size:.68rem}.chartPanel{flex:1;min-width:0;padding:16px 20px}.panelTop{justify-content:space-between;align-items:center;gap:16px;min-height:48px;display:flex}.panelTop .eyebrow{color:var(--muted);letter-spacing:0;margin:0 0 2px;font-size:.72rem;font-weight:500}.panelTop h3{letter-spacing:-.3px;font-size:1.1rem;font-weight:500}.panelSignals{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:180px;display:flex}.workoutGradeSummary{border:1px solid var(--border-thin);align-items:center;gap:6px;min-height:36px;padding:4px 10px;display:flex}.workoutGradeSummary strong{font-size:.95rem;font-weight:500;line-height:1}.workoutGradeSummary span{color:var(--muted);font-size:.72rem;font-weight:500}.workoutGradeSummary.level-5{color:#1a7a4c;border-color:#1a7a4c}.workoutGradeSummary.level-4{color:#1e5a9c;border-color:#1e5a9c}.workoutGradeSummary.level-3{color:#666;border-color:#888}.workoutGradeSummary.level-2{color:#b45309;border-color:#b45309}.workoutGradeSummary.level-1{color:#b91c1c;border-color:#b91c1c}.mlSignalSummary{border:1px solid var(--border-thin);align-items:center;gap:6px;min-height:36px;padding:4px 10px;display:flex}.mlSignalSummary strong{font-size:.9rem;font-weight:600;line-height:1}.mlSignalSummary span{font-size:.72rem;font-weight:600}.workoutGradeReasons{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.workoutGradeReasons span,.mlSignalReasons span{border:1px solid var(--border-thin);min-height:22px;color:var(--muted);align-items:center;padding:2px 8px;font-size:.72rem;font-weight:500;display:inline-flex}.mlSignalReasons{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.mlSignalReasons span{color:#444;background:#fafafa}.segmented{border:1px solid var(--border-thin);gap:0;display:inline-flex}.segmented button{border:none;border-right:1px solid var(--border-thin);min-width:80px;min-height:32px;color:var(--muted);background:0 0;border-radius:0;font-size:.82rem;font-weight:500}.segmented button:last-child{border-right:none}.segmented button.selected{background:var(--ink);color:#fff}.chartFrame{border:1px solid var(--border-thin);background:#fafafa;height:400px;margin-top:14px;padding:16px 8px 8px}.emptyChart,.emptyState{color:var(--muted);place-items:center;gap:10px;display:grid}.emptyChart{height:100%}.emptyState{text-align:center;min-height:72vh}.emptyState svg,.emptyChart svg{color:var(--muted)}.emptyState h1{letter-spacing:0;font-weight:500}.sessionTable{border:1px solid var(--border-thin);border-top:2px solid var(--border-thick);margin-top:14px;overflow:hidden}.tableHeader,.tableRow{grid-template-columns:minmax(100px,1.1fr) minmax(48px,.5fr) repeat(4,minmax(48px,.5fr)) minmax(100px,.9fr);align-items:center;gap:8px;min-height:38px;padding:0 12px;display:grid}.tableHeader{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border-thin);background:#fafafa;font-size:.72rem;font-weight:500}.tableRow{border-bottom:1px solid var(--border-thin);font-variant-numeric:tabular-nums;font-size:.85rem}.tableRow:last-child{border-bottom:none}.tableRow:hover{background:#fafafa}.lapJudgement{white-space:nowrap;font-weight:500}.lapJudgement.positive{color:#1a7a4c}.lapJudgement.mixed{color:#b45309}.lapJudgement.negative{color:#b91c1c}@media (width<=980px){.layout{flex-direction:column}.horsePanel{border-right:none;border-bottom:2px solid var(--border-thick);width:100%;max-height:none;position:static}.horseList{max-height:none}.raceHeader{flex-direction:column;align-items:flex-start}.summaryGrid{grid-template-columns:repeat(6,1fr);width:100%;display:grid}.summaryGrid div{border-left:none;border-top:1px solid var(--border-thin)}.raceScatterGrid{grid-template-columns:1fr}.raceScatterCard{border-right:none;border-bottom:1px solid var(--border-thin)}.raceScatterCard:last-child{border-bottom:none}}@media (width<=620px){.shell{width:min(100% - 16px,1280px);padding-top:0}.masthead{padding:18px 0 10px}.mastheadTitle{letter-spacing:3px}.dayNav{gap:8px}.summaryGrid{grid-template-columns:repeat(2,1fr)}.panelTop{flex-direction:column;align-items:flex-start;gap:8px}.panelSignals{justify-content:flex-start;width:100%}.segmented,.segmented button{width:100%}.chartPanel{padding:12px}.chartFrame{height:340px}.raceScatterFrame{height:280px}.tableHeader{display:none}.tableRow{grid-template-columns:1fr;gap:2px;padding:10px 12px}.raceTitleLine strong{white-space:normal}}
