.msg { padding: .75rem 1rem; margin-bottom: 1rem; }
.msg-success { background: #e7f6ec; color: #135d2d; }
.msg-error { background: #fdecea; color: #8a1c13; }
.msg-warning { background: #fff4e0; color: #7a4b00; }
.badge { display: inline-block; padding: .1rem .5rem; border-radius: 1rem; font-size: .8rem; background: #eee; }
.badge-PAID, .badge-VALID { background: #d4f2dd; color: #135d2d; }
.badge-PENDING, .badge-TO_REVIEW { background: #fff0cc; color: #7a4b00; }
.badge-CANCELLED, .badge-REJECTED, .badge-MISSING, .badge-reserve { background: #fbd9d5; color: #8a1c13; }
.checkin { padding: 1.5rem; border-radius: .5rem; text-align: center; font-size: 1.2rem; }
.checkin-ok { background: #d4f2dd; } .checkin-warn { background: #fff0cc; } .checkin-ko { background: #fbd9d5; }
#reader { max-width: 420px; margin: 0 auto 1rem; }
.inline-form { display: inline; }
td form, td button { margin: 0; }
.race-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.race-card { margin: 0; }
.race-card img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: .25rem; margin-bottom: 1rem; }

.sel-list{list-style:none;padding:0;margin:0 0 1rem}
.sel-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--pico-muted-border-color);list-style:none}
.sel-info{display:flex;flex-direction:column;line-height:1.3}
.sel-info small{color:var(--pico-muted-color)}
.sel-row .sel-remove{margin:0;width:auto;padding:.3rem .8rem}
