:root{--ink:#142c45;--muted:#68798b;--line:#dde5ec;--green:#087762;--red:#b54a52;--paper:#fff;--bg:#f3f6f9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}button,select{font:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button,summary,select{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid #4b9bda;outline-offset:4px}.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.header-inner{max-width:960px;margin:auto;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.brand{font-size:19px;font-weight:750;letter-spacing:.025em;display:flex;align-items:center;gap:18px}.brand span{font-size:12px;font-weight:500;border-left:1px solid var(--line);padding-left:18px;color:var(--muted)}.year{font-size:12px;letter-spacing:.16em;color:var(--muted)}main{max-width:896px;margin:auto;padding:36px 0 24px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}h1,h2,p{margin:0}h1,h2{font-size:17px;letter-spacing:.035em;font-weight:700}.period{font-size:12px;color:var(--muted)}.overall{background:var(--ink);border-radius:16px;color:#fff;display:grid;grid-template-columns:1.1fr 1fr;overflow:hidden}.return-stat{padding:28px 32px;border-right:1px solid #ffffff26}.stat-label{font-size:12px;color:#cbd6e2;display:block;margin-bottom:10px}.roi-value{font-size:58px;letter-spacing:-.045em;line-height:1.1;font-weight:720}.roi-value small{font-size:23px;letter-spacing:0;margin-left:5px;font-weight:500}.overview-right{padding:28px 32px;display:flex;flex-direction:column;justify-content:space-between;gap:16px}.profit-value{font-size:28px;letter-spacing:-.035em;font-weight:650;white-space:nowrap}.profit-value small{font-size:13px;margin-left:4px}.overview-right .stat-label{margin-bottom:5px}.race-total{font-size:12px;color:#cbd6e2}.race-total b{font-size:20px;color:#fff;padding-right:5px;font-weight:600}.amounts{grid-column:1/-1;background:#ffffff09;border-top:1px solid #ffffff20;display:flex;justify-content:space-between;gap:20px;padding:16px 32px;font-size:12px;color:#cbd6e2}.amounts b{margin-left:12px;font-weight:500;color:white;font-size:14px}.months-section{margin-top:36px}.months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.month{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:15px 18px;text-align:left;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:7px;color:var(--ink);transition:border-color .15s,background .15s}.month:hover{border-color:#93a9bc;background:#fafdff}.month[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#edf3f8}.month-name{font-size:12px;font-weight:600}.month-roi{font-size:19px;font-weight:650;letter-spacing:-.03em}.month-profit{font-size:12px}.month-count{font-size:10px;color:var(--muted);text-align:right}.positive{color:var(--green)}.negative{color:var(--red)}.races-section{margin-top:40px}.races-heading{margin-bottom:18px}.race-count{font-size:11px;color:var(--muted);margin-top:6px}select{min-height:44px;padding:10px 30px 10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;max-width:160px;font-size:13px}.races{display:flex;flex-direction:column;gap:12px}.race-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.race-main{padding:20px 24px 17px}.race-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.race-id{display:flex;gap:12px;align-items:center}.date{font-size:12px;color:var(--muted)}.venue{font-size:15px;font-weight:700}.race-name{color:var(--muted);font-size:12px;margin-top:7px;line-height:1.5}.race-profit{font-size:23px;font-weight:650;letter-spacing:-.03em;white-space:nowrap}.race-profit small{font-size:12px;margin-left:3px;font-weight:500}.race-amounts{display:flex;align-items:center;gap:20px;color:var(--muted);font-size:11px;margin-top:17px}.race-amounts b{font-weight:500;color:var(--ink);font-size:13px;margin-left:5px}.race-amounts .race-roi{margin-left:auto}.details{border-top:1px solid #edf0f3}summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:45px;padding:12px 24px;font-size:12px;color:#52677c}summary::-webkit-details-marker{display:none}summary::after{content:'+';font-size:19px;line-height:1;font-weight:400}.details[open] summary::after{content:'−'}.bets{padding:0 24px 18px}.bet-line{font-size:12px;line-height:1.9;padding:7px 0;border-bottom:1px solid #edf0f3;overflow-wrap:anywhere}.bet-line:last-of-type{border-bottom:0}.bet-line.marks{font-size:11px;color:var(--muted)}.bet-source{display:inline-block;font-size:11px;color:var(--muted);padding:12px 0 2px;text-decoration:underline;text-underline-offset:4px}.more{width:100%;min-height:48px;background:#fff;border:1px solid var(--line);border-radius:9px;color:var(--ink);margin-top:16px;font-size:13px}.more:hover{background:#edf3f8}footer{border-top:1px solid var(--line);margin-top:38px;padding-top:20px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}footer a:hover{text-decoration:underline}.loading{text-align:center;padding:40px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
@media(max-width:960px){main{margin:0 24px}.header-inner{padding:0 24px}}
@media(max-width:600px){.header-inner{height:59px;padding:0 20px}.brand{font-size:17px;gap:13px}.brand span{padding-left:13px;font-size:11px}.year{font-size:10px}main{padding-top:25px;margin:0 16px}.section-top{margin-bottom:13px}h1,h2{font-size:15px}.period{font-size:10px}.overall{border-radius:12px;grid-template-columns:1fr 1fr}.return-stat{padding:24px 18px}.stat-label{font-size:11px}.roi-value{font-size:45px}.roi-value small{font-size:19px;margin-left:3px}.overview-right{padding:24px 16px 20px;gap:16px}.profit-value{font-size:24px}.profit-value small{font-size:11px}.race-total{font-size:11px}.race-total b{font-size:18px}.amounts{padding:14px 18px;gap:8px;font-size:10px}.amounts b{display:block;margin:5px 0 0;font-size:14px}.amounts>span:last-child{text-align:right}.months-section{margin-top:28px}.months{gap:8px}.month{padding:12px 10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.month-name{font-size:11px}.month-roi{font-size:19px}.month-profit{font-size:11px;white-space:nowrap}.month-count{font-size:10px}.races-section{margin-top:30px}.race-main{padding:17px 16px 15px}.race-id{gap:5px;display:flex;flex-direction:column;align-items:flex-start}.date{font-size:11px}.venue{font-size:14px}.race-top{align-items:center}.race-profit{font-size:22px}.race-name{font-size:11px}.race-amounts{gap:13px;font-size:10px;margin-top:14px}.race-amounts b{display:block;font-size:12px;margin:5px 0 0}.race-roi{text-align:right}summary{padding:11px 16px;min-height:44px}.bets{padding:0 16px 14px}.bet-line{font-size:12px}footer{margin-top:28px;padding-bottom:12px}select{font-size:12px}.race-count{font-size:10px}}
@media(max-width:350px){.roi-value{font-size:38px}.profit-value{font-size:20px}.return-stat{padding-left:14px;padding-right:12px}.overview-right{padding-left:12px;padding-right:12px}.month{padding-left:8px;padding-right:8px}.month-profit{font-size:10px}.month-roi{font-size:18px}.race-profit{font-size:20px}.period{font-size:9px}.brand span{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hit-rate{margin-top:12px;color:#cbd6e2;font-size:12px;line-height:1.5}.hit-rate span{margin-left:6px;color:#fff}@media(max-width:600px){.hit-rate{font-size:11px;margin-top:10px}.overview>.section-top{flex-wrap:wrap}}

.hit-count{font-size:12px;color:#cbd6e2;margin-top:4px;line-height:1.5}.overview-right{justify-content:flex-start;gap:20px}.profit-amounts{display:grid;gap:9px;font-size:12px;color:#cbd6e2}.profit-amounts>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.profit-amounts b{font-weight:500;color:#fff;white-space:nowrap}@media(max-width:600px){.hit-count{font-size:11px}.overview-right{gap:17px}.profit-amounts{font-size:10px;gap:8px}.profit-amounts>div{display:block}.profit-amounts b{display:block;font-size:12px;margin-top:2px}}

footer{justify-content:flex-end}
.admin-main{max-width:620px}.admin-view{font-size:12px;color:var(--muted)}.admin-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px}.admin-meta{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}.admin-stats{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:12px;padding:30px 0}.admin-stats span{display:block;font-size:11px;color:var(--muted);margin-bottom:9px}.admin-stats b{font-size:22px;font-weight:650;white-space:nowrap}.publish-button{border:0;border-radius:9px;background:var(--ink);color:#fff;width:100%;min-height:52px;font-size:15px;font-weight:600}.publish-button:disabled{opacity:.5;cursor:default}.publish-status{font-size:13px;line-height:1.8;color:var(--green);margin-top:14px;overflow-wrap:anywhere}.publish-status:empty{display:none}.publish-status.error{color:var(--red)}.reload-status{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:9px 16px;color:var(--ink)}@media(max-width:600px){.admin-card{padding:22px 18px}.admin-stats{gap:10px}.admin-stats b{font-size:19px}.admin-meta{font-size:11px}}@media(max-width:350px){.admin-stats b{font-size:16px}.admin-stats{gap:8px}}
