.entrant-heading,.entrant-row{display:grid;grid-template-columns:var(--entrant-columns);align-items:center;gap:10px}.entrant-heading{font-size:11px;color:#738074;padding:10px 0;border-bottom:1px solid #dce3d7}.entrant-row{padding:14px 0;border-bottom:1px solid #edf0e9;font-size:13px}.entrant-name{display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}.entrant-name .number{flex-shrink:0;margin:0}.popularity{font-size:12px}.prediction{font-size:22px;font-weight:800}.entrant-comment{font-size:12px;overflow-wrap:anywhere;color:#61735d}.number{border:1px solid #d5d9d2}.color-1{background:#fff;color:#222}.color-2{background:#222;color:#fff;border-color:#222}.color-3{background:#db3c3c;color:white;border-color:#db3c3c}.color-4{background:#3475ce;color:white;border-color:#3475ce}.color-5{background:#f5d84c;color:#222;border-color:#e2c22a}.color-6{background:#329c5d;color:white;border-color:#329c5d}.color-7{background:#e77e32;color:white;border-color:#e77e32}.color-8{background:#e283b2;color:#222;border-color:#e283b2}.color-9{background:#9356b0;color:white;border-color:#9356b0}.color-10{background:#57b8bc;color:#fff;border-color:#57b8bc}.role-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.role-option{padding:30px 18px;text-align:center;border:1px solid #b9cdb0;background:#f1f6ed}.role-option strong{display:block;font-size:22px}.role-option small{display:block;margin-top:12px;font-size:12px;font-weight:400}.runner-options{display:flex;flex-direction:column;gap:10px}.runner-option{display:flex;align-items:center;gap:10px;text-align:left;background:#f7f9f4;border:1px solid #dce3d7}.runner-option>span:last-child{margin-left:auto;font-size:11px}.bet-grid-header,.bet-grid-row{display:grid;grid-template-columns:minmax(90px,1fr) repeat(var(--pick-count),48px);gap:8px;align-items:center}.has-odds .bet-grid-header,.has-odds .bet-grid-row{grid-template-columns:minmax(90px,1fr) 48px 85px}.bet-grid-header{background:#f0f4eb;padding:12px 8px;font-size:12px;font-weight:700}.bet-grid-header>span:not(:first-child){text-align:center}.bet-grid-row{padding:10px 8px;border-bottom:1px solid #edf0e9;font-size:13px}.pick-button{padding:0;width:42px;height:38px;background:#fff;border:1px solid #c8d3c0;color:#53654a;border-radius:6px}.pick-button.selected{background:#23593e;color:white;border-color:#23593e}.odds{text-align:center;font-size:12px}.brand nav{flex-wrap:wrap}@media(max-width:420px){.entrant-heading,.entrant-row{gap:6px}.role-options{grid-template-columns:1fr}.bet-grid-header,.bet-grid-row{gap:4px;grid-template-columns:minmax(80px,1fr) repeat(var(--pick-count),38px)}.pick-button{width:34px}.entrant-name{gap:5px}.has-odds .bet-grid-header,.has-odds .bet-grid-row{grid-template-columns:minmax(80px,1fr) 38px 75px}}
.number{width:28px;height:28px;min-width:28px;aspect-ratio:1;border-radius:0}.entrant-count-label{max-width:220px;margin:22px 0}.entrant-input-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.entrant-input-row .number{margin:0;flex-shrink:0}.entrant-input-row input{margin:0;border:2px solid #222;border-radius:0;color:#161616;background:#fff;padding:12px}.tabs button,.pick-button,.role-option,.runner-option,.share-button{border-radius:0}input,select,button{border-radius:0}.info-button{border-radius:50%}.race-stage{font-weight:700}.checks label:has(input:disabled){opacity:.45}
.entrant-input-row{margin:0;padding:8px 0;gap:12px;border:0;border-bottom:1px solid #cbd2c7}.entrant-input-row input{border:0;background:transparent;padding:10px 0;min-width:0;flex:1}.entrant-input-row input:focus-visible{outline:2px solid #6e8c65;outline-offset:2px}.entrant-heading,.entrant-row{gap:0;align-items:stretch;padding:0;border-bottom:1px solid #cbd2c7}.entrant-heading>span,.entrant-row>span{padding:12px 8px;display:flex;align-items:center;min-width:0}.entrant-heading>span:first-child,.entrant-row>span:first-child{padding-left:0}.entrant-heading>span:last-child,.entrant-row>span:last-child{padding-right:0}.entrant-heading>span+span,.entrant-row>span+span{border-left:1px solid #cbd2c7}.entrant-heading>span:not(:first-child),.entrant-row>.popularity,.entrant-row>.prediction{justify-content:center;flex-wrap:wrap}.entrant-name{border:0}.bet-grid-header,.bet-grid-row{gap:0;align-items:stretch;padding:0;border-bottom:1px solid #cbd2c7;grid-template-columns:minmax(90px,1fr) repeat(var(--pick-count),48px)}.has-odds .bet-grid-header,.has-odds .bet-grid-row{grid-template-columns:minmax(90px,1fr) 48px 85px}.bet-grid-header>span,.bet-grid-row>span{padding:10px 5px;display:flex;align-items:center;min-width:0}.bet-grid-header>span:first-child,.bet-grid-row>span:first-child{padding-left:0}.bet-grid-header>span+span,.bet-grid-row>span+span{border-left:1px solid #cbd2c7;justify-content:center}.pick-cell .pick-button{width:34px;height:34px}.bet-grid-row>.odds{font-size:11px}.runner-options{gap:0}.runner-option{border:0;border-bottom:1px solid #cbd2c7;background:transparent}
#entrant-fields,.entrant-heading,.bet-grid-header{border-top:1px solid #000}.entrant-input-row,.entrant-heading,.entrant-row,.bet-grid-header,.bet-grid-row,.runner-option{border-bottom-color:#000}.entrant-heading>span+span,.entrant-row>span+span,.bet-grid-header>span+span,.bet-grid-row>span+span{border-left-color:#000}.entrant-heading>span:not(:first-child){flex-wrap:nowrap;white-space:nowrap}.entrant-name-heading{gap:8px;font-size:11px;white-space:nowrap}.number-heading{width:28px;min-width:28px;text-align:center}.entrant-heading .info-button{margin-left:4px}
.number{height:36px;width:28px;min-width:28px;aspect-ratio:auto;font-weight:750;margin-right:0}.placeholder-dash{font-size:12px;font-weight:500;line-height:1;color:#222}.bet-identity{display:grid;grid-template-columns:64px auto;gap:12px;align-items:center;justify-content:start}.bet-type{font-size:16px;font-weight:800;color:#151515;white-space:nowrap}.bet-formation{display:flex;align-items:center;gap:6px}.bet-separator{color:#202020;font-size:16px;font-weight:800}.purchase-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid #222}.purchase-controls{display:flex;align-items:center;gap:8px;margin-left:auto}.purchase-controls input{width:64px;color:#171717;font-weight:650;border-color:#515851}.purchase-details{display:flex;flex-direction:column;align-items:flex-end;gap:5px;margin-left:auto;font-size:13px;color:#222}.shell{color:#202820}.muted,.hero p,.entrant-heading,.entrant-comment,.empty,.notice{color:#4c584d}.entrant-name{font-size:14px;font-weight:600}.entrant-heading{font-weight:650}.popularity{font-weight:600;color:#222}.bet-grid-row>.odds{color:#252c24;font-weight:600}.bet{color:#222}.wallet small{color:#4c584d}@media(max-width:440px){.purchase-controls,.purchase-details{margin-left:76px}.purchase-row{gap:12px}.bet-formation{gap:5px}}
.race-heading{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.accepting-badge{background:#e57b18;color:#fff;padding:10px 16px;border-radius:6px;margin-left:auto;margin-right:24px;text-align:center;font-size:15px;line-height:1.5;flex-shrink:0}.accepting-badge strong{font-weight:750}.accepting-badge.pulsing{animation:accepting-fade 3s linear infinite}.badge-countdown{display:block;border-top:1px solid #ffffff70;margin-top:7px;padding-top:7px;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums}.host-actions{margin:22px 0}.result-entry-table{border-top:1px solid #000}.result-entry-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #000;margin:0;padding:10px 0}.rank-label{width:48px;flex-shrink:0;font-size:16px;font-weight:750;color:#222}.result-entry-row select{margin:0;border:0;background:transparent;color:#202020;padding:12px 0}.result-entry-row select:focus-visible{outline:2px solid #6e8c65;outline-offset:2px}@keyframes accepting-fade{0%,100%{opacity:1}50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.accepting-badge.pulsing{animation:none}}
.odds-value{font-variant-numeric:tabular-nums}
.result-race-name{font-size:24px;font-weight:750}.podium-scene{display:flex;align-items:flex-end;justify-content:center;max-width:480px;margin:20px auto 34px;padding:0 12px}.podium-place{flex:1;max-width:150px;text-align:center;min-width:0}.podium-entrant{display:flex;flex-direction:column;align-items:center;gap:9px;margin-bottom:12px;color:#222;font-size:13px;font-weight:700;overflow-wrap:anywhere}.podium-entrant .number{width:36px;min-width:36px;height:48px;font-size:22px}.podium-block{display:flex;justify-content:center;align-items:center;border:1px solid #8d9388;height:82px;background:#dce2d7;color:#525f4a}.podium-block strong{font-size:36px;font-weight:800}.podium-place-1 .podium-block{height:126px;background:#f2dda0;border-color:#bd9e52;color:#79602c}.podium-place-3 .podium-block{height:60px;background:#dec5b2;border-color:#ac8a70;color:#71513b}.result-standings{border-top:1px solid #000}.result-standing-row{display:grid;grid-template-columns:50px minmax(100px,1fr) 90px;border-bottom:1px solid #000;align-items:stretch}.result-standing-row>span{display:flex;align-items:center;min-width:0;padding:12px 8px}.result-standing-row>span:first-child{padding-left:0}.result-standing-row>span+span{border-left:1px solid #000}.result-standing-row>span:last-child{justify-content:center}.result-standing-header{font-size:11px;font-weight:650}.result-rank{font-size:14px;font-weight:750}.winning-odds{font-size:15px;font-weight:750;font-variant-numeric:tabular-nums}.payout-amount{font-size:38px;font-weight:800;margin:6px 0 20px;color:#23593e}.payout-amount small{font-size:16px}.payout-balance{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #ccd3c7;font-size:13px}
.entrant-name,.entrant-name-heading{gap:24px}.entrant-name{font-size:16px}.entrant-input-row{gap:24px}.entrant-input-row input{font-size:16px}.runner-option{gap:24px}.runner-option strong{font-size:16px}
.purchase-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.purchase-toolbar .tabs{margin-bottom:0}.unit-price{font-size:17px;white-space:nowrap;color:#222}.planned-odds{font-size:13px;font-weight:650;white-space:nowrap}.purchase-controls{flex-wrap:wrap}
.final-results{border-top:1px solid #000;color:#222}.final-results th,.final-results td{border-bottom:1px solid #000;padding:14px 8px;vertical-align:middle}.final-results th{font-size:12px;font-weight:650;white-space:nowrap}.final-results th:first-child,.final-results td:first-child{padding-left:0;width:65px}.final-results th:nth-child(n+3),.final-results td:nth-child(n+3){border-left:1px solid #000;text-align:center;white-space:nowrap}.final-results .final-player-name{font-size:16px;font-weight:600;overflow-wrap:anywhere}.final-results th:last-child,.final-results td:last-child{padding-right:0}.final-results .result-remove-column{width:40px;border-left:0!important;padding-left:8px}.result-remove{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid #222;border-radius:0;background:#fff;color:#222;font-size:21px;line-height:1}.final-rank{display:inline-flex;align-items:center;position:relative;padding-left:14px;white-space:nowrap;font-weight:650}.own-result-dot{position:absolute;left:0;width:8px;height:8px;border-radius:50%;background:#d93636}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:440px){.final-results th,.final-results td{padding:12px 5px}.final-results .final-player-name{font-size:15px}.final-results td:nth-child(n+3){font-size:12px}.final-results .result-remove-column{width:32px;padding-left:5px}}

.race-loading{display:flex;justify-content:center;align-items:center;min-height:112px;margin:0 0 24px}.runner-sprite{display:block;width:var(--runner-width,128px);height:var(--runner-height,128px);background-size:calc(var(--runner-width,128px) * var(--runner-frames,8)) var(--runner-height,128px);background-repeat:no-repeat;image-rendering:pixelated;animation:runner-cycle var(--runner-duration,.8s) steps(var(--runner-frames,8)) infinite}@keyframes runner-cycle{from{background-position:0 0}to{background-position:calc(-1 * var(--runner-width,128px) * var(--runner-frames,8)) 0}}@media(prefers-reduced-motion:reduce){.runner-sprite{animation:none}}

.race-loading{flex-direction:column;gap:8px}.runner-sprite{transform:translateX(-6px)}.race-loading-label{margin:0;font-size:16px;font-weight:650;line-height:1.5;text-align:center;color:#24354b}

.shell .entrant-count-label{margin:14px 0}.shell .entrant-input-row{padding:5px 0}.shell .entrant-input-row input{margin:0;padding:8px 0}.shell .entrant-heading>span,.shell .entrant-row>span{padding-top:9px;padding-bottom:9px}.shell .bet-grid-header>span,.shell .bet-grid-row>span{padding-top:8px;padding-bottom:8px}.shell .result-entry-row{padding:6px 0}.shell .result-entry-row select{margin:0;padding:10px 0}.shell .result-standing-row>span{padding-top:9px;padding-bottom:9px}.shell .purchase-toolbar{margin-bottom:12px}.shell .purchase-toolbar .tabs{margin-bottom:0}.shell .purchase-controls input{margin:0}.shell .role-option{padding:20px 14px}.shell .role-option small{margin-top:8px}.shell .podium-scene{margin:14px auto 22px}.shell .payout-amount{margin:4px 0 12px}.shell .final-results th,.shell .final-results td{padding-top:10px;padding-bottom:10px}.shell .race-loading{margin-bottom:16px}.shell .race-loading-label{margin:0}

.shell .podium-scene{position:relative;padding:0;max-width:450px;isolation:isolate}.podium-outline{position:absolute;bottom:0;left:0;width:100%;height:126px;overflow:visible;z-index:-1}.podium-place{max-width:none}.podium-scene .podium-block{background:transparent;border:0;color:#222}.shell .host-actions{margin:0}

.celebrating-result{position:relative;isolation:isolate}.celebrating-result>.main-content{position:relative;z-index:1}.result-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.result-confetti i{position:absolute;top:-18px;width:6px;height:6px;border-radius:0;background:var(--confetti-color);opacity:0;animation:result-confetti-fall 8s steps(160,end) both}.result-confetti i:nth-child(3n){width:4px;height:4px}.result-confetti i:nth-child(4n){width:8px;height:4px}@keyframes result-confetti-fall{0%{opacity:0;transform:translate3d(0,0,0)}8%{opacity:.8}75%{opacity:.7}100%{opacity:0;transform:translate3d(var(--confetti-drift),105vh,0)}}@media(prefers-reduced-motion:reduce){.result-confetti{display:none}}
/* Keep purchase controls aligned to the right edge of the confirmation button. */
.shell .purchase-controls{margin-left:auto;justify-content:flex-end;flex-wrap:nowrap}
@media(max-width:600px){.shell .purchase-controls{flex-basis:100%;margin-left:0;justify-content:flex-end;gap:6px}.shell .purchase-controls input{width:56px;padding:9px 6px}.shell .purchase-controls button{padding:9px 12px}.shell .purchase-details{margin-left:auto}}
/* Compact entrant list only: keep the other entrant forms and voting grid unchanged. */
.shell .entrants h2{font-size:15px}
.entrants .entrant-table{overflow-x:auto}
.entrants .entrant-heading,.entrants .entrant-row{min-width:var(--entrant-table-min);gap:0}
.shell .entrants .entrant-heading>span,.shell .entrants .entrant-row>span{padding:7px 6px}
.shell .entrants .entrant-heading>span:first-child,.shell .entrants .entrant-row>span:first-child{padding-left:0}
.shell .entrants .entrant-heading>span:last-child,.shell .entrants .entrant-row>span:last-child{padding-right:0}
.entrants .entrant-heading{font-size:10px}
.entrants .entrant-name,.entrants .entrant-name-heading{gap:14px}
.entrants .entrant-name{font-size:14px;white-space:nowrap;overflow-wrap:normal}
.entrants .entrant-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entrants .number,.entrants .number-heading{width:22px;min-width:22px}
.entrants .number{height:30px;font-size:12px}
.entrants .popularity{font-size:11px;white-space:nowrap}
.entrants .prediction{font-size:18px}
.entrants .entrant-comment{font-size:11px}
.entrants .entrant-heading .info-button{margin-left:2px}
.shell .entrants .entrant-heading>span:not(:first-child){padding-left:3px;padding-right:3px}
.entrant-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.shell .entrants .entrant-toolbar h2{margin:0;white-space:nowrap}
.entrant-comments-toggle{flex-shrink:0;font-size:12px;padding:6px 9px;border:2px solid #c3cebd;border-radius:4px;background:#f4f7f0;color:#30472b;white-space:nowrap}
.entrant-comments-toggle.active{border-color:#23593e;background:#e6f0df;color:#17442e;font-weight:700}
/* Keep race setup actions side by side at phone widths. */
.shell #race-form>.actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:6px}
.shell #race-form>.actions>button{min-width:0;min-height:44px;padding:10px 6px;font-size:clamp(10px,3vw,12px);white-space:nowrap}

.podium-entrant{position:relative}.winner-crown{position:absolute;top:var(--crown-y,-28px);left:calc(50% + var(--crown-x,0px));transform:translateX(-50%) rotate(var(--crown-rotation,0deg));transform-origin:50% 100%;width:50px;height:32px;z-index:1;pointer-events:none}.winner-crown img,.winner-crown svg{display:block;width:100%;height:100%;image-rendering:pixelated}.shell .podium-scene{margin-top:38px}.result-burst{position:fixed;inset:0;clip-path:inset(82px 0 0);z-index:4;overflow:hidden;pointer-events:none}.burst-piece{position:absolute;top:var(--burst-origin-y,70%);width:6px;height:10px;background:var(--burst-color);opacity:0;animation:result-cracker 1.25s linear both}.burst-piece.from-left{left:var(--burst-left,0px)}.burst-piece.from-right{left:var(--burst-right,100%)}.burst-piece:nth-child(3n){width:5px;height:5px}.burst-piece:nth-child(4n){width:4px;height:12px}@keyframes result-cracker{0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}75%{opacity:1}100%{opacity:0;transform:translate3d(var(--burst-x),var(--burst-y),0) rotate(var(--burst-spin))}}@media(max-width:600px){.result-burst{clip-path:inset(76px 0 0)}}@media(prefers-reduced-motion:reduce){.result-burst{display:none}}

.podium-place-1 .podium-block strong{align-self:flex-start;margin-top:20px}

.result-hero{position:relative}

.shell .room-progression-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:6px;align-items:stretch}.shell .room-progression-actions>button{min-width:0;min-height:44px;padding:10px 5px;font-size:clamp(11px,3.35vw,14px);white-space:nowrap}

/* 自分の名前を左、ポイントを右にまとめる。 */
.player-status{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.player-status-name{font-size:15px;font-weight:700;overflow-wrap:anywhere}
.player-status-points{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;column-gap:8px;row-gap:2px;margin-left:auto;text-align:right}
.player-status-label{font-size:12px;font-weight:600}
.player-status-borrow{flex-basis:100%;font-size:11px;color:#4c584d}
@media(max-width:440px){.player-status{gap:6px 12px}.player-status-points{max-width:100%}}
