/* ==========================================================
Convention Registrar Tools
Main Stylesheet
========================================================== */

/* ==========================================================
Color Palette
========================================================== */

:root {
    --crt-primary: #75654f;
    --crt-primary-hover: #655742;
    --crt-row-hover: #f2ede5;
    --crt-border: #dddddd;
    --crt-input-text: #222222;
    --crt-input-background: #ffffff;

    --crt-success-bg: #d6d9bd;
    --crt-success-text: #4f5737;

    --crt-warning-bg: #fff3cd;
    --crt-warning-text: #856404;

    --crt-danger-bg: #f8d7da;
    --crt-danger-text: #721c24;

}

/* ==========================================================
Standard Buttons
========================================================== */

.crt-button,
.crt-button-secondary,
.crt-edit-attendee,
#crt-dialog-save,
#crt-dialog-cancel,
#crt-dialog-close,
.crt-export-toolbar-button {
    padding: 8px 14px;
    border: 1px solid var(--crt-primary);
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    line-height: normal;
    transition:
        background-color .2s ease,
        border-color .2s ease,
        color .2s ease;
}

.crt-button {
    background: var(--crt-primary);
    color: #ffffff;
}

.crt-button:hover,
.crt-button:focus {
    background: var(--crt-primary-hover);
    border-color: var(--crt-primary-hover);
    color: #ffffff;
}

.crt-button-secondary,
.crt-edit-attendee,
#crt-dialog-save,
#crt-dialog-cancel,
#crt-dialog-close,
.crt-export-toolbar-button {
    background: transparent;
    color: var(--crt-primary);
}

.crt-button-secondary:hover,
.crt-button-secondary:focus,
.crt-edit-attendee:hover,
.crt-edit-attendee:focus,
#crt-dialog-save:hover,
#crt-dialog-save:focus,
#crt-dialog-cancel:hover,
#crt-dialog-cancel:focus,
#crt-dialog-close:hover,
#crt-dialog-close:focus,
.crt-export-toolbar-button:hover,
.crt-export-toolbar-button:focus {
    background: var(--crt-primary);
    color: #ffffff;
}

.crt-edit-attendee,
#crt-dialog-save,
#crt-dialog-cancel,
#crt-dialog-close {
    margin-right: 8px;
}

.crt-export-toolbar-button {
    height: 40px;
    margin: 0;
}

.crt-button:disabled,
.crt-button-secondary:disabled {
    cursor: not-allowed;
    opacity: .6;
}

/* Registrar page navigation */
.registrar-navigation .wp-block-navigation-item__content,
.registrar-navigation .wp-block-navigation-item__label {
    color: #000000 !important;
    transition: color 0.2s ease;
}

/* Hover and keyboard focus */
.registrar-navigation .wp-block-navigation-item__content:hover,
.registrar-navigation .wp-block-navigation-item__content:focus,
.registrar-navigation .wp-block-navigation-item__content:hover .wp-block-navigation-item__label,
.registrar-navigation .wp-block-navigation-item__content:focus .wp-block-navigation-item__label {
    color: #75654f !important;
}

/* Current registrar page */
.registrar-navigation .current-menu-item>.wp-block-navigation-item__content,
.registrar-navigation .current-menu-item>.wp-block-navigation-item__content .wp-block-navigation-item__label,
.registrar-navigation .wp-block-navigation-item__content[aria-current="page"],
.registrar-navigation .wp-block-navigation-item__content[aria-current="page"] .wp-block-navigation-item__label {
    color: #75654f !important;
}

.crt-program-options label {
    display: block;
    margin-bottom: 6px;
    font-size: 18px;
    font-weight: 400;
}

.crt-program-options label:last-child {
    margin-bottom: 0;
}

.crt-program-options input[type="checkbox"] {
    accent-color: var(--crt-primary);
}

.crt-form-actions {
    margin-top: 20px;
}

.crt-form-message {
    margin: 20px 0;
    padding: 12px 15px;
    border: 1px solid;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 400;
}

.crt-form-message-success {
    border-color: var(--crt-primary);
    background: transparent;
    color: var(--crt-success-text);
}

.crt-form-message-error {
    border-color: var(--crt-danger-text);
    background: var(--crt-danger-bg);
    color: var(--crt-danger-text);
}

/* ==========================================================
Attendee Toolbar
========================================================== */

.crt-attendee-toolbar {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 15px;
}

.crt-attendee-search {
    margin-bottom: 0;
}

/* Search fields: same Fellowship Systems border both inactive and focused. */
#crt-attendee-search,
#crt-attendee-search:focus,
#crt-booking-search,
#crt-booking-search:focus {
    border: 1px solid var(--crt-primary-hover) !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Custom clear X for Chrome-based browsers. */
#crt-attendee-search::-webkit-search-cancel-button,
#crt-booking-search::-webkit-search-cancel-button {
    -webkit-appearance: none;

    width: 14px;
    height: 14px;

    background-color: var(--crt-primary-hover);

    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 4l12 12M16 4L4 16' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;

    cursor: pointer;
}

/* Keep the Attendee and Booking search fields the same size. */
#crt-attendee-search,
#crt-booking-search {
    width: 100%;
    max-width: 400px;
}

/* ==========================================================
Attendee Table and Edit Dialog
========================================================== */

#crt-attendee-table tbody tr:hover td {
    background-color: var(--crt-row-hover);
}

#crt-dialog input[name="crt-program[]"] {
    accent-color: var(--crt-primary);
}

/* Attendee and booking edit fields */
#crt-dialog input[type="text"],
#crt-booking-details input[type="text"],
#crt-booking-details input[type="email"],
#crt-booking-details input[type="tel"] {
    border: 1px solid var(--crt-primary) !important;
    outline: none;
    box-shadow: none;
}

/* Attendee and booking edit fields when focused */
#crt-dialog input[type="text"]:focus,
#crt-dialog input[type="text"]:focus-visible,
#crt-booking-details input[type="text"]:focus,
#crt-booking-details input[type="text"]:focus-visible,
#crt-booking-details input[type="email"]:focus,
#crt-booking-details input[type="email"]:focus-visible,
#crt-booking-details input[type="tel"]:focus,
#crt-booking-details input[type="tel"]:focus-visible {
    border-color: var(--crt-primary-hover) !important;
    outline: none !important;
    box-shadow: 0 0 0 1px var(--crt-primary-hover) !important;
}

/* ==========================================================
Generic Dialog
========================================================== */

.crt-dialog-overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .4);
}

.crt-dialog {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 500px;
    max-width: 90%;
    padding: 25px;
    transform: translate(-50%, -50%);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}

.crt-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ==========================================================
Save Messages
========================================================== */

#crt-save-message,
#crt-booking-save-message {
    margin-top: 15px;
    padding: 10px;
    border: 1px solid var(--crt-primary);
    border-radius: 4px;
    background: transparent;
    color: var(--crt-primary);
    text-align: center;
    font-weight: 600;
}

#crt-booking-save-message {
    margin: 15px 0;
}

/* ==========================================================
Booking Table
========================================================== */

#crt-bookings-table thead th[data-sort] {
    cursor: pointer;
    user-select: none;
}

.crt-sort-indicator {
    display: inline-block;
    min-width: 1em;
}

.crt-booking-row {
    cursor: pointer;
}

.crt-booking-row:hover td {
    background: var(--crt-row-hover);
}

/* ==========================================================
Booking Status Dropdowns
========================================================== */

.crt-booking-status-cell {
    width: 125px;
}

.crt-booking-status {
    min-width: 105px;
    padding: 5px 28px 5px 10px;
    border: 1px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    transition:
        opacity .2s ease,
        border-color .2s ease;
}

.crt-booking-status:hover,
.crt-booking-status:focus {
    border-color: currentColor;
    outline: none;
}

.crt-booking-status:disabled,
.crt-booking-status.crt-status-saving {
    cursor: wait;
    opacity: .6;
}

.crt-status-completed {
    background: var(--crt-success-bg);
    color: var(--crt-success-text);
}

.crt-status-pending {
    background: var(--crt-warning-bg);
    color: var(--crt-warning-text);
}

.crt-status-failed {
    background: var(--crt-danger-bg);
    color: var(--crt-danger-text);
}

.crt-treasurer-sync-error {
    margin-top: 7px;
    max-width: 260px;
    color: var(--crt-danger-text);
    font-size: 12px;
    line-height: 1.35;
}

.crt-treasurer-sync-error[hidden] {
    display: none;
}

.crt-treasurer-sync-message {
    display: block;
    margin-bottom: 5px;
}

.crt-treasurer-sync-retry {
    padding: 3px 9px;
    border: 1px solid currentColor;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
}

.crt-treasurer-sync-retry:disabled {
    cursor: wait;
    opacity: .6;
}

/* ==========================================================
Booking Detail Popup
========================================================== */

.crt-booking-details {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 10000;
    width: 950px;
    max-width: 90%;
    max-height: 85vh;
    padding: 25px;
    overflow-y: auto;
    transform: translate(-50%, -50%);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}

.crt-booking-details.open {
    display: block;
}

.crt-detail-columns {
    display: grid;
    grid-template-columns: .8fr .8fr 1.4fr;
    gap: 20px;
}

.crt-detail-section {
    margin-bottom: 20px;
    padding: 15px;
    border: 1px solid var(--crt-border);
    border-radius: 6px;
}

.crt-detail-section h4 {
    margin-top: 0;
    margin-bottom: 10px;
}

.crt-detail-section p {
    margin-bottom: 10px;
    font-size: 16px;
}

.crt-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.crt-section-header h4 {
    margin: 0;
}

.crt-detail-close {
    position: absolute;
    top: 10px;
    right: 12px;
}

.crt-contact-edit-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.crt-contact-edit-grid label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-weight: 600;
}

.crt-contact-edit-grid input {
    box-sizing: border-box;
    width: 100%;
    color: var(--crt-input-text);
    font-weight: 400;
}

.crt-contact-edit-wide {
    grid-column: 1 / -1;
}

.crt-edit-actions {
    display: flex;
    gap: 8px;
    margin-top: 15px;
}

/* ==========================================================
Booking Overlay
========================================================== */

.crt-booking-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9998;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .4);
}

.crt-booking-overlay.open {
    display: block;
}

/* ==========================================================
Responsive Adjustments
========================================================== */

@media (max-width: 800px) {

    .crt-detail-columns,
    .crt-contact-edit-grid {
        grid-template-columns: 1fr;
    }

    .crt-contact-edit-wide {
        grid-column: auto;
    }

    .crt-attendee-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

}

/* ==========================================================
Registrar Dashboard Summary
========================================================== */

.crt-reports-wrap {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    color: #222;
}

/* Hide the redundant report-page headings on the dashboard. */
.crt-reports-wrap>h2,
.crt-report-section>h3 {
    display: none;
}

.crt-report-section {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

/* Two nested report columns inside the dashboard's left column. */
.crt-report-groups {
    display: grid;
    grid-template-columns: 40% 45%;
    column-gap: 60px;
    row-gap: 0;
    align-items: start;
}

.crt-report-column {
    min-width: 0;
}

.crt-report-group {
    width: 100%;
    margin: 0 0 28px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.crt-report-column .crt-report-group:last-child {
    margin-bottom: 0;
}

/* Plain black section headings. */
.crt-report-group h4 {
    margin: 0 0 12px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #222;
    font-size: 18px;
    font-weight: 600;
}

/* Simple label-and-value rows. */
.crt-report-rows,
.crt-report-summary {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

.crt-report-row,
.crt-report-card {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 18px;
    width: 100%;
    margin: 0;
    padding: 4px 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    font-size: 14px;
    line-height: 1.4;
}

.crt-report-label {
    min-width: 0;
    color: #222;
    font-weight: 400;
}

.crt-report-value {
    flex: 0 0 auto;
    color: #222;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 782px) {

    .crt-report-groups {
        grid-template-columns: 1fr;
    }

}

/* Adjust top of program affiliation summary section */
.crt-program-summary {
    margin-top: 56px;
    /* Adjust to taste */
}

/* Adjust top of financial summary section */
.crt-report-spacer {
    height: 10px;
}

/* Adjust footnote font of program affiliation summary section */
.crt-report-note {
    margin: 10px 0 0;
    font-size: 13px;
    font-style: italic;
    line-height: 1.4;
}

/* Adjust font of headers finanical summary section */
.crt-report-subheading {
    margin-top: 10px;
    margin-bottom: 4px;
    padding-bottom: 2px;
    border-bottom: 1px solid #d9d9d9;
    font-size: 0.8rem;
    font-weight: 600;
    color: #666;
}

/* ==========================================================
Registrar Dashboard Buttons
========================================================== */

/* Keep both button columns evenly sized. */
.crt-dashboard-button-grid {
    align-items: stretch;
    gap: 16px;
}

/* Stack the two buttons evenly within each nested column. */
.crt-dashboard-button-grid>.wp-block-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

/* Make each Gutenberg button fill its column. */
.crt-dashboard-button-grid .wp-block-button {
    width: 100%;
    margin: 0;
}

/* Secondary registrar-button appearance. */
.crt-dashboard-button-grid .wp-block-button__link {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 42px;
    padding: 8px 12px;

    border: 1px solid var(--crt-primary);
    border-radius: 4px;

    background: transparent;
    color: var(--crt-primary);

    font-size: 18px;
    font-weight: 400;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;

    transition:
        background-color .2s ease,
        border-color .2s ease,
        color .2s ease;
}

/* Match the existing registrar secondary-button hover style. */
.crt-dashboard-button-grid .wp-block-button__link:hover,
.crt-dashboard-button-grid .wp-block-button__link:focus {
    border-color: var(--crt-primary);
    background: var(--crt-primary);
    color: #ffffff;
}

/* ==========================================================
Registrar Dashboard Export Message
========================================================== */

#crt-dashboard-export-message {

    position: fixed;

    top: 70px;
    right: 24px;

    z-index: 10000;

    display: none;

    padding: 10px 18px;

    border: 1px solid var(--crt-primary);
    border-radius: 4px;

    background: #fff;

    color: var(--crt-primary);

    font-size: 14px;
    font-weight: 600;

    box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
}

/* ==========================================================
Treasurer Portal Visual Alignment — Version 1.6.6

These rules align the Registrar operational interface with the
Convention Treasurer Tools design language. Eventin, Stripe, and
public registration overrides remain isolated in eventin-overrides.css.
========================================================== */

:root {
    --crt-primary-dark: #655742;
    --crt-soft: #eee8dc;
    --crt-surface: #ffffff;
    --crt-surface-muted: #f6f7f7;
    --crt-text: #1d2327;
    --crt-muted: #646970;
    --crt-border: #d7ddd2;
    --crt-info: #2271b1;
    --crt-radius: 8px;
    --crt-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.crt-bookings,
.crt-reports-wrap,
#crt-attendee-table,
#crt-bookings-table {
    color: var(--crt-text);
}

/* Buttons */
.crt-button,
.crt-button-secondary,
.crt-edit-attendee,
#crt-dialog-save,
#crt-dialog-cancel,
#crt-dialog-close,
.crt-export-toolbar-button,
.crt-dashboard-button-grid .wp-block-button__link {
    border-radius: 6px;
    font-weight: 600;
    min-height: 38px;
    padding: 8px 14px;
}

.crt-button {
    background: var(--crt-primary);
    border-color: var(--crt-primary);
    box-shadow: none;
}

.crt-button:hover,
.crt-button:focus {
    background: var(--crt-primary-dark);
    border-color: var(--crt-primary-dark);
}

.crt-button-secondary,
.crt-edit-attendee,
#crt-dialog-save,
#crt-dialog-cancel,
#crt-dialog-close,
.crt-export-toolbar-button,
.crt-dashboard-button-grid .wp-block-button__link {
    background: #ffffff;
    border-color: var(--crt-primary);
    color: var(--crt-primary-dark);
}

.crt-button-secondary:hover,
.crt-button-secondary:focus,
.crt-edit-attendee:hover,
.crt-edit-attendee:focus,
#crt-dialog-save:hover,
#crt-dialog-save:focus,
#crt-dialog-cancel:hover,
#crt-dialog-cancel:focus,
#crt-dialog-close:hover,
#crt-dialog-close:focus,
.crt-export-toolbar-button:hover,
.crt-export-toolbar-button:focus,
.crt-dashboard-button-grid .wp-block-button__link:hover,
.crt-dashboard-button-grid .wp-block-button__link:focus {
    background: var(--crt-primary);
    border-color: var(--crt-primary);
    color: #ffffff;
}

/* Navigation */
.registrar-navigation {
    border-bottom: 1px solid var(--crt-border);
    margin-bottom: 20px;
    padding-bottom: 2px;
}

.registrar-navigation .wp-block-navigation-item__content {
    border-bottom: 3px solid transparent;
    font-weight: 600;
    padding-bottom: 8px;
    text-decoration: none !important;
}

.registrar-navigation .wp-block-navigation-item__content:hover,
.registrar-navigation .wp-block-navigation-item__content:focus,
.registrar-navigation .wp-block-navigation-item__content[aria-current="page"] {
    border-bottom-color: var(--crt-primary);
}

/* Form surface */

#crt-attendee-search,
#crt-booking-search,
#crt-dialog input[type="text"],
#crt-booking-details input[type="text"],
#crt-booking-details input[type="email"],
#crt-booking-details input[type="tel"] {
    background: #ffffff;
    border: 1px solid #8c8f94 !important;
    border-radius: 6px;
    min-height: 40px;
    padding: 8px 10px;
}

#crt-attendee-search:focus,
#crt-booking-search:focus,
#crt-dialog input[type="text"]:focus,
#crt-dialog input[type="text"]:focus-visible,
#crt-booking-details input[type="text"]:focus,
#crt-booking-details input[type="text"]:focus-visible,
#crt-booking-details input[type="email"]:focus,
#crt-booking-details input[type="email"]:focus-visible,
#crt-booking-details input[type="tel"]:focus,
#crt-booking-details input[type="tel"]:focus-visible {
    border-color: var(--crt-primary) !important;
    box-shadow: 0 0 0 1px var(--crt-primary) !important;
    outline: none !important;
}

/* Toolbars */
.crt-attendee-toolbar,
.crt-booking-toolbar {
    align-items: flex-end;
    background: var(--crt-surface-muted);
    border: 1px solid var(--crt-border);
    border-radius: var(--crt-radius);
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 16px;
    padding: 14px;
}

/* Tables */
#crt-attendee-table,
#crt-bookings-table {
    background: var(--crt-surface);
    border: 1px solid var(--crt-border);
    border-collapse: separate;
    border-radius: var(--crt-radius);
    border-spacing: 0;
    box-shadow: var(--crt-shadow);
    overflow: hidden;
    width: 100%;
}

#crt-attendee-table th,
#crt-attendee-table td,
#crt-bookings-table th,
#crt-bookings-table td {
    border-bottom: 1px solid var(--crt-border);
    padding: 10px 12px;
    vertical-align: middle;
}

#crt-attendee-table thead th,
#crt-bookings-table thead th {
    background: var(--crt-surface-muted);
    color: var(--crt-text);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

#crt-attendee-table tbody tr:last-child td,
#crt-bookings-table tbody tr:last-child td {
    border-bottom: 0;
}

#crt-attendee-table tbody tr:hover td,
.crt-booking-row:hover td {
    background: var(--crt-soft);
}

/* Status controls */
.crt-booking-status {
    border-radius: 999px;
    font-weight: 700;
    min-height: 30px;
}

.crt-status-completed {
    background: #e7f4e8;
    color: #2e7d32;
}

.crt-status-pending {
    background: #fff5d6;
    color: #8a5d00;
}

.crt-status-failed {
    background: #fbe7e7;
    color: #b32d2e;
}

/* Messages and notices */
.crt-form-message,
#crt-save-message,
#crt-booking-save-message,
#crt-dashboard-export-message {
    border-left-width: 5px;
    border-radius: 6px;
    box-shadow: none;
    padding: 12px 14px;
    text-align: left;
}

.crt-form-message-success,
#crt-save-message,
#crt-booking-save-message,
#crt-dashboard-export-message {
    background: #e8dcc4;
    border-color: var(--crt-primary);
    color: #5c4d37;
}

.crt-form-message-error {
    background: #fbeaea;
    border-color: #b32d2e;
    color: #8a2424;
}

/* Dialogs and booking details */
.crt-dialog,
.crt-booking-details {
    border: 1px solid var(--crt-border);
    border-radius: 10px;
    box-shadow: 0 16px 42px rgba(0, 0, 0, 0.24);
}

.crt-dialog-header,
.crt-section-header {
    border-bottom: 1px solid var(--crt-border);
    margin-bottom: 16px;
    padding-bottom: 10px;
}

.crt-dialog-header h2,
.crt-section-header h4 {
    color: var(--crt-text);
    font-weight: 700;
}

.crt-dialog-footer {
    border-top: 1px solid var(--crt-border);
    margin-top: 18px;
    padding-top: 14px;
}

.crt-detail-section {
    background: var(--crt-surface-muted);
    border-color: var(--crt-border);
    border-radius: var(--crt-radius);
    padding: 16px;
}

/* Dashboard summary */
.crt-reports-wrap {
    color: var(--crt-text);
}

.crt-report-groups {
    column-gap: 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 20px;
}

.crt-report-group {
    background: var(--crt-surface);
    border: 1px solid var(--crt-border);
    border-radius: var(--crt-radius);
    box-shadow: var(--crt-shadow);
    margin: 0;
    padding: 18px;
}

.crt-report-column .crt-report-group:last-child {
    margin-bottom: 0;
}

.crt-report-group h4 {
    border-bottom: 1px solid var(--crt-border);
    color: var(--crt-text);
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 10px;
    padding: 0 0 9px;
}

.crt-report-row,
.crt-report-card {
    border-bottom: 1px solid #eceeeb;
    padding: 7px 0;
}

.crt-report-row:last-child,
.crt-report-card:last-child {
    border-bottom: 0;
}

.crt-report-label {
    color: var(--crt-muted);
}

.crt-report-value {
    color: var(--crt-text);
    font-weight: 700;
}

.crt-report-subheading {
    border-bottom-color: var(--crt-border);
    color: var(--crt-muted);
    font-weight: 700;
}

.crt-report-note {
    color: var(--crt-muted);
}

@media (max-width: 800px) {


    .crt-report-groups {
        grid-template-columns: 1fr;
    }

    #crt-attendee-table,
    #crt-bookings-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* -------------------------------------------------------------------------
 * Registrar account controls
 * ---------------------------------------------------------------------- */
.crt-dashboard-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.crt-dashboard-header h2 {
    margin: 0;
}

.crt-dashboard-account-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.625rem;
}

@media (max-width: 640px) {
    .crt-dashboard-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .crt-dashboard-account-actions {
        justify-content: flex-start;
    }
}


/* ==========================================================
   Browser View Actions
   ========================================================== */

.crt-attendee-toolbar,
.crt-booking-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.crt-attendee-actions,
.crt-booking-actions {
    margin-bottom: 1px;
}

@media (max-width: 640px) {

    .crt-attendee-actions,
    .crt-booking-actions {
        width: 100%;
    }
}


/* ==========================================================
Registrar Portal Visual Shell
========================================================== */

body.page-registrar-dashboard,
body.page-registration-entry,
body.page-attendees,
body.page-bookings {
    --crt-portal-soft: #e8dcc4;
    --crt-portal-border: #d6cec0;
    --crt-portal-muted: #646970;
    --crt-portal-main: #f8f5ef;
    --crt-portal-nav: #746a58;
}

/* Give the Registrar application pages the same clean boxed feel as Treasurer. */
body.page-registrar-dashboard .entry-content,
body.page-registration-entry .entry-content,
body.page-attendees .entry-content,
body.page-bookings .entry-content {
    background: #ffffff;
    box-sizing: border-box;
}

.crt-portal-header {
    align-items: center;
    background: var(--crt-portal-soft, #e8dcc4);
    border: 1px solid var(--crt-portal-border, #d6cec0);
    border-radius: 12px 12px 0 0;
    box-sizing: border-box;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin: 0;
    padding: 20px 24px;
    width: 100%;
}

.crt-portal-eyebrow {
    color: var(--crt-portal-muted, #646970);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.crt-portal-conference {
    color: #1d2327;
    font-size: clamp(1.15rem, 2vw, 1.5rem);
    font-weight: 700;
    line-height: 1.25;
    margin-top: 3px;
}

.crt-portal-account {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end;
}

.crt-portal-user {
    color: var(--crt-portal-muted, #646970);
    font-size: 0.9rem;
}

.crt-portal-profile,
.crt-portal-logout {
    color: #1d2327 !important;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none !important;
}

.crt-portal-profile:hover,
.crt-portal-profile:focus,
.crt-portal-logout:hover,
.crt-portal-logout:focus {
    color: var(--crt-primary-hover) !important;
}

/* Existing Gutenberg Registrar navigation becomes the shared black portal bar. */
.registrar-navigation {
    background: var(--crt-portal-nav, #746a58) !important;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0 14px !important;
    width: 100%;
}

.registrar-navigation .wp-block-navigation__container {
    gap: 2px !important;
}

.registrar-navigation .wp-block-navigation-item {
    background: transparent !important;
}

.registrar-navigation .wp-block-navigation-item__content {
    border-bottom: 3px solid transparent;
    color: #ffffff !important;
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 13px 14px 10px !important;
    text-decoration: none !important;
}

.registrar-navigation .wp-block-navigation-item__label {
    color: inherit !important;
}

.registrar-navigation .wp-block-navigation-item__content:hover,
.registrar-navigation .wp-block-navigation-item__content:focus,
.registrar-navigation .current-menu-item>.wp-block-navigation-item__content,
.registrar-navigation .wp-block-navigation-item__content[aria-current="page"] {
    background: rgba(255, 255, 255, 0.08) !important;
    border-bottom-color: var(--crt-primary) !important;
    color: #ffffff !important;
}

.registrar-navigation .wp-block-navigation-item__content:hover .wp-block-navigation-item__label,
.registrar-navigation .wp-block-navigation-item__content:focus .wp-block-navigation-item__label,
.registrar-navigation .current-menu-item>.wp-block-navigation-item__content .wp-block-navigation-item__label,
.registrar-navigation .wp-block-navigation-item__content[aria-current="page"] .wp-block-navigation-item__label {
    color: #ffffff !important;
}

/* Gray application surface beneath the portal header/navigation. */
.crt-portal-workarea {
    background: var(--crt-portal-main, #f8f5ef);
    border: 1px solid var(--crt-portal-border, #d6cec0);
    box-sizing: border-box;
    margin: 0;
    max-width: none;
    min-height: 420px;
    padding: 24px;
    width: 100%;
}

.crt-portal-section-heading {
    margin-bottom: 18px;
}

.crt-portal-section-heading h1,
.crt-portal-workarea>h1 {
    color: #1d2327;
    font-size: clamp(1.55rem, 3vw, 2.1rem);
    line-height: 1.2;
    margin: 0 0 8px;
}

.crt-portal-section-heading p {
    margin: 0;
}

/* Toolbars and primary working areas become white panels. */
.crt-attendee-toolbar,
.crt-booking-toolbar,
.crt-report-section {
    background: #ffffff;
    border: 1px solid var(--crt-portal-border, #d6cec0);
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.crt-attendee-toolbar,
.crt-booking-toolbar {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 16px;
    padding: 16px;
}

/* Tables adopt the restrained Treasurer panel treatment. */
#crt-attendee-table,
#crt-bookings-table {
    background: #ffffff;
    border: 1px solid var(--crt-portal-border, #d6cec0);
    border-collapse: collapse;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    overflow: hidden;
}

#crt-attendee-table thead th,
#crt-bookings-table thead th {
    background: #f6f7f7;
    border-bottom: 1px solid var(--crt-portal-border, #d6cec0);
    color: #1d2327;
    font-weight: 700;
}

#crt-attendee-table td,
#crt-attendee-table th,
#crt-bookings-table td,
#crt-bookings-table th {
    border-color: #e2e5df;
    padding: 11px 12px;
}

/* Dashboard/report area uses the same surface vocabulary. */
.crt-reports-wrap {
    max-width: none;
}

.crt-dashboard-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
}

.crt-dashboard-header h2 {
    margin: 0;
}

.crt-report-section {
    margin-bottom: 0;
    padding: 18px;
}

.crt-report-group,
.crt-report-card,
.crt-report-row {
    background-color: #ffffff;
}

/* Registration Entry remains Eventin-controlled, but visually sits on the portal surface. */
body.page-registration-entry .entry-content>.wp-block-shortcode:not(:has(.registrar-navigation)),
body.page-registration-entry .entry-content>.wp-block-group:not(.registrar-navigation) {
    box-sizing: border-box;
}

@media (max-width: 800px) {
    .crt-portal-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px;
    }

    .crt-portal-account {
        justify-content: flex-start;
    }

    .registrar-navigation {
        padding: 0 8px !important;
    }

    .registrar-navigation .wp-block-navigation-item__content {
        padding: 11px 10px 8px !important;
    }

    .crt-portal-workarea {
        padding: 16px;
    }
}


/* ==========================================================
Registrar Portal Visual Shell Refinements — Version 1.9.1
========================================================== */

/* Keep the banner/navigation directly attached to the shortcode workspace.
   Gutenberg can otherwise insert block spacing between the navigation block
   and the following operational shortcode. */
body.page-attendees .registrar-navigation,
body.page-bookings .registrar-navigation,
body.page-registration-entry .registrar-navigation {
    margin-bottom: 0 !important;
}

body.page-attendees .registrar-navigation+.wp-block-shortcode,
body.page-bookings .registrar-navigation+.wp-block-shortcode,
body.page-registration-entry .registrar-navigation+.wp-block-shortcode,
body.page-attendees .registrar-navigation~.wp-block-shortcode,
body.page-bookings .registrar-navigation~.wp-block-shortcode,
body.page-registration-entry .registrar-navigation~.wp-block-shortcode {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

/* Likewise remove any theme block gap immediately above the navigation so the
   portal banner and navigation read as one unit. */
.crt-portal-header+.registrar-navigation,
.crt-portal-header+.wp-block-navigation.registrar-navigation {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

/* Dashboard right column: JS marks the actual Gutenberg column containing
   the Tools/Exports button grids. This avoids relying on a theme-specific
   body class for the Registrar Dashboard page. */
.crt-dashboard-tools-column {
    background: var(--crt-portal-main, #f8f5ef);
    border: 1px solid var(--crt-portal-border, #d6cec0);
    box-sizing: border-box;
    padding: 24px;
}

.crt-dashboard-tools-column>h1,
.crt-dashboard-tools-column>h2,
.crt-dashboard-tools-column>h3,
.crt-dashboard-tools-column>h4 {
    color: #222;
    font-size: 32px !important;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 12px;
}

.crt-dashboard-tools-column .crt-dashboard-button-grid {
    background: #ffffff;
    border: 1px solid var(--crt-portal-border, #d6cec0);
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
    margin-bottom: 24px;
    padding: 18px;
}

.crt-dashboard-tools-column .crt-dashboard-button-grid:last-child {
    margin-bottom: 0;
}

@media (max-width: 782px) {
    .crt-dashboard-tools-column {
        padding: 16px;
    }
}

/* Generated Dashboard navigation: explicitly mirror Gutenberg horizontal layout. */
.crt-portal-generated-nav .wp-block-navigation__container {
    align-items: center !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.crt-portal-generated-nav .wp-block-navigation-item {
    display: block !important;
    margin: 0 !important;
}

/* Shared Convention portal banner treatment — v1.10.1 */
.crt-portal-header {
    background: #746a58 !important;
    border-color: #746a58 !important;
}

.crt-portal-eyebrow,
.crt-portal-user {
    color: rgba(255, 255, 255, 0.84) !important;
}

.crt-portal-conference,
.crt-portal-profile,
.crt-portal-logout {
    color: #ffffff !important;
}

.crt-portal-profile,
.crt-portal-logout {
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none !important;
    white-space: nowrap;
}

.crt-portal-profile:hover,
.crt-portal-profile:focus,
.crt-portal-logout:hover,
.crt-portal-logout:focus {
    color: #ffffff !important;
    text-decoration: underline !important;
}


/* Plugin-generated Registrar navigation for clean installations — v1.11.1 */
.crt-generated-nav {
    background: var(--crt-portal-nav, #746a58);
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    margin: 0;
    padding: 0 14px;
    width: 100%;
}

.crt-generated-nav__link {
    border-bottom: 3px solid transparent;
    color: #ffffff !important;
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 13px 14px 10px;
    text-decoration: none !important;
}

.crt-generated-nav__link:hover,
.crt-generated-nav__link:focus,
.crt-generated-nav__link.is-active {
    background: rgba(255, 255, 255, 0.08);
    border-bottom-color: var(--crt-primary);
    color: #ffffff !important;
}

@media (max-width: 800px) {
    .crt-generated-nav {
        padding: 0 8px;
    }

    .crt-generated-nav__link {
        padding: 11px 10px 8px;
    }
}


/* Registrar authentication and authorization messages. */
.crt-access-gate {
    background: var(--crt-portal-main, #f8f5ef);
    border: 1px solid var(--crt-portal-border, #d6cec0);
    box-sizing: border-box;
    min-height: 240px;
    padding: 24px;
    width: 100%;
}

.crt-access-gate>h2 {
    color: #1d2327;
    font-size: clamp(1.55rem, 3vw, 2.1rem);
    line-height: 1.2;
    margin: 0 0 18px;
}

.crt-access-message {
    background: #ffffff;
    border: 1px solid var(--crt-portal-border, #d6cec0);
    border-left-width: 4px;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    padding: 16px 18px;
}

.crt-access-message--warning {
    border-left-color: #b58105;
}

.crt-access-message--error {
    border-left-color: #b32d2e;
}

.crt-access-message p:first-child {
    margin-top: 0;
}

.crt-access-message p:last-child {
    margin-bottom: 0;
}

/* ==========================================================
   Portable Fellowship Systems Registrar Layout — v1.12.0 RC2
   ========================================================== */

/* Own the operational canvas instead of inheriting theme content widths. */
body.page-registrar-dashboard .site-main,
body.page-registration-entry .site-main,
body.page-attendees .site-main,
body.page-bookings .site-main,
body.page-registrar-dashboard main,
body.page-registration-entry main,
body.page-attendees main,
body.page-bookings main {
    box-sizing: border-box;
}

body.page-registrar-dashboard .entry-content,
body.page-registration-entry .entry-content,
body.page-attendees .entry-content,
body.page-bookings .entry-content {
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: min(1180px, calc(100% - 32px)) !important;
}

/* Plugin-owned Dashboard replaces site-specific Gutenberg columns. */
.crt-dashboard-layout {
    background: var(--crt-portal-main, #f8f5ef);
    border: 1px solid var(--crt-portal-border, #d6cec0);
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.72fr);
    gap: 0;
    width: 100%;
}

.crt-dashboard-summary-column,
.crt-dashboard-tools-column {
    box-sizing: border-box;
    min-width: 0;
    padding: 24px;
}

.crt-dashboard-summary-column {
    background: #ffffff;
    border-right: 1px solid var(--crt-portal-border, #d6cec0);
}

.crt-dashboard-tools-column {
    border: 0;
}

.crt-dashboard-tools-column>h3 {
    color: #1d2327;
    font-size: 2rem !important;
    font-weight: 700;
    line-height: 1.2;
    margin: -3px 0 16px;
}

.crt-dashboard-tools-column .crt-dashboard-button-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 18px;
}

.crt-dashboard-tools-column .crt-dashboard-button-grid .wp-block-button {
    margin: 0;
    width: 100%;
}

.crt-registration-entry {
    background: #ffffff;
    border: 1px solid var(--crt-portal-border, #d6cec0);
    box-sizing: border-box;
    padding: 20px 22px;
    width: 100%;
}

/* Keep modal layers above theme headers, overlays, and block containers. */
.crt-booking-overlay {
    z-index: 100000 !important;
}

.crt-booking-details {
    box-sizing: border-box;
    z-index: 100001 !important;
}

@media (max-width: 900px) {
    .crt-dashboard-layout {
        grid-template-columns: 1fr;
    }

    .crt-dashboard-summary-column {
        border-bottom: 1px solid var(--crt-portal-border, #d6cec0);
        border-right: 0;
    }
}

@media (max-width: 600px) {

    body.page-registrar-dashboard .entry-content,
    body.page-registration-entry .entry-content,
    body.page-attendees .entry-content,
    body.page-bookings .entry-content {
        width: min(100%, calc(100% - 16px)) !important;
    }

    .crt-dashboard-summary-column,
    .crt-dashboard-tools-column {
        padding: 16px;
    }

    .crt-dashboard-tools-column .crt-dashboard-button-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   Portable Fellowship Systems Registrar Layout — v1.12.0 RC3
   ========================================================== */

/*
 * Break the Registrar application out of narrow theme content columns while
 * still respecting the viewport. This shell is injected by CRT around the
 * banner, navigation, and operational content on every Registrar page.
 */
.crt-portal-shell {
    box-sizing: border-box;
    position: relative;
    width: min(1180px, calc(100vw - 40px));
    max-width: none;
    margin: 0 auto 32px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 16px;
    line-height: 1.5;
}

.crt-portal-shell *,
.crt-portal-shell *::before,
.crt-portal-shell *::after {
    box-sizing: border-box;
}

.crt-portal-header,
.crt-generated-nav,
.crt-portal-content {
    width: 100%;
    max-width: none;
}

.crt-portal-content {
    background: var(--crt-portal-main, #f8f5ef);
    padding: 20px;
}

.crt-portal-content> :first-child {
    margin-top: 0;
}

.crt-portal-content> :last-child {
    margin-bottom: 0;
}

/* Keep operational forms and registers aligned to the common shell. */
.crt-attendee-toolbar,
.crt-booking-toolbar,
#crt-attendee-table,
#crt-bookings-table,
.crt-dashboard-layout,
.crt-registration-entry {
    width: 100%;
    max-width: 100%;
}

/* Theme-independent attendee dialog. */
.crt-dialog-overlay {
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: auto;
    padding: 16px;
}

.crt-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    width: min(620px, calc(100vw - 32px));
    max-width: none;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    padding: 20px;
    transform: translate(-50%, -50%);
    font-size: 16px;
    line-height: 1.45;
}

.crt-dialog-footer {
    position: sticky;
    bottom: -20px;
    z-index: 2;
    margin: 18px -20px -20px;
    padding: 14px 20px;
    border-top: 1px solid var(--crt-border);
    background: #ffffff;
}

/* Theme-independent booking detail modal. */
.crt-booking-overlay {
    inset: 0;
    width: 100vw;
    height: 100vh;
}

.crt-booking-details {
    top: 50%;
    left: 50%;
    width: min(960px, calc(100vw - 32px));
    max-width: none;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    padding: 22px;
    transform: translate(-50%, -50%);
    font-size: 16px;
    line-height: 1.45;
}

.crt-booking-details .crt-detail-close {
    position: sticky;
    top: 0;
    z-index: 3;
    float: right;
    margin: 0 0 8px 12px;
    background: #ffffff;
}

.crt-form-message-success {
    border-left: 4px solid var(--crt-success-text);
    background: var(--crt-success-bg);
    color: var(--crt-success-text);
    font-weight: 600;
}

@media (max-width: 782px) {
    .crt-portal-shell {
        width: min(100%, calc(100vw - 16px));
    }

    .crt-portal-content {
        padding: 12px;
    }

    .crt-dialog,
    .crt-booking-details {
        width: calc(100vw - 16px);
        max-height: calc(100vh - 16px);
    }
}


/* RC4: keep the application shell visually centered even when a block theme
 * applies asymmetric content padding/margins to the post-content wrapper. */
.crt-portal-shell {
    margin-left: calc(50% - 50vw + 20px);
    margin-right: 0;
    left: 0;
    transform: none;
}

@media (min-width: 1220px) {
    .crt-portal-shell {
        margin-left: calc(50% - 590px);
    }
}

.crt-booking-details-cell {
    white-space: nowrap;
    text-align: center;
}

/* ==========================================================
   Fellowship Systems polish — v1.12.0 RC9
   ========================================================== */
:root {
    --crt-primary: #75654f;
    --crt-primary-hover: #655742;
    --crt-primary-dark: #655742;
    --crt-soft: #eee8dc;
    --crt-row-hover: #eee8dc;
    --crt-border: #d6cec0;
    --crt-success-bg: #e8dcc4;
    --crt-success-text: #5c4d37;
}

/* Fellowship Systems portal identity. */
.crt-portal-header {
    background: #746a58 !important;
    border-color: #746a58 !important;
}

/* Remove host-theme chrome from operational CRT pages. */
body.page-registrar-dashboard .site-header,
body.page-registration-entry .site-header,
body.page-attendees .site-header,
body.page-bookings .site-header,
body.page-registrar-help .site-header,
body.page-registrar-dashboard #masthead,
body.page-registration-entry #masthead,
body.page-attendees #masthead,
body.page-bookings #masthead,
body.page-registrar-help #masthead,
body.page-registrar-dashboard .site-footer,
body.page-registration-entry .site-footer,
body.page-attendees .site-footer,
body.page-bookings .site-footer,
body.page-registrar-help .site-footer,
body.page-registrar-dashboard #colophon,
body.page-registration-entry #colophon,
body.page-attendees #colophon,
body.page-bookings #colophon,
body.page-registrar-help #colophon,
body.page-registrar-dashboard .wp-block-template-part:has(header),
body.page-registration-entry .wp-block-template-part:has(header),
body.page-attendees .wp-block-template-part:has(header),
body.page-bookings .wp-block-template-part:has(header),
body.page-registrar-help .wp-block-template-part:has(header),
body.page-registrar-dashboard .wp-block-template-part:has(footer),
body.page-registration-entry .wp-block-template-part:has(footer),
body.page-attendees .wp-block-template-part:has(footer),
body.page-bookings .wp-block-template-part:has(footer),
body.page-registrar-help .wp-block-template-part:has(footer) {
    display: none !important;
}

body.page-registrar-dashboard .entry-header,
body.page-registration-entry .entry-header,
body.page-attendees .entry-header,
body.page-bookings .entry-header,
body.page-registrar-help .entry-header,
body.page-registrar-dashboard .entry-title,
body.page-registration-entry .entry-title,
body.page-attendees .entry-title,
body.page-bookings .entry-title,
body.page-registrar-help .entry-title,
body.page-registrar-dashboard .wp-block-post-title,
body.page-registration-entry .wp-block-post-title,
body.page-attendees .wp-block-post-title,
body.page-bookings .wp-block-post-title,
body.page-registrar-help .wp-block-post-title {
    display: none !important;
}

body.page-registrar-dashboard #wpadminbar,
body.page-registration-entry #wpadminbar,
body.page-attendees #wpadminbar,
body.page-bookings #wpadminbar,
body.page-registrar-help #wpadminbar {
    display: none !important;
}

html:has(body.page-registrar-dashboard),
html:has(body.page-registration-entry),
html:has(body.page-attendees),
html:has(body.page-bookings) {
    margin-top: 0 !important;
}

/* Remove all remaining legacy green interaction colors. */
.registrar-navigation .wp-block-navigation-item__content:hover,
.registrar-navigation .wp-block-navigation-item__content:focus,
.registrar-navigation .wp-block-navigation-item__content:hover .wp-block-navigation-item__label,
.registrar-navigation .wp-block-navigation-item__content:focus .wp-block-navigation-item__label,
.registrar-navigation .current-menu-item>.wp-block-navigation-item__content,
.registrar-navigation .current-menu-item>.wp-block-navigation-item__content .wp-block-navigation-item__label,
.registrar-navigation .wp-block-navigation-item__content[aria-current="page"],
.registrar-navigation .wp-block-navigation-item__content[aria-current="page"] .wp-block-navigation-item__label {
    color: var(--crt-primary) !important;
}

.crt-button,
.crt-button:visited,
.crt-dashboard-button-grid .wp-block-button__link,
.crt-dashboard-button-grid .wp-block-button__link:visited {
    background: var(--crt-primary) !important;
    border-color: var(--crt-primary) !important;
    color: #ffffff !important;
}

.crt-button:hover,
.crt-button:focus,
.crt-dashboard-button-grid .wp-block-button__link:hover,
.crt-dashboard-button-grid .wp-block-button__link:focus {
    background: var(--crt-primary-hover) !important;
    border-color: var(--crt-primary-hover) !important;
    color: #ffffff !important;
}

.crt-button-secondary,
.crt-button-secondary:visited,
.crt-edit-attendee,
#crt-dialog-save,
#crt-dialog-cancel,
#crt-dialog-close,
.crt-export-toolbar-button {
    background: #ffffff !important;
    border-color: var(--crt-primary) !important;
    color: var(--crt-primary) !important;
}

.crt-button-secondary:hover,
.crt-button-secondary:focus,
.crt-edit-attendee:hover,
.crt-edit-attendee:focus,
#crt-dialog-save:hover,
#crt-dialog-save:focus,
#crt-dialog-cancel:hover,
#crt-dialog-cancel:focus,
#crt-dialog-close:hover,
#crt-dialog-close:focus,
.crt-export-toolbar-button:hover,
.crt-export-toolbar-button:focus {
    background: var(--crt-primary) !important;
    border-color: var(--crt-primary) !important;
    color: #ffffff !important;
}

#crt-attendee-table tbody tr:hover td,
.crt-booking-row:hover td {
    background: var(--crt-row-hover) !important;
}

/* Keep every dashboard export control visually identical, including long labels. */
.crt-dashboard-button-grid .wp-block-button,
.crt-dashboard-button-grid .wp-block-button__link,
.crt-dashboard-tools-column .crt-dashboard-button-grid .wp-block-button,
.crt-dashboard-tools-column .crt-dashboard-button-grid .wp-block-button__link {
    width: 100% !important;
}

.crt-dashboard-button-grid .wp-block-button__link,
.crt-dashboard-tools-column .crt-dashboard-button-grid .wp-block-button__link {
    align-items: center !important;
    display: flex !important;
    justify-content: center !important;
    min-height: 56px !important;
    height: 56px !important;
    line-height: 1.25 !important;
    padding: 8px 12px !important;
    text-align: center !important;
}

/* Neutral Fellowship Systems success treatment instead of legacy green. */
.crt-form-message-success,
#crt-save-message,
#crt-booking-save-message,
#crt-dashboard-export-message {
    background: var(--crt-success-bg) !important;
    border-color: #c8b58e !important;
    color: var(--crt-success-text) !important;
}

/* Restored proven Booking Details modal treatment. */
.crt-booking-details {
    background: #ffffff !important;
    border-color: var(--crt-border) !important;
    width: min(1140px, calc(100vw - 24px)) !important;
}

.crt-booking-details>h3 {
    color: #1d2327;
    font-size: 1.75rem !important;
    line-height: 1.2;
    margin: 4px 0 24px;
}

.crt-booking-details .crt-detail-section {
    background: #fbfaf7;
    border: 1px solid var(--crt-border);
    border-radius: 8px;
    margin: 0 0 24px;
    padding: 18px 20px;
}

.crt-booking-details .crt-detail-section h4 {
    color: #1d2327;
    font-size: 1.35rem !important;
    margin: 0 0 14px;
}

.crt-booking-details .crt-section-header {
    align-items: center;
    border-bottom: 1px solid var(--crt-border);
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 10px;
}

.crt-booking-details .crt-section-header h4 {
    margin: 0;
}

.crt-booking-details .crt-detail-close {
    background: #ffffff !important;
    border-color: var(--crt-primary) !important;
    color: var(--crt-primary) !important;
}

.crt-booking-details .crt-detail-close:hover,
.crt-booking-details .crt-detail-close:focus {
    background: var(--crt-primary) !important;
    color: #ffffff !important;
}


/* ==========================================================================
   RC10 final acceptance polish
   ========================================================================== */

/* Remove host-theme chrome for the dedicated CRT operational roles only. */
body.crt-portal-page>header,
body.crt-portal-page .wp-site-blocks>header,
body.crt-portal-page header.wp-block-template-part,
body.crt-portal-page .site-header,
body.crt-portal-page #masthead,
body.crt-portal-page>footer:not(.crt-portal-footer),
body.crt-portal-page .wp-site-blocks>footer,
body.crt-portal-page footer.wp-block-template-part,
body.crt-portal-page .site-footer,
body.crt-portal-page #colophon,
body.crt-portal-page .entry-header,
body.crt-portal-page .entry-title,
body.crt-portal-page .page-title {
    display: none !important;
}

/* Stable, theme-independent CRT copyright footer. */
.crt-portal-footer {
    width: min(1420px, calc(100% - 32px));
    margin: 20px auto 28px;
    padding: 14px 18px;
    border-top: 1px solid #d6cec0;
    color: #746a58;
    font-size: 13px;
    line-height: 1.4;
    text-align: center;
}

/* Dashboard columns should read as matching peer panels. */
.crt-dashboard-layout {
    gap: 24px !important;
    align-items: stretch !important;
}

.crt-dashboard-summary-column,
.crt-dashboard-tools-column {
    background: #fbfaf7 !important;
    border: 1px solid #d6cec0 !important;
    border-radius: 8px !important;
    padding: 28px !important;
    box-shadow: none !important;
}

.crt-dashboard-summary-column>.crt-reports,
.crt-dashboard-summary-column>*:first-child,
.crt-dashboard-tools-column>*:first-child {
    margin-top: 0 !important;
}

/* Browser-view/secondary controls use Fellowship Systems colors. */
.crt-button-secondary,
.crt-button-secondary:visited,
.crt-booking-details .crt-button-secondary,
.crt-booking-details .crt-button-secondary:visited {
    background: #ffffff !important;
    border-color: #75654f !important;
    color: #75654f !important;
}

.crt-button-secondary:hover,
.crt-button-secondary:focus,
.crt-booking-details .crt-button-secondary:hover,
.crt-booking-details .crt-button-secondary:focus {
    background: #75654f !important;
    border-color: #75654f !important;
    color: #ffffff !important;
}

/* Make booking status visibly editable and preserve the three semantic colors. */
.crt-booking-status {
    min-width: 118px !important;
    padding: 6px 30px 6px 12px !important;
    border: 1px solid currentColor !important;
    border-radius: 999px !important;
    cursor: pointer !important;
    font-weight: 700 !important;
    appearance: auto !important;
}

.crt-booking-status.crt-status-completed {
    background: #e7f4e8 !important;
    color: #2e7d32 !important;
}

.crt-booking-status.crt-status-pending {
    background: #fff5d6 !important;
    color: #8a5d00 !important;
}

.crt-booking-status.crt-status-failed {
    background: #fbe7e7 !important;
    color: #b32d2e !important;
}

/* Theme-independent booking details modal. */
.crt-booking-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    background: rgba(29, 35, 39, 0.48) !important;
}

.crt-booking-details {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    z-index: 2147483001 !important;
    width: min(1140px, calc(100vw - 28px)) !important;
    max-height: calc(100vh - 28px) !important;
    overflow: auto !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    padding: 28px 30px 34px !important;
    background: #ffffff !important;
    border: 1px solid #d6cec0 !important;
    border-radius: 12px !important;
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.24) !important;
}

.crt-booking-details>h3 {
    margin: 0 120px 28px 0 !important;
    color: #1d2327 !important;
    font-size: 30px !important;
    line-height: 1.2 !important;
}

.crt-booking-details .crt-detail-close {
    position: absolute !important;
    top: 20px !important;
    right: 22px !important;
    min-width: 78px !important;
}

.crt-booking-details .crt-detail-section {
    margin: 0 0 24px !important;
    padding: 20px !important;
    background: #fbfaf7 !important;
    border: 1px solid #d6cec0 !important;
    border-radius: 8px !important;
}

.crt-booking-details .crt-detail-section h4 {
    margin: 0 0 18px !important;
    color: #1d2327 !important;
    font-size: 24px !important;
}

.crt-booking-details .crt-detail-columns {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.65fr) !important;
    gap: 24px !important;
    align-items: start !important;
}

.crt-booking-details .crt-detail-columns p,
.crt-booking-details .crt-contact-display p {
    margin: 0 0 16px !important;
    line-height: 1.45 !important;
}

.crt-booking-details .crt-section-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    padding-bottom: 14px !important;
    margin-bottom: 18px !important;
    border-bottom: 1px solid #d6cec0 !important;
}

.crt-booking-details .crt-section-header h4 {
    margin: 0 !important;
}

@media (max-width: 760px) {
    .crt-booking-details {
        width: calc(100vw - 18px) !important;
        max-height: calc(100vh - 18px) !important;
        padding: 22px 18px 28px !important;
    }

    .crt-booking-details .crt-detail-columns {
        grid-template-columns: 1fr !important;
    }

    .crt-dashboard-summary-column,
    .crt-dashboard-tools-column {
        padding: 20px !important;
    }
}


/* ==========================================================================
   Final 1.12.0 theme-shell independence
   ========================================================================== */

/*
 * CRT Registrar and CRT Chair should see a self-contained application shell,
 * regardless of the active WordPress theme. Administrators are intentionally
 * exempt because the crt-portal-operator class is applied only to dedicated
 * CRT operational roles.
 */
body.crt-portal-page header#masthead,
body.crt-portal-page header.site-header,
body.crt-portal-page header#site-header,
body.crt-portal-page header#main-header,
body.crt-portal-page header.wp-block-template-part,
body.crt-portal-page .wp-block-template-part.site-header,
body.crt-portal-page .site-header-wrap,
body.crt-portal-page .site-header-row-container-inner,
body.crt-portal-page .ast-primary-header-bar,
body.crt-portal-page .ast-mobile-header-wrap,
body.crt-portal-page .elementor-location-header,
body.crt-portal-page #main-header,
body.crt-portal-page footer#colophon,
body.crt-portal-page footer.site-footer,
body.crt-portal-page footer#site-footer,
body.crt-portal-page footer#main-footer,
body.crt-portal-page footer.wp-block-template-part,
body.crt-portal-page .wp-block-template-part.site-footer,
body.crt-portal-page .site-footer-wrap,
body.crt-portal-page .site-footer-row-container-inner,
body.crt-portal-page .ast-small-footer-wrap,
body.crt-portal-page .elementor-location-footer,
body.crt-portal-page #main-footer,
body.crt-portal-page .entry-header,
body.crt-portal-page .page-header,
body.crt-portal-page .page-title,
body.crt-portal-page .entry-title,
body.crt-portal-page .wp-block-post-title,
body.crt-portal-page .kadence-page-title,
body.crt-portal-page .ast-archive-description,
body.crt-portal-page .et_post_meta_wrapper>h1,
body.crt-portal-page #wpadminbar {
    display: none !important;
}

/* Block themes can place template parts inside generic wrappers rather than
 * giving the header/footer element the expected class. Scope these structural
 * selectors to the CRT operator body so unrelated pages remain untouched. */
body.crt-portal-page .wp-site-blocks>header,
body.crt-portal-page .wp-site-blocks>footer,
body.crt-portal-page .wp-site-blocks>.wp-block-template-part:first-child,
body.crt-portal-page .wp-site-blocks>.wp-block-template-part:last-child {
    display: none !important;
}

html:has(body.crt-portal-page) {
    margin-top: 0 !important;
}


/* ==========================================================
   Registrar desk + merchandise compact polish
   ========================================================== */

/* CRT now owns the operational nav; suppress old Gutenberg nav blocks so
   pages cannot show two navigation bars. */
.crt-portal-shell:has(.crt-generated-nav) .registrar-navigation {
    display: none !important;
}

/* In-Person Registration: public-ticket-selector-inspired desk layout. */
.crt-registration-entry {
    padding: 20px;
}

.crt-registration-entry>h1 {
    margin-bottom: 16px;
}

.crt-in-person-registration-form {
    font-size: 14px;
}

.crt-registration-desk-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
    align-items: start;
}

.crt-registration-desk-main {
    display: grid;
    gap: 16px;
}

.crt-registration-desk-side {
    display: grid;
    gap: 16px;
    position: sticky;
    top: 18px;
}

.crt-desk-card {
    background: #ffffff;
    border: 1px solid var(--crt-border);
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    padding: 16px 18px;
}

.crt-desk-card>h2 {
    margin: 0 0 14px;
    color: #1d2327;
    font-size: 1.08rem;
    line-height: 1.25;
}

.crt-desk-field+.crt-desk-field {
    margin-top: 14px;
}

.crt-desk-label,
.crt-desk-input-field>span,
.crt-addon-quantity>span {
    display: block;
    margin-bottom: 5px;
    color: #28221c;
    font-size: .86rem;
    font-weight: 700;
}

.crt-choice-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
}

.crt-choice-row label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 14px;
}

.crt-choice-row input,
.crt-payment-options input,
.crt-ticket-option input {
    accent-color: var(--crt-primary);
}

.crt-ticket-card-list,
.crt-addon-card-list {
    display: grid;
    gap: 8px;
}

.crt-selector-card,
.crt-addon-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 50px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--crt-border);
    border-radius: 8px;
    background: #ffffff;
}

.crt-selector-card {
    cursor: pointer;
}

.crt-selector-card:hover,
.crt-selector-card:focus-within {
    border-color: var(--crt-primary);
    background: var(--crt-soft);
}

.crt-selector-card-main {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.crt-ticket-option-name {
    font-weight: 700;
}

.crt-ticket-option-price {
    color: #1d2327;
    font-size: 1rem;
    font-weight: 700;
    white-space: nowrap;
}

.crt-addon-card-copy {
    display: grid;
    gap: 2px;
}

.crt-addon-card-copy span {
    color: #5f5a52;
    font-size: .86rem;
}

.crt-addon-quantity {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.crt-addon-quantity>span {
    margin: 0;
}

.crt-addon-quantity input {
    width: 68px;
    min-height: 34px;
    padding: 5px 7px;
    text-align: center;
}

.crt-desk-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px 14px;
}

.crt-desk-field-wide {
    grid-column: 1 / -1;
}

.crt-desk-input-field {
    display: block;
    margin: 0;
}

.crt-desk-input-field .crt-form-input {
    width: 100%;
    max-width: none;
    min-height: 36px;
    padding: 6px 9px;
    border: 1px solid var(--crt-border);
    border-radius: 5px;
    background: #ffffff;
    color: var(--crt-input-text) !important;
    -webkit-text-fill-color: var(--crt-input-text);
    font-size: 14px;
}

.crt-desk-input-field .crt-form-input:focus {
    border-color: var(--crt-primary);
    outline: 1px solid var(--crt-primary);
    box-shadow: none;
}

.crt-payment-card-list {
    display: grid;
    gap: 8px;
}

.crt-payment-card-list label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 9px 10px;
    border: 1px solid var(--crt-border);
    border-radius: 7px;
    cursor: pointer;
}

.crt-payment-card-list label:hover,
.crt-payment-card-list label:focus-within {
    border-color: var(--crt-primary);
    background: var(--crt-soft);
}

.crt-payment-card-list input:disabled+span {
    opacity: .55;
}

.crt-desk-summary-row {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 7px 0;
    border-bottom: 1px solid #ece7df;
}

.crt-desk-summary-row[hidden] {
    display: none !important;
}

.crt-desk-summary-total {
    margin-top: 4px;
    padding-top: 11px;
    border-bottom: 0;
    font-size: 1.02rem;
}

.crt-desk-submit {
    width: 100%;
    min-height: 42px;
    margin-top: 12px;
    border: 1px solid var(--crt-primary) !important;
    border-radius: 5px !important;
    background: var(--crt-primary) !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.crt-desk-submit:hover,
.crt-desk-submit:focus {
    background: var(--crt-primary-hover) !important;
    border-color: var(--crt-primary-hover) !important;
    color: #ffffff !important;
}

.crt-desk-cancel {
    width: 100%;
    min-height: 42px;
    margin-top: 8px;
    border: 1px solid var(--crt-border) !important;
    border-radius: 5px !important;
    background: #ffffff !important;
    color: var(--crt-primary) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.crt-desk-cancel:hover,
.crt-desk-cancel:focus {
    border-color: var(--crt-primary) !important;
    background: var(--crt-soft) !important;
    color: var(--crt-primary-hover) !important;
}

@media (max-width: 900px) {
    .crt-registration-desk-grid {
        grid-template-columns: 1fr;
    }

    .crt-registration-desk-side {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .crt-registration-entry {
        padding: 14px;
    }

    .crt-registration-desk-side,
    .crt-desk-fields-grid {
        grid-template-columns: 1fr;
    }

    .crt-desk-field-wide {
        grid-column: auto;
    }

    .crt-selector-card,
    .crt-addon-card {
        align-items: flex-start;
    }
}

/* Merchandise Sales is a CRT application page, not an Astra page. */
/* Native controls must follow Fellowship Systems, not the active theme. */
/* Align all sale-entry controls in the same column. */
/* Literature/manual-dollar field matches the quantity input width. */
/* Horizontal quantity stepper: large, easy targets, no native tiny spinner. */
/* Astra's scroll-to-top control may still exist outside the CRT shell.
   Keep it Fellowship Systems brown on every CRT operational page. */
body.crt-portal-page #ast-scroll-top,
body.crt-portal-page .ast-scroll-to-top-right,
body.crt-portal-page .ast-scroll-top-icon {
    background-color: #75654f !important;
    border-color: #75654f !important;
    color: #ffffff !important;
}

body.crt-portal-page #ast-scroll-top:hover,
body.crt-portal-page #ast-scroll-top:focus,
body.crt-portal-page .ast-scroll-to-top-right:hover,
body.crt-portal-page .ast-scroll-to-top-right:focus {
    background-color: #655742 !important;
    border-color: #655742 !important;
    color: #ffffff !important;
}

@media (max-width: 640px) {}

/* Astra can wrap the site footer/header one level deeper. */

/* ==========================================================================
   Merchandise Sales — authoritative CRT styling
   Edit the variables below for quick visual adjustments.
   ========================================================================== */

body.crt-merchandise-sales-page {
    --crt-merch-text-size: 16px;
    --crt-merch-heading-size: 1.35rem;
    --crt-merch-payment-gap: 30px;
    --crt-merch-entry-width: 64px;

    --crt-primary: #75654f;
    --crt-primary-hover: #655742;
    --crt-soft: #eee8dc;
    --crt-border: #d6cec0;
}

/* Theme-independent page chrome. */
body.crt-merchandise-sales-page>header,
body.crt-merchandise-sales-page .wp-site-blocks>header,
body.crt-merchandise-sales-page header.wp-block-template-part,
body.crt-merchandise-sales-page .site-header,
body.crt-merchandise-sales-page #masthead,
body.crt-merchandise-sales-page .ast-primary-header-bar,
body.crt-merchandise-sales-page .site-primary-header-wrap,
body.crt-merchandise-sales-page>footer:not(.crt-portal-footer),
body.crt-merchandise-sales-page .wp-site-blocks>footer,
body.crt-merchandise-sales-page footer.wp-block-template-part,
body.crt-merchandise-sales-page .site-footer,
body.crt-merchandise-sales-page #colophon,
body.crt-merchandise-sales-page .site-above-footer-wrap,
body.crt-merchandise-sales-page .site-below-footer-wrap,
body.crt-merchandise-sales-page .entry-header,
body.crt-merchandise-sales-page .entry-title,
body.crt-merchandise-sales-page .page-title,
body.crt-merchandise-sales-page .wp-block-post-title {
    display: none !important;
}

/* Overall form size. */
.crt-portal-content .crt-merchandise-sales {
    width: min(100%, 760px) !important;
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: var(--crt-merch-text-size) !important;
    line-height: 1.4;
}

.crt-portal-content .crt-merchandise-sales>h2 {
    margin: 0 0 10px !important;
    font-size: var(--crt-merch-heading-size) !important;
}

.crt-portal-content .crt-merchandise-sales form {
    margin: 0;
    padding: 12px 14px !important;
    background: #ffffff;
    border: 1px solid var(--crt-border);
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    font-size: inherit !important;
}

.crt-portal-content .crt-merchandise-sales .crt-form-table {
    width: 100%;
    margin: 0;
    font-size: inherit !important;
}

.crt-portal-content .crt-merchandise-sales .crt-form-table th,
.crt-portal-content .crt-merchandise-sales .crt-form-table td {
    padding: 5px 8px !important;
    vertical-align: middle;
    font-size: inherit !important;
}

.crt-portal-content .crt-merchandise-sales .crt-form-section-heading th {
    padding-top: 10px !important;
    padding-bottom: 4px !important;
}

.crt-portal-content .crt-merchandise-sales .crt-form-section-heading:first-child th {
    padding-top: 0 !important;
}

.crt-portal-content .crt-merchandise-sales .crt-form-section-heading h3 {
    margin: 0;
    font-size: .95rem !important;
}

/* Form controls. */
.crt-merchandise-sales input[type="radio"] {
    accent-color: var(--crt-primary) !important;
}

.crt-portal-content .crt-merchandise-sales input[type="number"],
.crt-portal-content .crt-merchandise-sales input[type="text"] {
    box-sizing: border-box;
    min-height: 30px !important;
    height: 30px !important;
    padding: 3px 6px !important;
    font-size: inherit !important;
}

.crt-merchandise-sales .crt-merchandise-entry-cell {
    width: 176px;
}

.crt-merchandise-sales .crt-merchandise-entry-label {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    justify-items: start;
    margin: 0;
}

.crt-merchandise-sales .crt-money-input {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.crt-merchandise-sales .crt-merchandise-variable-amount,
.crt-merchandise-sales .crt-merchandise-fixed-qty {
    width: var(--crt-merch-entry-width) !important;
    min-width: var(--crt-merch-entry-width) !important;
    max-width: var(--crt-merch-entry-width) !important;
}

.crt-merchandise-sales .crt-merchandise-variable-amount {
    text-align: right;
}

.crt-merchandise-sales .crt-merchandise-fixed-qty {
    text-align: center !important;
    appearance: textfield;
    -moz-appearance: textfield;
}

.crt-merchandise-sales .crt-merchandise-fixed-qty::-webkit-inner-spin-button,
.crt-merchandise-sales .crt-merchandise-fixed-qty::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

/* Large horizontal quantity controls. */
.crt-merchandise-sales .crt-quantity-stepper {
    display: inline-grid;
    grid-template-columns: 32px var(--crt-merch-entry-width) 32px;
    align-items: stretch;
    gap: 4px;
}

.crt-merchandise-sales .crt-quantity-stepper-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    min-width: 32px !important;
    height: 30px !important;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--crt-border) !important;
    border-radius: 5px !important;
    background: #ffffff !important;
    color: var(--crt-primary) !important;
    box-shadow: none !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

.crt-merchandise-sales .crt-quantity-stepper-button:hover,
.crt-merchandise-sales .crt-quantity-stepper-button:focus {
    border-color: var(--crt-primary) !important;
    background: var(--crt-soft) !important;
    color: var(--crt-primary-hover) !important;
}

/* Payment choices — one explicit rule controls their spacing. */
.crt-merchandise-sales .crt-merchandise-payment-options {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px var(--crt-merch-payment-gap) !important;
}

.crt-merchandise-sales .crt-merchandise-payment-options label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 !important;
}

/* Complete Sale button. */
.crt-portal-content .crt-merchandise-sales #crt-complete-merchandise-sale,
.crt-portal-content .crt-merchandise-sales #crt-complete-merchandise-sale:visited {
    min-height: 34px !important;
    padding: 5px 14px !important;
    background: var(--crt-primary) !important;
    border-color: var(--crt-primary) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    font-size: inherit !important;
}

.crt-portal-content .crt-merchandise-sales #crt-complete-merchandise-sale:hover,
.crt-portal-content .crt-merchandise-sales #crt-complete-merchandise-sale:focus {
    background: var(--crt-primary-hover) !important;
    border-color: var(--crt-primary-hover) !important;
    color: #ffffff !important;
}

.crt-merchandise-sales .crt-form-actions {
    margin: 14px 0 0;
}

@media (max-width: 640px) {
    .crt-merchandise-sales .crt-merchandise-entry-cell {
        width: auto;
    }

    .crt-merchandise-sales .crt-merchandise-payment-options {
        gap: 8px 18px !important;
    }
}

/* ==========================================================================
   Registration Entry — multi-attendee quantities and reusable steppers
   ========================================================================== */

.crt-registration-entry [data-crt-registration-panel][hidden] {
    display: none !important;
}

.crt-registration-entry .crt-ticket-card-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.crt-registration-entry .crt-ticket-card-copy .crt-ticket-option-price {
    color: #5f5a52;
    font-size: .86rem;
    font-weight: 600;
}

.crt-registration-entry .crt-registration-quantity,
.crt-registration-entry .crt-addon-quantity {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.crt-registration-entry .crt-registration-quantity>span,
.crt-registration-entry .crt-addon-quantity>span {
    margin: 0;
    color: #28221c;
    font-size: .86rem;
    font-weight: 700;
}

.crt-registration-entry .crt-registration-quantity-stepper {
    display: inline-grid;
    grid-template-columns: 32px 54px 32px;
    align-items: stretch;
    gap: 4px;
}

.crt-registration-entry .crt-registration-ticket-qty,
.crt-registration-entry .crt-registration-complimentary-qty,
.crt-registration-entry .crt-registration-merchandise-qty {
    box-sizing: border-box;
    width: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 3px 5px !important;
    border: 1px solid var(--crt-border) !important;
    border-radius: 5px !important;
    background: #ffffff !important;
    color: #28221c !important;
    text-align: center !important;
    appearance: textfield;
    -moz-appearance: textfield;
}

.crt-registration-entry .crt-registration-ticket-qty::-webkit-inner-spin-button,
.crt-registration-entry .crt-registration-ticket-qty::-webkit-outer-spin-button,
.crt-registration-entry .crt-registration-complimentary-qty::-webkit-inner-spin-button,
.crt-registration-entry .crt-registration-complimentary-qty::-webkit-outer-spin-button,
.crt-registration-entry .crt-registration-merchandise-qty::-webkit-inner-spin-button,
.crt-registration-entry .crt-registration-merchandise-qty::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.crt-registration-entry .crt-registration-quantity-stepper-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--crt-border) !important;
    border-radius: 5px !important;
    background: #ffffff !important;
    color: var(--crt-primary) !important;
    box-shadow: none !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

.crt-registration-entry .crt-registration-quantity-stepper-button:hover,
.crt-registration-entry .crt-registration-quantity-stepper-button:focus {
    border-color: var(--crt-primary) !important;
    background: var(--crt-soft) !important;
    color: var(--crt-primary-hover) !important;
}

.crt-registration-entry .crt-attendee-help {
    margin: -4px 0 12px;
    color: #5f5a52;
    font-size: .88rem;
}

.crt-registration-entry #crt-registration-attendees {
    display: grid;
    gap: 12px;
}

.crt-registration-entry .crt-attendee-empty {
    margin: 0;
    padding: 11px 12px;
    border: 1px dashed var(--crt-border);
    border-radius: 7px;
    color: #5f5a52;
    background: #faf8f4;
}

.crt-registration-entry .crt-attendee-card {
    padding: 13px 14px 14px;
    border: 1px solid var(--crt-border);
    border-radius: 8px;
    background: #faf8f4;
}

.crt-registration-entry .crt-attendee-card-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e6dfd3;
}

.crt-registration-entry .crt-attendee-card-heading strong {
    color: #28221c;
    font-size: .95rem;
}

.crt-registration-entry .crt-attendee-card-heading span {
    color: #5f5a52;
    font-size: .84rem;
    font-weight: 600;
}

@media (max-width: 620px) {

    .crt-registration-entry .crt-ticket-option,
    .crt-registration-entry .crt-addon-card {
        align-items: center;
    }

    .crt-registration-entry .crt-attendee-card-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }
}

/* ==========================================================================
   CRT operational page consistency — September 2, 2026
   ========================================================================== */

/* One consistent top gap for every CRT operational page. */
body.crt-portal-page .crt-portal-shell {
    margin-top: 35px !important;
}

/* CRT owns these operational screens for both administrators and operators.
   Suppress the host WordPress page title consistently for everyone. */
body.crt-portal-page .entry-header,
body.crt-portal-page .page-header,
body.crt-portal-page .entry-title,
body.crt-portal-page .page-title,
body.crt-portal-page .wp-block-post-title,
body.crt-portal-page .kadence-page-title {
    display: none !important;
}

/* Remove WordPress admin-bar offset from the document itself. */
html:has(body.crt-portal-page) {
    margin-top: 0 !important;
}

/* One authoritative size for the operational page headings. */
body.crt-portal-page .crt-portal-content .crt-operational-heading,
body.crt-portal-page .crt-dashboard-tools-column>.crt-operational-heading {
    margin: 0 0 16px !important;
    color: #1d2327 !important;
    font-size: 2rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

/* Merchandise previously had its own smaller heading rule. */
body.crt-portal-page .crt-merchandise-sales>.crt-operational-heading {
    font-size: 2rem !important;
}

/* Exports has an older later h3 rule at 1.35rem; override it explicitly. */
body.crt-portal-page .crt-dashboard-tools-column>h3.crt-operational-heading {
    font-size: 2rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

/* Keep account controls vertically centered in the CRT header. */
.crt-portal-account {
    align-items: center !important;
    align-self: center !important;
    margin: 0 !important;
}
/* ==========================================================
Help & Documentation — v1.12.6
========================================================== */
.crt-help-intro{margin-top:-4px;color:var(--crt-muted);}
.crt-help-eyebrow{display:block;margin-bottom:4px;color:var(--crt-muted);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.crt-doc-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:9px 10px;background:var(--crt-soft);border:1px solid var(--crt-border);border-radius:8px;}
.crt-doc-nav a{padding:7px 10px;border-radius:5px;color:var(--crt-primary-dark)!important;font-weight:600;text-decoration:none!important;}
.crt-doc-nav a:hover,.crt-doc-nav a:focus{background:rgba(117,101,79,.10);}
.crt-doc-nav a[aria-current="page"]{background:var(--crt-primary);color:#fff!important;font-weight:700;}
.crt-manual{max-width:860px;line-height:1.62;color:var(--crt-text);}
.crt-manual h1,.crt-manual h2,.crt-manual h3,.crt-manual h4{font-family:Georgia,"Times New Roman",serif;scroll-margin-top:30px;color:var(--crt-text);}
.crt-manual h1{font-size:1.7rem}.crt-manual h2{font-size:1.4rem}.crt-manual h3{font-size:1.18rem}.crt-manual h4{font-size:1.02rem}
.crt-manual code{font-size:.92em;padding:.08em .3em;background:var(--crt-soft);border-radius:3px;}
