:root{font-family:system-ui,'Hiragino Kaku Gothic ProN',sans-serif;color:#46364a;background:#fff2f7}*{box-sizing:border-box}body{margin:0}header{background:#f6b8d4;border-bottom:5px solid #ae648e;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}h1{font-size:clamp(19px,3vw,28px);margin:0;color:#683c62}h2{font-size:19px;margin:0 0 12px}h3{margin:8px 0}.wrap{max-width:1280px;margin:auto;padding:14px}.grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:12px}.panel{background:#fffdfc;border:3px solid #e7a9c8;border-radius:16px;padding:14px;box-shadow:0 5px 0 #f4dce8;margin-bottom:14px}.stage{background:#b9e6ff;border:4px solid #8cbbac;border-radius:12px;overflow:hidden}canvas{display:block;width:100%;height:auto;image-rendering:pixelated}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>*{min-width:0}input,select,button,textarea{font:inherit;border:2px solid #dba9c5;border-radius:10px;padding:9px;max-width:100%}input,select,textarea{background:white}button{background:#e973a7;color:white;font-weight:800;cursor:pointer}button.alt{background:white;color:#985278}button:disabled{opacity:.5}.muted{color:#786977;font-size:13px}.note{padding:10px;border-radius:10px;background:#fff3c9;margin:10px 0}.rank{display:flex;align-items:center;gap:8px;padding:7px 3px;border-bottom:1px solid #f2dbe8}.rank .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#f7dfec;border:2px solid white;box-shadow:0 0 0 1px #d8a5bf}.tiny{font-size:12px}.listrow{border-bottom:1px solid #eedde6;padding:9px 2px;display:flex;justify-content:space-between;gap:10px;align-items:center}.section{margin-top:18px}.hide{display:none!important}.field{display:flex;flex-direction:column;gap:5px;margin:8px 0}.field input,.field select{width:100%}.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pill{background:#f8e0ed;border-radius:100px;padding:4px 10px;font-size:12px;font-weight:700}.status{font-size:13px}.scroll{max-height:380px;overflow:auto}.racecard{border:2px solid #f0cfdf;border-radius:10px;padding:10px;margin:8px 0}.title{font-weight:900;color:#9c4476}.hidden-when-public{display:none}.mini-avatar{width:25px;height:25px;border-radius:50%;object-fit:cover}a{color:#99457c}nav a{font-weight:700;margin-left:10px}table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #eddce6;text-align:left;padding:8px 4px}small{color:#76636e}@media(max-width:760px){.grid,.cols{grid-template-columns:1fr}.wrap{padding:8px}.panel{padding:10px}header{padding:10px}.row>input{flex:1}}

.season-banner{background:linear-gradient(110deg,#ffe4f0,#e6f6ff,#e5f9e8);border:3px solid #db95b9;border-radius:16px;padding:15px;margin:5px 0 12px;display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;color:#78466d}.season-banner b{font-size:20px}.season-banner span{font-size:13px;font-weight:700}.board{background:#263b3b;color:#fff4da;border:5px solid #9b756a;border-radius:8px;padding:9px;box-shadow:inset 0 0 0 2px #53776b}.board-head{text-align:center;color:#ffd68c;letter-spacing:1.5px;font-size:12px;font-weight:900;border-bottom:2px dotted #6d8880;padding:5px}.board-switch{gap:4px;margin:8px 0}.board-tab{flex:1;font-size:11px;border:1px solid #8eae9b;padding:7px 3px;background:#425a54;color:#f1f1df}.board-tab.active{background:#f5d28a;color:#314038}.board-line{display:grid;grid-template-columns:26px 1fr auto;gap:6px;align-items:center;padding:7px 2px;border-bottom:1px solid #47645c;font-size:12px}.board-line b{font-size:18px;color:#ffde93}.board-line span{overflow-wrap:anywhere}.ticket-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:13px;margin-top:14px}.ticket-card{border:2px solid #edc3d6;border-radius:12px;padding:10px;background:#fffafd}.ticket-card canvas{border:1px solid #e9cad8;border-radius:5px;image-rendering:pixelated;width:100%;height:auto}.ticket-card .row{justify-content:space-between;margin-top:7px}.ticket-card button{font-size:13px;padding:7px 10px}.ticket-card .muted{font-size:11px}.ticket-card h3{font-size:14px;margin:5px 0}.ticket-card p{margin:5px 0}.ticket-empty{grid-column:1/-1;color:#796c75}.profile-tickets{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.profile-tickets button{font-size:12px}.board-race-label{font-size:11px;color:#d3e8d8;text-align:center;margin:8px 0}@media(max-width:600px){.ticket-gallery{grid-template-columns:1fr}.season-banner b{font-size:17px}}

/* Ver.6: horizontal pixel-art horse line-up and private-by-selection ticket drawer */
.wrap{max-width:1560px}.race-hero{border:4px solid #e8a3bd;border-radius:18px;background:#fff8fc;overflow:hidden;margin-bottom:16px;box-shadow:0 5px 0 #f1d3e1}.race-hero-image{min-height:260px;background:#8cdbff url('racecourse_header.jpg') center top / cover no-repeat;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:18px}.race-hero-title{border:5px solid #895b3b;border-radius:16px;background:#7a4e35;color:white;padding:16px 22px;font-weight:900;font-size:clamp(18px,2.3vw,30px);text-shadow:2px 2px #452f2b;box-shadow:0 5px 0 #493123}.race-hero-title strong{font-size:1.35em}.race-hero-title small{display:block;color:#ffdaee;margin-top:6px;font-size:13px}.race-hero-board{background:#3c2b2a;border:6px solid #a16e44;border-radius:12px;color:#fff8df;width:min(360px,44%);padding:8px;box-shadow:0 6px 0 #6d482c}.hero-rank{display:flex;align-items:center;gap:8px;padding:5px;border-bottom:1px solid #6c5146;font-size:13px}.hero-rank b{color:#ffdf71;width:20px}.hero-rank span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:13px;background:#ffdbeb;border-top:3px solid #eeafc8}.race-controls p{margin:3px 0}.race-controls button{white-space:nowrap}.lineup{display:flex;overflow-x:auto;gap:6px;align-items:flex-end;min-height:215px;padding:17px 10px 12px;background:linear-gradient(#bdeaff 0%,#f6e5f3 21%,#6fbd6a 22%,#78c76d 84%,#e6a7c2 85%,#e6a7c2 100%);scrollbar-color:#d98aaf #ffe9f3}.runner{flex:1 0 91px;min-width:91px;max-width:160px;text-align:center;position:relative;transition:transform .35s}.runner-art{position:relative}.horse-art{width:100%;height:100px;object-fit:contain;image-rendering:pixelated;mix-blend-mode:multiply}.rider-avatar{position:absolute;left:35%;top:4px}.rider-avatar .avatar{width:32px;height:32px;border:2px solid #fff}.winner-crown{position:absolute;top:-28px;left:39%;font-size:30px;filter:drop-shadow(0 2px 1px #7e4c25)}.runner-rank{display:inline-block;background:#ffecac;color:#6c423f;border:2px solid #bb7d61;border-radius:5px;padding:1px 8px;font-weight:900}.runner-name{font-size:12px;font-weight:800;background:#fff9fa;border-radius:5px;padding:4px 2px;overflow-wrap:anywhere;min-height:36px}.runner-points{color:#914a71;font-size:12px;font-weight:900}.runner.galloping{animation:gallop .33s ease-in-out infinite alternate;transform:translateX(var(--shift))}@keyframes gallop{0%{translate:0 0}100%{translate:0 -18px}}.dashboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard .panel{min-width:0}.dashboard h2{font-size:17px}.podium{line-height:2.2;font-weight:800}.ticket-panel details{margin-top:12px}.ticket-panel .ticket-gallery{grid-template-columns:1fr}.ticket-panel .ticket-card{padding:5px}.ticket-panel .ticket-card canvas{width:100%}summary{cursor:pointer;background:#ffe4f0;color:#8d4d74;font-weight:900;border-radius:9px;padding:10px;margin:8px 0}.empty-race{margin:auto;padding:40px}.dashboard .rank{gap:4px}.dashboard .rank .avatar{width:26px;height:26px}.dashboard .rank .name{font-size:12px;padding:4px}.dashboard .rank strong{font-size:12px}.dashboard .panel .listrow{font-size:13px}.dashboard .panel .listrow b{white-space:nowrap}@media(max-width:1050px){.dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.dashboard{grid-template-columns:1fr}.race-hero-image{min-height:210px;padding:8px}.race-hero-title{padding:9px;font-size:15px}.race-hero-board{width:48%;padding:3px;border-width:3px}.hero-rank{font-size:10px;padding:3px;gap:3px}.hero-rank .mini-avatar{width:18px;height:18px}.race-controls{padding:9px}.race-controls button{flex:1}.lineup{min-height:205px}.runner{flex-basis:94px}}

/* Ver.7: ranking palette shared by all leaderboard views */
.rank-tone-1{background:#fff3c4!important;color:#392b24!important}.rank-tone-2{background:#e3f2ff!important;color:#273a53!important}.rank-tone-3{background:#ffe3c2!important;color:#49352e!important}.rank-tone-4{background:#f4e9fe!important;color:#463951!important}.rank-tone-5{background:#f1f3f6!important;color:#374052!important}
.rank-tone-1 b,.rank-tone-2 b,.rank-tone-3 b,.rank-tone-4 b,.rank-tone-5 b{color:inherit!important}
.board-line{border-radius:5px;margin:3px 0;padding:7px 9px}
.hero-rank{border-radius:5px;margin:3px 0;padding:5px 7px}
.ticket-history{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.ticket-history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:2px solid #f3d4e1;background:#fffafd;border-radius:12px;padding:11px}
.ticket-history-info{display:flex;flex-direction:column;gap:3px;min-width:0;color:#604559}.ticket-history-info strong{overflow-wrap:anywhere}.ticket-history-info small{color:#977c8a}.ticket-history-info span{color:#bb4f87;font-size:13px;font-weight:800}
.ticket-history-row button{flex-shrink:0;font-size:12px}.ticket-preview{margin-top:15px}.ticket-preview .ticket-card{max-width:540px;margin:auto}.ticket-actions{text-align:center;margin-top:9px}
@media(max-width:600px){.ticket-history-row{align-items:flex-start;flex-direction:column}.ticket-history-row button{align-self:flex-end}}


/* Ver.8: Independent art assets, no baked-in duplicate scoreboards. */
.race-hero-image{background-image:url('assets/racecourse_autumn.png');background-size:cover;background-position:center center;min-height:260px;display:block;position:relative;padding:14px;}
.race-hero-title{display:inline-block;position:relative;z-index:1;background:rgba(94,51,40,.94);max-width:48%;font-size:clamp(16px,2vw,27px);}
.race-hero-board{position:absolute;right:14px;top:14px;z-index:2;width:min(340px,46%);background:#35251f;border:5px solid #9e633c;box-shadow:0 5px 0 #573d2d;max-height:calc(100% - 28px);overflow:auto;}
.lineup{flex-direction:row-reverse;justify-content:flex-start;align-items:flex-end;gap:10px;background:linear-gradient(#b5e9fc 0 18%,#8ccf76 18% 76%,#f8d7e8 76%);padding:22px 12px 14px;min-height:200px;}
.runner{flex:1 0 92px;min-width:92px;max-width:145px;}
.horse-art{height:98px;object-fit:contain;mix-blend-mode:normal;image-rendering:pixelated;}
.runner-art{height:113px;display:flex;align-items:end;justify-content:center;}
.rider-avatar{left:36%;top:2px;}
.runner.galloping{animation:none;transform:none;}
.winner-crown{left:40%;top:-22px;}
.runner:nth-child(1) .runner-rank,.rank-tone-1{background:#ffecaa!important;color:#4c372e!important;}
.runner:nth-child(2) .runner-rank,.rank-tone-2{background:#d8eeff!important;color:#284968!important;}
.runner:nth-child(3) .runner-rank,.rank-tone-3{background:#ffdac6!important;color:#67402c!important;}
.runner:nth-child(4) .runner-rank,.rank-tone-4{background:#ebdefb!important;color:#544269!important;}
.runner:nth-child(n+5) .runner-rank,.rank-tone-5{background:#f1f3f7!important;color:#3e4654!important;}
.hero-rank{color:#29313e;border-radius:6px;}
.hero-rank span,.hero-rank strong,.hero-rank b{color:inherit;}
.ticket-card canvas{image-rendering:auto;}
@media(max-width:650px){.race-hero-image{min-height:230px}.race-hero-title{max-width:49%;font-size:14px;padding:8px}.race-hero-board{width:48%;right:7px;top:7px;max-height:215px}.lineup{justify-content:flex-start}.horse-art{height:92px}}

body.winter-season .race-hero-image{background-image:url('assets/racecourse_winter.png')}

/* Ver.9: self-contained, crisp pixel-art track and 13 hand-drawn transparent horses */
.race-hero-image{background-image:url('assets/racecourse_autumn.png')!important;background-size:cover!important;background-position:center!important;min-height:300px!important}
.lineup{background:#eac08e url('assets/racecourse_autumn.png') center bottom/cover no-repeat!important;flex-direction:row!important;align-items:flex-end;justify-content:flex-start;min-height:255px!important;padding-top:34px!important;padding-bottom:15px!important;gap:8px!important}
.runner{flex:0 0 116px!important;min-width:105px!important;max-width:125px!important}
.runner-art{height:125px!important;position:relative}
.horse-art{width:120px!important;height:110px!important;object-fit:contain!important;mix-blend-mode:normal!important;image-rendering:pixelated!important}
.rider-avatar{left:12%!important;top:0!important}.rider-avatar .avatar{width:25px!important;height:25px!important}
.winner-crown{top:-25px!important;left:45%!important}
.race-hero-board{max-height:270px!important;overflow-y:auto!important;z-index:2}
.race-hero-title{z-index:2}
@media(max-width:650px){.race-hero-image{min-height:240px!important}.lineup{min-height:225px!important}.runner{flex-basis:106px!important}.horse-art{width:108px!important;height:102px!important}}

/* Ver.10: original Ver.7 layout + the requested kawaii pixel art reference */
:root{--pink:#f566a8;--rose:#c54c85;--cream:#fff8f1}
body{background:#fff0f7;color:#563951}
header{background:#ffb9d8;border-bottom:5px solid #ed79a9}
.season-banner{border:4px solid #fa9bc5;background:linear-gradient(110deg,#fff0f6,#e9f7ff,#f1fff2)}
.race-hero{border:5px solid #f58ab8;background:#fff7f9;border-radius:12px}
.race-hero-image{background-image:url('assets/racecourse_autumn.png')!important;background-size:100% 100%!important;background-position:center!important;min-height:clamp(190px,24vw,365px)!important;padding:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.race-hero-title{position:relative;z-index:1;max-width:48%;background:#fff5f9f2;color:#a82d76;border:5px solid #f48eb9;border-radius:10px;text-shadow:none;box-shadow:5px 5px 0 #bd6d93;padding:10px 16px;font-size:clamp(13px,2vw,25px)}
.race-hero-title small{color:#b25b87}.race-hero-board{position:relative;right:auto;top:auto;z-index:1;width:min(350px,47%);max-height:clamp(155px,23vw,340px)!important;overflow-y:auto!important;background:#62372c;border:6px solid #d79751;border-radius:12px;box-shadow:5px 5px 0 #78445a}
.race-hero-board .board-head{color:#ffe59b}.hero-rank{background:#fff8f4;color:#3f3041}
.lineup{background:#f0bf84 url('assets/track_autumn.png') center center / 100% 100% no-repeat!important;flex-direction:row!important;align-items:flex-end;justify-content:flex-start;min-height:310px!important;gap:8px!important;padding:45px 14px 16px!important;overflow-x:auto;scrollbar-color:#f184b7 #fff1f7}
.runner{flex:0 0 118px!important;min-width:118px!important;max-width:118px!important;transition:none!important}
.runner-art{height:143px!important;position:relative;display:flex;align-items:flex-end}.horse-art{width:118px!important;height:112px!important;object-fit:contain!important;mix-blend-mode:normal!important;image-rendering:pixelated!important}
.rider-avatar{position:absolute;left:8%!important;top:10px!important}.rider-avatar .avatar{width:25px!important;height:25px!important}
.winner-crown{top:-17px!important;left:50%!important;z-index:2;font-size:31px}
.runner-name{background:#fffaf3;border:2px solid #eaa8bb;border-radius:6px;min-height:40px}.runner-rank{border-radius:4px}.runner-points{background:#fff8f3;padding:3px 0;border-radius:5px}
.runner.galloping{animation:none!important;transform:none!important}
.panel{border-color:#ef9ec4;box-shadow:4px 5px 0 #f4d2e3}.dashboard{gap:14px}
.board{background:#5b332c;border:8px solid #d8954e;box-shadow:inset 0 0 0 3px #ffdb92;color:#fff4dd}
.board-head{color:#ffeb9d}.board-line{border-bottom-color:#a6765a}.board-tab{background:#9c6956}.board-tab.active{background:#ffe28e}
body.winter-season .race-hero-image{background-image:url('assets/racecourse_winter.png')!important}
body.winter-season .lineup{background-image:url('assets/track_winter.png')!important}
@media(max-width:680px){.race-hero-image{min-height:190px!important;padding:7px}.race-hero-title{padding:7px;font-size:12px;max-width:50%;border-width:3px}.race-hero-board{width:49%;border-width:3px;max-height:175px!important}.hero-rank{font-size:10px}.lineup{min-height:270px!important;padding-top:25px!important}.runner{flex-basis:108px!important;min-width:108px!important;max-width:108px!important}.horse-art{width:108px!important;height:104px!important}}


/* Ver.11: smartphone-first fixes. Single grandstand only in header; horses on separate track. */
.lineup{background-image:url('assets/horse_track_autumn.png')!important;background-size:100% 100%!important;scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;}
body.winter-season .lineup{background-image:url('assets/horse_track_winter.png')!important;}
.runner{scroll-snap-align:center;}
.race-hero-image{background-size:cover!important;}
.race-hero-title,.race-hero-board{min-width:0;}
.race-hero-title strong{overflow-wrap:anywhere;}
.race-hero-board{overflow-y:visible!important;max-height:none!important;}
.dashboard{grid-template-columns:repeat(2,minmax(0,1fr));}
button,select,summary{min-height:44px;touch-action:manipulation;}
.race-controls{gap:8px;}
.mobile-scroll-hint{display:none;}
@media(max-width:700px){
 body{overflow-x:hidden;}
 header{align-items:flex-start;}
 header nav{display:flex;gap:12px;}
 header nav a{margin:0;padding:7px 0;}
 .wrap{padding:8px;}
 .season-banner{padding:10px;gap:5px;}
 .season-banner b{font-size:16px;}
 .season-banner span{font-size:12px;}
 .race-hero-image{display:flex!important;flex-direction:column;gap:0;padding:0!important;min-height:0!important;background-size:cover!important;background-position:center center!important;}
 .race-hero-title{margin:10px;max-width:90%!important;padding:9px 12px!important;font-size:clamp(14px,4.3vw,20px)!important;line-height:1.35;}
 .race-hero-board{position:static!important;width:100%!important;max-height:none!important;border:0!important;border-top:4px solid #e4a3b4!important;border-radius:0!important;box-shadow:none!important;background:#603b32eF;}
 .race-hero-board .board-head{font-size:13px;}
 .hero-rank{font-size:13px!important;padding:6px!important;}
 .hero-rank .mini-avatar{width:24px!important;height:24px!important;}
 .race-controls{padding:10px!important;}
 .race-controls button{width:100%;flex:1 0 100%;}
 .lineup{min-height:240px!important;padding:35px 10px 12px!important;gap:8px!important;}
 .runner{flex:0 0 118px!important;min-width:118px!important;max-width:118px!important;}
 .horse-art{width:116px!important;height:108px!important;}
 .runner-name{font-size:13px;}
 .dashboard{grid-template-columns:1fr!important;gap:8px;}
 .dashboard .panel{margin-bottom:6px;}
 .dashboard h2{font-size:18px;}
 .ticket-history,.ticket-gallery{min-width:0;}
 .mobile-scroll-hint{display:block;background:#fff0c8;color:#754b3b;text-align:center;padding:8px;font-weight:800;font-size:13px;}
 .board-line{grid-template-columns:26px minmax(0,1fr) auto;}
 input,select{font-size:16px;}
}
@media(min-width:701px) and (max-width:1100px){.dashboard{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(min-width:1101px){.dashboard{grid-template-columns:repeat(4,minmax(0,1fr));}}

/* Ver.12: independently drawn right-facing horses and responsive finish-line course */
.horse-art{image-rendering:pixelated!important;object-fit:contain!important;mix-blend-mode:normal!important;}
.runner-art{overflow:visible;}
.rider-avatar{left:7%!important;top:5px!important;z-index:2;}
.lineup{background-position:center center!important;background-repeat:no-repeat!important;}
@media(max-width:680px){.lineup{background-size:auto 100%!important;min-height:255px!important}.runner-art{height:133px!important}.horse-art{width:118px!important;height:108px!important}.runner{min-width:118px!important;flex-basis:118px!important;max-width:118px!important}.race-hero-image{background-position:center!important}.race-hero-board{max-height:160px!important}}

/* Ver.13 */
.horse-art{object-fit:contain!important;image-rendering:auto;}
.runner-art{display:flex;justify-content:center;align-items:flex-end;min-height:118px;}
@media(max-width:600px){.runner{min-width:104px;}.horse-art{height:108px!important;}}

/* Ver.14: corrected independent sprites, readable smartphone interface */
.horse-art{height:112px!important;width:116px!important;object-fit:contain!important;image-rendering:auto!important;mix-blend-mode:normal!important;filter:drop-shadow(0 2px 0 rgba(61,39,34,.12))}
.runner-art{height:143px!important;min-height:143px!important;overflow:visible!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;position:relative}
.rider-avatar{display:none!important}
.runner-name{display:flex;justify-content:center;align-items:center;gap:5px;white-space:normal;min-height:45px;padding:5px 3px!important}
.runner-name .mini-avatar{width:22px;height:22px;flex:none;border:1px solid #eab6c9;background:#fff}
.runner-name span{display:block;min-width:0;max-width:100%;overflow-wrap:anywhere}
.runner-rank{min-height:25px;padding:2px 8px}
.runner{flex:0 0 123px!important;min-width:123px!important;max-width:123px!important;scroll-snap-align:start}
.sample-runner .runner-name{background:#fff1f8;color:#7f4c67}
.sample-runner .runner-points{font-size:11px;color:#866f7b}
.lineup{background-image:url('assets/horse_track_autumn.png')!important;background-size:100% 100%!important;background-repeat:no-repeat!important;min-height:295px!important;gap:5px!important;align-items:flex-end!important;overflow-x:auto!important;padding:26px 10px 14px!important}
body.winter-season .lineup{background-image:url('assets/horse_track_winter.png')!important}
.winner-crown{top:1px!important;left:44%!important;transform:translateX(-50%);font-size:26px!important;pointer-events:none}
.hero-placeholder{color:#fff4e8;font-size:13px;line-height:1.6;padding:10px}
@media(max-width:700px){
 .race-hero-image{background-position:center center!important}
 .race-hero-title{font-size:clamp(15px,4vw,21px)!important}
 .race-hero-board{width:100%!important;max-height:none!important}
 .lineup{background-size:auto 100%!important;min-height:286px!important;gap:5px!important;padding:28px 9px 13px!important}
 .runner{flex:0 0 122px!important;min-width:122px!important;max-width:122px!important}
 .horse-art{width:116px!important;height:112px!important}
 .runner-art{height:139px!important;min-height:139px!important}
 .runner-name{font-size:12px!important}
 .race-controls button{font-size:15px}
 .panel,.race-hero{max-width:100%;min-width:0}
 .ticket-history,.ticket-preview{max-width:100%;overflow-x:auto}
}

/* Ver.15: leading horse at right end, consistent scroll on iPhone */
.lineup{flex-direction:row!important;direction:ltr!important;}
.runner{direction:ltr!important;}
.runner.rank-runner-1{filter:drop-shadow(0 1px 5px rgba(255,198,69,.42));}
.runner.rank-runner-1 .runner-rank{background:#ffe187!important;border-color:#dcaa40!important;color:#674624!important;}
.runner.rank-runner-2 .runner-rank{background:#d8eeff!important;border-color:#99c7f0!important;}
.runner.rank-runner-3 .runner-rank{background:#ffdac6!important;border-color:#eda98a!important;}
.runner.rank-runner-4 .runner-rank{background:#ebdefb!important;border-color:#c9a6f4!important;}
.runner.rank-runner-5 .runner-rank{background:#f1f3f7!important;border-color:#c5d0db!important;}
.ticket-card{max-width:100%;min-width:0;}
.ticket-card canvas{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;border:2px solid #f4b0c9;border-radius:12px;box-shadow:0 3px 0 #f3d1e0;}
.ticket-preview{min-width:0;max-width:100%;overflow-x:hidden!important;}
.ticket-actions{display:flex;gap:8px;margin-top:12px;}
.ticket-actions button{min-height:44px;}
@media(max-width:700px){.ticket-card{width:100%;padding:3px!important}.ticket-card canvas{width:100%!important;}.ticket-actions button{width:100%;}}

/* Ver.16: 記念チケットのスマホ表示を整える */
.ticket-preview .ticket-card{padding:8px!important;border:2px solid #ed99b8;background:#fff9fb;border-radius:14px;}
.ticket-preview .ticket-card canvas{width:100%!important;aspect-ratio:16/9;object-fit:contain;background:#fff9f9;border-radius:9px;image-rendering:auto!important;}
@media(max-width:700px){.ticket-preview .ticket-card{padding:4px!important}.ticket-preview .ticket-actions{display:block}.ticket-preview .ticket-actions button{width:100%;}}


/* Ver.17: compact iPhone ranking, two rows of five without sideways scrolling */
.horse-more-btn{display:none;}
@media (max-width:700px){
  .lineup{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:10px 3px!important;
    align-content:start!important;
    align-items:end!important;
    justify-items:stretch!important;
    width:100%!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
    min-height:0!important;
    padding:24px 5px 12px!important;
    background-size:100% 100%!important;
    scroll-snap-type:none!important;
  }
  .lineup .runner{
    order:var(--mobile-order,99)!important;
    flex:initial!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    box-sizing:border-box!important;
    scroll-snap-align:none!important;
  }
  .lineup .runner-art{
    height:74px!important;
    min-height:74px!important;
    width:100%!important;
  }
  .lineup .horse-art{
    display:block!important;
    width:100%!important;
    max-width:76px!important;
    height:71px!important;
    object-fit:contain!important;
  }
  .lineup .winner-crown{
    top:-13px!important;
    left:50%!important;
    font-size:18px!important;
  }
  .lineup .runner-rank{
    display:block!important;
    font-size:11px!important;
    padding:1px 0!important;
    min-height:0!important;
    white-space:nowrap!important;
  }
  .lineup .runner-name{
    display:block!important;
    margin-top:2px;
    height:36px!important;
    min-height:36px!important;
    max-height:36px!important;
    padding:3px 1px!important;
    font-size:10px!important;
    font-weight:800!important;
    line-height:1.35!important;
    overflow:hidden!important;
    border-width:1px!important;
    overflow-wrap:anywhere!important;
  }
  .lineup .runner-name .mini-avatar{display:none!important;}
  .lineup .runner-name span{
    display:-webkit-box!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
    overflow:hidden!important;
  }
  .lineup .runner-points{
    margin-top:2px;
    padding:1px 0!important;
    font-size:10px!important;
    white-space:nowrap!important;
  }
  .lineup:not(.show-all-horses) .runner[data-rank="11"],
  .lineup:not(.show-all-horses) .runner[data-rank="12"],
  .lineup:not(.show-all-horses) .runner[data-rank="13"]{display:none!important;}
  .horse-more-btn:not([hidden]){
    display:block!important;
    width:100%;
    border:1px solid #e6a6c5;
    border-radius:0 0 12px 12px;
    margin:0;
    padding:10px!important;
    background:#fff0f8;
    color:#8e476c;
    font-weight:800;
    cursor:pointer;
  }
  .mobile-scroll-hint{font-size:12px!important;padding:8px 4px!important;}
}
@media(max-width:360px){
  .lineup{gap:8px 2px!important;padding-inline:3px!important;}
  .lineup .runner-art{height:65px!important;min-height:65px!important;}
  .lineup .horse-art{height:64px!important;}
  .lineup .runner-name{font-size:9px!important;}
}


/* Ver.18: visitor-facing clarity and unobtrusive legal disclosure */
#mode:empty, #announce:empty{display:none!important;}
.cup-disclaimer{
 margin:20px auto 30px;
 border-top:1px solid #e8ccdc;
 padding:16px clamp(12px,2vw,22px);
 background:#fff9fc;
 color:#746577;
 border-radius:12px;
 font-size:12px;
 line-height:1.7;
}
.cup-disclaimer strong{font-size:13px;color:#655369;}
.cup-disclaimer p{margin:3px 0;}
.cup-disclaimer a{color:#855b80;text-decoration:underline;text-underline-offset:2px;}
@media(max-width:600px){.cup-disclaimer{margin:12px 2px 22px;padding:12px;font-size:11px;line-height:1.75;}}

/* Ver.19 crown emphasis */
.runner.rank-runner-1 .winner-crown{filter:drop-shadow(0 2px 0 #8a6220) drop-shadow(0 0 6px rgba(255,214,95,.45));font-size:30px!important;z-index:3;}
.runner.rank-runner-1 .horse-art{filter:drop-shadow(0 2px 5px rgba(255,200,90,.28));}
