.rsrm-public-form,.rsrm-public-card{max-width:900px;margin:24px auto;padding:24px;background:#fff;border:1px solid #d9d9e3;border-radius:12px;box-shadow:0 4px 18px rgba(0,0,0,.06);font-family:inherit}.rsrm-public-header{border-bottom:1px solid #eee;margin-bottom:18px;padding-bottom:12px}.rsrm-public-form section{margin:18px 0;padding:18px;border:1px solid #e6e6ef;border-radius:10px;background:#fafafa}.rsrm-public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px 18px}.rsrm-public-grid label{font-weight:600}.rsrm-public-grid input,.rsrm-public-grid select{width:100%;padding:10px;border:1px solid #bfc4cf;border-radius:6px;margin-top:5px}.rsrm-radio-row{display:flex;flex-wrap:wrap;gap:14px 22px}.rsrm-participant-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:16px}.rsrm-submit,.rsrm-add-participant{padding:11px 18px;border:0;border-radius:6px;background:#3f63c7;color:#fff;font-weight:700;cursor:pointer}.rsrm-add-participant{background:#54606f}.rsrm-notice{background:#f0f7ff;border-left:4px solid #3f63c7;padding:12px;margin:12px 0}.rsrm-team-fields{display:none}.rsrm-status-page{padding:20px}.rsrm-public-card table{width:100%;border-collapse:collapse}.rsrm-public-card th,.rsrm-public-card td{border:1px solid #ddd;padding:8px;text-align:left}
.rsrm-public-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.rsrm-payment-choice[hidden],.rsrm-team-workflow[hidden],.rsrm-team-create[hidden],.rsrm-team-join[hidden]{display:none!important}.rsrm-pay-check{margin-top:16px;padding-top:12px;border-top:1px solid #ececf2}.rsrm-pay-check label{font-weight:700}.rsrm-pay-note{display:block;color:#646970;margin-top:4px}.rsrm-team-workflow{margin-top:16px;padding:16px;border:1px solid #cfd7e6;border-radius:9px;background:#f7faff}.rsrm-team-workflow h4{margin-top:0}.rsrm-field-error{border:2px solid #d63638!important}.rsrm-error-card{border-color:#d63638;background:#fff7f7}.rsrm-error-card h2{color:#8a2424}.rsrm-confirm-row{padding:14px 0;border-bottom:1px solid #eee}.rsrm-email-button{display:inline-block;margin-top:8px;padding:9px 14px;border-radius:6px;background:#2457a7;color:#fff!important;text-decoration:none;font-weight:700}.rsrm-secondary-button{background:#54606f}.rsrm-status-action{margin-top:20px;padding:16px;border:1px solid #dfe3e8;border-radius:8px;background:#fafafa}.rsrm-status-action label{display:block;font-weight:700}.rsrm-status-action input{width:100%;margin-top:5px;padding:10px;border:1px solid #bfc4cf;border-radius:6px}.rsrm-error-note{background:#fff0f0!important;border-left-color:#d63638!important}

/* Registration required/Division UI v1.0.26 */
.rsrm-required{color:#d63638;font-weight:800;margin-left:3px}.rsrm-required-word{color:#d63638;font-size:11px;font-weight:700;margin-left:2px}
.rsrm-division-other-wrap[hidden]{display:none!important}.rsrm-division-other-wrap{display:block}
.rsrm-field-error{border:1px solid #d63638!important;background:#fff5f5!important;border-radius:8px;padding:10px!important}
.rsrm-field-error input,.rsrm-field-error select{border-color:#d63638!important;box-shadow:0 0 0 1px #d63638!important}

.rsrm-status-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}.rsrm-team-invite-details{margin:18px 0;padding:16px;border:1px solid #dfe3e8;border-radius:10px;background:#fafafa}.rsrm-team-invite-details input{padding:9px 10px;border:1px solid #bfc4cf;border-radius:6px;background:#fff}.rsrm-status-page .rsrm-submit{display:inline-block;text-decoration:none}

/* v1.0.29 multi-entry registration */
.rsrm-race-entry-selector{margin-top:20px;border-top:1px solid #e2e4e7;padding-top:18px}
.rsrm-race-entry-selector h4{margin:0 0 6px;font-size:18px}
.rsrm-race-entry-row{border:1px solid #dcdcde;border-radius:10px;padding:12px 14px;margin:10px 0;background:#fff;transition:border-color .15s,box-shadow .15s,background .15s}
.rsrm-race-entry-row.is-selected{border-color:#7aa7e8;background:#f8fbff;box-shadow:0 0 0 1px rgba(36,87,167,.08)}
.rsrm-race-entry-row.is-invite-locked{border-color:#5f9f69;background:#f5fbf5}
.rsrm-race-entry-choice{display:flex!important;align-items:flex-start;gap:10px;font-weight:400!important;margin:0!important}
.rsrm-race-entry-choice input[type=checkbox]{width:18px!important;height:18px!important;min-width:18px!important;margin-top:2px!important}
.rsrm-race-entry-choice span{display:flex;flex-direction:column;gap:2px}
.rsrm-race-entry-choice strong{font-size:15px;color:#0b1f3a}
.rsrm-race-entry-choice small{color:#667085;font-size:12px}
.rsrm-entry-team-panel{margin:12px 0 0 28px;padding:12px;border-radius:8px;background:#f6f7f7;border:1px solid #dcdcde}
.rsrm-entry-team-panel.is-locked{background:#edf7ee;border-color:#b8d8bd}
.rsrm-team-invite-applied{margin:12px 0}
.rsrm-status-entries{width:100%;border-collapse:collapse;margin:8px 0 18px}
.rsrm-status-entries th,.rsrm-status-entries td{padding:9px;border:1px solid #dcdcde;text-align:left}

/* v1.0.30 registration flow + captain team setup */
.rsrm-others-flow[hidden],.rsrm-captain-team-setup[hidden],.rsrm-planned-team-note[hidden],.rsrm-team-cap-note[hidden]{display:none!important}
.rsrm-flow-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}.rsrm-flow-card{display:flex;gap:10px;align-items:flex-start;border:1px solid #d8dde7;border-radius:10px;background:#fff;padding:14px;cursor:pointer}.rsrm-flow-card:hover{border-color:#7aa7e8;background:#f8fbff}.rsrm-flow-card input{margin-top:3px}.rsrm-flow-card span{display:flex;flex-direction:column;gap:4px}.rsrm-flow-card strong{color:#0b1f3a}.rsrm-flow-card small{color:#667085;line-height:1.35}.rsrm-captain-team-setup{border-color:#b7cbe8!important;background:#f7faff!important}.rsrm-planned-team-note{margin:10px 0 0 28px;padding:10px 12px;border:1px solid #b8d8bd;border-radius:8px;background:#edf7ee}.rsrm-race-entry-row.is-captain-team-locked{border-color:#5f9f69;background:#f5fbf5}.rsrm-race-entry-row.is-captain-team-locked .rsrm-race-entry-choice{cursor:default}.rsrm-team-plan-status{font-weight:700;color:#2457a7}.rsrm-team-cap-note{padding:10px 12px;background:#f6f7f7;border:1px solid #dcdcde;border-radius:8px}.rsrm-team-roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.rsrm-team-roster-card{border:1px solid #dcdcde;border-radius:10px;padding:14px;background:#fff}.rsrm-team-roster-card h3{margin-top:0}.rsrm-roster-person{padding:10px 0;border-bottom:1px solid #ececf2}.rsrm-roster-person:last-child{border-bottom:0}.rsrm-roster-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.rsrm-roster-actions button{padding:7px 10px;border:0;border-radius:6px;cursor:pointer;font-weight:700}.rsrm-roster-accept{background:#1f7a3d;color:#fff}.rsrm-roster-deny,.rsrm-roster-remove{background:#b32d2e;color:#fff}.rsrm-roster-pending{background:#54606f;color:#fff}.rsrm-team-summary{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.rsrm-team-summary span{display:inline-block;padding:7px 10px;border-radius:999px;background:#f0f6fc;border:1px solid #b7cbe8;font-weight:700}.rsrm-status-entries .rsrm-team-action-cell form{margin:0}.rsrm-status-entries .rsrm-team-action-cell button{padding:6px 9px;border:0;border-radius:5px;background:#54606f;color:#fff;cursor:pointer;font-weight:700}
.rsrm-join-registration-label[hidden],.rsrm-team-join-registration[hidden]{display:none!important}.rsrm-team-join-registration{margin-top:10px;padding:10px 12px;border:1px solid #b8d8bd;border-radius:8px;background:#edf7ee}
.rsrm-age-as-of{display:block;margin:4px 0 2px;color:#475467;font-weight:500}.rsrm-age-as-of strong{color:#0a4b78}.rsrm-age-message{display:block;margin-top:5px;color:#b32d2e;font-weight:700}.rsrm-race-entry-row.is-age-ineligible{border-color:#d63638;background:#fff7f7;opacity:.82}.rsrm-age-restriction{display:block;margin-top:5px;color:#b32d2e!important;font-weight:700}
.rsrm-status-entries .rsrm-entry-action-cell form{margin:0}.rsrm-status-entries .rsrm-entry-action-cell button{padding:6px 9px;border:0;border-radius:5px;background:#b32d2e;color:#fff;cursor:pointer;font-weight:700}.rsrm-status-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}

.rsrm-team-name-status{display:block;margin-top:5px}.rsrm-team-name-status.is-ok{color:#0a7a2f}.rsrm-team-name-status.is-error{color:#b32d2e;font-weight:600}

.rsrm-roster-drop-list{min-height:74px}.rsrm-roster-person[draggable=true]{cursor:grab;border:1px solid #e1e5eb;border-radius:8px;padding:10px;margin:8px 0;background:#fff}.rsrm-roster-person.is-dragging{opacity:.55}.rsrm-roster-dropzone.is-dragover{outline:2px dashed #3f63c7;outline-offset:2px;background:#f7faff}.rsrm-roster-person.is-locked{opacity:.7}.rsrm-roster-fallback{display:block;margin-top:8px}.rsrm-roster-fallback select{width:100%;padding:6px}.rsrm-roster-savebar{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid #d8dee8;border-radius:8px;background:#fff;box-shadow:0 -2px 10px rgba(0,0,0,.06);z-index:5}.rsrm-roster-savebar button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.rsrm-roster-person[draggable=true]{cursor:default}.rsrm-roster-savebar{position:static;align-items:stretch;flex-direction:column}}

.rsrm-inline-action{display:inline-block;margin-left:10px;padding:6px 13px;border-radius:999px;background:#2271b1;color:#fff!important;text-decoration:none;font-weight:600;line-height:1.2}.rsrm-inline-action:hover{background:#135e96;color:#fff!important}.rsrm-team-roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.rsrm-team-roster-grid{grid-template-columns:1fr}}

/* v1.0.50 eligibility/action emphasis */
@keyframes rsrmActionPulse{0%,100%{box-shadow:0 0 0 0 rgba(214,54,56,.18)}50%{box-shadow:0 0 0 7px rgba(214,54,56,.08)}}
.rsrm-team-action-required{border:2px solid #d63638;background:#fff7f7;border-radius:10px;padding:10px 12px;animation:rsrmActionPulse 1.6s ease-in-out infinite}
.rsrm-team-action-required>strong{display:block;color:#8a2424;font-size:14px}.rsrm-team-action-required>small{display:block;color:#667085;margin:3px 0 7px}
.rsrm-race-entry-row.is-conflict-ineligible,.rsrm-race-entry-row.is-capacity-ineligible{border-color:#d63638;background:#fff7f7}
.rsrm-eligibility-restriction{display:block;margin-top:6px;color:#b32d2e;font-weight:700}
.rsrm-inline-action{border-radius:999px!important}
.rsrm-race-entry-row.is-schedule-warning{border-color:#dba617;background:#fffbea}
.rsrm-race-entry-row.is-schedule-warning .rsrm-eligibility-restriction{color:#6b4e00}

/* v1.0.60 integrated relay running order */
.rsrm-relay-order-notice{margin:16px 0}.rsrm-relay-order-notice.is-action-required{border-left:4px solid #d63638;background:#fff7f7}.rsrm-team-roster-card.is-relay-order-zone .rsrm-roster-person{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:start}.rsrm-relay-leg-header{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:0 10px 6px;font-size:12px;font-weight:700;color:#50575e;text-transform:uppercase;letter-spacing:.03em}.rsrm-relay-leg-cell{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0}.rsrm-relay-leg-label{font-size:11px;font-weight:700;color:#646970}.rsrm-relay-leg-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:#eef3ff;border:1px solid #aabcf2;color:#2447a8;font-size:18px;line-height:1}.rsrm-relay-drag-handle{font-size:18px;line-height:1;color:#646970;cursor:grab}.rsrm-relay-runner-body{min-width:0}.rsrm-team-roster-card.is-relay-order-zone .rsrm-roster-person.is-dragging .rsrm-relay-drag-handle{cursor:grabbing}@media(max-width:700px){.rsrm-team-roster-card.is-relay-order-zone .rsrm-roster-person{grid-template-columns:54px minmax(0,1fr)}.rsrm-relay-leg-header{grid-template-columns:54px minmax(0,1fr)}}


/* v1.0.61 responsive roster cards + expandable details */
.rsrm-team-roster-grid{grid-template-columns:minmax(320px,1.35fr) repeat(3,minmax(220px,1fr));align-items:start}
.rsrm-team-roster-card{min-width:0;overflow:hidden}
.rsrm-roster-person{min-width:0;overflow:hidden;box-sizing:border-box}
.rsrm-relay-runner-body,.rsrm-roster-person-main{min-width:0}
.rsrm-roster-person-name,.rsrm-roster-status-line{display:block;overflow-wrap:anywhere;word-break:normal}
.rsrm-roster-status-line{margin-top:4px;color:#50575e}
.rsrm-roster-details{margin-top:8px;border-top:1px solid #ececf2;padding-top:7px}
.rsrm-roster-details summary{cursor:pointer;color:#2457a7;font-weight:700;font-size:12px;list-style:none}
.rsrm-roster-details summary::-webkit-details-marker{display:none}
.rsrm-roster-details summary:before{content:"▸";display:inline-block;margin-right:5px;transition:transform .15s ease}
.rsrm-roster-details[open] summary:before{transform:rotate(90deg)}
.rsrm-roster-detail-body{display:grid;gap:6px;margin-top:8px;font-size:12px}
.rsrm-roster-detail-body>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:start}
.rsrm-roster-detail-body span{overflow-wrap:anywhere;min-width:0}
.rsrm-roster-fallback select{max-width:100%;box-sizing:border-box}
.rsrm-team-roster-card.is-relay-order-zone .rsrm-roster-person{grid-template-columns:58px minmax(0,1fr)}
.rsrm-relay-leg-header{grid-template-columns:58px minmax(0,1fr)}
@media(max-width:1100px){.rsrm-team-roster-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}}
@media(max-width:720px){.rsrm-team-roster-grid{grid-template-columns:1fr}.rsrm-team-roster-card.is-relay-order-zone .rsrm-roster-person{grid-template-columns:52px minmax(0,1fr)}.rsrm-relay-leg-header{grid-template-columns:52px minmax(0,1fr)}}

/* v1.0.62 roster layout refinement */
.rsrm-team-roster-grid{grid-template-columns:minmax(0,1.15fr) repeat(3,minmax(0,1fr));gap:12px;align-items:start;width:100%;max-width:100%;box-sizing:border-box}
.rsrm-team-roster-card{min-width:0;max-width:100%;overflow:hidden;box-sizing:border-box}
.rsrm-roster-person,.rsrm-relay-runner-body,.rsrm-roster-person-main{min-width:0;max-width:100%;box-sizing:border-box}
.rsrm-roster-person-name{display:block;overflow-wrap:anywhere;word-break:normal;line-height:1.3}
.rsrm-roster-captain-label{display:block;margin-bottom:3px;font-weight:700;color:#50575e;text-transform:uppercase;letter-spacing:.03em;font-size:10px}
.rsrm-roster-fallback{display:block;margin-top:8px;max-width:170px}
.rsrm-roster-fallback select{width:auto;max-width:170px;min-width:120px;box-sizing:border-box;padding:6px 28px 6px 8px}
.rsrm-roster-detail-body span{overflow-wrap:anywhere;word-break:normal}
@media(max-width:980px){.rsrm-team-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.rsrm-team-roster-grid{grid-template-columns:1fr}.rsrm-roster-fallback,.rsrm-roster-fallback select{max-width:100%;width:100%}}

/* v1.0.63 clearer Move to dropdown affordance */
.rsrm-roster-fallback select.rsrm-roster-move-select{
  -webkit-appearance:none;
  appearance:none;
  cursor:pointer;
  padding-right:32px!important;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20'%3E%3Cpath fill='%2350575e' d='M5.5 7.5 10 12l4.5-4.5 1.4 1.4-5.9 5.9-5.9-5.9z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 9px center;
  background-size:14px 14px;
}
.rsrm-roster-fallback select.rsrm-roster-move-select:hover{border-color:#7b8492;background-color:#fff}
.rsrm-roster-fallback select.rsrm-roster-move-select:focus{border-color:#3f63c7;box-shadow:0 0 0 1px #3f63c7;outline:none}

/* v1.0.64 explicit Move to chevron */
.rsrm-roster-select-wrap{position:relative;display:inline-block;max-width:170px}
.rsrm-roster-select-wrap .rsrm-roster-move-select{display:block;width:100%;min-width:120px;padding-right:30px!important;background-image:none!important}
.rsrm-roster-select-arrow{position:absolute;right:9px;top:50%;transform:translateY(-50%);pointer-events:none;color:#50575e;font-size:11px;line-height:1}
.rsrm-roster-select-wrap:hover .rsrm-roster-select-arrow{color:#1d2327}
@media(max-width:640px){.rsrm-roster-select-wrap{width:100%;max-width:100%}}
