.scsd-p3-form{max-width:1100px;margin:1.5rem auto;padding:1.5rem;border:1px solid #d7dde5;border-radius:12px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.06)}
.scsd-p3-form h2{margin-top:0}.scsd-p3-disclaimer{padding:.8rem 1rem;background:#f5f7fa;border-left:4px solid #1d4f91}.scsd-p3-info{padding:.8rem 1rem;background:#fff8e5;border-left:4px solid #b7791f}.scsd-p3-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1rem 0}.scsd-p3-form label{display:block;font-weight:700;margin:.7rem 0}.scsd-p3-form input,.scsd-p3-form textarea{width:100%;box-sizing:border-box;margin-top:.25rem;padding:.65rem;border:1px solid #bfc7d1;border-radius:8px}.scsd-p3-help{display:block;font-weight:400;font-size:.9rem;color:#5d6673;margin-top:.2rem}.scsd-p3-form button{margin-top:1rem;padding:.8rem 1.2rem;border:0;border-radius:8px;background:#153e75;color:#fff;font-weight:700;cursor:pointer}.scsd-p3-notice{max-width:980px;margin:1rem auto;padding:1rem;border-radius:8px}.scsd-p3-notice.success{background:#e9f8ef;border:1px solid #91d4a5}.scsd-p3-notice.error{background:#fff0f0;border:1px solid #d69191}


.scsd-p3-notice {
    border-radius: 8px;
    margin: 0 0 16px 0;
    padding: 14px 16px;
    font-weight: 600;
}
.scsd-p3-notice.success {
    background: #e8f7ee;
    border: 1px solid #2f8f4e;
    color: #164b2a;
}
.scsd-p3-notice.error {
    background: #fff1f1;
    border: 1px solid #b42318;
    color: #7a271a;
}
.scsd-p3-toast {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 99999;
    max-width: 460px;
    box-shadow: 0 8px 28px rgba(0,0,0,.18);
}
@media (max-width: 640px) {
    .scsd-p3-toast {
        left: 16px;
        right: 16px;
        bottom: 16px;
        max-width: none;
    }
}


/* v0.1.14 form breathing-room polish: align Phase III field height with the main donation/activity report form. */
.scsd-p3-form {
    max-width: 1120px;
    padding: 28px 30px;
}
.scsd-p3-grid {
    gap: 20px 24px;
    margin: 20px 0 22px;
}
.scsd-p3-form label {
    margin: 0 0 14px;
    line-height: 1.35;
}
.scsd-p3-form input[type="text"],
.scsd-p3-form input[type="email"],
.scsd-p3-form input[type="tel"],
.scsd-p3-form input[type="url"],
.scsd-p3-form input[type="number"],
.scsd-p3-form input[type="file"],
.scsd-p3-form select {
    min-height: 46px;
    height: 46px;
    padding: 10px 12px;
    font-size: 15px;
    line-height: 1.35;
}
.scsd-p3-form textarea {
    min-height: 132px;
    padding: 12px;
    font-size: 15px;
    line-height: 1.45;
}
.scsd-p3-form input[type="checkbox"] {
    width: auto;
    min-height: auto;
    height: auto;
    margin-right: 10px;
    transform: scale(1.15);
}
.scsd-p3-form button {
    min-height: 48px;
    padding: 12px 20px;
    font-size: 15px;
}
.scsd-p3-disclaimer,
.scsd-p3-info {
    padding: 14px 18px;
    margin: 16px 0 20px;
    line-height: 1.55;
}


/* v0.1.15 group roster table: prevents accidental Enter-key form submission and gives teams a cleaner certificate roster. */
.scsd-p3-roster {
    border: 1px solid #d7dde5;
    border-radius: 10px;
    padding: 18px;
    margin: 20px 0;
}
.scsd-p3-roster legend {
    font-weight: 700;
    padding: 0 8px;
}
.scsd-p3-roster-table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0 12px;
}
.scsd-p3-roster-table th,
.scsd-p3-roster-table td {
    border-bottom: 1px solid #e3e8ef;
    padding: 10px 8px;
    vertical-align: middle;
}
.scsd-p3-roster-table th {
    text-align: left;
    font-size: 14px;
}
.scsd-p3-roster-number {
    width: 42px;
    font-weight: 700;
    color: #536171;
}
.scsd-p3-secondary-button,
.scsd-p3-form .scsd-p3-secondary-button {
    background: #eef2f7;
    color: #153e75;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    min-height: 40px;
    padding: 9px 14px;
    font-weight: 700;
    cursor: pointer;
}
.scsd-p3-form .scsd-p3-add-roster-row {
    margin-top: 4px;
}
@media (max-width: 720px) {
    .scsd-p3-roster-table,
    .scsd-p3-roster-table thead,
    .scsd-p3-roster-table tbody,
    .scsd-p3-roster-table th,
    .scsd-p3-roster-table td,
    .scsd-p3-roster-table tr {
        display: block;
        width: 100%;
    }
    .scsd-p3-roster-table thead {
        display: none;
    }
    .scsd-p3-roster-table tr {
        border: 1px solid #e3e8ef;
        border-radius: 8px;
        padding: 10px;
        margin-bottom: 12px;
    }
    .scsd-p3-roster-table td {
        border-bottom: 0;
        padding: 6px 0;
    }
}

/* v0.1.19 day-aware quota/waitlist and required cancellation acknowledgment. */
.scsd-p3-event-schedule,
.scsd-p3-consent {
    border: 1px solid #d7dde5;
    border-radius: 10px;
    padding: 18px;
    margin: 20px 0;
}
.scsd-p3-event-schedule legend,
.scsd-p3-consent legend {
    font-weight: 700;
    padding: 0 8px;
}
.scsd-p3-capacity-message.active {
    margin: 14px 0 18px;
    padding: 12px 14px;
    background: #eef6ff;
    border-left: 4px solid #1d4f91;
    border-radius: 8px;
    font-weight: 700;
    line-height: 1.45;
}
.scsd-p3-capacity-message.waitlist {
    background: #fff8e5;
    border-left-color: #b7791f;
}
.scsd-p3-required-ack {
    background: #f8fafc;
}

.scsd-p3-conditional-unit, .scsd-p3-designated-leader { border: 1px solid #d7dde8; border-radius: 10px; padding: 1rem; margin: 1rem 0; background: #f8fafc; }
.scsd-p3-conditional-unit[hidden], .scsd-p3-designated-leader[hidden] { display: none !important; }


/* v0.1.20 registration layout de-cramping and protected-team polish. */
.scsd-p3-form {
    max-width: 1180px;
}
.scsd-p3-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    align-items: start;
}
.scsd-p3-wide-section > label,
.scsd-p3-event-schedule > label {
    max-width: 420px;
}
.scsd-p3-group-core-grid {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    align-items: start;
}
.scsd-p3-group-core-grid label {
    min-width: 0;
}
.scsd-p3-group-core-grid select,
.scsd-p3-group-core-grid input {
    width: 100%;
}
.scsd-p3-volunteer-assignments .scsd-p3-assignment-row {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    border: 1px solid #e3e8ef;
    border-radius: 10px;
    padding: 14px;
    background: #fbfcfe;
}
.scsd-p3-form select {
    text-overflow: ellipsis;
}
.scsd-p3-capacity-message.active {
    clear: both;
}
.scsd-p3-restricted-note {
    background: #f8fafc;
    border-left-color: #64748b;
}
.scsd-p3-protected-option-note {
    display: block;
    margin-top: 8px;
    color: #7a271a;
    font-weight: 700;
}
@media (max-width: 900px) {
    .scsd-p3-group-core-grid,
    .scsd-p3-volunteer-assignments .scsd-p3-assignment-row {
        grid-template-columns: 1fr;
    }
}

/* v0.1.21 group roster role/time assignment support. */
.scsd-p3-roster-table th:nth-child(1),
.scsd-p3-roster-table td:nth-child(1) {
    width: 48px;
}
.scsd-p3-roster-table th:nth-child(5),
.scsd-p3-roster-table td:nth-child(5) {
    width: 120px;
}
.scsd-p3-roster-table select,
.scsd-p3-roster-table input[type="text"] {
    min-width: 190px;
}
.scsd-p3-roster .scsd-p3-help {
    line-height: 1.55;
}
@media (max-width: 980px) {
    .scsd-p3-roster-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}
@media (max-width: 720px) {
    .scsd-p3-roster-table {
        white-space: normal;
    }
    .scsd-p3-roster-table select,
    .scsd-p3-roster-table input[type="text"] {
        min-width: 0;
        width: 100%;
    }
}

.scsd-p3-group-intent,
.scsd-p3-locked-assignment {
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid #d8dee8;
    border-radius: 8px;
    background: #f9fbff;
}

.scsd-p3-group-intent label {
    display: block;
    margin: 0.45rem 0;
    font-weight: 600;
}

.scsd-p3-locked-assignment {
    border-left: 4px solid #b98132;
    background: #fff8ea;
}

/* v0.1.24 Day One/Both Days group intent alignment and workflow polish. */
.scsd-p3-group-intent[hidden] {
    display: none !important;
}
.scsd-p3-group-intent legend {
    font-weight: 700;
    padding: 0 .25rem;
}
.scsd-p3-group-intent label {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: .65rem;
    align-items: start;
    line-height: 1.45;
    padding: .25rem 0;
}
.scsd-p3-group-intent input[type="radio"] {
    width: auto;
    margin: .2rem 0 0 0;
    padding: 0;
}
.scsd-p3-group-intent .scsd-p3-help {
    margin: .35rem 0 .75rem;
}

/* v0.1.25: clean day-selection and Day One Activity radio-card layout. */
.scsd-p3-event-day-radio-fieldset,
.scsd-p3-day-one-activity-fieldset {
    border: 1px solid #d9e2ec;
    border-radius: 10px;
    background: #f8fafc;
    padding: 1rem 1.1rem;
    margin: 1rem 0;
}

.scsd-p3-event-day-radio-fieldset legend,
.scsd-p3-day-one-activity-fieldset legend {
    font-weight: 700;
    padding: 0 .4rem;
}

.scsd-p3-radio-card-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: .75rem;
    margin: .8rem 0;
}

.scsd-p3-radio-card {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: .65rem !important;
    width: 100%;
    min-height: 48px;
    margin: 0 !important;
    padding: .75rem .85rem !important;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #ffffff;
    line-height: 1.35;
    cursor: pointer;
}

.scsd-p3-radio-card input[type="radio"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px;
    margin: .15rem 0 0 0 !important;
    padding: 0 !important;
}

.scsd-p3-radio-card span {
    display: block;
    font-weight: 600;
}

.scsd-p3-radio-card:has(input[type="radio"]:checked) {
    border-color: #8a1538;
    box-shadow: 0 0 0 2px rgba(138, 21, 56, .12);
}

.scsd-p3-both-days-help {
    margin-top: .35rem;
}

@media (max-width: 700px) {
    .scsd-p3-radio-card-group {
        grid-template-columns: 1fr;
    }
}


/* v0.1.26: stronger radio alignment and clearer group/day workflow spacing. */
.scsd-p3-event-day-radio-fieldset,
.scsd-p3-day-one-activity-fieldset {
    clear: both;
}

.scsd-p3-event-day-radio-fieldset .scsd-p3-radio-card-group,
.scsd-p3-day-one-activity-fieldset .scsd-p3-radio-card-group {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
    gap: .85rem !important;
    align-items: stretch !important;
}

.scsd-p3-event-day-radio-fieldset label.scsd-p3-radio-card,
.scsd-p3-day-one-activity-fieldset label.scsd-p3-radio-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: .7rem !important;
    min-height: 54px !important;
    padding: .8rem .9rem !important;
    margin: 0 !important;
    text-align: left !important;
    box-sizing: border-box !important;
}

.scsd-p3-event-day-radio-fieldset label.scsd-p3-radio-card input[type="radio"],
.scsd-p3-day-one-activity-fieldset label.scsd-p3-radio-card input[type="radio"] {
    flex: 0 0 16px !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    margin: .22rem 0 0 0 !important;
    position: static !important;
}

.scsd-p3-event-day-radio-fieldset label.scsd-p3-radio-card span,
.scsd-p3-day-one-activity-fieldset label.scsd-p3-radio-card span {
    display: block !important;
    flex: 1 1 auto !important;
    line-height: 1.35 !important;
    margin: 0 !important;
}

.scsd-p3-group-core-grid select:disabled {
    background: #f1f5f9;
    color: #334155;
}

/* v0.1.31: Dismissible post-submit notice cleanup. */
.scsd-p3-toast {
    padding-right: 52px;
}
.scsd-p3-toast-close {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 999px;
    background: rgba(0,0,0,.08);
    color: inherit;
    font-size: 22px;
    line-height: 1;
    font-weight: 700;
    cursor: pointer;
    margin: 0;
    padding: 0;
}
.scsd-p3-toast-close:hover,
.scsd-p3-toast-close:focus {
    background: rgba(0,0,0,.16);
    outline: 2px solid currentColor;
    outline-offset: 2px;
}


/* v0.1.35: hard-hide Day One setup-only team/role dropdowns and keep the setup assignment out of Day Two choices. */
.scsd-p3-force-hidden,
.scsd-p3-force-hidden[hidden] {
    display: none !important;
}
.scsd-p3-locked-assignment[hidden] {
    display: none !important;
}


/* v0.1.36: clearer Day One + Main Event group workflow layout. */
.scsd-p3-group-main-event-heading {
    margin: 1.1rem 0 .55rem;
    padding: .85rem 1rem;
    border-left: 4px solid #8a1538;
    background: #f8fafc;
    border-radius: 8px;
}
.scsd-p3-group-main-event-heading[hidden] {
    display: none !important;
}
.scsd-p3-group-main-event-heading h3 {
    margin: 0 0 .25rem;
    font-size: 1.08rem;
    line-height: 1.25;
}
.scsd-p3-locked-assignment {
    margin: .9rem 0;
    padding: .9rem 1rem;
    border-left: 4px solid #c8912e;
    background: #fff8e6;
    border-radius: 8px;
    line-height: 1.5;
}
.scsd-p3-day-one-activity-fieldset .scsd-p3-radio-card-group {
    grid-template-columns: 1fr !important;
}
.scsd-p3-day-one-activity-fieldset label.scsd-p3-radio-card {
    min-height: 46px !important;
}

/* v0.1.37: Day One participant roster and clearer combined group flow. */
.scsd-p3-day-one-participants {
    border-left: 4px solid #2f5f9f;
    background: #f8fbff;
}
.scsd-p3-day-one-participant-table th,
.scsd-p3-day-one-participant-table td {
    vertical-align: top;
}
.scsd-p3-day-one-participant-table select,
.scsd-p3-day-one-participant-table input {
    width: 100%;
    min-width: 0;
}
@media (max-width: 900px) {
    .scsd-p3-day-one-participant-table,
    .scsd-p3-day-one-participant-table thead,
    .scsd-p3-day-one-participant-table tbody,
    .scsd-p3-day-one-participant-table th,
    .scsd-p3-day-one-participant-table td,
    .scsd-p3-day-one-participant-table tr {
        display: block;
        width: 100%;
    }
    .scsd-p3-day-one-participant-table thead {
        display: none;
    }
    .scsd-p3-day-one-participant-table tr {
        border: 1px solid #d8e2ef;
        margin-bottom: 12px;
        padding: 10px;
        background: #fff;
    }
}

/* v0.1.38: strengthened submission notification mail fallback. */

/* v0.1.39: Day One roster now appears before Main Stand Down Event assignment; main event roster hides unless needed. */


/* v0.1.42: Preserve entered data on validation errors and make missing fields obvious. */
.scsd-p3-field-error{border-color:#b42318!important;box-shadow:0 0 0 3px rgba(180,35,24,.16)!important;background:#fff7f7!important}
.scsd-p3-client-validation{margin:1rem 0!important}

/* v0.1.46 Volunteer Operations / GUNNYRET VOMS groundwork */

/* v0.1.51 workshop/session selection preview. */
.scsd-p3-workshop-preview {
    display: block;
    margin-top: 6px;
    color: #4b5563;
    font-size: 0.92em;
    line-height: 1.35;
}
.scsd-p3-volunteer-equipment,
.scsd-p3-volunteer-duties {
    border: 1px solid #d0d7de;
    border-radius: 10px;
    padding: 16px;
    margin: 18px 0;
    background: #fbfcfe;
}
.scsd-p3-role-duty {
    margin: 8px 0;
    padding: 10px 12px;
    border-left: 4px solid #1d4ed8;
    background: #fff;
    border-radius: 6px;
}
.scsd-p3-role-duty summary {
    cursor: pointer;
    font-weight: 700;
}
.scsd-p3-roster-table select[name="group_roster_shirt_needed[]"],
.scsd-p3-roster-table select[name="group_roster_shirt_size[]"] {
    min-width: 120px;
}
@media (max-width: 780px) {
    .scsd-p3-roster-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}
