:root{color:#282824;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--border:#d8ddcf;--muted:#6d7167;--surface:#fff;--surface-soft:#eef2e8;--green:#2f7d5f;--amber:#b76921;--ink:#282824;background:#f5f6f0;font-family:Inter,Noto Sans JP,Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#ffffffb8,#fff0 320px),#f5f6f0;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1420px,100% - 32px);margin:0 auto;padding:28px 0 48px}.topbar,.raceHeader,.toolbar,.layout,.panelTop,.tableHeader,.tableRow,.horseRow,.summaryGrid,.raceMeta{display:flex}.topbar{justify-content:space-between;align-items:center;gap:20px}.eyebrow{color:var(--green);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;margin-bottom:0;font-size:clamp(2rem,2.8vw,3.3rem);line-height:1.05}h2{letter-spacing:0;margin:8px 0 0;font-size:clamp(1.45rem,2vw,2.25rem);line-height:1.18}h3{letter-spacing:0;margin:0;font-size:1.2rem;line-height:1.25}.dataBadge{border:1px solid var(--border);min-height:36px;color:var(--muted);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.9rem;display:inline-flex}.toolbar{align-items:center;gap:12px;margin-top:28px}.searchBox,.selectBox{border:1px solid var(--border);background:var(--surface);min-height:48px;color:var(--muted);border-radius:8px;align-items:center;gap:10px;display:flex}.searchBox{flex:360px;padding:0 14px}.selectBox{flex:460px;padding:0 12px}.searchBox input,.selectBox select{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0}.selectBox select{appearance:none}.raceHeader{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;margin-top:28px;padding:24px 0}.raceMeta{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:.94rem}.raceMeta span,.summaryGrid div{align-items:center;gap:6px;display:inline-flex}.summaryGrid{flex:none;gap:8px}.summaryGrid div{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;justify-content:center;min-width:94px;min-height:64px}.summaryGrid span{color:var(--muted);font-size:.78rem;font-weight:700}.summaryGrid strong{font-size:1.55rem;line-height:1}.layout{align-items:flex-start;gap:20px;margin-top:22px}.horsePanel,.chartPanel{border:1px solid var(--border);background:var(--surface);border-radius:8px}.horsePanel{width:390px;max-height:calc(100vh - 32px);position:sticky;top:16px;overflow:hidden}.chartPanel{flex:1;min-width:0;padding:18px}.panelHeading{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:58px;padding:0 16px;display:flex}.horseList{max-height:calc(100vh - 92px);padding:8px;overflow:auto}.horseRow{width:100%;min-height:86px;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;margin:0;padding:10px}.horseRow:hover,.horseRow.isActive{background:var(--surface-soft);border-color:#bfcab7}.horseNumber{color:#fff;background:#2f7d5f;border-radius:7px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.horseMain{flex:1;gap:5px;min-width:0;display:grid}.horseName{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.trainer{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.countTrack{background:#dde3d6;border-radius:999px;width:100%;height:7px;position:relative;overflow:hidden}.countFill{position:absolute;top:0;bottom:0;left:0}.hillFill{background:var(--green)}.woodFill{background:var(--amber);opacity:.78}.counts{justify-items:end;min-width:54px;display:grid}.counts strong{font-size:1.35rem;line-height:1}.counts small{color:var(--muted);white-space:nowrap;font-size:.72rem}.panelTop{justify-content:space-between;align-items:center;gap:16px;min-height:54px}.segmented{border:1px solid var(--border);background:#f5f6f0;border-radius:8px;gap:4px;padding:4px;display:inline-flex}.segmented button{min-width:86px;min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-weight:800}.segmented button.selected{background:var(--green);color:#fff}.chartFrame{border:1px solid var(--border);background:#fbfcf8;border-radius:8px;height:430px;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(--green)}.sessionTable{border:1px solid var(--border);border-radius:8px;margin-top:14px;overflow:hidden}.tableHeader,.tableRow{grid-template-columns:minmax(120px,1.1fr) repeat(4,minmax(74px,.7fr));align-items:center;gap:8px;min-height:42px;padding:0 14px;display:grid}.tableHeader{color:var(--muted);background:#eef2e8;font-size:.78rem;font-weight:800}.tableRow{border-top:1px solid var(--border);font-size:.92rem}.positive{color:var(--green);font-weight:800}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=980px){.topbar,.raceHeader,.toolbar,.layout{flex-direction:column;align-items:stretch}.searchBox,.selectBox{flex:none;width:100%}.horsePanel{width:100%;max-height:none;position:static}.horseList{max-height:none}.summaryGrid{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}}@media (width<=620px){.shell{width:min(100% - 20px,1420px);padding-top:18px}.summaryGrid,.tableHeader,.tableRow{grid-template-columns:1fr}.summaryGrid div{min-height:58px}.panelTop{flex-direction:column;align-items:stretch}.segmented,.segmented button{width:100%}.chartPanel{padding:12px}.chartFrame{height:360px}.tableHeader{display:none}.tableRow{gap:2px;padding:10px 14px}}
