:root{font-family:"Yu Gothic UI","Meiryo",system-ui,sans-serif;color:#17282d;background:#edf3f0;font-size:15px}
*{box-sizing:border-box}
body{margin:0}
button,input,select{font:inherit}
button{cursor:pointer}
header{background:#0d5f50;color:#fff;padding:18px max(22px,calc((100vw - 1420px)/2));display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-size:40px;line-height:1;color:#fff}.brand h1{line-height:1.05}
h1{margin:0;font-size:27px}
h1 small{font-size:14px;font-weight:600;opacity:.78}
header p{margin:3px 0 0;font-size:12px;opacity:.78}
.pill{background:#ffffff1c;border:1px solid #ffffff40;padding:7px 11px;border-radius:999px;font-size:12px}
.pill.ok{background:#d9f6e6;color:#145e40}
.pill.bad{background:#ffe0dc;color:#842b20}
main{max-width:1420px;margin:20px auto;padding:0 20px 40px}
.race-tabs{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:2px 0 10px;white-space:nowrap}
.race-tab{display:flex;align-items:center;background:#ddeae4;border:1px solid #c5d9d0;border-radius:10px;overflow:hidden;flex:none}
.race-tab.active{background:#0d6754;border-color:#0d6754;color:#fff}
.race-tab button{border:0;background:transparent;color:inherit;padding:9px 12px;font-weight:750}
.race-tab button.close-tab{padding:9px 10px;border-left:1px solid #ffffff80;font-size:16px;line-height:1}
.race-tabs .new-race{border:1px dashed #0d6754;background:#fff;color:#0d6754;border-radius:9px;padding:9px 15px;font-weight:800;flex:none}
.race-tabs .new-race.active{background:#0d6754;color:#fff}
.race-tabs button:disabled{opacity:.55;cursor:wait}
.mobile-race-list,.mobile-race-back{display:none}
.workspace-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.workspace-actions button{border:1px solid #0d6754;background:#fff;color:#0d6754;border-radius:9px;padding:8px 12px;font-weight:800}.workspace-actions small{color:#657772;font-size:11px}.mobile-bottom-nav{display:none}
.card{background:#fff;border-radius:15px;box-shadow:0 5px 18px #12372e0c}
.loader{padding:15px;display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.loader label{font-size:12px;color:#5d716b}
.loader input,.loader select{display:block;margin-top:5px;padding:9px 10px;border:1px solid #cbd9d4;border-radius:8px;min-width:145px;background:white}
.loader button{border:0;background:#08725c;color:white;font-weight:800;border-radius:9px;padding:11px 18px}
.loader button:disabled{opacity:.55}
.loader p{width:100%;margin:2px 0 0;color:#657772;font-size:12px}
.loader p.alerts{color:#9d3025;background:#fff0ec;border:1px solid #efb9aa;border-radius:8px;padding:9px 11px;font-weight:700}
.progress{height:5px;width:100%;background:#e7efeb;border-radius:5px;overflow:hidden}
.progress span{display:block;height:100%;width:0;background:#f1a638;transition:width .35s}
.race-head{margin-top:14px;padding:20px;display:flex;justify-content:space-between;align-items:center}
.race-head h2{margin:3px 0;font-size:24px}
.race-head p{margin:0;color:#63746f}
.race-head .trial-label{margin-top:8px;color:#795118;font-weight:700;font-size:13px}
.race-head strong{font-size:24px;color:#0d6754}
.controls{display:flex;justify-content:space-between;align-items:center;margin:16px 0 10px;gap:10px}
.tabs{display:flex;gap:5px;flex-wrap:wrap}
.tabs button{border:1px solid #d5e0dc;background:#fff;color:#47635b;border-radius:9px;padding:8px 12px}
.tabs button.active{background:#126856;color:#fff;border-color:#126856;font-weight:800}
.check{font-size:12px;color:#526862}
.sort-note{font-size:12px;color:#6d5682;font-weight:700}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:12px}
.summary div{background:#fff;border-radius:11px;padding:12px}
.summary span{display:block;color:#70817c;font-size:11px}
.summary strong{font-size:18px;display:block;margin-top:3px}
.summary .separation-card{grid-column:1/-1;border:2px solid #c8d8d2;background:linear-gradient(135deg,#ffffff,#f1f8f5);padding:14px 16px}
.summary .separation-card strong{font-size:22px;color:#174d3c}
.summary .separation-card .ticket{display:inline;font-size:15px;color:#fff;background:#176b50;border-radius:999px;padding:4px 10px;margin-left:8px}
.summary .separation-card small{display:block;color:#516963;margin-top:7px;line-height:1.45}
.summary .separation-1頭抜け{border-color:#e2a800;background:linear-gradient(135deg,#fffdf4,#fff3bd)}
.summary .separation-1頭抜け strong{color:#7d5700}
.summary .separation-混戦{border-color:#d4c5c5;background:linear-gradient(135deg,#fff,#f7f1f1)}
.summary .separation-混戦 strong{color:#704545}
.workspace{display:grid;grid-template-columns:minmax(760px,1fr) 390px;gap:15px;align-items:start}
.horse-list-column{min-width:0}.horse-list-heading{display:flex;align-items:center;justify-content:space-between;margin:0 2px 8px;padding:0 4px;color:#174d3c}.horse-list-heading b{font-size:15px}.horse-list-heading span{font-size:12px;font-weight:800;color:#547069}
.horse-list{display:grid;gap:8px}
.horse{border:2px solid transparent;background:#fff;border-radius:13px;padding:10px 12px;display:grid;grid-template-columns:48px 42px minmax(170px,1fr) 72px;grid-template-areas:"rank number name win" "ability ability ability ability" "match match match match" "fit fit fit fit";gap:7px 8px;align-items:center;color:inherit;text-align:left;width:100%}
.horse:hover,.horse.active{border-color:#19806a}
.horse.needs-review{border-color:#d7c8e7;background:#fcfaff}
.rank{grid-area:rank;background:#eaf1ee;color:#236554;border-radius:8px;padding:9px 0;text-align:center;font-weight:900}
.needs-review .rank{background:#ede4f7;color:#684783;font-size:10px;white-space:nowrap}
.number{grid-area:number;background:#293137;color:#fff;border-radius:8px;padding:8px 0;text-align:center;font-weight:900}
.horse-name{grid-area:name;font-weight:850;font-size:16px}
.horse-name small{display:block;font-weight:500;color:#71817d;margin-top:3px}
.rule-chip{display:inline-block;margin-left:8px;padding:3px 7px;border-radius:999px;background:#fff0c7;color:#8b5600;font-size:10px;vertical-align:2px}
.win-score{grid-area:win;text-align:center;border-radius:9px;background:#e5f4ef;color:#075f4b;padding:6px 4px}.win-score small{display:block;font-size:9px}.win-score b{font-size:22px}
.ability-row,.fit-row{display:grid;grid-template-columns:70px repeat(6,minmax(48px,1fr));gap:5px;align-items:stretch}
.ability-row{grid-area:ability}.fit-row{grid-area:fit;grid-template-columns:70px repeat(7,minmax(48px,1fr))}
.ability-row em,.fit-row em{display:flex;align-items:center;justify-content:center;border-radius:7px;background:#23343a;color:#fff;font-size:11px;font-style:normal;font-weight:850;letter-spacing:.04em}
.fit-row em{background:#0d6754}
.grade-cell{border-radius:7px;padding:4px 3px;text-align:center;border:1px solid #d9e2df;min-width:0}
.grade-cell small{display:block;font-size:9px;font-weight:700;color:#465953;white-space:nowrap}
.grade-cell b{display:block;font-size:18px;line-height:19px}
.grade-s{background:#f0e7ff;border-color:#895ab6;color:#32164f}.grade-s small,.grade-s .ability-parts{color:#32164f}
.grade-a{background:#ffe0c2;border-color:#ef9a42;color:#a44705}.grade-b{background:#d9f0df;border-color:#79b98a;color:#17613a}.grade-c{background:#e3edf3;border-color:#9eb6c5;color:#3f5c6d}.grade-d{background:#eceeed;border-color:#c8cecb;color:#727d78}.grade-unknown{background:#f4eff9;border:1px dashed #bba5d2;color:#74558e}.grade-unknown small{color:#74558e}.grade-unknown b{font-size:14px;padding-top:3px}
.metric{text-align:right}
.metric span{display:block;font-size:10px;color:#82908c}
.metric b{font-size:17px}
.metric.missing b{color:#abb4b1}
.detail{padding:20px;position:sticky;top:12px}
.detail h2{margin:4px 0}
.detail .sub{color:#667974;margin:0 0 14px}
.score-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.scorebox{background:#f0f5f2;border-radius:9px;padding:10px}
.scorebox span{font-size:11px;color:#71827d;display:block}
.scorebox b{font-size:20px}
.section{border-top:1px solid #e4ebe7;margin-top:15px;padding-top:13px}
.section h3{font-size:14px;margin:0 0 8px;color:#315c50}
.run,.work{display:grid;grid-template-columns:70px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid #edf1ef;font-size:12px}
.run b,.work b{font-size:13px}
.muted{color:#778682}
.notice{padding:10px;border-radius:8px;background:#fff4da;color:#72510e;font-size:12px}
.winner-box{margin:10px 0;background:linear-gradient(135deg,#0d6754,#159276);color:#fff;border-radius:12px;padding:13px;display:grid;grid-template-columns:1fr auto;align-items:center}
.winner-box.pending{background:#ede4f7;color:#684783}
.winner-box span{font-weight:850}.winner-box b{font-size:34px;grid-row:span 2}.winner-box small{opacity:.82}
.rule-box{margin:-3px 0 10px;background:#fff5d8;border:1px solid #efc768;color:#704800;border-radius:10px;padding:10px;display:grid;gap:2px}.rule-box b{font-size:14px}.rule-box span{font-size:12px}.rule-box small{font-size:10px;color:#8a6c31}
.rule-box label{display:flex;align-items:center;gap:8px;font-size:12px;margin:5px 0}.rule-box select{max-width:100%;background:white;color:#45320d;border:1px solid #d8b35f;border-radius:7px;padding:5px 8px}
.tags{display:flex;gap:6px;flex-wrap:wrap}.tags span{background:#ddf4e9;color:#17634f;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:700}.tags span.weak{background:#f1f3f2;color:#6f7c78}
.section ul{margin:5px 0 0;padding-left:20px;color:#80501a;font-size:12px}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.calc-grid div{background:#f4f7f6;border-radius:8px;padding:9px}.calc-grid span,.calc-grid small{display:block;color:#71827d;font-size:10px}.calc-grid b{display:block;font-size:13px;margin:2px 0}
.hidden{display:none!important}
@media(max-width:1050px){.workspace{grid-template-columns:1fr}
.detail{position:static}
.summary{grid-template-columns:repeat(2,1fr)}
}
.rank,.number{padding:4px 0}
.rank:before,.number:before{display:block;font-size:8px;line-height:10px;font-weight:600;opacity:.7}
.rank:before{content:"評価"}
.number:before{content:"馬番"}
@media(max-width:700px){main{padding-left:8px;padding-right:8px}.horse{grid-template-columns:42px 38px minmax(120px,1fr) 58px;padding:8px}.ability-row,.fit-row{overflow-x:auto;grid-template-columns:58px repeat(6,52px)}.fit-row{grid-template-columns:58px repeat(7,52px)}.grade-cell small{font-size:8px}.win-score b{font-size:18px}
.calc-grid{grid-template-columns:1fr}
.race-tabs{display:none}
.mobile-race-list{display:block;padding:16px}
.mobile-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.mobile-list-head h2{margin:2px 0;font-size:23px}.mobile-list-head small{color:#71817d}.mobile-list-head strong{color:#0d6754;font-size:13px;background:#e3f3ed;border-radius:999px;padding:6px 10px}
.mobile-race-cards{display:grid;gap:10px}.mobile-race-card{width:100%;border:1px solid #d6e3de;background:#fff;border-radius:13px;padding:14px;text-align:left;color:#17282d;display:grid;grid-template-columns:1fr auto;gap:5px 10px;box-shadow:0 3px 10px #12372e0a}.mobile-race-card:active{border-color:#16806a;background:#f1f9f6}.mobile-race-card small{color:#70817c}.mobile-race-card b{font-size:17px}.mobile-race-card .mobile-race-meta{grid-column:1/-1;color:#536a63;font-size:12px}.mobile-race-card .mobile-race-top{color:#0d6754;font-weight:800;text-align:right}.mobile-race-empty{color:#70817c;text-align:center;padding:28px 10px;line-height:1.7}
.mobile-race-back{display:block;width:100%;border:0;background:#0d6754;color:#fff;border-radius:10px;padding:11px 14px;margin-bottom:10px;font-weight:850;text-align:left}
}

/* v1.32 smartphone presentation */
@media(max-width:700px){
 body{background:#edf5f1}
 header{position:sticky;top:0;z-index:30;padding:13px 14px;min-height:72px;box-shadow:0 3px 14px #073d3429}
 .brand{gap:9px}.brand-mark{font-size:33px}.brand h1{font-size:23px}.brand h1 small{display:none}.brand p{font-size:12px;font-weight:700;opacity:.9;margin-top:5px}
 header .pill{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#d9f6e6;color:#145e40;border:0;font-weight:800}
 main{margin:12px auto 0;padding-bottom:20px}
 .workspace-actions{background:#fff;border-radius:13px;padding:10px;box-shadow:0 4px 14px #12372e0d;display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}
 .workspace-actions button{padding:10px 6px;font-size:12px}.workspace-actions small{grid-column:1/-1;line-height:1.45;padding:0 3px}
 body.mobile-detail .workspace-actions{display:none}
 .mobile-race-list{padding:15px 12px;border-radius:16px;box-shadow:0 5px 18px #12372e10}
 .mobile-list-head{margin:0 3px 13px}.mobile-list-head h2{font-size:24px;color:#164f41}.mobile-list-head h2 span{font-size:20px}.mobile-list-head strong{font-size:12px;padding:7px 10px}
 .mobile-race-cards{gap:11px}
 .mobile-race-card{min-height:108px;border-color:#d1e4dc;border-radius:14px;padding:13px 14px;grid-template-columns:1fr auto;gap:6px 8px;box-shadow:0 4px 12px #12372e12;position:relative;overflow:hidden}
 .mobile-race-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#16806a}
 .mobile-race-card small{font-size:10px;padding-left:3px}.mobile-race-card b{font-size:17px;padding-left:3px;color:#122d27}.mobile-race-card .mobile-race-top{background:#e2f4ec;color:#09654e;border-radius:999px;padding:5px 8px;font-size:10px;align-self:start}.mobile-race-card .mobile-race-meta{font-size:11px;padding-left:3px}.mobile-race-card:after{content:"›";position:absolute;right:13px;bottom:8px;color:#16806a;font-size:23px;font-weight:700}
 .mobile-race-back{position:sticky;top:80px;z-index:20;box-shadow:0 3px 12px #12372e1a;padding:12px 14px}
 .race-head{margin-top:9px;padding:15px 14px;align-items:flex-start}.race-head h2{font-size:21px;margin:4px 0}.race-head strong{font-size:18px;white-space:nowrap}.race-head p{font-size:12px}
 .controls{margin:10px 0 8px;display:block}.jockey-option{font-size:11px}.tabs{display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.tabs button{flex:0 0 auto;font-size:11px;padding:8px 10px}.sort-note{display:block;margin-top:4px;font-size:10px}
 .summary{gap:6px;margin-bottom:9px}.summary div{padding:9px}.summary span{font-size:10px}.summary strong{font-size:16px}.summary .separation-card{padding:11px 12px}.summary .separation-card strong{font-size:19px}.summary .separation-card small{font-size:10px}
 .workspace{gap:9px}.horse-list-heading{position:sticky;top:126px;z-index:12;margin:0 0 8px;padding:10px 12px;border:1px solid #d1e4dc;border-radius:11px;background:#f7fbf9;box-shadow:0 3px 10px #12372e0d}.horse-list-heading b{font-size:14px}.horse-list-heading span{font-size:11px}.horse-list{gap:9px}.horse{border-radius:14px;box-shadow:0 4px 13px #12372e0f;padding:9px}.horse.active{border-color:#14816a;box-shadow:0 4px 13px #0d67541f}.horse-name{font-size:15px}.horse-name small{font-size:10px}.matchup-line{font-size:10px;gap:4px}.matchup-line>span{padding:4px 6px}.fit-evidence{font-size:10px;line-height:1.4}.ability-parts{font-size:8px}.ability-partial{font-size:8px}
 .workspace{grid-template-columns:minmax(0,1fr)}
 .detail{border-radius:14px;padding:15px;scroll-margin-top:135px;overflow-wrap:anywhere}.detail h2{font-size:21px}
 .mobile-bottom-nav{display:grid;grid-template-columns:1fr 1fr;min-height:56px;margin:8px 0;background:#fff;border:1px solid #d7e4df;border-radius:12px;overflow:hidden}
 .mobile-bottom-nav button{border:0;background:#fff;color:#75837f;font-size:11px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.mobile-bottom-nav button span{font-size:22px;line-height:20px}.mobile-bottom-nav button.active{color:#0d6754;background:#edf8f4}.mobile-bottom-nav button:disabled{opacity:.55}
}

#backtest {margin:16px 0;padding:18px;overflow:auto} #backtest h2{font-size:18px;margin:0 0 8px} #backtest p{font-size:13px;line-height:1.6} .audit-table{border-collapse:collapse;width:100%;font-size:13px;margin-top:16px}.audit-table th,.audit-table td{padding:9px;border-bottom:1px solid #dae5e1;text-align:left}.audit-table th{background:#e9f3ee}.audit-table tr.winner{background:#fff3cb}.audit-metrics{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px}.audit-metrics b{color:#087b66}

.horse>.matchup-line{grid-area:match}.matchup-line{display:flex;flex-wrap:wrap;gap:6px 14px;grid-column:1/-1;font-size:12px;color:#365a65}.matchup-line>span{padding:5px 8px;background:#edf5f6;border-radius:6px}.trial-label{background:#fff1d2;padding:10px;border-left:4px solid #b7791f}

.jockey-option{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px;background:#eef4fa;border-radius:8px;margin:8px 0}.jockey-option input{width:auto}.jockey-option small{color:#52606d}

/* Three display groups; condition grades remain separate. */
.ability-row{grid-template-columns:70px repeat(3,minmax(100px,1fr))}
.ability-parts{font-size:10px;line-height:1.5;color:#354650;display:block}
.ability-partial{display:block;font-size:10px;color:#735400}
@media(max-width:700px){.ability-row{grid-template-columns:58px repeat(3,minmax(110px,1fr))}}

.fit-row{grid-template-columns:70px repeat(8,minmax(48px,1fr))}
@media(max-width:700px){.fit-row{grid-template-columns:58px repeat(8,52px)}}

.fit-evidence{grid-area:fitEvidence;font-size:11px;color:#435b61;padding:3px 6px;background:#f0f7f7;border-radius:5px}
.horse{grid-template-areas:"rank number name win" "match match match match" "fit fit fit fit" "fitEvidence fitEvidence fitEvidence fitEvidence" "ability ability ability ability"}

/* レース一覧：開催日 → 競馬場 → レース番号 */
.race-tabs{display:block;white-space:normal;overflow:visible;background:#fff;border:1px solid #d5e2dc;border-radius:13px;padding:13px;margin-bottom:10px}
.race-browser-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.race-browser-head b{font-size:18px;color:#174e43}.race-browser-head small{font-size:12px;color:#667872;margin-left:8px}
.race-date-picker,.race-venue-picker{display:flex;overflow-x:auto;gap:0;margin-bottom:7px}.race-date-picker button,.race-venue-picker button{flex:0 0 auto;min-width:94px;border:1px solid #bdc9ce;background:linear-gradient(#fff,#e7eced);color:#225496;padding:9px 14px;font-weight:800}.race-venue-picker button{min-width:112px}.race-date-picker button.active,.race-venue-picker button.active{background:#364299;color:#fff;border-color:#364299}
.race-browser-list{border:1px solid #cbd9d3;max-height:270px;overflow:auto}.race-browser-row{display:flex;border-bottom:1px solid #d6e1dc}.race-browser-row:last-child{border-bottom:0}.race-browser-row.active{background:#edf5f1}.race-browser-row>button:first-child{display:grid;grid-template-columns:56px 1fr;align-items:stretch;flex:1;min-width:0;border:0;padding:0;background:transparent;text-align:left;color:#17332c}.race-browser-row>button:first-child strong{display:grid;place-items:center;background:#e7f6e9;border-right:1px solid #c8dfd0;font-size:20px}.race-browser-row>button:first-child span{padding:8px 13px}.race-browser-row b,.race-browser-row small{display:block}.race-browser-row b{color:#174e9b;font-size:16px}.race-browser-row small{color:#63746f;margin-top:3px}.race-browser-row .close-tab{border:0;border-left:1px solid #d6e1dc;background:#fff;color:#698078;padding:0 14px;font-size:20px}.race-browser-row.active>button:first-child strong{background:#bedec9}.race-browser-empty{margin:10px 0;color:#63746f}
@media(max-width:700px){.race-tabs{display:none}.mobile-race-list{padding:12px 8px}.mobile-race-cards{gap:0}.mobile-race-pickers{margin:0 -8px 12px}.mobile-date-picker,.mobile-venue-picker{display:flex;overflow-x:auto}.mobile-date-picker button,.mobile-venue-picker button{min-width:76px;flex:0 0 auto;border:1px solid #c3cbd0;background:linear-gradient(#fff,#e5e9ea);padding:10px;color:#18539a;font-weight:800}.mobile-date-picker button.active,.mobile-venue-picker button.active{background:#384198;color:#fff;border-color:#384198}.mobile-venue-picker{margin-top:7px}.mobile-venue-picker button{min-width:95px;flex:1}.mobile-meeting-head{margin:9px 3px;color:#50605c;font-size:12px;font-weight:800}.mobile-race-card{display:grid;grid-template-columns:51px minmax(0,1fr);min-height:78px;padding:0;border-radius:0;box-shadow:none;border:1px solid #cddbd3;border-bottom:0;gap:0}.mobile-race-card:last-child{border-bottom:1px solid #cddbd3}.mobile-race-card:before{display:none}.mobile-race-card:after{right:9px;bottom:27px;font-size:21px;color:#81988f}.mobile-race-number{display:grid;place-items:center;border-right:1px solid #c1dbcb;background:#e5f5e7;font-size:20px}.mobile-race-details{display:block;padding:10px 25px 9px 12px}.mobile-race-details b{display:block;padding:0;font-size:17px;color:#164e98}.mobile-race-details small{display:block;padding:0;margin:3px 0;font-size:11px}.mobile-race-card .mobile-race-top{display:inline-block;text-align:left;font-size:10px;padding:3px 7px}}

.projection-summary{grid-column:3/-1;display:grid;gap:5px;padding:10px 12px;border-left:4px solid #1b9275;background:#eef8f4;border-radius:7px;font-size:12px;color:#25463d}.projection-summary b{font-size:14px}.projection-summary span{line-height:1.6}
@media(max-width:700px){.projection-summary{grid-column:1/-1}}

#jraAutoImport{margin:1rem 0}#jraAutoImport h2{margin-top:0}#jraMeetingResults{display:grid;gap:.65rem;margin-top:.8rem}.jra-meeting{border:1px solid var(--line,#ddd);border-radius:10px;padding:.7rem}.jra-race-links{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.5rem}.jra-race-links a{display:inline-block;padding:.35rem .55rem;border-radius:7px;background:var(--soft,#f2f2f2)}
.jra-read-pdf{margin:4px 6px 4px 0;padding:7px 10px;border:1px solid #8ba8c8;border-radius:8px;background:#eef5fc;color:#183b60;font:inherit}.jra-pdf-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;margin:8px 0;padding:10px;background:#f5f6f8;border-radius:8px;font-size:12px;line-height:1.5}

.jra-pdf-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:.4rem 0}.jra-pdf-row button{padding:.45rem .65rem;border:1px solid #16816b;border-radius:8px;background:#eaf7f2;color:#145d4d;font:inherit;font-weight:700}.jra-pdf-row button:disabled{opacity:.55}

.maternal-filters { display:flex; flex-wrap:wrap; gap:8px 16px; margin-block:12px; }
.maternal-filters select { min-height:44px; font-size:16px; }

#maternalResults .maternal-race-link { min-height:44px; max-width:100%; margin-block:3px; padding:6px 10px; text-align:left; white-space:normal; }

[data-manual-workout] { display:grid; gap:8px; max-width:360px; margin-block:10px; }
[data-manual-workout] label { display:grid; gap:4px; }
[data-manual-workout] input,[data-manual-workout] select { min-height:44px; font-size:16px; }

@media(max-width:700px){
 .horse-list-heading{position:static}
 .ability-row,.fit-row{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;min-width:0}
 .ability-row em,.fit-row em{grid-column:1/-1;padding:5px 8px;justify-content:flex-start}
 .ability-row>*,.fit-row>*{min-width:0;overflow-wrap:anywhere}
}
.prediction-candidates{grid-column:1/-1;background:#fff;border:1px solid #c8d8d2;border-radius:11px;padding:8px 12px}
.prediction-candidates p{display:grid;grid-template-columns:6em minmax(0,1fr);gap:2px 8px;align-items:baseline;margin:0;padding:7px 0}
.prediction-candidates p+p{border-top:1px solid #e5eeea}
.prediction-candidates b{color:#174d3c}
.prediction-candidates span{font-size:inherit;color:inherit;font-weight:700;overflow-wrap:anywhere}
.prediction-candidates small{grid-column:2;color:#516963}

.page-top-action{display:flex;justify-content:center;margin-top:20px}
.page-top-action a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;border:1px solid #0d6754;border-radius:10px;background:#fff;color:#0d6754;font-weight:750;text-decoration:none}
.page-top-action a:focus-visible{outline:2px solid #0d6754;outline-offset:3px}

@media(max-width:700px){
 body.mobile-detail #jraAutoImport,body.mobile-detail #maternalResults{display:none}
 #summary{scroll-margin-top:135px}
}

.mobile-race-actions{display:none}
@media(max-width:700px){
 .mobile-race-actions:has(.mobile-race-back:not(.hidden)){display:flex;flex-wrap:wrap;gap:6px;position:sticky;top:80px;z-index:20;margin-bottom:10px}
 .mobile-race-actions .mobile-race-back{flex:1 1 auto;width:auto;position:static;margin:0}
 .mobile-race-top-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;background:#fff;color:#0d6754;border:1px solid #0d6754;border-radius:10px;font-weight:750;text-decoration:none}
}

#summary.hidden + #myPrediction{display:none}
#myPrediction{margin:0 0 12px;padding:14px}
#myPrediction h2{margin:0 0 10px;font-size:18px}
.my-prediction-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:8px;margin-bottom:10px}
.my-prediction-picks label{display:grid;gap:4px;min-width:0}
.my-prediction-picks select{width:100%;min-height:44px}
#myPredictionStatus:empty{display:none}
#myPredictionResult table{width:100%;margin-top:10px;border-collapse:collapse;table-layout:fixed}
#myPredictionResult th,#myPredictionResult td{padding:6px;text-align:left;border-bottom:1px solid #d7e4df;overflow-wrap:anywhere}
#myPredictionResult th:first-child{width:3.5em}

/* v124: expectation calculator */
.expectation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.expectation-grid fieldset{border:1px solid #cbd5e1;border-radius:10px;min-width:0;padding:12px}.expectation-grid label{display:block;margin:8px 0}.expectation-grid input{display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:5px}#expectationResult{margin:12px 0;font-weight:600;line-height:1.6}@media(max-width:560px){.expectation-grid{grid-template-columns:1fr}}

#gradedForecast { margin:16px 0; padding:16px; }
#gradedForecast details { margin:12px 0; }
#gradedForecast summary, #expectationCompare summary { cursor:pointer; font-weight:700; }
.graded-tickets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.graded-scroll { overflow-x:auto; }
.graded-tickets input { width:5em; max-width:100%; font-size:16px; padding:6px; }
.graded-tickets .audit-table { margin-top:0; }
@media(max-width:760px) {
 .graded-tickets { grid-template-columns:1fr; gap:8px; }
 .graded-tickets .audit-table th, .graded-tickets .audit-table td { padding:6px 4px; }
}

#jraDirectEntry label{display:grid;gap:4px;margin:8px 0}
#jraEntryUrl{width:100%;min-width:0;box-sizing:border-box;font-size:16px}

.bloodline-table{width:100%;border-collapse:collapse;font-size:.86rem}.bloodline-table th,.bloodline-table td{border-bottom:1px solid #7775;padding:.6rem;text-align:left;min-width:7rem}.bloodline-table th{font-weight:700}
