/* Phase 3H-G — dedicated event registration application */
body.registration-app-active .account-sidebar,
body.registration-app-active .account-mobile-backdrop,
body.registration-app-active .account-mobile-toggle,
body.registration-app-active #account-sidebar-collapse,
body.registration-app-active .account-drawer-close {
    display: none !important;
}

body.registration-app-active .account-app-body {
    display: block;
}

body.registration-app-active .account-main {
    width: min(1120px, calc(100% - 28px));
    max-width: 1120px;
    margin: 0 auto;
    padding: 18px 0 28px;
}

body.registration-app-active .account-breadcrumb {
    margin: 0 0 10px;
}

body.registration-app-active #account-workspace-overview,
body.registration-app-active #account-workspace-drivers,
body.registration-app-active #account-workspace-organizations,
body.registration-app-active #account-workspace-services,
body.registration-app-active #account-workspace-account,
body.registration-app-active [data-account-registration-pane="upcoming"],
body.registration-app-active [data-account-registration-pane="history"],
body.registration-app-active #separated-package-modify-container {
    display: none !important;
}

body.registration-app-active #account-workspace-registrations {
    display: block !important;
}

body.registration-app-active #account-workspace-registrations .account-section-tabs {
    display: none !important;
}

body.registration-app-active #main-signup-accordion-box {
    display: block !important;
}

body.registration-app-active #form-content-wrapper {
    display: block !important;
}

body.registration-app-active #main-signup-accordion-box > .collapsible-header {
    cursor: default;
}

body.registration-app-active #arrow-a {
    display: none;
}

.registration-account-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 6px 11px;
    border-radius: 5px;
    background: #fff;
    color: #2c343a;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
}

.registration-account-link:hover {
    background: #e8edf0;
}

@media (max-width: 760px) {
    body.registration-app-active .account-main {
        width: calc(100% - 16px);
        padding-top: 10px;
    }
    body.registration-app-active .account-topbar {
        padding: 0 10px;
    }
    .registration-account-link {
        min-height: 31px;
        padding: 5px 8px;
        font-size: 12px;
    }
}

/* Phase 5A.3.1.2 — compact/expandable Reserved Number add-on inside event registration */
.event-reserved-number-addon {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    box-sizing: border-box;
}

/* The base registration CSS gives every div inside .input-row-flex width:100%.
   These overrides keep the add-on and its nested rows inside the class card. */
.input-row-flex .event-reserved-number-addon,
.input-row-flex .event-reserved-number-details {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.input-row-flex .event-reserved-number-addon div,
.input-row-flex .event-reserved-number-details div {
    width: auto;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.event-reserved-number-label {
    display: inline-flex;
    width: auto;
    max-width: 100%;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 2px 0;
    font-size: 14px;
    line-height: 1.3;
    cursor: pointer;
    box-sizing: border-box;
}

.event-reserved-number-label input {
    width: auto !important;
    margin: 0 !important;
    flex: 0 0 auto;
}

.event-reserved-number-details {
    display: none;
    margin-top: 6px;
    padding: 8px 9px;
    border: 1px solid #b9d6ee;
    border-radius: 5px;
    background: #f5fbff;
    overflow: hidden;
}

.event-reserved-number-addon.is-selected .event-reserved-number-details {
    display: block;
}

.event-reserved-number-program-name {
    color: #333;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.event-reserved-number-price {
    margin-top: 2px;
    color: #555;
    font-size: 12px;
    line-height: 1.3;
}

.event-reserved-number-input-label {
    display: block;
    margin: 7px 0 2px;
    color: #333;
    font-size: 13px;
    font-weight: 700;
}

input.event-reserved-number-input {
    width: 74px !important;
    max-width: 100%;
    margin: 0 !important;
    padding: 6px !important;
    font-size: 18px !important;
    box-sizing: border-box;
}

.event-reserved-number-status {
    margin: 5px 0 0 0;
    color: #66727b;
    font-size: 12px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.event-reserved-number-help {
    margin-top: 3px;
    color: #66727b;
    font-size: 11px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.event-reserved-number-status.is-pending { color: #805b10; }
.event-reserved-number-status.is-available { color: #2e7d32; }
.event-reserved-number-status.is-error { color: #b71c1c; font-weight: 600; }
.event-reserved-number-receipt-row { background: #f5fbff; }


/* Phase 5B.5.3 / 5B.5.3.1 — customer Event Registration dynamic stepper / Create Event-aligned navigation */
.registration-event-context-card {
    padding: 11px;
    margin-bottom: 12px;
    border: 1px solid #b7cbd8;
    border-radius: 6px;
    background: #f8fbfd;
}
.registration-event-context-card > label {
    display: block;
    margin: 0 0 4px;
    font-weight: 700;
}
.registration-event-context-card > select {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 8px;
}
.registration-event-fee-details {
    margin: 7px 0 0;
    color: var(--section-bg-accent-color);
    font-size: 14px;
    font-weight: 700;
}
.registration-wizard-shell {
    border: 1px solid #c8d6df;
    border-radius: 7px;
    background: #fff;
    overflow: hidden;
}
.registration-wizard-header {
    padding: 13px 14px 10px;
    background: var(--section-bg);
    border-bottom: 1px solid #c8d6df;
}
.registration-wizard-header h3 {
    margin: 2px 0 2px;
    color: #333;
    font-size: 19px;
}
.registration-wizard-header p {
    margin: 0;
    color: #5f6a72;
    font-size: 12px;
    line-height: 1.4;
}
.registration-wizard-kicker {
    color: var(--section-bg-accent-color);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.registration-wizard-tabs {
    display: flex;
    gap: 6px;
    width: auto;
    overflow-x: auto;
    padding: 14px 14px 12px;
    margin: 0 0 18px;
    border-bottom: 1px solid #e2e9f0;
    background: #fff;
    box-sizing: border-box;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}
.registration-wizard-tab {
    appearance: none;
    width: auto !important;
    min-width: 0;
    min-height: 42px;
    flex: 1 1 0;
    display: flex !important;
    gap: 7px;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    margin: 0 !important;
    padding: 8px 12px !important;
    background: #edf2f7 !important;
    border: 1px solid #dfe7ef !important;
    border-radius: 7px !important;
    color: #526b82 !important;
    font-size: 12px !important;
    font-weight: 750 !important;
    cursor: pointer;
    scroll-snap-align: start;
}
.registration-wizard-tab:hover {
    background: #e2eaf2 !important;
    color: #31526f !important;
}
.registration-wizard-tab.is-active {
    background: #2563a6 !important;
    color: #fff !important;
    border-color: #2563a6 !important;
    box-shadow: 0 2px 7px rgba(37,99,166,.2);
}
.registration-wizard-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 4px;
    border: 0;
    border-radius: 4px;
    background: #dbe5f0;
    color: #49647e;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .035em;
}
.registration-wizard-tab.is-active .registration-wizard-step-number {
    background: rgba(255,255,255,.16);
    color: #fff;
}
.registration-wizard-tab.is-complete:not(.is-active) .registration-wizard-step-number {
    background: #d6edda;
    color: #277036;
}
.registration-wizard-pane {
    display: none;
    padding: 0 14px 14px;
}
.registration-wizard-pane.is-active {
    display: block;
}
.registration-wizard-pane[hidden] {
    display: none !important;
}
.registration-wizard-pane-heading {
    margin-bottom: 19px;
}
.registration-wizard-pane-heading h4 {
    margin: 0 0 4px;
    padding: 0;
    border: 0;
    color: #2d455e;
    font-size: 20px;
}
.registration-wizard-pane-heading p {
    margin: 0;
    color: #738293;
    font-size: 12px;
    line-height: 1.4;
}
.registration-wizard-footer {
    border-top: 1px solid #e0e8ef;
    padding: 16px 14px 14px;
    margin-top: 8px;
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
}
.registration-wizard-footer button,
.registration-wizard-previous,
.registration-wizard-next {
    width: auto !important;
    min-width: 100px;
    min-height: 39px;
    margin: 0 !important;
    padding: 8px 14px !important;
    border-radius: 6px !important;
    border: 1px solid transparent;
    font-size: 13px !important;
    font-weight: 700;
    cursor: pointer;
}
.registration-wizard-previous {
    background: #e6edf5 !important;
    color: #31526f !important;
    border-color: #e6edf5 !important;
}
.registration-wizard-next {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #2563a6 !important;
    color: #fff !important;
    border-color: #2563a6 !important;
}
.registration-wizard-previous:hover:not(:disabled) {
    background: #d8e3ee !important;
}
.registration-wizard-next:hover:not(:disabled) {
    background: #1f558f !important;
}
.registration-wizard-footer button:disabled {
    opacity: .35;
    cursor: not-allowed;
}
.registration-wizard-progress {
    font-size: 12px;
    color: #7b8b9b;
    text-align: center;
}
.registration-wizard-bottom-actions {
    padding: 0 14px 14px;
}
.registration-wizard-bottom-actions .registration-wizard-exit-cancel {
    width: 100% !important;
    margin: 0 !important;
}
.registration-wizard-submit-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    margin-top: 15px;
    padding-top: 12px;
    border-top: 1px solid #e2e8ec;
}
.registration-wizard-submit-actions button {
    margin: 0 !important;
}
.registration-review-payment-card {
    padding: 12px;
    margin-bottom: 12px;
    border: 1px solid #2e7d32;
    border-radius: 5px;
    background: #e8f5e9;
}
.registration-review-payment-card > label {
    display: block;
    margin-bottom: 4px;
    font-weight: 700;
}
.registration-review-payment-card > select {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 8px;
}
.registration-payment-method-note {
    margin-top: 6px;
    color: #666;
    font-size: 12px;
    line-height: 1.4;
}
.registration-attached-product-list:empty {
    display: none;
}
.registration-attached-product-intro {
    margin: 0 0 8px;
    color: #5f6a72;
    font-size: 12px;
    line-height: 1.4;
}
.registration-attached-product-card {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 8px;
    padding: 10px;
    border: 1px solid #c8d6df;
    border-radius: 5px;
    background: #fbfdfe;
}
.registration-attached-product-main {
    min-width: 0;
    flex: 1 1 auto;
}
.registration-attached-product-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 8px;
    color: #263238;
    font-size: 14px;
}
.registration-attached-product-requirement {
    display: inline-flex;
    padding: 2px 6px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.registration-attached-product-requirement.is-optional {
    background: #e3f2fd;
    color: #1565c0;
}
.registration-attached-product-requirement.is-required {
    background: #fff3e0;
    color: #e65100;
}
.registration-attached-product-requirement.is-specialized {
    background: #ede7f6;
    color: #5e35b1;
}
.registration-attached-product-meta,
.registration-attached-product-description {
    margin-top: 3px;
    color: #66727b;
    font-size: 12px;
    line-height: 1.35;
}
.registration-attached-product-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    flex: 0 0 auto;
    color: #333;
    font-size: 12px;
    white-space: nowrap;
}
.registration-attached-product-foundation-note {
    margin: 7px 0 12px;
    padding: 8px 9px;
    border-left: 3px solid #90a4ae;
    background: #f5f7f8;
    color: #5f6a72;
    font-size: 11px;
    line-height: 1.4;
}

@media (max-width: 760px) {
    .registration-wizard-header,
    .registration-wizard-pane {
        padding-left: 10px;
        padding-right: 10px;
    }
    .registration-wizard-tabs {
        padding-left: 10px;
        padding-right: 10px;
        margin-bottom: 15px;
        gap: 5px;
    }
    .registration-wizard-tab {
        min-width: 132px;
        min-height: 39px;
        flex: 0 0 auto;
        padding: 7px 10px !important;
    }
    .registration-attached-product-card {
        flex-direction: column;
        gap: 7px;
    }
    .registration-attached-product-price {
        align-items: flex-start;
        white-space: normal;
    }
    .registration-wizard-footer {
        padding: 14px 10px 10px;
    }
    .registration-wizard-bottom-actions {
        padding: 0 10px 10px;
    }
    .registration-wizard-footer button {
        min-width: 86px;
        padding: 7px 9px !important;
    }
    .registration-wizard-progress {
        font-size: 11px;
    }
}

@media (max-width: 385px) {
    .registration-wizard-progress {
        max-width: 112px;
        line-height: 1.2;
    }
}

/* Phase 5B.5.4 — selectable attached Product Catalog Event Options */
.registration-attached-product-card.is-selectable {
    align-items: flex-start;
}
.registration-catalog-driver-options,
.registration-catalog-package-controls {
    margin-top: 10px;
    border-top: 1px solid #d9e2ec;
    padding-top: 8px;
}
.registration-catalog-choice-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 6px 0;
    font-size: 14px;
}
.registration-catalog-choice-main {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.registration-catalog-choice-main input[type="checkbox"] {
    width: auto;
    margin: 0;
    flex: 0 0 auto;
}
.registration-catalog-choice-main small {
    color: #64748b;
}
.registration-catalog-option-fields {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 10px 16px;
    padding-top: 6px;
}
.registration-catalog-beneficiary,
.registration-catalog-quantity {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}
.registration-catalog-beneficiary select {
    width: auto;
    min-width: 180px;
    margin: 0;
}
.registration-catalog-quantity input {
    width: 72px;
    margin: 0;
}
.registration-catalog-product-empty {
    margin-top: 9px;
    padding: 8px 10px;
    border-radius: 5px;
    background: #f8fafc;
    color: #64748b;
    font-size: 13px;
}
@media (max-width: 700px) {
    .registration-catalog-choice-row {
        align-items: flex-start;
    }
    .registration-catalog-option-fields {
        display: block;
    }
    .registration-catalog-beneficiary,
    .registration-catalog-quantity {
        margin-top: 8px;
        align-items: flex-start;
        flex-direction: column;
    }
    .registration-catalog-beneficiary select,
    .registration-catalog-quantity input {
        width: 100%;
        box-sizing: border-box;
    }
}

/* Phase 5B.5.5 — existing-package Event Option modification only */
.registration-modify-options-editor:not(:empty) {
    margin: 14px 0;
    padding: 12px;
    background: var(--section-bg, #fff);
    border: 1px solid #cbd5e1;
    border-radius: 5px;
}
.registration-modify-options-heading { margin: 0 0 6px; font-size: 17px; }
.registration-modify-options-note { margin: 0 0 11px; font-size: 13px; line-height: 1.45; color: #555; }
.registration-modify-options-existing { color: #555; font-size: 12px; margin-top: 6px; }
.registration-modify-options-actions { margin-top: 12px; }
.registration-modify-options-actions .button { width: 100%; padding: 10px; font-weight: 700; }
.registration-modify-options-editor .registration-attached-product-card { margin: 8px 0; }

/* Phase 5B.5.6 — Membership purchase integration inside Event Registration */
.registration-membership-program-card {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.registration-membership-program-card .registration-attached-product-main {
    width: 100%;
    min-width: 0;
}
.registration-membership-program-note {
    margin-top: 7px;
    color: #52616b;
    font-size: 12px;
    line-height: 1.4;
}
.registration-membership-program-warning {
    margin-top: 8px;
    padding: 8px 9px;
    box-sizing: border-box;
    max-width: 100%;
    border: 1px solid #f0c7a1;
    border-radius: 5px;
    background: #fff8f1;
    color: #7a421c;
    font-size: 12px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.registration-membership-beneficiaries {
    display: grid;
    gap: 6px;
    margin-top: 9px;
    min-width: 0;
}
.registration-membership-beneficiary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 8px 9px;
    border: 1px solid #d8e1e7;
    border-radius: 5px;
    background: #fff;
    font-size: 13px;
}
.registration-membership-beneficiary.is-active-member {
    background: #f4fbf5;
    border-color: #b8d8bb;
}
.registration-membership-beneficiary-main {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.registration-membership-beneficiary-main input[type="checkbox"] {
    width: auto;
    margin: 0;
    flex: 0 0 auto;
}
.registration-membership-beneficiary-main span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.registration-membership-beneficiary-main small {
    color: #66727b;
    font-weight: 400;
}
.registration-membership-line-price {
    flex: 0 0 auto;
    white-space: nowrap;
}
.registration-membership-quote {
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px dashed #ced8de;
    color: #5f6a72;
    font-size: 12px;
    line-height: 1.4;
}
.registration-membership-quote.is-ready {
    color: #2e6f35;
    font-weight: 700;
}
.registration-membership-quote.is-error {
    color: #a12b22;
    font-weight: 700;
}
.registration-membership-quote.is-neutral {
    color: #66727b;
}
.registration-membership-receipt-row span:first-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 600px) {
    .registration-membership-beneficiary {
        align-items: flex-start;
    }
    .registration-membership-line-price {
        white-space: normal;
        text-align: right;
    }
}

/* ========================================================================== */
/* PHASE 5G.4.2.3 — FLUID REGISTRATION PRICING TABLES                         */
/* ========================================================================== */
.registration-event-fee-details,
#modify-event-fee-details {
    margin: 7px 0 0;
    color: #333;
    font-size: 13px;
    font-weight: 400;
}

.registration-pricing-tables {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
    gap: 8px;
    align-items: start;
}

.registration-pricing-table-card {
    min-width: 0;
    border: 1px solid #c8d6df;
    border-radius: 6px;
    background: #fff;
    overflow: hidden;
}

.registration-pricing-table-title {
    padding: 5px 9px;
    background: #f4f7f9;
    border-bottom: 1px solid #d7e0e6;
    color: var(--section-bg-accent-color);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}

.registration-pricing-table-scroll {
    width: 100%;
    min-width: 0;
    overflow: visible;
}

.registration-pricing-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
    color: #243746;
    font-size: 12px;
    line-height: 1.2;
}

.registration-pricing-table th,
.registration-pricing-table td {
    min-width: 0;
    padding: 5px 6px;
    border-top: 1px solid #e2e8ec;
    text-align: center;
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
}

.registration-pricing-table tbody td {
    white-space: nowrap;
}

.registration-pricing-table thead th {
    border-top: 0;
    background: #eaf2f8;
    color: #4b6174;
    font-weight: 700;
}

.registration-pricing-table thead th:first-child,
.registration-pricing-table tbody th {
    text-align: left;
}

.registration-pricing-table thead th:first-child,
.registration-pricing-table tbody th {
    width: clamp(82px, 24%, 108px);
    max-width: 108px;
    box-sizing: border-box;
    white-space: nowrap;
}

.registration-pricing-table tbody th {
    color: #173f63;
    font-weight: 700;
}

.registration-pricing-table tbody td {
    color: #0059a8;
    font-weight: 700;
}

.registration-pricing-rate-row--member th,
.registration-pricing-rate-row--member td {
    background: #fbfdff;
}

.registration-pricing-note {
    margin-top: 4px;
    color: #66727a;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.3;
}

/* No device-specific pricing-table mode: the grid and tables size themselves
   continuously from the space their parent container actually provides. */

/* ========================================================================== */
/* PHASE 5G.5 / 5G.5.2.1 — REGISTRATION PACKAGE EVENTS / UI PARITY            */
/* ========================================================================== */
.registration-package-event-selector{
    margin:10px 0 14px;
    padding:10px;
    border:1px solid #cfd8dc;
    border-radius:6px;
    background:#fafcfd;
}
.registration-package-event-selector-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
    color:#333;
}
.registration-package-event-selector-heading strong{
    display:block;
    font-size:15px;
    line-height:1.2;
}
.registration-package-event-selector-heading span{
    display:block;
    margin-top:2px;
    color:#666;
    font-size:12px;
    line-height:1.35;
    font-weight:normal;
}
.registration-package-event-card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
    gap:8px;
}
.registration-package-event-card{
    appearance:none;
    -webkit-appearance:none;
    width:100%;
    min-width:0;
    margin:0;
    padding:10px 11px;
    border:1px solid #b9c4cc;
    border-radius:6px;
    background:#fff;
    color:#333;
    text-align:left;
    font:inherit;
    cursor:default;
    box-sizing:border-box;
    transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.registration-package-event-card:not(:disabled):hover,
.registration-package-event-card:not(:disabled):active{
    border-color:#90a4ae !important;
    background:#f1f4f5 !important;
    color:#333 !important;
    box-shadow:0 1px 3px rgba(0,0,0,.08);
}
.registration-package-event-card.is-selected,
.registration-package-event-card.is-selected:not(:disabled):hover,
.registration-package-event-card.is-selected:not(:disabled):active{
    border-color:#2e7d32 !important;
    background:#e8f5e9 !important;
    color:#333 !important;
    box-shadow:inset 0 0 0 1px rgba(46,125,50,.16),0 1px 3px rgba(0,0,0,.06);
}
.registration-package-event-card:disabled{
    opacity:1;
    cursor:default;
}
.registration-package-event-card-topline{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    min-width:0;
}
.registration-package-event-card-topline strong{
    min-width:0;
    font-size:15px;
    line-height:1.2;
    overflow-wrap:anywhere;
}
.registration-package-event-badge{
    flex:0 0 auto;
    padding:2px 6px;
    border-radius:999px;
    font-size:10px;
    font-weight:700;
    line-height:1.35;
    text-transform:uppercase;
    letter-spacing:.02em;
}
.registration-package-event-badge.is-required{
    background:#e8f5e9;
    color:#2e7d32;
}
.registration-package-event-badge.is-optional{
    background:#fff3e0;
    color:#e65100;
}
.registration-package-event-card.is-selected .registration-package-event-badge.is-optional{
    background:#e8f5e9;
    color:#2e7d32;
}
.registration-package-event-date,
.registration-package-event-pricing{
    display:block;
    margin-top:5px;
    color:#59636b;
    font-size:12px;
    line-height:1.25;
}
.registration-package-event-pricing{
    margin-top:2px;
    color:#333;
    font-weight:600;
}
.registration-package-child-events-workspace{
    display:none;
    flex-direction:column;
    gap:14px;
    margin:14px 0 4px;
}
.registration-package-child-event-section{
    border:1px solid #cfd8dc;
    border-radius:6px;
    background:#f8fafb;
    overflow:hidden;
}
.registration-package-child-event-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:10px 11px;
    border-bottom:1px solid #dbe2e7;
    background:#eef3f6;
}
.registration-package-child-event-heading h3{
    margin:1px 0 2px;
    color:#333;
    font-size:17px;
    line-height:1.2;
}
.registration-package-child-event-heading span{
    color:#666;
    font-size:12px;
}
.registration-package-child-event-kicker{
    display:block;
    color:#e65100!important;
    font-size:10px!important;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.registration-package-child-event-price-name{
    flex:0 1 auto;
    max-width:45%;
    text-align:right;
    color:#455a64;
    font-size:12px;
    font-weight:700;
    line-height:1.3;
}
.registration-package-child-event-help{
    padding:7px 11px 0;
    color:#666;
    font-size:11px;
    line-height:1.4;
}
.registration-package-child-event-drivers{
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:10px;
}
.registration-package-child-event-drivers .driver-separate-pricing-component{
    min-width:0;
    width:100%;
    box-sizing:border-box;
    border:2px solid #1565c0 !important;
    border-radius:4px !important;
    background:#fafafa !important;
    padding:10px 8px !important;
}
.registration-package-child-event-drivers .driver-pricing-component-entry-options{
    padding-left:0!important;
}
.registration-package-child-event-drivers .driver-pricing-component-custom-classes > div:last-child{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,225px),1fr))!important;
    gap:10px !important;
}
.registration-package-child-event-drivers .driver-pricing-component-team-field{
    margin-top:8px;
}
.registration-package-child-event-drivers .class-group-box{
    width:100%;
}
.registration-package-child-event-drivers .class-row-header > span > span[id*="pc-class-price-hint-"]{
    color:var(--section-bg-accent-color) !important;
}
.registration-package-child-event-empty{
    grid-column:1 / -1;
    padding:8px;
    border:1px dashed #c4cdd3;
    border-radius:4px;
    background:#fff;
    color:#777;
    font-size:12px;
    text-align:center;
}

/* Primary Event heading shown only when a Registration Package contains child Events. */
.registration-package-primary-event-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
    margin:14px 0 8px;
    padding:10px 12px;
    border:1px solid #cbd8e3;
    border-radius:6px;
    background:#f7fafc;
}
.registration-package-primary-event-heading h3{
    margin:1px 0 2px;
    font-size:18px;
    line-height:1.15;
}
.registration-package-primary-event-heading>div:first-child>span:last-child{
    font-size:12px;
    color:#5e6972;
}


/* ========================================================================== */
/* PHASE 5G.5.2.5 — REGISTRATION PACKAGE CONTEXT DISPLAY                      */
/* ========================================================================== */
.registration-event-selector-state {
    display: none !important;
}

.registration-selected-event-context {
    margin: 0 0 8px;
    min-width: 0;
}

.registration-selected-event-name {
    color: #243746;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.15;
}

.registration-selected-event-date {
    margin-top: 3px;
    color: #5c6c78;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

/* ========================================================================== */
/* PHASE 5I.2.1.8 — SHARED REGISTRATION / MODIFY REGISTRATION FORM STYLING   */
/* ========================================================================== */
.registration-driver-selection-label {
    display: block;
    margin-bottom: 4px;
    font-size: 14px;
    font-weight: 700;
}

.registration-driver-checklist {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
}

.registration-driver-partitions-workspace {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 15px;
    margin-bottom: 12px;
}

.registration-components-card {
    display: none;
    margin-bottom: 12px;
}

.registration-live-receipt-frame {
    display: none;
}

.registration-confirm-submit {
    display: none;
}

.registration-modify-container {
    display: block;
    width: 100%;
    margin-top: 15px;
    box-sizing: border-box;
    text-align: left;
}

.registration-modify-form-shell {
    margin: 0;
    padding: 0;
}

/* Modify Registration keeps account-modify-* classes as JS hooks, but the
   registration-* classes are the shared presentation layer for both wizards. */
.account-modify-wizard.registration-wizard-shell {
    width: 100%;
    box-sizing: border-box;
}

.account-modify-wizard-panes {
    width: 100%;
}

.account-modify-wizard-footer.registration-wizard-footer {
    flex-wrap: wrap;
}

.account-modify-wizard-footer-actions {
    flex: 0 0 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    margin-top: 4px;
}

.account-modify-wizard-footer-actions button {
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 10px 12px !important;
    font-weight: 700 !important;
}

@media (max-width: 460px) {
    .account-modify-wizard-footer-actions {
        grid-template-columns: 1fr;
    }
}

/* Registration Cost Summary now lives in the shared registration stylesheet. */
/* Phase 5I.2.1.5 — Registration / Modify Registration cost summary layout */
.live-pricing-summary-card.registration-cost-summary-card {
    background: #fff3e0;				/*		#e8f5e9		/	#f1f8e9		*/
    border: 1px solid #ffb74d;
    border-radius: 8px;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.registration-cost-summary-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 17px;
    background: #fff3e0;
    border-bottom: 1px solid #dfe5ec;
}

.registration-cost-summary-kicker {
    display: block;
    margin-bottom: 2px;
    color: #687587;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.registration-cost-summary-header h3 {
    margin: 0;
    color: #263442;
    font-size: 20px;
    line-height: 1.2;
}

.registration-cost-summary-header-total {
    flex: 0 0 auto;
    min-width: 128px;
    text-align: right;
}

.registration-cost-summary-header-total span {
    display: block;
    color: #687587;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.registration-cost-summary-header-total strong {
    display: block;
    margin-top: 1px;
    color: #1f2f3d;
    font-size: 22px;
}

.registration-cost-summary-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: #dfe5ec;
    border-bottom: 1px solid #dfe5ec;
}

.registration-cost-summary-meta > div {
    min-width: 0;
    padding: 9px 12px;
    background: #fff;
}

.registration-cost-summary-meta span,
.registration-cost-summary-meta strong {
    display: block;
}

.registration-cost-summary-meta span {
    margin-bottom: 2px;
    color: #7a8795;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.registration-cost-summary-meta strong {
    overflow-wrap: anywhere;
    color: #344454;
    font-size: 12px;
    line-height: 1.35;
}

.registration-cost-summary-body {
    padding: 14px 16px 16px;
}

.registration-cost-summary-section {
    margin: 0 0 13px;
    border: 1px solid #dfe5ec;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}

.registration-cost-summary-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    padding: 6px 11px;
    background: #f8fafc;
    border-bottom: 1px solid #e5eaf0;
}

.registration-cost-summary-section-heading h4 {
    margin: 0;
    color: #2d3c4b;
    font-size: 14px;
}

.registration-cost-summary-section-heading p {
    margin: 2px 0 0;
    color: #758291;
    font-size: 11px;
    line-height: 1.35;
}

.registration-cost-summary-section-heading > strong {
    flex: 0 0 auto;
    color: #263746;
    font-size: 14px;
	font-weight: 800;
}

.registration-cost-summary-lines {
    padding: 0 11px;
}

.registration-cost-summary-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 4px 0;
    border-bottom: 1px solid #edf0f3;
}

.registration-cost-summary-line:last-child {
    border-bottom: 0;
}

.registration-cost-summary-line-copy {
    min-width: 0;
}

.registration-cost-summary-line-copy strong,
.registration-cost-summary-line-copy span {
    display: block;
}

.registration-cost-summary-line-copy strong {
    color: #374654;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}

.registration-cost-summary-line-copy span {
    margin-top: 2px;
    color: #778391;
    font-size: 11px;
    line-height: 1.35;
}

.registration-cost-summary-line-amount {
    color: #283846;
    font-size: 12px;
    font-weight: normal;
    white-space: nowrap;
}

.registration-cost-summary-line-amount.is-pending {
    color: #7a8795;
}

.registration-cost-summary-payment {
    margin-top: 4px;
    padding-top: 4px;
}

.registration-cost-summary-payment-row,
.registration-cost-summary-payment-method,
.registration-cost-summary-grand-total {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 15px;
}

.registration-cost-summary-payment-row {
    padding: 5px 2px;
    color: #586675;
    font-size: 14px;
}

.registration-cost-summary-payment-row strong {
    color: #344454;
	font-weight: 800;
}

.registration-cost-summary-grand-total {
    margin-top: 6px;
    padding: 10px 2px 8px;
    border-top: 2px solid #aeb9c5;
    color: #1f2f3d;
    font-size: 20px;
    font-weight: 900;
}

.registration-cost-summary-grand-total strong {
    font-size: 23px;
}

.registration-cost-summary-payment-method {
    margin-top: 4px;
    padding: 7px 9px;
    border-radius: 5px;
    background: transparent;
    color: #657383;
    font-size: 12px;
}

.registration-cost-summary-payment-method strong {
    color: #334454;
    text-align: right;
}

@media (max-width: 700px) {
    .registration-cost-summary-header {
        align-items: flex-start;
        padding: 13px 13px;
    }

    .registration-cost-summary-header h3 {
        font-size: 18px;
    }

    .registration-cost-summary-header-total {
        min-width: 105px;
    }

    .registration-cost-summary-header-total strong {
        font-size: 19px;
    }

    .registration-cost-summary-meta {
        grid-template-columns: 1fr;
    }

    .registration-cost-summary-body {
        padding: 11px 11px 13px;
    }

    .registration-cost-summary-section-heading {
        gap: 10px;
    }

    .registration-cost-summary-line {
        gap: 10px;
    }
}


/* ========================================================================== */
/* PHASE 5G.5.6 — DRIVER-LEVEL SUB-EVENT PARTICIPATION                       */
/* Event cards now choose participating Drivers; the hidden legacy package    */
/* checklist remains the submission union of every selected Event roster.     */
/* ========================================================================== */
.registration-package-event-card {
    cursor:default;
}
.registration-package-event-driver-help {
    margin-top:8px;
    color:#65727c;
    font-size:11px;
    line-height:1.35;
}
.registration-package-event-driver-list {
    display:grid;
    gap:5px;
    margin-top:8px;
    padding-top:8px;
    border-top:1px solid #e2e7ea;
}
.registration-package-event-driver-choice {
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:7px;
    min-width:0;
    margin:0 !important;
    padding:5px 6px;
    border:1px solid #e1e5e8;
    border-radius:4px;
    background:#fff;
    color:#333;
    font-size:12px !important;
    font-weight:600 !important;
    line-height:1.25;
    cursor:pointer;
}
.registration-package-event-driver-choice:hover {
    border-color:#c5d0d7;
    background:#f8fafb;
}
.registration-package-event-driver-choice input[type="checkbox"] {
    width:auto !important;
    margin:0 !important;
    transform:scale(1.08);
    cursor:pointer;
}
.registration-package-event-driver-name {
    min-width:0;
    overflow-wrap:anywhere;
}
.registration-package-event-driver-tier {
    white-space:nowrap;
    font-size:10px;
    font-weight:750;
}
.registration-package-event-driver-tier.is-member { color:#2e7d32; }
.registration-package-event-driver-tier.is-nonmember { color:#a64b45; }
.registration-package-event-driver-summary {
    margin-top:7px;
    color:#596771;
    font-size:11px;
    font-weight:700;
    text-align:right;
}
.registration-package-event-driver-empty {
    padding:5px 0;
    color:#777;
    font-size:11px;
    font-style:italic;
}
.registration-package-child-event-driver-heading {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
    margin:0 0 7px;
    padding-bottom:5px;
    border-bottom:1px solid #e4e8eb;
    color:#263742;
    font-size:14px;
    line-height:1.25;
}
.registration-package-child-event-driver-heading span {
    color:#66737c;
    font-size:11px;
    font-weight:600;
}
@media (max-width:520px) {
    .registration-package-event-driver-choice {
        grid-template-columns:auto minmax(0,1fr);
    }
    .registration-package-event-driver-tier {
        grid-column:2;
    }
    .registration-package-event-driver-summary {
        text-align:left;
    }
}

/* ========================================================================== */
/* PHASE 5L.3.3 — RENTAL TX GROUPING / QUANTITY                              */
/* ========================================================================== */
.registration-rental-tx-group-control {
    margin-top:8px;
    padding:9px 10px;
    border:1px solid #c7d8e8;
    border-radius:5px;
    background:#f7fbff;
    box-sizing:border-box;
}
.registration-rental-tx-group-control > label {
    display:block;
    margin:0 0 5px;
    font-size:13px;
    font-weight:bold;
    color:#333;
}
.registration-rental-tx-group-control select {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin:0;
    font-size:13px;
}
.registration-rental-tx-group-summary {
    margin-top:5px;
    font-size:12px;
    line-height:1.35;
    color:#555;
}

/* Phase 5L.5.2: retain visible Pit Pass section when event has disabled passes. */
.pit-pass-selection-card.pit-pass-unavailable { background:#f0f0f0; border-color:#c8c8c8; color:#777; }
.pit-pass-selection-card.pit-pass-unavailable input,
.pit-pass-selection-card.pit-pass-unavailable select,
.pit-pass-selection-card.pit-pass-unavailable button { opacity:.55; cursor:not-allowed; }
.pit-pass-disabled-explanation { padding:8px 10px; margin-bottom:10px; font-size:13px; font-weight:600; border:1px solid #c5c5c5; border-radius:5px; background:#e6e6e6; color:#505050; }
.pit-pass-disabled-explanation[hidden] {display:none;}
