/* Load Figtree variable font for headings */
@font-face {
    font-family: 'Figtree';
    src: url('/theme/site/fonts/Figtree-Variable.46372963.ttf') format('truetype');
    font-weight: 100 900;
    font-display: swap;
}

/* Load Satoshi Variable font */
@font-face {
    font-family: 'Satoshi Variable';
    src: url('/theme/fonts/Satoshi_Complete/Fonts/WEB/fonts/Satoshi-Variable.woff2') format('woff2'),
         url('/theme/fonts/Satoshi_Complete/Fonts/WEB/fonts/Satoshi-Variable.woff') format('woff');
    font-weight: 300 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Satoshi Variable';
    src: url('/theme/fonts/Satoshi_Complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff2') format('woff2'),
         url('/theme/fonts/Satoshi_Complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff') format('woff');
    font-weight: 300 900;
    font-style: italic;
    font-display: swap;
}

/* Page header gradient accent icons */
.cx-page-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cx-page-icon em {
    font-size: 1.25rem;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.cx-page-icon--dashboard { background: rgba(218, 92, 82, 0.12); border: 1px solid rgba(218, 92, 82, 0.25); }
.cx-page-icon--dashboard em { background-image: linear-gradient(135deg, #DA5C52, #DB519B); }
.cx-page-icon--enquiries { background: rgba(244, 189, 14, 0.12); border: 1px solid rgba(244, 189, 14, 0.25); }
.cx-page-icon--enquiries em { background-image: linear-gradient(135deg, #F4BD0E, #E8A040); }
.cx-page-icon--listings { background: rgba(91, 128, 96, 0.12); border: 1px solid rgba(91, 128, 96, 0.25); }
.cx-page-icon--listings em { background-image: linear-gradient(135deg, #5B8060, #1EE0AC); }
.cx-page-icon--messages { background: rgba(182, 149, 255, 0.12); border: 1px solid rgba(182, 149, 255, 0.25); }
.cx-page-icon--messages em { background-image: linear-gradient(135deg, #B695FF, #DB519B); }
.cx-page-icon--settings { background: rgba(201, 201, 201, 0.12); border: 1px solid rgba(201, 201, 201, 0.25); }
.cx-page-icon--settings em { background-image: linear-gradient(135deg, #C9C9C9, #7E7E7E); }
.cx-page-icon--skills { background: rgba(9, 194, 222, 0.12); border: 1px solid rgba(9, 194, 222, 0.25); }
.cx-page-icon--skills em { background-image: linear-gradient(135deg, #09C2DE, #5B8060); }
.cx-page-icon--users { background: rgba(9, 194, 222, 0.12); border: 1px solid rgba(9, 194, 222, 0.25); }
.cx-page-icon--users em { background-image: linear-gradient(135deg, #09C2DE, #5B8060); }
.cx-page-icon--communications { background: rgba(244, 189, 14, 0.12); border: 1px solid rgba(244, 189, 14, 0.25); }
.cx-page-icon--communications em { background-image: linear-gradient(135deg, #F4BD0E, #E8A040); }
.cx-page-icon--categories { background: rgba(91, 128, 96, 0.12); border: 1px solid rgba(91, 128, 96, 0.25); }
.cx-page-icon--categories em { background-image: linear-gradient(135deg, #5B8060, #1EE0AC); }
.cx-page-icon--attribute-groups { background: rgba(182, 149, 255, 0.12); border: 1px solid rgba(182, 149, 255, 0.25); }
.cx-page-icon--attribute-groups em { background-image: linear-gradient(135deg, #B695FF, #DB519B); }
.cx-page-icon--attribute-items { background: rgba(218, 92, 82, 0.12); border: 1px solid rgba(218, 92, 82, 0.25); }
.cx-page-icon--attribute-items em { background-image: linear-gradient(135deg, #DA5C52, #DB519B); }
.cx-page-icon--line-item-groups { background: rgba(201, 201, 201, 0.12); border: 1px solid rgba(201, 201, 201, 0.25); }
.cx-page-icon--line-item-groups em { background-image: linear-gradient(135deg, #C9C9C9, #7E7E7E); }
.cx-page-icon--bookings { background: rgba(91, 128, 96, 0.12); border: 1px solid rgba(91, 128, 96, 0.25); }
.cx-page-icon--bookings em { background-image: linear-gradient(135deg, #5B8060, #1EE0AC); }
.cx-page-icon--invoices { background: rgba(244, 189, 14, 0.12); border: 1px solid rgba(244, 189, 14, 0.25); }
.cx-page-icon--invoices em { background-image: linear-gradient(135deg, #F4BD0E, #E8A040); }
.cx-page-icon--feedback { background: rgba(218, 92, 82, 0.12); border: 1px solid rgba(218, 92, 82, 0.25); }
.cx-page-icon--feedback em { background-image: linear-gradient(135deg, #DA5C52, #DB519B); }
.cx-page-icon--tracking-health { background: rgba(91, 128, 96, 0.12); border: 1px solid rgba(91, 128, 96, 0.25); }
.cx-page-icon--tracking-health em { background-image: linear-gradient(135deg, #5B8060, #1EE0AC); }

/* CDL funnel dashboard */
.cx-cdl-funnel .cx-cdl-page-heading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.cx-cdl-funnel .cx-cdl-page-title {
    font-family: 'Figtree', sans-serif;
    color: #EDEDED;
    letter-spacing: 0.01em;
}
.cx-cdl-funnel .cx-cdl-page-subtitle {
    margin: 0.25rem 0 0;
    color: #B5B5B5;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: 0.8125rem;
    letter-spacing: 0.03em;
}
.cx-cdl-panel {
    background: #18181B;
    border: 1px solid #3C3C3C;
    border-radius: 8px;
}
.cx-cdl-panel--filters {
    margin-bottom: 1rem;
}
.cx-cdl-field-label {
    display: block;
    margin-bottom: 0.375rem;
    color: #B5B5B5;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.03em;
}
.cx-cdl-input {
    width: 100%;
    background: #18181B;
    border: 1px solid #3C3C3C;
    border-radius: 8px;
    color: #EDEDED;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: 0.8125rem;
    padding: 0.5rem 0.75rem;
}
.cx-cdl-filter-button {
    width: 100%;
    min-height: 38px;
    border-radius: 8px;
}
.cx-cdl-summary-grid {
    margin-bottom: 1rem;
}
.cx-cdl-summary-label {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #7E7E7E;
}
.cx-cdl-summary-value {
    font-family: 'Figtree', sans-serif;
    font-size: 1.75rem;
    font-weight: 700;
    color: #EDEDED;
}
.cx-cdl-table {
    color: #EDEDED;
    margin-bottom: 0;
}
.cx-cdl-table thead tr {
    background: rgba(255, 255, 255, 0.03);
    border-bottom: 1px solid #3C3C3C;
}
.cx-cdl-table th {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #B5B5B5;
}
.cx-cdl-table__step,
.cx-cdl-table__count {
    font-family: 'Figtree', sans-serif;
    font-weight: 700;
    color: #EDEDED;
}
.cx-cdl-table__event,
.cx-cdl-table__rate {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    color: #B5B5B5;
}
.cx-cdl-panel--section {
    margin-bottom: 1rem;
}
.cx-cdl-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.cx-cdl-section-title {
    margin: 0;
    font-family: 'Figtree', sans-serif;
    color: #EDEDED;
}
.cx-cdl-section-kicker {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    color: #7E7E7E;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.cx-cdl-empty {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    color: #7E7E7E;
}
.cx-cdl-status {
    display: inline-flex;
    align-items: center;
    min-height: 1.375rem;
    border-radius: 999px;
    padding: 0.125rem 0.5rem;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.cx-cdl-status--sent {
    background: rgba(91, 128, 96, 0.18);
    color: #1EE0AC;
}
.cx-cdl-status--failed,
.cx-cdl-status--permanent-failure,
.cx-cdl-status--skipped-no-consent {
    background: rgba(218, 92, 82, 0.16);
    color: #DA5C52;
}
.cx-cdl-status--pending,
.cx-cdl-status--skipped-test-mode,
.cx-cdl-status--neutral {
    background: rgba(201, 201, 201, 0.12);
    color: #C9C9C9;
}
.cx-cdl-delivery {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.375rem;
}
.cx-cdl-delivery:last-child {
    margin-bottom: 0;
}
.cx-cdl-table__url {
    max-width: 30rem;
    overflow-wrap: anywhere;
}
.cx-cdl-segments {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #3C3C3C;
}
.cx-cdl-segment-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 0.5rem;
}
.cx-cdl-replay-form {
    display: grid;
    grid-template-columns: minmax(10rem, 1fr) auto;
    gap: 0.5rem;
    margin-top: 0.5rem;
}
.cx-cdl-replay-form__reason {
    min-height: 32px;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
}
.cx-cdl-replay-form__button {
    min-height: 32px;
    border-radius: 8px;
}
.cx-cdl-forget-form {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) auto;
    gap: 0.75rem;
}
.cx-cdl-forget-form__reason,
.cx-cdl-forget-form__button {
    min-height: 38px;
    border-radius: 8px;
}

@media (max-width: 767px) {
    .cx-cdl-section-head {
        display: block;
    }
    .cx-cdl-section-kicker {
        display: block;
        margin-top: 0.25rem;
    }
    .cx-cdl-replay-form {
        grid-template-columns: 1fr;
    }
    .cx-cdl-forget-form {
        grid-template-columns: 1fr;
    }
}

/* Booker search pill in top nav */
.cx-booker-search-pill:hover { border-color: #5B8060 !important; background: #242427 !important; }
.cx-booker-search-pill:hover .cx-booker-search-pill__cta { color: #5B8060; }

/* Entertainer profile/edit section rhythm */
.cx-profile-section {
    margin-bottom: 2rem !important;
}
.cx-profile-section:last-child {
    margin-bottom: 0 !important;
}
.cx-skills .form-label .text-danger,
.cx-skills h5 .text-danger,
.cx-skills h3 .text-danger {
    color: #C0625D !important;
}

/* Page background — override DashLite default #191919 */
body.dark-mode,
body.dark-mode.bg-lighter,
body.dark-mode.bg-light,
body.dark-mode.ui-shady,
body.dark-mode.ui-clean {
    background-color: #1A1A1A !important;
}
.dark-mode .bg-lighter {
    background-color: #1A1A1A !important;
}

@media (max-width: 767px) {
    body[data-page="auth"],
    body[data-page="auth"].dark-mode,
    body[data-page="auth"].dark-mode.bg-lighter,
    body[data-page="auth"] .nk-app-root.auth,
    body[data-page="auth"] .nk-app-root.auth .nk-main,
    body[data-page="auth"] .nk-app-root.auth .nk-wrap,
    body[data-page="auth"] .nk-app-root.auth .nk-content {
        background: #252525 !important;
        background-image: none !important;
    }

    body[data-page="auth"] .nk-app-root.auth .nk-auth-body,
    body[data-page="auth"] .nk-app-root.auth .card,
    body[data-page="auth"] .nk-app-root.auth .card-inner,
    body[data-page="auth"] .nk-app-root.auth .card-inner-lg {
        background: #252525 !important;
        background-color: #252525 !important;
        box-shadow: none !important;
    }

    body[data-page="auth"] .nk-app-root.auth,
    body[data-page="auth"] .nk-app-root.auth .nk-main,
    body[data-page="auth"] .nk-app-root.auth .nk-wrap,
    body[data-page="auth"] .nk-app-root.auth .nk-content {
        min-height: 100svh;
    }
}

.project{
    justify-content: space-between !important;
    display: flex !important;
    flex-direction: column !important;
}
/* Hide scrollbar on collapsed sidebar */
.nk-sidebar.is-compact .nk-sidebar-menu,
.nk-sidebar.is-compact .simplebar-content-wrapper {
    overflow: hidden !important;
}

/* Bigger sidebar logo */
.nk-sidebar-brand .logo-img {
    max-height: 48px;
}
.nk-sidebar-brand {
    padding-top: calc(0.5rem - 2px);
}

/* --- Style Guide alignment overrides --- */

/* Page titles: Figtree 600 (style guide h3) */
.page-title {
    font-family: 'Figtree', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    color: #EDEDED !important;
}

/* Card h6 titles: Figtree 1rem/600 (style guide h6) */
.card-title .title {
    font-family: 'Figtree', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    color: #EDEDED !important;
}

/* Overline / section labels: Satoshi .75rem/600, 0.06em spacing */
.overline-title {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .75rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
}

/* Block description text: Satoshi body-3 */
/* Page subtitle overline — moved to end of file to win cascade */

/* Body text in cards: Satoshi body-3 */
.card-inner p {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .875rem;
    letter-spacing: 0.03em;
    color: #B5B5B5;
}

/* Data amounts in stat cards */
.nk-ecwg6 .amount,
.analytic-data .amount {
    font-family: 'Figtree', sans-serif;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #EDEDED;
}

/* Small data labels in cards */
.analytic-data .title,
.nk-store-statistics .title {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7E7E7E;
}

/* Stats info text */
.data .info,
.analytic-data .subtitle {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .75rem;
    letter-spacing: 0.03em;
    color: #B5B5B5;
}

/* Store statistics count */
.nk-store-statistics .count {
    font-family: 'Figtree', sans-serif;
    font-weight: 600;
    color: #EDEDED;
}

/* Global Satoshi Variable override for header + dropdowns */
.nk-header,
.nk-header *,
.nk-quick-nav *,
.user-avatar,
.user-dropdown,
.user-dropdown *,
.notification-dropdown,
.notification-dropdown *,
.dropdown-menu,
.dropdown-menu * {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
}

/* User avatar circle in header — visible against dark header */
.dark-mode .nk-header .user-avatar {
    background: #3C3C3C !important;
    color: #EDEDED !important;
    border: 1px solid #4A4A4A !important;
    width: 36px !important;
    height: 36px !important;
    font-size: 0.8125rem !important;
}
.dark-mode .nk-header .user-avatar span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    min-height: 1em;
}

/* User name in header */
.user-info .user-name {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #EDEDED;
}
.user-info .user-status {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: #B5B5B5;
}

/* Sidebar menu links: consistent with dropdown links */
.nk-menu-link {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-weight: 500 !important;
    font-size: .875rem !important;
    letter-spacing: 0.03em !important;
    color: #EDEDED !important;
}
.nk-menu-link:hover,
.active > .nk-menu-link,
.current-page > .nk-menu-link {
    color: #FFFFFF !important;
    background: #343434 !important;
}
.is-dark .nk-menu-link:hover,
.is-dark .active > .nk-menu-link {
    background: #343434 !important;
}
/* Sidebar icons */
.nk-menu-icon .icon {
    color: #9A9A9A !important;
}
.nk-menu-link:hover .nk-menu-icon .icon,
.nk-menu-item.active > .nk-menu-link .nk-menu-icon .icon,
.nk-menu-item.current-page > .nk-menu-link .nk-menu-icon .icon,
.active .nk-menu-icon .icon {
    color: #FFFFFF !important;
}
/* Sidebar heading */
.nk-menu-heading {
    color: #7E7E7E !important;
}

/* Text overflow utilities — apply to dynamic user/admin/external content in constrained containers */
.cx-text-truncate {
    display: block;
    min-width: 0; /* required for truncation inside flex children — do not remove */
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cx-text-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.cx-text-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* Click-to-copy contact details */
.cx-copy-field {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    max-width: 100%;
    vertical-align: middle;
}
.cx-copy-value {
    display: block;
    min-width: 0;
    max-width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-align: left;
    cursor: pointer;
}
.cx-copy-value.cx-text-truncate {
    display: block;
}
.cx-copy-button {
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #7E7E7E;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}
.cx-copy-button .icon {
    font-size: 0.8125rem;
}
.cx-copy-value:hover,
.cx-copy-button:hover,
.cx-copy-field:focus-within .cx-copy-value {
    color: #EDEDED !important;
}
.cx-copy-button:hover {
    background: rgba(255,255,255,0.06);
}
.cx-copy-value.is-copied,
.cx-copy-button.is-copied {
    color: #1ee0ac !important;
}

/* Notification dropdown */
.nk-notification-text {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.35;
    min-height: 2.7em;
    letter-spacing: 0.03em;
    color: #C9C9C9 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}
.nk-notification-text span {
    color: #EDEDED !important;
    font-weight: 600;
}
.nk-notification-time {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .75rem;
    letter-spacing: 0.03em;
    color: #B5B5B5 !important;
}
.notification-dropdown .nk-notification,
.cx-mobile-panel .nk-notification {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}
.notification-dropdown .nk-notification-item,
.cx-mobile-panel .nk-notification-item {
    display: flex;
    align-items: flex-start;
    min-height: 72px;
    border-bottom: none;
    border: 1px solid rgba(255,255,255,0.04);
    border-radius: 8px;
    background: rgba(255,255,255,0.025);
    transition: background-color 0.18s ease, border-color 0.18s ease;
}
.notification-dropdown .nk-notification-item:hover,
.cx-mobile-panel .nk-notification-item:hover {
    background: rgba(255,255,255,0.045);
    border-color: rgba(255,255,255,0.08);
    cursor: pointer;
}

/* --- Quick Actions dropdown (admin centre button) --- */
.cx-quick-actions-dropdown .dropdown-menu {
    transform: translateX(-50%) !important;
    inset: auto !important;
    top: 100% !important;
    left: 50% !important;
    margin-top: 0 !important;
}

/* --- Profile & Notification dropdown overrides --- */

/* Flush dropdown against header — override Popper.js inline transform */
.nk-header-wrap {
    position: relative !important;
}
.nk-quick-nav .dropdown.user-dropdown,
.nk-quick-nav .dropdown.notification-dropdown {
    position: static !important;
}
.nk-quick-nav .user-dropdown .dropdown-menu,
.nk-quick-nav .notification-dropdown .dropdown-menu {
    --bs-dropdown-spacer: 0 !important;
    margin: 0 !important;
    transform: none !important;
    position: absolute !important;
    inset: 100% 0px auto auto !important;
}

/* Premium dark panel — seamless extension of header */
.user-dropdown .dropdown-menu,
.notification-dropdown .dropdown-menu {
    background: #282828 !important;
    border: none !important;
    border-top: 1px solid rgba(255,255,255,0.06) !important;
    border-radius: 0 0 10px 10px !important;
    box-shadow: 0 16px 32px -12px rgba(0,0,0,0.7) !important;
    clip-path: inset(-1px -24px -24px -24px) !important;
    overflow: hidden !important;
    top: calc(100% - 1px) !important;
    margin-top: -1px !important;
}

.nk-quick-nav .notification-dropdown .dropdown-menu {
    right: -6px !important;
    width: min(360px, calc(100vw - 12px)) !important;
    max-width: min(360px, calc(100vw - 12px)) !important;
}

.nk-quick-nav .user-dropdown .dropdown-menu {
    right: -6px !important;
    width: min(300px, calc(100vw - 12px)) !important;
    max-width: min(300px, calc(100vw - 12px)) !important;
}

/* User card section — seamless with header */
.user-dropdown .user-card-wrap {
    background: #282828 !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    border-radius: 0 !important;
    padding: 1rem 1.25rem !important;
}
.user-dropdown .user-card .lead-text {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #EDEDED !important;
}
.user-dropdown .user-card .sub-text {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .75rem;
    letter-spacing: 0.03em;
    color: #B5B5B5 !important;
}

/* Dropdown dividers — ultra subtle */
.user-dropdown .dropdown-inner + .dropdown-inner {
    border-color: rgba(255,255,255,0.06) !important;
}

/* Link list items */
.user-dropdown .link-list a {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .875rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: #C9C9C9;
    transition: background 0.12s ease, color 0.12s ease;
}
.user-dropdown .link-list a:hover {
    color: #FFFFFF !important;
    background: rgba(255,255,255,0.06) !important;
}
.user-dropdown .link-list a .icon {
    color: #9A9A9A;
    transition: color 0.12s ease;
}
.user-dropdown .link-list a:hover .icon {
    color: #FFFFFF;
}

/* Notification dropdown */
.notification-dropdown .dropdown-head,
.notification-dropdown .dropdown-foot {
    background: #282828 !important;
    border-color: rgba(255,255,255,0.06) !important;
}
.notification-dropdown .dropdown-head .sub-title {
    color: #EDEDED !important;
}
.notification-dropdown .dropdown-head a,
.notification-dropdown .dropdown-foot a {
    color: #B5B5B5;
}
.notification-dropdown .dropdown-head a:hover,
.notification-dropdown .dropdown-foot a:hover {
    color: #FFFFFF !important;
}
/* Notification icon backgrounds — align with our #5B8060 green */
.dark-mode .bg-success-dim {
    background-color: rgba(91,128,96,0.15) !important;
}
.dark-mode .icon.bg-success-dim,
.dark-mode .bg-success-dim.icon {
    color: #5B8060 !important;
}

.notification-dropdown .dropdown-body {
    padding-bottom: 0.5rem !important;
    overflow: hidden !important;
}

.notification-dropdown .nk-notification {
    max-height: 408px !important;
    overflow-y: auto !important;
    padding: 0.5rem !important;
}

.notification-dropdown .nk-notification-item {
    padding: 0.75rem 0.875rem !important;
}

.notification-dropdown .nk-notification-content,
.cx-mobile-panel .nk-notification-content {
    min-width: 0;
}

.cx-mobile-panel .nk-notification {
    padding-top: 0.25rem;
}

.cx-mobile-panel .nk-notification-item {
    padding: 0.875rem 1rem !important;
}

@media (min-width: 576px) {
    .nk-quick-nav .notification-dropdown .dropdown-menu {
        right: -22px !important;
        width: 340px !important;
        max-width: calc(100vw - 24px) !important;
    }

    .nk-quick-nav .user-dropdown .dropdown-menu {
        right: -22px !important;
        width: 280px !important;
        max-width: calc(100vw - 24px) !important;
    }
}

@media (min-width: 992px) {
    .nk-quick-nav .notification-dropdown .dropdown-menu,
    .nk-quick-nav .user-dropdown .dropdown-menu {
        right: -24px !important;
    }
}

/* --- Global badge/tag overrides (UI Preferences Style Guide) --- */
.badge,
.badge.badge-light {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    color: #C9C9C9 !important;
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    padding: 0.3125rem 0.75rem !important;
    height: 24px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    border-radius: 8px !important;
    margin-bottom: 4px;
}
/* Admin dropzone styling */
.portal-admin .cx-dropzone .box {
    background-color: #111113 !important;
    border: 2px dashed #3C3C3C !important;
    border-radius: 8px !important;
    transition: border-color 0.15s;
}
.portal-admin .cx-dropzone .box:hover {
    border-color: #5B8060 !important;
}
.portal-admin .cx-dropzone .box h5 {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    color: #EDEDED !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
}
.portal-admin .cx-dropzone .box p {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    color: #7E7E7E !important;
    font-size: 0.75rem !important;
}
.portal-admin .cx-dropzone a.text-danger {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.75rem !important;
    color: #C0625D !important;
}

/* Force badge colours on links and in all contexts */
a.badge:not(.cx-status-badge),
a.badge.badge-light,
.portal-admin .badge.badge-light,
.portal-admin a.badge.badge-light,
.card-inner .badge.badge-light,
.card-inner a.badge.badge-light,
.accordion-inner .badge.badge-light,
.accordion-inner a.badge.badge-light {
    color: #C9C9C9 !important;
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Badge spacing inside green tag containers */
[style*="display: flex"] .badge.badge-light {
    margin: 0 0.5rem 0.5rem 0;
}
.badge:not(.cx-status-badge):hover,
.badge.badge-light:not(.cx-status-badge):hover {
    background: #3F3F3F !important;
    border-color: #494949 !important;
}
.badge.cx-status-badge {
    cursor: default !important;
}
/* Force badge colours in admin portal */
.portal-admin .badge.badge-light,
.dark-mode .badge.badge-light {
    color: #C9C9C9 !important;
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
}
/* Keep primary badge distinct with brand accent */
.badge.badge-primary {
    background: linear-gradient(135deg, rgba(215, 86, 150, 0.18), rgba(215, 86, 150, 0.12)) !important;
    border: 1px solid rgba(205, 85, 102, 0.43) !important;
    color: #C0625D !important;
}
/* Success/Approved badge: subtle green */
.badge.badge-success,
.badge.badge-approved {
    background: rgba(91, 128, 96, 0.12) !important;
    border: 1px solid rgba(91, 128, 96, 0.3) !important;
    color: #5B8060 !important;
}
/* Warning badge: subtle amber */
.badge.badge-warning {
    background: rgba(255, 190, 60, 0.12) !important;
    border: 1px solid rgba(255, 190, 60, 0.3) !important;
    color: #ffbe3c !important;
}
/* Danger badge: subtle red */
.badge.badge-danger {
    background: rgba(231, 76, 60, 0.12) !important;
    border: 1px solid rgba(231, 76, 60, 0.3) !important;
    color: #e74c3c !important;
}

/* Notification bell dot: remove white stroke, use our danger red */
.icon-status:after {
    border: none !important;
}
.icon-status-info:after {
    background: #DB5869 !important;
}

/* --- Card overrides (global) --- */

/* Card radius: 8px brand standard */
.card {
    border-radius: 8px !important;
}

/* Spacing between wizard progress bar and step content on desktop */
.portal-entertainer .cx-listing-wizard__shell .content.cx-skills {
    padding-top: 1.5rem;
}

/* Wizard section visual separation */
.cx-wizard-section {
    border-radius: 8px;
    padding: 1.25rem 1.5rem !important;
    margin-bottom: 0.25rem;
    background: #222222;
}

/* Listing card aspect ratio — 3:2 matching website widget ratio */
.listing-card {
    overflow: hidden;
}

/* Clickable listing cards */
a.listing-card {
    display: block;
    text-decoration: none !important;
    color: inherit !important;
    cursor: pointer;
    transition: border-color 0.2s, transform 0.2s;
}
a.listing-card:hover {
    border-color: #494949 !important;
    transform: translateY(-2px);
}
/* Listing card left border by status */
a.listing-card--draft {
    border-left: 3px solid #9A9A9A !important;
}
a.listing-card--waiting-approval {
    border-left: 3px solid #CA7D63 !important;
}
a.listing-card--waiting-for-entertainer {
    border-left: 3px solid #BF9E6B !important;
}
a.listing-card--approved {
    border-left: 3px solid #5B8060 !important;
}
a.listing-card--disabled {
    border-left: 3px solid #C0625D !important;
}
a.listing-card:hover .drodown .icon {
    color: #FFFFFF !important;
}
/* Listing card text colours */
a.listing-card .sub-text {
    color: #B5B5B5 !important;
}
a.listing-card .project-details p,
a.listing-card .project-details.text-muted p {
    color: #B5B5B5 !important;
}
a.listing-card .project-meta p,
a.listing-card .project-meta .text-muted {
    color: #B5B5B5 !important;
}
a.listing-card .drodown .icon {
    color: #B5B5B5 !important;
}
a.listing-card hr {
    border-color: #3C3C3C !important;
}

/* Card inner border-radius to match */
.card-inner {
    border-radius: 8px;
}

/* HR dividers inside cards: dark treatment */
.card hr,
.project hr {
    border-color: #3C3C3C !important;
    opacity: 1;
}

/* Project/listing card title: Figtree h6 spec */
.project-title .title {
    font-family: 'Figtree', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
}

/* Sub-text: Satoshi .75rem label style */
.sub-text {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .75rem !important;
    letter-spacing: normal;
    color: #B5B5B5 !important;
}

/* Project description text */
.project-details {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    font-size: .875rem;
    line-height: 1.6;
    letter-spacing: 0.03em;
    color: #B5B5B5 !important;
}
.project-details p {
    color: #B5B5B5 !important;
}

/* Project meta text */
.project-meta .text-muted,
.project-meta p {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    color: #7E7E7E !important;
}

/* Edit icon on listing cards — must override inherited link colour */
a.listing-card .project-head .drodown .icon {
    color: #9A9A9A !important;
    transition: color 0.2s;
}

/* Prevent pink flash on all card links during Turbo transitions */
.project a,
.project a:hover,
.project a:active,
.project a:focus {
    text-decoration: none;
}
.project-title a,
.project-title a:hover,
.project-title a:active,
.project-title a:focus {
    color: inherit !important;
}

/* Text-muted global override for dark mode */
.text-muted {
    color: #B5B5B5 !important;
}

/* Lead-text in dark mode */
.lead-text {
    color: #EDEDED !important;
}

/* --- Profile dropdown: full-width hover --- */
.user-dropdown .dropdown-inner {
    padding: 0 !important;
}
.user-dropdown .link-list {
    padding: 0.5rem 0;
}
.user-dropdown .link-list a {
    padding: 0.625rem 1.75rem !important;
    border-radius: 0 !important;
}
.user-dropdown .user-card-wrap {
    padding: 1rem 1.75rem !important;
}

/* --- Listing wizard containment --- */
.nk-contentx {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

/* --- App shell scroll containment ---
   Keep the header fixed and make the main content pane own vertical scrolling.
   This prevents the viewport scrollbar from appearing behind the fixed header. */
.nk-body {
    overflow: hidden;
}

.nk-main {
    min-height: 100vh;
}

.nk-wrap {
    height: 100vh;
    min-height: 100vh;
    overflow: hidden;
}
/* Auth page scroll overrides handled in auth.css */

.nk-header-fixed + .nk-content {
    height: calc(100vh - 65px);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

/* --- Restore dark scrollbars for actual scroll containers only --- */
.nk-header-fixed + .nk-content,
.cx-scrollbar,
.nk-contentx textarea,
[style*="overflow-y: auto"] {
    scrollbar-width: thin !important;
    scrollbar-color: #555 #1A1A1A !important;
}
.nk-header-fixed + .nk-content::-webkit-scrollbar,
.cx-scrollbar::-webkit-scrollbar,
.nk-contentx textarea::-webkit-scrollbar,
[style*="overflow-y: auto"]::-webkit-scrollbar {
    display: block !important;
    width: 10px !important;
    height: 10px !important;
}
.nk-header-fixed + .nk-content::-webkit-scrollbar-track,
.cx-scrollbar::-webkit-scrollbar-track,
.nk-contentx textarea::-webkit-scrollbar-track,
[style*="overflow-y: auto"]::-webkit-scrollbar-track {
    background: #1A1A1A !important;
}
.nk-header-fixed + .nk-content::-webkit-scrollbar-thumb,
.cx-scrollbar::-webkit-scrollbar-thumb,
.nk-contentx textarea::-webkit-scrollbar-thumb,
[style*="overflow-y: auto"]::-webkit-scrollbar-thumb {
    background: #555 !important;
    border-radius: 8px !important;
}

/* --- Top header bar + sidebar logo area --- */
.dark-mode .nk-header {
    background: #282828 !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
/* Messages side panels — entertainer standard card colour */
.dark-mode .nk-chat-aside,
.dark-mode .nk-chat-aside-head,
.dark-mode .nk-chat-aside-body,
.dark-mode .nk-chat-profile,
.dark-mode .nk-chat-profile .chat-profile,
.dark-mode .nk-chat-profile .chat-profile-group,
.dark-mode .nk-chat-profile .chat-profile-body {
    background: #252525 !important;
}

/* Messages chat text — force light text on dark bubbles */
.dark-mode .chat-msg {
    color: #EDEDED !important;
}
.dark-mode .nk-chat-panel .chat-bubble {
    color: #EDEDED !important;
}
.dark-mode .nk-chat-aside-body,
.dark-mode .nk-chat-aside-body .chat-from .name,
.dark-mode .nk-chat-aside-body .chat-context .text p {
    color: #EDEDED !important;
}

/* Standard widget/card background */
.dark-mode .card:not([style*="linear-gradient"]) {
    background: #252525 !important;
}
/* Admin widget/card background — darker */
body.portal-admin .dark-mode .card:not([style*="linear-gradient"]),
body.portal-admin.dark-mode .card:not([style*="linear-gradient"]) {
    background: #18181B !important;
}
.dark-mode .card {
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
}
.dark-mode .card.listing-card--draft {
    border-left: 3px solid #9A9A9A !important;
}
.dark-mode .card.listing-card--waiting-approval {
    border-left: 3px solid #CA7D63 !important;
}
.dark-mode .card.listing-card--waiting-for-entertainer {
    border-left: 3px solid #BF9E6B !important;
}
.dark-mode .card.listing-card--approved {
    border-left: 3px solid #5B8060 !important;
}
.dark-mode .card.listing-card--disabled {
    border-left: 3px solid #C0625D !important;
}

.dark-mode .nk-sidebar {
    background: #1A1A1A !important;
    border-right: 1px solid #3C3C3C !important;
    box-shadow: none !important;
}
.dark-mode .nk-sidebar .nk-sidebar-content,
.dark-mode .nk-sidebar .nk-sidebar-element,
.dark-mode .nk-sidebar .nk-sidebar-menu,
.dark-mode .nk-sidebar .simplebar-wrapper,
.dark-mode .nk-sidebar .simplebar-mask,
.dark-mode .nk-sidebar .simplebar-offset,
.dark-mode .nk-sidebar .simplebar-content-wrapper,
.dark-mode .nk-sidebar .simplebar-content,
.dark-mode .nk-sidebar .simplebar-track {
    background: #1A1A1A !important;
}
.dark-mode .nk-menu-item:not(.active):not(.current-page) .nk-menu-link {
    /* border-right-color: transparent !important; */
}
.nk-menu .nk-menu-item{
    padding: 2px 12px;
}
.dark-mode .nk-sidebar-element.nk-sidebar-head {
    background: #282828 !important;
    border-bottom: none !important;
    border-right: none !important;
    box-shadow: none !important;
    position: relative;
    z-index: 2;
    margin-right: -1px;
}
.dark-mode .nk-sidebar-element.nk-sidebar-head .nk-sidebar-brand {
    margin-left: -8px;
}

/* --- Listing wizard form overrides --- */

/* Four-tier text hierarchy:
   Tier 0: 1rem (16px) — Primary question labels (.form-label)
   Tier 1: .875rem (14px) — Important instruction text (confirmations, auto-applied warnings)
   Tier 2: .8125rem (13px) — Helper/description text (guidance under form fields)
   Tier 3: .75rem (12px) — Small labels (tags, sub-labels, section headings)
*/

/* Tier 2: Helper text under form fields */
.nk-contentx .form-control-wrap + p.text-muted,
.nk-contentx .form-control-wrap + .text-muted,
.nk-contentx .form-group p.text-muted,
.nk-contentx .cx-skills > .mt-5 .text-muted {
    font-size: .8125rem !important;
}
/* Helper/description text colour — slightly brighter than old muted */
.nk-contentx .text-muted {
    color: #B5B5B5 !important;
}

/* Tier 1: Important instructional text */
.nk-contentx .cx-skills > p,
.nk-contentx .cx-skills .alert-text p,
.nk-contentx [style*="f4bd0e"] > p {
    font-size: .875rem !important;
}

/* Form input and label text: bump from 13px to .875rem per style guide */
.nk-contentx .form-control {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .875rem !important;
    border-radius: 8px !important;
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    color: #9A9A9A !important;
}
.nk-contentx .form-control:focus {
    border-color: #494949 !important;
    box-shadow: none !important;
}
.nk-contentx .accordion-item {
    border-radius: 0 !important;
    transition: background 0.15s ease;
    overflow: hidden;
    border: none !important;
    background: transparent !important;
}
.nk-contentx .accordion-item.cx-sidebar-nav {
    border-radius: 0 !important;
}
.nk-contentx .accordion-item.cx-sidebar-nav:hover,
.nk-contentx .accordion-item.cx-sidebar-nav.cx-sidebar-active {
    border-radius: 8px !important;
}
.nk-contentx .accordion.accordion-transparent {
    background: transparent !important;
    background-color: transparent !important;
}
.nk-contentx .accordion-inner {
    overflow: hidden;
    border-bottom: none !important;
}
.nk-contentx .accordion-inner .row {
    overflow: hidden;
    margin-left: 0;
    margin-right: 0;
}
.nk-contentx .accordion-inner .text-muted {
    word-break: break-word;
    overflow-wrap: break-word;
}
.nk-contentx .cx-sidebar-card {
    background: #1A1A1A !important;
    border-radius: 8px;
    padding: 1.25rem !important;
}
.nk-contentx .accordion-item.cx-sidebar-confirmed {
    border-left: 3px solid #5B8060 !important;
    padding-left: 0.5rem;
}
.nk-contentx .accordion-item.cx-sidebar-active {
    border-left: 3px solid #DA5B57 !important;
    padding-left: 0.5rem;
}
.nk-contentx .accordion-item.cx-sidebar-nav {
    padding: 0.375rem 0.75rem;
    background: #252527 !important;
    border-radius: 8px !important;
    margin-bottom: 0.375rem;
}
.nk-contentx .accordion-item.cx-sidebar-nav .accordion-head {
    cursor: pointer;
}
.nk-contentx .accordion-item.cx-sidebar-nav:hover {
    background: #2A2A2C !important;
}
.nk-contentx .form-label {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: #C9C9C9 !important;
    cursor: default !important;
    letter-spacing: 0.03em !important;
}

/* --- Global typography: style guide alignment (entire dashboard) --- */

/* Headings (h2–h6): Figtree 600, 0.01em */
.nk-content h2,
.nk-content h3,
.nk-content h4,
.nk-content h5,
.nk-content h6,
.nk-contentx h2,
.nk-contentx h3,
.nk-contentx h4,
.nk-contentx h5,
.nk-contentx h6 {
    font-family: 'Figtree', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    color: #EDEDED !important;
}

/* Body/helper text: Satoshi, 0.03em */
.nk-content p,
.nk-content span,
.nk-contentx p,
.nk-contentx span {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
    color: #C9C9C9 !important;
}
.nk-content .text-muted,
.nk-contentx .text-muted {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
    color: #B5B5B5 !important;
}
/* White text on hover for interactive widget items */
.nk-contentx [style*="cursor: pointer"]:hover span,
.nk-contentx a:hover span {
    color: #fff !important;
}
/* Ensure button text stays white */
.nk-content .btn,
.nk-content .btn span,
.nk-contentx .btn,
.nk-contentx .btn span,
[style*="position: fixed"][style*="z-index"] .btn,
[style*="position: fixed"][style*="z-index"] .btn span,
.dark-mode .modal-dialog .btn,
.dark-mode .modal-dialog .btn span {
    color: #fff !important;
}
.dark-mode .modal-dialog .btn.cx-btn-white,
.dark-mode .modal-dialog .btn.cx-btn-white span {
    color: #000 !important;
    background-color: #fff !important;
}
/* Ensure badge text stays correct — exclude badge-light which has its own colour */
.nk-content .badge:not(.cx-status-badge):not(.badge-light),
.nk-contentx .badge:not(.cx-status-badge):not(.badge-light) {
    color: inherit !important;
}
/* Override text-white on checkbox labels — C9C9C9 default, white on hover/checked */
.nk-contentx .custom-control-label.text-white,
.nk-contentx .custom-control-label.text-white span {
    color: #C9C9C9 !important;
}
.nk-contentx .custom-control-pro:hover .custom-control-label.text-white,
.nk-contentx .custom-control-pro:hover .custom-control-label.text-white span,
.nk-contentx .custom-control-pro.checked .custom-control-label.text-white,
.nk-contentx .custom-control-pro.checked .custom-control-label.text-white span {
    color: #fff !important;
}

/* Overline/section labels: Satoshi, 0.06em */
.nk-content .overline-title,
.nk-contentx .overline-title {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    letter-spacing: 0.06em !important;
}

/* Buttons: Satoshi, 0.03em */
.nk-content .btn,
.nk-contentx .btn {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
}

/* Form inputs: Satoshi, 0.03em */
.nk-content input,
.nk-content textarea,
.nk-content select,
.nk-contentx input,
.nk-contentx textarea,
.nk-contentx select {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
}

/* ABN field — whole row clickable to open modal */
.cx-abn-field,
.cx-abn-field * {
    cursor: pointer !important;
}

/* --- ABN Modal: eye-level positioning + dark theme --- */
/* Position at top (eye level) — same as skills wizard card (top: 84px).
   Override DashLite min-height: calc(100% - 56px) which stretches
   the dialog to full height, causing the content to vertically centre. */
.modal-dialog.cx-modal-top {
    margin-top: 5.25rem !important;
    margin-bottom: auto !important;
    min-height: 0 !important;
    height: auto !important;
    align-items: flex-start !important;
}
/* Match widget card colour — lighter grey for a polished look */
.dark-mode .modal-dialog.cx-modal-top .modal-content {
    background: #18181B !important;
    border: none !important;
    border-radius: 8px !important;
    box-shadow: rgb(104, 104, 104) 0px 0px 6px -3px !important;
}
/* Header/footer dividers — subtle, matching card HR style */
.dark-mode .modal-dialog.cx-modal-top .modal-header {
    border-bottom: 1px solid #2e2e2e !important;
    padding: 1rem 1.5rem;
}
.dark-mode .modal-dialog.cx-modal-top .modal-title {
    font-family: 'Figtree', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    color: #EDEDED !important;
}
.dark-mode .modal-dialog.cx-modal-top .modal-body {
    padding: 1.5rem;
    align-content: flex-start !important;
    align-items: flex-start !important;
}
.dark-mode .modal-dialog.cx-modal-top .modal-footer {
    border-top: 1px solid #2e2e2e !important;
    padding: 1rem 1.5rem;
    background: transparent !important;
}
.cx-abn-modal-dialog {
    max-width: 720px !important;
}
.cx-abn-modal.fade .modal-dialog.cx-abn-modal-dialog {
    transform: translate(var(--cx-abn-desktop-shift, 0px), -10px);
}
.cx-abn-modal.show .modal-dialog.cx-abn-modal-dialog {
    transform: translateX(var(--cx-abn-desktop-shift, 0px)) !important;
}
.dark-mode .cx-abn-modal-dialog .modal-content {
    width: 100%;
    max-height: calc(100vh - 7.5rem);
}
.dark-mode .cx-abn-modal-dialog .modal-body {
    overflow-y: auto;
}
.cx-abn-confirm-button {
    min-width: 160px;
    justify-content: center;
}
@media (max-width: 991.98px) {
    .cx-abn-modal.fade .modal-dialog.cx-abn-modal-dialog,
    .cx-abn-modal.show .modal-dialog.cx-abn-modal-dialog {
        transform: none !important;
    }
}
.dark-mode .modal-dialog.cx-modal-top .close {
    color: #9A9A9A !important;
    opacity: 1 !important;
}
.dark-mode .modal-dialog.cx-modal-top .close:hover {
    color: #FFFFFF !important;
}

/* Image editor slide-up + fade animation */
#image-edit .modal-dialog {
    transform: translateY(40px);
    opacity: 0;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
}
#image-edit.show .modal-dialog {
    transform: translateY(0);
    opacity: 1;
}
#image-edit .modal-body img {
    opacity: 0;
    transition: opacity 0.4s ease 0.15s;
}
#image-edit.show .modal-body img {
    opacity: 1;
}

/* Google Places autocomplete dropdown — dark theme */
.pac-container {
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4) !important;
    z-index: 99999 !important;
    margin-top: 4px !important;
    max-height: 480px !important;
    overflow-y: auto !important;
    scrollbar-width: thin;
    scrollbar-color: #555 #2a2a2a;
}
.pac-container::-webkit-scrollbar {
    width: 6px;
}
.pac-container::-webkit-scrollbar-track {
    background: #2a2a2a;
    border-radius: 3px;
}
.pac-container::-webkit-scrollbar-thumb {
    background: #555;
    border-radius: 3px;
}
.pac-container .pac-item {
    background: #282828 !important;
    border-top: 1px solid #3C3C3C !important;
    color: #C9C9C9 !important;
    min-height: 42px !important;
    padding: 0.5rem 0.75rem !important;
    box-sizing: border-box !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    display: flex !important;
    align-items: center !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}
.pac-container .pac-item:first-child {
    border-top: none !important;
}
.pac-container .pac-item:hover,
.pac-container .pac-item-selected {
    background: #353535 !important;
}
.pac-container .pac-item-query {
    color: #fff !important;
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
}
.pac-container .pac-item > span,
.pac-container .pac-item > div {
    display: flex !important;
    align-items: center !important;
    min-height: 42px !important;
}
.pac-container .pac-item span {
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
}
.pac-icon {
    display: none !important;
}
.pac-matched {
    color: #D17988 !important;
}
.hdpi .pac-icon {
    display: none !important;
}

/* Custom checkbox for location modal — matches wizard custom-control-pro style */
.cx-checkbox {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
    border: 1px solid #464649;
    border-radius: 4px;
    background: #3F3F3F;
    cursor: pointer;
    position: relative;
}
.cx-checkbox:checked {
    background: #000;
    border-color: #5B8060;
}
.cx-checkbox:checked::after {
    content: '\e9be';
    font-family: 'Nioicon';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-size: 12px;
    line-height: 1;
}

/* Category browser rows */
.cx-cat-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 0.5rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s ease;
}
.cx-cat-row:hover {
    background: #353535;
}
[style*="position: fixed"] .cx-cat-row:hover span,
[style*="position: fixed"] .cx-cat-row:hover div,
.nk-contentx .cx-cat-row:hover span,
.nk-contentx .cx-cat-row:hover div {
    color: #fff !important;
}
[style*="position: fixed"] .cx-cat-row--selected span,
.nk-contentx .cx-cat-row--selected span {
    color: #fff !important;
}
.cx-cat-row--selected {
    background: rgba(255, 255, 255, 0.05);
}
.cx-cat-row--selected:hover {
    background: rgba(255, 255, 255, 0.08);
}

/* Category browser letter sidebar */
.cx-letter-link {
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 1px 0;
    cursor: pointer;
    text-decoration: none;
    line-height: 1.4;
    transition: color 0.15s ease;
    color: #9A9A9A;
}
.cx-letter-link:hover {
    color: #fff;
}
.cx-letter-link--disabled {
    color: #444 !important;
    pointer-events: none;
    cursor: default;
}

/* Hide scrollbar on letter sidebar but keep it scrollable */
.cx-scrollbar-hidden {
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow-x: hidden;
}
.cx-scrollbar-hidden::-webkit-scrollbar {
    display: none;
}

/* Info popover tooltip icon — consistent sizing and alignment */
.cx-info-popover {
    font-size: 1rem !important;
    color: #9A9A9A;
    cursor: help;
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
    top: -0.0625rem;
}

/* Entity card styling — official government-like appearance (high specificity to beat .nk-contentx span) */
.nk-contentx .cx-entity-label,
.nk-contentx span.cx-entity-label {
    font-size: 0.75rem !important;
    color: #7E7E7E !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600 !important;
}
.nk-contentx .cx-entity-status,
.nk-contentx span.cx-entity-status {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem !important;
    font-weight: 500 !important;
}
.nk-contentx .cx-entity-status--active,
.nk-contentx .cx-entity-status--active span,
.nk-contentx .cx-entity-status--active em {
    color: #1ee0ac !important;
}
.nk-contentx .cx-entity-status--locked,
.nk-contentx .cx-entity-status--locked span,
.nk-contentx .cx-entity-status--locked em {
    color: #C9A84C !important;
}
.nk-contentx .cx-entity-name,
.nk-contentx span.cx-entity-name {
    color: #EDEDED !important;
}
.nk-contentx .cx-entity-sub,
.nk-contentx span.cx-entity-sub {
    color: #B5B5B5 !important;
}

/* Delete/trash icon links — red colour override (high specificity to beat modal text rules) */
a.cx-delete-link,
em.cx-delete-link,
[style*="position: fixed"] .cx-delete-link,
.cx-delete-link {
    color: #C0625D !important;
}
a.cx-delete-link:hover,
em.cx-delete-link:hover,
[style*="position: fixed"] .cx-delete-link:hover,
.cx-delete-link:hover {
    color: #ff6b7a !important;
}

/* Category browser filter tabs */
.cx-filter-tab {
    background: transparent;
    border: 1px solid #3C3C3C;
    border-radius: 8px;
    color: #9A9A9A;
    font-size: 0.8125rem;
    padding: 0.25rem 0.875rem;
    cursor: pointer;
    transition: all 0.15s ease;
}
.cx-filter-tab:hover {
    border-color: #fff;
    color: #fff;
}
.cx-filter-tab--active {
    background: #fff;
    border-color: #fff;
    color: #1A1A1A;
}
.cx-filter-tab--active:hover {
    background: #fff;
    border-color: #fff;
    color: #1A1A1A;
}

/* Hide number input spinner arrows */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
/* Modal form inputs — match skills wizard input bg (#282828) */
.dark-mode .modal-dialog.cx-modal-top .form-control {
    background: #242427 !important;
    border: 1px solid #464649 !important;
    border-radius: 8px !important;
    color: #F2F2F2 !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .875rem !important;
}
.dark-mode .modal-dialog.cx-modal-top textarea.form-control {
    resize: vertical !important;
}
.dark-mode .modal-dialog.cx-modal-top textarea.form-control::-webkit-resizer {
    background: linear-gradient(135deg, transparent 40%, #5A5A5A 40%, #5A5A5A 45%, transparent 45%, transparent 60%, #5A5A5A 60%, #5A5A5A 65%, transparent 65%, transparent 80%, #5A5A5A 80%, #5A5A5A 85%, transparent 85%) !important;
}
.dark-mode .modal-dialog.cx-modal-top .form-control:focus {
    border-color: #494949 !important;
    box-shadow: none !important;
}
.dark-mode .modal-dialog.cx-modal-top .form-control::placeholder {
    color: #7E7E7E !important;
}
/* Modal helper/example boxes */
.dark-mode .modal-dialog.cx-modal-top .alert-pro.alert-warning {
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    border-left: 3px solid #F4BD0E !important;
}
.dark-mode .modal-dialog.cx-modal-top .form-label {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: #C9C9C9 !important;
}
/* Modal form-group spacing — tighter than Bootstrap default */
.dark-mode .modal-dialog.cx-modal-top .form-group {
    margin-bottom: 0.25rem !important;
}
.dark-mode .modal-dialog.cx-modal-top .form-group p.text-muted {
    margin-bottom: 0.25rem !important;
}
/* Modal helper text under form fields — Tier 2 (.8125rem) */
.dark-mode .modal-dialog.cx-modal-top .form-control-wrap + p.text-muted,
.dark-mode .modal-dialog.cx-modal-top .form-group p.text-muted {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .8125rem !important;
    color: #B5B5B5 !important;
}
/* Modal general text-muted — Tier 1 (.875rem) for standalone instructions */
.dark-mode .modal-dialog.cx-modal-top .text-muted {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .875rem !important;
    color: #B5B5B5 !important;
}
/* Modal search icon */
.dark-mode .modal-dialog.cx-modal-top .form-icon .icon {
    color: #9A9A9A !important;
}
/* Modal checkbox rows — override DashLite custom-control-pro bg */
.dark-mode .modal-dialog.cx-modal-top .custom-control-pro {
    background: transparent !important;
    border: none !important;
}
.dark-mode .modal-dialog.cx-modal-top .custom-control-pro .custom-control-label {
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
}
.dark-mode .modal-dialog.cx-modal-top .custom-control-pro:hover .custom-control-label {
    background: #353535 !important;
}
.dark-mode .modal-dialog.cx-modal-top .custom-control-pro.checked .custom-control-label {
    border-color: #5B8060 !important;
}
.dark-mode .modal-dialog.cx-modal-top .custom-control-pro .custom-control-label::after {
    content: "\e9be" !important;
}
.dark-mode .modal-dialog.cx-modal-top .custom-control-pro .custom-control-input:checked ~ .custom-control-label::after {
    opacity: 1 !important;
    color: #fff !important;
}
.dark-mode .modal-dialog.cx-modal-top .custom-control-label {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .8125rem !important;
    line-height: 1.25rem !important;
    color: #C9C9C9 !important;
}
/* Modal button — keep pill shape, use default sizing */
.dark-mode .modal-dialog.cx-modal-top .btn-dark {
    border-radius: 100px !important;
}
/* Modal backdrop — heavier for dark theme */
.dark-mode .modal-backdrop {
    opacity: 0.85 !important;
    background: #000 !important;
}

.dark-mode .cx-abn-modal .cx-abn-company-search,
.dark-mode .cx-abn-modal .cx-abn-search-button {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
}

/* --- Tooltip overrides (dark theme) --- */
.tooltip-inner {
    background: #282828 !important;
    color: #C9C9C9 !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .8125rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    padding: 0.5rem 0.75rem !important;
    max-width: 280px !important;
}
.bs-tooltip-top .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
    border-top-color: #282828 !important;
}
.bs-tooltip-bottom .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
    border-bottom-color: #282828 !important;
}

/* --- Popover overrides (dark theme, interactive info icons) --- */
.popover {
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    max-width: 280px !important;
    z-index: 99999 !important;
}
.popover-body {
    color: #C9C9C9 !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .8125rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    padding: 0.5rem 0.75rem !important;
}
.popover-header {
    display: none !important;
}
.bs-popover-top > .popover-arrow::before {
    border-top-color: #3C3C3C !important;
}
.bs-popover-top > .popover-arrow::after {
    border-top-color: #282828 !important;
}
.bs-popover-bottom > .popover-arrow::before {
    border-bottom-color: #3C3C3C !important;
}
.bs-popover-bottom > .popover-arrow::after {
    border-bottom-color: #282828 !important;
}
.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before {
    border-top-color: #3C3C3C !important;
}
.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
    border-top-color: #282828 !important;
}
.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before {
    border-bottom-color: #3C3C3C !important;
}
.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
    border-bottom-color: #282828 !important;
}

/* --- Global typography for custom modals (position: fixed overlays) --- */
/* These modals sit outside .nk-contentx so need explicit typography rules */

/* Category browser, location modal, confirm-delete, media-limit popups */
.cx-cat-row,
.cx-filter-tab {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
}

/* Shared class for custom modal containers — apply to all fixed-position modals */
[style*="position: fixed"][style*="z-index"] h2,
[style*="position: fixed"][style*="z-index"] h3,
[style*="position: fixed"][style*="z-index"] h4,
[style*="position: fixed"][style*="z-index"] h5,
[style*="position: fixed"][style*="z-index"] h6 {
    font-family: 'Figtree', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    color: #EDEDED !important;
}

[style*="position: fixed"][style*="z-index"] p,
[style*="position: fixed"][style*="z-index"] span,
[style*="position: fixed"][style*="z-index"] strong,
[style*="position: fixed"][style*="z-index"] label,
[style*="position: fixed"][style*="z-index"] div,
[style*="position: fixed"][style*="z-index"] a:not(.cx-delete-link) {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
    color: #C9C9C9 !important;
}

[style*="position: fixed"][style*="z-index"] button,
[style*="position: fixed"][style*="z-index"] .btn {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
}

[style*="position: fixed"][style*="z-index"] input:not(.cx-checkbox),
[style*="position: fixed"][style*="z-index"] textarea,
[style*="position: fixed"][style*="z-index"] select {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
    letter-spacing: 0.03em;
    background: #242427 !important;
    border-color: #464649 !important;
}

/* Add letter-spacing to existing Bootstrap modal rules */
.dark-mode .modal-dialog.cx-modal-top .modal-title {
    letter-spacing: 0.01em !important;
}
.dark-mode .modal-dialog.cx-modal-top .form-label,
.dark-mode .modal-dialog.cx-modal-top label {
    letter-spacing: 0.03em !important;
    cursor: default !important;
    text-decoration: none !important;
    color: #EDEDED !important;
}
.dark-mode .modal-dialog.cx-modal-top .form-control {
    letter-spacing: 0.03em !important;
}
.dark-mode .modal-dialog.cx-modal-top p,
.dark-mode .modal-dialog.cx-modal-top span,
.dark-mode .modal-dialog.cx-modal-top strong,
.dark-mode .modal-dialog.cx-modal-top label {
    letter-spacing: 0.03em;
    color: #C9C9C9 !important;
}
.dark-mode .modal-dialog.cx-modal-top .btn {
    letter-spacing: 0.03em;
}

/* Image editor toolbar labels */
#image-edit span[style*="uppercase"] {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
}

/* --- Listing status badges (NEW PALETTE 2026-03-18) --- */
.cx-status-badge {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    border-radius: 8px !important;
    padding: 0.25rem 0.625rem !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
    line-height: 1.4 !important;
}
.cx-status-badge .icon {
    font-size: 0.8rem;
}
.cx-status-draft {
    background: rgba(154, 154, 154, 0.15) !important;
    border-left: 3px solid #9A9A9A !important;
}
.cx-status-awaiting {
    background: rgba(202, 125, 99, 0.15) !important;
    border-left: 3px solid #CA7D63 !important;
}
.cx-status-info-required {
    background: rgba(191, 158, 107, 0.15) !important;
    border-left: 3px solid #BF9E6B !important;
}
.cx-status-approved {
    background: rgba(91, 128, 96, 0.15) !important;
    border-left: 3px solid #5B8060 !important;
}
.cx-status-suspended {
    background: rgba(192, 98, 93, 0.15) !important;
    border-left: 3px solid #C0625D !important;
}

/* --- Option grid — show all options in columns, flowing top-to-bottom --- */
.cx-option-grid {
    display: grid;
    grid-auto-flow: column;
    gap: 0.5rem;
}
.cx-option-grid .custom-control-pro {
    margin-bottom: 0 !important;
}
.custom-control-pro,
.custom-control-pro.custom-control-sm,
.custom-control-pro.custom-control-sm .custom-control-label {
    border-radius: 8px !important;
}

/* --- Wizard checkbox: thin white tick on checked state (ni-check matches arrow weight) --- */
.nk-contentx .custom-control-pro .custom-control-label::after {
    content: "\e9be" !important;
}
.nk-contentx .custom-control-pro .custom-control-input:checked ~ .custom-control-label::after {
    opacity: 1 !important;
    color: #fff !important;
}
.nk-contentx .custom-control-pro.checked .custom-control-label {
    border-color: #5B8060 !important;
}

/* Override DashLite dark-mode pink checkbox borders globally */
.dark-mode .custom-control-pro.checked .custom-control-label {
    border-color: #5B8060 !important;
}

/* Override pink checkbox square (::before) to green — DashLite sets #DA5A6B */
.custom-control-pro .custom-control-input:checked ~ .custom-control-label::before,
.dark-mode .custom-control-pro .custom-control-input:checked ~ .custom-control-label::before,
.nk-contentx .custom-control-pro .custom-control-input:checked ~ .custom-control-label::before {
    border-color: #5B8060 !important;
    background-color: #000 !important;
}

/* --- FINAL OVERRIDES (must be at end of file to win cascade) --- */

/* Page subtitle overline */
.nk-block-des p,
.nk-block-desc p {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: #7E7E7E !important;
}

/* Status badges — text is always #EDEDED for readability */
.cx-status-badge,
.cx-status-badge .icon {
    color: #EDEDED !important;
}

/* --- Admin Portal — scoped overrides --- */

/* Admin page background — full black */
.portal-admin.dark-mode,
.portal-admin.dark-mode.bg-lighter {
    background-color: #000000 !important;
}
.portal-admin .dark-mode .bg-lighter,
.portal-admin .nk-content {
    background-color: #000000 !important;
}

/* Admin sidebar — match black bg */
.portal-admin .nk-sidebar {
    background: #000000 !important;
}
.portal-admin .nk-sidebar .nk-sidebar-content,
.portal-admin .nk-sidebar .nk-sidebar-element,
.portal-admin .nk-sidebar .nk-sidebar-menu,
.portal-admin .nk-sidebar .simplebar-wrapper,
.portal-admin .nk-sidebar .simplebar-mask,
.portal-admin .nk-sidebar .simplebar-offset,
.portal-admin .nk-sidebar .simplebar-content-wrapper,
.portal-admin .nk-sidebar .simplebar-content,
.portal-admin .nk-sidebar .simplebar-track {
    background: #000000 !important;
}

/* Admin header + sidebar head — keep original #282828 */
.portal-admin .nk-header {
    background: #282828 !important;
}
.portal-admin .nk-sidebar-element.nk-sidebar-head {
    background: #282828 !important;
}

/* Admin cards — slightly lifted off black */
.portal-admin .card {
    background: #18181B !important;
}

/* Admin white button */
/* Admin button — white bg, black text */
.cx-admin-btn,
.cx-admin-btn:link,
.cx-admin-btn:visited,
.cx-admin-btn:focus,
.cx-admin-btn span,
.cx-admin-btn em,
a.cx-admin-btn,
a.cx-admin-btn span {
    background-color: #fff !important;
    color: #000 !important;
    border: none !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
}
.cx-admin-btn .icon,
a.cx-admin-btn .icon {
    color: #000 !important;
    margin-right: 0.5rem;
    background: transparent !important;
}
.cx-admin-btn:hover,
.cx-admin-btn:hover span,
.cx-admin-btn:hover em,
a.cx-admin-btn:hover {
    background-color: #E0E0E0 !important;
    color: #000 !important;
}

/* Admin sidebar hover */
.portal-admin .nk-menu-link:hover,
.portal-admin .active > .nk-menu-link,
.portal-admin .current-page > .nk-menu-link {
    background: #161617 !important;
}

/* Admin table row hover */
.portal-admin .nk-tb-list .nk-tb-item:not(.nk-tb-head):hover {
    background: #161617 !important;
}

/* --- Admin Data Table Overrides --- */

/* Table card — radius + overflow for rounded corners */
.dark-mode .card-bordered.card-stretch {
    border-radius: 8px !important;
    overflow: hidden;
}

/* Table header row — distinct from content rows */
.nk-tb-head .nk-tb-col,
.nk-tb-head .sub-text {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: #B5B5B5 !important;
}
.nk-tb-head {
    background: rgba(255, 255, 255, 0.03) !important;
    border-bottom: 1px solid #3C3C3C !important;
}
.nk-tb-head .nk-tb-col[style*="cursor: pointer"]:hover .sub-text {
    color: #EDEDED !important;
}

/* Row content text — exclude badges */
.nk-tb-item:not(.nk-tb-head) .nk-tb-col:not(.nk-tb-col-tools),
.nk-tb-item:not(.nk-tb-head) .nk-tb-col:not(.nk-tb-col-tools) span:not(.cx-status-badge):not(.badge),
.nk-tb-item:not(.nk-tb-head) .nk-tb-col:not(.nk-tb-col-tools) a:not(.cx-status-badge):not(.badge) {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    letter-spacing: 0.03em !important;
    line-height: 1.5rem !important;
    color: #fff !important;
}
/* SweetAlert delete confirmation popup */
/* Select2 dropdown inside fixed overlays — must be above overlay z-index */
.select2-container--open .select2-dropdown {
    z-index: 999999 !important;
}

/* Bootstrap modal position — above center */
.modal {
    padding-top: 10vh !important;
}
.modal .modal-dialog {
    margin-top: 0 !important;
}
.portal-admin .modal-content {
    background: #18181B !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
}

/* Action icons — default grey, hover colours controlled inline */
.nk-tb-col-tools a {
    color: #7E7E7E !important;
    transition: color 0.15s;
}
.nk-tb-col-tools a.delete-confirm:hover,
.nk-tb-col-tools a.delete-confirm:hover .icon {
    color: #C0625D !important;
}

/* Clickable rows */
.nk-tb-list .nk-tb-item:not(.nk-tb-head) {
    cursor: pointer;
    transition: background 0.15s ease;
}
.nk-tb-list .nk-tb-item .nk-tb-col {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    white-space: nowrap !important;
}
.nk-tb-list .nk-tb-item:not(.nk-tb-head):hover {
    background: rgba(255, 255, 255, 0.05) !important;
}

/* Active/selected row */
.nk-tb-list .nk-tb-item:not(.nk-tb-head):active {
    background: rgba(255, 255, 255, 0.08) !important;
}

/* Toolbar area inside card */
.dark-mode .card-inner.card-tools-toggle {
    border-bottom: 1px solid #3C3C3C !important;
}
.portal-admin .card-inner.card-tools-toggle {
    background: #242427 !important;
}

/* Search bar in table toolbar */
.card-tools-toggle .form-control,
.card-search .form-control {
    background: #242427 !important;
    border: 1px solid #464649 !important;
    border-radius: 8px !important;
    color: #fff !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    letter-spacing: 0.03em !important;
    font-size: 0.8125rem !important;
}
.card-tools-toggle .form-control:focus {
    border-color: #5B8060 !important;
}

/* Table toolbar icons */
.card-tools .btn-icon .icon {
    color: #7E7E7E !important;
}
.card-tools .btn-icon:hover .icon {
    color: #EDEDED !important;
}

/* Per-page and sort dropdown styling */
.dropdown-menu-xs .link-check a {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.8125rem !important;
    letter-spacing: 0.03em !important;
}

/* Page subtitle under title */
.nk-block-desc p,
.nk-block-desc .text-soft {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.8125rem !important;
    color: #B5B5B5 !important;
    letter-spacing: 0.03em !important;
}

/* Filter badges */
.filters .badge {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.03em !important;
    background: #282828 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    color: #C9C9C9 !important;
}

/* --- Admin form page overrides --- */

/* Admin form cards — consistent radius + border */
.portal-admin .card.card-bordered.card-preview {
    background: #18181B !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    overflow: hidden;
}

/* Admin form inputs — darker than card bg */
.portal-admin .form-control,
.portal-admin select.form-control,
.portal-admin select.form-select,
.portal-admin textarea.form-control {
    background: #111113 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    color: #fff !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 14px !important;
    letter-spacing: 0.03em !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
}
.portal-admin .form-control::placeholder {
    font-size: 14px !important;
    color: #7E7E7E !important;
}
.portal-admin .form-control:focus,
.portal-admin select.form-control:focus,
.portal-admin textarea.form-control:focus {
    border-color: #5B8060 !important;
}

/* Admin form labels */
.portal-admin .form-label {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.8125rem !important;
    color: #C9C9C9 !important;
    letter-spacing: 0.03em !important;
    cursor: default !important;
}
/* Required asterisks — red */
.portal-admin .form-label .text-danger {
    color: #C0625D !important;
}

/* Admin overline section titles */
.portal-admin .overline-title {
    color: #7E7E7E !important;
}

/* Admin helper text under form fields */
.portal-admin .form-control-wrap .text-muted,
.portal-admin .form-control-wrap p {
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.75rem !important;
    color: #7E7E7E !important;
    letter-spacing: 0.03em !important;
}

/* Admin dropdown menu hover — pink tint */
.portal-admin .dropdown-menu a:hover,
.portal-admin .link-check a:hover,
.portal-admin .link-list-opt a:hover {
    background: rgba(219, 82, 151, 0.15) !important;
    color: #EDEDED !important;
}

/* Admin save/submit button — white like Create New */
.portal-admin .btn-primary,
.portal-admin .btn-primary:hover,
.portal-admin .btn-primary:focus,
.portal-admin .btn-light,
.portal-admin .btn-light:hover,
.portal-admin .btn-light:focus {
    background-color: #fff !important;
    color: #000 !important;
    border: none !important;
    border-radius: 100px !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
}
/* Toggle switches — green when on, neutral grey when off (all pages) */
.dark-mode .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
    background-color: #5B8060 !important;
    border-color: #5B8060 !important;
}
.dark-mode .custom-switch .custom-control-label::before {
    background-color: #3C3C3C !important;
    border-color: #3C3C3C !important;
}
/* Toggle knob — white when on, light grey when off, no pink border */
.dark-mode .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
    background-color: #fff !important;
    border-color: #fff !important;
}
.dark-mode .custom-switch .custom-control-label::after {
    background-color: #999 !important;
    border-color: #999 !important;
}
/* Toggle focus/checked — remove pink border and purple glow */
.dark-mode .custom-switch .custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: none !important;
    border-color: #3C3C3C !important;
}
.dark-mode .custom-switch .custom-control-input:focus:checked ~ .custom-control-label::before {
    box-shadow: none !important;
    border-color: #5B8060 !important;
}
.dark-mode .custom-switch .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #3C3C3C !important;
}

.portal-admin .btn-primary:hover,
.portal-admin .btn-light:hover {
    background-color: #E0E0E0 !important;
}
.portal-admin .btn-light span,
.portal-admin .btn-light em,
.portal-admin .btn-light .icon {
    color: #000 !important;
}

/* Admin back link */
.portal-admin .back-to {
    color: #7E7E7E !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.8125rem !important;
    letter-spacing: 0.03em !important;
}
.portal-admin .back-to:hover {
    color: #EDEDED !important;
}

/* --- Select2 dark mode styling --- */

/* Select2 container */
.portal-admin .select2-container--default .select2-selection--single {
    background: #111113 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    height: 42px !important;
    display: flex !important;
    align-items: center !important;
}
.portal-admin .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #fff !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.875rem !important;
    letter-spacing: 0.03em !important;
    line-height: 1 !important;
    padding-left: 0.75rem !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.portal-admin .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 42px !important;
    display: flex !important;
    align-items: center !important;
    right: 0.5rem !important;
}
.portal-admin .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #7E7E7E transparent transparent transparent !important;
}

/* Select2 dropdown panel */
.select2-container--default .select2-dropdown {
    background: #18181B !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
}

/* Select2 search box inside dropdown */
.select2-container--default .select2-search--dropdown .select2-search__field {
    background: #111113 !important;
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    color: #fff !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.8125rem !important;
    letter-spacing: 0.03em !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: #5B8060 !important;
}

/* Select2 options */
.select2-container--default .select2-results__option {
    color: #C9C9C9 !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.875rem !important;
    letter-spacing: 0.03em !important;
    padding: 0.5rem 0.75rem !important;
}

/* Select2 hover — pink tint (dark-mode prefix beats dashboard.css line 43994) */
.select2-dropdown .select2-results__option--highlighted,
.select2-dropdown .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option[aria-selected],
.dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: rgba(219, 82, 151, 0.2) !important;
    color: #fff !important;
}

/* Select2 selected option (dark-mode prefix beats dashboard.css line 43994) */
.select2-container--default .select2-results__option--selected,
.dark-mode .select2-container--default .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted) {
    background: rgba(91, 128, 96, 0.15) !important;
    color: #EDEDED !important;
}

/* Select2 focus border */
.portal-admin .select2-container--default.select2-container--focus .select2-selection--single,
.portal-admin .select2-container--default.select2-container--open .select2-selection--single {
    border-color: #5B8060 !important;
}

/* --- Summernote rich text editor dark mode --- */
.portal-admin .note-editor.note-frame {
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
    overflow: hidden;
}
.portal-admin .note-editor .note-toolbar {
    background: #18181B !important;
    border-bottom: 1px solid #3C3C3C !important;
}
.portal-admin .note-editor .note-toolbar .note-btn:not(.note-color-btn) {
    background: transparent !important;
    border: 1px solid #3C3C3C !important;
    color: #B5B5B5 !important;
}
.portal-admin .note-editor .note-toolbar .note-btn:not(.note-color-btn):hover,
.portal-admin .note-editor .note-toolbar .note-btn:not(.note-color-btn).active {
    background: rgba(219, 82, 151, 0.15) !important;
    color: #EDEDED !important;
}
/* Summernote editor — defaults on container, colour picker allowed on children */
.portal-admin .note-editor .note-editing-area .note-editable,
.portal-admin .note-editable,
.note-editor .note-editing-area .note-editable {
    background: #111113 !important;
    color: #fff !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 16px !important;
    letter-spacing: 0.03em !important;
    line-height: 1.6 !important;
    min-height: 200px;
}
/* Child elements — white default but NO !important so inline colour picker styles win */
.portal-admin .note-editable p,
.portal-admin .note-editable div,
.portal-admin .note-editable li,
.portal-admin .note-editable a,
.portal-admin .note-editable ul,
.portal-admin .note-editable ol {
    color: inherit !important;
    background: transparent !important;
    font-size: inherit !important;
}
/* Spans get NO colour override at all — colour picker wraps selections in spans */
.portal-admin .note-editable span {
    background: transparent !important;
}
/* Colour picker swatches — let inline background-color show through */
.note-color-palette .note-color-btn,
.portal-admin .note-color-palette .note-color-btn {
    border: 1px solid rgba(255,255,255,0.15) !important;
    width: 20px !important;
    height: 20px !important;
    padding: 0 !important;
    margin: 1px !important;
    border-radius: 2px !important;
    display: inline-block !important;
}
.note-color-palette .note-color-btn:hover {
    border-color: #fff !important;
    transform: scale(1.2);
}
/* Colour picker dropdown panel — positioning + dark bg */
.note-popover .popover-content,
.note-color .dropdown-menu,
.note-color .note-color-all,
.portal-admin .note-btn-group .dropdown-menu {
    background: #18181B !important;
    border: 1px solid #3C3C3C !important;
}
/* Fix colour picker dropdown positioning — prevent clipping */
.portal-admin .note-editor .note-toolbar .note-btn-group {
    position: static !important;
}
.portal-admin .note-editor .note-toolbar {
    position: relative !important;
    overflow: visible !important;
    z-index: 10;
}
.portal-admin .note-editor .note-toolbar .dropdown-menu {
    z-index: 99999 !important;
    margin-top: 2px !important;
}
/* Prevent card and editor overflow from clipping dropdowns */
.portal-admin .card.card-bordered.card-preview {
    overflow: visible !important;
}
.portal-admin .note-editor.note-frame {
    overflow: visible !important;
}
.portal-admin .preview-block {
    overflow: visible !important;
}
.portal-admin .form-control-wrap {
    overflow: visible !important;
}
/* Colour picker input field for hex/custom colour */
.note-color .note-input-color {
    background: #111113 !important;
    border: 1px solid #3C3C3C !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 0.25rem 0.5rem !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.75rem !important;
}
.note-color .note-color-select {
    border: 1px solid #3C3C3C !important;
    border-radius: 8px !important;
}
/* Colour picker labels */
.note-color .note-color-palette .note-palette-title,
.portal-admin .note-palette-title {
    color: #B5B5B5 !important;
    font-family: 'Satoshi Variable', 'Satoshi', sans-serif !important;
    font-size: 0.75rem !important;
}
.portal-admin .note-editor .note-statusbar {
    background: #18181B !important;
    border-top: 1px solid #3C3C3C !important;
}
.portal-admin .note-editor .note-statusbar .note-resizebar .note-icon-bar {
    border-top-color: #7E7E7E !important;
}

/* Select dropdowns — show custom chevron arrow */
.dark-mode select.form-control {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237E7E7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.75rem center !important;
    background-size: 14px !important;
    padding-right: 2.25rem !important;
}

/* Admin Create New button — white bg, black text (MUST be last to win cascade) */
.dark-mode .nk-block-tools .btn.cx-rounded[style*="background-color"],
.dark-mode .nk-block-tools a.btn.cx-rounded[style*="background-color"] {
    color: #000 !important;
}
.dark-mode .nk-block-tools .btn.cx-rounded[style*="background-color"] span,
.dark-mode .nk-block-tools .btn.cx-rounded[style*="background-color"] em,
.dark-mode .nk-block-tools .btn.cx-rounded[style*="background-color"] .icon {
    color: #000 !important;
}

.cx-mobile-panel {
    display: none;
}
.cx-wizard-sticky-nav {
    display: none;
}
.cx-listings-head-mobile {
    display: none;
}
.cx-booker-search-mobile-item {
    display: none;
}

/* ===================================== */
/* Entertainer responsive foundations    */
/* ===================================== */
@media (max-width: 1199.98px) {
    .portal-entertainer .nk-sidebar {
        width: min(86vw, 320px) !important;
    }
    .portal-entertainer .nk-header-wrap {
        gap: 0.75rem;
        min-height: 64px;
    }
    .portal-entertainer .nk-header-brand .logo-img {
        max-height: 30px;
        width: auto;
    }
    .portal-entertainer .nk-content .container-fluid {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .portal-entertainer .nk-block-head {
        margin-bottom: 1rem;
    }
    .portal-entertainer .nk-block-between {
        gap: 0.875rem;
    }
    .portal-entertainer .nk-block-head-content,
    .portal-entertainer .nk-block-head-content > div:first-child,
    .portal-entertainer .nk-block-tools {
        width: 100%;
    }
    .portal-entertainer .nk-block-head-content > div:first-child {
        flex-wrap: wrap;
        align-items: flex-start !important;
    }
    .portal-entertainer .nk-block-tools {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    .portal-entertainer .nk-content .container-fluid {
        padding-left: 0.875rem;
        padding-right: 0.875rem;
    }
    .portal-entertainer .nk-header-wrap {
        min-height: 60px;
    }
    .portal-entertainer .nk-block-head {
        margin-bottom: 0.875rem;
    }
    .portal-entertainer .nk-block-title.page-title {
        font-size: 1.1875rem !important;
    }
    .portal-entertainer .nk-block-desc p {
        font-size: 0.75rem !important;
        line-height: 1.35;
    }
    .portal-entertainer .cx-page-icon {
        width: 36px;
        height: 36px;
    }
    .portal-entertainer .cx-page-icon em {
        font-size: 1.125rem;
    }
    .portal-entertainer .nk-block-head-content > div:first-child {
        gap: 0.625rem !important;
    }
}

@media (max-width: 991.98px) {
    .portal-entertainer .nk-block-desc p {
        font-size: 0.75rem !important;
        line-height: 1.35;
    }
}

@media (max-width: 1199.98px) {
    .portal-entertainer .cx-listing-wizard .cx-summary-main {
        padding-right: 0 !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
    .portal-entertainer .cx-listing-wizard .cx-summary-sidebar {
        display: none !important;
    }
}

@media (max-width: 991.98px) {
    .portal-entertainer .cx-listing-wizard__shell {
        padding: 1rem !important;
    }
    .portal-entertainer .cx-listing-wizard__actions {
        flex-wrap: wrap;
        gap: 0.75rem;
    }
    .portal-entertainer .cx-listing-wizard__actions-group {
        flex-wrap: wrap;
    }
    .portal-entertainer .cx-listing-wizard__actions-group > .btn,
    .portal-entertainer .cx-listing-wizard__actions-group > a {
        min-height: 40px;
    }
    .portal-entertainer .cx-listing-wizard .cx-profile-section {
        margin-bottom: 1.5rem !important;
    }
    /* Option grid — 2 columns on tablet, row flow */
    .portal-entertainer .cx-listing-wizard .cx-option-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        grid-template-rows: auto !important;
        grid-auto-flow: row !important;
    }
    /* Media manager grid — 2 columns on tablet */
    .portal-entertainer .cx-listing-wizard .media-manager__grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 575.98px) {
    /* Centred logo on phones */
    .portal-entertainer .nk-header-wrap {
        position: relative;
    }
    /* Hide second menu trigger on mobile — first hamburger handles sidebar */
    .portal-entertainer .nk-header-wrap > .nk-menu-trigger.me-n2 {
        display: none !important;
    }
    /* Ensure profile avatar stays visible on mobile */
    .portal-entertainer .nk-header-tools {
        display: flex !important;
        flex-shrink: 0;
    }
    .portal-entertainer .nk-header-tools .nk-quick-nav {
        display: flex !important;
        align-items: center;
    }
    .portal-entertainer .cx-mobile-menu-trigger {
        margin-left: 0 !important;
    }
    .portal-entertainer .cx-mobile-menu-trigger__button {
        width: 42px;
        height: 42px;
        padding: 0 !important;
        align-items: center;
        justify-content: center;
    }
    .portal-entertainer .cx-mobile-menu-trigger__button .icon {
        font-size: 1.625rem;
    }
    .portal-entertainer .nk-header-brand.d-xl-none {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin: 0;
    }
    .portal-entertainer .nk-header-brand .logo-img {
        max-height: 40px !important;
    }
    .portal-entertainer .nk-header-tools {
        margin-left: auto;
    }
    .portal-entertainer .cx-listing-wizard__shell {
        padding: 0.75rem !important;
        border-radius: 0 !important;
        border-left: 0 !important;
        border-right: 0 !important;
        overflow-x: hidden;
        min-height: calc(100vh - 65px);
        min-height: calc(100dvh - 65px);
    }
    .portal-entertainer .cx-listing-wizard > .row {
        min-height: calc(100vh - 65px);
        min-height: calc(100dvh - 65px);
    }
    /* Fix Bootstrap row negative margins overflowing past shell padding */
    .portal-entertainer .cx-listing-wizard__shell .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .portal-entertainer .cx-listing-wizard__shell .row > [class*="col"] {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .portal-entertainer .cx-listing-wizard .cx-summary-main {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    /* Hide BOTH action bars on phones — sticky nav replaces them */
    .portal-entertainer .cx-listing-wizard__actions {
        display: none !important;
    }
    /* Sticky bottom wizard nav */
    .cx-wizard-sticky-nav {
        display: block;
        position: sticky;
        bottom: 0;
        left: auto;
        right: auto;
        z-index: 3;
        background: #1A1A1A;
        border-top: 1px solid #3C3C3C;
        padding: 0.5rem 0.75rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
        margin-top: auto;
    }
    .cx-wizard-sticky-nav__inner {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        max-width: 100%;
    }
    .cx-wizard-sticky-nav__back {
        width: 44px;
        height: 44px;
        min-width: 44px;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        font-size: 1rem;
    }
    .cx-wizard-sticky-nav__review {
        height: 44px;
        padding: 0 0.75rem !important;
        white-space: nowrap;
        flex-shrink: 0;
    }
    .cx-wizard-sticky-nav__next {
        flex: 1;
        height: 44px;
        min-height: 44px;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        font-size: 0.875rem;
        white-space: nowrap;
    }
    /* Content needs bottom padding so nothing hides behind sticky bar */
    .portal-entertainer .cx-listing-wizard__shell {
        padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px)) !important;
    }
    /* Cap selected-tags area height on mobile to prevent layout shift */
    .portal-entertainer .cx-listing-wizard__shell .content.cx-skills > .d-block.mb-1,
    .cx-skills-selected-box {
        max-height: 5.5rem;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    /* Show X exit button in progress bar area on phones */
    .cx-wizard-sticky-nav__exit {
        display: inline-flex !important;
    }
    /* Hide scrollbar on mobile — touch devices use native momentum scrolling */
    .portal-entertainer .nk-header-fixed + .nk-content {
        scrollbar-width: none !important;
    }
    .portal-entertainer .nk-header-fixed + .nk-content::-webkit-scrollbar {
        display: none !important;
    }
    /* ── Summary page modals — mobile responsive ── */
    /* Sticky nav must sit below modals */
    .cx-wizard-sticky-nav {
        z-index: 1040 !important;
    }
    /* Bootstrap modals with cx-modal-top (Set List, Pricing, About) — full screen */
    .portal-entertainer .modal.show:has(.cx-modal-top) {
        padding: 0 !important;
    }
    .portal-entertainer .modal-dialog.cx-modal-top {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
        min-height: 100vh;
        min-height: 100dvh;
        padding: 0 !important;
    }
    .portal-entertainer .modal-dialog.cx-modal-top .modal-content {
        border-radius: 0 !important;
        min-height: 100vh;
        min-height: 100dvh;
        border: 0 !important;
    }
    .portal-entertainer .modal-dialog.cx-modal-top .modal-header {
        position: sticky;
        top: 0;
        background: #1E1E1E;
        z-index: 2;
        border-bottom: 1px solid #3C3C3C;
    }
    .portal-entertainer .modal-dialog.cx-modal-top .modal-body {
        min-height: auto !important;
        flex: 1;
        padding-bottom: 1rem;
    }
    .portal-entertainer .modal-dialog.cx-modal-top .modal-footer {
        position: sticky;
        bottom: 0;
        background: #1E1E1E;
        border-top: 1px solid #3C3C3C;
        padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
        z-index: 2;
    }
    /* Prevent iPhone Safari input-focus zoom inside mobile modals */
    .portal-entertainer .modal-dialog.cx-modal-top .form-control,
    .portal-entertainer .modal-dialog.cx-modal-top input,
    .portal-entertainer .modal-dialog.cx-modal-top textarea,
    .portal-entertainer .modal-dialog.cx-modal-top select,
    .portal-entertainer .cx-abn-modal .cx-abn-company-search {
        font-size: 16px !important;
    }
    .portal-entertainer .cx-abn-modal .cx-abn-input-row {
        flex-direction: column;
    }
    .portal-entertainer .cx-abn-modal .cx-abn-search-button,
    .portal-entertainer .cx-abn-modal .modal-footer .btn {
        min-height: 44px;
    }
    .portal-entertainer .cx-abn-modal .cx-abn-confirm-button {
        width: 100%;
        min-width: 0;
    }
    /* ── Image editor / crop modal — mobile responsive ── */
    #image-edit .modal-dialog {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
    }
    #image-edit .modal-content {
        border-radius: 0 !important;
        min-height: 100vh;
        min-height: 100dvh;
        border: 0 !important;
    }
    /* Hide preview sidebar on mobile */
    #image-edit .cx-crop-preview {
        display: none !important;
    }
    /* Crop area fills available space */
    #image-edit .cx-crop-area {
        min-height: 280px !important;
        max-height: 50vh !important;
        flex: 1;
    }
    /* Toolbar: wrap controls, shrink zoom slider */
    #image-edit .cx-crop-toolbar {
        flex-wrap: wrap;
        padding: 0.5rem 0.75rem !important;
        gap: 0.25rem;
    }
    #image-edit .cx-crop-toolbar input[type="range"] {
        width: 80px !important;
    }
    /* Footer: stack buttons, touch-friendly sizing */
    #image-edit .modal-footer {
        flex-direction: column;
        gap: 0.5rem;
        padding: 0.75rem !important;
        padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px)) !important;
    }
    #image-edit .modal-footer > div {
        width: 100%;
        justify-content: center;
    }
    #image-edit .modal-footer > div:last-child {
        display: flex;
        gap: 0.5rem;
    }
    #image-edit .modal-footer > div:last-child .btn {
        flex: 1;
        min-height: 44px;
    }
    /* Custom fixed modals (Location, Category Browser, Attribute Browser) — full screen */
    .portal-entertainer [style*="position: fixed"][style*="z-index: 9998"] {
        padding: 0 !important;
    }
    .portal-entertainer [style*="position: fixed"][style*="z-index: 9998"] > div {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
        min-height: 100vh !important;
        min-height: 100dvh !important;
        max-height: 100vh !important;
        max-height: 100dvh !important;
        display: flex;
        flex-direction: column;
    }
    .portal-entertainer .cx-category-browser-panel {
        overflow: hidden;
    }
    .portal-entertainer .cx-category-browser-content {
        min-height: 0;
    }
    .portal-entertainer .cx-category-browser-letters {
        position: sticky;
        top: 0;
        z-index: 2;
        width: 44px !important;
        padding-right: 0.5rem !important;
        padding-left: 0.25rem !important;
        background: linear-gradient(270deg, #18181B 72%, rgba(24, 24, 27, 0) 100%);
        overscroll-behavior: contain;
    }
    .portal-entertainer .cx-category-browser-letters .cx-letter-link {
        min-width: 28px;
        min-height: 28px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    /* Compact warning modals (420px) keep size — they're short */
    .portal-entertainer [style*="max-width: 420px"] {
        max-width: min(420px, 90vw) !important;
        min-height: auto !important;
    }
    .portal-entertainer .cx-listing-wizard .text-muted {
        font-size: 0.75rem;
    }
    /* Progress bar compact */
    .portal-entertainer .cx-listing-wizard .progress {
        height: 4px !important;
    }
    /* Spacing between progress bar area and step content */
    .portal-entertainer .cx-listing-wizard__shell > .content.cx-skills,
    .portal-entertainer .cx-listing-wizard__shell .content.cx-skills {
        margin-top: 0.5rem;
    }
    .portal-entertainer .cx-listing-wizard__shell .content.cx-skills > h3:first-child,
    .portal-entertainer .cx-listing-wizard__shell .content.cx-skills > h5:first-child {
        margin-top: 0.25rem;
    }
    /* Option grid — single column on phones for readability */
    .portal-entertainer .cx-listing-wizard .cx-option-grid {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;
        grid-auto-flow: row !important;
    }
    /* Allow checkbox labels to wrap on mobile — show full text */
    .portal-entertainer .cx-listing-wizard .custom-control-pro .custom-control-label {
        overflow: visible !important;
        height: auto !important;
        min-height: 44px;
        align-items: center;
    }
    .portal-entertainer .cx-listing-wizard .custom-control-pro .custom-control-label span {
        white-space: normal !important;
        line-height: 1.35;
    }
    .portal-entertainer .cx-listing-wizard .custom-control-pro {
        height: auto !important;
    }
    /* Media manager grid — 2 columns on phones */
    .portal-entertainer .cx-listing-wizard .media-manager__grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    /* Featured image/video — stack vertically on phones */
    .portal-entertainer .cx-listing-wizard .cx-summary-main .row.gy-4x > .col-sm-6 {
        flex: 0 0 100%;
        max-width: 100%;
    }
    /* Price input full width on phones */
    .portal-entertainer .cx-listing-wizard [style*="max-width: 300px"] {
        max-width: 100% !important;
    }
    /* Wizard step headings */
    .portal-entertainer .cx-listing-wizard h3 {
        font-size: 1.125rem !important;
    }
    .portal-entertainer .cx-listing-wizard h5 {
        font-size: 0.9375rem !important;
    }
}

@media (max-width: 991.98px) {
    .portal-entertainer .cx-ent-dashboard .card-inner {
        padding: 1rem !important;
    }
    .portal-entertainer .cx-ent-dashboard .cx-dashboard-stat-strip {
        gap: 1rem !important;
    }
    .portal-entertainer .cx-ent-dashboard .cx-dashboard-stat-strip > div {
        flex: 1;
        min-width: 0;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-cta .btn {
        width: auto;
        min-width: 190px;
        margin-left: auto;
        margin-right: auto;
        display: inline-flex;
        justify-content: center;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card .card-inner {
        padding: 1rem;
    }
    .portal-entertainer .cx-ent-settings .cx-settings-card .card-inner {
        padding: 1.25rem 1.25rem !important;
    }
}

@media (max-width: 767.98px) {
    .portal-entertainer .cx-ent-listings .cx-listings-head {
        display: none !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile {
        display: block;
        width: 100%;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        width: 100%;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__title {
        min-width: 0;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__title-top {
        display: flex;
        align-items: center;
        gap: 0.625rem;
        min-width: 0;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__title-top .page-title {
        font-size: 1rem !important;
        line-height: 1.1;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__count {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-size: 0.75rem;
        color: #B5B5B5;
        line-height: 1.3;
        margin-top: 0.375rem;
        text-align: center;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__cta {
        margin-top: 0.625rem;
        text-align: center;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__cta .btn {
        white-space: nowrap;
        font-size: 0.8125rem;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__pager {
        justify-self: end;
        align-self: center;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__pager .pagination {
        margin-bottom: 0;
        flex-wrap: nowrap;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__pager .page-link {
        min-width: 2.125rem;
        height: 2.125rem;
        padding: 0;
    }
    .portal-entertainer .cx-ent-dashboard .cx-dashboard-stat-strip {
        flex-direction: column;
        align-items: stretch !important;
        gap: 0.875rem !important;
    }
    .portal-entertainer .cx-ent-dashboard .cx-dashboard-stat-strip > div {
        width: 100%;
        border-left: 0 !important;
        padding-left: 0 !important;
        padding-top: 0.875rem;
        border-top: 1px solid rgba(255,255,255,0.06);
    }
    .portal-entertainer .cx-ent-dashboard .cx-dashboard-stat-strip > div:first-child {
        padding-top: 0;
        border-top: 0;
    }
    /* ── Listing card mobile redesign (tablet) ── */
    .portal-entertainer .cx-ent-listings .listing-card {
        aspect-ratio: unset !important;
        min-height: 280px;
    }
    .portal-entertainer .cx-ent-listings .listing-card .project {
        display: flex;
        flex-direction: column;
        height: 100%;
    }
    .portal-entertainer .cx-ent-listings .listing-card .project-details {
        flex: 1;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__head {
        flex-direction: row;
        align-items: flex-start !important;
        justify-content: space-between;
        gap: 0.5rem !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__actions {
        flex-shrink: 0;
        flex-wrap: nowrap;
        gap: 0.5rem !important;
    }
    .portal-entertainer .cx-ent-listings .project-title .title {
        font-size: 0.9375rem !important;
        line-height: 1.28;
        margin-bottom: 0.125rem;
    }
    .portal-entertainer .cx-ent-listings .sub-text {
        display: block;
        font-size: 0.6875rem !important;
        line-height: 1.35;
    }
    .portal-entertainer .cx-ent-listings .project-details {
        font-size: 0.8125rem;
        line-height: 1.45;
        letter-spacing: 0.01em;
        min-height: 0 !important;
        margin-bottom: 0.5rem !important;
    }
    .portal-entertainer .cx-ent-listings .project-details p {
        margin-bottom: 0;
    }
    .portal-entertainer .cx-ent-listings .project-meta {
        gap: 0.5rem !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity {
        flex-direction: row !important;
        align-items: flex-start !important;
        justify-content: space-between;
        gap: 0.5rem !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity > div:last-child {
        flex-shrink: 0;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity p,
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity .text-muted {
        line-height: 1.4;
        word-break: break-word;
    }
    /* Status + stats on same row */
    .portal-entertainer .cx-ent-listings .cx-listing-card__status-row {
        justify-content: flex-start !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__mini-stats {
        justify-content: flex-end !important;
        margin-top: 0 !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__divider {
        margin-top: 0.5rem;
        margin-bottom: 0.5rem;
        opacity: 0.45;
    }
    .portal-entertainer .cx-ent-listings .pagination {
        flex-wrap: wrap;
        row-gap: 0.375rem;
    }
    .portal-entertainer .cx-ent-listings .pagination .page-item {
        width: auto !important;
        flex: 0 0 auto;
    }
    .portal-entertainer .cx-ent-listings .pagination .page-link {
        width: auto !important;
        min-width: 2.25rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .portal-entertainer .cx-ent-settings .cx-settings-photo-row {
        align-items: flex-start !important;
    }
}

@media (max-width: 575.98px) {
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__title-top .page-title {
        font-size: 0.9375rem !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__count {
        font-size: 0.6875rem;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-mobile__pager .page-link {
        min-width: 2rem;
        height: 2rem;
    }
    /* ── Listing card phone redesign ── */
    .portal-entertainer .cx-ent-listings .cx-listing-card .card-inner {
        padding: 0.75rem !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__head {
        margin-bottom: 0.5rem !important;
        gap: 0.375rem !important;
    }
    .portal-entertainer .cx-ent-listings .project-title .title {
        font-size: 0.875rem !important;
    }
    .portal-entertainer .cx-ent-listings .project-details {
        font-size: 0.75rem;
        margin-bottom: 0.375rem !important;
    }
    .portal-entertainer .cx-ent-listings .project-details p {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    /* Hide ABN on phones — too much detail */
    .portal-entertainer .cx-ent-listings .cx-listing-card__abn {
        display: none;
    }
    /* Hide owner section on phones — compact card */
    .portal-entertainer .cx-ent-listings .cx-listing-card__owner {
        display: none;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity {
        gap: 0.25rem !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity p,
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity .text-muted {
        font-size: 0.75rem !important;
    }
    /* Status + stats: merge into a single row */
    .portal-entertainer .cx-ent-listings .project-meta {
        gap: 0.375rem !important;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__status-row,
    .portal-entertainer .cx-ent-listings .cx-listing-card__mini-stats {
        display: inline-flex !important;
        width: auto !important;
    }
    /* Combine status row + stats into flex row */
    .portal-entertainer .cx-ent-listings .project-meta > .cx-listing-card__status-row {
        order: 1;
    }
    .portal-entertainer .cx-ent-listings .project-meta > .cx-listing-card__mini-stats {
        order: 2;
        margin-left: auto;
        margin-top: 0 !important;
    }
    /* Make meta a horizontal bar */
    .portal-entertainer .cx-ent-listings .project-meta {
        flex-direction: row !important;
        flex-wrap: wrap;
        align-items: center;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__entity {
        width: 100%;
        order: 0;
    }
    .portal-entertainer .cx-ent-listings .cx-listing-card__divider {
        display: none !important;
    }
    /* Collapse empty description paragraphs */
    .portal-entertainer .cx-ent-listings .project-details:empty,
    .portal-entertainer .cx-ent-listings .project-details p:empty {
        display: none;
    }
    .portal-entertainer .cx-ent-listings .project-details {
        min-height: 0 !important;
    }
    /* Tighter card grid gap on phones */
    .portal-entertainer .cx-ent-listings .row.g-gs {
        --bs-gutter-y: 0.625rem;
    }
    body.cx-mobile-panel-open {
        overflow: hidden;
    }
    .portal-entertainer .cx-mobile-panel {
        position: fixed;
        inset: 0;
        z-index: 1055;
        background: rgba(0,0,0,0.78);
    }
    .portal-entertainer .cx-mobile-panel.is-open {
        display: block;
    }
    .portal-entertainer .cx-mobile-panel__sheet {
        position: absolute;
        inset: 0;
        background: #1A1A1A;
        display: flex;
        flex-direction: column;
    }
    .portal-entertainer .cx-mobile-panel__head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 1rem;
        padding: 1rem 0.875rem 0.875rem;
        border-bottom: 1px solid #2E2E2E;
    }
    .portal-entertainer .cx-mobile-panel__title {
        margin: 0;
        font-family: 'Figtree', sans-serif;
        font-size: 1.0625rem;
        font-weight: 600;
        color: #EDEDED;
    }
    .portal-entertainer .cx-mobile-panel__subtitle {
        margin: 0.25rem 0 0;
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-size: 0.75rem;
        color: #7E7E7E;
    }
    .portal-entertainer .cx-mobile-panel__close {
        width: 36px;
        height: 36px;
        border: 1px solid #3C3C3C;
        border-radius: 8px;
        background: transparent;
        color: #B5B5B5;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }
    .portal-entertainer .cx-mobile-panel__body {
        flex: 1;
        overflow-y: auto;
        padding: 0.75rem 0.875rem calc(1rem + env(safe-area-inset-bottom, 0px));
    }
    .portal-entertainer .cx-mobile-panel__actions {
        display: flex;
        justify-content: flex-end;
        margin-bottom: 0.75rem;
    }
    .portal-entertainer .cx-mobile-panel__actions a {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-size: 0.75rem;
        color: #B5B5B5;
        text-decoration: none;
    }
    .portal-entertainer .cx-mobile-account-card {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.25rem 0 1rem;
        border-bottom: 1px solid #2E2E2E;
        margin-bottom: 0.75rem;
    }
    .portal-entertainer .cx-mobile-account-card__name {
        font-family: 'Figtree', sans-serif;
        font-size: 0.9375rem;
        font-weight: 600;
        color: #EDEDED;
    }
    .portal-entertainer .cx-mobile-account-card__role {
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-size: 0.75rem;
        color: #7E7E7E;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }
    .portal-entertainer .cx-mobile-account-links {
        display: flex;
        flex-direction: column;
        gap: 0.375rem;
    }
    .portal-entertainer .cx-mobile-account-links a {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        min-height: 48px;
        padding: 0.75rem 0.875rem;
        border: 1px solid #3C3C3C;
        border-radius: 8px;
        background: #242427;
        color: #EDEDED;
        text-decoration: none;
        font-family: 'Satoshi Variable', 'Satoshi', sans-serif;
        font-size: 0.875rem;
    }
    .portal-entertainer .cx-mobile-account-links a .icon {
        color: #7E7E7E;
        font-size: 1rem;
    }
    .portal-entertainer .cx-ent-dashboard .card-inner {
        padding: 0.9375rem !important;
    }
    .portal-entertainer .cx-ent-dashboard .nk-block,
    .portal-entertainer .cx-ent-listings .nk-block {
        margin-bottom: 0.75rem;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head {
        column-gap: 0.5rem;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-head-cta .btn {
        min-width: 0;
        padding-left: 0.875rem;
        padding-right: 0.875rem;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-subtitle {
        padding-left: 2.5rem;
        text-align: left;
        margin-top: 0.25rem;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-subtitle p {
        font-size: 0.75rem;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-subtitle__desktop {
        display: none;
    }
    .portal-entertainer .cx-ent-listings .cx-listings-subtitle__mobile {
        display: inline;
    }
    .portal-entertainer .cx-ent-settings .cx-settings-card .card-inner {
        padding: 1rem !important;
    }
    .portal-entertainer .cx-ent-settings .cx-settings-photo-row {
        flex-direction: column;
    }
    .portal-entertainer .nk-block-head .nk-block-head-content > div:first-child {
        display: none !important;
    }
    .portal-entertainer .nk-block-head .nk-block-head-content {
        gap: 0 !important;
    }
    .portal-entertainer .nk-block-head .nk-block-head-content > div:last-child {
        margin-left: 0 !important;
    }
    .portal-entertainer .nk-block-head {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }
    /* Page title further reduction on phones */
    .portal-entertainer .nk-block-title.page-title {
        font-size: 1.0625rem !important;
    }
    /* Container padding reduction on small phones */
    .portal-entertainer .nk-content .container-fluid {
        padding-left: 0.625rem;
        padding-right: 0.625rem;
    }
    /* Mobile panel close button — meet 44px tap target */
    .portal-entertainer .cx-mobile-panel__close {
        width: 44px;
        height: 44px;
    }
    /* Listing card action buttons — meet 44px tap target */
    .portal-entertainer .cx-ent-listings .cx-listing-card__actions a {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    /* Messages user browser modal — reduce min-height on phones */
    .cx-user-browser-modal {
        min-height: auto !important;
        max-height: calc(100dvh - 2rem) !important;
    }
}

/* ===================================== */
/* Viewport & safe-area fixes            */
/* ===================================== */
/* ===================================== */
/* Booker responsive foundations         */
/* ===================================== */
@media (max-width: 1199.98px) {
    .portal-booker .nk-sidebar {
        width: min(86vw, 320px) !important;
    }
    .portal-booker .nk-header-wrap {
        gap: 0.75rem;
        min-height: 64px;
    }
    .portal-booker .nk-header-brand .logo-img {
        max-height: 30px;
        width: auto;
    }
    .portal-booker .nk-content .container-fluid {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .portal-booker .nk-block-head {
        margin-bottom: 1rem;
    }
    .portal-booker .nk-block-between {
        gap: 0.875rem;
    }
    .portal-booker .nk-block-head-content,
    .portal-booker .nk-block-head-content > div:first-child,
    .portal-booker .nk-block-tools {
        width: 100%;
    }
    .portal-booker .nk-block-head-content > div:first-child {
        flex-wrap: wrap;
        align-items: flex-start !important;
    }
    .portal-booker .nk-block-tools {
        justify-content: flex-start;
    }
    .portal-booker .cx-booker-search-wrap {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }
}

@media (max-width: 767.98px) {
    .portal-booker .nk-content .container-fluid {
        padding-left: 0.875rem;
        padding-right: 0.875rem;
    }
    .portal-booker .nk-header-wrap {
        min-height: 60px;
    }
    .portal-booker .nk-block-head {
        margin-bottom: 0.875rem;
    }
    .portal-booker .nk-block-title.page-title {
        font-size: 1.1875rem !important;
    }
    .portal-booker .nk-block-desc p {
        font-size: 0.75rem !important;
        line-height: 1.35;
    }
    .portal-booker .cx-page-icon {
        width: 36px;
        height: 36px;
    }
    .portal-booker .cx-page-icon em {
        font-size: 1.125rem;
    }
    .portal-booker .nk-block-head-content > div:first-child {
        gap: 0.625rem !important;
    }
}

@media (max-width: 991.98px) {
    .portal-booker .nk-block-desc p {
        font-size: 0.75rem !important;
        line-height: 1.35;
    }
    .portal-booker .cx-ent-dashboard .card-inner {
        padding: 1rem !important;
    }
}

@media (max-width: 767.98px) {
    .portal-booker .cx-ent-dashboard .nk-block {
        margin-bottom: 0.875rem;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="display: flex"][style*="align-items: center"] {
        align-items: flex-start !important;
    }
    .portal-booker .cx-ent-dashboard a.card .card-inner > div > div:last-child,
    .portal-booker .cx-ent-dashboard .card .card-inner > div > div:last-child {
        min-width: 0;
        flex: 1;
    }
    .portal-booker .cx-ent-dashboard a.card .card-inner > div > div:last-child > div:first-child,
    .portal-booker .cx-ent-dashboard .card .card-inner > div > div:last-child > div:first-child {
        line-height: 1.35;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="justify-content: space-between"] {
        align-items: flex-start !important;
        gap: 0.75rem;
        flex-wrap: wrap;
    }
    .portal-booker .cx-booker-events .card-inner {
        padding: 1rem !important;
    }
    .portal-booker .cx-booker-events .project-head {
        align-items: flex-start;
        gap: 0.75rem;
    }
    .portal-booker .cx-booker-events .project-title {
        min-width: 0;
        flex: 1;
    }
    .portal-booker .cx-booker-events .project-info .title {
        line-height: 1.3;
        word-break: break-word;
    }
    .portal-booker .cx-booker-events .project-details p {
        font-size: 0.8125rem;
        line-height: 1.5;
    }
    .portal-booker .cx-booker-events .project-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        align-items: center;
    }
    .portal-booker .cx-booker-events .card-inner > div[style*="text-align: center"] {
        padding: 2.25rem 1rem !important;
    }
    .portal-booker .cx-booker-events .card-inner > div[style*="text-align: center"] a {
        width: 100%;
        justify-content: center;
        min-height: 44px;
    }
}

@media (max-width: 575.98px) {
    .portal-booker .nk-header-wrap {
        padding-top: env(safe-area-inset-top, 0px);
    }
    .portal-booker .nk-header-wrap > .nk-menu-trigger.me-n2 {
        display: none !important;
    }
    .portal-booker .nk-header-tools {
        display: flex !important;
        flex-shrink: 0;
        margin-left: auto;
    }
    .portal-booker .nk-header-tools .nk-quick-nav {
        display: flex !important;
        align-items: center;
    }
    .portal-booker .cx-booker-search-wrap {
        display: none !important;
    }
    .portal-booker .cx-booker-search-mobile-item {
        display: list-item;
        margin-right: -0.4375rem;
    }
    .portal-booker .cx-booker-search-mobile-trigger {
        width: 42px;
        height: 42px;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #EDEDED;
        text-decoration: none;
        transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    }
    .portal-booker .cx-booker-search-mobile-trigger:hover,
    .portal-booker .cx-booker-search-mobile-trigger:focus {
        background: rgba(255,255,255,0.06);
        color: #fff;
    }
    .portal-booker .cx-booker-search-mobile-trigger .icon {
        font-size: 1.0625rem;
    }
    .portal-booker .nk-header-brand.d-xl-none {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin: 0;
    }
    .portal-booker .nk-header-brand .logo-img {
        max-height: 40px !important;
    }
    .portal-booker .cx-ent-dashboard .card-inner {
        padding: 0.9375rem !important;
    }
    .portal-booker .cx-ent-dashboard .nk-block {
        margin-bottom: 0.75rem;
    }
    .portal-booker .cx-ent-dashboard .nk-block-head .nk-block-head-content > div:first-child {
        display: none !important;
    }
    .portal-booker .cx-ent-dashboard .nk-block-head .nk-block-head-content {
        gap: 0 !important;
    }
    .portal-booker .cx-ent-dashboard .nk-block-head .nk-block-head-content > div:last-child {
        margin-left: 0 !important;
    }
    .portal-booker .cx-ent-dashboard .nk-block-head {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }
    .portal-booker .nk-block-title.page-title {
        font-size: 1.0625rem !important;
    }
    .portal-booker .nk-content .container-fluid {
        padding-left: 0.625rem;
        padding-right: 0.625rem;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="display: flex"][style*="align-items: center"] {
        gap: 0.625rem !important;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="display: flex"][style*="align-items: center"] > div:first-child {
        width: 38px !important;
        height: 38px !important;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="display: flex"][style*="align-items: center"] > div:last-child > div:first-child {
        font-size: 0.625rem !important;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="display: flex"][style*="align-items: center"] > div:last-child > div:last-child {
        font-size: 1.25rem !important;
    }
    .portal-booker .cx-ent-dashboard a[href*="browse"] .card-inner > div[style*="display: flex"][style*="align-items: center"] > div:last-child > div:last-child {
        font-size: 0.875rem !important;
        line-height: 1.3 !important;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="text-align: center"] {
        padding: 2.25rem 1rem !important;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="text-align: center"] p {
        font-size: 0.75rem !important;
    }
    .portal-booker .cx-ent-dashboard .card-inner > div[style*="text-align: center"] a {
        width: 100%;
        justify-content: center;
        min-height: 44px;
    }
}

@media (max-width: 991.98px) {
    .portal-booker .cx-booker-invoicing-dialog,
    .portal-booker .cx-booker-abn-dialog {
        max-width: min(100%, 680px) !important;
        margin-left: 0.875rem;
        margin-right: 0.875rem;
        padding: 1.25rem !important;
    }
    .portal-booker .cx-booker-invoicing-type-options {
        flex-wrap: wrap;
    }
    .portal-booker .cx-booker-invoicing-type-options > label {
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .portal-booker .cx-booker-invoicing-body {
        min-height: 0;
    }
    .portal-booker .cx-booker-invoicing-actions,
    .portal-booker .cx-booker-abn-actions {
        flex-wrap: wrap;
    }
    .portal-booker .cx-booker-invoicing-actions > span,
    .portal-booker .cx-booker-invoicing-actions > button,
    .portal-booker .cx-booker-abn-actions > span,
    .portal-booker .cx-booker-abn-actions > button {
        min-height: 44px !important;
    }
    .portal-booker .cx-booker-abn-input-row {
        flex-wrap: wrap;
    }
    .portal-booker .cx-booker-abn-input-row > input,
    .portal-booker .cx-booker-abn-input-row > button {
        width: 100%;
    }
    .portal-booker .cx-booker-abn-input-row > button {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .portal-booker .cx-booker-abn-help-row {
        flex-direction: column;
        align-items: flex-start !important;
    }
}

@media (max-width: 575.98px) {
    .portal-booker .cx-booker-invoicing-overlay {
        padding: 1rem 0.75rem !important;
        align-items: flex-start !important;
        overflow-y: auto !important;
    }
    .portal-booker .cx-booker-abn-overlay {
        padding: 1rem 0.75rem !important;
        align-items: flex-start !important;
        overflow-y: auto !important;
    }
    .portal-booker .cx-booker-invoicing-dialog {
        position: relative;
        inset: auto;
        height: auto;
        max-height: none !important;
        max-width: min(100%, 520px) !important;
        width: 100% !important;
        margin: 0 auto !important;
        border-radius: 8px !important;
        border-left-width: 3px !important;
        padding: 1rem 0.875rem !important;
        display: block;
        overflow: visible;
    }
    .portal-booker .cx-booker-abn-dialog {
        min-height: auto;
        height: auto;
        max-height: none !important;
        max-width: min(100%, 520px) !important;
        width: 100% !important;
        margin: 0 auto !important;
        border-radius: 8px !important;
        border-left-width: 1px !important;
        padding: 1rem 0.875rem !important;
        display: block;
        overflow: visible;
    }
    .portal-booker .cx-booker-invoicing-body {
        overflow: visible;
        padding-bottom: 0;
    }
    .portal-booker .cx-booker-invoicing-head,
    .portal-booker .cx-booker-abn-head {
        position: static;
        background: inherit;
        padding-top: calc(0.25rem + env(safe-area-inset-top, 0px));
    }
    .portal-booker .cx-booker-invoicing-logo img {
        width: 144px !important;
    }
    .portal-booker .cx-booker-invoicing-type-options {
        flex-direction: column;
    }
    .portal-booker .cx-booker-invoicing-actions,
    .portal-booker .cx-booker-abn-actions {
        background: #252525;
        flex: 0 0 auto;
        padding-top: 0.875rem !important;
        padding-bottom: calc(0.25rem + env(safe-area-inset-bottom, 0px));
        flex-direction: column-reverse;
        align-items: stretch !important;
        border-top: 1px solid rgba(60, 60, 60, 0.9);
        box-shadow: 0 -12px 24px rgba(24, 24, 27, 0.88);
    }
    .portal-booker .cx-booker-invoicing-actions > span,
    .portal-booker .cx-booker-invoicing-actions > button,
    .portal-booker .cx-booker-abn-actions > span,
    .portal-booker .cx-booker-abn-actions > button {
        width: 100%;
        min-height: 46px !important;
    }
    .portal-booker .cx-booker-invoicing-actions {
        position: static;
        margin-top: 0 !important;
        padding: 0.875rem 0 0 !important;
        box-shadow: none;
    }
    .portal-booker .cx-booker-abn-actions {
        position: static;
        margin-top: 0 !important;
        padding: 0.875rem 0 0 !important;
        box-shadow: none;
    }
    .portal-booker .cx-booker-abn-results {
        max-height: 280px !important;
    }
}

@supports (height: 100dvh) {
    .nk-header-fixed + .nk-content {
        height: calc(100dvh - 65px);
    }
}
/* Safe-area-inset for notched phones */
@media (max-width: 575.98px) {
    .portal-entertainer .nk-header-wrap {
        padding-top: env(safe-area-inset-top, 0px);
    }
    .portal-entertainer .cx-mobile-panel__head {
        padding-top: calc(1rem + env(safe-area-inset-top, 0px));
    }
}

/* ===================================== */
/* Landscape orientation handling         */
/* ===================================== */
@media (orientation: landscape) and (max-height: 500px) {
    .nk-header-fixed + .nk-content {
        height: calc(100dvh - 56px);
        height: calc(100vh - 56px);
    }
    .portal-entertainer .nk-header-wrap {
        min-height: 56px;
    }
    .portal-entertainer .cx-mobile-panel__sheet {
        overflow-y: auto;
    }
    .cx-user-browser-modal {
        min-height: auto !important;
        max-height: calc(100vh - 1rem) !important;
    }
}

@media (max-width: 767.98px) {
    .portal-booker input[type="text"],
    .portal-booker input[type="email"],
    .portal-booker input[type="password"],
    .portal-booker input[type="tel"],
    .portal-booker input[type="number"],
    .portal-booker input[type="search"],
    .portal-booker select,
    .portal-booker textarea,
    .portal-booker .form-control,
    .portal-booker .select2-search__field,
    .portal-booker .cx-booker-invoicing-dialog input,
    .portal-booker .cx-booker-invoicing-dialog textarea,
    .portal-booker .cx-booker-invoicing-dialog select,
    .portal-booker .cx-booker-abn-dialog input,
    .portal-booker .cx-booker-abn-dialog textarea,
    .portal-booker .cx-booker-abn-dialog select,
    .portal-entertainer input[type="text"],
    .portal-entertainer input[type="email"],
    .portal-entertainer input[type="password"],
    .portal-entertainer input[type="tel"],
    .portal-entertainer input[type="number"],
    .portal-entertainer input[type="search"],
    .portal-entertainer select,
    .portal-entertainer textarea,
    .portal-entertainer .form-control,
    .portal-entertainer .select2-search__field {
        font-size: 16px !important;
    }
}

/* ========================================================================
   Admin-only widget signature
   Indigo treatment marks panels where admins can take admin-only ACTIONS.
   Never apply to reference/display-only panels (e.g. data overviews,
   activity logs, media previews). Used for: Status panel, Pricing
   Visibility toggle, future admin action surfaces.
   Reference: feedback_ken_backend_overrides.md, project_pricing_visibility_toggle.md
   ======================================================================== */
.cx-admin-widget,
.dark-mode .cx-admin-widget,
.dark-mode .card.cx-admin-widget,
body.portal-admin .dark-mode .card.cx-admin-widget,
body.portal-admin.dark-mode .card.cx-admin-widget {
    position: relative;
    background: linear-gradient(180deg, rgba(91, 75, 126, 0.10) 0%, rgba(91, 75, 126, 0.05) 100%) !important;
    border: 1px solid #4A3F66 !important;
}
.cx-admin-widget::after {
    content: 'ADMIN ONLY';
    position: absolute;
    top: -1px;
    right: -1px;
    font-family: 'Satoshi Variable', sans-serif;
    font-size: 0.5625rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #B5A3DB;
    background: #2A2238;
    padding: 0.1875rem 0.5rem;
    border-radius: 0 7px 0 6px;
    border-left: 1px solid #4A3F66;
    border-bottom: 1px solid #4A3F66;
    pointer-events: none;
}

/* ========================================================================
   TOP CATEGORIES WIDGET — fallback image dropzone preview cap
   The shared cx-dropzone preview has no size cap so the image stretches to
   whatever container width the dropzone is in. For the fallback-image use
   case (a single reference thumbnail) we want a small, centred preview.
   Spec: rag/Top 10 Categories Widget/04_frontend_renderer.md
   ======================================================================== */
#tcw-fallback-dropzone-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 0;
}
#tcw-fallback-dropzone-preview-img {
    max-width: 200px;
    max-height: 200px;
    width: auto;
    height: auto;
    border-radius: 8px;
    border: 1px solid #2E2E33;
    object-fit: cover;
    background: #111113;
}

/* Top 10 Categories picker — commit button.
   The platform's `[style*="position: fixed"][style*="z-index"] .btn` rule
   (specificity 0,2,2,0) forces white text on every button inside a fixed
   modal. This widget's commit button has a white background, so it needs
   black text. We chain three classes (.cx-category-browser-panel .btn.tcw-picker-commit)
   for specificity 0,3,1,0 — beats theirs. */
.cx-category-browser-panel .btn.tcw-picker-commit {
    background: #fff !important;
    color: #000 !important;
    border: none !important;
    padding: 0.4375rem 1.5rem !important;
    font-weight: 600 !important;
}
.cx-category-browser-panel .btn.tcw-picker-commit:disabled,
.cx-category-browser-panel .btn.tcw-picker-commit[disabled] {
    background: #2A2A2D !important;
    color: #5A5A5E !important;
    cursor: not-allowed !important;
}

/* ========================================================================
   CATEGORY ICON PICKER — Categories admin (edit + create pages)
   Visual grid of icon tiles. Click a tile to select; selected tile gets
   a green border + filled background. Used to set categories.icon for the
   Featured Categories homepage widget.
   ======================================================================== */
.cx-icon-picker {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
    gap: 0.5rem;
    margin: 0;
    padding: 0;
}
.cx-icon-picker__tile {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    background: #1A1A1D;
    border: 1px solid #3C3C3C;
    border-radius: 8px;
    cursor: pointer;
    padding: 0.5rem;
    transition: border-color 0.15s, background 0.15s, transform 0.1s;
}
.cx-icon-picker__tile:hover {
    border-color: #5B8060;
    background: #1F2522;
}
.cx-icon-picker__tile:active {
    transform: scale(0.96);
}
.cx-icon-picker__tile.is-selected {
    border-color: #5B8060;
    background: rgba(91, 128, 96, 0.18);
    box-shadow: 0 0 0 1px #5B8060;
}
.cx-icon-picker__tile img {
    width: 28px;
    height: 28px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    opacity: 0.85;
}
.cx-icon-picker__tile.is-selected img {
    opacity: 1;
}
.cx-icon-picker__tile--clear {
    color: #7E7E7E;
    font-size: 1rem;
}
.cx-icon-picker__tile--clear:hover {
    color: #C0625D;
    border-color: #C0625D;
    background: rgba(192, 98, 93, 0.10);
}
.cx-icon-picker__tile--clear.is-selected {
    color: #C0625D;
    border-color: #C0625D;
    background: rgba(192, 98, 93, 0.18);
    box-shadow: 0 0 0 1px #C0625D;
}

/* ========================================================================
   FEATURED CATEGORIES WIDGET — entertainers.com.au homepage
   The original .pill markup was a non-clickable swiper-slide; converting it
   to an <a> needs the underline + visited-color reset so it visually matches
   the legacy design exactly.
   ======================================================================== */
/* Pill visual treatment — there are two conflicting `.pill` rules in
   the legacy minified app.css. The second (transparent, border-only)
   overrides the first (dark fill). For our pills we want the dark fill,
   no underline, white text. */
.widget-featured-categories__pill,
.widget-featured-categories__pill:hover,
.widget-featured-categories__pill:focus,
.widget-featured-categories__pill:active,
.widget-featured-categories__pill:visited {
    text-decoration: none !important;
    color: #fff !important;
    background: #282828 !important;
    border: 1px solid #282828 !important;
    border-radius: 999px !important;
    padding: 0.625rem 1.125rem !important;
    line-height: 1 !important;
    opacity: 0.85;
    transition: opacity 0.15s, border-color 0.15s, background 0.15s;
}
.widget-featured-categories__pill:hover {
    opacity: 1;
    border-color: #fff !important;
}
/* Vertical spacing between row 1 and row 2 */
.widget-featured-categories .entertainer-tabbed + .entertainer-tabbed {
    margin-top: 0.875rem !important;
}
.widget-featured-categories .entertainer-tabbed-widget {
    display: block !important;
    min-height: 42px !important;
}
.widget-featured-categories .tabs-container {
    overflow: visible !important;
    height: auto !important;
}
/* Pill spacing — the legacy .tabs-container > .swiper-wrapper rule sets
   width: max-content with no gap, so pills butt up against each other.
   Add explicit gap inside the new widget only (scoped to avoid touching
   the legacy entertainer-tabbed pills used elsewhere). */
.widget-featured-categories .tabs-container > .swiper-wrapper {
    gap: 0.75rem !important;
}
.widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__track {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.875rem 1rem !important;
    width: 100% !important;
    min-width: 100% !important;
    height: auto !important;
    transform: none !important;
    padding-right: 0 !important;
}
.widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
}
@media (min-width: 768px) {
    .widget-featured-categories .tabs-container > .swiper-wrapper {
        gap: 1rem !important;
    }
}
@media (max-width: 767.98px) {
    .widget-featured-categories .component-title-block h2 {
        font-size: 2rem !important;
        line-height: 1.12 !important;
    }
    .widget-featured-categories .entertainer-tabbed {
        transform: none !important;
    }
    .widget-featured-categories .widget-featured-categories__row {
        margin-top: 0.5rem !important;
    }
    .widget-featured-categories .widget-featured-categories__row:first-of-type {
        margin-top: 0 !important;
    }
    .widget-featured-categories.block-entertainer-tabbed .tabs-container {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        padding: 0 1rem 0.125rem !important;
        -webkit-overflow-scrolling: touch;
        scroll-padding-left: 1rem;
        scrollbar-width: none;
    }
    .widget-featured-categories.block-entertainer-tabbed .tabs-container::-webkit-scrollbar {
        display: none;
    }
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__track {
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        gap: 0.5rem !important;
        width: max-content !important;
        min-width: max-content !important;
        padding-right: 1rem !important;
        transform: none !important;
    }
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill,
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill:hover,
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill:focus,
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill:active,
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill:visited {
        padding: 0.42rem 0.7rem !important;
        font-size: 0.75rem !important;
        max-width: 12rem !important;
    }
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill .pill-icon {
        width: 0.75rem !important;
        height: 0.75rem !important;
        flex: 0 0 auto !important;
    }
    .widget-featured-categories.block-entertainer-tabbed .widget-featured-categories__pill .tab-content {
        display: block !important;
        min-width: 0 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
}

/* Tighten the vertical relationship between the Featured Categories pills and
   the Featured Entertainers cards. Both are separate section-padding-large
   blocks, so the default stacked spacing is too tall here. */
.widget-featured-categories {
    padding-bottom: 2rem !important;
}
.widget-featured-entertainers-section {
    padding-top: 2rem !important;
}
.widget-featured-entertainers {
    padding-top: 0.75rem !important;
}
@media (max-width: 767.98px) {
    .widget-featured-entertainers .component-listing-card,
    .widget-featured-entertainers .card-listing-user,
    .widget-featured-entertainers .card-listing-user-details,
    .widget-featured-entertainers .card-listing-rating {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }
    .widget-featured-entertainers .card-listing-user-name,
    .widget-featured-entertainers .card-listing-user-address,
    .widget-featured-entertainers .card-listing-rating,
    .widget-featured-entertainers .card-listing-rating-stats,
    .widget-featured-entertainers .card-listing-category {
        display: block !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
    .widget-featured-entertainers .card-listing-user-name {
        font-size: 0.95rem !important;
        line-height: 1.15 !important;
    }
    .widget-featured-entertainers .card-listing-rating {
        font-size: 0.8125rem !important;
        line-height: 1.25 !important;
    }
}

/* ========================================================================
   LISTING CARD IMAGE PLACEHOLDER — branded ENT logo on dark gradient
   Used when a listing has no image anywhere in the fallback chain
   (featured_image, featuredImage relation, any image media, primary
   category image). Renders the site logo (public/logo.svg) centered on a
   dark gradient background — distinguishable from a real listing photo,
   on-brand, no static placeholder file needed.
   ======================================================================== */
/* Listing card placeholder — when no real image exists.
   The .card-listing-link wrapper is position: absolute filling its parent,
   so we mirror that with absolute positioning + inset: 0 to ensure the
   placeholder fills the entire card image area (avoids layout collapse
   when the parent doesn't propagate height). */
.card-listing-image-container .card-listing-image--placeholder {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    background: radial-gradient(ellipse at center, #2A2A30 0%, #15151A 100%) !important;
    overflow: hidden;
}
.card-listing-image-container .card-listing-image--placeholder > img {
    width: 45% !important;
    height: auto !important;
    max-width: 140px !important;
    object-fit: contain !important;
    transform: none !important;
    transition: none !important;
    position: static !important;
}
