.prototype-pending body, [hidden] { display: none !important; }
body { min-width: 0; }
.prototype-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; padding: .8rem max(1rem, calc((100vw - 72rem) / 2)); color: #fffdf8; background: #6b291f; }
.prototype-header a { color: #fffdf8; }
.environment-status { align-self: center; padding: .18rem .55rem; border: 1px solid rgb(255 253 248 / .45); border-radius: 999px; font-size: .76rem; font-weight: 650; letter-spacing: .02em; }
.prototype-shell { width: min(100% - 1.25rem, 64rem); margin-inline: auto; padding-block: 1.25rem 4rem; }
.registration-context { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.registration-context .environment-status { border-color: var(--colour-stone-dark); color: var(--colour-ink-soft); background: var(--colour-paper-light); }
.prototype-card { margin-bottom: 1rem; padding: clamp(1.1rem, 4vw, 2rem); border: 1px solid var(--colour-stone-dark); background: var(--colour-paper-light); box-shadow: 0 .25rem 1rem rgb(32 37 31 / .08); }
.prototype-intro h1 { font-size: clamp(2.2rem, 8vw, 4.7rem); }
.status-grid, .summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 1.5rem 0; }
.status-grid div { padding: .8rem; border: 1px solid var(--colour-stone); }
.summary-grid div { padding: 1rem; border: 1px solid var(--colour-stone-dark); background: var(--colour-paper-light); }
.email-health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .75rem; margin: 1rem 0; }
.email-health-grid div { padding: .8rem; border: 1px solid var(--colour-stone-dark); background: var(--colour-paper); }
.email-health-grid dt { color: var(--colour-ink-soft); font-size: .82rem; }
.email-health-grid dd { margin: .2rem 0 0; font-size: 1.5rem; font-weight: 750; }
.status-grid span, .status-grid strong, .summary-grid span, .summary-grid strong { display: block; }
.summary-grid strong { color: var(--colour-forest-dark); font-family: var(--font-display); font-size: 1.8rem; }
.status-grid span, .hint { color: var(--colour-ink-soft); font-size: .78rem; }
.step-indicator { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.step-indicator progress { max-width: 10rem; accent-color: var(--colour-forest); }
.field-grid { display: grid; gap: 1rem; }
.membership-question { display: grid; align-content: start; gap: .3rem; min-width: 0; }
.membership-guidance { margin: 0; }
label { display: grid; gap: .3rem; font-weight: 650; }
input, select { width: 100%; min-height: 2.9rem; padding: .55rem .65rem; border: 1px solid var(--colour-stone-dark); border-radius: var(--radius-small); background: #fff; color: var(--colour-ink); }
input[aria-invalid="true"], select[aria-invalid="true"] { border: .15rem solid #a12b21; }
.field-error { margin: 0; color: #8b2018; font-size: .85rem; font-weight: 650; }
.checkbox-field { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .65rem; margin-block: 1rem; }
.checkbox-field input { width: 1.25rem; min-height: 1.25rem; margin-top: .2rem; }
.checkbox-field > span { min-width: 0; }
.availability-check { min-height: 5rem; padding: 1rem 0; color: var(--colour-ink-soft); }
.form-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.form-alert { margin-bottom: 1rem; padding: 1rem; border-left: .3rem solid #a12b21; background: #f9ddd7; }
.form-alert--success { border-left-color: var(--colour-forest); background: #e1ebdd; }
.waiting-list-panel { margin-top: 1.5rem; padding-top: 1.5rem; border-top: .25rem solid var(--colour-bracken); }
.waiting-list-panel .form-alert { margin-top: 1rem; }
.review-list { display: grid; grid-template-columns: minmax(8rem, .7fr) 1.3fr; margin: 0 0 1.5rem; }
.review-list dt, .review-list dd { margin: 0; padding: .55rem; border-bottom: 1px solid var(--colour-stone); }
.review-list dt { font-weight: 750; }
.summary-list { display: grid; grid-template-columns: minmax(8rem, .7fr) 1.3fr; margin: 0; }
.summary-list dt, .summary-list dd { margin: 0; padding: .55rem 0; border-bottom: 1px solid var(--colour-stone); }
.summary-list dt { font-weight: 750; }
.status-badges { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 1.5rem; }
.status-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .7rem; border: 1px solid; border-radius: 999px; font-size: .88rem; font-weight: 750; }
.status-badge--positive { border-color: #37644e; color: #173c2e; background: #dcebdd; }
.status-badge--required { border-color: #9a3328; color: #721c15; background: #f7d9d4; }
.status-badge--info { border-color: #8a642b; color: #543c16; background: #f3e5c2; }
.status-badge--neutral { border-color: #74746c; color: #34342f; background: #e9e7df; }
.manage-section { padding-block: 1rem; border-top: 1px solid var(--colour-stone); }
.manage-section h3 { margin-bottom: .6rem; }
.manage-section p { margin-bottom: .5rem; }
.entry-dialog { width: min(100% - 2rem, 48rem); max-height: calc(100vh - 2rem); padding: clamp(1rem, 4vw, 2rem); overflow-y: auto; border: 1px solid var(--colour-stone-dark); background: var(--colour-paper-light); color: var(--colour-ink); }
.entry-dialog::backdrop { background: rgb(20 24 20 / .68); }
.dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.dialog-close { min-width: 2.75rem; min-height: 2.75rem; border: 1px solid var(--colour-stone-dark); border-radius: 50%; color: var(--colour-forest-dark); background: transparent; font-size: 1.5rem; line-height: 1; }
.confirmed-runners { margin-block: 1rem; }
.payment-simulation { display: grid; gap: .2rem; margin-top: 1rem; padding: 1rem; border: .15rem dashed #9a5a39; }
.choice-actions { display: grid; gap: .75rem; }
.secondary-link { align-self: center; }
.text-button { min-height: 2.5rem; padding: .25rem; border: 0; color: var(--colour-forest); background: transparent; font-weight: 650; text-decoration: underline; text-decoration-color: var(--colour-bracken); text-underline-offset: .2em; }
.text-button:hover { color: var(--colour-bracken); }
.danger-link, .danger-button { color: #7b241c; }
.secondary-actions { display: grid; gap: .25rem; margin-top: 1.25rem; color: var(--colour-ink-soft); font-size: .9rem; }
.reset-row { margin: 2rem 0; text-align: right; }
.organiser-filters { display: grid; gap: .75rem; margin-bottom: 1.25rem; }
.entrant-list { display: grid; gap: .75rem; }
.entrant-card { min-width: 0; padding: 1rem; border: 1px solid var(--colour-stone-dark); background: #fff; }
.entrant-card--selected { border: .2rem solid var(--colour-bracken); }
.entrant-card h3 { margin: 0; font-size: 1.35rem; }
.entrant-reference { margin-bottom: .75rem; color: var(--colour-ink-soft); font-family: ui-monospace, monospace; font-size: .85rem; }
.entrant-facts { display: grid; grid-template-columns: minmax(7rem, .8fr) 1.2fr; margin-bottom: 1rem; }
.entrant-facts dt, .entrant-facts dd { margin: 0; padding: .3rem 0; border-bottom: 1px solid var(--colour-stone); }
.entrant-facts dt { font-weight: 750; }
.selected-entry { border-top: .35rem solid var(--colour-bracken); }
.detail-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.progress-checklist { padding: 0; list-style: none; }
.progress-checklist li { position: relative; padding-left: 1.8rem; }
.progress-checklist li::before { position: absolute; left: 0; content: "○"; }
.progress-checklist li.is-complete::before { content: "✓"; color: var(--colour-forest); font-weight: 750; }
.success-message { padding: 1rem; border-left: .3rem solid var(--colour-forest); background: #e1ebdd; font-weight: 750; }
.technical-details { margin-top: 2rem; padding: 1rem; border: 1px solid var(--colour-stone); color: var(--colour-ink-soft); }
.technical-details dl { display: grid; grid-template-columns: minmax(6rem, .5fr) 1.5fr; }
.technical-details dt { font-weight: 750; }
.technical-details dd { margin: 0; }
.confirmation-dialog { width: min(100% - 2rem, 32rem); padding: 1.5rem; border: 1px solid var(--colour-stone-dark); background: var(--colour-paper-light); color: var(--colour-ink); }
.confirmation-dialog::backdrop { background: rgb(20 24 20 / .65); }
.dashboard-controls { display: grid; gap: .75rem; margin-bottom: 1rem; }
.message-list { padding: 0; list-style: none; }
.message-list li { padding: .75rem 0; border-bottom: 1px solid var(--colour-stone); }
.declaration-panel { margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--colour-stone); background: #fff; }
.private-access-controls { display: grid; gap: .75rem; align-items: end; }
#created-invitation-url { display: block; overflow-wrap: anywhere; }
.start-list-shell { width: min(100% - 1.25rem, 72rem); }
.start-list-summary { margin-bottom: .25rem; color: var(--colour-forest-dark); font-family: var(--font-display); font-size: clamp(1.4rem, 5vw, 2rem); font-weight: 750; }
.start-list-table-wrap { overflow-x: auto; }
.start-list-table { width: 100%; border-collapse: collapse; }
.start-list-table th, .start-list-table td { padding: .7rem .55rem; border-bottom: 1px solid var(--colour-stone); text-align: left; vertical-align: top; }
.start-list-table th { color: var(--colour-forest-dark); font-size: .82rem; letter-spacing: .03em; text-transform: uppercase; }
.start-list-table td:last-child, .start-list-table th:last-child { text-align: center; }
.start-list-full { margin-top: 1.25rem; padding: .8rem; border-left: .3rem solid var(--colour-bracken); background: #f5eadc; font-weight: 700; }
@media (min-width: 42rem) { .field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-controls, .organiser-filters { grid-template-columns: 1fr 1fr 1fr; align-items: end; } .summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .entrant-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .choice-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 42rem) { .private-access-controls { grid-template-columns: 1fr 1fr auto; } }
@media (max-width: 30rem) { .status-grid { grid-template-columns: 1fr; } .review-list, .summary-list { grid-template-columns: 1fr; } .review-list dt, .summary-list dt { padding-bottom: 0; border: 0; } .review-list dd, .summary-list dd { padding-top: .15rem; } .entry-dialog { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); padding: 1rem; } }
@media (max-width: 34rem) { .start-list-table th, .start-list-table td { padding-inline: .35rem; font-size: .88rem; } }
