/**
    Careto Air Show brand palette.
    Extends backpack-color-palette.css with brand colors.
    Primary: #D91815 (red), Sidebar: #0B2848 (navy)
*/

@charset "UTF-8";
:root, [data-bs-theme=light], [data-menu-theme=light] {
    --tblr-gray: #4c496c;
    --tblr-gray-dark: #211d3b;
    --tblr-gray-100: #f1f5f9;
    --tblr-gray-200: #e2e8f0;
    --tblr-gray-300: #c8d3e1;
    --tblr-gray-400: #c9c1d6;
    --tblr-gray-500: #736c91;
    --tblr-gray-600: #4c496c;
    --tblr-gray-700: #333152;
    --tblr-gray-800: #211d3b;
    --tblr-gray-900: #1a0f2a;
    --tblr-primary: #D91815;
    --tblr-secondary: #0B2848;
    --tblr-success: #42ba96;
    --tblr-info: #467fd0;
    --tblr-warning: #ffc107;
    --tblr-danger: #df4759;
    --tblr-light: #f8fafc;
    --tblr-dark: #0B2848;
    --tblr-muted: #66626c;
    --tblr-tabler: #D91815;
    --tblr-primary-rgb: 217, 24, 21;
    --tblr-secondary-rgb: 11, 40, 72;
    --tblr-success-rgb: 66, 186, 150;
    --tblr-info-rgb: 70, 127, 208;
    --tblr-warning-rgb: 255, 193, 7;
    --tblr-danger-rgb: 223, 71, 89;
    --tblr-light-rgb: 248, 250, 252;
    --tblr-dark-rgb: 11, 40, 72;
    --tblr-muted-rgb: 102, 98, 108;
    --tblr-tabler-rgb: 217, 24, 21;
    --tblr-primary-text-emphasis: #7a0b09;
    --tblr-secondary-text-emphasis: #42444b;
    --tblr-success-text-emphasis: #1a4a3c;
    --tblr-info-text-emphasis: #1c3353;
    --tblr-warning-text-emphasis: #664d03;
    --tblr-danger-text-emphasis: #591c24;
    --tblr-light-text-emphasis: #333152;
    --tblr-dark-text-emphasis: #333152;
    --tblr-primary-bg-subtle: #fce8e8;
    --tblr-secondary-bg-subtle: #edeef1;
    --tblr-success-bg-subtle: #d9f1ea;
    --tblr-info-bg-subtle: #dae5f6;
    --tblr-warning-bg-subtle: #fff3cd;
    --tblr-danger-bg-subtle: #f9dade;
    --tblr-light-bg-subtle: #f8fafc;
    --tblr-dark-bg-subtle: #a09bbe;
    --tblr-primary-border-subtle: #f5afae;
    --tblr-secondary-border-subtle: #dbdde4;
    --tblr-success-border-subtle: #b3e3d5;
    --tblr-info-border-subtle: #b5ccec;
    --tblr-warning-border-subtle: #ffe69c;
    --tblr-danger-border-subtle: #f2b5bd;
    --tblr-light-border-subtle: #e2e8f0;
    --tblr-dark-border-subtle: #736c91;
    --tblr-body-font-size: 0.875rem;
    --tblr-body-font-weight: 400;
    --tblr-body-line-height: 1.4285714286;
    --tblr-body-color: #241f2d;
    --tblr-body-color-rgb: 36, 31, 45;
    --tblr-body-bg: #f1f5f9;
    --tblr-body-bg-rgb: 241, 245, 249;
    --tblr-emphasis-color: #000;
    --tblr-emphasis-color-rgb: 0, 0, 0;
    --tblr-secondary-color: rgba(36, 31, 45, .75);
    --tblr-secondary-color-rgb: 36, 31, 45;
    --tblr-secondary-bg: #e2e8f0;
    --tblr-secondary-bg-rgb: 226, 232, 240;
    --tblr-tertiary-color: rgba(36, 31, 45, .5);
    --tblr-tertiary-color-rgb: 36, 31, 45;
    --tblr-tertiary-bg: #f1f5f9;
    --tblr-tertiary-bg-rgb: 241, 245, 249;
    --tblr-link-color: #D91815;
    --tblr-link-color-rgb: 217, 24, 21;
    --tblr-link-hover-color: #aa1211;
    --tblr-link-hover-color-rgb: 170, 18, 17;
    --tblr-border-color: #e7e6e7;
    --tblr-border-color-translucent: rgba(102, 98, 108, .16);
    --tblr-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);
    --tblr-focus-ring-width: 0.25rem;
    --tblr-focus-ring-opacity: 0.25;
    --tblr-focus-ring-color: rgba(217, 24, 21, 0.25);
    --tblr-form-valid-color: #42ba96;
    --tblr-form-valid-border-color: #42ba96;
    --tblr-form-invalid-color: #df4759;
    --tblr-form-invalid-border-color: #df4759;
    --tblr-danger-text: var(--tblr-danger);
    --tblr-navbar-border-color: transparent;
    --bg-switch-checked-color: var(--tblr-primary);
}

[data-bs-theme=dark], [data-menu-theme=dark] {
    --tblr-body-color: var(--tblr-gray-400);
    --tblr-body-color-rgb: 160, 155, 190;
    --tblr-body-bg: #181818;
    --tblr-body-bg-rgb: 24, 24, 24;
    --tblr-emphasis-color: #fff;
    --tblr-emphasis-color-rgb: 255, 255, 255;
    --tblr-secondary-color: rgba(160, 155, 190, .75);
    --tblr-secondary-color-rgb: 160, 155, 190;
    --tblr-secondary-bg: #211d3b;
    --tblr-secondary-bg-rgb: 33, 29, 59;
    --tblr-tertiary-color: rgba(160, 155, 190, .5);
    --tblr-tertiary-color-rgb: 160, 155, 190;
    --tblr-tertiary-bg: #1e1633;
    --tblr-tertiary-bg-rgb: 30, 22, 51;
    --tblr-primary-text-emphasis: #f5afae;
    --tblr-secondary-text-emphasis: #cacdd6;
    --tblr-success-text-emphasis: #8ed6c0;
    --tblr-info-text-emphasis: #90b2e3;
    --tblr-warning-text-emphasis: #ffda6a;
    --tblr-danger-text-emphasis: #ec919b;
    --tblr-light-text-emphasis: #f1f5f9;
    --tblr-dark-text-emphasis: #c8d3e1;
    --tblr-primary-bg-subtle: #2d0a09;
    --tblr-secondary-bg-subtle: #212225;
    --tblr-success-bg-subtle: #0d251e;
    --tblr-info-bg-subtle: #0e192a;
    --tblr-warning-bg-subtle: #332701;
    --tblr-danger-bg-subtle: #2d0e12;
    --tblr-light-bg-subtle: #211d3b;
    --tblr-dark-bg-subtle: #110f1e;
    --tblr-primary-border-subtle: #862b35;
    --tblr-secondary-border-subtle: #646770;
    --tblr-success-border-subtle: #28705a;
    --tblr-info-border-subtle: #2a4c7d;
    --tblr-warning-border-subtle: #997404;
    --tblr-danger-border-subtle: #862b35;
    --tblr-light-border-subtle: #29272f;
    --tblr-dark-border-subtle: #211d3b;
    --tblr-link-color: #f5afae;
    --tblr-link-hover-color: #f8c8c7;
    --tblr-link-color-rgb: 245, 175, 174;
    --tblr-link-hover-color-rgb: 248, 200, 199;
    --tblr-code-color: #f5afae;
    --tblr-border-color: #20202b;
    --tblr-border-color-translucent: var(--tblr-border-color);
    --tblr-form-valid-color: #93c29a;
    --tblr-form-valid-border-color: #93c29a;
    --tblr-form-invalid-color: #d69090;
    --tblr-form-invalid-border-color: #d69090;
    --tblr-bg-surface: #221e26;
    --tblr-navbar-bg: var(--tblr-bg-surface);
    --tblr-dark-mode-border-color: #302b33;
    --tblr-bg-main-color: #181818;
    --tblr-bg-forms: var(--tblr-dark-mode-border-color);
    --tblr-danger-text: var(--tblr-danger);
    --tblr-danger: #E25A6A;
    --tblr-danger-rgb: 226, 90, 106;
    --tblr-navbar-color: rgba(255, 255, 255, 0.7);
    --tblr-bg-surface-tertiary: #ffffff02;
    --tblr-navbar-border-color: transparent;
}

/* ─── Sidebar (navy) ─────────────────────────────────── */
.navbar-vertical {
    background-color: #0B2848 !important;
}

.navbar-vertical .navbar-brand a,
.navbar-vertical .nav-link,
.navbar-vertical .nav-link .nav-link-title,
.navbar-vertical .nav-link-icon {
    color: rgba(255, 255, 255, 0.85) !important;
}

.navbar-vertical .nav-link:hover,
.navbar-vertical .nav-link:hover .nav-link-title {
    color: #ffffff !important;
    background-color: rgba(255, 255, 255, 0.08) !important;
}

.navbar-vertical .nav-link.active,
.navbar-vertical .nav-item.active > .nav-link {
    color: #ffffff !important;
    background-color: #D91815 !important;
    border-radius: 4px;
}

.navbar-vertical .nav-link.active .nav-link-title,
.navbar-vertical .nav-item.active > .nav-link .nav-link-title {
    color: #ffffff !important;
}

.navbar-vertical .admin-sidebar-shortcuts {
    align-items: center;
    gap: 0;
    justify-content: center;
    min-height: 2rem;
}

.navbar-vertical .admin-sidebar-shortcuts :not(:first-child):not(.d-none)::before {
    content: none;
}

.navbar-vertical .admin-sidebar-shortcut-item {
    align-items: center;
    display: flex;
    min-height: 2rem;
}

.navbar-vertical .admin-sidebar-shortcut-item + .admin-sidebar-shortcut-item {
    border-left: 1px solid rgba(255, 255, 255, 0.65);
    margin-left: 0.75rem;
    padding-left: 0.75rem;
}

.navbar-vertical .admin-sidebar-shortcut-item .nav-link {
    align-items: center;
    color: rgba(255, 255, 255, 0.85) !important;
    display: flex !important;
    height: 2rem;
    justify-content: center;
    line-height: 1;
    min-width: 2rem;
    padding: 0;
}

.navbar-vertical .admin-sidebar-shortcut-item .btn-link {
    color: rgba(255, 255, 255, 0.85) !important;
    height: 2rem;
    line-height: 2rem;
    min-width: 2rem;
    padding: 0;
    text-align: center;
}

.navbar-vertical .admin-sidebar-shortcut-item .nav-link:hover,
.navbar-vertical .admin-sidebar-shortcut-item .btn-link:hover {
    background-color: transparent !important;
    color: #ffffff !important;
}

.navbar-vertical .admin-sidebar-shortcut-link {
    gap: 0.35rem;
}

.navbar-vertical .admin-sidebar-language-menu {
    inset-inline-start: 0 !important;
    inset-inline-end: auto !important;
    min-width: 11rem;
}

/* ─── Dashboard ─────────────────────────────────────── */
.admin-dashboard__event {
    align-items: flex-start;
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: min(20rem, 100%);
    padding: 0.875rem 1rem;
}

.admin-dashboard__event-label {
    color: var(--tblr-muted);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

.admin-dashboard__event-name {
    color: var(--tblr-body-color);
    font-weight: 600;
    max-width: 18rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-dashboard__stat {
    color: var(--tblr-body-color);
    text-decoration: none;
}

.admin-dashboard__icon,
.admin-dashboard__action-icon {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.admin-dashboard__icon .la,
.admin-dashboard__action-icon .la {
    font-size: 1.35rem;
    line-height: 1;
}

.admin-dashboard__action {
    align-items: center;
    display: flex;
    gap: 1rem;
    min-height: 4.25rem;
}

.admin-dashboard__action-body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

@media (max-width: 575.98px) {
    .admin-dashboard__event {
        min-width: 0;
    }

    .admin-dashboard__event-name {
        max-width: 100%;
    }
}

/* ─── Group Mode ────────────────────────────────────── */
.admin-group-mode {
    --admin-group-list-height: min(60vh, 42rem);
    --admin-group-sidebar-height: min(55vh, 36rem);
}

.admin-group-mode__active-header,
.admin-group-mode__list-header {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    min-height: 3.25rem;
    padding: 0.75rem 1rem;
}

.admin-group-mode__active-header .la {
    font-size: 1rem;
    line-height: 1;
}

.admin-group-mode__description {
    max-height: 6rem;
}

.admin-group-mode__sidebar-list {
    max-height: var(--admin-group-sidebar-height);
}

.admin-group-mode__toolbar {
    align-items: center;
    border-color: var(--tblr-border-color);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 1rem;
    min-height: 3.25rem;
    padding: 0.75rem 1rem;
}

.admin-group-mode__pending {
    align-items: center;
    display: inline-flex;
    gap: 0.375rem;
    min-height: 1.875rem;
}

.admin-group-mode__pending[hidden] {
    display: none;
}

.admin-group-mode__pending strong {
    color: var(--tblr-body-color);
    font-weight: 600;
}

.admin-group-mode__pending-separator {
    color: var(--tblr-muted);
}

.admin-group-mode__record-list {
    max-height: var(--admin-group-list-height);
}

.admin-group-mode__record-list .form-control[type="number"] {
    flex: 0 0 4.5rem;
    width: 4.5rem;
}

.admin-group-mode .btn:disabled,
.admin-group-mode .btn.disabled {
    background-color: var(--tblr-secondary-bg);
    border-color: var(--tblr-border-color);
    color: var(--tblr-muted);
    opacity: 1;
}

.admin-group-mode .list-group-item.active {
    background-color: var(--tblr-primary-bg-subtle);
    border-color: var(--tblr-primary-border-subtle);
    color: var(--tblr-primary-text-emphasis);
    font-weight: 600;
}

@media (max-width: 767.98px) {
    .admin-group-mode {
        --admin-group-list-height: 22rem;
        --admin-group-sidebar-height: 18rem;
    }

    .admin-group-mode__list-header {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ─── Custom Admin Page Actions ──────────────────────── */
/*
  Form action buttons on custom admin pages (check-in, give, group mode).
  NOT used in CRUD table buttons — those use native Backpack btn-link.
*/
.admin-crud-action {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
    justify-content: center;
    min-height: 1.875rem;
    white-space: nowrap;
}

.admin-crud-action .la {
    font-size: 1rem;
    line-height: 1;
}

.admin-crud-action:disabled,
.admin-crud-action.disabled {
    opacity: 1;
}

.admin-group-sidebar__toggle {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--tblr-body-color);
    display: flex;
    justify-content: space-between;
    text-align: left;
    width: 100%;
}

.admin-group-sidebar .list-group-item.active {
    background-color: var(--tblr-primary-bg-subtle);
    border-color: var(--tblr-primary-border-subtle);
    color: var(--tblr-primary-text-emphasis);
    font-weight: 600;
}

.admin-bulk-actions__search {
    max-width: 14rem;
}

.admin-bulk-actions__list {
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    max-height: 25rem;
    overflow-y: auto;
}

.admin-bulk-actions__item {
    cursor: pointer;
}

.admin-language-select {
    max-width: 11.25rem;
}

.admin-submitted-field__thumb {
    height: 4rem;
    object-fit: cover;
    width: 4rem;
}

.admin-requirements-preview {
    max-width: 100%;
    overflow-x: hidden;
}

.admin-requirements-preview__item {
    min-width: 0;
}

.admin-requirements-preview__label,
.admin-requirements-preview__options {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.admin-required-reading-preview .modal-backdrop,
.admin-required-reading-preview .admin-reading-preview-backdrop {
    align-items: center;
    background: rgba(var(--tblr-secondary-rgb), .48);
    box-sizing: border-box;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1.5rem;
    position: fixed;
    z-index: 1055;
}

.admin-required-reading-preview .modal-backdrop.hidden,
.admin-required-reading-preview .admin-reading-preview-backdrop.hidden,
.admin-required-reading-preview .image-closeup.hidden,
.admin-required-reading-preview .admin-reading-preview-closeup.hidden {
    display: none !important;
}

.admin-required-reading-preview .modal,
.admin-required-reading-preview .admin-reading-preview-dialog {
    background: var(--tblr-bg-surface);
    border-radius: var(--tblr-border-radius);
    box-shadow: var(--tblr-box-shadow-lg, 0 1.5rem 5rem rgba(0, 0, 0, .22));
    box-sizing: border-box;
    color: var(--tblr-body-color);
    display: block;
    height: auto;
    max-height: min(47.5rem, calc(100vh - 3rem));
    overflow: auto;
    padding: 1.5rem;
    position: static;
    width: min(42.5rem, 100%);
}

.admin-required-reading-preview .modal h2,
.admin-required-reading-preview .admin-reading-preview-dialog h2 {
    color: var(--tblr-body-color);
    margin: 0 0 0.625rem;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.admin-required-reading-preview [data-reading-body] {
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.admin-required-reading-preview .modal img,
.admin-required-reading-preview .admin-reading-preview-dialog img {
    border-radius: var(--tblr-border-radius);
    cursor: zoom-in;
    margin: 0.75rem 0;
    max-width: 100%;
}

.admin-required-reading-preview .modal-actions {
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin-top: 1.5rem;
}

.admin-required-reading-preview .modal-actions button,
.admin-required-reading-preview .image-closeup button,
.admin-required-reading-preview .admin-reading-preview-closeup button {
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    cursor: pointer;
    font-weight: 600;
    padding: 0.55rem 0.875rem;
}

.admin-required-reading-preview .modal-actions button {
    background: var(--tblr-bg-surface);
    color: var(--tblr-body-color);
}

.admin-required-reading-preview .modal-actions button.primary {
    background: var(--tblr-primary);
    border-color: var(--tblr-primary);
    color: #fff;
}

.admin-required-reading-preview .modal-actions button:disabled {
    background: var(--tblr-secondary-bg);
    color: var(--tblr-muted);
    cursor: not-allowed;
}

.admin-required-reading-preview .image-closeup,
.admin-required-reading-preview .admin-reading-preview-closeup {
    align-items: center;
    background: rgba(0, 0, 0, .86);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1.5rem;
    position: fixed;
    z-index: 1060;
}

.admin-required-reading-preview .image-closeup img,
.admin-required-reading-preview .admin-reading-preview-closeup img {
    max-height: calc(100vh - 3rem);
    max-width: min(75rem, 100%);
    object-fit: contain;
}

.admin-required-reading-preview .image-closeup button,
.admin-required-reading-preview .admin-reading-preview-closeup button {
    background: rgba(0, 0, 0, .45);
    border-color: rgba(255, 255, 255, .55);
    color: #fff;
    position: absolute;
    right: 1rem;
    top: 1rem;
}

[hidden] {
    display: none !important;
}

[data-admin-avatar-image] {
    left: 0;
    margin: 0;
    position: absolute;
    z-index: 1;
}

/* ─── Check-in ─────────────────────────────────────── */
summary.btn {
    cursor: pointer;
    display: inline-flex;
    list-style: none;
}

summary.btn::-webkit-details-marker {
    display: none;
}

.check-in-details__summary {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--tblr-primary);
    cursor: pointer;
    display: inline-flex;
    justify-content: center;
    line-height: 1;
    padding: .25rem;
    text-decoration: none;
    user-select: none;
}

.check-in-details__summary::marker,
.check-in-details__summary::-webkit-details-marker {
    display: none;
}

.check-in-details__summary:hover,
.check-in-details__summary:focus,
.check-in-details__summary:active,
.check-in-details__summary:focus-visible,
.admin-preview-toggle,
.admin-preview-toggle:hover,
.admin-preview-toggle:focus,
.admin-preview-toggle:active,
.admin-preview-toggle:focus-visible {
    text-decoration: none !important;
}

.check-in-details__summary:hover,
.check-in-details__summary:focus,
.check-in-details__summary:active,
.check-in-details__summary:focus-visible {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--tblr-primary);
    outline: 0;
}

.admin-preview-toggle i,
.admin-preview-toggle:hover i,
.admin-preview-toggle:focus i,
.admin-preview-toggle:active i,
.admin-preview-toggle:focus-visible i {
    text-decoration: none !important;
}

.check-in-preview-backdrop {
    align-items: center;
    background: rgba(var(--tblr-secondary-rgb), .48);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1.5rem;
    position: fixed;
    z-index: 1055;
}

.check-in-preview-backdrop.d-none {
    display: none;
}

.check-in-preview-image {
    border-radius: var(--tblr-border-radius, .5rem);
    box-shadow: var(--tblr-box-shadow-lg, 0 1.5rem 4rem rgba(0, 0, 0, .35));
    max-height: calc(100vh - 6rem);
    max-width: min(100%, 960px);
}

[data-check-in-arrivals].is-loading {
    opacity: .55;
    transition: opacity .15s ease;
}

.admin-submitted-field__value {
    max-height: 10rem;
    overflow-wrap: anywhere;
    overflow-y: auto;
    white-space: normal;
    word-break: break-word;
}

.admin-preview-scroll {
    display: block;
    max-height: 15rem;
    max-width: 100%;
    overflow-x: hidden;
    overflow-wrap: anywhere;
    overflow-y: auto;
    white-space: normal;
    word-break: break-word;
}

.admin-preview-detail {
    max-height: 20rem;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    overflow-wrap: anywhere;
    overflow-y: auto;
    white-space: normal;
    word-break: break-word;
}

.admin-preview-detail-cell {
    max-width: 0;
    white-space: normal;
}

.admin-preview-detail .row,
.admin-preview-detail [class*="col-"],
.admin-preview-detail .border,
.admin-preview-detail a,
.admin-preview-detail button {
    min-width: 0;
}

.admin-preview-detail a,
.admin-preview-detail .btn {
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

/* ─── My Account ───────────────────────────────────── */
.backpack-profile-form .required::after {
    content: ' *';
    color: var(--tblr-danger);
}

/* ─── Requirements Field (accordion cards) ──────────── */
.requirements-row .card-header {
    cursor: pointer;
    user-select: none;
}

.requirements-row .card-header .la-angle-down {
    transition: transform .2s ease;
    font-size: .875rem;
}

.requirements-row .card-header:hover {
    background-color: var(--tblr-tertiary-bg);
}

.requirements-row .card-body {
    border-top: 1px solid var(--tblr-border-color);
}

.requirements-row .form-label.small {
    font-size: .75rem;
    margin-bottom: .125rem;
}

/* ─── Button Icon Spacing ──────────────────────────── */
.btn-sm {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.btn-sm .la {
    font-size: 1rem;
    line-height: 1;
}
