/* Generated with rtlcss 4.3.0. Run npm run css:rtl. Source SHA256: be3489e00040e5374ae8b464b2ae869033dd3688e5a46e729c27fed9ca165d6c */
/* StoryBand - Custom Styles */
/* Dynamic stage theme for gig management */

/* Search uses the leading magnifier; sort updates immediately after a choice. */
.list-query-search .list-search-submit,
.list-query-search .list-sort-submit {
    display: none !important;
}

.list-query-search .list-search .input-group {
    min-height: 3.25rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 0.78rem;
    background: rgba(255, 255, 255, 0.035);
    box-shadow: var(--gs-control-shadow);
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.list-query-search .list-search .input-group:hover {
    border-color: rgba(var(--gs-primary-rgb), 0.34);
    background: rgba(var(--gs-primary-rgb), 0.045);
}

.list-query-search .list-search .input-group:focus-within {
    border-color: rgba(var(--gs-primary-rgb), 0.62);
    background: rgba(var(--gs-primary-rgb), 0.055);
    box-shadow: 0 0 0 0.18rem rgba(var(--gs-primary-rgb), 0.12);
}

.list-query-search .list-search .form-control {
    min-width: 0;
    min-height: 3.15rem;
    padding: 0.58rem 0.15rem 0.58rem 0.8rem;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--gs-text);
    background: transparent !important;
    box-shadow: none !important;
}

.list-query-search .list-search .form-control::placeholder {
    color: var(--gs-text-muted);
    opacity: 1;
}

.list-query-search .list-search-trigger {
    appearance: none;
    display: inline-grid;
    width: 3rem;
    min-width: 3rem;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 0;
    color: var(--gs-primary);
    background: transparent;
    cursor: pointer;
    font: inherit;
    transition:
        color 160ms ease,
        background-color 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.list-query-search .list-search-trigger:hover,
.list-query-search .list-search-trigger:focus-visible {
    background-color: rgba(var(--gs-primary-rgb), 0.12);
    color: var(--gs-primary-highlight);
    outline: none;
}

.list-query-search .list-search-trigger:hover i,
.list-query-search .list-search-trigger:focus-visible i {
    transform: scale(1.08);
}

.list-query-search .list-search-trigger i {
    transition: transform 160ms ease;
}

.list-query-search .list-search-trigger:focus-visible {
    box-shadow: 0 0 0 0.18rem rgba(var(--gs-primary-rgb), 0.22);
    z-index: 5;
}

.list-query-search .list-sort .form-select {
    border-top-left-radius: var(--gs-radius-control) !important;
    border-bottom-left-radius: var(--gs-radius-control) !important;
}



/* Mobile venues flow: one compact list, map-first exploration, and focused forms. */
.venue-history-mobile-list,
.venues-mobile-tools,
.venue-form-mobile-title a,
.venue-detail-mobile-title a,
.mobile-fab-label {
    display: none;
}

.venue-search-trigger {
    color: var(--gs-primary);
    cursor: pointer;
}

.venue-search-trigger:hover,
.venue-search-trigger:focus-visible {
    color: var(--gs-primary-highlight);
}

.venue-stats-grid {
    display: grid;
    gap: 0.65rem;
}

.venue-stat-item {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.venue-stat-group {
    display: grid;
    gap: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.venue-stat-group-title {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    line-height: 1;
    text-transform: uppercase;
}

.venue-stat-group-items {
    display: grid;
    gap: 0.65rem;
}

.venue-history-count {
    display: inline-grid;
    min-width: 1.75rem;
    height: 1.75rem;
    margin-right: 0.35rem;
    place-items: center;
    border-radius: 999px;
    color: var(--gs-text);
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.72rem;
}

.venue-detail-map-card {
    overflow: hidden;
}

.venue-detail-map {
    position: relative;
}

.venue-detail-map-overlay {
    position: absolute;
    inset: 0;
    z-index: 500;
    border-radius: inherit;
    color: var(--gs-primary);
    text-decoration: none;
}

.venue-detail-map-overlay > span {
    align-items: center;
    display: inline-flex;
    position: absolute;
    left: 0.65rem;
    bottom: 0.65rem;
    width: 2rem;
    height: 2rem;
    justify-content: center;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.5);
    border-radius: var(--gs-radius-control);
    color: var(--gs-primary);
    background: rgba(8, 9, 11, 0.88);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.42);
}

.venue-detail-map-overlay:hover > span,
.venue-detail-map-overlay:focus-visible > span {
    color: #050505;
    background: var(--gs-primary);
}

.venue-detail-map-route {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.8rem 1rem;
    color: var(--gs-text);
    text-decoration: none;
}

.venue-detail-map-route span {
    display: grid;
    min-width: 0;
}

.venue-detail-map-route small {
    overflow: hidden;
    color: var(--gs-text-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-detail-map-route b {
    color: var(--gs-primary);
    font-size: 0.82rem;
}

.venue-additional-info {
    overflow: visible;
    border: 1px solid var(--gs-border);
    border-radius: 0.85rem;
    background: rgba(255, 255, 255, 0.02);
}

.venue-additional-info > summary {
    align-items: center;
    display: flex;
    min-height: 3rem;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.7rem 0.85rem;
    cursor: pointer;
    font-weight: 800;
    list-style: none;
}

.venue-additional-info > summary::-webkit-details-marker {
    display: none;
}

.venue-additional-info > summary i {
    transition: transform 180ms ease;
}

.venue-additional-info[open] > summary i {
    transform: rotate(-180deg);
}

.venue-additional-info-body {
    padding: 0.2rem 0.85rem 0.85rem;
}

.contact-multiselect-mobile-header,
.contact-multiselect-mobile-create {
    display: none;
}

@media (max-width: 767.98px) {
    .venues-page {
        display: grid;
        gap: 0.75rem;
        width: 100%;
        min-width: 0;
        padding-bottom: calc(var(--mobile-nav-height) + 3.5rem + env(safe-area-inset-bottom));
    }

    .venues-page .entity-page-actions > .btn {
        display: none !important;
    }

    .gigs-page.venues-page .view-toggle {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        position: relative;
        min-height: 2.35rem;
        padding: 0;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .venues-page .view-toggle-option:first-child {
        display: none;
    }

    .venues-page .view-toggle-option i {
        display: none;
    }

    .venues-page .view-toggle-option {
        color: var(--gs-text);
    }

    .venues-page .view-toggle-option.active {
        color: var(--gs-primary);
        background: transparent;
        box-shadow: none;
    }

    .venues-page .view-toggle-option:hover,
    .venues-page .view-toggle-option:focus-visible {
        color: var(--gs-text);
        background: transparent;
    }

    .gigs-page.venues-page .view-toggle::after {
        position: absolute;
        bottom: 0;
        right: 0;
        width: 50%;
        height: 3px;
        border-radius: 999px;
        background: var(--gs-primary);
        content: "";
        pointer-events: none;
        transition: right 220ms cubic-bezier(0.22, 1, 0.36, 1);
    }

    .gigs-page.venues-page .view-toggle:has([data-mobile-sliding-tab="map"].active)::after {
        right: 50%;
    }

    @media (prefers-reduced-motion: reduce) {
        .gigs-page.venues-page .view-toggle::after {
            transition: none;
        }
    }

    .gigs-page.venues-page .venue-list-control-panel.list-search-panel-with-sort {
        align-items: center;
        display: grid !important;
        grid-template-areas: "search";
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: 44px;
        column-gap: 0.6rem;
        row-gap: 0;
    }

    .gigs-page.venues-page .venue-list-control-panel .list-search {
        grid-area: search;
        grid-column: 1 !important;
        min-width: 0;
    }

    .gigs-page.venues-page .venue-list-control-panel .list-search,
    .gigs-page.venues-page .venue-list-control-panel .list-search .input-group,
    .gigs-page.venues-page .venue-list-control-panel .list-search .form-control {
        height: 44px;
        min-height: 44px;
    }

    .gigs-page.venues-page .list-search .venue-search-trigger {
        top: 0;
        bottom: 0;
        right: 0;
        z-index: 6;
        display: grid;
        width: 2.5rem;
        min-width: 2.5rem;
        padding: 0;
        place-items: center;
        color: var(--gs-primary);
        transform: none;
    }

    body:has(.venues-page-list) .mobile-event-fab.mobile-context-fab {
        display: none;
    }

    .venues-mobile-tools {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.55rem;
    }

    .venues-page-map .venues-mobile-tools {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .venues-page .venue-controls {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0.75rem;
    }

    .venues-page .venue-controls > *,
    .venues-page .venue-controls .gig-custom-dates,
    .venues-page .venue-controls .list-control-actions {
        grid-column: 1 / -1 !important;
    }

    .venues-page .list-control-actions {
        position: sticky;
        bottom: calc(-1rem - env(safe-area-inset-bottom));
        z-index: 5;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.55rem;
        margin: 0.3rem -1rem calc(-1rem - env(safe-area-inset-bottom));
        padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
        border-top: 1px solid rgba(255, 255, 255, 0.09);
        background: var(--gs-bg-elevated);
    }

    .venues-page .list-control-actions .btn:first-child {
        color: #080808;
        border-color: var(--gs-primary);
        background: var(--gs-primary);
    }

    .venues-page .entity-list-view {
        display: grid;
        gap: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .venues-page .venue-list-row {
        align-items: center;
        display: grid;
        min-height: 5rem;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.62rem;
        padding: 0.68rem 0.1rem;
        border-width: 0 0 1px;
        border-color: rgba(255, 255, 255, 0.08);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .venues-page .venue-list-row:hover,
    .venues-page .venue-list-row:focus-visible {
        transform: none;
    }

    .venues-page .entity-list-media .venue-list-logo {
        width: 2.8rem;
        height: 2.8rem;
        flex-basis: 2.8rem;
        border-radius: 0.62rem;
        box-shadow: none;
    }

    .venues-page .entity-list-main {
        min-width: 0;
    }

    .venues-page .entity-list-title {
        font-size: 0.82rem;
        line-height: 1.15;
    }

    .venues-page .entity-list-meta {
        margin-top: 0.2rem;
        font-size: 0.68rem;
    }

    .venues-page .venue-address-label {
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        display: -webkit-box;
        overflow: hidden;
        line-height: 1.2;
    }

    .venues-page .entity-list-stats {
        align-items: center;
        display: flex;
        grid-column: 2 / 4;
        gap: 0.45rem;
        margin-top: -0.12rem;
        color: var(--gs-text-muted);
        font-size: 0.68rem;
    }

    .venues-page .entity-list-stats span + span::before {
        margin-left: 0.45rem;
        color: var(--gs-text-muted);
        content: "·";
    }

    .venues-page .entity-list-stats strong,
    .venues-page .venue-list-earnings strong {
        color: var(--gs-primary);
        font-size: 0.77rem;
    }

    .venues-page .venue-list-row .entity-list-actions {
        display: none !important;
    }

    .venue-list-chevron {
        display: block;
        grid-column: 3;
        grid-row: 1;
        color: var(--gs-text-muted);
    }

    .venues-page .venues-mobile-tools .gigs-mobile-tool {
        min-height: 2.65rem;
        padding: 0.48rem 0.68rem;
        border-radius: 0.65rem;
    }

    .venues-page .venues-mobile-tools .gigs-mobile-tool strong {
        font-size: 0.72rem;
    }

    .venues-page .gigs-mobile-tool-chevron {
        color: var(--gs-text-muted);
        font-size: 0.72rem;
    }

    .venues-mobile-sort-form,
    .venues-mobile-sort-criteria,
    .venues-mobile-sort-direction {
        display: grid;
        gap: 0.45rem;
        margin: 0;
        padding: 0;
        border: 0;
    }

    .venues-mobile-sort-form {
        gap: 1rem;
        margin-top: 0.6rem;
    }

    .venues-mobile-sort-criteria legend,
    .venues-mobile-sort-direction legend {
        margin: 0 0 0.18rem;
        color: var(--gs-text-muted);
        font-size: 0.72rem;
        font-weight: 750;
    }

    .venues-mobile-sort-criterion {
        align-items: center;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.75rem;
        min-height: 3rem;
        padding: 0.55rem 0.2rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        cursor: pointer;
    }

    .venues-mobile-sort-criterion input,
    .venues-mobile-sort-direction input {
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }

    .venues-mobile-sort-criterion > i:first-of-type,
    .venues-mobile-sort-criterion.is-selected > i:last-child {
        color: var(--gs-primary);
    }

    .venues-mobile-sort-criterion > i:last-child {
        color: var(--gs-text-muted);
    }

    .venues-mobile-sort-direction > div {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.45rem;
    }

    .venues-mobile-sort-direction label span {
        align-items: center;
        display: flex;
        min-height: 2.65rem;
        justify-content: center;
        padding: 0.45rem 0.55rem;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 0.65rem;
        color: var(--gs-text-muted);
        background: rgba(255, 255, 255, 0.025);
        font-size: 0.72rem;
        font-weight: 800;
        text-align: center;
        cursor: pointer;
    }

    .venues-mobile-sort-direction input:checked + span {
        border-color: rgba(var(--gs-primary-rgb), 0.72);
        color: var(--gs-primary);
        background: rgba(var(--gs-primary-rgb), 0.08);
    }

    .venues-page-map .venue-map-shell {
        position: relative;
        overflow: hidden;
        border: 0;
        border-radius: 0.9rem;
        background: transparent;
        box-shadow: none;
    }

    .venues-page-map .venue-map-header {
        position: absolute;
        top: 0.65rem;
        left: 0.65rem;
        right: 0.65rem;
        z-index: 800;
        display: block;
        padding: 0;
        border: 0;
        background: transparent;
        pointer-events: none;
    }

    .venues-page-map .venue-map-header > div:first-child,
    .venues-page-map .venue-map-return-link {
        display: none;
    }

    .venues-page-map .venue-map-header-actions {
        display: block;
    }

    .venues-page-map .venue-map-stats {
        display: inline-flex;
        width: auto;
        gap: 0;
        padding: 0.5rem 0.65rem;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 999px;
        background: rgba(9, 10, 12, 0.94);
        box-shadow: 0 0.5rem 1.2rem rgba(0, 0, 0, 0.32);
        pointer-events: auto;
    }

    .venues-page-map .venue-map-stats span {
        display: inline-flex;
        min-height: 0;
        gap: 0.22rem;
        padding: 0;
        border: 0;
        background: transparent;
        font-size: 0.66rem;
        white-space: nowrap;
    }

    .venues-page-map .venue-map-stats span + span::before {
        margin: 0 0.42rem;
        color: var(--gs-primary);
        content: "·";
    }

    .venues-page-map .venue-map-stats strong {
        color: var(--gs-primary);
        font-size: inherit;
    }

    .venues-page-map .venue-map-layout {
        padding: 0;
    }

    .venues-page-map .venue-map-canvas {
        height: clamp(27rem, calc(100dvh - 17.5rem), 46rem);
        min-height: 27rem;
        border-radius: 0.9rem;
    }

    .venues-map-detail-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.6rem;
    }
    body:has(.venue-form-page) .app-topbar {
        min-height: 3.65rem;
    }

    body:has(.venue-form-page) .app-main-content {
        padding: 0 !important;
    }

    .venue-form-mobile-title,
    .venue-detail-mobile-title {
        align-items: center;
        display: flex;
        min-width: 0;
        gap: 0.75rem;
    }

    .venue-form-mobile-title a,
    .venue-detail-mobile-title a {
        display: inline-grid;
        width: 2.4rem;
        height: 2.4rem;
        flex: 0 0 auto;
        place-items: center;
        border-radius: 50%;
        color: var(--gs-text);
        text-decoration: none;
    }

    .venue-form-mobile-title span,
    .venue-detail-mobile-title span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .venue-form-page {
        min-height: calc(100dvh - 3.65rem);
        padding: 0.85rem var(--mobile-page-gutter) calc(var(--mobile-nav-height) + 1.25rem + env(safe-area-inset-bottom));
    }

    .venue-form-desktop-header {
        display: none;
    }

    .venue-form-page > .row,
    .venue-form-page > .row > div {
        margin: 0;
        padding: 0;
    }

    .venue-form-page .card {
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .venue-form-page .card-body {
        padding: 0;
    }

    .venue-form .venue-form-identity-row {
        display: block;
        margin-bottom: 0.85rem !important;
    }

    .venue-form .venue-form-identity-row > div:first-child {
        width: 100%;
    }

    .venue-form .venue-location-derived-field {
        display: none;
    }

    .venue-location-summary {
        margin-top: 0.45rem;
        color: var(--gs-primary);
        font-size: 0.72rem;
        font-weight: 750;
    }

    .venue-form-contact-field {
        display: grid;
        gap: 0.55rem;
    }

    .venue-form-contact-field > div {
        width: 100%;
    }

    .venue-form-new-contact-action .btn {
        justify-content: flex-start;
        min-height: 2.7rem;
        border: 0;
        color: var(--gs-primary);
        background: transparent;
        box-shadow: none;
    }

    .venue-form-new-contact-action {
        display: none;
    }

    .venue-form-logo-field .media-crop-block {
        align-items: center;
        display: grid;
        grid-template-columns: 4.5rem minmax(0, 1fr);
        gap: 0.85rem;
    }

    .venue-form-logo-field .media-crop-preview {
        width: 4.5rem;
        height: 4.5rem;
        min-height: 4.5rem;
        border-radius: 0.8rem;
    }

    .venue-form-logo-field .file-upload {
        min-height: 3rem;
        padding: 0.6rem;
        text-align: right;
    }

    .venue-form-logo-field .file-upload i {
        display: none !important;
    }
    .venue-form-page .contact-multiselect.is-open .contact-multiselect-menu,
    .venue-form-page .contact-multiselect-menu:not([hidden]) {
        position: fixed;
        top: 4rem;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1080;
        width: 100%;
        max-width: none;
        max-height: none;
        padding: 1rem var(--mobile-page-gutter);
        border: 0;
        border-radius: 0;
        background: var(--gs-bg-elevated);
    }

    body.contact-picker-open {
        overflow: hidden;
    }

    .venue-form-page .contact-multiselect-mobile-header {
        align-items: center;
        display: grid;
        grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem;
        gap: 0.5rem;
        margin: -0.25rem 0 1rem;
    }

    .venue-form-page .contact-multiselect-mobile-header button {
        display: inline-grid;
        width: 2.5rem;
        height: 2.5rem;
        padding: 0;
        place-items: center;
        border: 0;
        color: var(--gs-text);
        background: transparent;
    }

    .venue-form-page .contact-multiselect-mobile-header h2 {
        margin: 0;
        font-size: 1.05rem;
        text-align: center;
    }

    .venue-form-page .contact-multiselect-mobile-create {
        align-items: center;
        display: flex;
        min-height: 3rem;
        gap: 0.7rem;
        margin-top: 0.6rem;
        padding: 0.7rem 0.2rem;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        color: var(--gs-primary);
        font-weight: 800;
        text-decoration: none;
    }

    .venue-detail-page {
        padding-bottom: calc(var(--mobile-nav-height) + 3.5rem + env(safe-area-inset-bottom));
    }

    .venue-detail-desktop-header {
        display: none;
    }

    .venue-detail-layout {
        gap: 0.75rem !important;
    }

    .venue-detail-layout > div {
        width: 100%;
    }

    .venue-detail-layout-analytics > .col-lg-8 {
        order: -1;
    }

    .venue-detail-page .venue-profile-card,
    .venue-detail-page .venue-stats-card,
    .venue-detail-page .venue-detail-map-card,
    .venue-detail-page .col-lg-8 > .card {
        border-color: rgba(255, 255, 255, 0.09);
        border-radius: 0.9rem;
        box-shadow: none;
    }

    .venue-profile-body {
        display: grid;
        grid-template-columns: 5.25rem minmax(0, 1fr);
        gap: 0.35rem 0.85rem;
        padding: 0.85rem !important;
        text-align: right !important;
    }

    .venue-profile-card .venue-detail-logo,
    .venue-profile-card .venue-detail-logo-placeholder {
        width: 5.25rem;
        height: 5.25rem;
        min-width: 5.25rem;
        margin: 0 !important;
        grid-column: 1;
        grid-row: 1 / span 3;
        border-radius: 0.85rem;
        box-shadow: none;
    }

    .venue-profile-body > h3,
    .venue-profile-body > p,
    .venue-profile-body > .d-flex,
    .venue-profile-body > .venue-linked-contacts,
    .venue-profile-body > .venue-profile-actions {
        grid-column: 2;
        margin: 0 !important;
    }

    .venue-profile-body > h3 {
        align-self: end;
        font-size: 1.12rem;
        line-height: 1.15;
    }

    .venue-profile-body > p {
        font-size: 0.72rem;
        line-height: 1.25;
    }

    .venue-profile-body > .d-flex {
        justify-content: flex-start !important;
    }

    .venue-profile-body .venue-linked-contacts {
        grid-column: 1 / -1;
    }

    .venue-profile-actions {
        justify-content: flex-start;
    }

    .venue-profile-actions .btn {
        min-width: 0;
        padding: 0.45rem 0.7rem;
        font-size: 0.72rem;
    }

    .venue-stats-card .card-header {
        display: none;
    }

    .venue-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem;
        padding: 0.65rem !important;
    }

    .venue-stat-item {
        align-content: center;
        display: grid;
        min-height: 4.25rem;
        gap: 0.15rem;
        justify-content: stretch;
        padding: 0.65rem;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0.7rem;
        background: rgba(255, 255, 255, 0.025);
    }

    .venue-stat-item strong {
        grid-row: 1;
        color: var(--gs-text);
        font-size: 1.05rem;
    }

    .venue-stat-item span {
        grid-row: 2;
        font-size: 0.66rem;
    }

    .venue-stat-item-completed,
    .venue-stat-group {
        grid-column: 1 / -1;
    }

    .venue-stat-item-completed {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 3.35rem;
    }

    .venue-stat-item-completed strong {
        grid-column: 2;
        grid-row: 1;
    }

    .venue-stat-item-completed span {
        grid-column: 1;
        grid-row: 1;
    }

    .venue-stat-group {
        gap: 0.4rem;
        padding-top: 0.1rem;
        border-top: 0;
    }

    .venue-stat-group-title {
        padding-inline: 0.1rem;
        font-size: 0.66rem;
    }

    .venue-stat-group-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem;
    }

    .venue-detail-map-card {
        margin-top: 0.75rem !important;
    }

    .venue-detail-map-canvas {
        height: 10.5rem;
        min-height: 10.5rem;
        aspect-ratio: auto;
        border-radius: 0.9rem;
    }

    .venue-detail-page .col-lg-8 > .card > .card-header {
        padding: var(--gs-card-header-padding-block) 0.8rem;
    }

    .venue-history-card-header h5 {
        font-size: 1rem;
    }

    .venue-history-sort-form {
        width: auto;
    }

    .venue-history-sort-form .list-sort-submit {
        display: none;
    }

    .venue-history-sort-select {
        min-width: 8.75rem;
        max-width: 10rem;
        font-size: 0.72rem;
    }

    .venue-detail-page .col-lg-8 > .card > .card-body {
        padding: 0.75rem;
    }

    .venue-detail-page .table-responsive {
        display: none;
    }

    .venue-history-mobile-list {
        display: grid;
        gap: 0.5rem;
    }

    .venue-history-mobile-card {
        align-items: center;
        display: grid;
        min-height: 5.25rem;
        grid-template-columns: 3.1rem minmax(0, 1fr) auto auto;
        gap: 0.65rem;
        padding: 0.65rem;
        border: 1px solid rgba(255, 255, 255, 0.09);
        border-radius: 0.75rem;
        color: var(--gs-text);
        background: rgba(255, 255, 255, 0.025);
        text-decoration: none;
    }

    .venue-history-mobile-date {
        display: grid;
        justify-items: center;
        padding-left: 0.55rem;
        border-left: 1px solid rgba(255, 255, 255, 0.08);
        line-height: 1;
    }

    .venue-history-mobile-date strong {
        color: var(--gs-primary);
        font-size: 1.2rem;
    }

    .venue-history-mobile-date span,
    .venue-history-mobile-date small {
        margin-top: 0.2rem;
        color: var(--gs-text-muted);
        font-size: 0.58rem;
    }

    .venue-history-mobile-copy {
        display: grid;
        min-width: 0;
        gap: 0.18rem;
    }

    .venue-history-mobile-copy > strong {
        overflow: hidden;
        font-size: 0.78rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .venue-history-mobile-copy small,
    .venue-history-mobile-copy span {
        color: var(--gs-text-muted);
        font-size: 0.64rem;
    }

    .venue-history-mobile-copy b {
        color: var(--gs-primary);
    }

    .venue-history-mobile-status {
        font-size: 0.52rem;
    }

    .venue-history-mobile-card > .bi-chevron-right {
        color: var(--gs-text-muted);
        font-size: 0.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mobile-more-sheet,
    .mobile-sheet-backdrop,
    .filter-panel > .filter-panel-body,
    .mobile-filter-backdrop,
    .dashboard-period-sheet,
    .dashboard-create-sheet,
    .dashboard-period-backdrop,
    .dashboard-create-backdrop,
    .gigs-mobile-sheet,
    .venue-map-list.venue-map-mobile-sheet,
    .gigs-mobile-sheet-backdrop {
        transition-duration: 1ms !important;
        transition-delay: 0s !important;
    }
}

html.app-theme-personal-admin {
    --gs-primary: #30d3ff;
    --gs-primary-dark: #0798c7;
    --gs-primary-rgb: 48, 211, 255;
    --gs-primary-highlight: #9cf3ff;
    --gs-accent: #21c8f6;
    --gs-accent-rgb: 33, 200, 246;
    --gs-money: var(--gs-yellow);
    --gs-money-rgb: var(--gs-yellow-rgb);
    --gs-info-rgb: 48, 211, 255;
    --gs-concert-line-rgb: var(--gs-yellow-rgb);
    --gs-chart-grid: rgba(48, 211, 255, 0.13);
    --gs-primary-hover: #9cf3ff;
    --bs-warning: var(--gs-primary);
    --bs-warning-rgb: var(--gs-primary-rgb);
}

html {
    scrollbar-gutter: stable;
}

/* Base Styles */
body {
    background: var(--gs-bg-dark);
    color: var(--gs-text);
    font-family: var(--gs-body-font);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-y: scroll;
    text-rendering: geometricPrecision;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background:
        radial-gradient(circle at 18% 0%, rgba(var(--gs-primary-rgb), 0.06), transparent 28rem),
        radial-gradient(circle at 88% 12%, rgba(var(--gs-primary-rgb), 0.035), transparent 24rem),
        linear-gradient(-135deg, #060708 0%, #0b0c0f 46%, #050505 100%);
}

.app-body,
.app-shell,
.app-sidebar,
.app-topbar,
.app-main-content,
.app-main-content .card,
.app-main-content .btn,
.app-main-content .badge,
.app-main-content .form-control,
.app-main-content .form-select,
.app-nav-link,
.app-nav-active-pill,
.view-scope-segmented-control::before,
.view-scope-segment,
.app-user-menu-toggle,
.app-topbar-create-action {
    transition-property: background-color, border-color, box-shadow, color, fill, stroke, opacity, transform;
    transition-duration: 0.34s;
    transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

main {
    flex: 1;
}

h1, h2, h3, h4, h5, h6,
.navbar-brand,
.nav-link,
.dropdown-item,
.btn,
.badge,
.table thead th,
.stat-card .stat-value,
.entity-card .entity-name,
.entity-card .entity-stat-value,
.page-header h1,
.auth-logo h1,
.quick-action {
    font-family: var(--gs-display-font);
    letter-spacing: 0;
}

h1, h2, h3, h4, h5, h6,
.page-header h1,
.auth-logo h1 {
    font-weight: 800;
}

.app-main-content a.text-decoration-none:not(.btn),
.app-main-content .table a:not(.btn):not(.page-link):not(.table-sort-control),
.app-main-content .breadcrumb a,
.auth-card a.text-decoration-none {
    color: var(--gs-link-cyan);
    text-shadow: var(--gs-link-cyan-glow);
    transition: color 0.16s ease, text-shadow 0.16s ease;
}

.app-main-content a.text-decoration-none:not(.btn):hover,
.app-main-content a.text-decoration-none:not(.btn):focus-visible,
.app-main-content .table a:not(.btn):not(.page-link):not(.table-sort-control):hover,
.app-main-content .table a:not(.btn):not(.page-link):not(.table-sort-control):focus-visible,
.app-main-content .breadcrumb a:hover,
.app-main-content .breadcrumb a:focus-visible,
.auth-card a.text-decoration-none:hover,
.auth-card a.text-decoration-none:focus-visible {
    color: var(--gs-link-cyan-hover);
    text-shadow:
        0 0 0.5rem rgba(var(--gs-link-cyan-rgb), 0.42),
        0 0 1.1rem rgba(var(--gs-link-cyan-rgb), 0.2);
}

/* Navbar */
.navbar {
    background-color: var(--gs-bg-card) !important;
}

.navbar,
.footer {
    background:
        linear-gradient(-180deg, #0a0b0d 0%, #070708 100%) !important;
    border-color: rgba(var(--gs-primary-rgb), 0.2) !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.42);
}

.navbar-brand {
    font-size: 1.4rem;
    font-weight: 800;
}

.navbar-brand span {
    font-weight: 800 !important;
}

/* App Shell */
.app-body {
    display: block;
}

.app-shell {
    display: grid;
    grid-template-columns: 246px minmax(0, 1fr);
    min-height: 100vh;
}

.app-sidebar {
    background:
        radial-gradient(circle at 26% 0%, rgba(var(--gs-primary-rgb), 0.04), transparent 15rem),
        linear-gradient(-180deg, #0b0c0f 0%, #07080a 100%);
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    height: 100vh;
    position: sticky;
    top: 0;
    z-index: 1030;
}

.app-sidebar-brand-row {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    min-height: var(--app-header-height);
    padding: 1rem;
}

.app-sidebar-brand {
    align-items: center;
    display: inline-flex;
    min-width: 0;
    text-decoration: none;
}

.app-sidebar-toggle {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.5rem;
    color: var(--gs-text);
    display: inline-flex;
    flex: 0 0 2.75rem;
    font-size: 1.45rem;
    height: 2.75rem;
    justify-content: center;
    width: 2.75rem;
}

.app-sidebar-toggle:hover,
.app-sidebar-toggle:focus-visible {
    border-color: rgba(var(--gs-primary-rgb), 0.58);
    color: var(--gs-primary);
    outline: none;
}

.app-sidebar-panel {
    --bs-offcanvas-transition: transform 0.24s ease;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.app-sidebar-panel > .app-sidebar-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 1rem;
}

.app-sidebar-toggle:focus-visible,
.app-sidebar-panel .app-nav-link:focus-visible {
    outline: 2px solid var(--gs-primary);
    outline-offset: 2px;
}

.app-sidebar-nav {
    display: grid;
    gap: 0.38rem;
    isolation: isolate;
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

.app-nav-active-pill {
    background: linear-gradient(-180deg, var(--gs-primary-highlight) 0%, var(--gs-primary) 100%);
    border-radius: 0.5rem;
    box-shadow: 0 10px 22px rgba(var(--gs-primary-rgb), 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.24);
    display: block;
    height: 0;
    right: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translate3d(0, 0, 0);
    transition:
        transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
        width 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        height 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.14s ease;
    width: 0;
    will-change: transform, width, height;
    z-index: 0;
}

.app-nav-link {
    align-items: center;
    border-radius: 0.5rem;
    color: #d2d4d8;
    display: flex;
    font-family: var(--gs-display-font);
    font-size: 0.96rem;
    font-weight: 750;
    gap: 0.85rem;
    min-height: 2.9rem;
    padding: 0 0.9rem;
    position: relative;
    text-decoration: none;
    transition: background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
    z-index: 1;
}

.app-nav-link i {
    color: #aeb2bb;
    flex: 0 0 1.25rem;
    font-size: 1.16rem;
    line-height: 1;
    text-align: center;
}

.app-nav-link:hover,
.app-nav-link:focus-visible {
    background: rgba(255, 255, 255, 0.055);
    color: var(--gs-text);
    outline: none;
}

.app-nav-link:hover i,
.app-nav-link:focus-visible i {
    color: var(--gs-primary);
}

.app-nav-link.active {
    background: linear-gradient(-180deg, var(--gs-primary-highlight) 0%, var(--gs-primary) 100%);
    box-shadow: 0 10px 22px rgba(var(--gs-primary-rgb), 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.24);
    color: #050505;
}

.app-nav-link.active i {
    color: #050505;
}

.js-nav-motion .app-sidebar-nav.nav-pill-ready .app-nav-link.active,
.js-nav-motion .app-sidebar-nav.nav-pill-ready .app-nav-link.active:hover {
    background: transparent;
    box-shadow: none;
    color: #050505;
}

.js-nav-motion .app-sidebar-nav.nav-pill-ready .app-nav-link.active i {
    color: #050505;
}

.app-sidebar-footer {
    margin-top: auto;
    padding-top: 1rem;
}

.sidebar-band-switcher {
    align-items: center;
    background: linear-gradient(-145deg, rgba(255, 255, 255, 0.045), rgba(0, 0, 0, 0.24));
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    color: var(--gs-text);
    display: flex;
    gap: 0.75rem;
    min-height: 3.25rem;
    padding: 0.6rem 0.75rem;
    text-decoration: none;
    width: 100%;
}

.sidebar-band-switcher:not(.sidebar-band-switcher-static):hover,
.sidebar-band-switcher:not(.sidebar-band-switcher-static):focus-visible {
    border-color: rgba(var(--gs-primary-rgb), 0.42);
    color: var(--gs-text);
    outline: none;
}

.sidebar-band-switcher-static {
    cursor: default;
}

.sidebar-band-switcher::after {
    margin-right: auto;
}

.sidebar-band-copy {
    display: grid;
    min-width: 0;
}

.sidebar-band-name {
    color: var(--gs-text);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-band-role {
    color: var(--gs-text-muted);
    font-size: 0.74rem;
    font-weight: 600;
    line-height: 1.15;
    margin-top: 0.12rem;
}

.app-main-shell {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-width: 0;
}

.app-topbar {
    align-items: center;
    background:
        linear-gradient(-180deg, rgba(10, 11, 13, 0.96) 0%, rgba(7, 8, 10, 0.94) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    display: flex;
    gap: 1rem;
    min-height: var(--app-header-height);
    padding: 0 2rem;
    position: sticky;
    top: 0;
    z-index: 1020;
}

.app-topbar-title {
    align-items: center;
    display: flex;
    min-width: 0;
    view-transition-name: app-page-title;
}

.app-topbar-title h1 {
    align-items: center;
    color: var(--gs-text);
    display: inline-flex;
    font-size: 1.65rem;
    font-weight: 800;
    gap: 0.62rem;
    line-height: 1.05;
    margin: 0;
    min-width: 0;
}

.app-topbar-title h1 i {
    color: var(--gs-primary);
    flex: 0 0 auto;
    font-size: 1.42rem;
    line-height: 1;
}

.app-topbar-title h1 span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-topbar-flash-slot {
    align-items: center;
    align-self: stretch;
    display: flex;
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
    padding-inline: 1rem;
}

.app-topbar-flash-slot.is-empty {
    padding-inline: 0;
}

.app-topbar-actions {
    --app-topbar-action-gap: 1rem;
    align-items: center;
    display: inline-flex;
    gap: var(--app-topbar-action-gap);
}

.view-scope-switcher {
    flex: 0 0 auto;
    margin: 0;
}

.view-scope-segmented {
    align-items: center;
    display: inline-flex;
    gap: 0.625rem;
}

.view-scope-segmented-label {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
}

.view-scope-segmented-control {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.38rem;
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(5.9rem, 1fr));
    overflow: hidden;
    position: relative;
}

.view-scope-segmented-control::before {
    background: rgba(var(--gs-primary-rgb), 0.12);
    border-radius: 0.3rem;
    box-shadow: 0 0 0.9rem rgba(var(--gs-primary-rgb), 0.16);
    content: "";
    top: 2px; left: auto; bottom: 2px; right: 2px;
    pointer-events: none;
    position: absolute;
    transform: translate3d(0, 0, 0);
    transition:
        transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.24s ease;
    width: calc(50% - 2px);
    z-index: 0;
}

.view-scope-segmented-control[data-active-scope="self"]::before {
    transform: translate3d(-100%, 0, 0);
}

.view-scope-segment {
    align-items: center;
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 850;
    gap: 0.34rem;
    justify-content: center;
    min-height: 2rem;
    padding: 0.28rem 0.66rem;
    position: relative;
    transition: color 0.2s ease, opacity 0.2s ease;
    white-space: nowrap;
    width: 100%;
    z-index: 1;
}

.view-scope-segment:last-child {
    border-left: 0;
}

.view-scope-segment i {
    color: currentColor;
    font-size: 0.95rem;
    line-height: 1;
}

.view-scope-segment:hover,
.view-scope-segment:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    color: var(--gs-text);
    outline: none;
}

.view-scope-segment.active {
    background: transparent;
    box-shadow: none;
    color: var(--gs-text);
}

.view-scope-segment.active i,
.view-scope-segment.active span {
    color: var(--gs-primary);
}

.view-scope-segment:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.view-scope-segment-tooltip-target {
    display: flex;
    min-width: 0;
    position: relative;
    width: 100%;
    z-index: 1;
}

.view-scope-segmented.is-switching .view-scope-segmented-control::before {
    box-shadow: 0 0 1.15rem rgba(var(--gs-primary-rgb), 0.28);
}

.view-scope-segmented.is-switching .view-scope-segment {
    pointer-events: none;
}

.view-scope-segment-tooltip-target .view-scope-segment {
    border-left: 0;
    height: 100%;
    pointer-events: none;
}

.view-scope-segment-tooltip-target:focus-visible {
    border-radius: 0.32rem;
    outline: 2px solid rgba(var(--gs-primary-rgb), 0.8);
    outline-offset: -2px;
}

.view-scope-help-tooltip .tooltip-inner {
    max-width: 23rem;
    text-align: right;
}

.app-topbar-icon-link,
.app-user-menu-toggle {
    align-items: center;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.55);
    border-radius: 999px;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 auto;
    height: 2.6rem;
    justify-content: center;
    min-width: 2.6rem;
    padding: 0 0.58rem;
    text-decoration: none;
}

.app-topbar-icon-link {
    font-size: 1.1rem;
}

.app-topbar-create-slot .app-topbar-create-action {
    flex: 0 0 auto;
    min-height: 2.6rem;
    padding-inline: 0.95rem;
    transform: translate3d(0, 0, 0);
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        color 0.2s ease,
        opacity var(--app-topbar-create-motion-duration) var(--app-topbar-create-motion-easing),
        transform var(--app-topbar-create-motion-duration) var(--app-topbar-create-motion-easing);
    white-space: nowrap;
}

.app-topbar-create-slot .app-topbar-create-action .bi {
    font-size: 1rem;
}

.app-topbar-create-slot {
    --app-topbar-create-motion-duration: 0.42s;
    --app-topbar-create-motion-easing: cubic-bezier(0.22, 1, 0.36, 1);
    align-items: center;
    clip-path: inset(0 0 0 0);
    display: inline-flex;
    flex: 0 0 auto;
    min-width: 0;
    overflow: hidden;
    transform-origin: left center;
    transition:
        width var(--app-topbar-create-motion-duration) var(--app-topbar-create-motion-easing),
        margin-left var(--app-topbar-create-motion-duration) var(--app-topbar-create-motion-easing),
        clip-path var(--app-topbar-create-motion-duration) var(--app-topbar-create-motion-easing);
    will-change: width, margin-right, clip-path;
}

.app-topbar-create-slot.is-collapsing {
    --app-topbar-create-motion-duration: 0.8s;
    --app-topbar-create-motion-easing: cubic-bezier(0.4, 0, 0.6, 1);
}

.app-topbar-create-slot.is-expanding {
    --app-topbar-create-motion-duration: 0.42s;
}

.app-topbar-create-slot.is-empty {
    clip-path: inset(0 0 0 100%);
    margin-left: calc(var(--app-topbar-action-gap) * -1);
    pointer-events: none;
    width: 0;
}

.app-topbar-create-slot.is-empty .app-topbar-create-action {
    opacity: 0;
    transform: translate3d(-0.65rem, 0, 0);
}

.app-user-menu-toggle {
    background: transparent;
    border-color: transparent;
    gap: 0.65rem;
    height: 2.6rem;
    min-width: 0;
    padding: 0 0.22rem 0 0.34rem;
}

.app-topbar-icon-link:hover,
.app-topbar-icon-link:focus-visible,
.app-user-menu-toggle:hover,
.app-user-menu-toggle:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.12);
    border-color: rgba(var(--gs-primary-rgb), 0.45);
    color: var(--gs-primary);
    outline: none;
}

.app-welcome-tour-trigger {
    background: transparent;
    border-color: transparent;
    cursor: pointer;
    color: var(--gs-primary);
    font-size: 1.2rem;
    margin-right: 1rem;
    padding: 0;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.app-welcome-tour-trigger .bi {
    display: block;
    filter: none;
    line-height: 1;
    transition: filter 0.2s ease;
}

.app-welcome-tour-icon-filled {
    display: none !important;
}

.app-welcome-tour-trigger:hover,
.app-welcome-tour-trigger:focus-visible {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    color: var(--gs-primary-highlight);
}

.app-welcome-tour-trigger i {
    pointer-events: none;
}

.app-welcome-tour-trigger:hover .app-welcome-tour-icon-outline,
.app-welcome-tour-trigger:focus-visible .app-welcome-tour-icon-outline {
    filter:
        drop-shadow(0 0 0.24rem rgba(var(--gs-primary-rgb), 0.78))
        drop-shadow(0 0 0.62rem rgba(var(--gs-primary-rgb), 0.48));
}

.app-welcome-tour-trigger:active,
.app-welcome-tour-trigger[aria-pressed="true"] {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    color: var(--gs-primary);
    transform: none;
}

.app-welcome-tour-trigger:active .app-welcome-tour-icon-outline,
.app-welcome-tour-trigger[aria-pressed="true"] .app-welcome-tour-icon-outline {
    display: none;
}

.app-welcome-tour-trigger:active .app-welcome-tour-icon-filled,
.app-welcome-tour-trigger[aria-pressed="true"] .app-welcome-tour-icon-filled {
    display: block !important;
    filter: drop-shadow(0 0 0.5rem rgba(var(--gs-primary-rgb), 0.42));
}

.welcome-tour-layer[hidden] {
    display: none !important;
}

.welcome-tour-layer {
    inset: 0;
    position: fixed;
    z-index: 1090;
}

.welcome-tour-click-guard {
    inset: 0;
    position: absolute;
    z-index: 0;
}

.welcome-tour-spotlight {
    border: 2px solid rgba(var(--gs-primary-rgb), 0.96);
    border-radius: 0.75rem;
    box-shadow:
        0 0 0 9999px rgba(2, 4, 7, 0.78),
        0 0 0 4px rgba(var(--gs-primary-rgb), 0.15),
        0 0 1.75rem rgba(var(--gs-primary-rgb), 0.4);
    pointer-events: none;
    position: fixed;
    transition:
        height 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        right 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.2s ease,
        top 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        width 0.34s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 1;
}

.welcome-tour-spotlight::after {
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: inherit;
    content: "";
    inset: 3px;
    position: absolute;
}

.welcome-tour-popover {
    background:
        radial-gradient(circle at 100% 0, rgba(var(--gs-primary-rgb), 0.12), transparent 42%),
        linear-gradient(-155deg, rgba(25, 27, 31, 0.99), rgba(10, 12, 16, 0.99));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.68);
    border-radius: 0.85rem;
    box-shadow:
        0 1.25rem 3.5rem rgba(0, 0, 0, 0.58),
        0 0 1.4rem rgba(var(--gs-primary-rgb), 0.14);
    color: var(--gs-text);
    margin: 0;
    max-width: calc(100vw - 2rem);
    max-height: calc(100dvh - 1.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 1.1rem;
    position: fixed;
    transition:
        right 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.2s ease,
        top 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.2s ease;
    width: 23rem;
    z-index: 2;
}

.welcome-tour-popover.is-positioning {
    opacity: 0;
    transform: translateY(0.35rem) scale(0.985);
}

.welcome-tour-layer.is-changing-page .welcome-tour-spotlight,
.welcome-tour-layer.is-changing-page .welcome-tour-popover {
    opacity: 0;
    pointer-events: none;
}

.welcome-tour-popover-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.8rem;
}

.welcome-tour-progress {
    color: var(--gs-primary);
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.welcome-tour-close {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0.35rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    margin: -0.35rem 0 -0.35rem -0.35rem;
    transition: background-color 0.18s ease, color 0.18s ease;
    width: 2rem;
}

.welcome-tour-close:hover,
.welcome-tour-close:focus-visible {
    background: rgba(255, 255, 255, 0.08);
    color: var(--gs-text);
    outline: none;
}

.welcome-tour-icon {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.13);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.48);
    border-radius: 0.65rem;
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 1.18rem;
    height: 2.55rem;
    justify-content: center;
    margin-bottom: 0.78rem;
    width: 2.55rem;
}

.welcome-tour-title {
    color: var(--gs-text);
    font-size: 1.2rem;
    font-weight: 850;
    line-height: 1.25;
    margin: 0 0 0.45rem;
}

.welcome-tour-description {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
    line-height: 1.55;
    margin: 0;
}

.welcome-tour-actions {
    flex-wrap: wrap;
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    display: flex;
    gap: 0.55rem;
    margin-top: 1rem;
    padding-top: 0.9rem;
}

.welcome-tour-actions .btn {
    min-height: 2.35rem;
}

.welcome-tour-back {
    min-width: 5.2rem;
}

.welcome-tour-skip {
    color: var(--gs-text-muted);
    margin-right: auto;
    text-decoration: none;
}

.welcome-tour-skip:hover,
.welcome-tour-skip:focus-visible {
    color: var(--gs-text);
}

.welcome-tour-next {
    min-width: 5.4rem;
}

body.welcome-tour-open {
    overflow: hidden;
}

@media (max-width: 575.98px) {
    .band-settings-page {
        padding-inline: 0;
    }

    .band-settings-tabs {
        display: flex;
        width: 100%;
    }

    .band-settings-tab {
        flex: 1 0 auto;
        padding-inline: 0.8rem;
    }

    .welcome-tour-popover {
        bottom: 0.75rem;
        right: 0.75rem !important;
        max-width: none;
        padding: 1rem;
        top: auto !important;
        width: calc(100vw - 1.5rem);
    }

    .welcome-tour-actions {
        gap: 0.42rem;
    }

    .welcome-tour-actions .btn {
        font-size: 0.82rem;
        padding-inline: 0.72rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .app-welcome-tour-trigger,
    .welcome-tour-popover,
    .welcome-tour-spotlight {
        transition: none !important;
    }
}

.app-user-menu-toggle::after {
    border-top-width: 0.36em;
    color: var(--gs-primary);
    margin-right: 0;
}

.app-main-content {
    margin: 0 auto;
    max-width: 1360px;
    padding-bottom: clamp(3.5rem, 6vh, 5rem) !important;
    padding-right: 2rem !important;
    padding-left: 2rem !important;
    position: relative;
    transition: opacity 0.18s ease, filter 0.18s ease, transform 0.18s ease;
    view-transition-name: scope-content;
    width: 100%;
}

.app-main-content.is-scope-loading,
.app-main-content.is-table-sort-loading {
    pointer-events: none;
}

.app-main-content > :not(script):not(style):not(template) {
    transform-origin: center top;
    transition:
        opacity 0.22s ease,
        filter 0.24s ease,
        transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.app-main-content.is-scope-loading > :not(script):not(style):not(template) {
    animation: none;
    filter: saturate(0.72) blur(0.35px);
    opacity: 0.42;
    transform: translate3d(var(--app-content-exit-x, -14px), -4px, 0) scale(0.994);
    transition-delay: calc(var(--app-content-motion-index, 0) * 14ms);
}

.app-main-content.scope-content-enter > :not(script):not(style):not(template) {
    animation: scopeContentEnter 0.46s cubic-bezier(0.22, 1, 0.36, 1) both;
    animation-delay: calc(var(--app-content-motion-index, 0) * 32ms);
}

@keyframes scopeContentEnter {
    from {
        opacity: 0;
        filter: saturate(0.78) blur(0.8px);
        transform: translate3d(var(--app-content-enter-x, 18px), -8px, 0) scale(0.985);
    }
    to {
        opacity: 1;
        filter: none;
        transform: translate3d(0, 0, 0);
    }
}

::view-transition-old(root),
::view-transition-new(root) {
    animation: none;
}

::view-transition-group(*) {
    animation-duration: 0.38s;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

::view-transition-group(app-page-title) {
    animation-duration: 0.34s;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

::view-transition-old(app-page-title) {
    animation: appChromeOld 0.16s ease both;
}

::view-transition-new(app-page-title) {
    animation: appChromeNew 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}

::view-transition-old(scope-content) {
    animation: scopeContentOld 0.2s ease both;
}

::view-transition-new(scope-content) {
    animation: scopeContentNew 0.44s cubic-bezier(0.22, 1, 0.36, 1) both;
}

::view-transition-group(app-content-module-0),
::view-transition-group(app-content-module-1),
::view-transition-group(app-content-module-2),
::view-transition-group(app-content-module-3),
::view-transition-group(app-content-module-4),
::view-transition-group(app-content-module-5),
::view-transition-group(app-content-module-6),
::view-transition-group(app-content-module-7),
::view-transition-group(app-content-module-8),
::view-transition-group(app-content-module-9) {
    animation-duration: 0.46s;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

::view-transition-old(app-content-module-0),
::view-transition-old(app-content-module-1),
::view-transition-old(app-content-module-2),
::view-transition-old(app-content-module-3),
::view-transition-old(app-content-module-4),
::view-transition-old(app-content-module-5),
::view-transition-old(app-content-module-6),
::view-transition-old(app-content-module-7),
::view-transition-old(app-content-module-8),
::view-transition-old(app-content-module-9) {
    animation: appContentModuleOld 0.22s ease both;
}

::view-transition-new(app-content-module-0),
::view-transition-new(app-content-module-1),
::view-transition-new(app-content-module-2),
::view-transition-new(app-content-module-3),
::view-transition-new(app-content-module-4),
::view-transition-new(app-content-module-5),
::view-transition-new(app-content-module-6),
::view-transition-new(app-content-module-7),
::view-transition-new(app-content-module-8),
::view-transition-new(app-content-module-9) {
    animation: appContentModuleNew 0.46s cubic-bezier(0.22, 1, 0.36, 1) both;
}

::view-transition-new(app-content-module-1) { animation-delay: 24ms; }
::view-transition-new(app-content-module-2) { animation-delay: 48ms; }
::view-transition-new(app-content-module-3) { animation-delay: 72ms; }
::view-transition-new(app-content-module-4) { animation-delay: 96ms; }
::view-transition-new(app-content-module-5) { animation-delay: 120ms; }
::view-transition-new(app-content-module-6) { animation-delay: 144ms; }
::view-transition-new(app-content-module-7) { animation-delay: 168ms; }
::view-transition-new(app-content-module-8) { animation-delay: 192ms; }
::view-transition-new(app-content-module-9) { animation-delay: 216ms; }

@keyframes appContentModuleOld {
    to {
        filter: saturate(0.72) blur(0.7px);
        opacity: 0;
        transform: translate3d(4px, -3px, 0) scale(0.992);
    }
}

@keyframes appContentModuleNew {
    from {
        filter: saturate(0.8) blur(0.9px);
        opacity: 0;
        transform: translate3d(var(--app-content-enter-x, 18px), -8px, 0) scale(0.985);
    }
    to {
        filter: none;
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@keyframes appChromeOld {
    to {
        opacity: 0;
        transform: translate3d(0, -3px, 0);
    }
}

@keyframes appChromeNew {
    from {
        opacity: 0;
        transform: translate3d(0, 5px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes scopeContentOld {
    to {
        opacity: 0;
        transform: translate3d(0, -5px, 0);
    }
}

@keyframes scopeContentNew {
    from {
        opacity: 0;
        transform: translate3d(0, 9px, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .view-scope-segmented-control::before,
    .view-scope-segment,
    .app-topbar-create-slot,
    .app-topbar-create-action,
    .app-nav-active-pill,
    .mobile-bottom-nav-active-pill,
    .app-main-content {
        transition-duration: 0.01ms !important;
    }

    .app-main-content.scope-content-enter,
    ::view-transition-old(app-page-title),
    ::view-transition-new(app-page-title),
    ::view-transition-old(scope-content),
    ::view-transition-new(scope-content) {
        animation-duration: 0.01ms !important;
    }
}

/* Page navigation stays readable while the next document is fetched. */
.app-navigation-loader {
    position: absolute;
    inset-inline: 0;
    top: calc(100% + 0.65rem);
    display: flex;
    justify-content: center;
    padding-inline: 1rem;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-3px);
    transition: opacity 120ms ease, transform 120ms ease, visibility 0s 120ms;
    view-transition-name: app-navigation-loader;
}

.app-navigation-loader.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
}

.app-navigation-loader-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 2.5rem;
    max-width: 100%;
    padding: 0.55rem 1rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: var(--gs-radius-pill);
    background: var(--gs-bg-panel);
    color: var(--gs-text);
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.3), 0 0 18px rgba(var(--gs-primary-rgb), 0.08);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
}

.app-navigation-loader-wave {
    display: flex;
    align-items: center;
    gap: 3px;
    height: 20px;
    flex: 0 0 auto;
    color: var(--gs-primary);
}

.app-navigation-loader-wave i {
    width: 3px;
    height: 10px;
    border-radius: 3px;
    background: currentColor;
    animation: appNavigationWave 900ms ease-in-out infinite;
    animation-play-state: paused;
}

.app-navigation-loader-wave i:nth-child(2),
.app-navigation-loader-wave i:nth-child(4) { height: 15px; animation-delay: -150ms; }
.app-navigation-loader-wave i:nth-child(3) { height: 20px; animation-delay: -300ms; }
.app-navigation-loader.is-visible .app-navigation-loader-wave i { animation-play-state: running; }

@keyframes appNavigationWave {
    0%, 100% { transform: scaleY(0.55); }
    50% { transform: scaleY(1); }
}

/* A soft waiting state, followed by a viewport-sized destination placeholder. */
.app-main-content.is-loading-muted > :not(script):not(style):not(template) {
    opacity: 0.74;
    transition: opacity 160ms ease;
}
.app-main-content.is-page-skeleton-covered > :not(script):not(style):not(template) { opacity: 0; }
.has-page-skeleton [data-mobile-event-fab] { visibility: hidden; }
.app-page-skeleton {
    position: fixed;
    z-index: 1010;
    overflow: hidden;
    padding: 3.7rem 2rem 2rem;
    background: var(--gs-bg, #0b0c0f);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 150ms ease, visibility 0s 150ms;
}
.app-page-skeleton[hidden] { display: none !important; }
.app-page-skeleton.is-visible { opacity: 1; visibility: visible; transition-delay: 0s; }
.app-page-skeleton::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(-100deg, transparent 30%, rgba(255,255,255,0.025) 48%, transparent 66%);
    transform: translateX(100%);
    animation: pageSkeletonSweep 2.1s ease-in-out infinite;
    pointer-events: none;
}
@keyframes pageSkeletonSweep { to { transform: translateX(-100%); } }
.ps-layout { display: grid; gap: 1.25rem; margin-inline: auto; max-width: 1296px; min-width: 0; }
.ps-layout *, .ps-layout *::before, .ps-layout *::after { box-sizing: border-box; }
.ps-block { display: block; flex-shrink: 0; background: rgba(190,199,211,0.085); border-radius: 6px; }
.ps-line { height: 12px; max-width: 100%; }
.ps-short { width: 34%; }
.ps-medium { width: 64%; }
.ps-title { width: 190px; height: 18px; }
.ps-value { width: 125px; height: 30px; }
.ps-amount { width: 80px; height: 18px; }
.ps-toolbar, .ps-actions, .ps-tabs, .ps-form-actions { display: flex; align-items: center; gap: 0.75rem; min-width: 0; }
.ps-toolbar { justify-content: space-between; }
.ps-button { width: 126px; height: 40px; border-radius: 8px; }
.ps-tab { width: 130px; height: 36px; }
.ps-filters { display: grid; grid-template-columns: minmax(0, 3fr) 1fr 1fr; gap: 1rem; }
.ps-search, .ps-select, .ps-input { width: 100%; height: 46px; border-radius: 9px; }
.ps-panel { min-width: 0; padding: 1.15rem; border: 1px solid rgba(190,199,211,0.09); border-radius: var(--gs-radius-card, 14px); background: rgba(190,199,211,0.025); }
.ps-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.ps-metrics-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.ps-metric { display: grid; align-content: center; gap: 1.1rem; min-height: 136px; }
.ps-split { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 1.25rem; align-items: start; }
.ps-detail, .ps-settings { grid-template-columns: minmax(0,1fr) minmax(0,2fr); }
.ps-detail > div:last-child { display: grid; gap: 1.25rem; }
.ps-chart { height: 280px; padding: 2rem 0 0.75rem; }
.ps-chart-bars { display: flex; align-items: end; gap: 4%; height: 100%; border-bottom: 1px solid rgba(190,199,211,0.1); background: repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),rgba(190,199,211,0.045) 25%); }
.ps-chart-bars > span { flex: 1; height: var(--ps-bar); border-radius: 5px 5px 0 0; }
.ps-photo { width: 100%; height: 148px; border-radius: 9px; }
.ps-next-event > .ps-photo { margin-block: 1rem; height: 100px; }
.ps-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; }
.ps-card { padding: 0; overflow: hidden; }
.ps-card > .ps-photo { height: 190px; border-radius: 0; background: linear-gradient(-150deg,rgba(190,199,211,0.09),rgba(190,199,211,0.035)); }
.ps-card-copy { display: grid; gap: 1rem; padding: 1.25rem; }
.ps-card-stats { display: flex; gap: 1rem; padding-block: 1rem; border-top: 1px solid rgba(190,199,211,0.07); }
.ps-card-stats > span { flex: 1; }
.ps-avatar { width: 36px; height: 36px; border-radius: 50%; }
.ps-profile { width: 106px; height: 106px; border-radius: 50%; margin: 0 auto 1.5rem; }
.ps-row { display: flex; align-items: center; gap: 1rem; min-height: 72px; padding-block: 1rem; border-bottom: 1px solid rgba(190,199,211,0.065); }
.ps-row:last-child { border-bottom: 0; }
.ps-copy { display: grid; flex: 1; min-width: 0; gap: 0.7rem; }
.ps-table-head { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(190,199,211,0.09); padding-bottom: 1.2rem; }
.ps-table-head > span { width: 18%; }
.ps-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.ps-field { display: grid; gap: 0.65rem; }
.ps-field-wide { grid-column: 1/-1; }
.ps-textarea { width: 100%; height: 98px; }
.ps-form-actions { margin-top: 1.5rem; flex-wrap: wrap; }
.ps-layout-form, .ps-layout-operation { max-width: 900px; }
.ps-layout-operation .ps-panel > .ps-value { margin-block: 1rem; }
.ps-finances { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.ps-finances > .ps-panel > .ps-value { margin-block: 1.25rem; }
.ps-finances .ps-actions .ps-button:last-child { display: none; }
.ps-finances + .ps-panel > .ps-metrics { margin-top: 1.25rem; }
.ps-map-layout { display: grid; grid-template-columns: minmax(230px,1fr) minmax(0,2.5fr); gap: 1rem; }
.ps-map { min-height: 450px; position: relative; overflow: hidden; }
.ps-map-grid { position: absolute; inset: 0; background: repeating-linear-gradient(-25deg,transparent 0 80px,rgba(190,199,211,0.07) 82px 85px,transparent 87px 135px); }
.ps-pin { position: absolute; width: 24px; height: 24px; border-radius: 50% 50% 4px 50%; transform: rotate(45deg); top: 30%; right: 25%; }
.ps-pin:nth-child(2) { top: 57%; right: 61%; }
.ps-pin:nth-child(3) { top: 22%; right: 74%; }
.ps-pin:nth-child(4) { top: 69%; right: 32%; }
.ps-pin:nth-child(5) { top: 45%; right: 47%; }
.ps-calendar-days, .ps-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.ps-calendar-days { padding-block: 0.4rem 1rem; gap: 0.5rem; }
.ps-calendar-days > span { width: 30%; margin-inline: auto; }
.ps-calendar-grid > div { height: 88px; padding: 0.6rem; border-top: 1px solid rgba(190,199,211,0.08); border-inline-end: 1px solid rgba(190,199,211,0.06); min-width: 0; }
.ps-date { width: 16px; height: 11px; margin-inline-start: auto; margin-block-end: 0.7rem; }
.ps-event { width: 100%; height: 15px; margin-block-end: 5px; }
.ps-time-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); min-height: 520px; background: repeating-linear-gradient(to bottom,transparent 0 59px,rgba(190,199,211,0.07) 59px 60px); }
.ps-time-grid > div { padding: 8px 4px; border-inline-end: 1px solid rgba(190,199,211,0.08); }
.ps-time-event { height: 95px; width: 100%; margin-top: 125px; }
.ps-time-grid > div:nth-child(even) .ps-time-event { margin-top: 280px; }
.ps-time-grid > div:nth-child(3n) .ps-time-event { visibility: hidden; }
.ps-day { grid-template-columns: 1fr; }
.ps-day .ps-time-event { width: 85%; }
.ps-year { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.ps-calendar-mini { margin-top: 1rem; }
.ps-calendar-mini .ps-calendar-grid > div { height: 26px; padding: 4px; }
.ps-calendar-mini .ps-event { display: none; }
.ps-calendar-mini .ps-date { width: 9px; height: 7px; }
@media (max-width: 991.98px) {
    .ps-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ps-split, .ps-finances, .ps-map-layout { grid-template-columns: 1fr; }
    .ps-dashboard .ps-next-event { order: -1; }
    .ps-map-list { display: none; }
    .ps-metrics-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ps-settings > .ps-panel:first-child .ps-rows { display: none; }
    .ps-year { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767.98px) {
    .app-page-skeleton { padding: 3.5rem 1rem 1rem; }
    .ps-layout { gap: 1rem; }
    .ps-toolbar > .ps-title { width: 110px; }
    .ps-actions > .ps-button { width: 78px; height: 36px; }
    .ps-actions > .ps-button:last-child { display: none; }
    .ps-filters { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0.65rem; }
    .ps-search { grid-column: 1/-1; }
    .ps-cards, .ps-fields { grid-template-columns: 1fr; }
    .ps-card > .ps-photo { height: 175px; }
    .ps-panel { padding: 1rem; }
    .ps-card { padding: 0; }
    .ps-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0.65rem; }
    .ps-metrics-3 > :last-child { grid-column: 1/-1; min-height: 86px; }
    .ps-metric { min-height: 112px; padding: 0.85rem; }
    .ps-value { width: 95px; height: 24px; }
    .ps-chart { height: 210px; }
    .ps-table-head { display: none; }
    .ps-row { gap: 0.7rem; min-height: 80px; }
    .ps-amount { width: 54px; height: 15px; }
    .ps-calendar-grid > div { height: 76px; padding: 5px 3px; }
    .ps-calendar-days { gap: 0; }
    .ps-calendar-days > span { width: 16px; height: 9px; }
    .ps-calendar .ps-event { height: 12px; }
    .ps-tabs { gap: 0.5rem; }
    .ps-tab { min-width: 0; flex: 1; height: 34px; }
    .ps-year { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .app-page-skeleton, .app-main-content.is-loading-muted > * { transition: none; }
    .app-page-skeleton::after { animation: none; display: none; }
}


/* Only page modules are captured. The persistent shell must remain hit-testable. */
:root.is-page-transition { view-transition-name: none; }
:root.is-page-transition::view-transition { pointer-events: none; }
:root.is-page-transition::view-transition-group(*) {
    animation-duration: 150ms;
    animation-delay: 0s;
}
:root.is-page-transition::view-transition-old(*),
:root.is-page-transition::view-transition-new(*) {
    animation-duration: 150ms;
    animation-delay: 0s;
}
:root.is-page-transition::view-transition-old(app-page-content) {
    animation: appPageOld 150ms ease-out both;
}
:root.is-page-transition::view-transition-new(app-page-content) {
    animation: appPageNew 150ms ease-out both;
}
:root.is-page-transition::view-transition-old(root),
:root.is-page-transition::view-transition-new(root),
:root.is-page-transition::view-transition-group(app-navigation-loader),
:root.is-page-transition::view-transition-old(app-navigation-loader),
:root.is-page-transition::view-transition-new(app-navigation-loader) { animation: none; }

@keyframes appPageOld { to { opacity: 0; } }
@keyframes appPageNew { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
    .app-navigation-loader { transition: none; transform: none; }
    .app-navigation-loader-wave i { animation: none; }
}

.app-body .app-main-content > .page-header {
    margin-bottom: 1.45rem;
}

.app-body .app-main-content > .page-header h1 {
    display: none;
}

.nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem !important;
    border-radius: var(--gs-radius-pill);
    margin: 0 0.1rem;
    font-weight: 700;
    min-height: 2.5rem;
    white-space: nowrap;
    transition: background-color 0.2s;
}

.nav-link .bi {
    flex: 0 0 1rem;
    width: 1rem;
    line-height: 1;
}

.band-switcher-toggle {
    gap: 0.45rem;
}

.band-switcher-name {
    min-width: 0;
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.band-switcher-avatar {
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
    border: 2px solid rgba(var(--gs-primary-rgb), 0.78);
    border-radius: 50%;
    object-fit: cover;
    object-position: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    box-shadow: 0 0 12px rgba(var(--gs-primary-rgb), 0.18);
}

.band-switcher-avatar-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gs-primary);
    font-size: 0.85rem;
}

.band-switcher-avatar-sm {
    flex-basis: 1.35rem;
    width: 1.35rem;
    height: 1.35rem;
    border-width: 1px;
}

.band-switcher-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.band-switcher-menu {
    min-width: 100%;
    padding: 0.45rem;
}

.band-switcher-menu-title {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0;
    padding: 0.25rem 0.55rem 0.38rem;
    text-transform: uppercase;
}

.band-switcher-check {
    align-items: center;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 1rem;
    font-size: 0.92rem;
    justify-content: center;
    opacity: 0;
}

.band-switcher-item.active .band-switcher-check {
    opacity: 1;
}

.band-switcher-menu .band-switcher-item,
.band-switcher-menu .band-switcher-action {
    border-radius: 0.38rem;
    gap: 0.5rem;
    min-height: 2.15rem;
    padding: 0.42rem 0.55rem;
}

.band-switcher-menu .band-switcher-item.active,
.band-switcher-menu .band-switcher-action.active {
    background:
        radial-gradient(circle at 10% 30%, rgba(var(--gs-primary-rgb), 0.16), transparent 4.5rem),
        rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-text);
}

.band-switcher-menu .band-switcher-action.active {
    box-shadow: inset -2px 0 0 var(--gs-primary);
}

.band-switcher-action {
    align-items: center;
    display: flex;
}

.band-switcher-action .bi {
    color: var(--gs-primary);
    flex: 0 0 1rem;
    font-size: 0.95rem;
    line-height: 1;
    text-align: center;
}

.user-menu-toggle {
    gap: 0.35rem;
    padding-right: 0.55rem !important;
    padding-left: 0.55rem !important;
}

.user-menu-avatar {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 2px solid rgba(var(--gs-primary-rgb), 0.78);
    border-radius: 50%;
    box-shadow: 0 0 12px rgba(var(--gs-primary-rgb), 0.22);
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 2rem;
    font-size: 1rem;
    height: 2rem;
    justify-content: center;
    object-fit: cover;
    object-position: center;
    overflow: hidden;
    width: 2rem;
}

.tooltip.storyband-tooltip,
.tooltip {
    --bs-tooltip-bg: rgba(24, 24, 20, 0.96);
    --bs-tooltip-color: var(--gs-text);
    --bs-tooltip-max-width: 17rem;
    --bs-tooltip-padding-x: 0.72rem;
    --bs-tooltip-padding-y: 0.54rem;
    --bs-tooltip-border-radius: 0.35rem;
    font-family: var(--gs-body-font);
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.34;
}

.tooltip .tooltip-inner {
    border: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    box-shadow: 0 0.9rem 2.2rem rgba(0, 0, 0, 0.44), 0 0 1.4rem rgba(var(--gs-primary-rgb), 0.08);
    text-align: right;
}


/* Truncated text uses the shared tooltip surface without clipping its content. */
.truncated-text-tooltip {
    --bs-tooltip-max-width: min(22rem, calc(100vw - 2rem));
    pointer-events: auto;
}

.truncated-text-tooltip .tooltip-inner {
    max-height: min(24rem, calc(100dvh - 2rem));
    overflow-y: auto;
    overflow-wrap: anywhere;
    white-space: normal;
    text-align: start;
}

[data-truncated-text][tabindex="0"]:focus-visible {
    outline: 2px solid var(--gs-primary);
    outline-offset: 3px;
    border-radius: var(--gs-radius-control);
}

.nav-link:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.nav-link.active {
    background-color: var(--gs-primary) !important;
}

.nav-link:hover {
    background-color: rgba(var(--gs-primary-rgb), 0.14);
}

.nav-link.active {
    color: #050505 !important;
    box-shadow: 0 10px 26px rgba(var(--gs-primary-rgb), 0.24);
}

.navbar-nav[data-primary-nav] {
    position: relative;
    isolation: isolate;
}

.nav-active-pill {
    display: none;
}

@media (min-width: 1200px) {
    .js-nav-motion .navbar-nav[data-primary-nav] .nav-link.active,
    .js-nav-motion .navbar-nav[data-primary-nav] .nav-link.active:hover {
        color: var(--gs-text-muted) !important;
        background-color: transparent !important;
        box-shadow: none;
    }

    .navbar-nav[data-primary-nav].nav-pill-ready .nav-active-pill {
        display: block;
        position: absolute;
        right: 0;
        top: 0;
        width: 0;
        height: 0;
        margin: 0;
        padding: 0;
        list-style: none;
        border-radius: var(--gs-radius-pill);
        background: var(--gs-primary);
        box-shadow: 0 10px 26px rgba(var(--gs-primary-rgb), 0.24);
        opacity: 0;
        pointer-events: none;
        transform: translate3d(0, 0, 0);
        transition:
            transform 0.26s cubic-bezier(0.25, 0.1, 0.25, 1),
            width 0.26s cubic-bezier(0.25, 0.1, 0.25, 1),
            height 0.26s cubic-bezier(0.25, 0.1, 0.25, 1),
            opacity 0.14s ease;
        will-change: transform, width, height;
        z-index: 0;
    }

    .navbar-nav[data-primary-nav].nav-pill-ready .nav-item,
    .navbar-nav[data-primary-nav].nav-pill-ready .nav-link {
        position: relative;
        z-index: 1;
    }

    .navbar-nav[data-primary-nav].nav-pill-ready .nav-link.active,
    .navbar-nav[data-primary-nav].nav-pill-ready .nav-link.active:hover,
    .navbar-nav[data-primary-nav].nav-pill-ready .nav-link.nav-link-pending,
    .navbar-nav[data-primary-nav].nav-pill-ready .nav-link.nav-link-pending:hover {
        color: #050505 !important;
        background-color: transparent !important;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .navbar-nav[data-primary-nav].nav-pill-ready .nav-active-pill {
        transition: none;
    }
}

/* Cards */
.card {
    background-color: var(--gs-bg-card);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-panel);
}

.card {
    background:
        radial-gradient(circle at 92% 0%, rgba(var(--gs-primary-rgb), 0.055), transparent 12rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.035) 0%, #101114 36%, #08090b 100%);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: var(--gs-elevation-3d);
    overflow: hidden;
}

.card-header {
    background:
        linear-gradient(-90deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015) 44%, transparent);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-panel) var(--gs-radius-panel) 0 0 !important;
    padding: var(--gs-card-header-padding-block) 1.15rem;
}

.card-header :is(h1, h2, h3, h4, h5, h6):not(.danger-zone-title),
.card-body > :is(h1, h2, h3, h4, h5, h6):not(.danger-zone-title) {
    color: var(--gs-text);
}

.card-header :is(h1, h2, h3, h4, h5, h6):not(.danger-zone-title) > .bi:first-child,
.card-body > :is(h1, h2, h3, h4, h5, h6):not(.danger-zone-title) > .bi:first-child,
.entity-card-heading > .bi:first-child,
.message-target-heading > .bi:first-child,
.filter-panel-title > .bi:first-child {
    color: var(--gs-primary) !important;
}

/* Stats Cards */
.stat-card {
    background: linear-gradient(-135deg, var(--gs-bg-card) 0%, #2a2e33 100%);
    border: none;
    border-radius: var(--gs-radius-panel);
    padding: 1.25rem 1.25rem 1.15rem;
    height: 100%;
    transition: transform 0.2s, box-shadow 0.2s;
}

.stat-card {
    position: relative;
    overflow: visible;
    background:
        radial-gradient(circle at 84% 18%, rgba(var(--gs-primary-rgb), 0.09), transparent 5.2rem),
        linear-gradient(-150deg, #111215 0%, #08090b 62%, rgba(var(--gs-primary-rgb), 0.055) 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.2);
    box-shadow: var(--gs-elevation-3d);
    min-height: 7.5rem;
}

.stat-card::after {
    content: none;
}

.stat-card > * {
    position: relative;
    z-index: 1;
}

.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--gs-elevation-3d-hover);
}

.stat-card .stat-icon {
    position: absolute;
    top: 1.1rem;
    left: 1.1rem;
    width: 52px;
    height: 52px;
    min-width: 52px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.32rem;
    margin-right: 0;
    border: 2px solid rgba(var(--gs-primary-rgb), 0.72);
    background:
        linear-gradient(-145deg, #18191d 0%, #0c0d10 100%) !important;
    color: var(--gs-primary);
    box-shadow:
        0 10px 18px rgba(0, 0, 0, 0.46),
        0 0 0 7px rgba(var(--gs-primary-rgb), 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.stat-card .stat-currency-symbol {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 1;
    color: #ffffff;
}

.stat-card .d-flex {
    display: block !important;
    min-height: 100%;
    position: static;
    z-index: auto;
}

.stat-card .d-flex > div:first-child {
    position: relative;
    z-index: 1;
    padding-left: 4.45rem;
}

.stat-card .stat-value {
    padding-top: 0;
    font-size: 2rem;
    font-weight: 800;
    line-height: 0.98;
    color: var(--gs-text);
    text-shadow: 0 4px 14px rgba(0, 0, 0, 0.52);
    font-variant-numeric: tabular-nums;
}

.stat-value-row {
    align-items: center;
    display: flex;
    gap: 0.7rem;
    min-width: 0;
}

.stat-trend {
    align-items: center;
    background: transparent;
    border-radius: var(--gs-radius-pill);
    border: 1px solid transparent;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.82rem;
    font-weight: 900;
    gap: 0.34rem;
    line-height: 1;
    padding: 0.28rem 0.34rem 0.28rem 0.5rem;
    position: relative;
}

.stat-trend .bi {
    color: currentColor;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.06rem;
    font-weight: 950;
    line-height: 1;
    opacity: 1;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.54);
    transform: translateY(-0.01rem);
    -webkit-text-stroke: 0.035rem currentColor;
}

.stat-trend-value {
    display: inline-flex;
    line-height: 1;
    transform: translateY(-0.01rem);
}

.stat-trend-up {
    background: transparent;
    border-color: transparent;
    color: #35d6a6;
}

.stat-trend-down {
    background:
        radial-gradient(circle at 15% 30%, rgba(255, 127, 141, 0.18), transparent 2.4rem),
        linear-gradient(-135deg, rgba(142, 29, 42, 0.96), rgba(58, 14, 21, 0.99));
    border-color: rgba(255, 127, 141, 0.92);
    box-shadow: 0 8px 20px rgba(127, 29, 29, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.1);
    color: #fff7f8;
    text-shadow: 0 1px 1px rgba(22, 4, 8, 0.86);
}

.stat-trend-down .stat-trend-value {
    color: #ffffff;
}

.stat-trend-down .bi {
    color: #ffffff;
    filter: drop-shadow(0 0 0.08rem rgba(22, 4, 8, 0.9));
    font-size: 1.12rem;
    font-weight: 950;
    text-shadow: 0 1px 1px rgba(22, 4, 8, 0.9), 0 0 0.08rem rgba(255, 255, 255, 0.72);
    -webkit-text-stroke: 0.04rem #ffffff;
}

.stat-trend-flat,
.stat-trend-neutral {
    background: transparent;
    border-color: transparent;
    color: var(--gs-text-muted);
}

.stat-trend-tooltip {
    background: rgba(12, 12, 12, 0.96);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.38);
    border-radius: 0.75rem;
    bottom: calc(100% + 0.7rem);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.5);
    color: var(--gs-text);
    display: grid;
    gap: 0.42rem;
    font-size: 0.78rem;
    font-weight: 600;
    right: 50%;
    line-height: 1.35;
    opacity: 0;
    padding: 0.75rem 0.85rem;
    pointer-events: none;
    position: absolute;
    text-align: right;
    transform: translate(50%, 0.35rem);
    transition: opacity 0.16s ease, transform 0.16s ease;
    visibility: hidden;
    width: min(20rem, calc(100vw - 2rem));
    z-index: 20;
}

.stat-trend-tooltip-title {
    color: var(--gs-primary);
    font-size: 0.78rem;
    font-weight: 900;
}

.stat-trend-tooltip-row {
    align-items: baseline;
    display: flex;
    gap: 0.85rem;
    justify-content: space-between;
}

.stat-trend-tooltip-row span {
    color: var(--gs-text-muted);
    font-weight: 700;
}

.stat-trend-tooltip-row strong {
    color: var(--gs-text);
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    white-space: nowrap;
}

.stat-trend-tooltip-period {
    border-bottom: 1px solid rgba(var(--gs-primary-rgb), 0.16);
    color: rgba(255, 255, 255, 0.68);
    display: block;
    font-size: 0.74rem;
    font-weight: 700;
    padding-bottom: 0.32rem;
}

.stat-trend:hover .stat-trend-tooltip,
.stat-trend:focus-visible .stat-trend-tooltip {
    opacity: 1;
    transform: translate(50%, 0);
    visibility: visible;
}

.dashboard-kpi-card .stat-trend-tooltip {
    bottom: auto;
    top: calc(100% + 0.7rem);
    transform: translate(50%, -0.35rem);
}

.dashboard-kpi-card .stat-trend:hover .stat-trend-tooltip,
.dashboard-kpi-card .stat-trend:focus-visible .stat-trend-tooltip {
    transform: translate(50%, 0);
}

.stat-card .stat-label {
    margin-top: 0.3rem;
    font-size: 0.95rem;
    line-height: 1.35;
    color: var(--gs-text-muted);
}

.stat-card .stat-caption {
    margin-top: 0.35rem;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.82rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.stat-insight {
    color: var(--gs-money);
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.25;
    margin-top: 0.72rem;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.stat-insight-split {
    align-items: baseline;
    color: var(--gs-text);
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem;
}

.stat-insight-split strong {
    color: var(--gs-money);
    font-weight: 900;
}

.stat-dynamics {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    margin-top: 0.7rem;
    padding: 0.32rem 0.55rem;
    border-radius: var(--gs-radius-pill);
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.15;
}

.stat-dynamics i {
    font-size: 0.86rem;
}

.stat-dynamics span {
    overflow-wrap: anywhere;
}

.stat-dynamics-up {
    background: transparent;
    color: #30dca8;
}

.stat-dynamics-down {
    background: transparent;
    color: #ff8f9b;
}

.stat-dynamics-flat {
    background: transparent;
    color: #d5d5d5;
}

.stat-dynamics-neutral {
    background: transparent;
    color: var(--gs-accent);
}

.dashboard-kpi-panel {
    animation: dashboard-panel-enter 0.24s ease-out both;
    display: block;
    position: relative;
    transition: opacity 0.18s ease, transform 0.18s ease, filter 0.18s ease;
    z-index: 2;
}

@media (min-width: 768px) {
    .dashboard-kpi-panel:has(.dashboard-kpi-ring:hover),
    .dashboard-kpi-panel:has(.dashboard-kpi-ring:focus-visible),
    .dashboard-kpi-panel:has(.dashboard-kpi-ring:active) {
        z-index: 80;
    }
}

.dashboard-kpi-panel.dashboard-period-is-updating {
    filter: saturate(0.88);
    opacity: 0.58;
    transform: translateY(0.35rem);
    pointer-events: none;
}

@keyframes dashboard-panel-enter {
    from {
        opacity: 0.72;
        transform: translateY(0.45rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dashboard-period-form {
    margin-bottom: 1.35rem;
}

.dashboard-period-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 0.75rem 0.9rem;
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.dashboard-period-copy {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    gap: 0.55rem;
    min-width: 0;
}

.dashboard-period-copy .form-label {
    margin: 0;
    padding: 0.3rem 0.5rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: var(--gs-radius-pill);
    background: rgba(255, 194, 15, 0.035);
    color: rgba(255, 229, 148, 0.74);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.dashboard-period-caption {
    color: var(--gs-text);
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.dashboard-period-controls {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 0.55rem;
    margin-right: auto;
}

.dashboard-period-controls .form-select {
    flex: 0 0 18.5rem;
    width: 18.5rem;
    min-width: 11.5rem;
    max-width: 18.5rem;
}

/* Keep the desktop period control in the same row as its statistics context. */
@media (min-width: 768px) {
    .dashboard-page .dashboard-period-form { margin-bottom: 1rem; }
    .dashboard-page .dashboard-kpi-panel > .row > :last-child .dashboard-kpi-ring .analytics-tooltip {
        right: auto;
        left: 0;
    }
    .dashboard-page .dashboard-period-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.75rem 1rem;
    }
    .dashboard-page .dashboard-period-copy {
        flex-wrap: wrap;
        gap: 0.25rem 0.75rem;
        width: auto;
    }
    .dashboard-statistics-label {
        color: var(--gs-text);
        font-size: 1rem;
        font-weight: 800;
    }
    .dashboard-page .dashboard-period-caption {
        color: var(--gs-text-muted);
        font-size: 0.875rem;
        font-weight: 500;
        line-height: 1.4;
        overflow-wrap: normal;
    }
    .dashboard-page .dashboard-period-controls { width: auto; }
    .dashboard-page .analytics-period-selector {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        min-width: 0;
    }
    .dashboard-page .analytics-period-selector > .form-select {
        flex: 0 1 18.5rem;
        width: 18.5rem;
        min-width: 0;
        max-width: 18.5rem;
    }
    .dashboard-page .analytics-period-selector > label {
        margin: 0;
        font-size: 0.8125rem;
        font-weight: 650;
        white-space: nowrap;
    }
    .dashboard-page .dashboard-period-toolbar > .dashboard-custom-dates {
        grid-column: 1 / -1;
        justify-content: flex-end;
        flex-direction: row;
        flex-wrap: wrap;
        width: 100%;
        min-width: 0;
    }
}
@media (max-width: 767.98px) {
    .dashboard-page .dashboard-period-toolbar > .dashboard-custom-dates {
        display: none !important;
    }
}

.analytics-period-selector {
    display: grid;
    gap: 0.28rem;
    min-width: 18.5rem;
}

.analytics-period-selector > label {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
}

.analytics-period-selector > .form-select {
    min-width: 0;
    width: 100%;
}

.analytics-period-range {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-weight: 650;
    line-height: 1.25;
}

.analytics-period-custom {
    align-items: flex-end;
    display: flex;
    gap: 0.45rem;
}

.analytics-period-date-field {
    display: grid;
    gap: 0.25rem;
    margin: 0;
}

.analytics-period-date-field > span {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
}

.analytics-period-date-field .form-control {
    min-width: 9.4rem;
}

.analytics-period-actions {
    align-items: center;
    display: flex;
    gap: 0.45rem;
}

.analytics-period-actions .btn {
    min-height: 2.75rem;
    white-space: nowrap;
}

.dashboard-kpi-card {
    border-radius: var(--gs-radius-panel);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 10.85rem;
    padding: 1rem;
    z-index: 1;
}

.dashboard-kpi-card:hover,
.dashboard-kpi-card:focus-within {
    z-index: 4;
}

.dashboard-kpi-card .stat-value {
    font-size: 2.15rem;
}

.dashboard-kpi-content {
    align-items: center;
    display: grid;
    flex: 1;
    gap: 0.95rem;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 0;
    position: relative;
    z-index: 3;
}

.dashboard-kpi-copy {
    min-width: 0;
}

.dashboard-kpi-ring {
    --kpi-ring-size: 8.55rem;
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    display: grid;
    flex: 0 0 var(--kpi-ring-size);
    height: var(--kpi-ring-size);
    justify-items: center;
    margin: 0;
    padding: 0;
    position: relative;
    width: var(--kpi-ring-size);
}

.dashboard-kpi-ring::before {
    background:
        radial-gradient(circle at 50% 50%, rgba(var(--gs-primary-rgb), 0.04), transparent 58%),
        rgba(var(--gs-primary-rgb), 0.025);
    border-radius: 50%;
    box-shadow:
        0 0 1.05rem rgba(var(--gs-primary-rgb), 0.13),
        0 0 2.1rem rgba(var(--gs-primary-rgb), 0.065);
    content: "";
    inset: 0.42rem;
    position: absolute;
}

.dashboard-kpi-ring-svg {
    height: 100%;
    overflow: visible;
    position: relative;
    transform: rotate(90deg);
    width: 100%;
    z-index: 1;
}

.dashboard-kpi-ring-track,
.dashboard-kpi-ring-value {
    fill: none;
    stroke-width: 7;
}

.dashboard-kpi-ring-track {
    stroke: rgba(255, 255, 255, 0.18);
}

.dashboard-kpi-ring-value {
    filter:
        drop-shadow(0 0 0.32rem rgba(var(--gs-primary-rgb), 0.5))
        drop-shadow(0 0 0.72rem rgba(var(--gs-primary-rgb), 0.22));
    stroke: var(--gs-primary);
    stroke-dasharray: var(--kpi-ring-dash, 0) 314.16;
    stroke-linecap: round;
    opacity: var(--kpi-ring-opacity, 1);
    transition: filter 0.18s ease, stroke-dasharray 0.22s ease;
}

.dashboard-kpi-ring-center {
    align-items: center;
    background:
        radial-gradient(circle at 50% 20%, rgba(255, 255, 255, 0.05), transparent 3.6rem),
        radial-gradient(circle at 50% 85%, rgba(var(--gs-primary-rgb), 0.05), transparent 3.1rem),
        rgba(6, 7, 8, 0.62);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.08);
    border-radius: 50%;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        inset 0 -0.9rem 1.8rem rgba(var(--gs-primary-rgb), 0.022);
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    height: 5.95rem;
    justify-content: center;
    right: 50%;
    line-height: 1;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translate(50%, -50%);
    width: 5.95rem;
    z-index: 2;
}

.dashboard-kpi-ring-center strong {
    color: var(--gs-text);
    display: block;
    font-size: clamp(1.55rem, 2.45vw, 2.35rem);
    font-weight: 950;
    letter-spacing: 0;
    line-height: 0.95;
    max-width: 5.35rem;
    overflow-wrap: normal;
    text-shadow: 0 4px 14px rgba(0, 0, 0, 0.56);
    white-space: nowrap;
}

.dashboard-kpi-ring-value-compact:not(.dashboard-kpi-ring-money) .dashboard-kpi-ring-center strong {
    font-size: clamp(1.45rem, 2vw, 1.9rem);
    max-width: 6rem;
}

.dashboard-kpi-ring-value-dense:not(.dashboard-kpi-ring-money) .dashboard-kpi-ring-center strong {
    font-size: clamp(1.15rem, 1.65vw, 1.55rem);
    max-width: 6.08rem;
}

.dashboard-kpi-ring-money .dashboard-kpi-ring-center strong {
    font-size: clamp(1.2rem, 1.75vw, 1.55rem);
    line-height: 1.05;
    max-width: 5.7rem;
}

.dashboard-kpi-ring-money.dashboard-kpi-ring-value-short .dashboard-kpi-ring-center strong {
    font-size: clamp(1.55rem, 2.25vw, 2.08rem);
    max-width: 5.25rem;
}

.dashboard-kpi-ring-money.dashboard-kpi-ring-value-compact .dashboard-kpi-ring-center strong {
    font-size: clamp(0.98rem, 1.35vw, 1.2rem);
    max-width: 5.75rem;
}

.dashboard-kpi-ring-money.dashboard-kpi-ring-value-dense .dashboard-kpi-ring-center strong {
    font-size: clamp(0.8rem, 1vw, 0.875rem);
    max-width: 5.85rem;
}

.dashboard-kpi-ring-center span {
    color: var(--gs-primary);
    display: block;
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1.05;
    max-width: 4.35rem;
    overflow-wrap: anywhere;
}

.dashboard-page .dashboard-kpi-ring-money .dashboard-kpi-ring-center > strong,
.dashboard-page .dashboard-kpi-ring-money .dashboard-kpi-ring-center > span {
    max-width: calc(100% - 0.65rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* A monetary number is never truncated; its scale and currency have their own line. */
.dashboard-page .dashboard-kpi-ring-money .dashboard-kpi-ring-center > strong,
.dashboard-page .dashboard-kpi-ring-money .dashboard-kpi-ring-center > span {
    overflow: visible;
    text-overflow: clip;
}

.dashboard-page .dashboard-kpi-ring-money .dashboard-kpi-currency {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-weight: 750;
    overflow-wrap: normal;
    white-space: normal;
}

.dashboard-kpi-ring-has-trend .dashboard-kpi-ring-center {
    padding-bottom: 0;
}

.dashboard-kpi-ring-trend {
    background: linear-gradient(-135deg, rgba(44, 47, 54, 0.96), rgba(24, 26, 30, 0.98));
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    bottom: -0.18rem;
    box-shadow: none;
    font-size: 0.76rem;
    font-weight: 900;
    gap: 0.24rem;
    justify-content: center;
    right: 50%;
    line-height: 1;
    min-height: 1.36rem;
    min-width: 0;
    padding: 0.24rem 0.4rem 0.22rem 0.48rem;
    pointer-events: none;
    position: absolute;
    text-shadow: none;
    transform: translateX(50%);
    white-space: nowrap;
    z-index: 3;
}

.dashboard-kpi-ring-trend.stat-trend-up {
    background: linear-gradient(-135deg, rgba(0, 116, 84, 0.98), rgba(0, 62, 51, 0.96));
    border-color: rgba(37, 235, 176, 0.72);
    color: #eafff8;
}

.dashboard-kpi-ring-trend.stat-trend-down {
    background:
        radial-gradient(circle at 15% 30%, rgba(255, 127, 141, 0.18), transparent 2.2rem),
        linear-gradient(-135deg, rgba(142, 29, 42, 0.98), rgba(58, 14, 21, 0.99));
    border-color: rgba(255, 143, 154, 0.92);
    color: #fff7f8;
    text-shadow: 0 1px 1px rgba(22, 4, 8, 0.86);
}

.dashboard-kpi-ring-trend.stat-trend-flat,
.dashboard-kpi-ring-trend.stat-trend-neutral {
    background: linear-gradient(-135deg, rgba(44, 47, 54, 0.96), rgba(24, 26, 30, 0.98));
    border-color: rgba(255, 255, 255, 0.22);
    color: rgba(255, 255, 255, 0.86);
}

.dashboard-kpi-ring-trend .bi {
    font-size: 0.94rem;
    -webkit-text-stroke-width: 0.035rem;
}

.dashboard-kpi-ring-trend.stat-trend-down .bi {
    color: #ffffff;
    filter: drop-shadow(0 0 0.08rem rgba(22, 4, 8, 0.95));
    font-size: 1rem;
    text-shadow: 0 1px 1px rgba(22, 4, 8, 0.92), 0 0 0.08rem rgba(255, 255, 255, 0.76);
    -webkit-text-stroke: 0.04rem #ffffff;
}

.dashboard-kpi-ring .analytics-tooltip {
    right: 0;
    left: auto;
    top: calc(100% + 0.65rem);
    transform: translateY(-0.25rem);
    z-index: 60;
}

.dashboard-kpi-ring:hover .analytics-tooltip,
.dashboard-kpi-ring:focus-visible .analytics-tooltip,
.dashboard-kpi-ring:active .analytics-tooltip {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.dashboard-kpi-ring:hover,
.dashboard-kpi-ring:focus-visible {
    outline: 0;
    z-index: 8;
}

.dashboard-kpi-ring:hover .dashboard-kpi-ring-value,
.dashboard-kpi-ring:focus-visible .dashboard-kpi-ring-value {
    filter:
        drop-shadow(0 0 0.42rem rgba(var(--gs-primary-rgb), 0.64))
        drop-shadow(0 0 0.92rem rgba(var(--gs-primary-rgb), 0.28));
}

.dashboard-kpi-ring:focus-visible .dashboard-kpi-ring-center {
    box-shadow:
        0 0 0 0.18rem rgba(var(--gs-primary-rgb), 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.055);
}

.dashboard-kpi-card .stat-label {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    margin-top: 0.42rem;
    color: #fff6cf;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
    text-shadow: 0 3px 12px rgba(0, 0, 0, 0.72);
}

.dashboard-kpi-card .stat-label::before {
    content: none;
}

.dashboard-kpi-card .dashboard-kpi-heading-icon {
    color: var(--gs-primary);
    filter: drop-shadow(0 0 0.24rem rgba(var(--gs-primary-rgb), 0.45));
    flex: 0 0 auto;
    font-size: 1rem;
    line-height: 1;
}

.dashboard-kpi-action {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.08);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.62);
    border-radius: 0.45rem;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025);
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 900;
    gap: 0.45rem;
    justify-content: center;
    line-height: 1;
    min-height: 2.1rem;
    padding: 0.52rem 0.78rem;
    position: relative;
    text-decoration: none;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
    width: 100%;
    z-index: 1;
}

.dashboard-kpi-action:hover,
.dashboard-kpi-action:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.16);
    border-color: rgba(var(--gs-primary-rgb), 0.86);
    color: #ffd84a;
    outline: 0;
    box-shadow: 0 0.55rem 1.25rem rgba(var(--gs-primary-rgb), 0.12);
    transform: translateY(-1px);
}

.dashboard-kpi-action:focus-visible {
    box-shadow:
        0 0 0 0.16rem rgba(var(--gs-primary-rgb), 0.25),
        0 0.55rem 1.25rem rgba(var(--gs-primary-rgb), 0.12);
}

.dashboard-kpi-action .bi {
    font-size: 1rem;
}

.dashboard-location-kpi-card {
    overflow: visible;
}

.dashboard-kpi-card .stat-caption {
    margin-top: 0.3rem;
    color: rgba(255, 255, 255, 0.66);
}

.stat-card.stat-card-money .d-flex > div:first-child {
    padding-left: 0;
}

.stat-card.stat-card-money .stat-value {
    padding-top: 3.35rem;
    font-size: 1.35rem;
    line-height: 1;
    white-space: nowrap;
}

.dashboard-kpi-card.stat-card-money .d-flex > div:first-child {
    padding-left: 4.45rem;
}

.dashboard-kpi-card.stat-card-money .stat-value {
    padding-top: 0;
    font-size: 2rem;
}

.dashboard-analytics-grid {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dashboard-analytics-card {
    background:
        radial-gradient(circle at 92% 0%, rgba(var(--gs-primary-rgb), 0.075), transparent 8rem),
        radial-gradient(circle at 100% 100%, rgba(var(--gs-primary-rgb), 0.055), transparent 13rem),
        linear-gradient(-150deg, rgba(255, 255, 255, 0.038), rgba(10, 11, 14, 0.96));
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-elevation-3d);
    display: grid;
    gap: 1rem;
    grid-template-rows: auto 1fr auto auto;
    min-height: 15rem;
    padding: 1.25rem;
    position: relative;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.dashboard-analytics-card:hover,
.dashboard-analytics-card:focus-within {
    border-color: rgba(var(--gs-primary-rgb), 0.42);
    box-shadow: var(--gs-elevation-3d-hover);
}

.analytics-card-header,
.analytics-card-main {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    min-width: 0;
}

.analytics-card-header h2 {
    align-items: center;
    color: var(--gs-text);
    display: inline-flex;
    font-size: 0.98rem;
    font-weight: 900;
    gap: 0.45rem;
    line-height: 1.2;
    margin: 0;
}

.analytics-card-header h2 .bi {
    color: var(--gs-primary);
    font-size: 1.1rem;
}

.analytics-card-number {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.analytics-card-number > strong {
    color: var(--gs-text);
    display: block;
    font-size: clamp(2rem, 3vw, 2.55rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 0.95;
    overflow-wrap: anywhere;
}

.analytics-card-number > span {
    color: var(--gs-text-muted);
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.25;
}

.analytics-card-insight {
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--gs-money);
    display: flex;
    font-size: 0.84rem;
    font-weight: 850;
    line-height: 1.32;
    min-height: 2.2rem;
    overflow-wrap: anywhere;
    padding-top: 0.85rem;
}

.analytics-card-link {
    align-self: end;
    color: var(--gs-primary);
    font-size: 0.82rem;
    font-weight: 900;
    justify-self: start;
    text-decoration: none;
}

.analytics-card-link:hover,
.analytics-card-link:focus-visible {
    color: var(--gs-primary-hover);
    text-decoration: underline;
}

.analytics-info {
    align-items: center;
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--gs-radius-pill);
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 auto;
    height: 2rem;
    justify-content: center;
    padding: 0;
    position: relative;
    width: 2rem;
}

.analytics-info:hover,
.analytics-info:focus-visible {
    border-color: rgba(var(--gs-primary-rgb), 0.45);
    color: var(--gs-primary);
    outline: none;
}

.analytics-tooltip {
    background: rgba(12, 12, 12, 0.96);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.38);
    border-radius: var(--gs-radius-panel);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.55);
    color: var(--gs-text);
    display: grid;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 0.45rem;
    line-height: 1.35;
    opacity: 0;
    padding: 0.75rem 0.85rem;
    pointer-events: none;
    position: absolute;
    left: 0;
    text-align: right;
    top: calc(100% + 0.55rem);
    transform: translateY(-0.25rem);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
    visibility: hidden;
    width: min(21rem, calc(100vw - 2rem));
    z-index: 30;
}

.analytics-info:hover .analytics-tooltip,
.analytics-info:focus-visible .analytics-tooltip,
.analytics-info:active .analytics-tooltip {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.analytics-tooltip-title {
    color: var(--gs-primary);
    font-weight: 900;
}

.analytics-tooltip-section {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 0.58rem;
    display: grid;
    gap: 0.36rem;
    padding: 0.54rem 0.62rem;
}

.analytics-tooltip-section-trend {
    --analytics-tooltip-trend-color: #aeb3bd;
    --analytics-tooltip-trend-rgb: 174, 179, 189;
    background: rgba(var(--analytics-tooltip-trend-rgb), 0.075);
    border-color: rgba(var(--analytics-tooltip-trend-rgb), 0.24);
}

.analytics-tooltip-section-trend-up {
    --analytics-tooltip-trend-color: #43e3b5;
    --analytics-tooltip-trend-rgb: 67, 227, 181;
}

.analytics-tooltip-section-trend-down {
    --analytics-tooltip-trend-color: #ff9aa7;
    --analytics-tooltip-trend-rgb: 255, 154, 167;
}

.analytics-tooltip-section-trend-flat,
.analytics-tooltip-section-trend-neutral {
    --analytics-tooltip-trend-color: #aeb3bd;
    --analytics-tooltip-trend-rgb: 174, 179, 189;
}

.analytics-tooltip-section-title {
    color: var(--gs-text);
    display: block;
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1.1;
}

.analytics-tooltip-row {
    align-items: baseline;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.analytics-tooltip-row span,
.analytics-tooltip-note {
    color: var(--gs-text-muted);
}

.analytics-tooltip-row-heading > span,
.analytics-tooltip-row-trend > span {
    color: var(--gs-primary);
    font-weight: 950;
}

.analytics-tooltip-row strong {
    color: var(--gs-text);
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    text-align: left;
    white-space: nowrap;
}

.analytics-tooltip-row-trend-up strong {
    color: #43e3b5;
}

.analytics-tooltip-row-trend-down strong {
    color: #ff9aa7;
}

.analytics-tooltip-row-trend-flat strong,
.analytics-tooltip-row-trend-neutral strong {
    color: #aeb3bd;
}

.analytics-tooltip-total {
    align-items: baseline;
    border-top: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin-top: 0.1rem;
    padding-top: 0.48rem;
}

.analytics-tooltip-total span {
    color: var(--gs-text);
    font-weight: 900;
}

.analytics-tooltip-total strong {
    color: var(--gs-primary);
    font-variant-numeric: tabular-nums;
    font-weight: 950;
    text-align: left;
    white-space: nowrap;
}

.analytics-tooltip-section-trend .analytics-tooltip-difference {
    border-top-color: rgba(var(--analytics-tooltip-trend-rgb), 0.28);
}

.analytics-tooltip-section-trend .analytics-tooltip-difference strong {
    color: var(--analytics-tooltip-trend-color);
}

.analytics-tooltip-note {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: block;
    font-size: 0.74rem;
    padding-top: 0.45rem;
}

.segmented-ring {
    --ring-size: 96px;
    display: grid;
    flex: 0 0 var(--ring-size);
    height: var(--ring-size);
    margin: 0;
    place-items: center;
    position: relative;
    width: var(--ring-size);
}

.segmented-ring-svg {
    height: 100%;
    overflow: visible;
    transform: rotate(90deg);
    width: 100%;
}

.segmented-ring-track,
.segmented-ring-segment {
    fill: none;
    stroke-width: 9;
}

.segmented-ring-track {
    stroke: rgba(255, 255, 255, 0.1);
}

.segmented-ring-segment {
    stroke-linecap: round;
    transition: stroke-dasharray 0.28s ease;
}

.ring-success {
    stroke: rgba(32, 201, 151, 0.95);
}

.ring-neutral {
    stroke: rgba(var(--gs-primary-rgb), 0.38);
}

.ring-warning {
    stroke: rgba(var(--gs-primary-rgb), 0.92);
}

.ring-danger {
    stroke: rgba(255, 107, 122, 0.94);
}

.segmented-ring-center {
    display: grid;
    inset: 0;
    line-height: 1.05;
    place-content: center;
    position: absolute;
    text-align: center;
}

.segmented-ring-center strong {
    color: var(--gs-text);
    font-size: 1.05rem;
    font-weight: 950;
}

.segmented-ring-center span {
    color: var(--gs-text-muted);
    font-size: 0.65rem;
    font-weight: 800;
}

.analytics-mini-chart {
    background:
        radial-gradient(circle at 86% 14%, rgba(var(--gs-primary-rgb), 0.14), transparent 6.8rem),
        radial-gradient(circle at 16% 82%, rgba(var(--gs-concert-line-rgb), 0.11), transparent 6rem),
        linear-gradient(-145deg, rgba(18, 21, 25, 0.98), rgba(6, 8, 11, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-panel);
    flex: 1 1 11rem;
    height: 7.2rem;
    min-width: 11rem;
    overflow: hidden;
    padding: 0.55rem;
    position: relative;
}

.analytics-mini-chart::before {
    background:
        linear-gradient(-90deg, transparent, rgba(var(--gs-concert-line-rgb), 0.055), transparent),
        linear-gradient(-180deg, rgba(255, 255, 255, 0.025), transparent 34%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.analytics-mini-chart canvas {
    height: 100% !important;
    position: relative;
    width: 100% !important;
    z-index: 1;
}

.alert.dashboard-unpaid-banner {
    background:
        radial-gradient(circle at 92% 50%, rgba(var(--gs-primary-rgb), 0.11), transparent 17rem),
        linear-gradient(-135deg, rgba(127, 29, 29, 0.34), rgba(15, 11, 12, 0.94) 54%, rgba(7, 8, 10, 0.94));
    border-color: rgba(255, 127, 141, 0.5);
    border-right: 3px solid rgba(255, 127, 141, 0.84);
    box-shadow: 0 18px 38px rgba(127, 29, 29, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    color: var(--gs-text);
}

.dashboard-unpaid-label {
    color: var(--gs-text);
    font-weight: 800;
}

.dashboard-unpaid-count,
.dashboard-unpaid-amount {
    color: var(--gs-money);
    font-weight: 800;
}

.dashboard-period-is-updating .dashboard-analytics-card::before {
    background:
        linear-gradient(-90deg, transparent, rgba(255, 255, 255, 0.06), transparent);
    content: "";
    inset: 0;
    position: absolute;
    transform: translateX(100%);
    animation: dashboard-skeleton-sweep 1s linear infinite;
    z-index: 3;
}

@keyframes dashboard-skeleton-sweep {
    to {
        transform: translateX(-100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .segmented-ring-segment,
    .dashboard-analytics-card,
    .analytics-tooltip {
        transition: none;
    }

    .dashboard-period-is-updating .dashboard-analytics-card::before {
        animation: none;
    }
}

@media (max-width: 1199.98px) {
    .dashboard-analytics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-location-card {
        grid-column: 1 / -1;
    }

}

@media screen and (max-width: 767.98px) {
    .dashboard-analytics-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-analytics-card {
        min-height: 0;
        padding: 1rem;
    }

    .analytics-card-main {
        align-items: center;
    }

    .analytics-card-number > strong {
        font-size: 2rem;
    }

    .segmented-ring {
        --ring-size: 84px;
    }

    .segmented-ring-center strong {
        font-size: 0.94rem;
    }

    .analytics-mini-chart {
        min-height: 12.5rem;
        width: 100%;
    }

    .analytics-tooltip {
        right: auto;
        left: -0.35rem;
        width: min(19rem, calc(100vw - 1.5rem));
    }
}

@media (max-width: 430px) {
    .analytics-card-main {
        align-items: stretch;
        display: grid;
    }

    .segmented-ring {
        justify-self: start;
    }
}

/* Finance */
.finance-page {
    display: grid;
    gap: 1rem;
    padding-bottom: clamp(2rem, 4vw, 4rem);
}

.finance-period-card {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.85rem 1rem;
}

.finance-period-form {
    margin-bottom: 0;
}

.finance-period-title {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    min-width: 0;
}

.finance-period-title strong {
    color: var(--gs-text);
    font-weight: 850;
}

.finance-filter-panel {
    border-radius: var(--gs-radius-panel);
}

.finance-period-controls {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.finance-filter-actions {
    display: inline-flex;
    gap: 0.5rem;
    justify-content: flex-end;
    margin-right: auto;
}

.finance-filter-panel .dashboard-period-copy {
    flex: 0 0 auto;
}

.finance-filter-panel .dashboard-period-caption {
    overflow-wrap: normal;
    white-space: nowrap;
}

.finance-period-controls > .form-select {
    min-width: 11rem;
    width: auto;
}

.finance-period-card .finance-period-controls {
    justify-content: flex-end;
}

.finance-search-field {
    min-width: min(18rem, 100%);
    position: relative;
}

.finance-search-field i {
    color: var(--gs-primary);
    right: 0.78rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.finance-search-field .form-control {
    padding-right: 2.35rem;
}

.finance-board {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
}

.finance-debts-card {
    border-color: rgba(var(--gs-primary-rgb), 0.38);
}

.finance-debt-hero {
    background:
        radial-gradient(circle at 12% 18%, rgba(var(--gs-primary-rgb), 0.18), transparent 32%),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.12), rgba(15, 17, 22, 0.92) 46%, rgba(var(--gs-danger-rgb, 244, 63, 94), 0.08));
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.26), 0 0 26px rgba(var(--gs-primary-rgb), 0.1);
    overflow: hidden;
}

.finance-debt-hero-main {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 1.15rem;
}

.finance-debt-copy {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.finance-eyebrow {
    align-items: center;
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 0.76rem;
    font-weight: 900;
    gap: 0.35rem;
    letter-spacing: 0;
    text-transform: uppercase;
}

.finance-debt-copy h2 {
    color: var(--gs-text);
    font-size: clamp(2.15rem, 3.25vw, 3.25rem);
    font-weight: 950;
    line-height: 1;
    margin: 0;
}

.finance-debt-hero-empty {
    background:
        radial-gradient(circle at 12% 18%, rgba(var(--gs-primary-rgb), 0.11), transparent 28%),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.08), rgba(15, 17, 22, 0.94) 48%, rgba(255, 255, 255, 0.025));
    border-color: var(--gs-surface-border);
    box-shadow: none;
}

.finance-debt-hero-empty .finance-debt-hero-main {
    padding: 0.85rem 1rem;
}

.finance-debt-hero-empty .finance-debt-copy {
    gap: 0.25rem;
}

.finance-debt-copy .finance-debt-empty-title {
    font-size: clamp(1.35rem, 1.55vw, 1.75rem);
    line-height: 1.1;
    max-width: none;
}

.finance-debt-hero-empty .finance-debt-copy p {
    font-size: 0.88rem;
    font-weight: 700;
    max-width: none;
}

.finance-debt-copy p {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    max-width: 34rem;
}

.finance-debt-summary {
    align-items: stretch;
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(2, minmax(5.5rem, auto));
    justify-items: stretch;
}

.finance-debt-summary > div {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    border-radius: var(--gs-radius-control);
    display: grid;
    gap: 0.15rem;
    min-height: 3.6rem;
    padding: 0.55rem 0.7rem;
}

.finance-debt-summary span {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.finance-debt-summary strong {
    color: var(--gs-money);
    font-size: 1.3rem;
    font-weight: 950;
    line-height: 1;
}

.finance-debt-summary .btn {
    grid-column: 1 / -1;
}

.finance-debt-summary-empty {
    grid-template-columns: minmax(11.5rem, auto);
    justify-self: end;
}

.finance-debt-summary-empty .btn {
    grid-column: auto;
}

.finance-debt-list {
    border-top: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    display: grid;
    gap: 0.7rem;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    padding: 0.95rem 1.15rem 1.15rem;
}

.finance-expected-payout-list {
    grid-template-columns: 1fr;
}

.finance-debt-row {
    align-items: center;
    background: rgba(6, 7, 10, 0.54);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.22);
    border-radius: var(--gs-radius-panel);
    color: inherit;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 4.5rem;
    padding: 0.75rem;
    text-decoration: none;
    transition: border-color 0.16s ease, background-color 0.16s ease, transform 0.16s ease;
}

.finance-debt-row:hover,
.finance-debt-row:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    border-color: rgba(var(--gs-primary-rgb), 0.58);
    color: inherit;
    text-decoration: none;
    transform: translateY(-1px);
}

.finance-debt-member,
.finance-debt-meta {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.finance-debt-member strong,
.finance-payment-title strong,
.finance-income-title strong,
.finance-event-main strong {
    color: var(--gs-text);
    font-weight: 900;
    overflow-wrap: anywhere;
}

.finance-debt-member small,
.finance-debt-meta small,
.finance-payment-title small,
.finance-payment-line small,
.finance-income-title small,
.finance-event-main small,
.finance-income-values small {
    color: var(--gs-text-muted);
    font-size: 0.74rem;
    font-weight: 750;
}

.finance-debt-meta {
    grid-column: 1;
}

.finance-debt-meta span {
    color: var(--gs-primary);
    font-size: 0.76rem;
    font-weight: 900;
}

.finance-debt-amount {
    color: var(--gs-money);
    font-size: 1.05rem;
    font-weight: 950;
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-self: end;
    white-space: nowrap;
}

.finance-expected-payout-row {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.finance-expected-payout-row .finance-debt-member {
    color: inherit;
    text-decoration: none;
}

.finance-expected-payout-row .finance-debt-amount {
    grid-column: auto;
    grid-row: auto;
}

.finance-expected-payout-action {
    justify-self: end;
}

.finance-debt-note {
    border-top: 1px solid rgba(var(--gs-primary-rgb), 0.22);
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 750;
    padding: 0 1.15rem 1rem;
}

.finance-insights-grid {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
}

.finance-insights-grid-single {
    grid-template-columns: minmax(0, 1fr);
}

.finance-section-card {
    overflow: hidden;
}

.finance-empty-body {
    padding: 0.9rem;
}

.empty-state.finance-empty-state {
    align-content: center;
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.026), transparent 9rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.014), rgba(8, 9, 12, 0.38));
    border-color: rgba(var(--gs-primary-rgb), 0.2);
    display: grid;
    gap: 0.45rem;
    justify-items: center;
    min-height: clamp(11.5rem, 19vw, 13.5rem);
    padding: clamp(1.4rem, 2.7vw, 2rem) 1rem;
}

.empty-state.finance-empty-state > i {
    color: #8b93a4;
    font-size: clamp(2.65rem, 3.8vw, 3.15rem);
    margin-bottom: 0.15rem;
    opacity: 0.62;
}

.empty-state.finance-empty-state h4 {
    font-size: clamp(1.12rem, 1.35vw, 1.32rem);
    line-height: 1.14;
    margin-bottom: 0;
    max-width: 24rem;
}

.empty-state.finance-empty-state p {
    color: var(--gs-text-muted);
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1.45;
    margin: 0;
    max-width: 26rem;
}

.empty-state.finance-empty-state-wide {
    min-height: clamp(11rem, 15vw, 13rem);
}

.empty-state.finance-empty-state-wide p {
    max-width: 30rem;
}

.finance-section-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.finance-section-header > div {
    display: grid;
    gap: 0.16rem;
}

.finance-section-header h5 {
    align-items: center;
    color: var(--gs-text);
    display: inline-flex;
    font-size: 1.08rem;
    font-weight: 800;
}

.finance-section-header i {
    color: var(--gs-primary);
}

.finance-section-header span {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.finance-section-total {
    align-items: flex-end;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    justify-content: flex-end;
    min-width: max-content;
    text-align: left;
}

.finance-section-total strong {
    color: var(--gs-money);
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.finance-section-total small {
    color: var(--gs-text-muted);
    flex-basis: 100%;
    font-size: 0.74rem;
    font-weight: 800;
    line-height: 1.15;
}

.finance-section-footer {
    border-top: 1px solid var(--gs-surface-border);
    display: flex;
    justify-content: flex-end;
    padding: 0.8rem 1rem;
}

.finance-section-footer-split {
    align-items: center;
    gap: 0.75rem;
    justify-content: space-between;
}

.finance-section-footer-split > small {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.finance-receivable-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    padding: 0.9rem;
}

.finance-receivable-row {
    align-items: center;
    border: 1px solid var(--gs-surface-border);
    color: inherit;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.72rem 0.8rem;
    text-decoration: none;
}

.finance-receivable-row:first-child {
    border-radius: 0 var(--gs-radius-control) var(--gs-radius-control) 0;
}

.finance-receivable-row:last-child {
    border-radius: var(--gs-radius-control) 0 0 var(--gs-radius-control);
}

.finance-receivable-row + .finance-receivable-row {
    border-right: 0;
}

.finance-receivable-row:hover,
.finance-receivable-row:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.055);
    color: inherit;
}

.finance-receivable-row > span {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.finance-receivable-row strong {
    font-weight: 900;
}

.finance-receivable-row small {
    color: var(--gs-text-muted);
    font-size: 0.74rem;
    font-weight: 700;
}

.finance-compact-empty {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-weight: 750;
    gap: 0.55rem;
    min-height: 4.5rem;
}

.finance-compact-empty i {
    color: var(--gs-money);
    font-size: 1.25rem;
}

.finance-cash-flow-card .finance-period-form {
    border-bottom: 1px solid var(--gs-surface-border);
}

.finance-cash-flow-header {
    border-bottom: 0;
}

.finance-cash-flow-grid {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 0 1rem 1rem;
}

.finance-cash-flow-grid-personal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.finance-cash-flow-metric {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-panel);
    display: grid;
    gap: 0.22rem;
    min-height: 7.4rem;
    padding: 0.9rem;
}

.finance-cash-flow-metric > span,
.finance-cash-flow-metric > small {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    font-weight: 750;
}

.finance-cash-flow-metric > strong {
    color: var(--gs-text);
    font-size: clamp(1.35rem, 2vw, 1.85rem);
    font-weight: 950;
    line-height: 1.05;
}

.finance-cash-flow-metric.is-income > strong {
    color: var(--gs-money);
}

.finance-cash-flow-metric.is-outcome > strong {
    color: #fb923c;
}

.finance-cash-flow-metric.is-expected > strong {
    color: var(--gs-money);
}

.finance-cash-flow-metric > small {
    margin-top: auto;
}

.finance-table {
    min-width: 56rem;
}

.finance-table-compact {
    min-width: 42rem;
}

.finance-table > :not(caption) > * > * {
    padding-block: 0.68rem;
    vertical-align: middle;
}

.finance-title-link {
    color: var(--gs-link-cyan);
    font-weight: 800;
    text-decoration: none;
    text-shadow: var(--gs-link-cyan-glow);
}

.finance-title-link:hover,
.finance-title-link:focus-visible {
    color: var(--gs-link-cyan-hover);
    text-decoration: none;
    text-shadow:
        0 0 0.5rem rgba(var(--gs-link-cyan-rgb), 0.42),
        0 0 1.1rem rgba(var(--gs-link-cyan-rgb), 0.2);
}

.finance-row-subtitle {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 650;
    margin-top: 0.12rem;
}

.finance-nowrap {
    white-space: nowrap;
}

.finance-pill {
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
    align-items: center;
    border: 1px solid rgba(203, 213, 225, 0.35);
    border-radius: var(--gs-radius-control);
    color: #cbd5e1;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 850;
    min-height: 1.55rem;
    padding: 0.22rem 0.48rem;
    white-space: nowrap;
}

.finance-pill-warning {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
    background: rgba(var(--gs-primary-rgb), 0.1);
    border-color: rgba(var(--gs-primary-rgb), 0.7);
    color: var(--gs-primary);
}

.finance-ledger-type {
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
    align-items: center;
    border: 1px solid rgba(203, 213, 225, 0.35);
    border-radius: var(--gs-radius-control);
    color: #cbd5e1;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 800;
    gap: 0.35rem;
    min-height: 1.65rem;
    padding: 0.28rem 0.5rem;
    text-transform: uppercase;
}

.finance-ledger-type.is-income {
    --app-badge-color: #34d399;
    --app-badge-rgb: 52, 211, 153;
    border-color: rgba(52, 211, 153, 0.68);
    color: #34d399;
}

.finance-ledger-type.is-outcome {
    --app-badge-color: #fb923c;
    --app-badge-rgb: 251, 146, 60;
    border-color: rgba(251, 146, 60, 0.68);
    color: #fb923c;
}

.finance-payment-groups,
.finance-income-list,
.finance-event-list {
    display: grid;
    gap: 0.65rem;
    padding: 0.95rem;
}

.finance-payment-group {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-panel);
    overflow: hidden;
}

.finance-payment-group summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: minmax(0, 1fr) auto;
    list-style: none;
    padding: 0.82rem 0.9rem;
}

.finance-payment-group summary::-webkit-details-marker {
    display: none;
}

.finance-payment-title,
.finance-payment-line > span:first-child,
.finance-income-title,
.finance-event-main {
    display: grid;
    gap: 0.14rem;
    min-width: 0;
}

.finance-payment-values,
.finance-income-values {
    align-items: center;
    display: inline-flex;
    gap: 1rem;
    justify-content: flex-end;
    text-align: left;
    white-space: nowrap;
}

.finance-payment-values > span,
.finance-income-values > span {
    display: grid;
    gap: 0.1rem;
}

.finance-payment-values strong,
.finance-income-values strong {
    color: var(--gs-text);
    font-weight: 900;
}

.finance-payment-lines {
    border-top: 1px solid var(--gs-surface-border);
    display: grid;
}

.finance-payment-line,
.finance-income-row,
.finance-event-row {
    color: inherit;
    text-decoration: none;
}

.finance-payment-line {
    align-items: center;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0.68rem 0.9rem;
}

.finance-payment-line + .finance-payment-line,
.finance-income-row + .finance-income-row,
.finance-event-row + .finance-event-row {
    border-top: 1px solid var(--gs-surface-border);
}

.finance-payment-line:hover,
.finance-payment-line:focus-visible,
.finance-income-row:hover,
.finance-income-row:focus-visible,
.finance-event-row:hover,
.finance-event-row:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.055);
    color: inherit;
    text-decoration: none;
}

.finance-income-row {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 3.85rem;
    padding: 0.68rem 0.85rem;
}

.finance-event-row {
    align-items: center;
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 7.2rem minmax(0, 1fr) auto auto;
    min-height: 4.2rem;
    padding: 0.72rem 0.95rem;
}

.finance-event-date {
    color: var(--gs-link-cyan);
    font-weight: 850;
    text-shadow: var(--gs-link-cyan-glow);
    white-space: nowrap;
}

.finance-event-status {
    justify-self: end;
}

/* Icon Colors */
.icon-primary { background-color: rgba(var(--gs-primary-rgb), 0.2); color: var(--gs-primary); }
.icon-green { background-color: rgba(var(--gs-accent-rgb), 0.2); color: var(--gs-accent); }
.icon-blue { background-color: rgba(var(--gs-link-cyan-rgb), 0.16); color: var(--gs-link-cyan); box-shadow: inset 0 0 0 1px rgba(var(--gs-link-cyan-rgb), 0.36), 0 0 0.85rem rgba(var(--gs-link-cyan-rgb), 0.18); }
.icon-orange { background-color: rgba(253, 126, 20, 0.2); color: #fd7e14; }
.icon-red { background-color: rgba(220, 53, 69, 0.2); color: #dc3545; }
.icon-cyan { background-color: rgba(var(--gs-link-cyan-rgb), 0.16); color: var(--gs-link-cyan); box-shadow: inset 0 0 0 1px rgba(var(--gs-link-cyan-rgb), 0.36), 0 0 0.85rem rgba(var(--gs-link-cyan-rgb), 0.18); }
.icon-secondary { background-color: rgba(173, 181, 189, 0.18); color: #adb5bd; }

.icon-orange,
.icon-red {
    background-color: rgba(var(--gs-primary-rgb), 0.18);
    color: var(--gs-primary);
}

.text-primary {
    color: var(--gs-primary) !important;
}

/* Tables */
.table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: rgba(255, 255, 255, 0.05);
}

.table thead th {
    border-bottom: 2px solid var(--gs-border);
    color: var(--gs-text-muted);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0;
}

.table td {
    border-color: var(--gs-border);
    vertical-align: middle;
    font-variant-numeric: tabular-nums;
}

.table-row-link {
    cursor: pointer;
}

.table-row-link:focus-visible {
    outline: 2px solid rgba(var(--gs-primary-rgb), 0.68);
    outline-offset: -2px;
}

.table-row-link:hover td {
    background: rgba(var(--gs-primary-rgb), 0.075);
}

.gigs-list-table th:first-child,
.gigs-list-table td:first-child {
    padding-right: 1.65rem;
}

.gigs-list-table th:last-child,
.gigs-list-table td:last-child {
    padding-left: 1.65rem;
}

.gigs-list-table th:first-child {
    padding-right: 1.75rem;
}

.gigs-list-table th:last-child {
    padding-left: 1.75rem;
}

.gig-list-date {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
    white-space: nowrap;
}

.event-label-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    min-width: 8rem;
}

.event-label-chip {
    align-items: center;
    display: inline-flex;
    white-space: nowrap;
}

.event-label-more {
    min-width: 1.8rem;
}

.gig-table-section-row td {
    background: rgba(var(--gs-primary-rgb), 0.12);
    border-top: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-bottom: 1px solid rgba(var(--gs-primary-rgb), 0.22);
    color: var(--gs-primary);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0;
    padding: 0.55rem 1rem;
    text-transform: uppercase;
}

.filter-panel {
    overflow: visible;
    position: relative;
    z-index: 5;
}

.filter-panel.card {
    max-width: 100%;
    overflow: visible;
    width: 100%;
}

.filter-panel[open] {
    max-width: 100%;
    z-index: 60;
}

.filter-panel-embedded {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.22);
    border-radius: var(--gs-radius-control);
}

.filter-panel-summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 0.85rem;
    justify-content: space-between;
    list-style: none;
    min-height: 3.25rem;
    padding: 0.68rem 1rem;
    position: relative;
}

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

.filter-panel-summary::marker {
    content: "";
}

.filter-panel-title {
    align-items: center;
    color: var(--gs-text);
    display: flex;
    flex-wrap: wrap;
    font-size: 1.02rem;
    font-weight: 800;
    gap: 0.55rem;
    min-width: 0;
}

.filter-panel-title .bi {
    color: var(--gs-primary);
}

.filter-panel-count-badge {
    align-items: center;
    background: var(--gs-primary);
    border: 2px solid var(--gs-bg);
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(var(--gs-primary-rgb), 0.56), 0 0.55rem 1.4rem rgba(var(--gs-primary-rgb), 0.32);
    color: #0c0c0c;
    display: inline-flex;
    font-size: 0.7rem;
    font-weight: 900;
    inset-inline-end: -0.42rem;
    inset-block-start: -0.42rem;
    justify-content: center;
    line-height: 1;
    min-height: 1.35rem;
    min-width: 1.35rem;
    padding: 0.14rem 0.38rem;
    position: absolute;
    z-index: 2;
}

.active-context-filter {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.07);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    border-radius: var(--gs-radius-panel);
    color: var(--gs-text-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.72rem 0.9rem;
}

.active-context-filter span {
    align-items: center;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.42rem;
}

.active-context-filter i,
.active-context-filter strong {
    color: var(--gs-primary);
}

.filter-panel-chevron {
    color: var(--gs-primary);
    flex-shrink: 0;
    font-size: 1rem;
    margin-right: auto;
    transition: color 0.18s ease, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.filter-panel-summary:hover .filter-panel-chevron,
.filter-panel-summary:focus-visible .filter-panel-chevron {
    color: var(--gs-text);
}

.filter-panel[open] .filter-panel-chevron {
    transform: rotate(-180deg);
}

.filter-panel-body {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    overflow: visible;
    padding: 0.72rem 1rem 0.82rem;
}

.filter-panel.is-filter-animating > .filter-panel-body {
    box-sizing: border-box;
    overflow: hidden !important;
    pointer-events: none;
    transform-origin: top center;
    will-change: height, margin-top, opacity, transform;
}

.filter-panel.is-filter-opening > .filter-panel-summary,
.filter-panel.is-filter-closing > .filter-panel-summary {
    border-color: rgba(var(--gs-primary-rgb), 0.42);
}

.filter-panel-body .list-controls,
.filter-panel-body .dashboard-period-form {
    margin-bottom: 0;
}

.filter-panel-body .list-controls,
.filter-panel-body .dashboard-period-toolbar {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.filter-panel-body .list-controls {
    align-items: end;
    gap: 0.62rem 0.8rem;
    grid-template-columns: minmax(13rem, 1.15fr) minmax(10rem, 0.9fr) minmax(12rem, 1fr) max-content;
}

.filter-panel-body .venue-controls {
    grid-template-columns: repeat(4, minmax(0, 1fr)) max-content;
}

.filter-panel-body .venue-map-controls {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.filter-panel-body .venue-map-controls .list-control-actions {
    grid-column: -3 / -1;
}

.filter-panel-body .list-search,
.filter-panel-body .list-sort,
.filter-panel-body .list-filter-field,
.filter-panel-body .list-period-filter,
.filter-panel-body .list-venue-filter,
.filter-panel-body .list-role-filter {
    min-width: 0;
}

.filter-panel-body .list-control-actions {
    align-self: end;
    grid-column: -2 / -1;
    justify-content: flex-end;
    margin-right: auto;
    min-width: max-content;
    white-space: nowrap;
}

.filter-panel-body .member-history-controls {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 0;
}

.filter-panel-body .member-history-controls .member-history-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.filter-panel-body .dashboard-period-toolbar {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(12rem, 0.42fr) minmax(0, 1fr);
}

.filter-panel-body .finance-period-controls {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-right: 0;
    width: 100%;
}

.filter-panel-body .finance-period-controls > .form-select,
.filter-panel-body .finance-search-field,
.filter-panel-body .finance-period-controls .btn {
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

.filter-panel-body .finance-period-controls .dashboard-custom-dates {
    display: contents;
}

.filter-panel-body .finance-period-controls .dashboard-date-field .form-control {
    min-width: 0;
    width: 100%;
}

.filter-multiselect-empty,
.filter-multiselect-search-empty {
    color: var(--gs-text-muted);
    display: block;
    font-size: 0.84rem;
    padding: 0.45rem 0.7rem;
}

.filter-multiselect-search-empty[hidden] {
    display: none !important;
}

.gig-filter-form {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gig-filter-field,
.gig-filter-actions,
.gig-custom-dates > div {
    min-width: 0;
}

.filter-field-heading {
    align-items: center;
    display: flex;
    gap: 0.65rem;
    justify-content: space-between;
    margin-bottom: 0.45rem;
}

.filter-field-link {
    color: var(--gs-primary);
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}

.filter-field-link:hover,
.filter-field-link:focus-visible {
    color: var(--gs-primary-soft);
    outline: none;
    text-decoration: underline;
}

.gig-custom-dates {
    display: contents;
}

.gig-filter-actions {
    display: flex;
    gap: 0.6rem;
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.gig-filter-actions [data-dynamic-filter-count-submit] {
    transition: opacity 0.16s ease, border-color 0.16s ease, background-color 0.16s ease;
}

.gig-filter-actions [data-dynamic-filter-count-submit].is-count-loading {
    cursor: progress;
    opacity: 0.72;
}

.label-manager-table td {
    vertical-align: middle;
}

.label-manager-table th:first-child,
.label-manager-table td:first-child {
    min-width: 34rem;
    width: 58%;
}

.label-manager-table th:nth-child(2),
.label-manager-table td:nth-child(2) {
    min-width: 12rem;
    width: 16rem;
}

.label-manager-name-form {
    align-items: center;
    display: grid;
    gap: 0.6rem;
    grid-template-columns: 8rem minmax(12rem, 1fr) auto auto;
    min-width: 0;
}

.label-manager-preview {
    align-items: center;
    display: flex;
    justify-content: flex-start;
    min-width: 0;
}

.label-manager-preview .event-label-chip {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    justify-self: start;
}

.label-manager-name-form .form-control {
    min-width: 0;
}

.label-color-options {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-start;
}

.color-picker { min-inline-size: 0; }
.color-picker > legend { float: none; width: 100%; }

.label-color-option {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    margin: 0;
    position: relative;
}

.label-color-option input {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

.label-color-option span {
    background: var(--app-badge-color);
    border: 1px solid rgba(var(--app-badge-rgb), 0.88);
    border-radius: 999px;
    box-shadow: 0 0 0 2px rgba(var(--app-badge-rgb), 0.12);
    display: block;
    height: 1.2rem;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
    width: 1.2rem;
}

.label-color-option:hover span,
.label-color-option input:focus-visible + span {
    box-shadow: 0 0 0 3px rgba(var(--app-badge-rgb), 0.22);
    transform: translateY(-1px);
}

.label-color-option input:checked + span {
    box-shadow: 0 0 0 2px rgba(7, 8, 10, 0.95), 0 0 0 4px rgba(var(--app-badge-rgb), 0.82);
}

.label-manager-usage {
    display: grid;
    gap: 0.15rem;
    margin: -0.35rem -0.45rem;
    padding: 0.35rem 0.45rem;
    text-decoration: none;
    transition: background 0.16s ease, border-color 0.16s ease;
}

.label-manager-usage:hover,
.label-manager-usage:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    border-radius: 8px;
    outline: none;
}

.label-manager-usage strong {
    color: var(--gs-text);
    font-size: 0.95rem;
    line-height: 1.2;
}

.label-manager-usage small {
    color: var(--gs-text-muted);
    font-weight: 700;
    line-height: 1.25;
}

.filter-multiselect-option .event-label-chip {
    pointer-events: none;
}

.label-manager-delete-form {
    display: flex;
    justify-content: flex-end;
}

.event-type-badge {
    --app-badge-color: var(--gs-text-muted);
    --app-badge-rgb: 156, 163, 175;
}

.event-type-gig {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
}

.event-type-rehearsal {
    --app-badge-color: #38d8ff;
    --app-badge-rgb: 56, 216, 255;
}

.event-type-meeting {
    --app-badge-color: #c4b5fd;
    --app-badge-rgb: 196, 181, 253;
}

.event-type-other {
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
}

.filter-multiselect {
    position: relative;
}

.settings-stack {
    display: grid;
    gap: 0.75rem;
}

.band-settings-header {
    margin-bottom: 1.1rem;
}

.band-settings-tabs {
    align-items: stretch;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--gs-border);
    border-radius: 0.8rem;
    display: inline-flex;
    gap: 0.25rem;
    margin-bottom: 1.5rem;
    max-width: 100%;
    overflow-x: auto;
    padding: 0.25rem;
    scrollbar-width: none;
}

.band-settings-tabs::-webkit-scrollbar {
    display: none;
}

.band-settings-tab {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 0.58rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 750;
    gap: 0.45rem;
    justify-content: center;
    min-height: 2.55rem;
    padding: 0.55rem 1rem;
    text-decoration: none;
    white-space: nowrap;
}

.band-settings-tab:hover,
.band-settings-tab:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    color: var(--gs-text);
}

.band-settings-tab:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(var(--gs-primary-rgb), 0.22);
    outline: 0;
}

.band-settings-tab.active {
    background: rgba(var(--gs-primary-rgb), 0.14);
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    color: var(--gs-primary);
}

.band-settings-section-heading {
    margin-bottom: 1rem;
}

.band-settings-card > .card-header {
    border-bottom-color: var(--gs-border);
    padding-block: var(--gs-card-header-padding-block);
}

.settings-toggle {
    align-items: flex-start;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid var(--gs-border);
    border-radius: 1rem;
    cursor: pointer;
    display: flex;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
}

.settings-toggle input {
    accent-color: var(--gs-primary);
    flex: 0 0 auto;
    height: 1.1rem;
    margin-top: 0.18rem;
    width: 1.1rem;
}

.settings-toggle strong,
.settings-toggle small {
    display: block;
}

.settings-toggle small {
    color: var(--gs-text-muted);
    line-height: 1.35;
    margin-top: 0.2rem;
}

.filter-multiselect-toggle {
    align-items: center;
    background-color: var(--gs-bg-input);
    border: 1px solid var(--gs-border);
    border-radius: 1rem;
    color: var(--gs-text);
    display: flex;
    font: inherit;
    gap: 0.75rem;
    justify-content: space-between;
    min-height: 2.55rem;
    padding: 0.375rem 0.75rem;
    text-align: right;
    width: 100%;
}

.filter-multiselect-toggle:hover,
.filter-multiselect.open .filter-multiselect-toggle,
.filter-multiselect-toggle:focus-visible {
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--gs-primary-rgb), 0.25);
    outline: 0;
}

.filter-multiselect-toggle [data-filter-multiselect-label] {
    align-items: center;
    display: flex;
    gap: 0.35rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.filter-multiselect-toggle [data-filter-multiselect-label]:not(.has-filter-selection) {
    display: block;
}

.filter-multiselect.has-filter-selection .filter-multiselect-toggle [data-filter-multiselect-label] {
    padding-left: 2.15rem;
}

.filter-multiselect-clear {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 0.5rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.78rem;
    height: 2.35rem;
    justify-content: center;
    padding: 0;
    position: absolute;
    left: 2.15rem;
    top: 50%;
    transform: translateY(-50%);
    transition: background-color 0.18s ease, color 0.18s ease;
    width: 2.35rem;
    z-index: 4;
}

.filter-multiselect-clear[hidden] {
    display: none;
}

.filter-multiselect-clear:hover,
.filter-multiselect-clear:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-primary);
}

.filter-multiselect-clear:focus-visible {
    outline: 2px solid rgba(var(--gs-primary-rgb), 0.72);
    outline-offset: -2px;
}

.filter-multiselect-selection-chip {
    align-items: center;
    display: inline-flex;
    flex: 0 1 auto;
    max-width: min(12rem, 100%);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.filter-multiselect-selection-chip:not(.event-label-chip) {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: 999px;
    color: var(--gs-primary);
    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1;
    padding: 0.28rem 0.55rem;
}

.filter-multiselect-selection-more {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.16);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.36);
    border-radius: 999px;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1;
    padding: 0.28rem 0.55rem;
}

.filter-multiselect-menu {
    background: var(--gs-bg-card);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.32);
    border-radius: 1rem;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.45);
    display: none;
    right: 0;
    max-height: 18rem;
    overflow: auto;
    padding: 0.45rem;
    position: absolute;
    left: 0;
    top: calc(100% + 0.35rem);
    z-index: 80;
}

.filter-multiselect.open .filter-multiselect-menu {
    display: block;
}

.filter-multiselect-search {
    background:
        radial-gradient(circle at 92% 0%, rgba(var(--gs-primary-rgb), 0.08), transparent 8rem),
        linear-gradient(-145deg, #101114 0%, #08090b 100%);
    margin-bottom: 0.45rem;
    padding-bottom: 0.1rem;
    position: sticky;
    top: -0.45rem;
    z-index: 2;
}

.filter-multiselect-search .bi {
    color: var(--gs-primary);
    right: 0.75rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.filter-multiselect-search .form-control {
    min-height: 2.25rem;
    padding-right: 2.15rem;
}

.filter-multiselect-option {
    align-items: flex-start;
    border-radius: 0.75rem;
    color: var(--gs-text);
    cursor: pointer;
    display: flex;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
}

.filter-multiselect-option[hidden] {
    display: none !important;
}

.filter-multiselect-option:hover {
    background-color: rgba(var(--gs-primary-rgb), 0.1);
}

.filter-multiselect-option input {
    accent-color: var(--gs-primary);
    margin-top: 0.22rem;
}

.filter-multiselect-option > span {
    display: grid;
    gap: 0.1rem;
    line-height: 1.2;
}

.filter-multiselect-option small {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
}

/* Forms */
.form-control,
.form-select {
    background-color: var(--gs-bg-input);
    border: 1px solid var(--gs-border);
    border-radius: 0.75rem;
    color: var(--gs-text);
    font-family: var(--gs-body-font);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--gs-bg-input);
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--gs-primary-rgb), 0.14);
    color: var(--gs-text);
}

.form-control::placeholder {
    color: var(--gs-text-muted);
}

input[type="password"].password-mask-wide {
    font-family: var(--gs-body-font);
    letter-spacing: normal;
}

input[type="password"].password-mask-wide::placeholder {
    letter-spacing: 0;
}

.form-control:disabled,
.form-select:disabled {
    background-color: rgba(255, 255, 255, 0.045);
    border-color: rgba(var(--gs-primary-rgb), 0.22);
    color: var(--gs-text-muted);
    opacity: 1;
}

.form-label,
.rep-form label,
.rep-form legend {
    color: var(--gs-text);
    font-family: var(--gs-body-font);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;
}

.form-label {
    margin-bottom: 0.5rem;
}

.form-text {
    color: var(--gs-text-muted);
}

.form-text a {
    color: var(--gs-accent);
    font-weight: 700;
    text-decoration-color: rgba(var(--gs-primary-rgb), 0.42);
    text-underline-offset: 0.18rem;
}

.form-text a:hover {
    color: var(--gs-primary);
    text-decoration-color: var(--gs-primary);
}

.tag-input {
    background-color: var(--gs-bg-input);
    border: 1px solid var(--gs-border);
    border-radius: 1rem;
    padding: 0.45rem;
    position: relative;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.tag-input:focus-within {
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--gs-primary-rgb), 0.25);
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
}

.tag-list:empty {
    margin-bottom: 0;
}

.tag-chip {
    align-items: center;
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
    background: linear-gradient(-180deg, rgba(var(--app-badge-rgb), 0.22), rgba(var(--app-badge-rgb), 0.08));
    border: 1px solid rgba(var(--app-badge-rgb), 0.72);
    border-radius: 6px;
    box-shadow: 0 8px 16px rgba(var(--app-badge-rgb), 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    color: var(--app-badge-color);
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.72rem;
    font-weight: 800;
    gap: 0.35rem;
    line-height: 1;
    min-height: 1.7rem;
    padding: 0.28rem 0.62rem 0.28rem 0.38rem;
}

.tag-remove {
    align-items: center;
    background: rgba(var(--app-badge-rgb), 0.1);
    border: 1px solid rgba(var(--app-badge-rgb), 0.34);
    border-radius: 50%;
    color: var(--app-badge-color);
    display: inline-flex;
    font-size: 0.75rem;
    height: 1.08rem;
    justify-content: center;
    padding: 0;
    width: 1.08rem;
}

.tag-remove:hover,
.tag-remove:focus-visible {
    background-color: rgba(var(--app-badge-rgb), 0.2);
    border-color: rgba(var(--app-badge-rgb), 0.55);
    color: var(--app-badge-color);
}

.tag-entry.form-control {
    background: transparent;
    border: 0;
    border-radius: 0.7rem;
    box-shadow: none;
    padding: 0.25rem 0.45rem;
}

.character-limit-feedback,
.tag-limit-feedback {
    color: var(--gs-text-muted);
    display: none;
    font-size: 0.72rem;
    line-height: 1.25;
    margin-top: 0.32rem;
    min-height: 0.9rem;
    text-align: left;
}

.character-limit-feedback.is-visible,
.tag-limit-feedback.is-visible {
    display: block;
}

.character-limit-feedback.is-limit-reached,
.tag-limit-feedback.is-limit-reached {
    color: var(--gs-primary);
    font-weight: 800;
}

.form-control.is-character-limit-reached {
    border-color: rgba(var(--gs-primary-rgb), 0.78);
    box-shadow: 0 0 0 0.14rem rgba(var(--gs-primary-rgb), 0.1);
}

.tag-chip,
.event-label-chip {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tag-suggestions {
    background: linear-gradient(-135deg, rgba(26, 24, 14, 0.98), rgba(14, 14, 12, 0.98));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.72);
    border-radius: 0.85rem;
    box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(var(--gs-primary-rgb), 0.16);
    display: grid;
    gap: 0.35rem;
    grid-template-columns: repeat(auto-fit, minmax(8.2rem, 1fr));
    margin-top: 0.45rem;
    padding: 0.45rem;
    position: static;
    width: 100%;
}

.tag-suggestions-title {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    grid-column: 1 / -1;
    line-height: 1.2;
    padding: 0.05rem 0.25rem 0.1rem;
}

.tag-suggestion {
    align-items: center;
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
    background: linear-gradient(-180deg, rgba(var(--app-badge-rgb), 0.12), rgba(var(--app-badge-rgb), 0.045));
    border: 1px solid rgba(var(--app-badge-rgb), 0.3);
    border-radius: 0.65rem;
    color: var(--app-badge-color);
    display: inline-flex;
    font-weight: 700;
    justify-content: flex-start;
    line-height: 1.15;
    min-height: 2.1rem;
    padding: 0.45rem 0.58rem;
    text-align: right;
}

.tag-suggestion:hover,
.tag-suggestion:focus-visible,
.tag-suggestion.is-active {
    background: linear-gradient(-180deg, rgba(var(--app-badge-rgb), 0.22), rgba(var(--app-badge-rgb), 0.1));
    border-color: rgba(var(--app-badge-rgb), 0.58);
    color: var(--app-badge-color);
    outline: 0;
}

.instagram-suggest-wrap {
    position: relative;
}

.venue-location-autocomplete {
    position: relative;
}

.venue-location-suggestions {
    background:
        radial-gradient(circle at 92% 0%, rgba(var(--gs-primary-rgb), 0.1), transparent 9rem),
        linear-gradient(-145deg, #111418 0%, #090b0d 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.48);
    border-radius: var(--gs-radius-control);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.56), 0 0 0 1px rgba(var(--gs-primary-rgb), 0.1);
    display: grid;
    gap: 0.25rem;
    right: 0;
    max-height: min(21rem, 48vh);
    overflow-y: auto;
    padding: 0.45rem;
    position: absolute;
    left: 0;
    top: calc(100% + 0.4rem);
    z-index: 1090;
}

.venue-location-suggestions-title {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.2;
    padding: 0.18rem 0.42rem 0.28rem;
}

.venue-location-suggestion {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.65rem;
    color: var(--gs-text);
    display: flex;
    gap: 0.62rem;
    min-height: 3.25rem;
    padding: 0.48rem 0.55rem;
    text-align: right;
    width: 100%;
}

.venue-location-suggestion:hover,
.venue-location-suggestion:focus-visible,
.venue-location-suggestion.is-active {
    background: rgba(var(--gs-primary-rgb), 0.11);
    border-color: rgba(var(--gs-primary-rgb), 0.38);
    color: var(--gs-text);
    outline: 0;
}

.venue-location-suggestion-icon {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.42);
    border-radius: 0.65rem;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 2.1rem;
    height: 2.1rem;
    justify-content: center;
    width: 2.1rem;
}

.venue-location-suggestion-copy {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.venue-location-suggestion-copy strong,
.venue-location-suggestion-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-location-suggestion-copy strong {
    font-size: 0.9rem;
    font-weight: 800;
}

.venue-location-suggestion-copy small {
    color: var(--gs-text-muted);
    font-size: 0.75rem;
    font-weight: 650;
}

.social-profile-input .social-profile-prefix {
    color: var(--gs-text);
    font-weight: 850;
    justify-content: center;
    min-width: 2.65rem;
}

.social-profile-input-instagram .social-profile-prefix {
    font-size: 1.05rem;
}

.social-profile-input-facebook .social-profile-prefix {
    color: var(--gs-text);
}

.phone-repeater {
    display: grid;
    gap: 0.55rem;
}

.phone-repeater-rows {
    display: grid;
    gap: 0.5rem;
}

.phone-repeater-row {
    align-items: stretch;
    display: grid;
    gap: 0.45rem;
    grid-template-columns: minmax(0, 1fr) 2.75rem;
}

.phone-repeater-remove {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    padding: 0;
}

.phone-repeater-remove:disabled {
    opacity: 0.35;
}

.phone-repeater-add {
    justify-self: start;
}

.instagram-suggestions {
    background:
        radial-gradient(circle at 90% 0%, rgba(var(--gs-primary-rgb), 0.1), transparent 8rem),
        linear-gradient(-145deg, #111418 0%, #090b0d 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.48);
    border-radius: var(--gs-radius-control);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.52), 0 0 0 1px rgba(var(--gs-primary-rgb), 0.1);
    display: grid;
    gap: 0.3rem;
    right: 2.8rem;
    max-height: 18rem;
    overflow-y: auto;
    padding: 0.45rem;
    position: absolute;
    left: 0;
    top: calc(100% + 0.45rem);
    z-index: 1080;
}

.instagram-suggestions-title {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.2;
    padding: 0.15rem 0.35rem 0.25rem;
}

.instagram-suggestion {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.6rem;
    color: var(--gs-text);
    display: flex;
    gap: 0.55rem;
    min-height: 3rem;
    padding: 0.42rem 0.5rem;
    text-align: right;
    width: 100%;
}

.instagram-suggestion:hover,
.instagram-suggestion:focus-visible,
.instagram-suggestion.is-active {
    background: rgba(var(--gs-primary-rgb), 0.11);
    border-color: rgba(var(--gs-primary-rgb), 0.36);
    color: var(--gs-text);
    outline: 0;
}

.instagram-suggestion-avatar {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.14);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.48);
    border-radius: 50%;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 2rem;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.instagram-suggestion-copy {
    display: grid;
    gap: 0.08rem;
    min-width: 0;
}

.instagram-suggestion-copy strong,
.instagram-suggestion-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.instagram-suggestion-copy strong {
    font-size: 0.88rem;
    font-weight: 800;
}

.instagram-suggestion-copy small {
    color: var(--gs-text-muted);
    font-size: 0.75rem;
    font-weight: 650;
}

.entity-role-chip {
    align-items: center;
    display: inline-flex;
    margin-top: 0.55rem;
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
}

.member-role-badge {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
}

.member-inactive-badge {
    --app-badge-color: #94a3b8;
    --app-badge-rgb: 148, 163, 184;
}

.member-stat-grid {
    display: grid;
    gap: 0.75rem;
}

.member-stat-sections {
    display: grid;
    gap: 0.75rem;
}

.member-stat-section {
    display: grid;
    gap: 0.55rem;
}

.member-stat-section + .member-stat-section {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 0.7rem;
}

.member-stat-section-heading {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.member-stat-mini-grid {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.member-upcoming-header {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.member-upcoming-list {
    display: grid;
    gap: 0.65rem;
}

.member-upcoming-card {
    container-type: inline-size;
}

.member-upcoming-item {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.18);
    border-radius: 0.9rem;
    color: var(--gs-text);
    display: grid;
    gap: 0.75rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 0.7rem;
    text-decoration: none;
    transition: border-color 0.2s, background-color 0.2s, transform 0.2s;
}

.member-upcoming-item:hover,
.member-upcoming-item:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.1);
    border-color: var(--gs-primary);
    color: var(--gs-text);
    outline: 0;
    transform: translateY(-1px);
}

.member-upcoming-date {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.35);
    border-radius: 0.75rem;
    color: var(--gs-primary);
    display: inline-flex;
    flex-direction: column;
    gap: 0.08rem;
    height: 3.2rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    text-align: center;
    width: 3.2rem;
}

.member-upcoming-date strong {
    color: var(--gs-text);
    font-size: 1.15rem;
    line-height: 0.95;
}

.member-upcoming-date small,
.member-upcoming-main small {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    line-height: 1;
}

.member-upcoming-date .member-upcoming-month {
    display: block;
    max-width: 100%;
    overflow: hidden;
    padding-inline: 0.16rem;
    white-space: nowrap;
}

.member-upcoming-date .member-upcoming-month.is-long {
    font-size: 0.56rem;
    letter-spacing: -0.025em;
}

.member-upcoming-main {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.member-upcoming-title-line {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    min-width: 0;
}

.member-upcoming-main strong,
.member-upcoming-title-line strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.member-upcoming-today {
    background: rgba(var(--gs-primary-rgb), 0.16);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.58);
    border-radius: 999px;
    color: var(--gs-primary);
    flex: 0 0 auto;
    font-size: 0.6rem;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
    padding: 0.2rem 0.38rem;
    text-transform: uppercase;
}

.member-upcoming-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    min-width: 0;
}

.member-upcoming-meta span {
    align-items: center;
    display: inline-flex;
    gap: 0.24rem;
    min-width: 0;
}

.member-upcoming-meta i {
    color: var(--gs-primary);
    flex: 0 0 auto;
    font-size: 0.82rem;
}

.member-upcoming-meta .member-upcoming-location {
    align-items: flex-start;
    line-height: 1.25;
    white-space: normal;
}

.member-upcoming-location > span {
    display: inline;
    min-width: 0;
    overflow-wrap: anywhere;
}

@container (max-width: 22rem) {
    .member-upcoming-item {
        grid-template-areas:
            "date title fee"
            "date meta meta";
        grid-template-columns: auto minmax(0, 1fr) auto;
        row-gap: 0.32rem;
    }

    .member-upcoming-date {
        grid-area: date;
    }

    .member-upcoming-main {
        display: contents;
    }

    .member-upcoming-title-line {
        grid-area: title;
    }

    .member-upcoming-meta {
        grid-area: meta;
    }

    .member-upcoming-meta .member-upcoming-location {
        flex: 1 1 10rem;
    }

    .member-upcoming-fee {
        grid-area: fee;
    }
}

.member-upcoming-fee {
    color: var(--gs-money);
    font-weight: 800;
    white-space: nowrap;
}

.member-detail-avatar,
.member-detail-avatar-placeholder {
    border: 4px solid rgba(var(--gs-primary-rgb), 0.78);
    border-radius: 50%;
    box-shadow: 0 16px 28px rgba(0, 0, 0, 0.58), 0 0 0 8px rgba(var(--gs-primary-rgb), 0.13);
    height: 120px;
    width: 120px;
}

.member-detail-avatar {
    display: block;
    flex: 0 0 auto;
    margin-inline: auto;
    object-fit: cover;
}

.member-detail-avatar-placeholder {
    align-items: center;
    background:
        radial-gradient(circle at 34% 24%, #303030 0%, #161616 52%, #050505 100%);
    color: var(--gs-text-muted);
    display: flex;
    font-size: 3rem;
    justify-content: center;
}

.member-detail-contacts {
    display: grid;
    gap: 0.42rem;
    margin: 0 auto 1rem;
    max-width: min(100%, 18rem);
    text-align: right;
}

.member-detail-contact-row {
    align-items: center;
    display: grid;
    gap: 0.55rem;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    margin: 0;
}

.member-detail-contact-row i {
    color: var(--gs-text-muted);
    justify-self: center;
}

.member-detail-contact-row .bi-telegram {
    color: #2ea5e1;
}

.member-detail-contact-row .bi-whatsapp {
    color: #25d366;
}

.member-detail-contact-row .bi-viber {
    color: #7360f2;
}

.member-detail-contact-row .bi-instagram {
    color: #e1306c;
}

.member-detail-contact-row .bi-facebook {
    color: #1877f2;
}

.member-detail-contact-row .bi-envelope {
    color: var(--gs-text);
}

.member-detail-contact-row a,
.member-detail-contact-row span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.member-stat-tile,
.member-top-venue {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.18);
    border-radius: 0.85rem;
    color: var(--gs-text);
    display: grid;
    gap: 0.2rem;
    padding: 0.8rem 0.9rem;
    text-decoration: none;
    transition: border-color 0.2s, background-color 0.2s, transform 0.2s;
}

.member-stat-tile:hover,
.member-stat-tile:focus-visible,
.member-top-venue:hover,
.member-top-venue:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.1);
    border-color: var(--gs-primary);
    color: var(--gs-text);
    outline: 0;
    transform: translateY(-1px);
}

.member-stat-tile span,
.member-top-venue span {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
    font-weight: 700;
}

.member-stat-tile strong {
    font-size: 1.25rem;
    line-height: 1.2;
}

.member-stat-tile small {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
}

.member-stat-last-gig {
    display: grid;
    gap: 0.45rem;
}

.member-stat-section-label {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
    font-weight: 800;
}

.member-last-gig-item {
    margin-top: 0;
    padding: 0.65rem;
}

.member-stat-tile-muted {
    opacity: 0.72;
}

.member-top-venues {
    display: grid;
    gap: 0.45rem;
}

.member-top-venue {
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0.55rem 0.7rem;
}

.member-top-venue strong {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
}

.member-history-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.venue-history-sort-form,
.member-history-sort-form {
    margin-right: auto;
    max-width: 100%;
}

.venue-history-sort-form .venue-history-sort-group,
.member-history-sort-form .member-history-sort-group {
    flex-wrap: nowrap;
}

.member-history-sort-select {
    min-width: 12.75rem;
}

.member-history-controls {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(14rem, 1fr) minmax(12rem, 0.55fr) auto;
    margin-bottom: 1rem;
}

.member-history-search {
    min-width: 0;
}

.member-history-actions {
    display: flex;
    gap: 0.6rem;
}

.member-history-table th:first-child,
.member-history-table td:first-child {
    padding-right: 1rem;
}

.member-history-table th:last-child,
.member-history-table td:last-child {
    padding-left: 1rem;
}

.gig-members-picker {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--gs-radius-card);
    padding: 0.78rem;
}

.gig-members-picker-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 0.52rem;
}

.gig-members-selected {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.34rem;
    margin-bottom: 0.52rem;
    min-height: 1.62rem;
}

.gig-members-selected:empty {
    display: none;
    margin-bottom: 0;
    min-height: 0;
}

.gig-member-chip {
    align-items: center;
    --app-badge-color: #d9dde5;
    --app-badge-rgb: 217, 221, 229;
    background: linear-gradient(-180deg, rgba(var(--app-badge-rgb), 0.1), rgba(7, 8, 10, 0.74));
    border: 1px solid rgba(var(--app-badge-rgb), 0.72);
    border-radius: 6px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    color: var(--app-badge-color);
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.68rem;
    font-weight: 800;
    gap: 0.3rem;
    line-height: 1;
    max-width: 100%;
    min-height: 1.5rem;
    padding: 0.22rem 0.52rem;
}

.gig-member-chip small {
    color: var(--gs-text-muted);
    font-size: 0.63rem;
    font-weight: 700;
}

.gig-members-empty {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
}

.gig-members-panel {
    background: rgba(7, 8, 10, 0.34);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.8rem;
    padding: 0.52rem;
}

.gig-members-search {
    margin-bottom: 0.5rem;
    position: relative;
}

.gig-members-search i {
    color: var(--gs-primary);
    right: 0.85rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.gig-members-search .form-control {
    min-height: 2.32rem;
    padding-right: 2.35rem;
}

.gig-members-options {
    display: grid;
    gap: 0;
    max-height: 14rem;
    overflow: auto;
    padding-left: 0.12rem;
}

.gig-member-option {
    align-items: center;
    background: rgba(255, 255, 255, 0.018);
    border: 1px solid transparent;
    border-bottom-color: rgba(255, 255, 255, 0.07);
    border-radius: 0;
    cursor: pointer;
    display: grid;
    gap: 0.48rem;
    grid-template-columns: auto minmax(0, 1fr) 8.3rem;
    min-height: 2.5rem;
    padding: 0.32rem 0.42rem;
}

.gig-member-option:first-child {
    border-top-right-radius: 0.55rem;
    border-top-left-radius: 0.55rem;
}

.gig-member-option:last-child {
    border-bottom-color: transparent;
    border-bottom-right-radius: 0.55rem;
    border-bottom-left-radius: 0.55rem;
}

.gig-member-option.is-selected,
.gig-member-option:has(input[name="members"]:checked) {
    background: rgba(var(--gs-primary-rgb), 0.075);
    border-color: transparent;
    border-bottom-color: rgba(var(--gs-primary-rgb), 0.14);
    box-shadow: inset -3px 0 0 rgba(var(--gs-primary-rgb), 0.78);
}

.gig-member-option .form-check-input {
    height: 0.96rem;
    margin: 0;
    width: 0.96rem;
}

.gig-member-option:hover {
    background: rgba(255, 255, 255, 0.045);
    border-color: rgba(var(--gs-primary-rgb), 0.26);
}

.gig-member-option.is-selected:hover,
.gig-member-option:has(input[name="members"]:checked):hover {
    background: rgba(var(--gs-primary-rgb), 0.105);
    border-color: transparent;
    border-bottom-color: rgba(var(--gs-primary-rgb), 0.18);
}

.gig-member-option-name {
    display: grid;
    gap: 0.02rem;
    min-width: 0;
}

.gig-member-option-name strong {
    font-size: 0.9rem;
    line-height: 1.15;
}

.gig-member-option-name small {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
}

.gig-member-fee {
    align-items: center;
    display: flex;
    gap: 0.25rem;
    justify-content: flex-end;
}

.gig-member-fee > span:not(.gig-member-fee-control) {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    font-weight: 800;
}

.gig-member-fee .form-control {
    height: 2.02rem;
    min-height: 2.02rem;
    min-width: 0;
    padding: 0.28rem 0.5rem;
    text-align: left;
}

.gig-member-fee-control {
    align-items: stretch;
    display: grid;
    gap: 0.28rem;
    grid-template-columns: minmax(0, 1fr) 1.52rem;
    min-width: 7.35rem;
}

.gig-member-fee-control input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}

.gig-member-fee-control input[type="number"]::-webkit-inner-spin-button,
.gig-member-fee-control input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.gig-member-fee-stepper {
    display: grid;
    gap: 0.18rem;
}

.gig-member-fee-step {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.08);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.5);
    border-radius: 0.34rem;
    color: var(--gs-primary);
    display: inline-flex;
    height: 0.92rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
    width: 1.52rem;
}

.gig-member-fee-step .bi {
    font-size: 0.78rem;
    line-height: 1;
    margin: 0;
}

.gig-member-fee-step:hover,
.gig-member-fee-step:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.18);
    border-color: rgba(var(--gs-primary-rgb), 0.82);
    color: var(--gs-primary);
    outline: 0;
}

.gig-member-fee-control:has(input:disabled) .gig-member-fee-step {
    border-color: rgba(255, 255, 255, 0.14);
    color: var(--gs-text-muted);
    cursor: not-allowed;
    opacity: 0.62;
}

.gig-members-help {
    margin-top: 0.42rem;
}

/* Gig edit: always-visible lineup and inline honorariums */
.gig-edit-page-heading {
    margin-bottom: 0.8rem;
}

.gig-edit-card {
    overflow: hidden;
}
.gig-edit-card .card-body {
    padding: 1rem;
}

.gig-edit-finance-grid {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gig-edit-finance-grid > [class*="col-"] {
    width: auto;
}

.gig-income-overview {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-sm);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gig-income-overview > div {
    display: grid;
    gap: 0.22rem;
    padding: 0.7rem 0.85rem;
}

.gig-income-overview > div + div {
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.gig-income-overview small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-weight: 750;
}

.gig-income-overview strong {
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.gig-income-overview-total strong {
    color: var(--gs-money);
}

.gig-members-picker-table {
    padding: 0;
}

.gig-members-picker-table .gig-members-picker-header {
    flex-wrap: wrap;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    margin: 0;
    min-height: 3.55rem;
    padding: 0.7rem 0.85rem;
}

.gig-members-picker-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.gig-income-split-hint {
    flex-basis: 100%;
    margin-top: 0;
}

.gig-members-picker-heading {
    align-items: center;
    display: flex;
    gap: 0.65rem;
}

.gig-members-picker-heading .form-label {
    font-family: var(--gs-display-font);
    font-size: 1rem;
    font-weight: 800;
}

.gig-members-count-badge {
    background: rgba(var(--gs-primary-rgb), 0.11);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.38);
    border-radius: 999px;
    color: var(--gs-primary);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.24rem 0.52rem;
}

.gig-lineup-table-header,
.gig-lineup-row {
    align-items: center;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: minmax(14rem, 1.6fr) minmax(9.5rem, 0.85fr) 2.5rem;
}

[data-gig-income-allocation] .gig-lineup-table-header,
[data-gig-income-allocation] .gig-lineup-row,
[data-gig-income-allocation].has-extra-allocation .gig-lineup-row {
    grid-template-columns: minmax(17rem, 1.7fr) repeat(3, minmax(7rem, 0.72fr)) 2.5rem;
}

.gig-lineup-table-header {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    padding: 0.58rem 0.85rem;
    text-transform: uppercase;
}

.gig-lineup-income-header {
    display: grid;
    gap: 0.35rem;
    grid-column: 2 / 5;
}

.gig-lineup-income-title {
    color: var(--gs-primary);
    font-size: 0.64rem;
    letter-spacing: 0.05em;
}

.gig-lineup-income-columns {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gig-lineup-sort,
.gig-roster-sort {
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    display: inline-flex;
    font: inherit;
    font-weight: inherit;
    gap: 0.36rem;
    letter-spacing: inherit;
    min-height: 1.75rem;
    padding: 0;
    text-align: inherit;
    text-transform: inherit;
}

.gig-lineup-sort:hover,
.gig-lineup-sort:focus-visible,
.gig-lineup-sort.is-active,
.gig-roster-sort:hover,
.gig-roster-sort:focus-visible,
.gig-roster-sort.is-active {
    color: var(--gs-primary);
    outline: 0;
}

.gig-lineup-sort .bi,
.gig-roster-sort .bi {
    font-size: 0.72rem;
}

.table-sort-control {
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: inherit;
    gap: 0.34rem;
    letter-spacing: inherit;
    min-height: 1.75rem;
    padding: 0;
    text-align: inherit;
    text-decoration: none;
    text-transform: inherit;
}

.table-sort-control:hover,
.table-sort-control:focus-visible,
.table-sort-control.is-active,
.table-sort-control.is-navigation-pending,
th[aria-sort="ascending"] > .table-sort-control,
th[aria-sort="descending"] > .table-sort-control {
    color: var(--gs-primary);
    outline: 0;
    text-decoration: none;
}

.table-sort-control.is-navigation-pending {
    opacity: 0.72;
}

.table-sort-control .bi {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    transition: color 0.16s ease, transform 0.16s ease;
}

.table-sort-control:hover .bi,
.table-sort-control:focus-visible .bi,
.table-sort-control.is-active .bi,
th[aria-sort="ascending"] > .table-sort-control .bi,
th[aria-sort="descending"] > .table-sort-control .bi {
    color: var(--gs-primary);
}

th.text-end .table-sort-control {
    justify-content: flex-end;
    width: 100%;
}

.gig-members-picker-table .gig-members-selected {
    display: block;
    margin: 0;
    min-height: 0;
}

.gig-lineup-row {
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    min-height: 4.25rem;
    padding: 0.58rem 0.85rem;
    transition: background-color 0.16s ease, opacity 0.16s ease;
}

.gig-lineup-row:hover,
.gig-lineup-row:focus-within {
    background: rgba(var(--gs-primary-rgb), 0.045);
}

.gig-lineup-row.is-dragging {
    opacity: 0.45;
}

.gig-lineup-participant {
    align-items: center;
    display: flex;
    gap: 0.7rem;
    min-width: 0;
}

.gig-lineup-avatar {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    color: var(--gs-text);
    display: inline-flex;
    flex: 0 0 2.7rem;
    font-size: 0.65rem;
    font-weight: 850;
    height: 2.7rem;
    justify-content: center;
    overflow: hidden;
    width: 2.7rem;
}

.gig-lineup-avatar img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.gig-lineup-participant-copy {
    display: grid;
    gap: 0.24rem;
    min-width: 0;
}

.gig-lineup-participant-name-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
    min-width: 0;
}

.gig-lineup-participant-copy strong {
    font-size: 0.88rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gig-lineup-role {
    flex: 0 1 auto;
    font-size: 0.62rem;
    margin: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gig-lineup-instrument {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.72rem;
    gap: 0.36rem;
    min-width: 0;
}

.gig-lineup-instrument .bi {
    color: var(--gs-primary);
    flex: 0 0 auto;
}

.gig-lineup-instrument span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gig-lineup-fee-cell {
    min-width: 0;
}

.gig-lineup-money-control {
    align-items: stretch;
    display: flex;
    min-width: 0;
}

.gig-lineup-money-control > span {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid var(--gs-border);
    border-right: 0;
    border-radius: 0.38rem 0 0 0.38rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.72rem;
    padding: 0 0.42rem;
}

.gig-lineup-money-control .form-control {
    border-radius: 0 0.38rem 0.38rem 0;
    height: 2.15rem;
    min-height: 2.15rem;
    min-width: 0;
    padding-inline: 0.52rem;
}

.gig-lineup-member-total {
    color: var(--gs-money);
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    white-space: nowrap;
}

.gig-member-option-total {
    color: var(--gs-money);
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    margin-right: auto;
}

.gig-lineup-fee-control {
    width: 100%;
}

.gig-lineup-fee-control .gig-lineup-fee-input {
    height: 2.15rem;
    min-height: 2.15rem;
    text-align: right;
}

.gig-lineup-actions {
    align-items: center;
    display: flex;
    justify-content: flex-end;
}

.gig-lineup-drag-handle {
    color: var(--gs-text-muted);
    cursor: grab;
    flex: 0 0 auto;
    margin-right: -0.42rem;
}

.gig-lineup-drag-handle:active {
    cursor: grabbing;
}

.gig-lineup-remove {
    color: #fca5a5;
}

.gig-lineup-remove:hover,
.gig-lineup-remove:focus-visible {
    background: rgba(239, 68, 68, 0.13);
    border-color: rgba(248, 113, 113, 0.46);
    color: #fecaca;
}

.gig-lineup-empty {
    color: var(--gs-text-muted);
    padding: 1rem 0.85rem;
    text-align: center;
}

.gig-members-picker-table .gig-members-panel {
    border: 0;
    border-radius: 0;
    border-top: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    padding: 0.7rem 0.85rem;
}

.gig-members-panel-toolbar {
    align-items: center;
    display: grid;
    gap: 0.6rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 0.55rem;
}

.gig-members-panel-toolbar .gig-members-search {
    margin: 0;
}

.gig-form-finance-summary {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.055);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.3);
    border-radius: var(--gs-radius-sm);
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 0.85rem;
    padding: 0.72rem 0.85rem;
}

.gig-form-finance-total,
.gig-form-finance-remainder {
    display: grid;
    gap: 0.18rem;
}

.gig-form-finance-remainder {
    text-align: left;
}

.gig-form-finance-summary strong {
    color: var(--gs-text);
    font-size: 0.84rem;
}

.gig-form-finance-summary strong span {
    color: var(--gs-money);
    font-size: 0.95rem;
    font-variant-numeric: tabular-nums;
}

.gig-form-finance-summary small {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
}

.gig-form-finance-total small .bi {
    color: var(--gs-success);
}
.gig-allocation-summary {
    background: rgba(var(--gs-primary-rgb), 0.035);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.3);
    border-radius: var(--gs-radius-sm);
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.85rem;
}

.gig-allocation-summary-section {
    display: grid;
    gap: 0.38rem;
    padding: 0.75rem 0.85rem;
}

.gig-allocation-summary-section + .gig-allocation-summary-section {
    border-right: 1px solid rgba(var(--gs-primary-rgb), 0.2);
}

.gig-allocation-summary-section > strong {
    font-size: 0.8rem;
}

.gig-allocation-summary-section > span {
    align-items: center;
    display: flex;
    gap: 0.7rem;
    justify-content: space-between;
}

.gig-allocation-summary-section small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
}

.gig-allocation-summary-section b {
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.gig-allocation-summary-total {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 0.18rem;
    padding-top: 0.42rem;
}

.gig-allocation-summary-total b,
[data-gig-remainder-value] {
    color: var(--gs-money);
}

.gig-allocation-deficit b,
.gig-allocation-warning {
    color: #fca5a5;
}

.gig-allocation-warning {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(248, 113, 113, 0.32);
    border-radius: 0.42rem;
    font-size: 0.7rem;
    margin: 0.25rem 0 0;
    padding: 0.45rem 0.55rem;
}

@media (max-width: 767.98px) {
    .gig-edit-page-heading {
        margin-bottom: 0.55rem;
    }
    .gig-edit-card .card-body {
        padding: 0.75rem;
    }

    .gig-edit-finance-grid {
        grid-template-columns: 1fr;
    }

    .gig-income-overview,
    .gig-allocation-summary {
        grid-template-columns: 1fr;
    }

    .gig-income-overview > div + div,
    .gig-allocation-summary-section + .gig-allocation-summary-section {
        border-right: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .gig-members-picker-table .gig-members-picker-header {
        align-items: flex-start;
        gap: 0.55rem;
        padding: 0.7rem;
    }

    .gig-members-picker-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .gig-lineup-table-header {
        display: none;
    }

    .gig-lineup-row,
    [data-gig-income-allocation] .gig-lineup-row,
    [data-gig-income-allocation].has-extra-allocation .gig-lineup-row {
        align-items: start;
        gap: 0.65rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 0.7rem;
    }

    .gig-lineup-participant {
        grid-column: 1 / -1;
        grid-row: 1;
        padding-left: 2.4rem;
    }

    .gig-lineup-actions {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        z-index: 1;
    }

    .gig-lineup-fee-cell,
    .gig-lineup-member-total {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    [data-gig-income-allocation] .gig-lineup-base-fee-cell {
        grid-column: 1;
        grid-row: 2;
    }

    [data-gig-income-allocation] .gig-lineup-extra-fee-cell {
        grid-column: 2;
        grid-row: 2;
    }

    [data-gig-income-allocation] .gig-lineup-fee-cell,
    [data-gig-income-allocation] .gig-lineup-member-total {
        display: block;
    }

    [data-gig-income-allocation] .gig-lineup-fee-cell::before,
    [data-gig-income-allocation] .gig-lineup-member-total::before {
        color: var(--gs-text-muted);
        content: attr(data-label);
        display: block;
        font-size: 0.68rem;
        font-weight: 750;
        margin-bottom: 0.3rem;
    }

    [data-gig-income-allocation] .gig-lineup-member-total {
        align-items: center;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        display: flex;
        grid-column: 1 / -1;
        grid-row: 3;
        justify-content: space-between;
        padding-top: 0.55rem;
    }

    [data-gig-income-allocation] .gig-lineup-member-total::before {
        margin: 0;
    }

    .gig-members-picker-actions {
        width: 100%;
    }

    .gig-members-picker-actions .btn {
        flex: 1 1 100%;
        justify-content: center;
        min-height: 44px;
        white-space: normal;
    }

    .gig-members-panel-toolbar {
        grid-template-columns: 1fr;
    }

    .gig-members-panel-toolbar .btn {
        justify-content: center;
        width: 100%;
    }

    .gig-form-finance-summary {
        grid-template-columns: 1fr;
    }

    .gig-form-finance-remainder {
        border-top: 1px solid rgba(var(--gs-primary-rgb), 0.2);
        padding-top: 0.65rem;
        text-align: right;
    }
}

.searchable-select {
    position: relative;
}

.filter-search-select-native {
    display: none !important;
}

.filter-search-select {
    min-width: 0;
}

.searchable-select-toggle {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    min-height: 2.6rem;
    text-align: right;
}

.searchable-select-toggle i {
    color: var(--gs-text-muted);
    flex: 0 0 auto;
    transition: transform 0.2s ease;
}

.filter-search-select-toggle {
    min-height: 2.42rem;
    padding: 0.42rem 0.72rem;
}

.searchable-select.is-open .searchable-select-toggle i {
    transform: rotate(-180deg);
}

.searchable-select-menu {
    background: rgba(17, 17, 17, 0.98);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.5);
    border-radius: 1rem;
    box-shadow: 0 1.1rem 2.8rem rgba(0, 0, 0, 0.45);
    right: 0;
    margin-top: 0.45rem;
    max-height: 20rem;
    overflow: auto;
    padding: 0.6rem;
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1080;
}

.searchable-select-search {
    margin-bottom: 0.55rem;
    position: relative;
}

.searchable-select-search i {
    color: var(--gs-primary);
    right: 0.8rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.searchable-select-search .form-control {
    padding-right: 2.2rem;
}

.searchable-select-option {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0.65rem;
    color: var(--gs-text);
    display: grid;
    gap: 0.12rem;
    padding: 0.55rem 0.65rem;
    text-align: right;
    width: 100%;
}

.searchable-select-option:hover,
.searchable-select-option:focus-visible,
.searchable-select-option.is-selected {
    background: rgba(var(--gs-primary-rgb), 0.16);
    color: var(--gs-text);
    outline: 0;
}

.searchable-select-option.is-selected {
    border: 1px solid rgba(var(--gs-primary-rgb), 0.35);
}

.searchable-select-option small,
.searchable-select-empty {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
}

.searchable-select-empty {
    padding: 0.65rem;
}


/* The shared list keeps its search visible while options scroll. */
.filter-search-select-menu:not([hidden]) { display: flex; flex-direction: column; overflow: hidden; }
.filter-search-select-menu[hidden] { display: none; }
.filter-search-select-menu .searchable-select-search { flex: 0 0 auto; }
.filter-search-select-options { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.filter-search-select-menu .searchable-select-empty { flex-shrink: 0; }
.filter-search-select-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filter-search-select-toggle { gap: .5rem; width: 100%; text-align: start; }
.filter-search-select-toggle:disabled { cursor: default; opacity: .65; }
.filter-search-select-menu .searchable-select-option { min-height: 44px; text-align: start; }
.filter-search-select-menu .searchable-select-option[hidden] { display: none; }
.filter-search-select-menu .searchable-select-option:disabled { opacity: .5; cursor: default; }
.filter-search-select-menu .searchable-select-option span { overflow-wrap: anywhere; }
.filter-menu-popover[popover] {
    position: fixed;
    inset: auto;
    margin: 0;
    color: var(--gs-text);
    box-sizing: border-box;
    overscroll-behavior: contain;
}
.filter-menu-popover[popover]:not(:popover-open) { display: none; }
.filter-menu-inline { position: static; margin-top: .35rem; }
.language-onboarding-select + .filter-search-select { margin-bottom: 1.25rem; }
:is(.language-onboarding, .language-settings-body) .filter-search-select-toggle { min-height: 48px; font-size: 1rem; }
.report-currency-form .filter-search-select { width: min(22rem, 45vw); }
@media (max-width: 767.98px) {
    .filter-search-select-menu .searchable-select-search input,
    .filter-multiselect-search input { font-size: 16px; min-height: 44px; }
    .filter-multiselect-option { min-height: 44px; }
    .report-currency-form .filter-search-select { flex: 1 1 100%; width: 100%; }
}

.contact-multiselect-option,
.venue-multiselect-option {
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0.48rem 0.55rem;
}

.contact-multiselect-check,
.contact-multiselect-primary,
.venue-multiselect-check {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 0.5rem;
    margin: 0;
    min-width: 0;
}

.contact-multiselect-check input,
.contact-multiselect-primary input,
.venue-multiselect-check input {
    accent-color: var(--gs-primary);
    flex: 0 0 auto;
}

.contact-multiselect-check span,
.venue-multiselect-check span {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.contact-multiselect-check strong,
.contact-multiselect-check small,
.venue-multiselect-check strong,
.venue-multiselect-check small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-multiselect-option {
    grid-template-columns: minmax(0, 1fr);
}

.venue-multiselect-option.is-selected .venue-multiselect-check strong {
    color: var(--gs-primary);
}

.contact-multiselect-primary {
    border: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    border-radius: 999px;
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    font-weight: 850;
    padding: 0.28rem 0.5rem;
}

.contact-multiselect-option.is-primary .contact-multiselect-primary {
    background: rgba(var(--gs-primary-rgb), 0.18);
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    color: var(--gs-primary);
}

.contact-multiselect-primary:has(input:disabled) {
    cursor: not-allowed;
    opacity: 0.52;
}

.inline-create-toggle {
    align-items: center;
    background-color: rgba(0, 0, 0, 0.14);
    background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.56);
    border-radius: 6px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--gs-primary);
    display: inline-flex;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 800;
    justify-content: center;
    min-height: 2rem;
    padding: 0.42rem 0.78rem;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.inline-create-toggle:hover,
.inline-create-toggle:focus-visible {
    background-color: rgba(var(--gs-primary-rgb), 0.08);
    background-image: linear-gradient(-180deg, rgba(var(--gs-primary-rgb), 0.12), rgba(var(--gs-primary-rgb), 0.035));
    border-color: rgba(var(--gs-primary-rgb), 0.82);
    box-shadow: 0 12px 22px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.055);
    color: var(--gs-primary);
    outline: 0;
    text-decoration: none;
    transform: translateY(-1px);
}

.quick-contact-form {
    background: rgba(255, 255, 255, 0.035);
    border: 1px dashed rgba(var(--gs-primary-rgb), 0.34);
    border-radius: 1rem;
    margin-top: 0.75rem;
    padding: 1rem;
}

.quick-contact-form .form-label {
    color: var(--gs-text-muted);
    font-size: 0.8rem;
    font-weight: 800;
}

.form-check-input {
    background-color: rgba(255, 255, 255, 0.06);
    border-color: rgba(var(--gs-primary-rgb), 0.36);
}

.form-check-input:checked {
    background-color: var(--gs-primary);
    border-color: var(--gs-primary);
}

.form-check-input:focus {
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--gs-primary-rgb), 0.22);
}

/* Help buttons have a 44px target; align the checkbox with the whole row. */
.form-check:has(> .form-check-label):has(> .context-help) {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-inline-start: 0;
}
.form-check:has(> .context-help) > .form-check-input {
    float: none;
    margin: 0;
    flex-shrink: 0;
}
.form-check:has(> .context-help) > .form-check-label { min-width: 0; }
.form-check > .context-help { flex-shrink: 0; }

.gig-form-tips .tip-icon {
    color: var(--gs-primary);
}

.input-group-text {
    background-color: var(--gs-bg-card);
    border-color: var(--gs-border);
    border-radius: 1rem;
    color: var(--gs-text-muted);
}

.password-toggle {
    align-items: center;
    background-color: var(--gs-bg-card);
    border: 1px solid var(--gs-border);
    box-shadow: none;
    color: var(--gs-text-muted);
    display: inline-flex;
    justify-content: center;
    min-height: auto;
    min-width: 3rem;
    padding-inline: 0.85rem;
}

.input-group .password-toggle {
    border-radius: 1rem 0 0 1rem;
    box-shadow: none;
    padding-inline: 0.85rem;
}

.password-toggle:hover,
.password-toggle:active {
    background-color: rgba(var(--gs-primary-rgb), 0.12);
    border-color: var(--gs-primary);
    color: var(--gs-primary);
    transform: none;
}

.password-toggle:focus-visible {
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--gs-primary-rgb), 0.25);
    color: var(--gs-primary);
}

.password-toggle i {
    font-size: 1rem;
    line-height: 1;
}

.auth-divider {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.85rem;
    font-weight: 700;
    gap: 0.85rem;
    margin: 0.35rem 0 1rem;
}

.auth-divider::before,
.auth-divider::after {
    background: var(--gs-border);
    content: "";
    flex: 1;
    height: 1px;
}

.btn-google {
    align-items: center;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.78);
    color: #1f1f1f;
    display: inline-flex;
    font-weight: 800;
    gap: 0.75rem;
    justify-content: center;
}

.btn-google:hover,
.btn-google:focus-visible {
    background: #ffffff;
    border-color: var(--gs-primary);
    color: #050505;
}

.btn-apple {
    align-items: center;
    background: #000000;
    border: 1px solid rgba(255, 255, 255, 0.68);
    color: #ffffff;
    display: inline-flex;
    font-weight: 800;
    gap: 0.75rem;
    justify-content: center;
}

.btn-apple:hover,
.btn-apple:focus-visible {
    background: #111111;
    border-color: var(--gs-primary);
    color: #ffffff;
}

.btn-apple .bi-apple {
    font-size: 1.35rem;
    line-height: 1;
}

.google-mark {
    align-items: center;
    background: #ffffff;
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 1.55rem;
    height: 1.55rem;
    justify-content: center;
    line-height: 1;
    width: 1.55rem;
}

.google-mark svg {
    display: block;
    height: 1.15rem;
    width: 1.15rem;
}

/* Buttons */
.btn {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 800;
    gap: 0.45rem;
    justify-content: center;
    line-height: 1.1;
    min-height: 2.42rem;
    padding: 0.62rem 1rem;
    text-decoration: none;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, transform 0.18s ease;
    font-variant-numeric: tabular-nums;
}

.btn i {
    line-height: 1;
}

.btn-sm {
    font-size: 0.82rem;
    min-height: 2rem;
    padding: 0.42rem 0.78rem;
}

/* Shared columns keep account cards aligned regardless of names or available actions. */
.band-access-card {
    container-type: inline-size;
}

.band-access-identity {
    min-width: 0;
    overflow-wrap: anywhere;
    margin-bottom: 1rem;
}

.band-access-fields {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
}

.band-access-fields > *,
.band-access-fields form {
    min-width: 0;
    margin-bottom: 0;
}

.band-access-fields .form-label {
    display: block;
    margin-bottom: .5rem;
}

.band-access-fields .form-select {
    width: 100%;
    min-width: 0;
    height: 2.75rem;
    text-overflow: ellipsis;
}

.band-access-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    min-height: 2.75rem;
    margin-top: .5rem;
}

.band-access-fields .band-access-action-button {
    min-height: 2.75rem;
}

.band-access-fields .band-access-remove-button {
    width: 2.75rem;
}

@container (max-width: 34rem) {
    .band-access-fields {
        grid-template-columns: minmax(0, 1fr);
    }
}

.band-access-action-button {
    align-items: center;
    display: inline-flex;
    height: 2.5rem;
    justify-content: center;
    min-height: 2.5rem;
}

.band-access-remove-button {
    padding-inline: 0;
    width: 2.5rem;
}

.band-access-status-dot {
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 50%;
    cursor: help;
    display: inline-block;
    flex: 0 0 auto;
    height: 0.7rem;
    width: 0.7rem;
}

.band-access-status-dot-active {
    background: #20c997;
    box-shadow: 0 0 0 3px rgba(32, 201, 151, 0.12);
}

.band-access-status-dot-pending {
    background: #ffc107;
    box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.12);
}

.band-access-status-dot-expired {
    background: #7e8794;
    box-shadow: 0 0 0 3px rgba(126, 135, 148, 0.12);
}

.band-access-status-dot:focus-visible {
    outline: 2px solid var(--gs-cyan);
    outline-offset: 3px;
}

.btn-lg {
    font-size: 1rem;
    min-height: 2.9rem;
    padding: 0.82rem 1.18rem;
}

.btn:hover,
.btn:focus-visible {
    text-decoration: none;
    transform: translateY(-1px);
}

.btn:active {
    transform: translateY(0);
}

.btn:focus-visible {
    outline: none;
}

.btn.disabled,
.btn:disabled {
    box-shadow: none;
    cursor: not-allowed;
    opacity: 0.58;
    transform: none;
}

.btn-primary,
.btn-warning,
.btn-unpaid-payouts {
    background-color: var(--gs-primary);
    color: #050505;
    background-image: var(--gs-action-bg);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.95);
    box-shadow: var(--gs-action-shadow);
    text-shadow: none;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-warning:hover,
.btn-warning:focus-visible,
.btn-unpaid-payouts:hover,
.btn-unpaid-payouts:focus-visible {
    background-color: #e8ae00;
    background-image: var(--gs-action-hover-bg);
    border-color: #ffe27a;
    box-shadow: var(--gs-action-hover-shadow);
    color: #050505;
}

/* Keep the global create-event CTA on the StoryBand yellow brand color while
   the personal-data theme and the scope-collapse animation are active. */
.app-topbar-create-action,
.app-topbar-create-action:hover,
.app-topbar-create-action:focus,
.app-topbar-create-action:focus-visible,
.app-topbar-create-action:active {
    --bs-btn-active-bg: #e8ae00;
    --bs-btn-active-border-color: #ffe27a;
    --bs-btn-active-color: #050505;
    background-color: var(--gs-yellow);
    background-image: linear-gradient(-180deg, #ffd547 0%, var(--gs-yellow) 100%);
    border-color: rgba(var(--gs-yellow-rgb), 0.95);
    box-shadow: 0 12px 24px rgba(var(--gs-yellow-rgb), 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.28);
    color: #050505;
}

.btn-secondary,
.btn-outline-cyan,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-light,
.btn-outline-dark,
.btn-outline-warning {
    background-color: rgba(0, 0, 0, 0.14);
    background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
    border: 1px solid rgba(148, 163, 184, 0.32);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--gs-text);
}

.btn-outline-primary,
.btn-outline-warning {
    color: var(--gs-primary);
    border-color: rgba(var(--gs-primary-rgb), 0.72);
}

.btn-secondary:hover,
.btn-secondary:focus-visible,
.btn-outline-primary:hover,
.btn-outline-primary:focus-visible,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus-visible,
.btn-outline-light:hover,
.btn-outline-light:focus-visible,
.btn-outline-dark:hover,
.btn-outline-dark:focus-visible,
.btn-outline-warning:hover,
.btn-outline-warning:focus-visible {
    background-color: rgba(var(--gs-primary-rgb), 0.08);
    background-image: linear-gradient(-180deg, rgba(var(--gs-primary-rgb), 0.12), rgba(var(--gs-primary-rgb), 0.035));
    border-color: rgba(var(--gs-primary-rgb), 0.82);
    box-shadow: 0 12px 22px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.055);
    color: var(--gs-primary);
}

.btn-outline-cyan {
    --bs-btn-disabled-color: var(--gs-link-cyan);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: rgba(var(--gs-link-cyan-rgb), 0.72);
    --bs-btn-active-color: var(--gs-link-cyan-hover);
    --bs-btn-active-bg: rgba(var(--gs-link-cyan-rgb), 0.12);
    --bs-btn-active-border-color: rgba(var(--gs-link-cyan-rgb), 0.82);
    color: var(--gs-link-cyan);
    border-color: rgba(var(--gs-link-cyan-rgb), 0.72);
}

.btn-outline-cyan:hover,
.btn-outline-cyan:focus-visible,
.btn-outline-cyan:active {
    background-color: rgba(var(--gs-link-cyan-rgb), 0.08);
    background-image: linear-gradient(-180deg, rgba(var(--gs-link-cyan-rgb), 0.12), rgba(var(--gs-link-cyan-rgb), 0.035));
    border-color: rgba(var(--gs-link-cyan-rgb), 0.82);
    box-shadow: 0 0 0 0.18rem rgba(var(--gs-link-cyan-rgb), 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.055);
    color: var(--gs-link-cyan-hover);
}

.btn-success,
.btn-outline-success {
    background-color: rgba(20, 184, 166, 0.08);
    background-image: linear-gradient(-180deg, rgba(45, 212, 191, 0.14), rgba(20, 184, 166, 0.055));
    border: 1px solid rgba(45, 212, 191, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
    color: #63f3df;
}

.btn-success:hover,
.btn-success:focus-visible,
.btn-outline-success:hover,
.btn-outline-success:focus-visible {
    background-color: rgba(20, 184, 166, 0.12);
    background-image: linear-gradient(-180deg, rgba(45, 212, 191, 0.24), rgba(20, 184, 166, 0.1));
    border-color: rgba(94, 234, 212, 0.95);
    box-shadow: 0 12px 22px rgba(20, 184, 166, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    color: #b6fff5;
}

.btn-danger,
.btn-outline-danger {
    background-color: rgba(185, 28, 28, 0.08);
    background-image: linear-gradient(-180deg, rgba(248, 113, 113, 0.12), rgba(185, 28, 28, 0.055));
    border: 1px solid rgba(248, 113, 113, 0.68);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: #fecaca;
}

.btn-danger:hover,
.btn-danger:focus-visible,
.btn-outline-danger:hover,
.btn-outline-danger:focus-visible {
    background-color: rgba(185, 28, 28, 0.12);
    background-image: linear-gradient(-180deg, rgba(248, 113, 113, 0.22), rgba(185, 28, 28, 0.1));
    border-color: rgba(252, 165, 165, 0.95);
    box-shadow: 0 12px 22px rgba(185, 28, 28, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    color: #ffffff;
}

.btn-outline-telegram {
    background-color: rgba(42, 171, 238, 0.14);
    background-image: linear-gradient(-180deg, rgba(42, 171, 238, 0.18), rgba(34, 158, 217, 0.1));
    border: 1px solid rgba(42, 171, 238, 0.78);
    box-shadow: 0 10px 20px rgba(34, 158, 217, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    color: #6bd0ff;
}

.btn-outline-telegram:hover,
.btn-outline-telegram:focus-visible {
    background-color: #229ed9;
    background-image: linear-gradient(-180deg, #2aabee, #168ac5);
    border-color: rgba(125, 211, 252, 0.95);
    box-shadow: 0 12px 22px rgba(34, 158, 217, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.18);
    color: #ffffff;
}

.lineup-message-panel {
    display: grid;
    gap: 0.85rem;
}

.lineup-message-preview {
    background: rgba(0, 0, 0, 0.16);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    border-radius: var(--gs-radius-control);
    color: var(--gs-text);
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
    padding: 0.7rem 0.8rem;
}

.message-target-stack {
    display: grid;
    gap: 0.75rem;
}

.message-target-panel {
    background:
        linear-gradient(-180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.01)),
        rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.22);
    border-radius: var(--gs-radius-control);
    display: grid;
    gap: 0.55rem;
    padding: 0.75rem;
}

.message-target-heading {
    align-items: center;
    color: var(--gs-text);
    display: flex;
    font-size: 0.9rem;
    font-weight: 800;
    gap: 0.5rem;
    justify-content: space-between;
    line-height: 1.2;
}

.message-target-heading .bi {
    color: var(--gs-primary);
}

.message-target-actions {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.message-target-add-button {
    align-items: center;
    display: inline-flex;
    flex: 0 0 2.55rem;
    justify-content: center;
    min-width: 2.55rem;
    padding-inline: 0;
    width: 2.55rem;
}

.message-target-add-button .bi {
    margin: 0;
}

.message-copy-state {
    color: var(--gs-primary);
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    min-height: 1rem;
}

.message-target-manager-card {
    margin-bottom: 1rem;
}

.message-target-form-grid,
.message-target-edit-form {
    align-items: end;
    display: grid;
    gap: 0.75rem;
}

.message-target-form-grid {
    grid-template-columns: minmax(8rem, 0.8fr) minmax(8rem, 0.8fr) minmax(11rem, 1fr) minmax(14rem, 1.4fr) auto;
}

.message-target-edit-form {
    grid-template-columns: minmax(8rem, 0.8fr) minmax(8rem, 0.8fr) minmax(11rem, 1fr) minmax(14rem, 1.4fr);
}

.message-target-value-field {
    min-width: 0;
}

.message-target-secret-field {
    min-width: 0;
}

.message-target-secret-field .form-control {
    min-width: 0;
}

.message-target-secret-toggle {
    flex: 0 0 2.75rem;
    min-width: 2.75rem;
    padding-inline: 0;
}

.message-target-secret-toggle .bi {
    margin: 0;
}

.message-target-submit {
    justify-self: end;
    margin-bottom: 0.25rem;
    min-width: 7.5rem;
}

.message-target-list {
    display: grid;
    gap: 0.85rem;
}

.message-target-card .card-body {
    display: grid;
    gap: 0.75rem;
}

.message-target-card-toolbar {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.message-target-order-actions,
.message-target-card-actions {
    align-items: center;
    display: inline-flex;
    gap: 0.45rem;
}

.message-target-card-actions {
    justify-content: flex-end;
}

.message-target-order-form,
.message-target-delete-form {
    margin: 0;
}

.message-target-order-button {
    align-items: center;
    display: inline-flex;
    height: 2.15rem;
    justify-content: center;
    padding: 0;
    width: 2.15rem;
}

.message-target-order-button .bi {
    margin: 0;
}

.message-target-order-button:disabled {
    box-shadow: none;
    opacity: 0.42;
}

.message-target-order-meta {
    color: var(--gs-muted);
    font-size: 0.82rem;
    font-weight: 800;
    min-width: 3.5rem;
}

.message-target-delete-form {
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 1199.98px) {
    .message-target-form-grid,
    .message-target-edit-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .message-target-value-field,
    .message-target-submit {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .app-topbar-actions {
        gap: 0.3rem;
    }

    .app-topbar-title h1 span {
        display: none;
    }

    .view-scope-segmented-label {
        display: none;
    }

    .view-scope-segmented-control {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 9.3rem;
    }

    .view-scope-segment {
        padding-inline: 0.38rem;
    }

    .app-user-menu-toggle {
        padding-inline: 0.12rem;
    }

    .message-target-actions,
    .message-target-form-grid,
    .message-target-edit-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .message-target-card-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .message-target-card-actions,
    .message-target-delete-form {
        justify-content: stretch;
        width: 100%;
    }

    .message-target-delete-form .btn,
    .message-target-submit,
    .message-target-card-actions .btn {
        width: 100%;
    }
}

.btn-unpaid-payouts {
    min-width: max-content;
}

.event-type-step {
    border: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    border-radius: var(--gs-radius-md);
    padding: 1rem;
    background: rgba(var(--gs-primary-rgb), 0.05);
}

.event-type-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.event-type-option {
    cursor: pointer;
    margin: 0;
    position: relative;
}

.event-type-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.event-type-option span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 2.75rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.38);
    border-radius: var(--gs-radius-pill);
    color: var(--gs-text-muted);
    background: rgba(0, 0, 0, 0.22);
    font-weight: 700;
    transition: color 0.16s ease, border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.event-type-option:hover span,
.event-type-option input:focus-visible + span {
    color: var(--gs-text);
    border-color: rgba(var(--gs-primary-rgb), 0.72);
}

.event-type-option input:checked + span {
    color: #050505;
    border-color: var(--gs-primary);
    background: linear-gradient(-180deg, var(--gs-primary-highlight) 0%, var(--gs-primary) 100%);
    box-shadow: 0 10px 20px rgba(var(--gs-primary-rgb), 0.18);
}

/* Payouts */
.payout-summary .card-body {
    padding: 1.25rem 1.4rem;
}

.payout-summary-value {
    color: var(--gs-money);
    font-family: var(--gs-display-font);
    font-size: clamp(1.85rem, 3vw, 2.6rem);
    font-weight: 900;
    line-height: 1;
}

.payout-summary-count {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: var(--gs-radius-pill);
    color: var(--gs-primary);
    display: inline-flex;
    font-weight: 900;
    min-height: 2.45rem;
    padding: 0.45rem 0.9rem;
}

.payout-table th:first-child,
.payout-table td:first-child {
    padding-right: 1.65rem;
}

.payout-table th:last-child,
.payout-table td:last-child {
    padding-left: 1.65rem;
}

.payout-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.payout-actions form {
    margin: 0;
}

.payout-groups {
    display: grid;
    gap: 0.85rem;
}

.payout-group-card {
    overflow: hidden;
}

.payout-group-summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    list-style: none;
    padding: 1rem 1.1rem;
}

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

.payout-group-title,
.payout-group-meta {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.payout-group-title strong,
.payout-group-meta strong {
    color: var(--gs-text);
    font-weight: 900;
}

.payout-group-title small,
.payout-group-meta span,
.payout-group-meta small {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    font-weight: 750;
}

.payout-group-meta {
    justify-items: end;
    text-align: left;
}

.payout-group-meta strong {
    color: var(--gs-money);
    font-size: 1.25rem;
}

.payout-group-form {
    border-top: 1px solid var(--gs-surface-border);
}

.payout-group-select-all {
    background: rgba(255, 255, 255, 0.018);
    border-bottom: 1px solid var(--gs-surface-border);
    padding: 0.65rem 1rem;
}

.payout-group-items {
    display: grid;
}

.payout-group-item {
    align-items: center;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    min-height: 4.15rem;
    padding: 0.65rem 1rem;
}

.payout-group-item + .payout-group-item {
    border-top: 1px solid var(--gs-surface-border);
}

.payout-group-item-main {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.payout-group-item-main strong {
    font-weight: 850;
    overflow-wrap: anywhere;
}

.payout-group-item-main small {
    color: var(--gs-text-muted);
    font-size: 0.74rem;
    font-weight: 700;
}

.payout-group-item-amount {
    color: var(--gs-money);
    font-weight: 900;
    white-space: nowrap;
}

.payout-settlement-controls {
    align-items: end;
    background: rgba(var(--gs-primary-rgb), 0.035);
    border-top: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    display: grid;
    gap: 0.7rem;
    grid-template-columns: minmax(9.5rem, 0.7fr) minmax(9.5rem, 0.7fr) minmax(14rem, 1.3fr) auto;
    padding: 0.9rem 1rem 1rem;
}

.payout-settlement-controls label,
.gig-client-payment-form label {
    display: grid;
    gap: 0.3rem;
}

.payout-settlement-controls label > span,
.gig-client-payment-form label > span {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.payout-submit-button {
    white-space: nowrap;
}

.gig-client-payment {
    display: grid;
    gap: 0.8rem;
    min-width: 0;
}

.gig-client-payment-header {
    align-items: flex-start;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    min-width: 0;
    width: 100%;
}

.gig-client-payment-header > div {
    min-width: 0;
}

.gig-client-payment-record,
.gig-client-payment-summary {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gig-client-payment-record > span,
.gig-client-payment-summary > span {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-control);
    display: grid;
    gap: 0.15rem;
    padding: 0.65rem;
}

.gig-client-payment-record small,
.gig-client-payment-summary small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-weight: 750;
}

.gig-client-payment-note {
    grid-column: 1 / -1;
}

.gig-client-payment-form {
    align-items: end;
    display: grid;
    gap: 0.7rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: 0;
}

.gig-client-payment-note-field,
.gig-client-payment-other-field {
    grid-column: 1 / -1;
}

.gig-client-payment-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.gig-client-payment-actions form {
    margin: 0;
}

.gig-client-payment-actions .btn {
    min-height: 2.55rem;
}

.gig-client-payment-history {
    border: 1px solid var(--gs-surface-border);
    display: grid;
}

.gig-client-payment-history-heading,
.gig-client-payment-entry {
    align-items: center;
    display: grid;
    gap: 0.75rem;
}

.gig-client-payment-history-heading {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0.65rem 0.75rem;
}

.gig-client-payment-history-heading small {
    color: var(--gs-text-muted);
}

.gig-client-payment-entry {
    border-top: 1px solid var(--gs-surface-border);
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    min-width: 0;
    padding: 0.7rem 0.75rem;
}

.gig-client-payment-entry-icon {
    align-items: center;
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 1rem;
    justify-content: center;
}

.gig-client-payment-entry-copy {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.gig-client-payment-entry-copy strong,
.gig-client-payment-entry-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gig-client-payment-entry-copy small {
    color: var(--gs-text-muted);
    font-size: 0.74rem;
}

.gig-client-payment-entry-amount {
    color: var(--gs-money);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.gig-client-payment-delete {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 2.25rem;
    min-width: 2.25rem;
    padding: 0.35rem;
}

.gig-client-payment-sync-note {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.06);
    border-right: 2px solid var(--gs-primary);
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.78rem;
    gap: 0.45rem;
    margin: 0;
    padding: 0.65rem 0.75rem;
}

.gig-client-payment-sync-note i {
    color: var(--gs-primary);
}

/* Pagination */
.pagination {
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0;
}

.pagination .page-link {
    align-items: center;
    background: rgba(18, 18, 18, 0.88);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    border-radius: 0.8rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    min-height: 2.35rem;
    min-width: 2.35rem;
    padding: 0.45rem 0.78rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
    transition: color 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.pagination .page-link:hover,
.pagination .page-link:focus {
    background: rgba(var(--gs-primary-rgb), 0.1);
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    color: var(--gs-primary);
    box-shadow: 0 10px 22px rgba(var(--gs-primary-rgb), 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.pagination .page-item.active .page-link {
    background: linear-gradient(-180deg, var(--gs-primary-highlight) 0%, var(--gs-primary) 100%);
    border-color: rgba(var(--gs-primary-rgb), 0.95);
    color: #050505;
    box-shadow: 0 10px 20px rgba(var(--gs-primary-rgb), 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.pagination .page-item.disabled .page-link {
    background: rgba(18, 18, 18, 0.42);
    border-color: rgba(255, 255, 255, 0.08);
    color: rgba(248, 249, 250, 0.34);
    cursor: default;
    box-shadow: none;
}

.pagination .page-item.disabled .page-link:hover,
.pagination .page-item.disabled .page-link:focus {
    background: rgba(18, 18, 18, 0.42);
    border-color: rgba(255, 255, 255, 0.08);
    color: rgba(248, 249, 250, 0.34);
}

/* Badges */
.badge,
.event-label-chip,
.entity-role-chip,
.contact-role-line,
.status-badge,
.badge-scheduled,
.badge-completed,
.badge-cancelled,
.badge-pending-confirmation,
.confirmation-status-confirmed,
.confirmation-status-pending,
.confirmation-status-declined {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
    align-items: center;
    background: linear-gradient(-180deg, rgba(var(--app-badge-rgb), 0.1), rgba(7, 8, 10, 0.74)) !important;
    border: 1px solid rgba(var(--app-badge-rgb), 0.72);
    border-radius: 6px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    color: var(--app-badge-color) !important;
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.65rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1;
    min-height: 1.45rem;
    min-width: 0;
    padding: 0.38rem 0.56rem 0.3rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.event-label-chip,
.entity-role-chip,
.contact-role-line {
    min-width: 0;
}

.status-badge,
.badge-scheduled,
.badge-completed,
.badge-cancelled,
.badge-pending-confirmation,
.confirmation-status-confirmed,
.confirmation-status-pending,
.confirmation-status-declined,
.event-type-badge,
.contact-status-active,
.contact-status-inactive {
    min-width: 4.55rem;
}

.event-label-chip {
    --app-badge-color: #d9dde5;
    --app-badge-rgb: 217, 221, 229;
}

.event-label-tone-0 {
    --app-badge-color: #ffd23f;
    --app-badge-rgb: 255, 210, 63;
}

.event-label-tone-1 {
    --app-badge-color: #35d6a6;
    --app-badge-rgb: 53, 214, 166;
}

.event-label-tone-2 {
    --app-badge-color: #38d8ff;
    --app-badge-rgb: 56, 216, 255;
}

.event-label-tone-3 {
    --app-badge-color: #c4b5fd;
    --app-badge-rgb: 196, 181, 253;
}

.event-label-tone-4 {
    --app-badge-color: #f9a8d4;
    --app-badge-rgb: 249, 168, 212;
}

.event-label-tone-5 {
    --app-badge-color: #fb923c;
    --app-badge-rgb: 251, 146, 60;
}

.event-label-tone-6 {
    --app-badge-color: #a3e635;
    --app-badge-rgb: 163, 230, 53;
}

.event-label-tone-7 {
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
}

.entity-role-chip,
.contact-role-line {
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
}

.member-role-badge {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
}

.member-inactive-badge {
    --app-badge-color: #94a3b8;
    --app-badge-rgb: 148, 163, 184;
}

.event-type-badge {
    --app-badge-color: var(--gs-text-muted);
    --app-badge-rgb: 156, 163, 175;
}

.event-type-gig {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
}

.event-type-rehearsal {
    --app-badge-color: #38d8ff;
    --app-badge-rgb: 56, 216, 255;
}

.event-type-meeting {
    --app-badge-color: #c4b5fd;
    --app-badge-rgb: 196, 181, 253;
}

.event-type-other {
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
}

.badge.bg-primary {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
}

.badge.bg-success {
    --app-badge-color: #34d399;
    --app-badge-rgb: 52, 211, 153;
}

.badge.bg-danger {
    --app-badge-color: #f87171;
    --app-badge-rgb: 248, 113, 113;
}

.badge.bg-warning {
    --app-badge-color: #fb923c;
    --app-badge-rgb: 251, 146, 60;
}

.badge.bg-info,
.badge.bg-info.text-dark {
    --app-badge-color: #38d8ff;
    --app-badge-rgb: 56, 216, 255;
}

.badge.bg-secondary {
    --app-badge-color: #cbd5e1;
    --app-badge-rgb: 203, 213, 225;
}

.badge.text-dark {
    color: var(--app-badge-color) !important;
}

.badge-scheduled {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
}

.badge-completed,
.confirmation-status-confirmed {
    --app-badge-color: #34d399;
    --app-badge-rgb: 52, 211, 153;
}

.badge-cancelled,
.confirmation-status-declined {
    --app-badge-color: #f87171;
    --app-badge-rgb: 248, 113, 113;
}

.badge-pending-confirmation,
.confirmation-status-pending {
    --app-badge-color: #fb923c;
    --app-badge-rgb: 251, 146, 60;
}

/* Universal semantic badge glow */
.badge:not(.filter-panel-count-badge),
.event-label-chip,
.entity-role-chip,
.contact-role-line,
.status-badge:not(.form-select),
.badge-scheduled,
.badge-completed,
.badge-cancelled,
.badge-pending-confirmation,
.confirmation-status-confirmed,
.confirmation-status-pending,
.confirmation-status-declined,
.event-type-badge,
.contact-status-active,
.contact-status-inactive,
.finance-pill,
.finance-ledger-type,
.filter-multiselect-selection-chip:not(.event-label-chip),
.filter-multiselect-selection-more,
.tag-chip,
.gig-member-chip,
.member-list-status {
    box-shadow:
        0 0 0 1px rgba(var(--app-badge-rgb), 0.1),
        0 0 0.62rem rgba(var(--app-badge-rgb), 0.34),
        inset 0 0 0.34rem rgba(var(--app-badge-rgb), 0.1) !important;
}

.status-badge.form-select {
    box-shadow: none !important;
}

.status-badge.form-select {
    background-image:
        var(--bs-form-select-bg-img),
        linear-gradient(-180deg, rgba(var(--app-badge-rgb), 0.1), rgba(7, 8, 10, 0.74)) !important;
    background-position: left 0.45rem center, 100% 0 !important;
    background-repeat: no-repeat, repeat !important;
    background-size: 0.62rem, 100% 100% !important;
    cursor: pointer;
    max-width: 8.5rem;
    padding-left: 1.45rem;
}

/* Compact semantic badges inside data tables */
.table .badge:not(.filter-panel-count-badge):not(.calendar-legend-badge),
.table .event-label-chip,
.table .entity-role-chip,
.table .contact-role-line,
.table .status-badge:not(.form-select) {
    border-radius: 4px;
    font-size: 0.5rem;
    min-height: 1.15rem;
    padding: 0.2rem 0.36rem 0.14rem;
}

/* Compact role labels inside tabular list rows */
.entity-list-row .entity-role-chip,
.entity-list-row .contact-role-line {
    border-radius: 4px;
    font-size: 0.5rem;
    min-height: 1.15rem;
    padding: 0.2rem 0.36rem 0.14rem;
}

.calendar-legend-badge {
    box-shadow:
        0 0 0.34rem rgba(var(--app-badge-rgb), 0.24),
        inset 0 0 0.22rem rgba(var(--app-badge-rgb), 0.08) !important;
    display: inline-flex !important;
    height: 0.9rem;
    min-height: 0.9rem;
    min-width: 1.55rem;
    padding: 0;
    width: 1.55rem;
}

.text-money {
    color: var(--gs-money) !important;
    text-shadow: 0 0 14px rgba(var(--gs-money-rgb), 0.16);
    white-space: nowrap;
}

.gig-fee-breakdown h6 {
    color: var(--gs-text);
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: 0.85rem;
}

.gig-fee-breakdown h6 .bi {
    color: var(--gs-primary);
}

.gig-fee-breakdown-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gig-fee-breakdown-item {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-sm);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem 0.85rem;
}

.gig-fee-breakdown-item span {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 750;
}

.gig-fee-breakdown-item strong {
    color: var(--gs-text);
    font-size: 1.05rem;
    font-weight: 850;
}

.gig-fee-breakdown-item-accent {
    border-color: rgba(var(--gs-primary-rgb), 0.45);
    box-shadow: 0 0 18px rgba(var(--gs-primary-rgb), 0.1);
}

.gig-fee-breakdown-item-accent strong {
    color: var(--gs-money);
    text-shadow: 0 0 14px rgba(var(--gs-money-rgb), 0.18);
}

.gig-finance-income-summary {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-sm);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
}

.gig-finance-income-summary > span {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
    padding: 0.75rem 0.85rem;
}

.gig-finance-income-summary > span + span {
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.gig-finance-income-summary small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
}

.gig-finance-income-summary b {
    color: var(--gs-text);
    font-size: 0.88rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.gig-finance-income-total b {
    color: var(--gs-money);
}

.gig-roster-card {
    overflow: visible;
}

.gig-roster-card-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: var(--gs-card-header-padding-block) 1rem;
}

.gig-roster-heading {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.gig-roster-title-row {
    align-items: center;
    display: flex;
    gap: 0.56rem;
    min-width: 0;
}

.gig-roster-title-row h5 {
    line-height: 1.2;
}

.gig-roster-count {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 800;
    height: 1.32rem;
    justify-content: center;
    min-width: 1.32rem;
    padding: 0 0.32rem;
}

.gig-roster-summary {
    color: #34d399;
    font-size: 0.75rem;
    font-weight: 700;
}

.gig-roster-summary.is-pending {
    color: #fbbf24;
}

.gig-roster-notify-action {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0.42rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 750;
    gap: 0.46rem;
    min-height: 2.25rem;
    padding: 0.42rem 0.62rem;
    text-decoration: none;
}

.gig-roster-notify-action:hover,
.gig-roster-notify-action:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    color: var(--gs-primary);
    outline: 1px solid rgba(var(--gs-primary-rgb), 0.36);
}

.gig-roster-card-body {
    padding: 0;
}

.gig-roster-table-wrap {
    overflow: visible;
}

.gig-roster-table {
    table-layout: fixed;
}

.gig-roster-table > :not(caption) > * > * {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.08);
    padding: 0.84rem 0.9rem;
    vertical-align: middle;
}

.gig-roster-table thead th {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.gig-roster-table thead th:first-child {
    padding-right: 1rem;
    width: 43%;
}

.gig-roster-table thead th:nth-child(2) {
    width: 22%;
}

.gig-roster-table thead th:nth-child(3) {
    width: 16%;
}

.gig-roster-table thead th:nth-child(4) {
    padding-left: 1rem;
    width: 19%;
}

.gig-roster-row {
    transition: background-color 0.16s ease;
}

.gig-roster-row:hover,
.gig-roster-row:focus-within {
    background: rgba(255, 255, 255, 0.018);
}

.gig-roster-identity {
    align-items: center;
    display: grid;
    gap: 0.78rem;
    grid-template-columns: auto minmax(0, 1fr);
    min-width: 0;
}

.gig-roster-avatar,
.gig-roster-avatar-fallback {
    align-items: center;
    background: radial-gradient(circle at 34% 24%, #303030 0%, #161616 52%, #050505 100%);
    border: 2px solid rgba(var(--gs-primary-rgb), 0.72);
    border-radius: 50%;
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 3rem;
    height: 3rem;
    justify-content: center;
    overflow: hidden;
    text-decoration: none;
    width: 3rem;
}

.gig-roster-avatar {
    box-shadow: 0 0 0 4px rgba(var(--gs-primary-rgb), 0.08);
}

.gig-roster-avatar:hover,
.gig-roster-avatar:focus-visible {
    border-color: var(--gs-primary);
    outline: 0;
}

.gig-roster-avatar img,
.gig-roster-avatar > .gig-roster-avatar-fallback {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.gig-roster-avatar > .gig-roster-avatar-fallback {
    border: 0;
    flex-basis: 100%;
}

.gig-roster-copy {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.gig-roster-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    min-width: 0;
}

.app-main-content .gig-roster-table a.gig-roster-profile {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
    color: inherit;
    font-weight: inherit;
    text-decoration: none;
    text-shadow: none;
}

.gig-roster-profile:focus-visible {
    border-radius: 0.25rem;
    outline: 2px solid var(--gs-primary);
    outline-offset: 3px;
}

.app-main-content .gig-roster-table .gig-roster-name {
    color: var(--gs-text) !important;
    font-family: var(--gs-display-font);
    font-size: 0.94rem;
    font-weight: 850;
    line-height: 1.2;
    overflow: hidden;
    overflow-wrap: anywhere;
    text-decoration: none;
    text-overflow: ellipsis;
    text-shadow: none !important;
}

.app-main-content .gig-roster-table .gig-roster-profile:hover .gig-roster-name,
.app-main-content .gig-roster-table .gig-roster-profile:focus-visible .gig-roster-name {
    color: var(--gs-primary) !important;
    outline: 0;
}

.gig-roster-meta {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    gap: 0.26rem;
}

.gig-roster-account-line {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    font-size: 0.73rem;
    gap: 0.32rem;
    line-height: 1.25;
    min-width: 0;
}

.gig-roster-instrument {
    align-items: center;
    display: inline-flex;
    min-width: 0;
}

.gig-roster-meta-separator {
    color: rgba(255, 255, 255, 0.34);
    margin-inline: 0.08rem;
}

.gig-roster-account-status {
    color: rgba(255, 255, 255, 0.52);
}

.app-main-content .gig-roster-account-connect {
    color: var(--gs-primary);
    font-size: 0.7rem;
    font-weight: 750;
    text-decoration: none;
}

.app-main-content .gig-roster-account-connect:hover,
.app-main-content .gig-roster-account-connect:focus-visible {
    text-decoration: underline;
}

.gig-roster-confirmation {
    display: inline-flex;
    max-width: 100%;
    position: relative;
}

.gig-roster-status-button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0.42rem;
    color: var(--gs-text-muted);
    display: inline-grid;
    font-size: 0.78rem;
    font-weight: 720;
    gap: 0.44rem;
    grid-template-columns: 0.52rem minmax(0, auto) 0.75rem;
    justify-content: start;
    min-height: 2.1rem;
    padding: 0.34rem 0.48rem;
    text-align: right;
    white-space: nowrap;
}

.gig-roster-status-button:hover,
.gig-roster-status-button:focus-visible,
.gig-roster-status-button[aria-expanded="true"] {
    background: rgba(255, 255, 255, 0.045);
    outline: 1px solid rgba(255, 255, 255, 0.12);
}

.gig-roster-status-button > .bi {
    font-size: 0.65rem;
    transition: transform 0.16s ease;
}

.gig-roster-status-button[aria-expanded="true"] > .bi {
    transform: rotate(-180deg);
}

.gig-roster-status-dot {
    background: #fbbf24;
    border-radius: 50%;
    display: inline-block;
    height: 0.5rem;
    width: 0.5rem;
}

.gig-roster-status-button.is-confirmed {
    color: #6ee7a3;
}

.gig-roster-status-button.is-confirmed .gig-roster-status-dot,
.gig-roster-status-option.is-confirmed .gig-roster-status-dot {
    background: #34d399;
}

.gig-roster-status-button.is-declined {
    color: #f87171;
}

.gig-roster-status-button.is-declined .gig-roster-status-dot,
.gig-roster-status-option.is-declined .gig-roster-status-dot {
    background: #ef4444;
}

.gig-roster-status-menu {
    background: #17191d;
    border-color: rgba(255, 255, 255, 0.13);
    border-radius: 0.58rem;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.42);
    min-width: 15rem;
    padding: 0.38rem;
    z-index: 1065;
}

.gig-roster-status-option {
    align-items: center;
    border-radius: 0.38rem;
    color: var(--gs-text-muted);
    display: grid;
    font-size: 0.8rem;
    gap: 0.52rem;
    grid-template-columns: 0.52rem minmax(0, 1fr) auto;
    min-height: 2.35rem;
    padding: 0.46rem 0.58rem;
}

.gig-roster-status-option:hover,
.gig-roster-status-option:focus-visible,
.gig-roster-status-option.active {
    background: rgba(255, 255, 255, 0.06);
    color: var(--gs-text);
}

.gig-roster-status-option.is-pending .gig-roster-status-dot {
    background: #fbbf24;
}

.gig-roster-status-provenance {
    align-items: flex-start;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    color: rgba(255, 255, 255, 0.48);
    display: flex;
    font-size: 0.66rem;
    gap: 0.4rem;
    line-height: 1.4;
    margin-top: 0.28rem;
    padding: 0.58rem 0.56rem 0.2rem;
    white-space: normal;
}

.gig-roster-status-provenance .bi {
    color: #38bdf8;
    margin-top: 0.08rem;
}

.gig-roster-status-disabled {
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.76rem;
}

.gig-roster-money {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: normal;
    overflow-wrap: anywhere;
}

.gig-roster-fee > span {
    color: var(--gs-money);
    font-weight: 850;
}

.gig-roster-fee > span.is-adjusted {
    color: var(--gs-money);
}

.gig-roster-fee > small {
    color: var(--gs-money);
    display: block;
    font-size: 0.65rem;
    font-weight: 720;
    margin-top: 0.12rem;
}

.gig-roster-payment-control,
.gig-roster-payment-button,
.gig-roster-paid-value,
.gig-roster-paid-main {
    min-width: 0;
    max-width: 100%;
}

.gig-roster-payment-control {
    display: flex;
    justify-content: flex-start;
    margin: 0;
}

.gig-roster-payment-button {
    background: transparent;
    border: 0;
    border-radius: 0.4rem;
    color: var(--gs-text-muted);
    display: grid;
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
    gap: 0.1rem;
    justify-items: start;
    min-height: 2rem;
    padding: 0.28rem 0.38rem;
    text-align: right;
}

.gig-roster-paid-main {
    align-items: center;
    display: inline-flex;
    gap: 0.38rem;
}

.gig-roster-paid-main > .bi {
    color: rgba(255, 255, 255, 0.44);
    font-size: 0.72rem;
    transition: color 0.16s ease;
}

.gig-roster-paid-amount {
    color: #f87171;
    font-weight: 820;
}

.gig-roster-payment-button small,
.gig-roster-paid-value small {
    color: rgba(255, 255, 255, 0.48);
    font-size: 0.67rem;
    font-weight: 650;
}

.gig-roster-payment-button:hover,
.gig-roster-payment-button:focus-visible {
    background: rgba(255, 255, 255, 0.05);
    outline: 1px solid rgba(255, 255, 255, 0.12);
}

.gig-roster-payment-button:hover .gig-roster-paid-main > .bi,
.gig-roster-payment-button:focus-visible .gig-roster-paid-main > .bi {
    color: var(--gs-primary);
}

.gig-roster-paid-value {
    display: grid;
    gap: 0.08rem;
}

.gig-roster-payment-button.is-not-due .gig-roster-paid-amount,
.gig-roster-paid-value.is-not-due .gig-roster-paid-amount,
.gig-roster-payment-button.is-no-fee .gig-roster-paid-amount,
.gig-roster-paid-value.is-no-fee .gig-roster-paid-amount {
    color: var(--gs-text-muted);
}

.gig-roster-payment-button.is-paid .gig-roster-paid-amount,
.gig-roster-paid-value.is-paid .gig-roster-paid-amount {
    color: #34d399;
}

.gig-roster-payment-button.is-overpaid .gig-roster-paid-amount,
.gig-roster-paid-value.is-overpaid .gig-roster-paid-amount {
    color: #fbbf24;
}

.gig-payout-modal .modal-content {
    border-color: rgba(255, 196, 0, 0.24);
}

.gig-payout-modal .modal-header {
    align-items: flex-start;
}

.gig-payout-modal .modal-title {
    font-size: 1.45rem;
    line-height: 1.15;
}

.gig-payout-modal-kicker {
    color: var(--gs-primary);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin: 0 0 0.22rem;
    text-transform: uppercase;
}

.gig-payout-modal-member {
    color: var(--gs-text-muted);
    display: block;
    font-size: 0.84rem;
    margin-top: 0.18rem;
}

.gig-payout-modal .modal-body {
    display: grid;
    gap: 1rem;
}

.gig-payout-modal .modal-body > label {
    display: grid;
    font-size: 0.8rem;
    font-weight: 700;
    gap: 0.42rem;
}

.gig-payout-modal .modal-body > label > small {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 550;
}

.gig-payout-modal .input-group-text {
    color: var(--gs-money);
    font-weight: 800;
}

.gig-payout-modal .modal-footer {
    gap: 0.5rem;
}

.gig-payout-reset {
    margin-left: auto;
}

@media (max-width: 575.98px) {
    .gig-payout-modal .modal-dialog {
        margin: 0.65rem;
    }

    .gig-payout-modal .input-group {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .gig-payout-modal .input-group > .form-control {
        min-width: 0;
        width: 100%;
    }

    .gig-payout-modal .input-group > .btn {
        border-radius: var(--bs-border-radius);
        grid-column: 1 / -1;
        margin-top: 0.45rem;
        width: 100%;
    }

    .gig-payout-modal .modal-footer {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .gig-payout-modal .modal-footer > .btn {
        white-space: normal;
        overflow-wrap: anywhere;
        margin: 0;
        width: 100%;
    }

    .gig-payout-modal .modal-footer > [type="submit"] {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .gig-payout-modal .modal-footer > .btn-outline-secondary {
        grid-row: 2;
        padding-inline: 0.5rem;
        font-size: 0.85rem;
    }

    .gig-payout-modal .gig-payout-reset {
        grid-column: 2;
        grid-row: 2;
    }
    .gig-payout-modal .modal-body > label,
    .gig-payout-modal .modal-header > div {
        min-width: 0;
    }
}

.gig-roster-actions-cell {
    padding-left: 1rem !important;
    text-align: left;
}

.gig-roster-actions {
    display: inline-flex;
}

.gig-roster-actions-button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0.42rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    padding: 0;
    width: 2rem;
}

.gig-roster-actions-button:hover,
.gig-roster-actions-button:focus-visible,
.gig-roster-actions-button[aria-expanded="true"] {
    background: rgba(255, 255, 255, 0.055);
    color: var(--gs-text);
    outline: 1px solid rgba(255, 255, 255, 0.12);
}

.gig-roster-actions .dropdown-menu {
    min-width: 14rem;
}

.gig-roster-actions .dropdown-item {
    align-items: center;
    display: flex;
    gap: 0.56rem;
}

.gig-roster-actions .dropdown-item .bi {
    color: var(--gs-text-muted);
    width: 1rem;
}

@media (max-width: 767.98px) {
    .gig-fee-breakdown-grid {
        grid-template-columns: 1fr;
    }

    .gig-finance-income-summary {
        grid-template-columns: 1fr;
    }

    .gig-finance-income-summary > span {
        align-items: center;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .gig-finance-income-summary > span + span {
        border-right: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    /* One bounded card per musician; keep both money values together. */
    .gig-roster-table,
    .gig-roster-table tbody,
    .gig-roster-table tr,
    .gig-roster-table td {
        display: block;
        width: 100%;
    }

    .gig-roster-table thead {
        display: none;
    }

    .gig-roster-table tbody {
        display: grid;
        gap: 0.75rem;
        padding: 0.75rem;
    }

    .gig-roster-table .gig-roster-row {
        display: grid;
        column-gap: 0.75rem;
        row-gap: 0.25rem;
        grid-template-areas:
            "participant participant"
            "participation participation"
            "fee paid";
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 0.75rem;
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 0.65rem;
        background: var(--gs-bg-card);
    }

    .gig-roster-table > :not(caption) > .gig-roster-row > td {
        border: 0;
        padding: 0;
        min-width: 0;
    }

    .gig-roster-participant {
        grid-area: participant;
    }

    .gig-roster-identity {
        align-items: flex-start;
        gap: 0.625rem;
    }

    .gig-roster-avatar {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .gig-roster-profile {
        min-height: 44px;
        align-content: center;
    }

    .gig-roster-participation {
        align-items: center;
        display: flex !important;
        gap: 0.5rem;
        grid-area: participation;
    }

    .gig-roster-participation::before,
    .gig-roster-money::before {
        color: var(--gs-text-muted);
        content: attr(data-label);
        font-size: 0.6875rem;
        font-weight: 650;
        line-height: 1.35;
    }

    .gig-roster-participation::before {
        flex: 0 0 auto;
    }

    .gig-roster-confirmation {
        min-width: 0;
    }

    .gig-roster-status-button {
        min-height: 44px;
        max-width: 100%;
        text-align: start;
        white-space: normal;
    }

    .gig-roster-status-disabled {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }

    .gig-roster-money {
        align-items: flex-start;
        display: flex !important;
        flex-direction: column;
        border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
        padding-top: 0.625rem !important;
        text-align: start;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .gig-roster-money::before {
        margin-bottom: 0.25rem;
    }

    .gig-roster-fee {
        grid-area: fee;
    }

    .gig-roster-paid {
        grid-area: paid;
    }

    .gig-roster-fee > span,
    .gig-roster-paid-amount {
        font-size: 0.9375rem;
        line-height: 1.3;
    }

    .gig-roster-payment-button {
        min-height: 44px;
        max-width: 100%;
        padding: 0;
        text-align: start;
        align-content: start;
    }

    .gig-roster-paid-main {
        align-items: flex-start;
        gap: 0.25rem;
    }

    .gig-roster-paid-main > .bi {
        flex: 0 0 auto;
        margin-top: 0.15rem;
    }

    .gig-roster-payment-button small,
    .gig-roster-paid-value small {
        font-size: 0.7rem;
        line-height: 1.35;
        text-align: start;
    }

    .gig-roster-status-menu {
        min-width: min(15rem, calc(100vw - 2.5rem));
    }

}

/* Member/Venue Cards */
.entity-card {
    background-color: var(--gs-bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-panel);
    padding: 1.25rem;
    height: 100%;
    transition: transform 0.2s, box-shadow 0.2s;
}

.entity-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--gs-elevation-3d-hover);
}

.entity-card-clickable {
    cursor: pointer;
}

.entity-card-clickable:focus-visible {
    box-shadow: var(--gs-elevation-3d-hover), 0 0 0 0.18rem rgba(var(--gs-primary-rgb), 0.35);
    outline: none;
    transform: translateY(-3px);
}

.entity-card {
    background:
        radial-gradient(circle at 86% 8%, rgba(var(--gs-primary-rgb), 0.055), transparent 8rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.035) 0%, #101114 36%, #08090b 100%);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: var(--gs-elevation-3d);
}

.entity-card .entity-avatar {
    display: block;
    flex: 0 0 auto;
    margin-right: auto;
    margin-left: auto;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(var(--gs-primary-rgb), 0.7);
    box-shadow: 0 13px 22px rgba(0, 0, 0, 0.55), 0 0 0 7px rgba(var(--gs-primary-rgb), 0.12);
}

.entity-card .entity-avatar-placeholder {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 34% 24%, #303030 0%, #161616 52%, #050505 100%);
    border: 3px solid rgba(var(--gs-primary-rgb), 0.7);
    box-shadow: 0 13px 22px rgba(0, 0, 0, 0.55), 0 0 0 7px rgba(var(--gs-primary-rgb), 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--gs-text-muted);
}

.entity-card-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.entity-card-heading {
    min-width: 0;
    padding-top: 0.35rem;
}

.entity-card .entity-avatar-sm,
.entity-card .entity-avatar-placeholder.entity-avatar-sm {
    width: 60px;
    height: 60px;
    flex: 0 0 60px;
    min-width: 60px;
    margin: 0;
    font-size: 1.45rem;
}

.entity-card .entity-avatar-lg,
.entity-card .entity-avatar-placeholder.entity-avatar-lg {
    width: 100px;
    height: 100px;
    min-width: 100px;
    max-width: 100px;
    aspect-ratio: 1;
    font-size: 2.5rem;
}

.entity-card .venue-logo-thumb,
.entity-card .entity-avatar-placeholder.venue-logo-thumb,
.entity-list-media .venue-list-logo {
    aspect-ratio: 1;
    background:
        radial-gradient(circle at 34% 24%, rgba(var(--gs-primary-rgb), 0.12), rgba(22, 22, 22, 0.96) 54%, #050505 100%);
    border: 2px solid rgba(var(--gs-primary-rgb), 0.74);
    border-radius: 14px;
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.45), 0 0 0 5px rgba(var(--gs-primary-rgb), 0.1);
    object-fit: contain;
}

.entity-card .venue-logo-thumb,
.entity-card .entity-avatar-placeholder.venue-logo-thumb {
    flex: 0 0 60px;
    height: 60px;
    min-width: 60px;
    padding: 0.2rem;
    width: 60px;
}

.entity-list-media .venue-list-logo {
    flex: 0 0 3.35rem;
    height: 3.35rem;
    padding: 0.18rem;
    width: 3.35rem;
}

.entity-list-media img.venue-list-logo {
    display: block;
}

.entity-list-media .entity-list-avatar-fallback.venue-list-logo {
    display: inline-flex;
}

.entity-card .entity-card-header .entity-name {
    margin-top: 0;
}

.entity-card .entity-name {
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.1;
    margin-top: 0.75rem;
    margin-bottom: 0.25rem;
}

.entity-card .entity-subtitle {
    font-size: 0.875rem;
    color: var(--gs-text-muted);
}

.adaptive-card-text {
    letter-spacing: 0;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.adaptive-card-text.is-single-line {
    text-overflow: clip;
    white-space: nowrap;
}

.adaptive-card-text.is-two-line {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.adaptive-card-text.is-truncated {
    text-overflow: ellipsis;
}

.venue-address-label {
    line-height: 1.25;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.entity-card .venue-address-label {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.25rem;
}

.entity-card .venue-address-label i,
.entity-list-meta .venue-address-label i {
    margin-top: 0.1rem;
}

.entity-card .entity-stats {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--gs-border);
}

.entity-card .entity-stat {
    min-width: 0;
    text-align: center;
}

.entity-card .entity-stat-value {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    font-size: var(--gs-entity-card-metric-size);
    font-weight: 700;
    line-height: 1;
    color: var(--gs-text);
}

.entity-card .entity-stat-value-money {
    color: var(--gs-money);
}

.entity-card [data-money-unavailable] {
    white-space: normal;
    color: var(--gs-text-muted);
    font-size: 0.875rem;
    line-height: 1.2;
}

.entity-card .entity-stat-label {
    font-size: 0.75rem;
    color: var(--gs-text-muted);
}

.list-controls {
    align-items: end;
    background:
        radial-gradient(circle at 92% 8%, rgba(var(--gs-primary-rgb), 0.12), transparent 10rem),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.08), rgba(255, 255, 255, 0.02) 42%, rgba(0, 0, 0, 0.28));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-elevation-3d);
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(14rem, 1fr) minmax(11rem, 15rem) minmax(13rem, 18rem) auto;
    margin-bottom: 1.5rem;
    padding: 1rem;
}

.list-controls .form-label {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    font-weight: 800;
    margin-bottom: 0.4rem;
}

.list-search-panel {
    align-items: end;
    background:
        radial-gradient(circle at 92% 8%, rgba(var(--gs-primary-rgb), 0.1), transparent 10rem),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.06), rgba(255, 255, 255, 0.018) 42%, rgba(0, 0, 0, 0.24));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-elevation-3d);
    display: grid;
    gap: 0.65rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0.85rem 1rem;
    width: 100%;
}

.list-search-panel .form-label {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    font-weight: 800;
    margin-bottom: 0.4rem;
}

.list-search-panel .list-search,
.list-search-panel .input-group {
    min-width: 0;
}

.list-search-panel-with-sort {
    align-items: center;
    gap: 0.75rem;
    grid-template-areas: "search sort actions";
    grid-template-columns: minmax(18rem, 1fr) minmax(17rem, 29rem) auto;
    margin-top: 1.05rem;
}

.list-search-panel-with-sort .list-search {
    align-self: center;
    grid-area: search;
}

.list-search-panel-with-sort .list-search-actions {
    align-self: center;
    grid-area: actions;
}

.list-search-panel-with-sort .list-sort {
    align-self: center;
    grid-area: sort;
    min-width: 0;
}

.list-search-panel-with-sort .list-sort-group {
    align-items: stretch;
    display: flex;
}

.list-search-panel-with-sort .list-control-actions {
    align-items: center;
}

.list-sort-panel {
    align-items: end;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(12rem, 18rem) auto;
    justify-content: end;
    margin-right: auto;
    width: min(100%, 30rem);
}

.list-sort-panel .form-label {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    font-weight: 800;
    margin-bottom: 0.4rem;
}

.list-sort-panel .list-sort {
    min-width: 0;
}

.venue-history-sort-select {
    min-width: 12.75rem;
}

@media (max-width: 767.98px) {
    .venue-history-card-header,
    .member-history-header {
        align-items: stretch;
        flex-direction: column;
    }

    .venue-history-sort-form,
    .venue-history-sort-form .venue-history-sort-group,
    .member-history-sort-form,
    .member-history-sort-form .member-history-sort-group {
        margin-right: 0;
        width: 100%;
    }

    .venue-history-sort-form .venue-history-sort-select,
    .member-history-sort-form .member-history-sort-select {
        min-width: 0;
    }
}

.list-sort-panel .list-control-actions {
    align-items: center;
}

.list-query-panel {
    --list-query-filter-column-width: 10rem;
    --list-query-gap: 0.75rem;
    align-items: center;
    column-gap: 0.75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(9rem, 10rem);
    margin-block: 0.15rem 0.95rem;
    row-gap: 0;
    width: 100%;
}

.list-query-panel.member-history-query-panel {
    grid-template-columns: minmax(0, 1fr) minmax(9rem, 10rem);
    row-gap: 0.75rem;
}

.list-query-panel.member-history-query-panel.list-query-panel-filters-only {
    grid-template-columns: minmax(9rem, 10rem);
    justify-content: end;
}

.list-query-panel.member-history-query-panel.list-query-panel-filters-only > .list-query-filter > .filter-panel-summary {
    grid-column: 1;
    grid-row: 1;
}

.list-query-panel.member-history-query-panel.list-query-panel-filters-only > .list-query-filter > .filter-panel-body {
    grid-column: 1;
    grid-row: 2;
    justify-self: end;
    width: min(38rem, calc(100vw - 2rem));
}

.list-query-panel.member-history-query-panel .member-history-search-panel {
    align-items: center;
    display: flex;
    gap: 0.6rem;
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.member-history-query-panel .list-search {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

.member-history-query-panel .list-search-actions {
    flex: 0 0 auto;
}

.list-query-panel.member-history-query-panel > .list-query-filter > .filter-panel-summary {
    grid-column: 2;
    grid-row: 1;
}

.list-query-panel.member-history-query-panel > .list-query-filter > .filter-panel-body {
    grid-column: 1 / 3;
    grid-row: 2;
    justify-self: stretch;
    margin-top: 0 !important;
    width: calc(100% + var(--list-query-filter-column-width) + var(--list-query-gap));
}

@media (max-width: 767.98px) {
    .list-query-panel.member-history-query-panel {
        grid-template-columns: minmax(0, 1fr);
    }

    .list-query-panel.member-history-query-panel .member-history-search-panel,
    .list-query-panel.member-history-query-panel > .list-query-filter > .filter-panel-summary,
    .list-query-panel.member-history-query-panel > .list-query-filter > .filter-panel-body {
        grid-column: 1;
    }

    .list-query-panel.member-history-query-panel > .list-query-filter > .filter-panel-summary {
        grid-row: 2;
        width: 100%;
    }

    .list-query-panel.member-history-query-panel > .list-query-filter > .filter-panel-body {
        grid-row: 3;
        width: 100%;
    }

    .list-query-panel.member-history-query-panel .member-history-search-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .list-query-panel.member-history-query-panel.list-query-panel-filters-only {
        grid-template-columns: minmax(0, 1fr);
    }

    .list-query-panel.member-history-query-panel.list-query-panel-filters-only > .list-query-filter > .filter-panel-summary {
        grid-row: 1;
    }

    .list-query-panel.member-history-query-panel.list-query-panel-filters-only > .list-query-filter > .filter-panel-body {
        grid-row: 2;
        width: 100%;
    }
}

.list-query-panel.mb-3,
.list-query-panel.mb-4 {
    margin-bottom: 0.95rem !important;
}

.list-query-panel-search-only {
    grid-template-columns: minmax(0, 1fr);
}

.list-query-panel .list-query-search,
.list-query-panel .list-query-filter {
    margin-bottom: 0 !important;
    min-width: 0;
}

.list-query-panel .list-query-search {
    min-width: min(100%, 36rem);
}

.list-query-panel .list-search-panel-with-sort {
    align-self: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    margin-top: 0;
    padding: 0;
}

.member-history-search-panel {
    grid-template-areas:
        "search search"
        "sort actions";
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 0.75rem;
}

.list-query-panel .list-query-search:not(.list-search-panel-with-sort) {
    align-self: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.list-query-panel .input-group > .form-control,
.list-query-panel .input-group > .input-group-text,
.list-query-panel .input-group > .btn,
.list-query-panel .form-select {
    line-height: 1.1;
    min-height: 2.42rem;
    padding-bottom: 0.42rem;
    padding-top: 0.42rem;
}

.list-query-panel-search-only .list-query-search {
    grid-column: 1 / -1;
}

.list-query-panel > .list-query-filter {
    display: contents;
}

.list-query-panel > .list-query-filter > .filter-panel-summary {
    align-self: center;
    background:
        radial-gradient(circle at 92% 8%, rgba(var(--gs-primary-rgb), 0.1), transparent 10rem),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.06), rgba(255, 255, 255, 0.018) 42%, rgba(0, 0, 0, 0.24));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    border-radius: 6px;
    box-shadow: var(--gs-elevation-3d);
    grid-column: 2;
    min-height: 2.42rem;
    min-width: 0;
    padding: 0.42rem 0.72rem;
    position: relative;
    transform: none;
    width: 100%;
    z-index: 7;
}

.list-query-panel > .list-query-filter > .filter-panel-summary .filter-panel-title {
    flex-wrap: nowrap;
    font-size: 0.86rem;
    gap: 0.36rem;
}

.list-query-panel > .list-query-filter > .filter-panel-summary .filter-panel-title .bi {
    font-size: 0.92rem;
}

.list-query-panel > .list-query-filter > .filter-panel-summary .filter-panel-chevron {
    font-size: 0.92rem;
}

.list-query-panel > .list-query-filter > .filter-panel-body {
    background:
        radial-gradient(circle at 92% 8%, rgba(var(--gs-primary-rgb), 0.08), transparent 10rem),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.055), rgba(255, 255, 255, 0.018) 42%, rgba(0, 0, 0, 0.24));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.22);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-elevation-3d);
    grid-column: 1 / 3;
    margin-top: 0;
    max-width: none;
    overflow: visible;
    position: relative;
    width: calc(100% + var(--list-query-filter-column-width) + var(--list-query-gap));
    z-index: 65;
}

.list-query-panel > .list-query-filter[open] > .filter-panel-body {
    margin-top: 0.75rem;
}

.list-query-panel > .list-query-filter:not([open]) > .filter-panel-body {
    display: none !important;
}

.list-search-actions {
    align-items: center;
    display: flex;
    gap: 0.6rem;
    justify-content: flex-end;
    white-space: nowrap;
}

.list-search-actions:empty,
.list-control-actions:empty {
    display: none;
}

.list-search-submit,
.list-sort-submit {
    flex: 0 0 auto;
    white-space: nowrap;
}

.list-sort-group {
    width: 100%;
}

.list-control-actions {
    display: flex;
    gap: 0.6rem;
    justify-content: flex-end;
}

.entity-page-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
}

.view-toggle {
    align-items: center;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.38);
    border-radius: var(--gs-radius-control);
    box-shadow: var(--gs-control-shadow);
    display: inline-flex;
    flex: 0 0 auto;
    gap: 0.18rem;
    padding: 0.18rem;
}

.view-toggle-option {
    align-items: center;
    border-radius: 5px;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.82rem;
    font-weight: 800;
    gap: 0.38rem;
    line-height: 1;
    min-height: 2.05rem;
    padding: 0.46rem 0.68rem;
    text-decoration: none;
    white-space: nowrap;
}

.view-toggle-option:hover,
.view-toggle-option:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-primary);
    outline: none;
}

.view-toggle-option.active {
    background: var(--gs-primary);
    color: #050505;
    box-shadow: 0 8px 18px rgba(var(--gs-primary-rgb), 0.16);
}

.entity-list-view {
    display: grid;
    gap: 0.75rem;
}

.entity-list-row {
    align-items: center;
    background:
        radial-gradient(circle at 96% 0%, rgba(var(--gs-primary-rgb), 0.06), transparent 9rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.035) 0%, #101114 38%, #08090b 100%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-elevation-3d);
    display: grid;
    gap: 1rem;
    grid-template-columns: auto minmax(0, 1fr) minmax(9.5rem, auto) auto;
    min-width: 0;
    padding: 0.9rem 1rem;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}

.entity-list-row:hover,
.entity-list-row:focus-visible {
    border-color: rgba(var(--gs-primary-rgb), 0.34);
    box-shadow: var(--gs-elevation-3d-hover);
    outline: none;
    transform: translateY(-2px);
}

.entity-list-media {
    align-items: center;
    display: flex;
    justify-content: center;
}

.entity-list-media img,
.entity-list-avatar-fallback {
    align-items: center;
    background:
        radial-gradient(circle at 34% 24%, #303030 0%, #161616 52%, #050505 100%);
    border: 2px solid rgba(var(--gs-primary-rgb), 0.7);
    border-radius: 999px;
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.45), 0 0 0 5px rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 3.2rem;
    font-size: 1.3rem;
    height: 3.2rem;
    justify-content: center;
    object-fit: cover;
    width: 3.2rem;
}

.member-list-table {
    min-width: 0;
}

.member-list-table-header,
.member-list-row {
    grid-template-columns: minmax(0, 1fr) minmax(7rem, 8rem) minmax(9rem, 10rem) auto;
}

.member-list-table-header {
    align-items: center;
    display: grid;
    gap: 1rem;
    padding: 0.1rem 1rem 0.55rem;
}

.member-list-table-header > span {
    width: 2.5rem;
}

.member-list-sort-control {
    align-items: center;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.72rem;
    font-weight: 800;
    gap: 0.35rem;
    letter-spacing: 0.025em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

.member-list-sort-control:hover,
.member-list-sort-control:focus-visible,
.member-list-sort-control.is-active {
    color: var(--gs-primary);
    outline: none;
}

.member-list-sort-control i {
    font-size: 0.74rem;
}

.member-list-person {
    align-items: center;
    display: flex;
    gap: 1rem;
    min-width: 0;
}

.member-list-person .entity-list-main {
    flex: 1 1 auto;
}

.member-list-contact-channels {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    margin-right: 0;
    min-width: 0;
}

.member-list-contact-channels .entity-list-contact-icons {
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-start;
    margin: 0;
    min-height: 0;
}

.member-list-stat {
    align-items: baseline;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.82rem;
    gap: 0.28rem;
    justify-self: start;
    min-width: 0;
    white-space: nowrap;
}

.member-list-stat strong {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: 0.94rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.member-list-row.is-inactive .entity-list-media img,
.member-list-row.is-inactive .entity-list-avatar-fallback {
    background:
        radial-gradient(circle at 34% 24%, #2a2d31 0%, #14161a 52%, #050505 100%);
    border-color: rgba(148, 163, 184, 0.78);
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.45), 0 0 0 5px rgba(148, 163, 184, 0.1);
    color: #94a3b8;
}

.member-list-row.is-inactive .entity-list-media img {
    filter: grayscale(1) saturate(0) opacity(0.72);
}

.entity-list-main {
    min-width: 0;
}

.entity-list-title-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-width: 0;
}

.entity-list-title {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
    min-width: 0;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.entity-list-title:hover,
.entity-list-title:focus-visible {
    color: var(--gs-primary);
    outline: none;
}

.member-list-row .entity-role-chip {
    margin-top: 0;
}

.member-list-status {
    --app-badge-color: #34d399;
    --app-badge-rgb: 52, 211, 153;
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1;
    min-height: 1.55rem;
    padding: 0.28rem 0.62rem;
    text-transform: uppercase;
}

.member-list-status.is-inactive {
    --app-badge-color: #d1d5db;
    --app-badge-rgb: 148, 163, 184;
    background: linear-gradient(-180deg, rgba(148, 163, 184, 0.2), rgba(15, 23, 42, 0.62));
    border: 1px solid rgba(148, 163, 184, 0.72);
    color: #d1d5db;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.entity-list-meta {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.86rem;
    gap: 0.42rem 0.8rem;
    margin-top: 0.35rem;
    min-width: 0;
}

.entity-list-meta a:not(.member-card-contact-icon),
.entity-list-meta span:not(.member-card-contact-icon) {
    align-items: center;
    color: inherit;
    display: inline-flex;
    gap: 0.38rem;
    min-width: 0;
    text-decoration: none;
}

.entity-list-meta .venue-address-label {
    align-items: flex-start;
}

.entity-list-meta a:not(.member-card-contact-icon):hover,
.entity-list-meta a:not(.member-card-contact-icon):focus-visible {
    color: var(--gs-primary);
    outline: none;
}

.entity-list-meta i {
    color: var(--gs-primary);
    flex: 0 0 auto;
}

.entity-list-meta .entity-list-contact-icons {
    align-self: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-start;
    margin: 0 -0.22rem 0 0;
    min-height: 0;
}

.entity-list-meta .entity-list-contact-icons .member-card-contact-icon {
    display: inline-flex;
    gap: 0;
}

.entity-list-stats {
    color: var(--gs-text-muted);
    display: grid;
    gap: 0.22rem;
    justify-items: end;
    min-width: 0;
    text-align: left;
    white-space: nowrap;
}

.entity-list-stats span {
    font-size: 0.82rem;
}

.entity-list-stats strong {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: 0.94rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.venue-list-earnings strong {
    color: var(--gs-money);
    text-shadow: 0 0 14px rgba(var(--gs-money-rgb), 0.16);
}

.member-list-money strong {
    color: var(--gs-money);
    text-shadow: 0 0 14px rgba(var(--gs-money-rgb), 0.16);
}

.entity-list-actions {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    justify-content: flex-end;
}

.venue-map-controls {
    grid-template-columns: minmax(14rem, 1fr) minmax(11rem, 15rem) minmax(16rem, auto) auto;
}

.venue-map-shell {
    background:
        radial-gradient(circle at 82% 4%, rgba(var(--gs-primary-rgb), 0.1), transparent 16rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.035) 0%, #101114 42%, #08090b 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.32);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-elevation-3d);
    overflow: hidden;
}

.venue-map-header {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.15rem 1.25rem;
}

.venue-map-header h2 {
    color: var(--gs-text);
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.15;
    margin: 0;
}

.venue-map-kicker {
    color: var(--gs-primary);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.venue-map-stats {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: flex-end;
}

.venue-map-header-actions {
    align-items: flex-end;
    display: grid;
    gap: 0.65rem;
    justify-items: end;
}

.venue-map-return-link {
    align-items: center;
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 800;
    gap: 0.35rem;
    min-height: 2.1rem;
    padding: 0.42rem 0.68rem;
    white-space: nowrap;
}

.venue-map-stats span {
    align-items: baseline;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-control);
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.82rem;
    gap: 0.32rem;
    min-height: 2.15rem;
    padding: 0.45rem 0.62rem;
    white-space: nowrap;
}

.venue-map-stats strong {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: 1rem;
    font-weight: 800;
}

.venue-map-layout {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 23rem);
    padding: 1rem;
}

.venue-map-canvas {
    aspect-ratio: 16 / 9;
    background:
        radial-gradient(circle at 31% 39%, rgba(255, 255, 255, 0.12) 0 0.08rem, transparent 0.09rem),
        radial-gradient(circle at 49% 32%, rgba(255, 255, 255, 0.1) 0 0.08rem, transparent 0.09rem),
        radial-gradient(circle at 57% 49%, rgba(255, 255, 255, 0.09) 0 0.08rem, transparent 0.09rem),
        radial-gradient(circle at 75% 38%, rgba(255, 255, 255, 0.08) 0 0.08rem, transparent 0.09rem),
        linear-gradient(-145deg, #0b0d10 0%, #090a0c 58%, #050607 100%);
    background-size: 0.52rem 0.52rem, 0.58rem 0.58rem, 0.48rem 0.48rem, 0.62rem 0.62rem, auto;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-panel);
    min-height: 18.5rem;
    min-width: 0;
    overflow: hidden;
    position: relative;
}

.venue-map-canvas::before,
.venue-map-canvas::after {
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.venue-map-canvas::before {
    background:
        radial-gradient(ellipse at 24% 38%, rgba(var(--gs-primary-rgb), 0.12), transparent 18%),
        radial-gradient(ellipse at 52% 30%, rgba(255, 255, 255, 0.07), transparent 14%),
        radial-gradient(ellipse at 61% 52%, rgba(var(--gs-primary-rgb), 0.09), transparent 16%),
        radial-gradient(ellipse at 78% 42%, rgba(255, 255, 255, 0.06), transparent 17%);
    opacity: 0.8;
}

.venue-map-canvas::after {
    background:
        linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(-90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 4.6rem 4.6rem;
    mask-image: radial-gradient(circle at center, #000 0%, transparent 76%);
    opacity: 0.42;
}

.venue-map-grid {
    background:
        radial-gradient(circle at 50% 50%, transparent 0%, transparent 54%, rgba(var(--gs-primary-rgb), 0.16) 55%, transparent 56%),
        linear-gradient(-90deg, transparent 49.7%, rgba(var(--gs-primary-rgb), 0.16) 50%, transparent 50.3%),
        linear-gradient(transparent 49.7%, rgba(var(--gs-primary-rgb), 0.16) 50%, transparent 50.3%);
    inset: 1.2rem;
    opacity: 0.35;
    pointer-events: none;
    position: absolute;
}

.venue-map-marker {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    right: var(--x);
    min-height: 2.2rem;
    min-width: 2.2rem;
    position: absolute;
    text-decoration: none;
    top: var(--y);
    transform: translate(50%, -50%);
    z-index: 2;
}

.venue-map-marker::before {
    animation: venue-marker-pulse 1.9s ease-out infinite;
    background: rgba(var(--gs-primary-rgb), 0.16);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: 999px;
    content: "";
    height: 2.4rem;
    position: absolute;
    width: 2.4rem;
}

.venue-map-marker-dot {
    align-items: center;
    background: var(--gs-primary);
    border: 2px solid #050505;
    border-radius: 999px;
    box-shadow: 0 0 0 5px rgba(var(--gs-primary-rgb), 0.16), 0 10px 22px rgba(0, 0, 0, 0.42);
    color: #050505;
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.72rem;
    font-weight: 800;
    height: 1.62rem;
    justify-content: center;
    line-height: 1;
    min-width: 1.62rem;
    padding: 0 0.25rem;
    position: relative;
    z-index: 2;
}

.venue-map-marker:hover,
.venue-map-marker:focus-visible {
    outline: none;
    z-index: 5;
}

.venue-map-marker:hover .venue-map-marker-dot,
.venue-map-marker:focus-visible .venue-map-marker-dot {
    background: #25f0ce;
    box-shadow: 0 0 0 7px rgba(37, 240, 206, 0.16), 0 12px 24px rgba(0, 0, 0, 0.45);
}

.venue-map-tooltip {
    background: rgba(8, 9, 11, 0.96);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.45);
    border-radius: var(--gs-radius-control);
    bottom: calc(100% + 0.75rem);
    box-shadow: var(--gs-elevation-3d-hover);
    color: var(--gs-text-muted);
    display: grid;
    font-size: 0.8rem;
    gap: 0.22rem;
    right: 50%;
    line-height: 1.35;
    min-width: 13rem;
    opacity: 0;
    padding: 0.72rem;
    pointer-events: none;
    position: absolute;
    transform: translate(50%, 0.35rem);
    transition: opacity 0.16s ease, transform 0.16s ease;
    visibility: hidden;
    z-index: 6;
}

.venue-map-tooltip strong {
    color: var(--gs-text);
    font-size: 0.9rem;
}

.venue-map-marker:hover .venue-map-tooltip,
.venue-map-marker:focus-visible .venue-map-tooltip {
    opacity: 1;
    transform: translate(50%, 0);
    visibility: visible;
}

.venue-map-list {
    display: grid;
    gap: 0.6rem;
    max-height: 28rem;
    min-width: 0;
    overflow: auto;
    padding-left: 0.25rem;
}

.venue-map-list-item {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-control);
    color: var(--gs-text);
    display: grid;
    gap: 0.65rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0.72rem;
    position: relative;
    text-decoration: none;
}

.venue-map-list-item:hover,
.venue-map-list-item:focus-visible {
    border-color: rgba(var(--gs-primary-rgb), 0.36);
    color: var(--gs-text);
    outline: none;
}

.venue-map-list-copy,
.venue-map-list-meta {
    display: grid;
    min-width: 0;
}

.venue-map-list-copy strong,
.venue-map-list-meta strong {
    font-family: var(--gs-display-font);
    font-weight: 800;
    line-height: 1.15;
}

.venue-map-list-copy small,
.venue-map-list-meta small {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-map-list-meta {
    justify-items: end;
    text-align: left;
}

.venue-map-list-tooltip {
    background: rgba(8, 9, 11, 0.97);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.42);
    border-radius: var(--gs-radius-control);
    box-shadow: var(--gs-elevation-3d-hover);
    color: var(--gs-text-muted);
    display: grid;
    font-size: 0.78rem;
    gap: 0.34rem;
    line-height: 1.3;
    min-width: min(17rem, calc(100vw - 2rem));
    opacity: 0;
    padding: 0.72rem;
    pointer-events: none;
    position: absolute;
    left: 0.72rem;
    top: calc(100% + 0.45rem);
    transform: translateY(-0.25rem);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
    visibility: hidden;
    z-index: 12;
}

.venue-map-list-tooltip::before {
    border-bottom: 0.42rem solid rgba(var(--gs-primary-rgb), 0.42);
    border-right: 0.42rem solid transparent;
    border-left: 0.42rem solid transparent;
    content: "";
    position: absolute;
    left: 1.1rem;
    top: -0.43rem;
}

.venue-map-list-tooltip > strong {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 1.16;
}

.venue-map-list-tooltip > small {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    line-height: 1.25;
}

.venue-map-list-tooltip-rows {
    display: grid;
    gap: 0.48rem;
    padding-top: 0.12rem;
}

.venue-map-list-tooltip-row {
    align-items: baseline;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.venue-map-list-tooltip em {
    color: var(--gs-text-muted);
    font-style: normal;
    font-weight: 800;
}

.venue-map-list-tooltip b {
    color: var(--gs-text);
    font-size: 0.82rem;
    font-weight: 900;
    text-align: left;
}

.venue-map-list-tooltip b.venue-map-tooltip-value-accent {
    color: var(--gs-primary);
}

.venue-map-list-item:hover .venue-map-list-tooltip,
.venue-map-list-item:focus-visible .venue-map-list-tooltip {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.venue-map-empty {
    align-items: center;
    color: var(--gs-text-muted);
    display: grid;
    justify-items: center;
    min-height: 20rem;
    padding: 2rem;
    text-align: center;
}

.venue-map-empty i {
    color: var(--gs-primary);
    font-size: 2.4rem;
    margin-bottom: 0.75rem;
}

.venue-map-empty h4 {
    color: var(--gs-text);
    font-size: 1.15rem;
    font-weight: 800;
    margin: 0 0 0.35rem;
}

.venue-map-empty p {
    margin: 0;
}

@keyframes venue-marker-pulse {
    0% {
        opacity: 0.78;
        transform: scale(0.72);
    }
    100% {
        opacity: 0;
        transform: scale(1.55);
    }
}

.venue-map-header {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
}

.venue-map-header > div:first-child {
    grid-row: 1 / span 2;
    min-width: 0;
}

.venue-map-subtitle {
    color: var(--gs-text-muted);
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.35;
    margin-top: 0.35rem;
}

.venue-map-canvas[data-venue-map] {
    background: #06070a;
    isolation: isolate;
}

.venue-map-canvas[data-venue-map]::before {
    background:
        linear-gradient(-90deg, rgba(255, 255, 255, 0.06), transparent 18%, transparent 82%, rgba(0, 0, 0, 0.68)),
        linear-gradient(-180deg, rgba(0, 0, 0, 0.35), transparent 28%, rgba(0, 0, 0, 0.46));
    opacity: 1;
    z-index: 405;
}

.venue-map-canvas[data-venue-map]::after {
    background:
        linear-gradient(rgba(var(--gs-primary-rgb), 0.12) 1px, transparent 1px),
        linear-gradient(-90deg, rgba(var(--gs-primary-rgb), 0.1) 1px, transparent 1px);
    background-size: 5.6rem 5.6rem;
    mask-image: none;
    opacity: 0.18;
    z-index: 406;
}

.venue-map-loading {
    align-items: center;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 800;
    gap: 0.55rem;
    right: 50%;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translate(50%, -50%);
    transition: opacity 0.16s ease;
    z-index: 408;
}

.venue-map-loading i {
    color: var(--gs-primary);
    font-size: 1.2rem;
}

.venue-map-canvas-ready .venue-map-loading {
    opacity: 0;
}

.venue-map-city-watermark {
    bottom: 1.15rem;
    color: rgba(255, 255, 255, 0.22);
    font-family: var(--gs-display-font);
    font-size: clamp(1.4rem, 3vw, 2.4rem);
    font-weight: 900;
    line-height: 1;
    pointer-events: none;
    position: absolute;
    left: 1.15rem;
    text-transform: uppercase;
    z-index: 407;
}

.venue-map-canvas .leaflet-container,
.venue-map-canvas.leaflet-container {
    background: #06070a;
    color: var(--gs-text);
    font-family: var(--gs-body-font);
    height: 100%;
    width: 100%;
}

.venue-map-canvas .leaflet-tile-pane {
    filter: none;
}

.venue-map-canvas .venue-map-base-layer {
    filter: saturate(0.92) contrast(1.02) brightness(1.32);
}

.venue-map-canvas .venue-map-label-layer {
    filter: saturate(0.92) contrast(1.02) brightness(1.12);
}

/* Keep fallback tiles dark without changing markers, photos or controls. */
.venue-map-canvas .venue-map-standard-layer {
    filter: grayscale(1) invert(1) brightness(0.85) contrast(0.9);
}

.venue-map-canvas .leaflet-control-container {
    position: relative;
    z-index: 410;
}

.venue-map-canvas .leaflet-control-zoom {
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: 0.55rem;
    box-shadow: var(--gs-elevation-3d);
    overflow: hidden;
}

.venue-map-canvas .leaflet-control-zoom a {
    background: rgba(8, 9, 11, 0.92);
    border-bottom-color: rgba(var(--gs-primary-rgb), 0.18);
    color: var(--gs-primary);
    font-family: var(--gs-display-font);
    font-weight: 900;
}

.venue-map-canvas .leaflet-control-zoom a:hover,
.venue-map-canvas .leaflet-control-zoom a:focus {
    background: var(--gs-primary);
    color: #050505;
}

.venue-map-canvas .leaflet-control-attribution {
    background: rgba(8, 9, 11, 0.72);
    color: rgba(255, 255, 255, 0.56);
    font-size: 0.62rem;
}

.venue-map-canvas .leaflet-control-attribution a {
    color: rgba(var(--gs-primary-rgb), 0.78);
}

.venue-detail-map {
    display: grid;
    gap: 0.55rem;
    text-align: right;
}

.venue-detail-map-canvas {
    aspect-ratio: auto;
    border-color: rgba(var(--gs-primary-rgb), 0.22);
    border-radius: var(--gs-radius-control);
    min-height: 11.5rem;
}

.venue-detail-map-canvas[data-venue-map]::before {
    background:
        linear-gradient(-180deg, rgba(0, 0, 0, 0.16), transparent 34%, rgba(0, 0, 0, 0.35)),
        linear-gradient(-90deg, rgba(0, 0, 0, 0.18), transparent 30%, rgba(0, 0, 0, 0.28));
}

.venue-detail-map-canvas[data-venue-map]::after {
    opacity: 0.08;
}

.venue-detail-map-canvas .leaflet-control-zoom {
    margin-right: 0.55rem;
    margin-top: 0.55rem;
}

.venue-detail-map-canvas .leaflet-control-attribution {
    font-size: 0.55rem;
}

.venue-map-leaflet-icon {
    align-items: center;
    background: transparent;
    border: 0;
    display: flex;
    justify-content: center;
}

.venue-map-leaflet-icon span {
    align-items: center;
    background: var(--gs-primary);
    border: 2px solid #050505;
    border-radius: 999px;
    box-shadow:
        0 0 0 5px rgba(var(--gs-primary-rgb), 0.18),
        0 0 0 11px rgba(var(--gs-primary-rgb), 0.08),
        0 12px 26px rgba(0, 0, 0, 0.55);
    color: #050505;
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.78rem;
    font-weight: 900;
    height: 2.1rem;
    justify-content: center;
    line-height: 1;
    min-width: 2.1rem;
    padding: 0 0.42rem;
}

.venue-map-leaflet-icon-cluster span {
    font-size: 0.92rem;
    height: 3rem;
    min-width: 3rem;
}

.venue-map-leaflet-icon:not(.venue-map-leaflet-icon-compact):not(.venue-map-leaflet-icon-pin) span {
    height: var(--venue-map-marker-size, 2.1rem);
    min-width: var(--venue-map-marker-size, 2.1rem);
    padding: 0;
    transition: height 180ms ease, min-width 180ms ease, width 180ms ease;
    width: var(--venue-map-marker-size, 2.1rem);
}

.venue-map-leaflet-icon-pin span {
    font-size: 1.1rem;
    height: 2.55rem;
    min-width: 2.55rem;
    padding: 0;
}

.venue-map-leaflet-icon-compact span {
    border-width: 1px;
    box-shadow:
        0 0 0 4px rgba(var(--gs-primary-rgb), 0.18),
        0 0 0 8px rgba(var(--gs-primary-rgb), 0.08),
        0 8px 18px rgba(0, 0, 0, 0.48);
    font-size: 0.72rem;
    height: 1.55rem;
    min-width: 1.55rem;
    padding: 0 0.28rem;
}

.venue-map-leaflet-icon-cluster.venue-map-leaflet-icon-compact span {
    font-size: 0.82rem;
    height: 1.9rem;
    min-width: 1.9rem;
}

.venue-map-leaflet-icon-pin.venue-map-leaflet-icon-compact span {
    font-size: 0.9rem;
    height: 1.85rem;
    min-width: 1.85rem;
    padding: 0;
}

.venue-map-canvas .leaflet-popup-content-wrapper {
    background: rgba(11, 12, 14, 0.96);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.38);
    border-radius: var(--gs-radius-control);
    box-shadow: var(--gs-elevation-3d-hover);
    color: var(--gs-text);
}

.venue-map-canvas .leaflet-popup-tip {
    background: rgba(11, 12, 14, 0.96);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.38);
}

.venue-map-canvas .leaflet-popup-content {
    margin: 0;
}

.venue-map-canvas .leaflet-tooltip.venue-map-leaflet-tooltip {
    background: rgba(8, 9, 11, 0.97);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.42);
    border-radius: var(--gs-radius-control);
    box-shadow: var(--gs-elevation-3d-hover);
    color: var(--gs-text-muted);
    padding: 0;
}

.venue-map-canvas .leaflet-tooltip-top.venue-map-leaflet-tooltip::before {
    border-top-color: rgba(var(--gs-primary-rgb), 0.42);
}

.venue-map-hover-tooltip {
    display: grid;
    gap: 0.34rem;
    min-width: 13.5rem;
    padding: 0.72rem;
}

.venue-map-hover-tooltip > strong {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 1.16;
}

.venue-map-hover-tooltip > small {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    line-height: 1.25;
}

.venue-map-hover-tooltip > div {
    display: grid;
    gap: 0.24rem;
}

.venue-map-hover-tooltip span {
    align-items: baseline;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.venue-map-hover-tooltip em {
    color: var(--gs-text-muted);
    font-style: normal;
    font-weight: 800;
}

.venue-map-hover-tooltip span strong {
    color: var(--gs-text);
    font-size: 0.82rem;
    font-weight: 900;
    text-align: left;
}

.venue-map-hover-tooltip span strong.venue-map-tooltip-value-accent {
    color: var(--gs-primary);
}

.venue-map-popup {
    display: grid;
    gap: 0.24rem;
    padding: 0.72rem 0.82rem;
}

.venue-map-popup strong {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: 0.96rem;
    font-weight: 900;
    line-height: 1.15;
}

.venue-map-popup span,
.venue-map-popup small {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    line-height: 1.32;
}

.venue-map-popup a {
    color: var(--gs-primary);
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
}

.venue-map-popup a:hover,
.venue-map-popup a:focus-visible {
    color: var(--gs-text);
}

.venue-map-list {
    align-content: start;
    background: rgba(255, 255, 255, 0.018);
    border-right: 1px solid rgba(255, 255, 255, 0.07);
    padding-right: 1rem;
}

.venue-map-list-item {
    background:
        linear-gradient(-145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02)),
        rgba(9, 10, 12, 0.78);
    border-color: rgba(255, 255, 255, 0.1);
    min-height: 4.2rem;
}

.contacts-controls,
.filter-panel-body .contacts-controls {
    grid-template-columns: minmax(15rem, 1fr) minmax(15rem, 1fr) max-content;
}

.contact-role-line {
    --app-badge-color: var(--gs-primary);
    --app-badge-rgb: var(--gs-primary-rgb);
    border-color: rgba(var(--gs-primary-rgb), 0.86) !important;
    box-shadow:
        0 0 0.72rem rgba(var(--gs-primary-rgb), 0.28),
        inset 0 0 0.34rem rgba(var(--gs-primary-rgb), 0.1) !important;
}

.contact-card-meta {
    display: grid;
    gap: 0.45rem;
    margin: 0.9rem 0;
}

.contact-card-meta a,
.contact-card-meta span {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.9rem;
    gap: 0.5rem;
    min-width: 0;
}

.contact-card-meta a {
    color: var(--gs-link-cyan);
    text-shadow: var(--gs-link-cyan-glow);
    text-decoration: none;
}

.contact-card-meta i {
    color: var(--gs-primary);
    flex: 0 0 auto;
}

.contact-list-channel-primary {
    color: var(--gs-text) !important;
    font-weight: 800;
}

.contact-list-channel-primary i {
    color: var(--gs-primary) !important;
    filter: drop-shadow(0 0 6px rgba(var(--gs-primary-rgb), 0.42));
}

.contact-card.member-card {
    align-items: stretch;
    text-align: right;
}

.contact-card.member-card .member-card-content,
.contact-card.member-card .member-card-lower {
    width: 100%;
}

.contact-card.member-card .member-card-identity {
    padding-bottom: 0;
    transform: none;
}

.contact-card.member-card .member-card-lower {
    gap: 0.55rem;
}

.contact-card.member-card .contact-card-meta,
.contact-card.member-card .member-card-actions {
    margin-top: 0 !important;
    margin-bottom: 0;
}

.contact-card.member-card .entity-stats {
    margin-top: auto !important;
}

.contact-card.member-card .entity-avatar-placeholder {
    margin-bottom: 0.75rem;
}

.contact-card-contact-icon-primary {
    border-color: rgba(var(--gs-primary-rgb), 0.88);
    box-shadow:
        0 0 0 2px rgba(var(--gs-primary-rgb), 0.22),
        0 0 16px rgba(var(--gs-primary-rgb), 0.2);
    color: #fff !important;
    position: relative;
}

.contact-card-contact-icon-primary::before {
    background: var(--gs-primary);
    border: 2px solid #0d0d0d;
    border-radius: 50%;
    content: "";
    height: 0.48rem;
    position: absolute;
    left: -0.08rem;
    top: -0.08rem;
    width: 0.48rem;
}

.contact-list-stat-link {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    text-decoration: none;
}

.contact-list-stat-link:hover,
.contact-list-stat-link:focus-visible {
    color: var(--gs-primary);
    text-decoration: none;
}

.contact-list-stat-link:hover strong,
.contact-list-stat-link:focus-visible strong {
    color: var(--gs-text);
}

.contact-card-stat-link {
    border-radius: var(--gs-radius-control);
    color: inherit;
    min-width: 4.25rem;
    padding: 0.15rem 0.35rem;
    text-decoration: none;
    transition: background-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.contact-card-stat-link:hover,
.contact-card-stat-link:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    box-shadow: 0 0 0 1px rgba(var(--gs-primary-rgb), 0.28);
    color: inherit;
    outline: none;
    text-decoration: none;
    transform: translateY(-1px);
}

.contact-card-stat-link:hover .entity-stat-value,
.contact-card-stat-link:focus-visible .entity-stat-value {
    color: var(--gs-text);
}

.member-card-grid.row {
    display: grid;
    gap: 1.35rem;
    grid-auto-rows: 1fr;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.75rem), 1fr));
    margin-right: 0;
    margin-left: 0;
}

.member-card-grid > .member-card-grid-item {
    display: flex;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
    width: 100%;
}

.member-card-meta {
    align-content: center;
    display: grid;
    gap: 0.34rem;
    justify-items: start;
    margin-bottom: 0.5rem;
    margin-top: 0.58rem;
    min-height: 0;
    transform: translateY(var(--member-card-info-offset));
}

.member-card {
    --member-card-bottom-bg: #101219;
    --member-card-bottom-rgb: 16, 18, 25;
    --member-card-padding: 1rem;
    --member-card-badge-inset: 0.75rem;
    --member-card-info-offset: 1rem;
    align-items: stretch;
    display: flex;
    flex-direction: column;
    min-height: 25.5rem;
    overflow: hidden;
    padding: 0;
    position: relative;
    width: 100%;
}

.member-card-photo,
.member-card-photo-placeholder,
.member-card-shade {
    inset: 0;
    position: absolute;
}

.member-card-photo {
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: translateZ(0);
    width: 100%;
    z-index: 0;
}

.member-card-photo-placeholder {
    align-items: center;
    background:
        radial-gradient(circle at 50% 50%, rgba(var(--gs-primary-rgb), 0.16), transparent 6rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.035), rgba(0, 0, 0, 0.34));
    bottom: 8.5rem;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 3.2rem;
    justify-content: center;
    z-index: 0;
}

.member-card-shade {
    background:
        linear-gradient(
            -180deg,
            rgba(var(--member-card-bottom-rgb), 0) 40%,
            var(--member-card-bottom-bg) 72%,
            var(--member-card-bottom-bg) 100%
        );
    z-index: 1;
}

.member-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 25.5rem;
    padding: var(--member-card-padding);
    position: relative;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.92), 0 0 22px rgba(0, 0, 0, 0.68);
    width: 100%;
    z-index: 2;
}

.member-card-identity {
    margin-top: auto;
    min-width: 0;
    text-align: right;
    transform: translateY(var(--member-card-info-offset));
}

.member-card-grid .member-card-role-position {
    align-items: flex-start;
    display: flex;
    justify-content: flex-end;
    max-width: calc(100% - 2 * var(--member-card-badge-inset));
    position: absolute;
    left: var(--member-card-badge-inset);
    top: var(--member-card-badge-inset);
    z-index: 3;
}

.member-card-grid .member-card-role-position .entity-role-chip {
    background: linear-gradient(-180deg, rgba(24, 23, 18, 0.84), rgba(4, 5, 7, 0.96)) !important;
    box-shadow:
        0 0 0 1px rgba(var(--app-badge-rgb), 0.14),
        0 0.28rem 0.7rem rgba(0, 0, 0, 0.88),
        0 0 0.72rem rgba(var(--app-badge-rgb), 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
    margin-top: 0;
}

.member-card-info-stack {
    margin-top: auto;
    min-height: 5.6rem;
    position: relative;
    z-index: 2;
}

.member-card-info-stack .member-card-identity {
    margin-top: 0;
    min-height: 3.5rem;
    transform: none;
}

.member-card-phone-slot {
    min-height: 2.1rem;
}

/* Keep wrapped contact rows in the card flow, above the footer divider. */
.member-card-info-stack .member-card-contact-icons {
    flex-wrap: wrap;
    padding-bottom: 0.5rem;
}

.member-card-contact-icons-inline {
    gap: 0.42rem;
    margin-top: 0.34rem;
    min-height: 1.68rem;
}

.member-card-grid .member-card-identity {
    transform: translateY(calc(var(--member-card-info-offset) + 0.45rem));
}

.member-card-grid .member-card-info-stack .member-card-identity {
    transform: none;
}

.member-card .entity-name {
    color: var(--gs-text);
    font-size: 1.18rem;
    font-weight: 850;
    margin-top: 0;
}

.member-card .entity-subtitle {
    color: rgba(255, 255, 255, 0.78);
}

.member-card .entity-role-chip {
    background: rgba(0, 0, 0, 0.42);
    border-color: rgba(255, 255, 255, 0.62);
    color: var(--gs-text);
    display: inline-flex;
}

.member-card-lower {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.member-card-solid-bottom {
    background: var(--member-card-bottom-bg);
    border-top: 0;
    box-shadow: 0 -1.65rem 2rem -1rem var(--member-card-bottom-bg);
    margin-right: calc(-1 * var(--member-card-padding));
    margin-left: calc(-1 * var(--member-card-padding));
    margin-bottom: calc(-1 * var(--member-card-padding));
    margin-top: auto;
    padding: 0.5rem var(--member-card-padding) 0.75rem;
    position: relative;
    width: calc(100% + 2 * var(--member-card-padding));
}

.member-card-solid-bottom::before {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    content: "";
    right: var(--member-card-padding);
    position: absolute;
    left: var(--member-card-padding);
    top: 0;
}

.member-card .entity-stats {
    background: transparent;
    border-top: 0;
    margin: 0;
    padding: 0;
    width: 100%;
}

.member-card.member-card-no-contact .entity-role-chip {
    margin-bottom: 0;
}

.member-card-actions {
    background: transparent;
    margin-top: 0.65rem !important;
    padding: 0;
    width: 100%;
}

.member-card-meta a,
.member-card-meta span {
    justify-content: flex-start;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: right;
}

.member-card-phone {
    max-width: 100%;
    white-space: nowrap;
}

.member-card-contact-icons {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    justify-content: flex-start;
    min-height: 1.75rem;
}

.member-card-contact-icon {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    box-sizing: border-box;
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 1.68rem;
    height: 1.68rem;
    justify-content: center;
    line-height: 1;
    outline: 2px solid transparent;
    outline-offset: 2px;
    position: relative;
    text-decoration: none;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
    width: 1.68rem;
}

.member-card-contact-icon i {
    align-items: center;
    color: currentColor;
    display: inline-flex;
    height: 1rem;
    justify-content: center;
    right: 50%;
    line-height: 1;
    position: absolute;
    top: 50%;
    transform: translate(50%, -50%);
    width: 1rem;
}

.member-card-contact-icon .bi::before {
    display: block;
    line-height: 1;
    vertical-align: 0;
}

.member-card-contact-icon[data-contact-tooltip]::after {
    background: rgba(8, 9, 12, 0.97);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 6px;
    bottom: calc(100% + 0.48rem);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5);
    color: var(--gs-text);
    content: attr(data-contact-tooltip);
    font-size: 0.72rem;
    font-weight: 700;
    right: 50%;
    line-height: 1.25;
    max-width: 14rem;
    opacity: 0;
    overflow-wrap: anywhere;
    padding: 0.38rem 0.5rem;
    pointer-events: none;
    position: absolute;
    text-align: right;
    text-shadow: none;
    transform: translate(50%, 0.2rem);
    transition: opacity 0.14s ease, transform 0.14s ease, visibility 0.14s ease;
    visibility: hidden;
    width: max-content;
    z-index: 10;
}

.member-card-contact-icon[data-contact-tooltip]:first-child::after {
    right: 0;
    transform: translate(0, 0.2rem);
}

.member-card-contact-icon[data-contact-tooltip]:last-child::after {
    right: auto;
    left: 0;
    transform: translate(0, 0.2rem);
}

.member-card-contact-icon[data-contact-tooltip]:hover,
.member-card-contact-icon[data-contact-tooltip]:focus-visible {
    z-index: 5;
}

.member-card-contact-icon[data-contact-tooltip]:hover::after,
.member-card-contact-icon[data-contact-tooltip]:focus-visible::after {
    opacity: 1;
    transform: translate(50%, 0);
    visibility: visible;
}

.member-card-contact-icon[data-contact-tooltip]:first-child:hover::after,
.member-card-contact-icon[data-contact-tooltip]:first-child:focus-visible::after,
.member-card-contact-icon[data-contact-tooltip]:last-child:hover::after,
.member-card-contact-icon[data-contact-tooltip]:last-child:focus-visible::after {
    transform: translate(0, 0);
}

.member-card-contact-icon-phone i {
    font-size: 0.88rem;
    transform: translate(calc(-1*(-50% - 0.5px)), calc(-50% + 0.5px));
}

.member-card-contact-icon-telegram i {
    font-size: 0.9rem;
    transform: translate(calc(-1*(-50% + 1px)), calc(-50% - 1px));
}

.member-card-contact-icon-whatsapp i {
    font-size: 0.94rem;
    transform: translate(50%, calc(-50% - 0.5px));
}

.member-card-contact-icon-viber i,
.member-card-contact-icon-instagram i {
    font-size: 0.9rem;
    transform: translate(50%, -50%);
}

.member-card-contact-icon-email i {
    font-size: 0.86rem;
    transform: translate(calc(-1*(-50% - 0.5px)), calc(-50% + 0.5px));
}

.member-card-contact-icon-facebook i {
    font-size: 0.9rem;
    transform: translate(calc(-1*(-50% + 0.5px)), calc(-50% + 0.5px));
}

.member-card-contact-icon:hover,
.member-card-contact-icon:focus-visible {
    transform: translateY(-1px);
}

.member-card-contact-icon:focus-visible {
    outline-color: currentColor;
}

.member-card-contact-icon[aria-disabled="true"] {
    cursor: not-allowed;
    filter: saturate(0.55);
    opacity: 0.52;
    transform: none;
}

.member-card-contact-icon-telegram {
    background: rgba(46, 165, 225, 0.12);
    border-color: rgba(46, 165, 225, 0.38);
    color: #2ea5e1;
}

.member-card-contact-icon-phone {
    background: rgba(var(--gs-primary-rgb), 0.12);
    border-color: rgba(var(--gs-primary-rgb), 0.48);
    color: var(--gs-primary);
}

.member-card-contact-icon-phone:hover,
.member-card-contact-icon-phone:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.22);
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    color: #ffe16a;
}

.member-card-contact-icon-telegram:hover,
.member-card-contact-icon-telegram:focus-visible {
    background: rgba(46, 165, 225, 0.2);
    border-color: rgba(46, 165, 225, 0.68);
    color: #5fc5ff;
}

.member-card-contact-icon-whatsapp {
    background: rgba(37, 211, 102, 0.14);
    border-color: rgba(37, 211, 102, 0.55);
    color: #25d366;
}

.member-card-contact-icon-whatsapp:hover,
.member-card-contact-icon-whatsapp:focus-visible {
    background: rgba(37, 211, 102, 0.24);
    border-color: rgba(37, 211, 102, 0.68);
    color: #5ff196;
}

.member-card-contact-icon-viber {
    background: rgba(115, 96, 242, 0.14);
    border-color: rgba(115, 96, 242, 0.5);
    color: #8f7eff;
}

.member-card-contact-icon-viber:hover,
.member-card-contact-icon-viber:focus-visible {
    background: rgba(115, 96, 242, 0.24);
    border-color: rgba(115, 96, 242, 0.72);
    color: #b1a6ff;
}

.member-card-contact-icon-instagram {
    background: rgba(225, 48, 108, 0.14);
    border-color: rgba(225, 48, 108, 0.5);
    color: #e1306c;
}

.member-card-contact-icon-instagram:hover,
.member-card-contact-icon-instagram:focus-visible {
    background: rgba(225, 48, 108, 0.24);
    border-color: rgba(225, 48, 108, 0.72);
    color: #ff6b9d;
}

.member-card-contact-icon-facebook {
    background: rgba(24, 119, 242, 0.14);
    border-color: rgba(24, 119, 242, 0.5);
    color: #1877f2;
}

.member-card-contact-icon-facebook:hover,
.member-card-contact-icon-facebook:focus-visible {
    background: rgba(24, 119, 242, 0.24);
    border-color: rgba(24, 119, 242, 0.7);
    color: #65a3ff;
}

.member-card-contact-icon-email {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.36);
    color: var(--gs-text);
}

.member-card-contact-icon-email:hover,
.member-card-contact-icon-email:focus-visible {
    background: rgba(255, 255, 255, 0.13);
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

.gig-contact-phone {
    align-items: center;
    color: var(--gs-link-cyan);
    display: inline-flex;
    font-size: 0.95rem;
    gap: 0.38rem;
    margin-top: 0.35rem;
    text-decoration: none;
    text-shadow: var(--gs-link-cyan-glow);
    white-space: nowrap;
}

.gig-contact-phone i {
    color: var(--gs-accent);
    font-size: 0.92rem;
}

.gig-contact-phone:hover,
.gig-contact-phone:focus-visible {
    color: var(--gs-link-cyan-hover);
    text-shadow:
        0 0 0.5rem rgba(var(--gs-link-cyan-rgb), 0.42),
        0 0 1.1rem rgba(var(--gs-link-cyan-rgb), 0.2);
    text-decoration: none;
}

.gig-contact-channel-icons {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    margin-top: 0.45rem;
}

.gig-contact-list {
    display: grid;
    gap: 0.28rem;
    margin-top: 0.45rem;
}

.gig-contact-list-item {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.gig-contact-list-item span {
    border: 1px solid rgba(var(--gs-primary-rgb), 0.48);
    border-radius: 999px;
    color: var(--gs-primary);
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1;
    padding: 0.18rem 0.38rem;
    text-transform: uppercase;
}

.gig-contact-channel-icon {
    align-items: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 1.68rem;
    height: 1.68rem;
    justify-content: center;
    line-height: 1;
    text-decoration: none;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
    width: 1.68rem;
}

.gig-contact-channel-icon i {
    color: currentColor;
    font-size: 0.94rem;
}

.gig-contact-channel-icon:hover,
.gig-contact-channel-icon:focus-visible {
    transform: translateY(-1px);
}

.gig-contact-channel-icon-telegram {
    background: rgba(46, 165, 225, 0.12);
    border-color: rgba(46, 165, 225, 0.38);
    color: #2ea5e1;
}

.gig-contact-channel-icon-telegram:hover,
.gig-contact-channel-icon-telegram:focus-visible {
    background: rgba(46, 165, 225, 0.2);
    border-color: rgba(46, 165, 225, 0.68);
    color: #5fc5ff;
}

.gig-contact-channel-icon-whatsapp {
    background: rgba(37, 211, 102, 0.14);
    border-color: rgba(37, 211, 102, 0.55);
    color: #25d366;
}

.gig-contact-channel-icon-whatsapp:hover,
.gig-contact-channel-icon-whatsapp:focus-visible {
    background: rgba(37, 211, 102, 0.24);
    border-color: rgba(37, 211, 102, 0.68);
    color: #5ff196;
}

.gig-contact-channel-icon-email {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.36);
    color: var(--gs-text);
}

.gig-contact-channel-icon-email:hover,
.gig-contact-channel-icon-email:focus-visible {
    background: rgba(255, 255, 255, 0.13);
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

.contact-status-active {
    --app-badge-color: #34d399;
    --app-badge-rgb: 52, 211, 153;
}

.contact-status-inactive {
    --app-badge-color: #94a3b8;
    --app-badge-rgb: 148, 163, 184;
}

.contact-profile-card .entity-avatar-placeholder {
    align-items: center;
    background:
        radial-gradient(circle at 34% 24%, #303030 0%, #161616 52%, #050505 100%);
    border: 3px solid rgba(var(--gs-primary-rgb), 0.7);
    border-radius: 50%;
    box-shadow: 0 13px 22px rgba(0, 0, 0, 0.55), 0 0 0 7px rgba(var(--gs-primary-rgb), 0.12);
    color: var(--gs-text-muted);
    display: flex;
    font-size: 2.1rem;
    height: 5.5rem;
    justify-content: center;
    width: 5.5rem;
}

.venue-profile-card .venue-detail-logo {
    align-items: center;
    aspect-ratio: 1;
    background:
        radial-gradient(circle at 34% 24%, rgba(var(--gs-primary-rgb), 0.13), rgba(22, 22, 22, 0.96) 54%, #050505 100%);
    border: 2px solid rgba(var(--gs-primary-rgb), 0.74);
    border-radius: 18px;
    box-shadow: 0 16px 26px rgba(0, 0, 0, 0.48), 0 0 0 6px rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-text-muted);
    display: flex;
    font-size: 2.2rem;
    height: clamp(7rem, 18vw, 9rem);
    justify-content: center;
    object-fit: contain;
    padding: 0.35rem;
    width: clamp(7rem, 18vw, 9rem);
}

.venue-profile-card .venue-detail-logo-placeholder {
    display: flex;
    margin-right: auto;
    margin-left: auto;
}

.venue-profile-card img.venue-detail-logo {
    display: block;
}

.venue-profile-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: center;
}

.venue-profile-actions .btn {
    min-width: 10.5rem;
}


.venue-rebrand-summary {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.65rem;
    justify-content: center;
    margin: -0.15rem 0 0.9rem;
    color: var(--gs-text-muted);
    font-size: 0.78rem;
}

.venue-rebrand-summary a,
.venue-list-rebrand-meta a,
.venue-rebrand-timeline-heading a {
    color: var(--gs-info);
    font-weight: 750;
    text-decoration: none;
}

.venue-rebrand-summary a:hover,
.venue-list-rebrand-meta a:hover,
.venue-rebrand-timeline-heading a:hover {
    text-decoration: underline;
}

.venue-rebrand-status {
    align-items: center;
    display: inline-flex;
    min-height: 1.35rem;
    padding: 0.1rem 0.45rem;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 999px;
    color: #cbd5e1;
    background: rgba(15, 23, 42, 0.72);
    box-shadow: 0 0.3rem 0.9rem rgba(0, 0, 0, 0.35);
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.035em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
}

.venue-rebrand-status-current {
    border-color: rgba(52, 211, 153, 0.48);
    color: #6ee7b7;
    background: rgba(6, 78, 59, 0.28);
}

.venue-stats-card-header {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    justify-content: space-between;
}

.venue-stats-scope {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0.15rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.55rem;
    background: rgba(0, 0, 0, 0.22);
}

.venue-stats-scope a {
    padding: 0.35rem 0.55rem;
    border-radius: 0.4rem;
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.venue-stats-scope a.active {
    color: #050505;
    background: var(--gs-primary);
}

.venue-rebrand-timeline {
    display: grid;
    padding: 0.6rem 1rem !important;
}

.venue-rebrand-card-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 0.65rem;
}

.venue-rebrand-card-header .btn {
    flex: 0 0 auto;
}

.venue-rebrand-timeline-item {
    align-items: center;
    display: grid;
    grid-template-columns: 0.9rem minmax(0, 1fr) auto;
    gap: 0.7rem;
    min-height: 4.4rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.venue-rebrand-timeline-item:last-child {
    border-bottom: 0;
}

.venue-rebrand-timeline-marker {
    width: 0.7rem;
    height: 0.7rem;
    border: 2px solid rgba(var(--gs-primary-rgb), 0.75);
    border-radius: 50%;
    background: var(--gs-bg-elevated);
    box-shadow: 0 0 0 0.22rem rgba(var(--gs-primary-rgb), 0.08);
}

.venue-rebrand-timeline-item.active .venue-rebrand-timeline-marker {
    background: var(--gs-primary);
}

.venue-rebrand-timeline-main {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
}

.venue-rebrand-timeline-heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.venue-rebrand-timeline-main > small,
.venue-rebrand-timeline-main > span {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
}

.venue-history-brand-name {
    display: block;
    margin-top: 0.12rem;
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 650;
}

.venue-history-event-link {
    display: block;
    color: var(--gs-text);
    font-weight: 750;
    text-decoration: none;
}

.venue-history-event-time,
.venue-history-income-breakdown {
    display: block;
    margin-top: 0.12rem;
    color: var(--gs-text-muted);
    font-size: 0.67rem;
    font-weight: 600;
}

.venue-list-rebrand-meta {
    display: block;
    margin-top: 0.16rem;
    color: var(--gs-text-muted);
    font-size: 0.69rem;
    line-height: 1.25;
}

.venue-card-title-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.venue-rebrand-page {
    max-width: 76rem;
    margin: 0 auto;
}

.venue-rebrand-form {
    display: grid;
    gap: 1.25rem;
}

.venue-rebrand-preview {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0.3rem 0.8rem;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    background: rgba(var(--gs-primary-rgb), 0.025);
    list-style: none;
}

.venue-rebrand-preview li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem 0.6rem;
    padding: 0.65rem 1.2rem 0.65rem 0;
    position: relative;
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}

.venue-rebrand-preview li::before {
    content: "↓";
    position: absolute;
    right: 0;
    color: var(--gs-text-muted);
}

.venue-rebrand-preview li:first-child::before { content: "•"; }
.venue-rebrand-preview li + li { border-top: 1px solid var(--gs-border); }
.venue-rebrand-preview li > span { flex: 1 1 100%; }
.venue-rebrand-preview li.is-added > span { color: var(--gs-primary); font-weight: 600; }
.venue-rebrand-preview small { color: var(--gs-text-muted); }
.venue-rebrand-page .form-label,
.venue-rebrand-page .card-header,
.venue-rebrand-page .venue-rebrand-timeline-heading { overflow-wrap: anywhere; }
.venue-rebrand-page .venue-rebrand-timeline { list-style: none; }
.venue-history-actions { padding: 0.65rem 1rem 0; }
.venue-rebrand-page .venue-rebrand-timeline-item { padding-block: 0.65rem; }
.venue-history-unlink { min-width: 44px; min-height: 44px; }
.venue-rebrand-page .venue-history-unlink { padding: 0; }
.venue-rebrand-form-card { scroll-margin-top: calc(var(--header-height, 80px) + 1rem); }
.venue-rebrand-form > *, .venue-rebrand-preview li > * { min-width: 0; }
.venue-rebrand-guidance { color: var(--gs-text-muted); font-size: 0.85rem; }
.venue-rebrand-guidance summary { min-height: 44px; align-content: center; cursor: pointer; }
.venue-rebrand-form [hidden] { display: none !important; }

.venue-rebrand-rules {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.venue-rebrand-rules li {
    align-items: start;
    display: grid;
    grid-template-columns: 1.4rem minmax(0, 1fr);
    gap: 0.65rem;
    color: var(--gs-text-muted);
}

.venue-rebrand-rules i {
    color: var(--gs-primary);
    font-size: 1.05rem;
}

.venue-rebrand-rules strong {
    display: block;
    margin-bottom: 0.1rem;
    color: var(--gs-text);
}

@media (max-width: 767.98px) {
    .venue-profile-body > .venue-rebrand-summary {
        grid-column: 1 / -1;
        justify-content: flex-start;
        margin: 0.25rem 0 0 !important;
    }

    .venue-profile-actions .btn {
        min-width: 0;
    }

    .venue-stats-card-has-scope .card-header {
        display: block;
        padding: var(--gs-card-header-padding-block) 0.65rem !important;
    }

    .venue-stats-card-header {
        align-items: stretch;
        display: grid;
    }

    .venue-stats-card-header h6 {
        display: none;
    }

    .venue-stats-scope {
        width: 100%;
    }

    .venue-stats-scope a {
        min-height: 2.35rem;
        align-content: center;
    }

    .venue-rebrand-timeline-item {
        align-items: start;
        grid-template-columns: 0.9rem minmax(0, 1fr) auto;
        padding: 0.7rem 0;
    }

    .venue-rebrand-timeline-item form .btn {
        width: 2.25rem;
        height: 2.25rem;
        padding: 0;
    }

    .venue-rebrand-page {
        padding-bottom: calc(var(--mobile-nav-height) + 1.5rem + env(safe-area-inset-bottom));
    }

    .venue-rebrand-page .page-header {
        display: none;
    }

    .venue-rebrand-layout {
        row-gap: 0.75rem;
    }

    .venue-rebrand-page .venue-rebrand-form { gap: 1rem; }
    .venue-rebrand-page .venue-history-actions .btn { width: 100%; }
    .venue-rebrand-form-card { scroll-margin-top: 5rem; }

    .venue-rebrand-form-card .card-header,
    .venue-rebrand-form-card .card-body,
    .venue-rebrand-help-card .card-header,
    .venue-rebrand-help-card .card-body {
        padding: 0.9rem;
    }

    .venue-rebrand-form-card .card-header,
    .venue-rebrand-help-card .card-header {
        padding-block: var(--gs-card-header-padding-block);
    }


    .venue-rebrand-form .btn-primary {
        flex: 1 1 100%;
    }
}

.venue-linked-contacts {
    border-top: 1px solid rgba(var(--gs-primary-rgb), 0.18);
    margin-top: 0.9rem;
    padding-top: 0.8rem;
}

.venue-linked-contacts-heading,
.venue-linked-contact {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.venue-linked-contacts-heading {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.venue-linked-contacts-heading small {
    color: var(--gs-text);
    font-size: 0.78rem;
}

.venue-linked-contact {
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    padding: 0.58rem 0;
}

.venue-linked-contact:last-child {
    border-bottom: 0;
}

.venue-linked-contact-main {
    align-items: center;
    display: grid;
    flex: 1 1 auto;
    gap: 0.65rem;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    min-width: 0;
    text-decoration: none;
}

.venue-linked-contact-avatar {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.08);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.42);
    border-radius: 50%;
    display: inline-flex;
    height: 2.5rem;
    justify-content: center;
    overflow: hidden;
    width: 2.5rem;
}

.venue-linked-contact-avatar img,
.venue-linked-contact-avatar-fallback {
    height: 100%;
    width: 100%;
}

.venue-linked-contact-avatar img {
    object-fit: cover;
}

.venue-linked-contact-avatar-fallback {
    align-items: center;
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 1rem;
    justify-content: center;
}

.venue-linked-contact-copy {
    display: grid;
    gap: 0.26rem;
    min-width: 0;
}

.venue-linked-contact-title {
    align-items: center;
    display: flex;
    gap: 0.42rem;
    min-width: 0;
}

.venue-linked-contact-name {
    color: var(--gs-text);
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    text-decoration: none;
    white-space: nowrap;
}

.venue-linked-contact-name:hover,
.venue-linked-contact-name:focus-visible {
    color: var(--gs-primary);
}

.venue-linked-contact-role {
    border-radius: 4px;
    flex: 0 0 auto;
    font-size: 0.5rem;
    min-height: 1.15rem;
    padding: 0.2rem 0.36rem 0.14rem;
}

.venue-linked-contact-meta {
    align-items: center;
    display: flex;
    gap: 0.42rem;
    min-width: 0;
}

.venue-linked-contact-company {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    flex: 1 1 7rem;
    font-size: 0.76rem;
    gap: 0.35rem;
    min-width: 0;
}

.venue-linked-contact-company i {
    color: var(--gs-primary);
    flex: 0 0 auto;
}

.venue-linked-contact-company span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-linked-contact-meta > .member-card-contact-icons {
    flex: 0 0 auto;
    gap: 0.35rem;
    justify-content: flex-end;
    margin-top: 0;
}

@media (max-width: 575.98px) {
    .venue-linked-contact {
        align-items: start;
    }

    .venue-linked-contact-meta {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .venue-linked-contact-meta > .member-card-contact-icons {
        justify-content: flex-start;
    }
}

.contact-detail-row,
.contact-stat-link {
    align-items: center;
    border-bottom: 1px solid rgba(var(--gs-primary-rgb), 0.16);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.7rem 0;
}

.contact-detail-row span,
.contact-stat-link span {
    color: var(--gs-text-muted);
}

.contact-detail-row strong,
.contact-stat-link strong {
    color: var(--gs-text);
    text-align: left;
}

.contact-stat-link {
    color: inherit;
    text-decoration: none;
}

.contact-stat-link:hover strong {
    color: var(--gs-text);
}

/* Page context lives below the single title in the app topbar. */
.page-header-copy {
    flex: 1 1 16rem;
    min-width: 0;
}

.page-header-subtitle {
    font-size: 0.9rem;
    line-height: 1.45;
    margin: 0;
    overflow-wrap: anywhere;
}

.page-header-copy > .hierarchy-nav + .page-header-subtitle,
.band-settings-header .hierarchy-nav + .page-header-subtitle {
    margin-top: 0.65rem;
}

@media (min-width: 768px) {
    .app-body .app-main-content .page-header {
        margin-bottom: 1rem;
    }
}

/* Page Headers */
.page-header {
    margin-bottom: 2rem;
}

.page-header h1 {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.05;
    margin-bottom: 0.5rem;
}

.page-header .breadcrumb {
    background: none;
    padding: 0;
    margin: 0;
}

.app-main-content .breadcrumb-item > a {
    color: var(--gs-link-cyan);
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: 0.0625rem;
    text-shadow: var(--gs-link-cyan-glow);
    text-underline-offset: 0.18em;
}

.app-main-content .breadcrumb-item > a:hover,
.app-main-content .breadcrumb-item > a:focus-visible {
    color: var(--gs-link-cyan-hover);
    text-decoration: underline;
}

.app-main-content .breadcrumb-item.active {
    color: var(--gs-text-muted);
}

.hierarchy-nav {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    min-width: 0;
}

.hierarchy-back-button {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.045);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.55);
    border-radius: 0.55rem;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.82rem;
    font-weight: 750;
    gap: 0.38rem;
    justify-content: center;
    line-height: 1;
    min-height: 2.15rem;
    padding: 0.52rem 0.72rem;
    text-decoration: none;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease;
}

.hierarchy-back-button:hover,
.hierarchy-back-button:focus-visible {
    background: var(--gs-primary);
    border-color: var(--gs-primary);
    box-shadow: 0 0 1rem rgba(var(--gs-primary-rgb), 0.28);
    color: #090a0c;
    transform: translateX(2px);
}

.hierarchy-back-button:focus-visible {
    outline: 2px solid rgba(var(--gs-primary-rgb), 0.38);
    outline-offset: 2px;
}

.hierarchy-back-button .bi {
    font-size: 0.96rem;
    line-height: 1;
}

@media (max-width: 575.98px) {
    .hierarchy-nav {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.5rem;
    }

    .hierarchy-back-button {
        min-height: 2rem;
    }
}

.page-header > .hierarchy-nav + * {
    margin-top: 0.85rem;
}

/* Charts */
.chart-container {
    position: relative;
    height: 300px;
    background-color: var(--gs-bg-card);
    border-radius: 1.6rem;
    overflow: hidden;
    padding: 1.15rem 1.15rem 1.35rem;
}

.chart-container {
    background:
        radial-gradient(circle at 86% 8%, rgba(var(--gs-primary-rgb), 0.16), transparent 13rem),
        radial-gradient(circle at 14% 90%, rgba(var(--gs-concert-line-rgb), 0.12), transparent 14rem),
        radial-gradient(circle at 100% 100%, rgba(var(--gs-primary-rgb), 0.05), transparent 14rem),
        linear-gradient(-145deg, #12151a 0%, #090b0e 58%, #07080a 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.3);
    box-shadow:
        var(--gs-surface-edge-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 14px 30px rgba(0, 0, 0, 0.34),
        -8px 14px 28px rgba(var(--gs-primary-rgb), 0.055);
}

.chart-container::before {
    background:
        linear-gradient(-90deg, transparent, rgba(var(--gs-concert-line-rgb), 0.06), transparent),
        linear-gradient(-180deg, rgba(255, 255, 255, 0.025), transparent 34%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.chart-container canvas {
    position: relative;
    z-index: 1;
}
/* Next Gig */
.next-event-panel {
    container-name: next-event-card;
    container-type: inline-size;
    display: flex;
    flex-direction: column;
    overflow: visible;
    position: relative;
    z-index: 30;
}

.next-event-panel:has(.next-gig-lineup-more.is-open) {
    z-index: 260;
}

.row.lineup-popover-open,
.next-event-panel.lineup-popover-open,
.dashboard-month-gig.lineup-popover-open {
    overflow: visible;
    position: relative;
    z-index: 720;
}

.next-event-panel.lineup-popover-open .next-gig-lineup-popover {
    z-index: 980;
}

.next-event-panel > .card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 0;
}

.next-event-panel .next-gig-card {
    flex: 1 1 auto;
    padding: 0;
    border: 0;
    border-radius: 0 0 var(--gs-radius-panel) var(--gs-radius-panel);
    background: transparent;
    box-shadow: none;
    gap: 0;
}

.next-gig-card {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.82rem;
    padding: 0.92rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.16), transparent 7rem),
        linear-gradient(-145deg, rgba(var(--gs-primary-rgb), 0.08) 0%, #111111 46%, #070707 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 14px 30px rgba(0, 0, 0, 0.42);
}

.next-gig-ticket-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.72rem;
    border: 0;
    border-radius: var(--gs-radius-control);
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.16), transparent 4.5rem),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.18) 0%, rgba(116, 88, 0, 0.09) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    min-width: 0;
}

.next-event-panel .next-gig-ticket-head {
    align-items: center;
    gap: 0.8rem;
    justify-content: space-between;
    border-radius: var(--gs-radius-control) var(--gs-radius-control) 0 0;
    border-bottom: 1px solid rgba(var(--gs-primary-rgb), 0.22);
    padding: 0.62rem 0.78rem;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.12), transparent 5rem),
        linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.16) 0%, rgba(116, 88, 0, 0.06) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.next-event-panel .next-gig-logo {
    flex-basis: 46px;
    height: 46px;
    width: 46px;
    box-shadow: 0 0 0 4px rgba(var(--gs-primary-rgb), 0.1);
}

.next-gig-logo {
    align-items: center;
    background:
        radial-gradient(circle at 42% 20%, rgba(var(--gs-primary-rgb), 0.16), transparent 2.8rem),
        linear-gradient(-145deg, #191919 0%, #070707 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.7);
    border-radius: var(--gs-radius-control);
    box-shadow: 0 0 0 5px rgba(var(--gs-primary-rgb), 0.1);
    display: inline-flex;
    flex: 0 0 58px;
    height: 58px;
    justify-content: center;
    overflow: hidden;
    width: 58px;
}

.next-gig-logo img,
.next-gig-logo-fallback {
    height: 100%;
    width: 100%;
}

.next-gig-logo img {
    object-fit: cover;
}

.next-gig-logo-fallback {
    align-items: center;
    color: var(--gs-accent);
    display: inline-flex;
    font-size: 1.45rem;
    justify-content: center;
}

.next-gig-time-icon,
.next-gig-time-separator {
    display: none;
}

.next-gig-time-copy {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.next-gig-labels,
.dashboard-month-gig-labels {
    gap: 0.28rem;
    min-width: 0;
}

.dashboard-month-gig-labels {
    flex: 0 1 auto;
    flex-wrap: wrap;
    justify-content: flex-start;
    overflow: visible;
}

.next-gig-labels {
    margin-top: 0.38rem;
}

.next-gig-labels .event-label-chip,
.dashboard-month-gig-labels .event-label-chip {
    font-size: 0.58rem;
    min-height: 1.28rem;
    padding: 0.3rem 0.42rem 0.24rem;
}

.dashboard-month-gig-labels .event-label-chip {
    border-radius: 0.34rem;
    font-size: 0.54rem;
    min-height: 1.06rem;
    padding: 0.14rem 0.38rem 0.1rem;
}

.next-gig-date {
    margin-right: auto;
    width: 54px;
    min-width: 54px;
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    background-image: none;
    box-shadow: none;
}

.next-gig-ticket-head .next-gig-date {
    border: 0;
    background: transparent;
    background-image: none;
    box-shadow: none;
}

.next-event-panel .next-gig-date {
    position: relative;
    width: 54px;
    min-width: 54px;
    min-height: 42px;
    aspect-ratio: auto;
    padding: 0.34rem 0.45rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.78);
    border-radius: 0.35rem;
    background: rgba(0, 0, 0, 0.22);
    background-image: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 0 16px rgba(var(--gs-primary-rgb), 0.16);
}

.next-event-panel .next-gig-date::before,
.next-event-panel .next-gig-date::after {
    content: none;
    display: none;
}

.next-gig-day {
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 0.95;
    color: #ffffff;
    font-variant-numeric: tabular-nums;
}

.next-gig-month {
    margin-top: 0.12rem;
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
    color: var(--gs-accent);
}

.next-event-panel .next-gig-day {
    font-size: 1.44rem;
    text-shadow: 0 0 14px rgba(var(--gs-primary-rgb), 0.18);
}

.next-event-panel .next-gig-month {
    font-size: 0.62rem;
}

.next-gig-heading {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.next-gig-kicker {
    align-items: center;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.24rem;
    margin-bottom: 0.18rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--gs-text-muted);
    text-transform: uppercase;
}

.next-gig-kicker-label {
    color: var(--gs-primary);
}

.next-gig-kicker strong {
    color: var(--gs-primary);
}

.next-gig-kicker-type {
    color: #ffffff;
}

.next-gig-heading h3 {
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.15;
    color: #ffffff;
    overflow-wrap: anywhere;
}

.next-gig-full-date {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.4rem;
    color: var(--gs-text-muted);
    font-size: 0.9rem;
}

.next-gig-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.next-gig-meta-list {
    grid-template-columns: 1fr;
    gap: 0.44rem;
    position: relative;
    z-index: 20;
}

.next-event-panel .next-gig-meta-list {
    padding: 0.82rem 0.92rem 0;
}

.next-gig-meta-item {
    min-width: 0;
    padding: 0.72rem 0.75rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.18);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.035);
}

.next-gig-meta-list .next-gig-meta-item {
    align-items: center;
    display: grid;
    gap: 0 0.55rem;
    grid-template-columns: 1rem minmax(0, auto) 1fr;
    padding: 0.42rem 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.next-gig-meta-item i {
    color: var(--gs-accent);
}

.next-gig-meta-item span,
.next-gig-meta-item small {
    display: block;
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    line-height: 1.25;
}

.next-gig-meta-item strong {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.92rem;
    line-height: 1.22;
    overflow-wrap: anywhere;
}

.next-gig-meta-list .next-gig-meta-item strong {
    margin-top: 0;
}

.next-gig-contact-link {
    color: var(--gs-text);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.22;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.next-gig-contact-link:hover,
.next-gig-contact-link:focus-visible {
    color: var(--gs-accent);
    text-decoration: underline;
    text-underline-offset: 0.18rem;
}

.next-gig-contact-card {
    align-items: center;
    color: var(--gs-text);
    display: inline-grid !important;
    gap: 0.48rem;
    grid-template-columns: 1.85rem minmax(0, 1fr);
    max-width: 100%;
    min-width: 0;
    position: relative;
    width: max-content;
}

.next-gig-contact-avatar {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.75);
    border-radius: 50%;
    color: var(--gs-primary);
    display: inline-flex !important;
    font-size: 0.76rem;
    font-weight: 900;
    height: 1.85rem;
    justify-content: center;
    line-height: 1;
    overflow: hidden;
    text-transform: uppercase;
    width: 1.85rem;
}

.next-gig-contact-avatar-image {
    display: block !important;
    object-fit: cover;
}

.next-gig-contact-name {
    color: var(--gs-text);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.22;
    margin-top: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.next-gig-contact-card .next-gig-contact-link {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.next-gig-contact-tooltip {
    background: rgba(7, 8, 10, 0.96);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.55);
    border-radius: 0.72rem;
    bottom: calc(100% + 0.54rem);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.5);
    color: var(--gs-text);
    display: grid !important;
    gap: 0.42rem;
    grid-template-columns: minmax(0, 1fr);
    right: 0;
    max-width: min(20rem, calc(100vw - 2rem));
    min-width: 14rem;
    opacity: 0;
    padding: 0.64rem 0.68rem;
    pointer-events: none;
    position: absolute;
    transform: translateY(0.18rem);
    transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
    visibility: hidden;
    z-index: 160;
}

.next-gig-contact-tooltip > * {
    grid-column: 1 / -1 !important;
    min-width: 0;
}

.next-gig-contact-tooltip::after {
    background: rgba(7, 8, 10, 0.96);
    border-bottom: 1px solid rgba(var(--gs-primary-rgb), 0.55);
    border-left: 1px solid rgba(var(--gs-primary-rgb), 0.55);
    bottom: -0.36rem;
    content: "";
    height: 0.68rem;
    right: 0.62rem;
    position: absolute;
    transform: rotate(-45deg);
    width: 0.68rem;
}

.next-gig-contact-card:hover .next-gig-contact-tooltip,
.next-gig-contact-card:focus-within .next-gig-contact-tooltip {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
}

.next-gig-contact-tooltip .next-gig-contact-tooltip-title {
    align-items: center;
    color: var(--gs-primary);
    display: flex !important;
    font-size: 0.94rem;
    font-weight: 950;
    gap: 0.42rem;
    line-height: 1.15;
    min-width: 0;
}

.next-gig-contact-tooltip .next-gig-contact-tooltip-avatar {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.14);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.78);
    border-radius: 50%;
    color: var(--gs-primary);
    display: inline-flex !important;
    flex: 0 0 1.5rem;
    font-size: 0.72rem;
    font-weight: 950;
    height: 1.5rem;
    justify-content: center;
    line-height: 1;
    overflow: hidden;
    text-transform: uppercase;
    width: 1.5rem;
}

.next-gig-contact-tooltip .next-gig-contact-tooltip-name {
    color: var(--gs-primary);
    min-width: 0;
    overflow-wrap: anywhere;
}

.next-gig-contact-tooltip-role {
    align-items: center;
    align-self: start;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.5);
    border-radius: 999px;
    color: var(--gs-primary);
    display: inline-flex !important;
    font-size: 0.62rem;
    font-weight: 900;
    justify-self: start;
    line-height: 1;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    padding: 0.18rem 0.34rem;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    width: max-content;
}

.next-gig-contact-tooltip-row {
    display: grid !important;
    gap: 0.1rem;
    min-width: 0;
}

.next-gig-contact-tooltip-row small {
    color: var(--gs-text-muted);
    font-size: 0.62rem;
    font-weight: 800;
    grid-column: auto !important;
    line-height: 1.2;
    text-transform: uppercase;
}

.next-gig-contact-tooltip-row strong,
.next-gig-contact-tooltip-row a {
    color: var(--gs-text);
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.28;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.next-gig-contact-tooltip-row a:hover,
.next-gig-contact-tooltip-row a:focus-visible {
    color: var(--gs-accent);
    text-decoration: underline;
    text-underline-offset: 0.16rem;
}

.next-gig-meta-list .next-gig-meta-item small {
    grid-column: 3;
}

.next-gig-footer {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    margin-top: auto;
    padding-top: 0.18rem;
    position: relative;
    z-index: 0;
}

.next-event-panel .next-gig-footer {
    padding: 0.72rem 0.92rem 0.92rem;
}

.next-gig-lineup-meta {
    align-items: center;
    min-width: 0;
    position: relative;
    z-index: 20;
}

.next-gig-meta-list .next-gig-lineup-meta {
    grid-template-columns: 1rem minmax(4.6rem, auto) minmax(0, 1fr);
}

.next-gig-lineup-meta .next-gig-lineup {
    align-items: center;
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 0.24rem;
    justify-content: flex-start;
    min-width: 0;
}

.next-gig-lineup .dashboard-lineup-avatar {
    display: inline-flex;
    flex: 0 0 1.9rem;
    height: 1.9rem;
    width: 1.9rem;
}

.next-gig-lineup .dashboard-lineup-avatar img,
.next-gig-lineup .dashboard-lineup-avatar-fallback {
    display: inline-flex;
}

.next-gig-lineup .lineup-member-tooltip {
    bottom: calc(100% + 0.58rem);
    gap: 0.5rem;
    right: auto;
    min-width: 11.2rem;
    max-width: 12.5rem;
    padding: 0.5rem 0.58rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 120;
}

.next-gig-lineup .lineup-member-tooltip::after {
    right: 50%;
    left: auto;
    transform: translateX(50%) rotate(-45deg);
}

.next-gig-lineup .lineup-member-tooltip-avatar {
    flex-basis: 2rem;
    height: 2rem;
    width: 2rem;
}

.next-gig-lineup .lineup-member-tooltip-body {
    gap: 0.2rem;
}

.next-gig-lineup .lineup-member-tooltip-body strong {
    font-size: 0.78rem;
    line-height: 1.22;
}

.next-gig-lineup .lineup-member-tooltip-body span {
    font-size: 0.66rem;
    line-height: 1.34;
}

.next-gig-lineup .lineup-member-tooltip-body small {
    display: inline-flex;
    font-size: 0.56rem;
    max-width: 100%;
    margin-top: 0.08rem;
    padding: 0.15rem 0.28rem;
    width: max-content;
}

.next-gig-lineup-more {
    cursor: pointer;
    overflow: visible;
    position: relative;
}

.next-gig-lineup-overflow {
    display: contents;
}

.next-gig-lineup-popover {
    background: color-mix(in srgb, var(--gs-bg-dark) 97%, transparent);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.55);
    border-radius: 0.85rem;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.48);
    color: var(--gs-text);
    display: none !important;
    flex-direction: column;
    font-size: 0.76rem;
    font-weight: 800;
    max-height: var(--lineup-popover-max-height, calc(100dvh - 2rem));
    min-width: 17rem;
    overflow: hidden;
    padding: 0;
    position: fixed;
    text-align: right;
    width: clamp(17rem, 24vw, 22rem);
    z-index: 1220;
}

.next-gig-lineup-popover.is-portal-open {
    display: flex !important;
}

.next-gig-lineup-popover-header {
    align-items: center;
    background: color-mix(in srgb, var(--gs-bg-elevated) 88%, transparent);
    border-bottom: 1px solid var(--gs-border);
    display: flex;
    flex: 0 0 auto;
    gap: 0.75rem;
    justify-content: space-between;
    min-height: 3.45rem;
    padding: 0.62rem 0.9rem 0.62rem 0.72rem;
}

.next-gig-lineup-popover-heading {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.next-gig-lineup-popover-heading strong {
    color: var(--gs-text);
    font-size: 0.9rem;
    font-weight: 900;
}

.next-gig-lineup-popover-heading small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-weight: 750;
}

.next-gig-lineup-popover-close {
    align-items: center;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--gs-border);
    border-radius: 50%;
    color: var(--gs-text-muted);
    display: inline-flex;
    flex: 0 0 2.15rem;
    height: 2.15rem;
    justify-content: center;
    padding: 0;
    transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
    width: 2.15rem;
}

.next-gig-lineup-popover-close:hover,
.next-gig-lineup-popover-close:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.1);
    border-color: rgba(var(--gs-primary-rgb), 0.7);
    color: var(--gs-primary);
    outline: none;
}

.next-gig-lineup-popover-list {
    -webkit-overflow-scrolling: touch;
    display: grid;
    flex: 1 1 auto;
    gap: 0.22rem;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.45rem;
    scrollbar-gutter: stable;
    touch-action: pan-y;
}

.next-gig-lineup-popover span {
    color: var(--gs-text);
    line-height: 1.25;
}

.next-gig-lineup-popover-item {
    align-items: center;
    border-radius: 0.45rem;
    cursor: pointer;
    display: flex;
    gap: 0.5rem;
    min-height: 2.65rem;
    padding: 0.4rem 0.45rem;
    width: 100%;
}

.next-gig-lineup-popover-item[hidden] {
    display: none !important;
}

.next-gig-lineup-popover-item:hover,
.next-gig-lineup-popover-item:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.12);
    outline: none;
}

.next-gig-lineup-popover strong,
.next-gig-lineup-popover small {
    display: block;
    line-height: 1.25;
}

.next-gig-lineup-popover small {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
}

.next-gig-lineup-popover-avatar,
.next-gig-lineup-popover-avatar img,
.next-gig-lineup-popover-avatar .dashboard-lineup-avatar-fallback {
    border-radius: 50%;
    height: 1.85rem;
    width: 1.85rem;
}

.next-gig-lineup-popover-avatar {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.1);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.75);
    display: inline-flex;
    flex: 0 0 1.85rem;
    justify-content: center;
    overflow: hidden;
}

.next-gig-lineup-popover-avatar img {
    display: block;
    object-fit: cover;
}

.next-gig-lineup-popover-avatar .dashboard-lineup-avatar-fallback {
    align-items: center;
    display: inline-flex;
    justify-content: center;
}

.next-gig-lineup-popover-copy {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.next-gig-lineup-popover-copy strong,
.next-gig-lineup-popover-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.next-gig-lineup-more.is-open {
    z-index: 340;
}

.lineup-overflow-backdrop {
    background: rgba(0, 0, 0, 0.72);
    border: 0;
    display: none;
    inset: 0;
    padding: 0;
    position: fixed;
    z-index: 1210;
}

.next-event-panel .next-gig-card-separated {
    --next-gig-avatar-size: 2rem;
    --next-gig-control-height: 2.85rem;
    --next-gig-date-size: 3.8rem;
    --next-gig-gap: clamp(0.58rem, 2.2cqi, 0.9rem);
    --next-gig-inline-padding: clamp(0.82rem, 3.2cqi, 1rem);
    --next-gig-label-column: clamp(5.1rem, 25%, 5.8rem);
    --next-gig-label-height: 1.92rem;
    --next-gig-label-size: 0.74rem;
    --next-gig-meta-size: 1rem;
    --next-gig-parameter-gap: 0.74rem;
    --next-gig-title-size: clamp(1.3rem, 5.4cqi, 1.72rem);
    --next-gig-time-size: clamp(2.05rem, 8.4cqi, 2.65rem);
    background:
        radial-gradient(circle at 94% 4%, rgba(var(--gs-primary-rgb), 0.17), transparent 10rem),
        radial-gradient(circle at 12% 0%, rgba(var(--gs-primary-rgb), 0.105), transparent 13rem),
        radial-gradient(circle at 100% 100%, rgba(var(--gs-primary-rgb), 0.05), transparent 14rem),
        linear-gradient(-145deg, rgba(25, 23, 15, 0.99) 0%, rgba(15, 16, 19, 0.99) 48%, rgba(8, 9, 12, 1) 100%);
    border-radius: calc(var(--gs-radius-panel) - 1px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        inset 0 0 0 1px rgba(var(--gs-primary-rgb), 0.08);
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 0;
    height: auto;
    min-height: 0;
    overflow: visible;
}

.next-event-panel .next-gig-card-separated .next-gig-ticket-head {
    align-items: start;
    background: transparent;
    border-bottom: 0;
    border-radius: 0;
    box-shadow: none;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--next-gig-gap);
    height: auto;
    justify-content: initial;
    min-height: 0;
    padding: var(--next-gig-inline-padding) var(--next-gig-inline-padding) 0.55rem;
}

.next-event-panel .next-gig-card-separated.has-event-labels .next-gig-ticket-head {
    align-items: start;
    height: auto;
    min-height: 0;
    padding-bottom: 0.3rem;
    padding-top: 1rem;
}

.next-event-panel .next-gig-card-separated .next-gig-date {
    align-self: start;
    aspect-ratio: 1 / 1;
    box-sizing: border-box;
    height: var(--next-gig-date-size);
    justify-self: end;
    margin-right: 0;
    min-height: var(--next-gig-date-size);
    min-width: var(--next-gig-date-size);
    padding: 0.42rem 0.38rem;
    width: var(--next-gig-date-size);
}

.next-event-panel .next-gig-card-separated .next-gig-date:has(.next-gig-month.is-long) {
    min-width: var(--next-gig-date-size);
    width: var(--next-gig-date-size);
}

.next-event-panel .next-gig-card-separated .next-gig-day {
    font-size: 1.82rem;
    font-weight: 950;
}

.next-event-panel .next-gig-card-separated .next-gig-month {
    font-size: 0.72rem;
    font-weight: 900;
    margin-top: 0.08rem;
}

.next-event-panel .next-gig-card-separated .next-gig-month.is-long {
    font-size: 0.54rem;
    letter-spacing: -0.03em;
    white-space: nowrap;
}

.next-event-panel .next-gig-card-separated .next-gig-kicker {
    flex-wrap: nowrap;
    margin-bottom: 0;
    overflow: hidden;
    white-space: nowrap;
}

.next-event-panel .next-gig-card-separated .next-gig-heading {
    gap: 0.58rem;
    height: auto;
    min-height: 0;
    justify-content: flex-start;
}

.next-event-panel .next-gig-card-separated .next-gig-kicker strong {
    color: var(--gs-primary);
    font-size: 0.86rem;
    font-weight: 950;
}

.next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label {
    color: var(--gs-primary);
    font-size: 0.8rem;
    font-weight: 950;
}

.next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-type {
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 950;
}

.next-event-panel .next-gig-card-separated .next-gig-heading h3 {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    font-size: var(--next-gig-title-size);
    font-weight: 950;
    line-height: 1.08;
    overflow: hidden;
    overflow-wrap: anywhere;
    text-overflow: clip;
    white-space: normal;
}

.next-event-panel .next-gig-card-separated.has-event-labels .next-gig-heading {
    gap: 0.58rem;
    justify-content: flex-start;
    min-height: 0;
}

.next-event-panel .next-gig-card-separated.has-event-labels .next-gig-kicker {
    margin-bottom: 0;
}

.next-event-panel .next-gig-card-separated.has-event-labels .next-gig-date {
    align-self: start;
}

.next-event-panel .next-gig-card-separated .next-gig-labels {
    --next-event-label-rows: 2;
    align-content: flex-start;
    align-items: center;
    box-sizing: border-box;
    flex-wrap: wrap;
    gap: clamp(0.24rem, 1.4cqi, 0.42rem);
    margin-top: 0;
    max-height: calc((var(--next-gig-label-height) * 2) + 0.42rem + 0.72rem);
    min-width: 0;
    overflow: hidden;
    padding: 0.12rem var(--next-gig-inline-padding) 0.6rem;
    width: 100%;
}

.next-event-panel .next-gig-card-separated .next-gig-labels .event-label-chip {
    border-radius: 0.55rem;
    flex: 0 0 auto;
    font-size: var(--next-gig-label-size);
    font-weight: 950;
    max-width: 10rem;
    min-height: var(--next-gig-label-height);
    overflow: hidden;
    padding: 0.5rem 0.72rem 0.42rem;
    text-overflow: ellipsis;
}

.next-event-panel .next-gig-card-separated .next-gig-labels .event-label-more {
    flex: 0 0 auto;
    min-width: 2.65rem;
}

.next-event-panel .next-gig-card-separated .next-gig-labels [hidden],
.next-event-panel .next-gig-card-separated [data-next-event-lineup-member][hidden],
.next-event-panel .next-gig-card-separated [data-next-event-lineup-overflow][hidden],
.next-event-panel .next-gig-card-separated [data-next-event-lineup-overflow-item][hidden] {
    display: none !important;
}

.next-event-panel .next-gig-card-separated .next-gig-primary-details {
    display: grid;
    gap: clamp(0.42rem, 2cqi, 0.78rem);
    padding: 0.72rem var(--next-gig-inline-padding) 1rem;
}

.next-event-panel .next-gig-card-separated .next-gig-time-block {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.next-event-panel .next-gig-card-separated .next-gig-time-value {
    color: var(--gs-text);
    font-size: var(--next-gig-time-size);
    font-variant-numeric: tabular-nums;
    font-weight: 950;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
}

.next-event-panel .next-gig-card-separated .next-gig-weekday {
    color: var(--gs-text-muted);
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.2;
}

.next-event-panel .next-gig-card-separated .next-gig-weekday-standalone {
    color: var(--gs-text);
    font-size: 1rem;
}

.next-event-panel .next-gig-card-separated .next-gig-primary-address {
    align-items: start;
    display: grid;
    gap: 0.72rem;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    min-width: 0;
}

.next-event-panel .next-gig-card-separated .next-gig-primary-address i {
    color: var(--gs-primary);
    font-size: 1.22rem;
    line-height: 1.2;
    text-align: center;
}

.next-event-panel .next-gig-card-separated .next-gig-primary-address .next-gig-address-value {
    color: var(--gs-text);
    font-size: 0.98rem;
    font-weight: 900;
    line-height: 1.28;
    min-width: 0;
    overflow-wrap: anywhere;
}

.next-event-panel .next-gig-card-separated .next-gig-primary-divider {
    background: rgba(255, 255, 255, 0.09);
    height: 1px;
    margin: 0 var(--next-gig-inline-padding);
}

.next-gig-address {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.74rem;
    font-weight: 750;
    gap: 0.34rem;
    line-height: 1.28;
    margin-top: 0.38rem;
    min-width: 0;
}

.next-gig-address i {
    color: var(--gs-accent);
    flex: 0 0 auto;
}

.next-gig-address span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.next-event-panel .next-gig-card-separated .next-gig-address {
    font-size: 0.64rem;
    line-height: 1.1;
    margin-top: 0;
}

.next-event-panel .next-gig-card-separated .next-gig-address-row {
    color: var(--gs-text);
    display: grid;
    font-size: 0.72rem;
    font-weight: 850;
    column-gap: 0.72rem;
    grid-column: 1 / -1;
    grid-template-columns: subgrid;
    margin: 0;
    padding: 0.24rem 0;
}

.next-event-panel .next-gig-card-separated .next-gig-address-row .next-gig-address-value {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.next-event-panel .next-gig-card-separated .next-gig-meta-list {
    align-content: start;
    display: grid;
    flex: 0 0 auto;
    grid-auto-rows: 1fr;
    grid-template-columns: 1.25rem var(--next-gig-label-column) minmax(0, 1fr);
    min-height: 0;
    padding: var(--next-gig-inline-padding);
    row-gap: var(--next-gig-parameter-gap);
}

.next-event-panel .next-gig-card-separated .next-gig-meta-list .next-gig-info-block {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    display: grid;
    column-gap: 0.72rem;
    grid-column: 1 / -1;
    grid-template-columns: subgrid;
    height: 100%;
    min-height: 0;
    padding: 0.18rem 0;
}

.next-gig-info-label {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.68rem;
    font-weight: 850;
    gap: 0.34rem;
    line-height: 1.2;
    min-width: 0;
}

.next-gig-info-label i {
    color: var(--gs-accent);
    flex: 0 0 auto;
}

.next-event-panel .next-gig-card-separated .next-gig-info-block strong,
.next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-contact-link,
.next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-contact-name {
    color: var(--gs-text);
    font-size: var(--next-gig-meta-size);
    font-weight: 950;
    line-height: 1.2;
    margin-top: 0;
}

.next-event-panel .next-gig-card-separated .next-gig-income > strong {
    color: var(--gs-money);
    text-shadow: 0 0 14px rgba(var(--gs-money-rgb), 0.16);
}

.next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-info-label {
    display: contents;
}

.next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-info-label i {
    align-items: center;
    display: inline-flex;
    font-size: 1.2rem;
    grid-column: 1;
    justify-content: center;
    line-height: 1;
    min-height: 1.25rem;
    width: 1.25rem;
}

.next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-info-label span {
    color: var(--gs-text-muted);
    font-size: 0.98rem;
    font-weight: 900;
    grid-column: 2;
    line-height: 1.2;
    white-space: nowrap;
}

.next-event-panel .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block strong,
.next-event-panel .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block .next-gig-contact-link,
.next-event-panel .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block .next-gig-contact-name {
    font-size: var(--next-gig-meta-size);
}

.next-event-panel .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block .next-gig-info-label span {
    font-size: var(--next-gig-meta-size);
}

.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-summary-private) .next-gig-meta-list {
    align-content: start;
    flex: 0 0 auto;
    gap: 0.74rem;
    padding-bottom: 1rem;
    padding-top: 1rem;
}

.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-summary-private) .next-gig-info-block {
    min-height: 2.02rem;
    padding: 0.36rem 0;
}

.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-summary-private) .next-gig-info-block strong,
.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-summary-private) .next-gig-info-block .next-gig-contact-link,
.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-summary-private) .next-gig-info-block .next-gig-contact-name,
.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-summary-private) .next-gig-info-block .next-gig-info-label span {
    font-size: 0.98rem;
    line-height: 1.26;
}

.next-event-panel .next-gig-card-separated .next-gig-meta-density-roomy {
    gap: 0.74rem;
    padding-bottom: 1rem;
    padding-top: 1rem;
}

.next-event-panel .next-gig-card-separated:has(.next-gig-meta-density-roomy) .next-gig-meta-list {
    align-content: start;
    flex: 0 0 auto;
    gap: 0.74rem;
    padding-bottom: 1rem;
    padding-top: 1rem;
}

.next-event-panel .next-gig-card-separated .next-gig-meta-density-roomy .next-gig-info-block {
    min-height: 2.08rem;
    padding: 0.38rem 0;
}

.next-event-panel .next-gig-card-separated .next-gig-meta-density-roomy .next-gig-info-block strong,
.next-event-panel .next-gig-card-separated .next-gig-meta-density-roomy .next-gig-info-block .next-gig-contact-link,
.next-event-panel .next-gig-card-separated .next-gig-meta-density-roomy .next-gig-info-block .next-gig-contact-name {
    font-size: 1.04rem;
    line-height: 1.26;
}

.next-event-panel .next-gig-card-separated .next-gig-meta-density-roomy .next-gig-info-block .next-gig-info-label span {
    font-size: 0.98rem;
    line-height: 1.26;
}

.next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-contact-card {
    margin-top: 0;
    width: 100%;
}

.next-event-panel .next-gig-card-separated .next-gig-contact-card .next-gig-contact-link,
.next-event-panel .next-gig-card-separated .next-gig-contact-card .next-gig-contact-name {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    text-overflow: clip;
    white-space: normal;
}

.next-event-panel .next-gig-card-separated .next-gig-lineup-row .next-gig-lineup {
    align-items: center;
    display: inline-flex;
    gap: 0.22rem;
    min-height: var(--next-gig-avatar-size);
    max-width: 100%;
}

.next-event-panel .next-gig-card-separated .next-gig-lineup-row .dashboard-lineup-avatar {
    flex-basis: var(--next-gig-avatar-size);
    height: var(--next-gig-avatar-size);
    margin-right: 0 !important;
    width: var(--next-gig-avatar-size);
}

.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
    align-content: start;
    flex: 0 0 auto;
    gap: 0.74rem;
    padding-bottom: 0.72rem;
    padding-top: 1rem;
}

.next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-lineup-summary {
    flex: 0 0 auto;
}

.next-event-panel .next-gig-card-separated .next-gig-lineup-summary {
    align-content: stretch;
    align-items: stretch !important;
    background: transparent;
    border: 0;
    box-shadow: none;
    display: grid !important;
    flex: 0 0 auto;
    gap: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    margin-top: auto;
    min-height: 0;
    padding: 0.68rem var(--next-gig-inline-padding) var(--next-gig-inline-padding);
}

.next-event-panel .next-gig-card-separated .next-gig-lineup-summary-empty {
    grid-template-columns: 1fr;
    justify-items: stretch;
}

.next-event-panel .next-gig-card-separated .next-gig-lineup-summary-private {
    flex: 0 0 auto;
}

.next-gig-lineup-copy {
    align-items: center;
    display: grid;
    gap: 0.48rem;
    grid-row: 1;
    grid-template-columns: 1rem var(--next-gig-label-column) minmax(0, 1fr);
    min-height: 1.72rem;
    min-width: 0;
}

.next-gig-lineup-copy .next-gig-info-label {
    display: contents;
}

.next-gig-lineup-copy .next-gig-info-label i {
    align-self: center;
    display: inline-flex;
    align-items: center;
    grid-column: 1;
    min-height: 1.72rem;
}

.next-gig-lineup-copy .next-gig-info-label span {
    align-self: center;
    align-items: center;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 850;
    grid-column: 2;
    line-height: 1.2;
    min-height: 1.72rem;
    white-space: nowrap;
}

.next-gig-lineup-copy .next-gig-lineup {
    align-self: center;
    grid-column: 3;
    min-height: 1.72rem;
}

.next-event-panel .next-gig-card-separated .next-gig-lineup-meta .next-gig-lineup {
    align-items: center;
    display: inline-flex;
    gap: 0.22rem;
    min-height: 1.72rem;
    max-width: 100%;
}

.next-event-panel .next-gig-card-separated .next-gig-lineup .dashboard-lineup-avatar {
    flex-basis: 1.72rem;
    height: 1.72rem;
    margin-right: 0 !important;
    width: 1.72rem;
}

.next-event-panel .next-gig-card-separated .next-gig-lineup-popover {
    bottom: calc(100% + 0.72rem);
    top: auto;
}

.next-event-panel .next-gig-card-separated .next-gig-details-button {
    align-self: stretch;
    background: rgba(var(--gs-primary-rgb), 0.06);
    background-image: none;
    border-color: rgba(var(--gs-primary-rgb), 0.82);
    box-shadow: none;
    color: var(--gs-primary);
    font-size: 1rem;
    font-weight: 950;
    grid-row: 1;
    justify-self: stretch;
    min-height: var(--next-gig-control-height);
    min-width: 0;
    padding-inline: 1rem;
    width: 100%;
}

.next-event-panel .next-gig-card-separated .next-gig-details-button:hover,
.next-event-panel .next-gig-card-separated .next-gig-details-button:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.12);
    background-image: none;
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 0.18rem rgba(var(--gs-primary-rgb), 0.14);
    color: var(--gs-primary-hover);
}

.next-event-panel .next-gig-card-separated .next-gig-details-button span {
    color: inherit;
}

@media (min-width: 992px) {
    .dashboard-primary-row {
        align-items: stretch;
    }

    .dashboard-primary-row > [class*="col-"] {
        align-self: stretch;
        display: flex;
        flex-direction: column;
    }

    .dashboard-primary-row .dashboard-chart-card,
    .dashboard-primary-row .next-event-panel {
        height: auto !important;
        max-height: none;
        width: 100%;
    }

    .dashboard-primary-row .next-event-panel {
        flex: 1 1 auto;
    }

    .dashboard-primary-row .next-event-panel .next-gig-meta-list,
    .dashboard-primary-row .next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        align-content: center;
        flex: 1 1 auto;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated {
        --next-gig-label-column: clamp(4.55rem, 24%, 5.15rem);
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-ticket-head {
        gap: 0.66rem;
        grid-template-columns: minmax(0, 1fr) 3.45rem;
        padding: 0.52rem 0.9rem 0.46rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated.has-event-labels .next-gig-ticket-head {
        padding-bottom: 0.16rem;
        padding-top: 0.46rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-date {
        min-height: 3.12rem;
        min-width: 3.45rem;
        padding: 0.28rem 0.34rem;
        width: 3.45rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-day {
        font-size: 1.42rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-month {
        font-size: 0.6rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-month.is-long {
        font-size: 0.5rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-heading,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated.has-event-labels .next-gig-heading {
        gap: 0.32rem;
        justify-content: flex-start;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-kicker strong {
        font-size: 0.78rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-kicker .next-gig-kicker-type {
        font-size: 0.72rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-heading h3 {
        font-size: 1.5rem;
        line-height: 1;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-labels {
        --next-event-label-rows: 2;
        flex-wrap: wrap;
        gap: 0.22rem;
        margin-top: 0;
        max-height: calc((1.34rem * 2) + 0.22rem + 0.3rem);
        padding: 0.04rem 0.9rem 0.26rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-labels .event-label-chip {
        border-radius: 0.5rem;
        font-size: 0.625rem;
        max-width: 8.5rem;
        min-height: 1.34rem;
        padding: 0.24rem 0.38rem 0.18rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-labels .event-label-more {
        min-width: 2rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-primary-details {
        gap: 0.34rem;
        padding: 0.28rem 0.9rem 0.38rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-time-value {
        font-size: 2.25rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-weekday {
        font-size: 0.82rem;
        font-weight: 800;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-primary-address {
        gap: 0.58rem;
        grid-template-columns: 1rem minmax(0, 1fr);
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-primary-address i {
        font-size: 0.94rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-primary-address .next-gig-address-value {
        font-size: 0.82rem;
        font-weight: 850;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-primary-divider {
        margin: 0 0.9rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-meta-list,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        --next-gig-parameter-gap: 0.22rem;
        grid-auto-rows: minmax(1.6rem, auto);
        grid-template-columns: 1rem max-content minmax(0, 1fr);
        padding: 0.22rem 0.9rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-contact-card .next-gig-contact-link,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-contact-card .next-gig-contact-name {
        -webkit-line-clamp: 1;
        text-overflow: ellipsis;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-meta-list .next-gig-info-block {
        padding: 0;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-info-block strong,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-info-block .next-gig-contact-link,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-info-block .next-gig-contact-name,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-info-block .next-gig-info-label span,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block strong,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block .next-gig-contact-link,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block .next-gig-contact-name,
    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-meta-density-balanced .next-gig-info-block .next-gig-info-label span {
        font-size: 0.875rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-info-block .next-gig-info-label i {
        font-size: 1rem;
        min-height: 1rem;
        width: 1rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-lineup-row .next-gig-lineup {
        min-height: 1.72rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-lineup-row .dashboard-lineup-avatar {
        flex-basis: 1.72rem;
        height: 1.72rem;
        width: 1.72rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-lineup-summary {
        padding: 0.18rem 0.9rem 0.72rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-details-button {
        font-size: 0.875rem;
        min-height: 2.15rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-ticket-head {
        gap: 0.5rem;
        padding-bottom: 0.08rem;
        padding-top: 0.28rem;
    }

    .next-event-panel.is-content-balanced .next-gig-card-separated .next-gig-date {
        margin-top: 0.38rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-date {
        margin-top: 0.62rem;
    }

    .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated.has-event-labels .next-gig-date {
        margin-top: 0.44rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-heading,
    .next-event-panel.is-content-compact .next-gig-card-separated.has-event-labels .next-gig-heading {
        gap: 0.16rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-kicker strong,
    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label,
    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-kicker .next-gig-kicker-type {
        font-size: 0.625rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-heading h3 {
        font-size: 1.3125rem;
        line-height: 1.04;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-labels {
        gap: 0.16rem;
        margin-bottom: 0;
        margin-top: 0;
        max-height: calc((1.1rem * 2) + 0.16rem + 0.18rem);
        padding-bottom: 0.42rem;
        padding-top: 0.02rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-labels .event-label-chip {
        border-radius: 0.4rem;
        font-size: 0.54rem;
        min-height: 1.1rem;
        padding: 0.18rem 0.3rem 0.12rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-primary-details {
        gap: 0.16rem;
        padding-bottom: 0.18rem;
        padding-top: 0.12rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-time-value {
        font-size: 1.5rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-weekday {
        font-size: 12px;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-primary-address .next-gig-address-value,
    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-contact-card .next-gig-contact-link,
    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-contact-card .next-gig-contact-name {
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 1;
        display: -webkit-box;
        overflow: hidden;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-meta-list,
    .next-event-panel.is-content-compact .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        --next-gig-parameter-gap: 0.08rem;
        gap: 0.08rem;
        grid-auto-rows: minmax(1.5rem, auto);
        padding-bottom: 0.08rem;
        padding-top: 0.08rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-meta-list .next-gig-info-block {
        padding: 0;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-info-block strong,
    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-info-block .next-gig-contact-link,
    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-info-block .next-gig-contact-name,
    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-info-block .next-gig-info-label span {
        font-size: 0.875rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-info-block .next-gig-info-label i {
        font-size: 0.9rem;
        min-height: 0.9rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-lineup-row .next-gig-lineup {
        min-height: 1.5rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-lineup-row .dashboard-lineup-avatar {
        flex-basis: 1.5rem;
        height: 1.5rem;
        width: 1.5rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-lineup-summary {
        padding-bottom: 12px;
        padding-top: 0.12rem;
    }

    .next-event-panel.is-content-compact .next-gig-card-separated .next-gig-details-button {
        font-size: 0.82rem;
        min-height: 2rem;
    }
}

.next-event-panel[data-density="standard"] .next-gig-card-separated,
.next-event-panel[data-density="compact"] .next-gig-card-separated {
    --next-gig-avatar-size: 1.82rem;
    --next-gig-control-height: 2.75rem;
    --next-gig-date-size: 3.45rem;
    --next-gig-gap: 0.66rem;
    --next-gig-inline-padding: 0.9rem;
    --next-gig-label-column: clamp(4.55rem, 24%, 5.15rem);
    --next-gig-label-height: 1.5rem;
    --next-gig-label-size: 0.68rem;
    --next-gig-meta-size: 0.9rem;
    --next-gig-parameter-gap: 0.32rem;
    --next-gig-title-size: clamp(1.22rem, 5.1cqi, 1.5rem);
    --next-gig-time-size: clamp(1.9rem, 8cqi, 2.25rem);
}

.next-event-panel[data-density="compact"] .next-gig-card-separated {
    --next-gig-avatar-size: 1.75rem;
    --next-gig-date-size: 3.2rem;
    --next-gig-gap: 0.5rem;
    --next-gig-inline-padding: 0.82rem;
    --next-gig-label-column: clamp(4.4rem, 23%, 4.9rem);
    --next-gig-label-height: 1.4rem;
    --next-gig-label-size: 0.65rem;
    --next-gig-meta-size: 0.875rem;
    --next-gig-parameter-gap: 0.22rem;
    --next-gig-title-size: clamp(1.08rem, 4.8cqi, 1.34rem);
    --next-gig-time-size: clamp(1.75rem, 7.6cqi, 2.1rem);
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-ticket-head {
    padding-bottom: 0.38rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated.has-event-labels .next-gig-ticket-head {
    padding-bottom: 0.18rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-day {
    font-size: clamp(1.42rem, 5.4cqi, 1.62rem);
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-month {
    font-size: 0.65rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-month.is-long {
    font-size: 0.5rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-heading,
.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated.has-event-labels .next-gig-heading {
    gap: 0.32rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label,
.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-kicker .next-gig-kicker-type {
    font-size: 0.72rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-labels {
    gap: 0.24rem;
    max-height: calc((var(--next-gig-label-height) * 2) + 0.24rem + 0.34rem);
    padding-bottom: 0.3rem;
    padding-top: 0.04rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-labels .event-label-chip {
    max-width: min(9rem, 54cqi);
    padding: 0.28rem 0.42rem 0.22rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-primary-details {
    gap: 0.38rem;
    padding-bottom: 0.52rem;
    padding-top: 0.36rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-weekday,
.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-primary-address .next-gig-address-value {
    font-size: 0.84rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-primary-address {
    gap: 0.58rem;
    grid-template-columns: 1rem minmax(0, 1fr);
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-primary-address i {
    font-size: 0.98rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-meta-list,
.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
    align-content: start;
    flex: 0 0 auto;
    grid-auto-rows: minmax(1.72rem, auto);
    padding-bottom: 0.42rem;
    padding-top: 0.42rem;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-info-block .next-gig-info-label span,
.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-meta-density-standard .next-gig-info-block .next-gig-info-label span,
.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-meta-density-compact .next-gig-info-block .next-gig-info-label span {
    font-size: var(--next-gig-meta-size);
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-info-block .next-gig-contact-link,
.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-info-block .next-gig-contact-name {
    -webkit-line-clamp: 2;
    text-overflow: clip;
}

.next-event-panel:is([data-density="standard"], [data-density="compact"]) .next-gig-card-separated .next-gig-lineup-summary {
    padding-top: 0.42rem;
}

.next-event-panel[data-density="compact"] .next-gig-card-separated .next-gig-labels {
    gap: 0.18rem;
    max-height: calc((var(--next-gig-label-height) * 2) + 0.18rem + 0.28rem);
    padding-bottom: 0.24rem;
}

.next-event-panel[data-density="compact"] .next-gig-card-separated .next-gig-primary-details {
    gap: 0.28rem;
    padding-bottom: 0.42rem;
    padding-top: 0.28rem;
}

.next-event-panel[data-density="compact"] .next-gig-card-separated .next-gig-meta-list,
.next-event-panel[data-density="compact"] .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
    grid-auto-rows: minmax(1.62rem, auto);
    padding-bottom: 0.32rem;
    padding-top: 0.32rem;
}

@container next-event-card (max-width: 29rem) {
    .next-event-panel[data-density="spacious"] .next-gig-card-separated {
        --next-gig-avatar-size: 1.82rem;
        --next-gig-control-height: 2.75rem;
        --next-gig-date-size: 3.45rem;
        --next-gig-gap: 0.66rem;
        --next-gig-inline-padding: 0.9rem;
        --next-gig-label-column: clamp(4.55rem, 24%, 5.15rem);
        --next-gig-label-height: 1.5rem;
        --next-gig-label-size: 0.68rem;
        --next-gig-meta-size: 0.9rem;
        --next-gig-parameter-gap: 0.32rem;
        --next-gig-title-size: clamp(1.22rem, 5.1cqi, 1.5rem);
        --next-gig-time-size: clamp(1.9rem, 8cqi, 2.25rem);
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-ticket-head {
        padding-bottom: 0.38rem;
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated.has-event-labels .next-gig-ticket-head {
        padding-bottom: 0.18rem;
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-day {
        font-size: clamp(1.42rem, 5.4cqi, 1.62rem);
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-heading,
    .next-event-panel[data-density="spacious"] .next-gig-card-separated.has-event-labels .next-gig-heading {
        gap: 0.32rem;
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-labels {
        gap: 0.24rem;
        max-height: calc((var(--next-gig-label-height) * 2) + 0.24rem + 0.34rem);
        padding-bottom: 0.3rem;
        padding-top: 0.04rem;
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-primary-details {
        gap: 0.38rem;
        padding-bottom: 0.52rem;
        padding-top: 0.36rem;
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-weekday,
    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-primary-address .next-gig-address-value {
        font-size: 0.84rem;
    }

    .next-event-panel[data-density="spacious"] .next-gig-card-separated .next-gig-meta-list,
    .next-event-panel[data-density="spacious"] .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        grid-auto-rows: minmax(1.72rem, auto);
        padding-bottom: 0.42rem;
        padding-top: 0.42rem;
    }
}

@container next-event-card (max-width: 23rem) {
    .next-event-panel .next-gig-card-separated {
        --next-gig-avatar-size: 1.75rem;
        --next-gig-date-size: 3.2rem;
        --next-gig-gap: 0.5rem;
        --next-gig-inline-padding: 0.82rem;
        --next-gig-label-column: 4.4rem;
        --next-gig-label-height: 1.4rem;
        --next-gig-label-size: 0.65rem;
        --next-gig-meta-size: 0.875rem;
        --next-gig-parameter-gap: 0.22rem;
        --next-gig-title-size: clamp(1.08rem, 4.8cqi, 1.34rem);
        --next-gig-time-size: clamp(1.75rem, 7.6cqi, 2.1rem);
    }

    .next-event-panel .next-gig-card-separated .next-gig-ticket-head {
        padding-bottom: 0.28rem;
    }

    .next-event-panel .next-gig-card-separated .next-gig-kicker {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.08rem;
        white-space: normal;
    }

    .next-event-panel .next-gig-card-separated .next-gig-labels {
        gap: 0.18rem;
        max-height: calc((var(--next-gig-label-height) * 2) + 0.18rem + 0.28rem);
        padding-bottom: 0.24rem;
    }

    .next-event-panel .next-gig-card-separated .next-gig-primary-details {
        gap: 0.28rem;
        padding-bottom: 0.42rem;
        padding-top: 0.28rem;
    }

    .next-event-panel .next-gig-card-separated .next-gig-meta-list,
    .next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        grid-auto-rows: minmax(1.62rem, auto);
        padding-bottom: 0.32rem;
        padding-top: 0.32rem;
    }
}

@container next-event-card (max-width: 20.5rem) {
    .next-event-panel .next-gig-card-separated .next-gig-meta-list,
    .next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        grid-template-columns: 1rem minmax(0, 1fr);
    }

    .next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-info-label i {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-info-label span {
        grid-column: 2;
        grid-row: 1;
        white-space: normal;
    }

    .next-event-panel .next-gig-card-separated .next-gig-info-block > strong,
    .next-event-panel .next-gig-card-separated .next-gig-info-block > .next-gig-contact-card,
    .next-event-panel .next-gig-card-separated .next-gig-info-block > .next-gig-lineup {
        grid-column: 2;
        grid-row: 2;
    }
}

@media (min-width: 992px) {
    .dashboard-primary-row .next-event-panel.is-height-matched {
        align-self: flex-start;
        box-sizing: border-box;
        flex: 0 0 var(--next-event-panel-height);
        height: var(--next-event-panel-height) !important;
        max-height: var(--next-event-panel-height);
        min-height: var(--next-event-panel-height);
    }

    .dashboard-primary-row .next-event-panel > .card-body,
    .dashboard-primary-row .next-event-panel.is-height-matched .next-gig-card-separated {
        flex: 1 1 auto;
        height: 100%;
        min-height: 0;
    }

    .dashboard-primary-row .next-event-panel.is-height-matched .next-gig-ticket-head,
    .dashboard-primary-row .next-event-panel.is-height-matched .next-gig-labels,
    .dashboard-primary-row .next-event-panel.is-height-matched .next-gig-primary-details,
    .dashboard-primary-row .next-event-panel.is-height-matched .next-gig-primary-divider {
        flex: 0 0 auto;
    }

    .dashboard-primary-row .next-event-panel .next-gig-meta-list,
    .dashboard-primary-row .next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        align-content: start;
        flex: 0 0 auto;
    }

    .dashboard-primary-row .next-event-panel.is-height-matched.is-content-compact .next-gig-meta-list,
    .dashboard-primary-row .next-event-panel.is-height-matched.is-content-compact .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        align-content: space-evenly;
        flex: 1 1 auto;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label,
    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-type {
        font-size: 1.25rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-heading h3 {
        font-size: 1.3125rem;
        line-height: 1.04;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-day {
        font-size: 1.42rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-month {
        font-size: 0.65rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-month.is-long {
        font-size: 0.5rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-labels {
        gap: 0.16rem;
        max-height: calc((1.1rem * 2) + 0.16rem + 0.18rem);
        padding-bottom: 0.42rem;
        padding-top: 0.02rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-labels .event-label-chip {
        border-radius: 0.4rem;
        font-size: 0.54rem;
        min-height: 1.1rem;
        padding: 0.18rem 0.3rem 0.12rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-time-value {
        font-size: 1.5rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-weekday {
        font-size: 12px;
        font-weight: 800;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-primary-address {
        align-items: center;
        gap: 0.58rem;
        grid-template-columns: 1rem minmax(0, 1fr);
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-primary-address i {
        font-size: 0.98rem;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-primary-address .next-gig-address-value {
        font-size: 12px;
        font-weight: 850;
    }

    .dashboard-primary-row .next-event-panel .next-gig-card-separated .next-gig-details-button {
        font-size: 0.82rem;
        min-height: 2rem;
    }

    .dashboard-primary-row .next-event-panel.is-height-matched.is-content-compact .next-gig-labels {
        margin-bottom: 0;
        margin-top: 0;
        padding-bottom: 8px;
        padding-top: 0;
    }

    .dashboard-primary-row .next-event-panel.is-height-matched.is-content-compact .next-gig-primary-details {
        gap: 8px;
        padding-bottom: 8px;
        padding-top: 2px;
    }

    .dashboard-primary-row .next-event-panel.is-height-matched.is-content-compact .next-gig-time-block {
        gap: 2px;
    }
}

.next-gig-details-button {
    align-items: center;
    display: grid;
    gap: 0.42rem;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    justify-content: center;
    min-width: 0;
    width: 100%;
}

.next-gig-details-button > span {
    grid-column: 2;
}

.next-gig-details-button > i {
    color: inherit;
    font-size: 0.9em;
    grid-column: 3;
    justify-self: end;
}

.dashboard-mobile-card-link {
    display: none;
}

.empty-state.next-gig-empty {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 100%;
    padding: clamp(3.4rem, 5.2vw, 4.7rem) 1.5rem 2.4rem;
}

.empty-state.next-gig-empty > i {
    font-size: 2.4rem;
    margin-bottom: 1.15rem;
}

.empty-state.next-gig-empty h4 {
    margin-bottom: 0.75rem;
}

.next-gig-empty p {
    margin-bottom: 1.35rem;
    max-width: 21rem;
}

/* Calendar */
.calendar-board {
    margin-top: 0.25rem;
}

.mobile-calendar-day-panel[hidden] { display: none; }
.fc .fc-daygrid-day-number:focus-visible,
.fc .fc-col-header-cell-cushion:focus-visible {
    outline: 2px solid var(--gs-primary);
    outline-offset: 2px;
    border-radius: var(--gs-radius-control);
}
@media (min-width: 768px) and (hover: hover) {
    .calendar-can-create .fc-daygrid-day,
    .calendar-can-create .fc-timegrid-slot-lane { cursor: pointer; }
    .calendar-can-create .fc-daygrid-day:not(.fc-day-today):hover {
        background: rgba(var(--gs-primary-rgb), 0.05);
    }
}

.fc {
    --fc-bg-event-opacity: 0.9;
    --fc-border-color: var(--gs-border);
    --fc-page-bg-color: var(--gs-bg-card);
    --fc-neutral-bg-color: var(--gs-bg-input);
    --fc-today-bg-color: rgba(var(--gs-primary-rgb), 0.15);
}

.fc .fc-toolbar-title {
    font-size: 1.25rem;
}

.fc .fc-header-toolbar {
    align-items: center;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: auto minmax(10rem, 1fr) auto;
}

.fc .fc-toolbar-chunk {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.38rem;
}

.fc .fc-toolbar-chunk:nth-child(2) {
    justify-content: center;
}

.fc .fc-toolbar-chunk:last-child {
    justify-content: flex-end;
}

.fc .fc-button {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-weight: 800;
    height: 2.32rem;
    justify-content: center;
    line-height: 1;
    min-height: 2.32rem;
    padding: 0 0.88rem;
    text-align: center;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.fc .fc-button .fc-icon {
    line-height: 1;
}

.fc .fc-periodDay-button,
.fc .fc-periodWeek-button,
.fc .fc-periodMonth-button,
.fc .fc-periodYear-button {
    width: 6rem;
}

.fc .fc-button-primary {
    background-color: rgba(0, 0, 0, 0.14);
    background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
    border-color: rgba(var(--gs-primary-rgb), 0.56);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--gs-primary);
}

.fc .fc-button-primary:hover,
.fc .fc-button-primary:focus-visible {
    background-color: rgba(var(--gs-primary-rgb), 0.08);
    background-image: linear-gradient(-180deg, rgba(var(--gs-primary-rgb), 0.12), rgba(var(--gs-primary-rgb), 0.035));
    border-color: rgba(var(--gs-primary-rgb), 0.82);
    box-shadow: 0 12px 22px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.055);
    color: var(--gs-primary);
    transform: translateY(-1px);
}

.fc .fc-button-primary:disabled {
    background-color: rgba(0, 0, 0, 0.14);
    background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
    border-color: rgba(148, 163, 184, 0.32);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--gs-text-muted);
    opacity: 0.58;
}

.fc .fc-button-primary:not(:disabled).fc-button-active {
    background-color: var(--gs-primary);
    background-image: var(--gs-action-bg);
    border-color: var(--gs-primary);
    box-shadow: var(--gs-action-shadow);
    color: #050505;
}

.fc-theme-standard .fc-scrollgrid {
    border-color: var(--gs-border);
}

.fc-theme-standard td,
.fc-theme-standard th {
    border-color: var(--gs-border);
}

.fc .fc-daygrid-day-number {
    color: var(--gs-text);
    text-decoration: none;
}

.fc .fc-col-header-cell-cushion,
.fc .fc-list-day-cushion a {
    color: var(--gs-text) !important;
    cursor: default;
    text-decoration: none !important;
}

.fc .fc-timegrid-axis,
.fc .fc-timegrid-slot-label {
    width: 4.45rem;
}

.fc .fc-timegrid-axis-cushion,
.fc .fc-timegrid-slot-label-cushion {
    color: var(--gs-text);
    font-variant-numeric: tabular-nums;
    font-weight: 750;
    padding-right: 0.55rem;
    padding-left: 0.55rem;
}

.fc .fc-timegrid-slot-label-frame {
    text-align: left;
}

.fc .fc-daygrid-day-frame {
    min-height: 6.4rem;
}

.fc .fc-daygrid-event,
.fc .fc-event {
    background: transparent !important;
    border: 0 !important;
    color: var(--gs-text) !important;
    margin: 0.12rem 0.28rem;
}

.fc .fc-event-main {
    color: inherit;
    min-width: 0;
    width: 100%;
}

.story-calendar-event {
    --calendar-event-color: var(--gs-primary);
    --calendar-event-rgb: var(--gs-primary-rgb);
}

.story-calendar-status-scheduled {
    --calendar-event-color: var(--gs-primary);
    --calendar-event-rgb: var(--gs-primary-rgb);
}

.story-calendar-status-completed {
    --calendar-event-color: #34d399;
    --calendar-event-rgb: 52, 211, 153;
}

.story-calendar-status-cancelled {
    --calendar-event-color: #f87171;
    --calendar-event-rgb: 248, 113, 113;
}

.story-calendar-type-rehearsal {
    --calendar-event-color: #38d8ff;
    --calendar-event-rgb: 56, 216, 255;
}

.story-calendar-type-meeting {
    --calendar-event-color: #c4b5fd;
    --calendar-event-rgb: 196, 181, 253;
}

.story-calendar-type-other,
.story-calendar-other {
    --calendar-event-color: #cbd5e1;
    --calendar-event-rgb: 203, 213, 225;
}

.story-calendar-chip {
    align-items: center;
    background: linear-gradient(-180deg, rgba(var(--calendar-event-rgb), 0.12), rgba(var(--calendar-event-rgb), 0.045));
    border: 1px solid rgba(var(--calendar-event-rgb), 0.36);
    border-radius: 0.42rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    display: grid;
    gap: 0.32rem;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 1.62rem;
    min-width: 0;
    overflow: hidden;
    padding: 0.17rem 0.42rem;
    width: 100%;
}

.story-calendar-chip-marker {
    background: var(--calendar-event-color);
    border-radius: 999px;
    box-shadow: 0 0 0 3px rgba(var(--calendar-event-rgb), 0.14);
    height: 0.46rem;
    width: 0.46rem;
}

.story-calendar-chip-copy {
    align-items: center;
    display: flex;
    gap: 0.34rem;
    min-width: 0;
}

.story-calendar-chip-time {
    color: var(--calendar-event-color);
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1;
}

.story-calendar-chip-time.is-empty {
    display: none;
}

.story-calendar-chip-title {
    color: var(--gs-text);
    font-size: 0.72rem;
    font-weight: 850;
    line-height: 1.12;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fc .fc-list-event .story-calendar-chip {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    min-height: 1.9rem;
    padding-inline: 0;
}

.fc .fc-list-event:hover td {
    background: rgba(var(--calendar-event-rgb), 0.07);
}

.fc-multimonth .fc-daygrid-day-frame {
    min-height: 3.25rem;
}

.fc-multimonth .story-calendar-chip {
    border-radius: 0.34rem;
    gap: 0.22rem;
    min-height: 1.2rem;
    padding: 0.1rem 0.24rem;
}

.fc-multimonth .story-calendar-chip-marker {
    box-shadow: none;
    height: 0.34rem;
    width: 0.34rem;
}

.fc-multimonth .story-calendar-chip-copy {
    gap: 0.22rem;
}

.fc-multimonth .story-calendar-chip-time,
.fc-multimonth .story-calendar-chip-title {
    font-size: 0.62rem;
    line-height: 1.05;
}

@media (max-width: 900px) {
    .fc .fc-header-toolbar {
        align-items: stretch;
        display: flex;
        flex-direction: column;
    }

    .fc .fc-toolbar-chunk {
        justify-content: center;
        width: 100%;
    }

    .fc .fc-toolbar-title {
        text-align: center;
    }

    .fc .fc-button {
        font-size: 0.88rem;
        height: 2.18rem;
        min-height: 2.18rem;
        padding: 0 0.62rem;
    }
}

/* Empty States */
.empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--gs-text-muted);
}

.empty-state > i {
    font-size: 4rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

.empty-state h4 {
    color: var(--gs-text);
    margin-bottom: 0.5rem;
}

.empty-state-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: center;
    margin-top: 1rem;
}

/* Status Indicators */
.status-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-left: 0.5rem;
}

.status-dot.active { background-color: #20c997; }
.status-dot.inactive { background-color: #6c757d; }

/* File Upload */
.file-upload {
    align-items: center;
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.035), transparent 8rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.018), rgba(12, 13, 16, 0.82));
    border: 1.5px dashed rgba(148, 163, 184, 0.34);
    border-radius: 6px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
    color: var(--gs-text);
    cursor: pointer;
    display: grid;
    gap: 0.55rem;
    justify-items: center;
    min-height: 8.6rem;
    padding: 1.45rem;
    text-align: center;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.file-upload:hover,
.file-upload.file-upload-dragover {
    background:
        radial-gradient(circle at 50% 0%, rgba(var(--gs-primary-rgb), 0.08), transparent 9rem),
        linear-gradient(-145deg, rgba(var(--gs-primary-rgb), 0.035), rgba(12, 13, 16, 0.86));
    border-color: rgba(var(--gs-primary-rgb), 0.78);
    box-shadow: 0 0 0 1px rgba(var(--gs-primary-rgb), 0.08), 0 18px 34px rgba(0, 0, 0, 0.25);
    transform: translateY(-1px);
}

.file-upload input[type="file"] {
    display: none;
}

.file-upload i {
    color: rgba(203, 213, 225, 0.86);
    font-size: 2.35rem;
    line-height: 1;
    margin: 0;
}

.file-upload:hover i,
.file-upload.file-upload-dragover i {
    color: var(--gs-primary);
}

.file-upload span {
    color: var(--gs-text);
    display: block;
    font-family: var(--gs-display-font);
    font-size: 0.96rem;
    font-weight: 800;
    line-height: 1.2;
}

/* Quick Actions */
.quick-action {
    align-items: center;
    background-color: rgba(0, 0, 0, 0.14);
    background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.56);
    border-radius: 6px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--gs-primary);
    display: flex;
    font-size: 0.95rem;
    font-weight: 800;
    gap: 0.55rem;
    line-height: 1.1;
    margin-bottom: 0.5rem;
    min-height: 2.7rem;
    padding: 0.72rem 0.95rem;
    text-decoration: none;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.quick-action:hover {
    background-color: rgba(var(--gs-primary-rgb), 0.08);
    background-image: linear-gradient(-180deg, rgba(var(--gs-primary-rgb), 0.12), rgba(var(--gs-primary-rgb), 0.035));
    border-color: rgba(var(--gs-primary-rgb), 0.82);
    box-shadow: 0 12px 22px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.055);
    color: var(--gs-primary);
    transform: translateY(-1px);
}

.quick-action i {
    font-size: 1.25rem;
    color: var(--gs-primary);
    line-height: 1;
}

.quick-action:hover i {
    color: var(--gs-primary);
}

.dashboard-quick-actions {
    display: grid;
    gap: 0.75rem;
}

.dashboard-quick-actions .quick-action {
    margin-bottom: 0;
    min-height: 3.25rem;
}

.dashboard-quick-actions-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.dashboard-quick-actions-card .card-body {
    display: flex;
    flex-direction: column;
}

.dashboard-quick-actions-card .dashboard-quick-actions {
    flex: 1 1 auto;
}

.dashboard-quick-actions-card-row {
    height: auto;
}

.dashboard-quick-actions-card-row .card-body {
    display: block;
}

.dashboard-quick-actions-card-row .dashboard-quick-actions {
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.dashboard-month-timeline {
    display: grid;
    gap: 0.58rem;
}

.dashboard-month-gig {
    align-items: stretch;
    color: inherit;
    display: grid;
    grid-template-columns: 3.55rem 0.92rem minmax(0, 1fr);
    min-width: 0;
    position: relative;
    text-decoration: none;
}

.dashboard-month-gig:not(:last-child)::before {
    display: none;
}

.dashboard-month-gig-date {
    align-items: end;
    align-self: center;
    color: var(--gs-text);
    display: grid;
    justify-items: center;
    line-height: 1;
    min-height: 3.35rem;
    position: relative;
    z-index: 1;
}

.dashboard-month-gig-date::after {
    display: none;
}

.dashboard-month-gig-today {
    color: var(--gs-primary);
    font-size: 0.56rem;
    font-weight: 900;
    letter-spacing: 0;
    margin-bottom: 0.18rem;
    text-transform: uppercase;
}

.dashboard-month-gig-day {
    font-size: 1.28rem;
    font-weight: 900;
}

.dashboard-month-gig-month {
    color: var(--gs-text-muted);
    font-size: 0.62rem;
    font-weight: 800;
    max-width: 100%;
    overflow: hidden;
    padding-inline: 0.1rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.dashboard-month-gig-month.is-long {
    font-size: 0.56rem;
    letter-spacing: -0.025em;
}

.dashboard-month-gig-weekday {
    display: none;
}

.dashboard-month-gig-rail {
    align-self: stretch;
    min-height: 3.35rem;
    position: relative;
}

.dashboard-month-gig-rail::before {
    background: linear-gradient(-180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.08));
    bottom: -0.58rem;
    content: "";
    right: 50%;
    position: absolute;
    top: 0;
    transform: translateX(50%);
    width: 1px;
}

.dashboard-month-gig:first-child .dashboard-month-gig-rail::before {
    top: 50%;
}

.dashboard-month-gig:last-child .dashboard-month-gig-rail::before {
    bottom: 50%;
}

.dashboard-month-gig-rail::after {
    background: var(--gs-primary);
    border: 3px solid #111214;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(var(--gs-primary-rgb), 0.65), 0 0 18px rgba(var(--gs-primary-rgb), 0.32);
    content: "";
    height: 0.78rem;
    right: 50%;
    position: absolute;
    top: 50%;
    transform: translate(50%, -50%);
    width: 0.78rem;
    z-index: 1;
}

.dashboard-month-gig.is-completed .dashboard-month-gig-day,
.dashboard-month-gig.is-completed .dashboard-month-gig-month {
    color: rgba(148, 163, 184, 0.82);
}

.dashboard-month-gig.is-completed .dashboard-month-gig-rail::after {
    background: #5f6670;
    box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.32), 0 0 14px rgba(148, 163, 184, 0.12);
}

.dashboard-month-gig.is-upcoming .dashboard-month-gig-day {
    color: var(--gs-primary);
    text-shadow: 0 0 16px rgba(var(--gs-primary-rgb), 0.18);
}

.dashboard-month-gig.is-today .dashboard-month-gig-today,
.dashboard-month-gig.is-today .dashboard-month-gig-day {
    color: var(--gs-link-cyan);
    text-shadow: 0 0 16px rgba(var(--gs-link-cyan-rgb), 0.2);
}

.dashboard-month-gig.is-today .dashboard-month-gig-rail::after {
    background: var(--gs-link-cyan);
    box-shadow:
        0 0 0 1px rgba(var(--gs-link-cyan-rgb), 0.65),
        0 0 18px rgba(var(--gs-link-cyan-rgb), 0.32);
}

.dashboard-month-gig-card {
    align-items: center;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.1), transparent 14rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.035), rgba(14, 15, 18, 0.96));
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-panel);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.035);
    display: grid;
    gap: 0.68rem;
    grid-template-columns: 3.2rem minmax(0, 1fr) auto;
    margin-right: 0.58rem;
    min-width: 0;
    padding: 0.5rem 0.66rem;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.dashboard-month-gig.is-completed .dashboard-month-gig-card {
    background:
        radial-gradient(circle at 100% 0%, rgba(148, 163, 184, 0.08), transparent 13rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.026), rgba(12, 13, 15, 0.96));
    border-color: rgba(148, 163, 184, 0.16);
}

.dashboard-month-gig.is-upcoming .dashboard-month-gig-card {
    border-color: rgba(var(--gs-primary-rgb), 0.2);
}

.dashboard-month-gig:hover .dashboard-month-gig-card,
.dashboard-month-gig:focus-visible .dashboard-month-gig-card {
    border-color: rgba(var(--gs-primary-rgb), 0.44);
    box-shadow: var(--gs-elevation-3d-hover);
    transform: translateY(-1px);
}

.dashboard-month-gig:focus-visible {
    outline: 0;
}

.dashboard-month-gig-media,
.dashboard-month-gig-media img,
.dashboard-month-gig-media-fallback {
    border-radius: 8px;
    height: 3.2rem;
    width: 3.2rem;
}

.dashboard-month-gig-media {
    background:
        radial-gradient(circle at 34% 24%, rgba(var(--gs-primary-rgb), 0.12), rgba(22, 22, 22, 0.96) 54%, #050505 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.72);
    box-shadow: 0 8px 14px rgba(0, 0, 0, 0.42), 0 0 0 4px rgba(var(--gs-primary-rgb), 0.09);
    display: inline-flex;
    overflow: hidden;
    padding: 0.12rem;
}

.dashboard-month-gig-media img {
    object-fit: contain;
}

.dashboard-month-gig-media-fallback {
    align-items: center;
    background: linear-gradient(-145deg, rgba(var(--gs-primary-rgb), 0.16), rgba(11, 12, 14, 0.96));
    border: 0;
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 1.22rem;
    justify-content: center;
}

.dashboard-month-gig-content {
    display: grid;
    align-items: center;
    column-gap: 0.72rem;
    grid-template-areas:
        "heading heading"
        "meta lineup";
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 0.5rem;
    min-width: 0;
}

.dashboard-month-gig-heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.44rem;
    grid-area: heading;
    min-width: 0;
}

.dashboard-month-gig-title {
    color: var(--gs-text);
    font-size: 0.94rem;
    font-weight: 900;
    line-height: 1.15;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-month-gig-meta {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    flex-wrap: nowrap;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 0.32rem 0.58rem;
    grid-area: meta;
    min-width: 0;
}

.dashboard-month-gig-meta span {
    align-items: center;
    display: inline-flex;
    gap: 0.28rem;
    min-width: 0;
    white-space: nowrap;
}

.dashboard-month-gig-meta span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
}

.dashboard-month-gig-meta i {
    color: var(--gs-text-muted);
}

.dashboard-month-gig-lineup {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.38rem;
    grid-area: lineup;
    justify-content: flex-end;
    min-width: 0;
}

.dashboard-lineup-avatars {
    align-items: center;
    display: inline-flex;
    gap: 0.28rem;
    min-height: 1.74rem;
}

.dashboard-lineup-avatar {
    align-items: center;
    background: #15161a;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.62);
    border-radius: 50%;
    box-shadow: 0 0 0 2px rgba(15, 16, 18, 0.95), 0 0 10px rgba(var(--gs-primary-rgb), 0.12);
    color: var(--gs-text);
    display: inline-flex;
    font-size: 0.7rem;
    font-weight: 900;
    height: 1.74rem;
    justify-content: center;
    overflow: hidden;
    width: 1.74rem;
}

.dashboard-lineup-avatar + .dashboard-lineup-avatar {
    margin-right: 0;
}

.dashboard-lineup-avatar-visual {
    align-items: center;
    border-radius: inherit;
    display: inline-flex;
    height: 100%;
    justify-content: center;
    overflow: hidden;
    width: 100%;
}

.dashboard-lineup-avatar-tooltip {
    overflow: visible;
    position: relative;
}

.dashboard-lineup-avatar-member-link {
    cursor: pointer;
}

.dashboard-lineup-avatar-member-link:focus-visible {
    outline: 2px solid rgba(var(--gs-primary-rgb), 0.9);
    outline-offset: 2px;
}

.dashboard-lineup-avatar img,
.dashboard-lineup-avatar-fallback {
    height: 100%;
    width: 100%;
}

.dashboard-lineup-avatar img {
    object-fit: cover;
}

.dashboard-lineup-avatar-fallback {
    align-items: center;
    background: linear-gradient(-145deg, rgba(var(--gs-primary-rgb), 0.2), rgba(21, 22, 26, 0.96));
    display: inline-flex;
    justify-content: center;
    text-transform: uppercase;
}

.dashboard-lineup-more {
    background: rgba(7, 8, 10, 0.86);
    border-color: rgba(var(--gs-primary-rgb), 0.48);
    color: var(--gs-primary);
}

.dashboard-lineup-avatar.next-gig-lineup-more {
    overflow: visible;
    position: relative;
    z-index: 180;
}

.lineup-member-tooltip {
    align-items: center;
    background: rgba(7, 8, 10, 0.97);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.58);
    border-radius: 0.75rem;
    bottom: calc(100% + 0.5rem);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.52);
    color: var(--gs-text);
    display: none;
    gap: 0.62rem;
    right: 50%;
    min-width: 13.4rem;
    padding: 0.64rem 0.72rem;
    pointer-events: none;
    position: absolute;
    text-align: right;
    transform: translateX(50%);
    z-index: 60;
}

.dashboard-lineup-avatar-tooltip > .lineup-member-tooltip {
    display: none;
}

.dashboard-lineup-avatar-tooltip > .dashboard-lineup-avatar-visual:hover + .lineup-member-tooltip,
.dashboard-lineup-avatar-tooltip:focus-visible > .lineup-member-tooltip {
    display: flex;
}

.lineup-member-tooltip::after {
    background: rgba(7, 8, 10, 0.97);
    border-bottom: 1px solid rgba(var(--gs-primary-rgb), 0.58);
    border-left: 1px solid rgba(var(--gs-primary-rgb), 0.58);
    bottom: -0.32rem;
    content: "";
    height: 0.58rem;
    right: 50%;
    position: absolute;
    transform: translateX(50%) rotate(-45deg);
    width: 0.58rem;
}

.lineup-member-tooltip-avatar {
    align-items: center;
    background: #15161a;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.68);
    border-radius: 50%;
    box-shadow: 0 0 0 2px rgba(15, 16, 18, 0.96);
    display: inline-flex;
    flex: 0 0 2.45rem;
    height: 2.45rem;
    justify-content: center;
    overflow: hidden;
    width: 2.45rem;
}

.lineup-member-tooltip-avatar img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.lineup-member-tooltip-body {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.lineup-member-tooltip-body strong {
    color: var(--gs-text);
    font-size: 0.88rem;
    font-weight: 900;
    line-height: 1.18;
}

.lineup-member-tooltip-body span {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.25;
}

.lineup-member-tooltip-body small {
    align-items: center;
    align-self: start;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.5);
    border-radius: 999px;
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 0.62rem;
    font-weight: 900;
    justify-self: start;
    line-height: 1;
    margin-top: 0.15rem;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    padding: 0.18rem 0.34rem;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    width: max-content;
}

.dashboard-lineup-empty {
    align-items: center;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.35rem;
}

.dashboard-month-gig-side {
    align-items: flex-end;
    align-self: center;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    justify-items: end;
    min-width: 7rem;
}

.dashboard-month-gig-side .badge {
    font-size: 0.62rem;
    line-height: 1;
    min-height: 1.2rem;
    padding: 0.18rem 0.42rem 0.14rem;
}

.dashboard-month-gig-fee {
    color: var(--gs-money);
    font-size: 0.98rem;
    font-weight: 800;
    text-shadow: 0 0 14px rgba(var(--gs-money-rgb), 0.16);
    white-space: nowrap;
}

/* Login Page */
.auth-container {
    max-width: 400px;
    margin: 3rem auto;
}

.auth-card {
    background-color: var(--gs-bg-card);
    border-radius: var(--gs-radius-panel);
    padding: 2.5rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background:
        radial-gradient(circle at 85% 0%, rgba(var(--gs-primary-rgb), 0.06), transparent 11rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.035) 0%, #101114 36%, #08090b 100%);
    box-shadow: var(--gs-elevation-3d);
}

@media (max-width: 767.98px) {
    body.auth-login-page {
        min-height: 100dvh;
        overflow-y: auto;
        padding-bottom: 0;
    }

    body.auth-login-page > .auth-navbar,
    body.auth-login-page > .footer {
        display: none !important;
    }

    body.auth-login-page > main[data-app-main-content] {
        display: flex;
        min-height: 100dvh;
        padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px)) !important;
        padding-top: max(1.5rem, env(safe-area-inset-top, 0px)) !important;
    }

    body.auth-login-page .auth-container {
        margin: auto;
        width: 100%;
    }
}

.auth-logo {
    text-align: center;
    margin-bottom: 2rem;
}

.auth-alerts {
    margin-bottom: 1.25rem;
}

.auth-alerts .alert {
    border-radius: 0.9rem;
    font-size: 0.95rem;
    margin-bottom: 0.75rem;
}

.flash-layer {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    right: auto;
    max-width: min(24rem, calc(100vw - 2rem));
    position: fixed;
    left: calc(1.5rem + env(safe-area-inset-left, 0px));
    top: calc(var(--app-header-height, 4.5rem) + 1rem + env(safe-area-inset-top, 0px));
    transform: none;
    width: max-content;
    z-index: 1100;
}

.app-topbar .flash-layer {
    align-items: stretch;
    inset: auto;
    max-width: min(26rem, 100%);
    position: static;
    transform: none;
    width: fit-content;
}

.app-topbar .flash-toast {
    min-width: 0;
    width: fit-content;
}

@media (max-width: 1499.98px) {
    .app-topbar {
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .app-topbar-flash-slot:not(.is-empty) {
        flex: 1 0 100%;
        order: -1;
        padding: 0 0 0.375rem;
    }
}

.flash-layer.auth-alerts {
    align-items: stretch;
    inset: auto;
    margin: 0 0 1.25rem;
    max-width: none;
    position: static;
    transform: none;
    width: 100%;
}

.flash-layer.auth-alerts .flash-toast {
    width: 100%;
}

.flash-toast {
    align-items: center;
    border-radius: 0.75rem;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.45);
    display: flex;
    gap: 0.625rem;
    justify-content: space-between;
    margin: 0;
    max-width: 100%;
    min-width: min(14rem, calc(100vw - 2rem));
    min-height: 2.75rem;
    padding-block: 0;
    padding-right: 0.875rem;
    padding-left: 0.5rem;
    width: fit-content;
}

.flash-toast-message {
    min-width: 0;
    overflow-wrap: anywhere;
    padding-block: 0.5rem;
}

.flash-toast.alert-dismissible .btn-close {
    align-self: center;
    box-sizing: border-box;
    flex: 0 0 2rem;
    height: 2rem;
    margin: 0;
    padding: 0.5rem;
    position: static;
    width: 2rem;
}

@media (max-width: 575.98px) {
    .flash-layer {
        align-items: flex-end;
        bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
        right: auto;
        max-width: calc(100vw - 1.5rem);
        left: 0.75rem;
        top: auto;
        transform: none;
        width: auto;
    }

    .flash-toast {
        font-size: 0.78rem;
        gap: 0.25rem;
        line-height: 1.25;
        max-width: min(18rem, calc(100vw - 1.5rem));
        min-width: 0;
        padding: 0 0.65rem 0 0.25rem;
        width: fit-content;
    }

    .flash-toast.alert-dismissible .btn-close {
        flex-basis: 1.5rem;
        height: 1.5rem;
        padding: 0.35rem;
        width: 1.5rem;
    }
}

.auth-logo i {
    font-size: 3rem;
    color: var(--gs-primary);
}

.auth-logo h1 {
    font-size: 2rem;
    margin-top: 0.5rem;
    font-weight: 700;
    line-height: 1.05;
}

.profile-avatar-block {
    align-items: center;
    display: flex;
    gap: 1.25rem;
}

.profile-avatar-preview,
.profile-avatar-placeholder {
    border-radius: 50%;
    height: 6.5rem;
    object-fit: cover;
    width: 6.5rem;
}

.profile-avatar-preview {
    align-items: center;
    background-color: rgba(var(--gs-primary-rgb), 0.12);
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100%;
    border: 2px solid rgba(var(--gs-primary-rgb), 0.45);
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 3rem;
    justify-content: center;
    overflow: hidden;
}

.profile-member-section {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 1.25rem;
}
.profile-avatar-placeholder {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 3rem;
    justify-content: center;
}

.media-crop-block {
    align-items: center;
    display: flex;
    gap: 1.25rem;
}

.media-crop-preview {
    align-items: center;
    background-color: rgba(var(--gs-primary-rgb), 0.12);
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100%;
    border: 2px solid rgba(var(--gs-primary-rgb), 0.45);
    border-radius: 50%;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 3rem;
    height: 6.5rem;
    justify-content: center;
    overflow: hidden;
    width: 6.5rem;
}

.member-photo-dual-preview {
    align-self: center;
    aspect-ratio: 4 / 5;
    flex: 0 0 auto;
    margin: 0.25rem 0 0.25rem 0.9rem;
    position: relative;
    width: clamp(9.5rem, 18vw, 11rem);
}

.member-photo-card-preview,
.member-photo-avatar-preview {
    align-items: center;
    background-color: rgba(10, 11, 12, 0.9);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: var(--gs-text-muted);
    display: flex;
    justify-content: center;
    overflow: hidden;
}

.member-photo-card-preview {
    border: 1px solid rgba(var(--gs-primary-rgb), 0.72);
    border-radius: var(--gs-radius-control);
    box-shadow:
        0 0 0 4px rgba(var(--gs-primary-rgb), 0.08),
        0 0.8rem 1.5rem rgba(0, 0, 0, 0.42);
    font-size: 3rem;
    inset: 0;
    position: absolute;
}

.member-photo-card-preview::after {
    border-radius: inherit;
    box-shadow: inset 0 -3rem 4rem rgba(0, 0, 0, 0.34);
    content: '';
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.member-photo-avatar-preview {
    border: 2px solid var(--gs-primary);
    border-radius: 50%;
    bottom: 0.65rem;
    box-shadow:
        0 0 0 4px rgba(10, 11, 12, 0.9),
        0 0 1rem rgba(var(--gs-primary-rgb), 0.28),
        0 0.65rem 1.1rem rgba(0, 0, 0, 0.55);
    font-size: 2rem;
    height: 5rem;
    position: absolute;
    left: 0.65rem;
    width: 5rem;
    z-index: 2;
}

.member-photo-preview-label,
.member-photo-avatar-label {
    background: rgba(8, 9, 10, 0.86);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    color: var(--gs-primary);
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1;
    padding: 0.3rem 0.4rem;
    position: absolute;
    text-transform: uppercase;
    z-index: 3;
}

.member-photo-preview-label {
    border-radius: 4px;
    left: 0.45rem;
    top: 0.45rem;
}

.member-photo-avatar-label {
    border-radius: 999px;
    bottom: 0.35rem;
    right: 50%;
    transform: translateX(50%);
}

.member-photo-card-preview > i,
.member-photo-avatar-preview > i {
    position: relative;
    z-index: 1;
}

.venue-logo-crop-preview {
    background-color: rgba(10, 11, 12, 0.74);
    background-size: contain;
    border: 2px solid rgba(var(--gs-primary-rgb), 0.72);
    border-radius: 14px;
    box-shadow:
        0 0 0 5px rgba(var(--gs-primary-rgb), 0.1),
        0 0.75rem 1.45rem rgba(0, 0, 0, 0.48);
    padding: 0.22rem;
}

.media-crop-upload-area {
    min-width: 0;
    width: min(28rem, 100%);
}

.media-crop-file-upload {
    width: 100%;
}

.media-remove-button {
    margin-top: 0.65rem;
}

.profile-file-upload {
    width: min(28rem, 100%);
}

.avatar-crop-controls {
    display: grid;
    gap: 0.75rem;
    max-width: 30rem;
}

.avatar-crop-row {
    align-items: center;
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 7rem minmax(0, 1fr);
}

.avatar-crop-row label {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0;
}

.avatar-crop-row .form-range {
    margin: 0;
}

.avatar-crop-row .form-range::-webkit-slider-thumb {
    background: var(--gs-primary);
}

.avatar-crop-row .form-range::-moz-range-thumb {
    background: var(--gs-primary);
    border: 0;
}

/* Unified Component System */
.app-sidebar-toggle,
.app-nav-link,
.nav-link,
.sidebar-band-switcher,
.card,
.card-header,
.stat-card,
.entity-card,
.auth-card,
.list-controls,
.gig-members-picker,
.gig-member-option,
.chart-container,
.next-gig-card,
.next-gig-date,
.next-gig-meta-item,
.dashboard-period-toolbar,
.dashboard-period-copy .form-label,
.dashboard-kpi-card,
.dashboard-month-gig-card,
.member-upcoming-item,
.member-upcoming-date,
.member-stat-tile,
.member-top-venue,
.settings-toggle,
.event-type-step,
.event-type-option span,
.payout-summary-count,
.pagination .page-link,
.flash-toast,
.auth-alerts .alert,
.alert,
.modal-content,
.dropdown-menu,
.list-group-item,
.quick-contact-form,
.empty-state {
    border-radius: var(--gs-radius-control);
}

.card,
.stat-card,
.entity-card,
.auth-card,
.list-controls,
.gig-members-picker,
.chart-container,
.next-gig-card,
.dashboard-month-gig-card,
.member-upcoming-item,
.member-stat-tile,
.member-top-venue,
.settings-toggle,
.event-type-step,
.quick-contact-form,
.modal-content,
.list-group-item {
    background: var(--gs-surface-bg);
    border: 1px solid var(--gs-surface-border);
    box-shadow: var(--gs-elevation-3d);
}

.card-header,
.modal-header,
.modal-footer {
    background: var(--gs-surface-bg-quiet);
    border-color: rgba(255, 255, 255, 0.08);
}

.venue-rebrand-settings-card.card {
    background:
        radial-gradient(circle at 92% 0%, rgba(var(--gs-primary-rgb), 0.075), transparent 13rem),
        var(--gs-surface-bg);
    border-color: var(--gs-surface-border);
    box-shadow: var(--gs-elevation-3d);
}

.venue-rebrand-settings-body {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.venue-rebrand-settings-body .btn {
    flex: 0 0 auto;
}

@media (max-width: 575.98px) {
    .venue-rebrand-settings-body {
        align-items: stretch;
        flex-direction: column;
    }

    .venue-rebrand-settings-body .btn {
        width: 100%;
    }
}

.danger-zone-card.card {
    background:
        radial-gradient(circle at 92% 0%, rgba(248, 113, 113, 0.085), transparent 12rem),
        var(--gs-surface-bg);
    border-color: rgba(248, 113, 113, 0.46);
    box-shadow: var(--gs-elevation-3d);
}

.danger-zone-header.card-header {
    background:
        linear-gradient(-180deg, rgba(248, 113, 113, 0.16), rgba(185, 28, 28, 0.07)),
        var(--gs-surface-bg-quiet);
    border-bottom-color: rgba(248, 113, 113, 0.22);
}

.danger-zone-title {
    align-items: center;
    color: #fecaca;
    display: flex;
    font-size: 0.98rem;
    font-weight: 800;
    gap: 0.5rem;
}

.danger-zone-title .bi {
    color: #f87171;
    font-size: 1rem;
}

.danger-zone-action {
    width: auto;
}

.btn.btn-icon-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 2.75rem;
    min-inline-size: 2.75rem;
    block-size: 2.75rem;
    min-block-size: 2.75rem;
    flex: 0 0 2.75rem;
    padding: 0;
}

.app-confirm-modal .modal-dialog {
    max-width: min(31rem, calc(100vw - 2rem));
}

.app-confirm-modal.show {
    display: block;
}

.app-confirm-modal-backdrop {
    background: rgba(0, 0, 0, 0.74);
}

.app-confirm-modal-content {
    background:
        radial-gradient(circle at 88% 0%, rgba(248, 113, 113, 0.16), transparent 13rem),
        radial-gradient(circle at 18% 100%, rgba(var(--gs-primary-rgb), 0.08), transparent 14rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.05), #111216 42%, #08090b 100%);
    background-color: #111216;
    border-color: rgba(248, 113, 113, 0.58);
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.62),
        0 18px 46px rgba(185, 28, 28, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    overflow: hidden;
}

.app-confirm-modal-header {
    align-items: flex-start;
    background:
        linear-gradient(-180deg, rgba(185, 28, 28, 0.2), rgba(185, 28, 28, 0.06)),
        var(--gs-surface-bg-quiet);
    border-bottom-color: rgba(248, 113, 113, 0.22);
    padding: 1rem 1.1rem;
}

.app-confirm-modal-title-wrap {
    align-items: center;
    display: flex;
    gap: 0.8rem;
    min-width: 0;
}

.app-confirm-modal-icon {
    align-items: center;
    background: rgba(185, 28, 28, 0.18);
    border: 1px solid rgba(248, 113, 113, 0.72);
    border-radius: var(--gs-radius-control);
    box-shadow: 0 0 22px rgba(248, 113, 113, 0.14);
    color: #fecaca;
    display: inline-flex;
    flex: 0 0 2.35rem;
    height: 2.35rem;
    justify-content: center;
    width: 2.35rem;
}

.app-confirm-modal-title {
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 900;
    line-height: 1.15;
}

.app-confirm-modal-kicker {
    color: #fca5a5;
    font-size: 0.78rem;
    font-weight: 700;
    margin-top: 0.2rem;
}

.app-confirm-modal-close {
    filter: invert(1) grayscale(1);
    opacity: 0.82;
}

.app-confirm-modal-close:hover,
.app-confirm-modal-close:focus-visible {
    opacity: 1;
}

.app-confirm-modal-body {
    padding: 1.05rem 1.1rem 0.8rem;
}

.app-confirm-modal-message {
    color: var(--gs-text);
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.45;
}

.app-confirm-modal-footer {
    border-top-color: rgba(255, 255, 255, 0.08);
    gap: 0.65rem;
    padding: 0.9rem 1.1rem 1.05rem;
}

.app-confirm-modal-footer .btn {
    min-width: 8.5rem;
}

.form-control,
.form-select,
.input-group-text,
.filter-multiselect-toggle,
.searchable-select-toggle,
.tag-input,
.status-badge.form-select {
    background-color: var(--gs-control-bg);
    border-color: var(--gs-control-border);
    border-radius: var(--gs-radius-control);
    box-shadow: var(--gs-control-shadow);
    color: var(--gs-text);
    min-height: 2.45rem;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}

.form-control,
.form-select {
    padding: 0.58rem 0.78rem;
}

.form-select {
    background-position: left 0.9rem center;
    padding-left: 2.75rem;
}

.form-select option {
    background-color: var(--gs-control-bg);
    color: var(--gs-text);
    padding: 0.58rem 0.78rem;
}

textarea.form-control {
    min-height: 7rem;
}

.form-control:focus,
.form-select:focus,
.filter-multiselect-toggle:hover,
.filter-multiselect.open .filter-multiselect-toggle,
.filter-multiselect-toggle:focus-visible,
.searchable-select.is-open .searchable-select-toggle,
.searchable-select-toggle:hover,
.searchable-select-toggle:focus-visible,
.tag-input:focus-within {
    background-color: var(--gs-control-bg);
    border-color: var(--gs-control-border-active);
    box-shadow: 0 0 0 0.18rem rgba(var(--gs-primary-rgb), 0.14), var(--gs-control-shadow);
    color: var(--gs-text);
    outline: 0;
}

.input-group > .input-group-text:first-child {
    border-radius: 0 var(--gs-radius-control) var(--gs-radius-control) 0;
}

.input-group > .form-control:not(:first-child),
.input-group > .form-select:not(:first-child),
.input-group > .btn:not(:first-child) {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
}

.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child),
.input-group > .btn:not(:last-child) {
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
}

.input-group .password-toggle {
    border-radius: var(--gs-radius-control) 0 0 var(--gs-radius-control);
}

.dropdown-menu,
.filter-multiselect-menu,
.searchable-select-menu,
.tag-suggestions {
    background:
        radial-gradient(circle at 92% 0%, rgba(var(--gs-primary-rgb), 0.06), transparent 10rem),
        linear-gradient(-145deg, #101114 0%, #08090b 100%);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: var(--gs-radius-control);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.46), inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.app-topbar .dropdown-menu {
    background: var(--gs-menu-bg);
}

.dropdown-item,
.filter-multiselect-option,
.searchable-select-option,
.tag-suggestion {
    border-radius: 4px;
}

.dropdown-item:hover,
.dropdown-item:focus,
.filter-multiselect-option:hover,
.searchable-select-option:hover,
.searchable-select-option:focus-visible,
.searchable-select-option.is-selected,
.tag-suggestion:hover,
.tag-suggestion:focus-visible,
.tag-suggestion.is-active {
    background-color: rgba(var(--gs-primary-rgb), 0.12);
    color: var(--gs-primary);
}

.tag-suggestions .tag-suggestion:hover,
.tag-suggestions .tag-suggestion:focus-visible,
.tag-suggestions .tag-suggestion.is-active {
    background: linear-gradient(-180deg, rgba(var(--app-badge-rgb), 0.22), rgba(var(--app-badge-rgb), 0.1));
    border-color: rgba(var(--app-badge-rgb), 0.58);
    color: var(--app-badge-color);
}

.tag-suggestion:has(> .event-label-chip) {
    background: transparent;
    border-color: transparent;
    min-height: 44px;
}

.table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: rgba(var(--gs-primary-rgb), 0.055);
    border-color: rgba(255, 255, 255, 0.08);
}

.table thead th {
    background: rgba(255, 255, 255, 0.035);
    border-bottom: 1px solid rgba(var(--gs-primary-rgb), 0.24);
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.8rem 1rem;
}

.table td {
    border-color: rgba(255, 255, 255, 0.08);
    color: var(--gs-text);
    padding: 0.82rem 1rem;
}

.gig-table-section-row td {
    background: rgba(var(--gs-primary-rgb), 0.14);
    border-bottom-color: rgba(var(--gs-primary-rgb), 0.28);
    border-top-color: rgba(var(--gs-primary-rgb), 0.36);
}

.pagination .page-link,
.payout-summary-count,
.stat-dynamics,
.stat-trend {
    border-radius: var(--gs-radius-control);
}

.pagination .page-link {
    background-color: rgba(0, 0, 0, 0.14);
    background-image: var(--gs-surface-bg-quiet);
    border-color: rgba(var(--gs-primary-rgb), 0.46);
    color: var(--gs-primary);
}

.pagination .page-item.active .page-link {
    background-color: var(--gs-primary);
    background-image: var(--gs-action-bg);
    border-color: rgba(var(--gs-primary-rgb), 0.95);
    color: #050505;
}

.event-type-option span,
.payout-summary-count {
    background-color: rgba(0, 0, 0, 0.14);
    background-image: var(--gs-surface-bg-quiet);
    border-color: rgba(var(--gs-primary-rgb), 0.46);
    box-shadow: var(--gs-control-shadow);
}

.event-type-option input:checked + span {
    background-color: var(--gs-primary);
    background-image: var(--gs-action-bg);
    border-color: rgba(var(--gs-primary-rgb), 0.95);
    color: #050505;
}

.next-gig-date,
.member-upcoming-date,
.next-gig-meta-item {
    background-color: rgba(0, 0, 0, 0.14);
    background-image: var(--gs-surface-bg-quiet);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.46);
    box-shadow: var(--gs-control-shadow);
}

.alert,
.flash-toast {
    background:
        linear-gradient(-180deg, rgba(var(--gs-primary-rgb), 0.1), rgba(7, 8, 10, 0.86));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.36);
    color: var(--gs-text);
}

.alert-success {
    --bs-alert-color: #b6fff5;
    --bs-alert-border-color: rgba(45, 212, 191, 0.46);
    --bs-alert-bg: rgba(20, 184, 166, 0.12);
}

.alert-danger {
    --bs-alert-color: #fecaca;
    --bs-alert-border-color: rgba(248, 113, 113, 0.46);
    --bs-alert-bg: rgba(185, 28, 28, 0.12);
}

.flash-toast.alert-danger {
    background:
        linear-gradient(-135deg, rgba(127, 29, 29, 0.98), rgba(185, 28, 28, 0.95));
    border-color: rgba(248, 113, 113, 0.72);
    box-shadow: 0 18px 42px rgba(127, 29, 29, 0.36), 0 12px 36px rgba(0, 0, 0, 0.44);
    color: #fff1f2;
}

.flash-toast.alert-danger .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
    opacity: 0.82;
}

.empty-state {
    background: rgba(255, 255, 255, 0.018);
    border: 1px dashed rgba(var(--gs-primary-rgb), 0.24);
}

/* Framed product surfaces */
.card,
.stat-card,
.entity-card,
.auth-card,
.gig-members-picker,
.gig-members-panel,
.dashboard-kpi-card,
.dashboard-analytics-card,
.dashboard-month-gig-card,
.finance-debts-card,
.finance-debt-hero,
.finance-section-card,
.finance-debt-row,
.finance-payment-group,
.lineup-message-panel,
.message-target-panel,
.quick-contact-form,
.next-event-panel.card,
.member-upcoming-item,
.member-stat-tile,
.member-top-venue,
.modal-content,
.empty-state {
    border: 1px solid var(--gs-surface-border);
}

.entity-card,
.stat-card,
.dashboard-kpi-card,
.dashboard-analytics-card,
.dashboard-month-gig-card,
.finance-debt-row,
.finance-payment-group,
.member-upcoming-item,
.member-stat-tile,
.member-top-venue {
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.entity-card:hover,
.entity-card:focus-within,
.stat-card:hover,
.stat-card:focus-within,
.dashboard-kpi-card:hover,
.dashboard-kpi-card:focus-within,
.dashboard-analytics-card:hover,
.dashboard-analytics-card:focus-within,
.dashboard-month-gig-card:hover,
.dashboard-month-gig-card:focus-within,
.finance-debt-row:hover,
.finance-debt-row:focus-within,
.finance-payment-group:hover,
.finance-payment-group:focus-within,
.member-upcoming-item:hover,
.member-upcoming-item:focus-visible,
.member-stat-tile:hover,
.member-stat-tile:focus-visible,
.member-top-venue:hover,
.member-top-venue:focus-visible {
    border-color: var(--gs-surface-border-hover);
}

.chart-container {
    background:
        radial-gradient(circle at 86% 8%, rgba(var(--gs-primary-rgb), 0.16), transparent 13rem),
        radial-gradient(circle at 14% 90%, rgba(var(--gs-concert-line-rgb), 0.12), transparent 14rem),
        radial-gradient(circle at 100% 100%, rgba(var(--gs-primary-rgb), 0.05), transparent 14rem),
        linear-gradient(-145deg, #12151a 0%, #090b0e 58%, #07080a 100%);
    box-shadow:
        var(--gs-surface-edge-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 14px 30px rgba(0, 0, 0, 0.34),
        -8px 14px 28px rgba(var(--gs-primary-rgb), 0.055);
}

.dashboard-chart-card {
    overflow: hidden;
}

.dashboard-chart-card .card-body {
    background:
        radial-gradient(circle at 88% 10%, rgba(var(--gs-primary-rgb), 0.14), transparent 13rem),
        radial-gradient(circle at 14% 88%, rgba(var(--gs-concert-line-rgb), 0.12), transparent 14rem),
        linear-gradient(-145deg, #12151a 0%, #090b0e 58%, #07080a 100%);
    padding: 0;
}

.dashboard-chart-card .chart-container {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    height: 320px;
    padding: 1.45rem 1.45rem 1.4rem;
}

.dashboard-chart-card .chart-container::before {
    border-radius: 0;
}

.fc-theme-standard .fc-scrollgrid {
    border-color: rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-control);
    overflow: hidden;
}

.fc-theme-standard td,
.fc-theme-standard th {
    border-color: rgba(255, 255, 255, 0.08);
}

.fc .fc-daygrid-event,
.fc .fc-event {
    border-radius: var(--gs-radius-control);
    font-weight: 800;
}

@media (max-width: 1499.98px) and (min-width: 769px) {
    .list-query-panel {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 0.75rem;
    }

    .list-query-panel .list-query-search {
        grid-column: 1 / -1;
        min-width: min(100%, 36rem);
    }

    .list-query-panel > .list-query-filter > .filter-panel-summary,
    .list-query-panel > .list-query-filter > .filter-panel-body {
        grid-column: 1 / -1;
    }

    .list-query-panel > .list-query-filter > .filter-panel-summary {
        justify-self: end;
        width: min(100%, var(--list-query-filter-column-width));
    }

    .list-query-panel > .list-query-filter > .filter-panel-body {
        max-width: none;
        width: 100%;
    }

    .list-query-panel .list-search-panel-with-sort {
        grid-template-areas:
            "search search"
            "sort actions";
        grid-template-columns: minmax(0, 1fr) auto;
        row-gap: 0.75rem;
    }
}

/* The page already reserves its scrollbar gutter; avoid compensating twice. */
@supports (scrollbar-gutter: stable) {
    @media (min-width: 768px) and (max-width: 1199.98px) {
        body:has(.app-sidebar-panel:is(.show, .showing, .hiding)) {
            padding-inline: 0 !important;
        }
    }
}

/* Responsive Adjustments */
@media (prefers-reduced-motion: reduce) {
    .app-sidebar-panel {
        --bs-offcanvas-transition: none;
    }
}

/* Desktop navigation keeps its destinations available as a compact icon rail. */
.app-sidebar-collapse-toggle {
    display: none;
}

@media (min-width: 1200px) {
    .app-sidebar {
        --app-sidebar-body-padding: 1rem;
        min-width: 0;
        height: 100dvh;
    }

    .app-sidebar-brand-row {
        flex: 0 0 var(--app-header-height);
        position: relative;
    }

    /* A compact 32px surface inside the existing 44px pointer target. */
    .app-sidebar-collapse-toggle {
        background: transparent;
        border: 0;
        box-shadow: none;
        display: inline-flex;
        font-size: 0.75rem;
        padding: 0;
        position: absolute;
        left: -1.375rem;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
    }

    .app-sidebar-collapse-toggle::before {
        background: #101115;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 0.4rem;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
        content: "";
        inset: 0.375rem;
        position: absolute;
        transition: border-color 0.16s ease, background-color 0.16s ease;
    }

    .app-sidebar-collapse-toggle:hover::before,
    .app-sidebar-collapse-toggle:focus-visible::before {
        background: var(--gs-menu-bg);
        border-color: rgba(var(--gs-primary-rgb), 0.58);
    }

    .app-sidebar-collapse-toggle:focus-visible { outline: none; }
    .app-sidebar-collapse-toggle:focus-visible::before {
        outline: 2px solid var(--gs-primary);
        outline-offset: 2px;
    }

    .app-sidebar-collapse-toggle i {
        position: relative;
        transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }
    [dir="rtl"] .app-sidebar-collapse-toggle i { transform: rotate(180deg); }

    .app-sidebar-brand-row > .app-sidebar-brand .brand-lockup-copy {
        max-width: 10rem;
        overflow: hidden;
    }

    .app-sidebar .app-nav-link {
        overflow: hidden;
    }

    .app-sidebar .app-nav-link > span {
        max-width: 12rem;
        overflow: hidden;
        white-space: nowrap;
    }

    .app-sidebar .app-nav-active-pill { width: 100% !important; }

    .app-sidebar .sidebar-band-switcher { overflow: hidden; }
    .app-sidebar .sidebar-band-copy { max-width: 12rem; overflow: hidden; }
    .app-sidebar .sidebar-band-switcher::after { transition: opacity 0.14s ease; }

    .app-sidebar .band-switcher-menu {
        min-width: 15rem;
        max-width: min(20rem, calc(100vw - 2rem));
    }

    .app-sidebar .band-switcher-menu .dropdown-item { white-space: normal; }

    .app-sidebar-collapsed .app-shell { grid-template-columns: 80px minmax(0, 1fr); }
    .app-sidebar-collapsed .app-sidebar-brand-row { padding-inline: 1.7rem; }
    .app-sidebar-collapsed .app-sidebar-brand-row .brand-lockup { gap: 0; }
    .app-sidebar-collapsed .app-sidebar-brand-row .brand-lockup-copy { max-width: 0; opacity: 0; }
    .app-sidebar-collapsed .app-sidebar-collapse-toggle i { transform: rotate(-180deg); }
    [dir="rtl"].app-sidebar-collapsed .app-sidebar-collapse-toggle i { transform: rotate(0); }
    /* Keep the leading edge anchored while labels fade, avoiding a centering jump. */
    .app-sidebar-collapsed .app-sidebar .app-nav-link { gap: 0; padding-inline: calc((80px - 1px - 2 * var(--app-sidebar-body-padding) - 1.25rem) / 2); }
    .app-sidebar-collapsed .app-sidebar .app-nav-link > span { max-width: 0; opacity: 0; }
    .app-sidebar-collapsed .sidebar-band-switcher { gap: 0; padding-inline: calc((80px - 3px - 2 * var(--app-sidebar-body-padding) - 2rem) / 2); }
    .app-sidebar-collapsed .sidebar-band-copy { max-width: 0; opacity: 0; }
    .app-sidebar-collapsed .sidebar-band-switcher::after { opacity: 0; }

    .app-sidebar-resizing .app-shell {
        transition: grid-template-columns 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .app-sidebar-resizing .app-sidebar-brand-row,
    .app-sidebar-resizing .app-sidebar-brand-row .brand-lockup,
    .app-sidebar-resizing .sidebar-band-switcher,
    .app-sidebar-resizing .app-sidebar .app-nav-link {
        transition: padding 0.28s cubic-bezier(0.4, 0, 0.2, 1), gap 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .app-sidebar-resizing .app-sidebar-brand-row .brand-lockup-copy,
    .app-sidebar-resizing .app-sidebar .app-nav-link > span,
    .app-sidebar-resizing .sidebar-band-copy {
        transition: opacity 0.14s ease, max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .app-sidebar-resizing:not(.app-sidebar-collapsed) .app-sidebar-brand-row .brand-lockup-copy,
    .app-sidebar-resizing:not(.app-sidebar-collapsed) .app-sidebar .app-nav-link > span,
    .app-sidebar-resizing:not(.app-sidebar-collapsed) .sidebar-band-copy {
        transition-delay: 0.06s, 0s;
    }
}

@media (min-width: 1200px) and (max-height: 560px) {
    .app-sidebar { --app-sidebar-body-padding: 0.75rem; }

    .app-sidebar-panel > .app-sidebar-body {
        overflow-y: auto;
        overscroll-behavior: contain;
        padding-inline: 0.75rem;
        scrollbar-width: thin;
    }

    .app-sidebar-nav,
    .app-sidebar-footer { flex-shrink: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .app-sidebar-collapse-toggle i,
    .app-sidebar-collapse-toggle::before,
    .app-sidebar-resizing .app-shell,
    .app-sidebar-resizing .app-sidebar * { transition: none !important; }
}

@media (min-width: 1200px) {
    .app-sidebar-panel {
        display: flex;
    }
}

@media (max-width: 1199.98px) {
    :root {
        --app-header-height: 4.35rem;
    }

    .app-shell {
        display: block;
    }

    .app-sidebar {
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        border-left: 0;
        height: auto;
    }

    .app-sidebar-brand-row {
        padding: 0.75rem 1rem;
    }

    .app-sidebar-panel {
        --bs-offcanvas-width: 20rem;
        --bs-offcanvas-bg: var(--gs-menu-bg);
        --bs-offcanvas-color: var(--gs-text);
        --bs-offcanvas-border-color: rgba(255, 255, 255, 0.12);
        max-width: calc(100vw - 3rem);
        height: 100dvh;
    }

    .app-sidebar-panel.show,
    .app-sidebar-panel.showing {
        box-shadow: -1rem 0 3rem rgba(0, 0, 0, 0.3);
    }

    .app-sidebar-drawer-header {
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        flex: 0 0 auto;
        gap: 1rem;
        justify-content: space-between;
        min-height: var(--app-header-height);
        padding: 0.75rem 1rem;
    }

    .app-sidebar-close {
        font-size: 1.15rem;
    }

    .app-sidebar-panel > .app-sidebar-body {
        padding: 0.75rem 1rem max(1rem, env(safe-area-inset-bottom));
        overscroll-behavior: contain;
    }

    .app-sidebar-panel .app-sidebar-nav {
        flex: 0 0 auto;
    }

    .app-sidebar-footer {
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        flex: 0 0 auto;
        margin-top: auto;
        padding-top: 0.9rem;
    }

    .app-sidebar-panel .band-switcher-menu {
        min-width: 0;
        width: 100%;
        max-height: min(24rem, calc(100dvh - 10rem));
        overflow-y: auto;
    }

    .app-sidebar-panel .band-switcher-menu .dropdown-item {
        min-height: 2.75rem;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .app-main-shell {
        min-height: calc(100vh - 4.35rem);
    }

    .app-topbar {
        padding: 0 1rem;
        top: calc(var(--app-header-height) + 1px);
    }

    .app-topbar-title h1 {
        font-size: 1.45rem;
    }

    .app-main-content {
        padding-right: 1rem !important;
        padding-left: 1rem !important;
    }

    .gig-filter-form {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gig-filter-actions {
        grid-column: auto;
    }

    .contacts-controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contacts-controls .list-control-actions {
        grid-column: 1 / -1;
    }

    .filter-panel-body .venue-map-controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .filter-panel-body .venue-map-controls .gig-custom-dates,
    .filter-panel-body .venue-map-controls .list-control-actions {
        grid-column: 1 / -1;
    }

    .venue-map-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .venue-map-list {
        border-right: 0;
        max-height: none;
        padding-right: 0;
    }

    .dashboard-month-gig-card {
        grid-template-columns: 4.2rem minmax(0, 1fr);
    }

    .dashboard-month-gig-side {
        align-items: center;
        display: flex;
        grid-column: 2;
        justify-content: space-between;
        justify-items: stretch;
        min-width: 0;
    }
}

@media (max-width: 768px) {
    .app-main-content {
        padding-right: 0.75rem !important;
        padding-left: 0.75rem !important;
    }

    .app-topbar {
        padding: 0 0.75rem;
    }

    .app-topbar-title h1 {
        font-size: 1.25rem;
        gap: 0.48rem;
    }

    .app-topbar-title h1 i {
        font-size: 1.18rem;
    }

    .app-topbar-actions {
        --app-topbar-action-gap: 0.55rem;
        gap: var(--app-topbar-action-gap);
    }

    .entity-page-actions {
        justify-content: stretch;
        width: 100%;
    }

    .entity-page-actions > .btn {
        flex: 1 1 auto;
    }

    .view-toggle {
        display: grid;
        flex: 1 1 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .view-toggle-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .view-toggle-option {
        justify-content: center;
    }

    .venue-map-header,
    .venue-map-header-actions,
    .venue-map-stats {
        align-items: stretch;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        justify-content: stretch;
    }

    .venue-map-header > div:first-child {
        grid-row: auto;
    }

    .venue-map-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .venue-map-stats span {
        justify-content: space-between;
        min-height: 2rem;
        padding: 0.4rem 0.52rem;
        white-space: normal;
    }

    .venue-map-return-link {
        justify-content: center;
        width: 100%;
    }

    .venue-map-canvas {
        aspect-ratio: 4 / 5;
        min-height: 23rem;
    }

    .venue-detail-map-canvas {
        aspect-ratio: 16 / 10;
        min-height: 12rem;
    }

    .venue-map-tooltip {
        right: auto;
        min-width: min(14rem, calc(100vw - 4rem));
        left: -0.5rem;
        transform: translate(0, 0.35rem);
    }

    .venue-map-marker:hover .venue-map-tooltip,
    .venue-map-marker:focus-visible .venue-map-tooltip {
        transform: translate(0, 0);
    }

    .venue-map-list-item {
        grid-template-columns: minmax(0, 1fr);
    }

    .venue-map-list-meta {
        align-items: center;
        display: flex;
        gap: 0.35rem;
        grid-column: 1;
        justify-content: flex-start;
        text-align: right;
    }

    .entity-list-row {
        align-items: start;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .entity-list-stats {
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem 0.85rem;
        grid-column: 1 / -1;
        justify-items: start;
        text-align: right;
        white-space: normal;
    }

    .entity-list-actions {
        grid-column: 1 / -1;
        justify-content: stretch;
    }

    .entity-list-actions .btn,
    .entity-list-actions form {
        flex: 1 1 auto;
    }

    .entity-list-actions form {
        display: flex;
    }

    .entity-list-actions form .btn {
        width: 100%;
    }

    .member-list-table-header {
        display: none;
    }

    .member-list-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-left: 3.9rem;
        position: relative;
    }

    .member-list-person {
        align-items: center;
        display: grid;
        grid-column: 1 / -1;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .member-list-contact-channels {
        margin: 0;
    }

    .member-list-stat {
        justify-self: start;
        white-space: normal;
    }

    .member-list-row .entity-list-actions {
        grid-column: auto;
        justify-content: flex-end;
        position: absolute;
        left: 0.85rem;
        top: 0.85rem;
    }

    .member-list-row .entity-list-actions .btn {
        flex: 0 0 auto;
        min-width: 2.25rem;
        width: 2.25rem;
    }

    .venue-list-row {
        padding-left: 3.9rem;
        position: relative;
    }

    .venue-list-row .entity-list-actions {
        grid-column: auto;
        justify-content: flex-end;
        position: absolute;
        left: 0.85rem;
        top: 0.85rem;
    }

    .venue-list-row .entity-list-actions .btn {
        flex: 0 0 auto;
        min-width: 2.25rem;
        width: 2.25rem;
    }

    .app-topbar-create-action {
        min-width: 2.6rem;
        padding-inline: 0.58rem;
    }

    .app-topbar-create-label {
        display: none;
    }

    .event-type-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gig-members-picker-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .gig-members-picker-header .btn {
        width: 100%;
    }

    .gig-member-option {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .gig-member-fee {
        grid-column: 2;
    }

    .gig-filter-form {
        grid-template-columns: 1fr;
    }

    .filter-panel-summary {
        align-items: center;
        flex-direction: row;
    }

    .label-manager-table th:first-child,
    .label-manager-table td:first-child {
        min-width: 18rem;
    }

    .label-manager-name-form {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .label-color-options {
        flex-wrap: wrap;
    }

    .label-manager-name-form .btn,
    .label-manager-delete-form .btn {
        width: 100%;
    }

    .label-manager-delete-form {
        justify-content: stretch;
    }

    .gig-custom-dates {
        display: grid;
        gap: 1rem;
        grid-template-columns: 1fr;
    }

    .gig-filter-actions {
        flex-direction: column;
    }

    .gig-filter-actions .btn {
        width: 100%;
    }

    .dashboard-month-gig {
        grid-template-columns: 3.05rem 0.82rem minmax(0, 1fr);
    }

    .dashboard-month-gig:not(:last-child)::before {
        display: none;
    }

    .dashboard-month-gig-date::after {
        display: none;
    }

    .dashboard-month-gig-rail {
        min-height: 3.05rem;
    }

    .dashboard-month-gig-today {
        font-size: 0.52rem;
    }

    .dashboard-month-gig-day {
        font-size: 1.1rem;
    }

    .dashboard-month-gig-card {
        gap: 0.54rem;
        grid-template-columns: 2.82rem minmax(0, 1fr);
        margin-right: 0.44rem;
        padding: 0.56rem;
    }

    .dashboard-month-gig-media,
    .dashboard-month-gig-media img,
    .dashboard-month-gig-media-fallback {
        height: 2.82rem;
        width: 2.82rem;
    }

    .dashboard-month-gig-content {
        grid-template-areas:
            "heading"
            "meta"
            "lineup";
        grid-template-columns: minmax(0, 1fr);
        row-gap: 0.26rem;
    }

    .dashboard-month-gig-labels,
    .dashboard-month-gig-lineup {
        justify-content: flex-start;
    }

    .dashboard-month-gig-meta {
        flex-wrap: wrap;
    }

    .dashboard-month-gig-title {
        white-space: normal;
    }

    .dashboard-month-gig-side {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.45rem;
        grid-column: 2;
        min-width: 0;
    }

    .dashboard-month-gig-fee {
        font-size: 0.95rem;
    }

    .member-history-controls {
        grid-template-columns: 1fr;
    }

    .member-stat-mini-grid {
        grid-template-columns: 1fr;
    }

    .member-history-actions {
        flex-direction: column;
    }

    .member-history-actions .btn {
        width: 100%;
    }

    .profile-avatar-block {
        align-items: flex-start;
        flex-direction: column;
    }

    .media-crop-block {
        align-items: flex-start;
        flex-direction: column;
    }

    .media-crop-upload-area {
        width: 100%;
    }

    .avatar-crop-row {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

    .list-controls {
        grid-template-columns: 1fr;
    }

    .list-query-panel {
        grid-template-columns: minmax(0, 1fr);
    }

    .list-query-panel > .list-query-filter > .filter-panel-summary,
    .list-query-panel > .list-query-filter > .filter-panel-body {
        grid-column: 1 / -1;
    }

    .list-query-panel > .list-query-filter > .filter-panel-summary {
        min-width: 0;
    }

    .list-query-panel > .list-query-filter > .filter-panel-body {
        max-width: none;
        width: auto;
    }

    .list-search-panel {
        grid-template-columns: 1fr;
    }

    .list-search-panel-with-sort {
        grid-template-areas:
            "search"
            "sort"
            "actions";
        grid-template-columns: 1fr;
    }

    .list-search-panel-with-sort .list-sort {
        grid-column: 1;
    }

    .list-search-panel-with-sort .list-search-actions {
        grid-column: 1;
    }

    .list-search-panel-with-sort .list-control-actions {
        grid-column: 1;
    }

    .list-sort-panel {
        grid-template-columns: 1fr;
        margin-right: 0;
        width: 100%;
    }

    .list-search-actions {
        justify-content: stretch;
        white-space: normal;
        width: 100%;
    }

    .list-search-actions .btn {
        flex: 1 1 auto;
    }

    .filter-panel-body .list-controls {
        grid-template-columns: 1fr;
    }

    .filter-panel-body .list-control-actions {
        grid-column: 1 / -1;
        margin-right: 0;
        white-space: normal;
        width: 100%;
    }

    .list-control-actions {
        justify-content: stretch;
    }

    .list-control-actions .btn {
        flex: 1 1 auto;
    }

    .list-search-panel-with-sort .list-sort,
    .list-search-panel-with-sort .list-search-actions,
    .list-search-panel-with-sort .list-control-actions {
        grid-column: auto;
    }

    .list-query-panel .list-search-panel-with-sort {
        grid-template-areas:
            "search"
            "sort"
            "actions";
        grid-template-columns: 1fr;
    }

    .list-query-panel .list-search-panel-with-sort .list-sort,
    .list-query-panel .list-search-panel-with-sort .list-search-actions,
    .list-query-panel .list-search-panel-with-sort .list-control-actions {
        grid-column: 1;
    }

    .stat-card {
        padding: 1rem;
        min-height: 7.35rem;
    }

    .dashboard-kpi-card {
        min-height: 10.45rem;
    }

    .dashboard-kpi-content {
        gap: 0.85rem;
    }

    .dashboard-kpi-ring {
        --kpi-ring-size: 7.45rem;
    }

    .dashboard-kpi-ring-center {
        height: 5.15rem;
        width: 5.15rem;
    }

    .dashboard-kpi-action {
        min-height: 2.05rem;
    }

    .dashboard-kpi-ring-center strong {
        font-size: clamp(1.05rem, 5vw, 1.55rem);
        max-width: 3.9rem;
    }

    .dashboard-kpi-ring-money .dashboard-kpi-ring-center strong {
        font-size: clamp(0.94rem, 4.35vw, 1.32rem);
    }

    .dashboard-kpi-ring-money.dashboard-kpi-ring-value-short .dashboard-kpi-ring-center strong {
        font-size: clamp(1.08rem, 5vw, 1.48rem);
    }

    .dashboard-kpi-ring-money.dashboard-kpi-ring-value-compact .dashboard-kpi-ring-center strong {
        font-size: clamp(0.82rem, 3.75vw, 1.06rem);
    }

    .dashboard-kpi-ring-money.dashboard-kpi-ring-value-dense .dashboard-kpi-ring-center strong {
        font-size: clamp(0.76rem, 3.4vw, 0.96rem);
    }

    .stat-card .stat-value {
        font-size: 1.7rem;
    }

    .stat-card .stat-icon {
        top: 1rem;
        left: 1rem;
        width: 48px;
        height: 48px;
        min-width: 48px;
        font-size: 1.18rem;
    }

    .stat-card .d-flex > div:first-child {
        padding-left: 4rem;
    }

    .stat-card.stat-card-money .d-flex > div:first-child {
        padding-left: 0;
    }

    .stat-card.stat-card-money .stat-value {
        padding-top: 3.05rem;
        font-size: 1.18rem;
        white-space: nowrap;
    }

    .dashboard-period-toolbar,
    .dashboard-period-controls,
    .dashboard-custom-dates {
        align-items: stretch;
        flex-direction: column;
    }

    .dashboard-period-toolbar {
        display: flex;
        width: 100%;
    }

    .dashboard-period-copy {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.4rem;
    }

    .dashboard-period-controls {
        width: 100%;
    }

    .dashboard-period-controls .form-select,
    .dashboard-date-field .form-control {
        flex: 0 0 auto;
        max-width: 100%;
        width: 100%;
    }

    .dashboard-kpi-card.stat-card-money .d-flex > div:first-child {
        padding-left: 4rem;
    }

    .dashboard-kpi-card.stat-card-money .stat-value {
        padding-top: 0;
        font-size: 1.55rem;
    }

    .entity-card .entity-avatar,
    .entity-card .entity-avatar-placeholder {
        width: 60px;
        height: 60px;
    }

    .page-header h1 {
        font-size: 1.7rem;
    }

    .chart-container {
        height: 250px;
    }

    .navbar-nav {
        padding-top: 1rem;
    }

    .nav-link {
        padding: 0.75rem 1rem !important;
    }
}

@media (max-width: 1199.98px) {
    .finance-board,
    .finance-insights-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-period-controls > .form-select,
    .finance-search-field {
        flex: 1 1 14rem;
    }

    .finance-filter-actions {
        flex: 1 1 100%;
    }

    .finance-cash-flow-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .payout-settlement-controls,
    .gig-client-payment-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .finance-period-card,
    .finance-filter-panel .dashboard-period-toolbar,
    .finance-period-controls {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        max-width: 100%;
        width: 100%;
    }

    .finance-period-card .finance-period-controls {
        justify-content: stretch;
    }

    .finance-filter-panel .dashboard-period-copy {
        align-items: flex-start;
        display: grid;
        grid-template-columns: 1fr;
        max-width: 100%;
        width: 100%;
    }

    .finance-filter-panel .dashboard-period-copy .form-label {
        justify-self: start;
    }

    .finance-filter-panel .dashboard-period-caption {
        white-space: normal;
    }

    .finance-period-controls > .form-select,
    .finance-search-field,
    .finance-period-controls .btn,
    .finance-filter-actions {
        flex: 0 0 auto;
        min-width: 0;
        max-width: min(100%, calc(100vw - 3.5rem));
        width: min(100%, calc(100vw - 3.5rem));
    }

    .finance-filter-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-filter-actions .btn {
        width: 100%;
    }

    .finance-debt-hero-main {
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-debt-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .finance-debt-summary-empty {
        grid-template-columns: minmax(0, 1fr);
        justify-self: stretch;
    }

    .finance-debt-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-debt-meta,
    .finance-debt-amount {
        grid-column: auto;
        grid-row: auto;
        justify-self: start;
    }

    .finance-payment-group summary,
    .finance-income-row,
    .finance-event-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-payment-values,
    .finance-income-values {
        justify-content: flex-start;
        text-align: right;
        white-space: normal;
    }

    .finance-event-status {
        justify-self: start;
    }

    .finance-section-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .finance-section-total {
        justify-content: flex-start;
        min-width: 0;
        text-align: right;
        width: 100%;
    }

    .finance-section-footer-split,
    .gig-client-payment-header {
        align-items: stretch;
        flex-direction: column;
    }

    .finance-receivable-list,
    .finance-cash-flow-grid,
    .finance-cash-flow-grid-personal,
    .payout-settlement-controls,
    .gig-client-payment-form,
    .gig-client-payment-record,
    .gig-client-payment-summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .gig-client-payment-entry {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .gig-client-payment-entry > form {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .gig-client-payment-entry-amount {
        grid-column: 2;
        justify-self: start;
    }

    .finance-receivable-row,
    .finance-receivable-row:first-child,
    .finance-receivable-row:last-child {
        border-radius: var(--gs-radius-control);
    }

    .finance-receivable-row + .finance-receivable-row {
        border-right: 1px solid var(--gs-surface-border);
        border-top: 0;
    }

    .payout-group-summary,
    .payout-group-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .payout-group-meta {
        grid-column: 1 / -1;
        justify-items: start;
        text-align: right;
    }

    .payout-group-item-amount {
        grid-column: 2;
    }

    .payout-group-item .btn {
        grid-column: 2;
        justify-self: start;
    }

    .payout-submit-button {
        width: 100%;
    }

    .gig-client-payment-note {
        grid-column: auto;
    }
}

@media (max-width: 575.98px) {
    .gig-client-payment-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .gig-client-payment-actions form,
    .gig-client-payment-actions .btn {
        width: 100%;
    }

    .app-topbar-actions {
        --app-topbar-action-gap: 0.3rem;
        gap: var(--app-topbar-action-gap);
    }
}

/* Motion */
@keyframes pageHeaderEnter {
    from {
        opacity: 0;
        transform: translate3d(14px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes surfaceEnter {
    from {
        opacity: 0;
        transform: translate3d(0, 10px, 0) scale(0.992);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@keyframes sideSurfaceEnter {
    from {
        opacity: 0;
        transform: translate3d(-16px, 0, 0) scale(0.992);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

main > .page-header {
    animation: pageHeaderEnter 0.16s ease-out both;
    will-change: opacity, transform;
}

main > .card,
main > .d-flex,
main > nav,
main > .row > [class*="col"] {
    animation: surfaceEnter 0.18s ease-out both;
    will-change: opacity, transform;
}

main > .row > [class*="col"]:nth-child(2n) {
    animation-name: sideSurfaceEnter;
}

main > .card:nth-of-type(1),
main > .d-flex:nth-of-type(1),
main > .row > [class*="col"]:nth-child(1) {
    animation-delay: 0.01s;
}

main > .card:nth-of-type(2),
main > .d-flex:nth-of-type(2),
main > .row > [class*="col"]:nth-child(2) {
    animation-delay: 0.02s;
}

main > .card:nth-of-type(3),
main > .d-flex:nth-of-type(3),
main > .row > [class*="col"]:nth-child(3) {
    animation-delay: 0.03s;
}

main > .row > [class*="col"]:nth-child(4) {
    animation-delay: 0.04s;
}

main > .row > [class*="col"]:nth-child(n + 5) {
    animation-delay: 0.05s;
}

/* Shared desktop anatomy for locations, participants and contacts. */
.entity-list-table {
    min-width: 0;
}

.entity-list-table-header,
.entity-list-table .entity-list-row {
    grid-template-columns: minmax(0, 1fr) minmax(7.25rem, 8.5rem) minmax(9.5rem, 11rem) 4.5rem;
}

.entity-list-table-header {
    align-items: center;
    display: grid;
    gap: 1rem;
    padding: 0.15rem 1rem 0.62rem;
}

.entity-list-table-header > span {
    width: 4.5rem;
}

.entity-list-sort-control {
    align-items: center;
    color: rgba(203, 207, 216, 0.66);
    display: inline-flex;
    font-family: var(--gs-display-font);
    font-size: 0.78rem;
    font-weight: 750;
    gap: 0.35rem;
    letter-spacing: 0.018em;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.entity-list-sort-control:hover,
.entity-list-sort-control:focus-visible,
.entity-list-sort-control.is-active {
    color: var(--gs-primary);
    outline: none;
}

.entity-list-sort-control i {
    font-size: 0.78rem;
}

/* Events use the same detached header anatomy as the shared entity lists. */
.gigs-list-table-header {
    display: grid;
    grid-template-columns: 19% 11% 23% 17% 15% 15%;
    padding: 0.15rem 0 0.62rem;
}

.gigs-list-table-header > div {
    min-width: 0;
    padding: 0 1rem;
}

.gigs-list-table-header > div:first-child {
    padding-right: 1.75rem;
}

.gigs-list-table-header > div:last-child {
    padding-left: 1.75rem;
}

.gigs-list-table-header a.table-sort-control {
    color: rgba(203, 207, 216, 0.66);
    font-family: var(--gs-display-font);
    font-size: 0.78rem;
    font-weight: 750;
    gap: 0.35rem;
    letter-spacing: 0.018em;
    line-height: 1;
    text-shadow: none;
    text-transform: none;
}

.gigs-list-table-header a.table-sort-control:hover,
.gigs-list-table-header a.table-sort-control:focus-visible,
.gigs-list-table-header a.table-sort-control.is-active {
    color: var(--gs-primary);
}

.gigs-list-table-header a.table-sort-control .bi {
    color: inherit;
    font-size: 0.78rem;
}

.gigs-list-table {
    table-layout: fixed;
    width: 100%;
}

.gigs-list-column-date { width: 19%; }
.gigs-list-column-type { width: 11%; }
.gigs-list-column-event { width: 23%; }
.gigs-list-column-labels { width: 17%; }
.gigs-list-column-fee { width: 15%; }
.gigs-list-column-status { width: 15%; }

.entity-list-table .entity-list-view {
    background: linear-gradient(-145deg, rgba(255, 255, 255, 0.035), rgba(8, 9, 11, 0.94));
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-elevation-3d);
    gap: 0;
}

.entity-list-table .entity-list-row {
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0;
    box-shadow: none;
    min-height: 5.15rem;
    padding: 0.78rem 1rem;
    transform: none;
    transition: background-color 180ms ease, border-color 180ms ease;
}

.entity-list-table .entity-list-row:first-child {
    border-radius: var(--gs-radius-panel) var(--gs-radius-panel) 0 0;
}

.entity-list-table .entity-list-row:last-child {
    border-bottom: 0;
    border-radius: 0 0 var(--gs-radius-panel) var(--gs-radius-panel);
}

.entity-list-table .entity-list-row:only-child {
    border-radius: var(--gs-radius-panel);
}

.entity-list-table .entity-list-row:hover,
.entity-list-table .entity-list-row:focus-visible {
    background: linear-gradient(-90deg, rgba(var(--gs-primary-rgb), 0.055), rgba(var(--gs-primary-rgb), 0.018));
    border-color: rgba(var(--gs-primary-rgb), 0.24);
    box-shadow: none;
    transform: none;
}

.entity-list-identity {
    align-items: center;
    display: flex;
    gap: 1rem;
    min-width: 0;
}

.entity-list-identity .entity-list-main {
    flex: 1 1 auto;
}

.entity-list-metric {
    align-content: center;
    color: var(--gs-text-muted);
    display: grid;
    gap: 0.14rem;
    justify-self: start;
    min-width: 0;
    text-decoration: none;
}

.entity-list-metric strong {
    color: var(--gs-text);
    font-family: var(--gs-display-font);
    font-size: var(--gs-entity-list-metric-size);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    line-height: 1.05;
}

.entity-list-metric span {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    line-height: 1.1;
}

.entity-list-metric:hover strong,
.entity-list-metric:focus-visible strong {
    color: var(--gs-text);
}

.entity-list-metric:focus-visible {
    outline: 1px solid rgba(var(--gs-primary-rgb), 0.7);
    outline-offset: 0.2rem;
}

.entity-list-metric-money:hover strong,
.entity-list-metric-money:focus-visible strong,
.entity-list-metric-money strong,
.venue-list-earnings strong,
.member-list-money strong {
    color: var(--gs-money);
    text-shadow: 0 0 14px rgba(var(--gs-money-rgb), 0.16);
}

.entity-list-table .entity-list-actions {
    align-items: center;
    display: flex;
    gap: 0.15rem;
    justify-content: flex-end;
    min-width: 4.5rem;
}

.entity-list-chevron {
    color: rgba(203, 207, 216, 0.7);
    font-size: 0.8rem;
    transition: color 180ms ease, transform 180ms ease;
}

.entity-list-row:hover .entity-list-chevron,
.entity-list-row:focus-visible .entity-list-chevron {
    color: var(--gs-primary);
    transform: translateX(-2px);
}

.entity-row-menu-toggle {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    color: var(--gs-text-muted);
    display: inline-flex;
    height: 2.25rem;
    justify-content: center;
    padding: 0;
    width: 2.25rem;
}

.entity-row-menu-toggle:hover,
.entity-row-menu-toggle:focus-visible,
.entity-row-menu-toggle[aria-expanded="true"] {
    background: rgba(var(--gs-primary-rgb), 0.1);
    border-color: rgba(var(--gs-primary-rgb), 0.34);
    color: var(--gs-primary);
    outline: none;
}

.entity-row-menu-panel {
    background: #111216;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.32);
    border-radius: 0.65rem;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.48);
    min-width: 10.5rem;
    padding: 0.35rem;
}

.entity-row-menu-panel .dropdown-item {
    align-items: center;
    border: 0;
    border-radius: 0.45rem;
    color: var(--gs-text);
    display: flex;
    font-size: 0.82rem;
    gap: 0.55rem;
    min-height: 2.35rem;
    padding: 0.5rem 0.65rem;
}

.entity-row-menu-panel .dropdown-item:hover,
.entity-row-menu-panel .dropdown-item:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-primary);
}

.entity-row-menu-panel .entity-row-menu-delete {
    color: #fca5a5;
    width: 100%;
}

.entity-row-menu-panel .entity-row-menu-delete:hover,
.entity-row-menu-panel .entity-row-menu-delete:focus-visible {
    background: rgba(239, 68, 68, 0.12);
    color: #fecaca;
}

.member-list-row .entity-list-contact-icons,
.contact-list-row .entity-list-contact-icons {
    flex-wrap: nowrap;
    max-width: 10.5rem;
    overflow: hidden;
}

@media (max-width: 767.98px) {
    .entity-list-table-header {
        display: none;
    }

    .entity-list-table .entity-list-view {
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .entity-list-table .entity-list-row,
    .member-list-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-left: 3.35rem;
        position: relative;
    }

    .entity-list-table .entity-list-identity {
        grid-column: 1 / -1;
    }

    .entity-list-table .entity-list-actions,
    .member-list-row .entity-list-actions {
        grid-column: auto;
        min-width: 0;
        position: absolute;
        left: 0.7rem;
        top: 0.7rem;
    }

    .entity-list-table .entity-row-menu {
        display: none;
    }

    .venues-page .venue-list-row {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
        padding-left: 0.1rem;
    }

    .venues-page .venue-list-row .venue-list-identity {
        display: contents;
    }

    .venues-page .venue-list-row .entity-list-media {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .venues-page .venue-list-row .entity-list-main {
        grid-column: 2 / 4;
        grid-row: 1;
    }

    .venues-page .venue-list-row .venue-list-gigs {
        grid-column: 2;
        grid-row: 2;
    }

    .venues-page .venue-list-row .venue-list-earnings {
        grid-column: 3;
        grid-row: 2;
    }

    .venues-page .venue-list-row .entity-list-metric {
        align-items: baseline;
        display: inline-flex;
        gap: 0.25rem;
    }

    .venues-page .venue-list-row .entity-list-actions {
        display: flex !important;
        grid-column: 4;
        grid-row: 1 / span 2;
        position: static;
    }

    .entity-collection-page-single-view .view-toggle {
        grid-template-columns: minmax(0, 1fr);
        min-height: 2.35rem;
        padding: 0;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .entity-collection-page-single-view .view-toggle-option:first-child {
        display: none;
    }

    .entity-collection-page-single-view .view-toggle-option:last-child {
        position: relative;
        min-height: 2.35rem;
        border-radius: 0;
        color: var(--gs-text);
        background: transparent;
        box-shadow: none;
    }

    .entity-collection-page-single-view .view-toggle-option:last-child::after {
        position: absolute;
        bottom: 0;
        right: 50%;
        width: 3.9rem;
        height: 2px;
        border-radius: 999px;
        background: var(--gs-text);
        content: "";
        transform: translateX(50%);
    }

    .entity-collection-page .entity-list-table .entity-list-view {
        display: grid;
        gap: 0;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0.85rem;
        background: linear-gradient(-145deg, rgba(255, 255, 255, 0.025), rgba(8, 9, 11, 0.82));
    }

    .entity-collection-page .entity-list-table .entity-list-row {
        align-items: center;
        display: grid;
        min-height: 5rem;
        grid-template-columns: auto max-content minmax(0, 1fr) auto;
        gap: 0.25rem 0.62rem;
        padding: 0.68rem 0.72rem;
        border: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .entity-collection-page .entity-list-table .entity-list-row:last-child {
        border-bottom: 0;
    }

    .entity-collection-page .entity-list-table .entity-list-row:hover,
    .entity-collection-page .entity-list-table .entity-list-row:focus-visible {
        background: rgba(var(--gs-primary-rgb), 0.035);
        box-shadow: none;
        transform: none;
    }

    .entity-collection-page .entity-list-table .entity-list-identity {
        display: contents;
    }

    .entity-collection-page .entity-list-table .entity-list-media {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .entity-collection-page .entity-list-table .entity-list-media img,
    .entity-collection-page .entity-list-table .entity-list-avatar-fallback,
    .entity-collection-page .entity-list-table .venue-list-logo {
        width: 2.8rem;
        height: 2.8rem;
        flex-basis: 2.8rem;
        border-width: 1px;
        border-radius: 0.72rem;
        box-shadow: none;
    }

    .members-list-page .entity-list-table .entity-list-media img,
    .members-list-page .entity-list-table .entity-list-avatar-fallback,
    .contacts-list-page .entity-list-table .entity-list-media img,
    .contacts-list-page .entity-list-table .entity-list-avatar-fallback {
        border-radius: 999px;
    }

    .entity-collection-page .entity-list-table .entity-list-main {
        grid-column: 2 / 4;
        grid-row: 1;
        align-self: end;
    }

    .entity-collection-page .entity-list-table .entity-list-title-row {
        flex-wrap: nowrap;
        gap: 0.38rem;
    }

    .entity-collection-page .entity-list-table .entity-list-title {
        overflow: hidden;
        font-size: 0.82rem;
        line-height: 1.15;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .entity-collection-page .entity-list-table .entity-role-chip,
    .entity-collection-page .entity-list-table .contact-role-line,
    .entity-collection-page .entity-list-table .member-list-status {
        flex: 0 0 auto;
        min-height: 1.12rem;
        padding: 0.16rem 0.38rem;
        font-size: 0.56rem;
    }

    .entity-collection-page .entity-list-table .entity-list-meta {
        flex-wrap: nowrap;
        gap: 0.28rem;
        margin-top: 0.2rem;
        overflow: hidden;
        font-size: 0.68rem;
        line-height: 1.2;
        white-space: nowrap;
    }

    .entity-collection-page .entity-list-table .entity-list-meta > span,
    .entity-collection-page .entity-list-table .entity-list-meta > a {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .entity-collection-page .entity-list-table .entity-list-contact-icons {
        display: none;
    }

    .entity-collection-page .entity-list-table .entity-list-metric {
        align-items: baseline;
        align-self: baseline;
        display: inline-flex;
        gap: 0.24rem;
        grid-row: 2;
        min-width: 0;
        white-space: nowrap;
    }

    .entity-collection-page .entity-list-table a.entity-list-metric {
        align-items: center;
    }

    .entity-collection-page .entity-list-table .entity-list-metric-primary {
        grid-column: 2;
    }

    .entity-collection-page .entity-list-table .entity-list-metric-secondary {
        grid-column: 3;
    }

    .entity-collection-page .entity-list-table .entity-list-metric-secondary::before {
        font-size: 0.68rem;
        line-height: 1;
        margin-left: 0.12rem;
        color: var(--gs-text-muted);
        content: "·";
    }

    .entity-collection-page {
        --gs-entity-list-metric-size: 0.77rem;
    }

    .entity-collection-page .entity-list-table .entity-list-metric strong {
        color: var(--gs-text);
        font-size: var(--gs-entity-list-metric-size);
        line-height: 1;
        text-shadow: none;
    }

    .entity-collection-page .entity-list-table .entity-list-metric-money strong {
        color: var(--gs-money);
    }

    .entity-collection-page .entity-list-table .entity-list-metric span {
        overflow: hidden;
        font-size: 0.68rem;
        line-height: 1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .entity-collection-page .entity-list-table .entity-list-actions,
    .entity-collection-page .entity-list-table .member-list-row .entity-list-actions {
        display: flex !important;
        grid-column: 4;
        grid-row: 1 / span 2;
        min-width: 0;
        position: static;
    }

    .entity-collection-page .entity-list-table .entity-list-chevron {
        display: block;
        color: var(--gs-text-muted);
    }
}

@media (prefers-reduced-motion: reduce) {
    main > .page-header,
    main > .card,
    main > .d-flex,
    main > nav,
    main > .row > [class*="col"] {
        animation: none;
    }
}

/* Finance overview redesign */
.finance-overview-page {
    --finance-display-size: 1.5rem;
    --finance-heading-size: 1rem;
    --finance-metric-size: 1.25rem;
    --finance-panel-padding: 1rem;
    gap: 1.05rem;
}

.finance-tabs {
    align-items: flex-end;
    border-bottom: 1px solid var(--gs-surface-border);
    display: flex;
    gap: 0.65rem;
    min-height: 3.25rem;
    overflow-x: auto;
    padding: 0 0.35rem;
    position: relative;
}

.finance-tab {
    align-items: center;
    border-bottom: 3px solid transparent;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.92rem;
    font-weight: 750;
    gap: 0.45rem;
    min-height: 3.25rem;
    padding: 0.2rem 0.8rem 0;
    position: relative;
    text-decoration: none;
    transition: color 180ms ease, opacity 180ms ease, transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
    white-space: nowrap;
}

.finance-tab::after {
    background: var(--gs-primary);
    border-radius: var(--gs-radius-pill) var(--gs-radius-pill) 0 0;
    bottom: -1px;
    content: "";
    height: 3px;
    right: 0.55rem;
    opacity: 0;
    position: absolute;
    left: 0.55rem;
    transform: scaleX(0.42);
    transform-origin: center;
    transition: opacity 180ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.finance-tab:hover,
.finance-tab:focus-visible {
    color: var(--gs-text);
    text-decoration: none;
}

.finance-tab.is-active {
    border-bottom-color: transparent;
    color: var(--gs-text);
}

.finance-tab.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.finance-tab.is-navigation-pending {
    color: var(--gs-primary);
}

.finance-tab-badge {
    align-items: center;
    background: var(--gs-primary);
    border-radius: var(--gs-radius-pill);
    color: #111;
    display: inline-flex;
    font-size: 0.7rem;
    font-weight: 900;
    justify-content: center;
    min-height: 1.25rem;
    min-width: 1.25rem;
    padding: 0.05rem 0.34rem;
}

.finance-priority-grid {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.finance-priority-grid-personal {
    grid-template-columns: minmax(0, 1fr);
}

.finance-priority-grid-single {
    grid-template-columns: minmax(0, 1fr);
}

.finance-overview-panels {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr);
}

.finance-overview-panels > .finance-priority-grid,
.finance-overview-panels > .finance-cash-panel {
    min-width: 0;
}

.finance-overview-panels .finance-priority-panel,
.finance-overview-panels > .finance-cash-panel {
    height: 100%;
}

.finance-priority-panel,
.finance-cash-panel,
.finance-history-panel,
.finance-group-balance-panel {
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.035), transparent 15rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.008));
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-panel);
    box-shadow: var(--gs-surface-edge-shadow);
}

.finance-priority-panel {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: var(--finance-panel-padding);
}

.finance-group-balance-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.5rem;
    margin-bottom: 1rem;
    padding: var(--finance-panel-padding);
}

.finance-group-balance-copy { flex: 1 1 20rem; min-width: 0; }
.finance-group-balance-copy h2 {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--finance-heading-size);
    margin: 0 0 0.35rem;
}
.finance-group-balance-copy p { margin: 0 0 0.15rem; font-size: 0.82rem; }
.finance-group-balance-copy small,
.gig-allocation-note { color: var(--gs-text-muted); font-size: 0.75rem; line-height: 1.5; }
.gig-allocation-note { margin: 0; }
.finance-group-balance-value {
    color: var(--gs-primary);
    font-size: var(--finance-display-size);
    line-height: 1.25;
    max-width: 100%;
    overflow-wrap: anywhere;
}
.finance-group-balance-value.is-deficit { color: var(--bs-danger); }

.finance-priority-summary-row {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

/* Keep unknown payment states separate from the known receivable amount. */
.finance-payment-review {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
    margin-top: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--gs-surface-border);
    border-radius: 0.5rem;
    color: var(--gs-text-muted);
    font-size: 0.8125rem;
    line-height: 1.5;
}
.finance-payment-review > span { flex: 1 1 14rem; min-width: 0; }
.finance-payment-review > a { flex-shrink: 0; }

.finance-priority-summary-copy {
    min-width: 0;
}

.finance-priority-heading {
    align-items: center;
    display: flex;
    gap: 0.55rem;
}

.finance-priority-heading h2,
.finance-cash-header h2 {
    align-items: center;
    display: inline-flex;
    font-size: var(--finance-heading-size);
    font-weight: 700;
    gap: 0.5rem;
    line-height: 1.4;
    margin: 0;
}

.finance-priority-heading h2 {
    white-space: nowrap;
}

.finance-section-icon {
    color: var(--gs-primary);
    flex: 0 0 auto;
    font-size: 1rem;
    line-height: 1;
}

.finance-info-icon {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: var(--gs-text-muted);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 1.5rem;
    height: 1.5rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
    width: 1.5rem;
}

.finance-info-icon:hover,
.finance-info-icon:focus {
    background: rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-primary);
}

.finance-info-icon:focus-visible {
    box-shadow: 0 0 0 2px rgba(var(--gs-primary-rgb), 0.38);
    outline: none;
}

.finance-priority-heading:first-child .finance-info-icon {
    color: var(--gs-primary);
}

.finance-priority-total {
    color: var(--gs-text);
    display: block;
    font-size: var(--finance-display-size);
    font-variant-numeric: tabular-nums;
    font-weight: 750;
    letter-spacing: -0.015em;
    line-height: 1.25;
    margin-top: 0.5rem;
    overflow-wrap: anywhere;
}

/* Unknown is a status, so it uses the section's text scale. */
.finance-priority-total-unknown {
    color: var(--gs-text-muted);
    font-size: 1rem;
    font-weight: 600;
}

.finance-priority-summary {
    color: #c7c9ce;
    font-size: 0.9rem;
    margin: 0.55rem 0 0;
}

.finance-priority-action {
    align-self: flex-start;
    font-size: 0.9rem;
    margin-top: 0.85rem;
    min-height: 2.35rem;
    padding: 0.5rem 0.85rem;
}

.finance-priority-summary-row > .finance-priority-action {
    align-self: flex-start;
    flex: 0 0 auto;
    margin: 0;
}

.gig-form-remainder {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.055);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.3);
    border-radius: var(--gs-radius-sm);
    display: grid;
    gap: 0.15rem 0.8rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 0.85rem;
    padding: 0.72rem 0.85rem;
}

.gig-form-remainder > span {
    color: var(--gs-text);
    font-weight: 800;
}

.gig-form-remainder > strong {
    color: var(--gs-money);
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.gig-form-remainder > small {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
    grid-column: 1 / -1;
}

.gig-list-remainder {
    color: var(--gs-text-muted);
    display: block;
    font-size: 0.72rem;
    font-weight: 650;
    margin-top: 0.18rem;
    white-space: nowrap;
}

.dashboard-month-gig-remainder {
    color: var(--gs-text-muted);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
}

.finance-priority-list {
    border-top: 1px solid var(--gs-surface-border);
    display: grid;
    margin-top: 1.05rem;
}

.finance-priority-row {
    align-items: center;
    color: inherit;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 3.75rem;
    min-width: 0;
    padding: 0.6rem 0;
    text-decoration: none;
}

.finance-priority-row + .finance-priority-row {
    border-top: 1px solid var(--gs-surface-border);
}

.finance-priority-row-debt {
    cursor: pointer;
    padding-inline: 0.75rem;
    position: relative;
    transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

.finance-row-debt-link {
    border-radius: var(--gs-radius-sm);
    inset: 0;
    position: absolute;
    z-index: 1;
}

.finance-priority-row-debt:hover {
    background: rgba(var(--gs-primary-rgb), 0.045);
}

.finance-row-debt-link:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(var(--gs-primary-rgb), 0.55);
    outline: none;
}

.finance-row-profile-link {
    color: inherit;
    position: relative;
    text-decoration: none;
    z-index: 2;
}

.finance-row-profile-link:hover,
.finance-row-profile-link:focus-visible {
    color: var(--gs-primary);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.finance-row-profile-link:focus-visible {
    border-radius: 0.2rem;
    box-shadow: 0 0 0 2px rgba(var(--gs-primary-rgb), 0.4);
    outline: none;
}

.finance-row-profile-avatar {
    border-radius: 50%;
    display: inline-flex;
}

.finance-row-profile-avatar:hover,
.finance-row-profile-avatar:focus-visible {
    text-decoration: none;
}

.finance-row-profile-avatar:hover .finance-row-avatar,
.finance-row-profile-avatar:focus-visible .finance-row-avatar {
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 4px rgba(var(--gs-primary-rgb), 0.18), 0 0 1rem rgba(var(--gs-primary-rgb), 0.22);
}

.finance-debt-overflow {
    border-top: 1px solid var(--gs-surface-border);
    min-width: 0;
    position: relative;
}

.finance-debt-overflow-toggle {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: var(--gs-primary);
    display: grid;
    font-size: 0.82rem;
    font-weight: 800;
    gap: 0.55rem;
    grid-template-columns: minmax(0, 1fr) auto auto;
    padding: 0.78rem 0;
    text-align: right;
    width: 100%;
}

.finance-debt-overflow-toggle:hover,
.finance-debt-overflow-toggle:focus-visible {
    color: var(--gs-primary-hover);
}

.finance-debt-overflow-toggle:focus-visible {
    border-radius: var(--gs-radius-sm);
    box-shadow: 0 0 0 2px rgba(var(--gs-primary-rgb), 0.35);
    outline: none;
}

.finance-debt-overflow-count {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.12);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: 999px;
    display: inline-flex;
    font-variant-numeric: tabular-nums;
    height: 1.45rem;
    justify-content: center;
    min-width: 1.8rem;
    padding-inline: 0.38rem;
}

.finance-debt-overflow-toggle > i {
    transition: rotate 0.18s ease;
}

.finance-debt-overflow-toggle[aria-expanded="true"] > i {
    rotate: 180deg;
}

.finance-debt-overflow-menu {
    display: block;
    max-height: min(23rem, 55vh);
    min-width: 100%;
    opacity: 0;
    overflow-y: auto;
    padding: 0.45rem;
    pointer-events: none;
    scale: 0.985;
    transform-origin: top center;
    transition: opacity 0.16s ease, scale 0.16s ease, translate 0.16s ease, visibility 0.16s;
    translate: 0 -0.25rem;
    visibility: hidden;
    width: 100%;
    z-index: 1080;
}

.finance-debt-overflow-menu.show {
    opacity: 1;
    pointer-events: auto;
    scale: 1;
    translate: 0 0;
    visibility: visible;
}

.finance-debt-overflow-heading {
    align-items: baseline;
    display: flex;
    gap: 0.6rem;
    justify-content: space-between;
    padding: 0.45rem 0.55rem 0.55rem;
}

.finance-debt-overflow-heading > strong {
    color: var(--gs-text);
    font-size: 0.82rem;
}

.finance-debt-overflow-heading > small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
}

.finance-debt-overflow-menu .finance-priority-row {
    border-radius: var(--gs-radius-sm);
    padding: 0.6rem 0.55rem;
}

@media (prefers-reduced-motion: reduce) {
    .finance-debt-overflow-toggle > i,
    .finance-debt-overflow-menu {
        transition: none;
    }
}

a.finance-priority-row:hover,
a.finance-priority-row:focus-visible {
    color: inherit;
    text-decoration: none;
}

a.finance-priority-row:hover .finance-row-copy > strong,
a.finance-priority-row:focus-visible .finance-row-copy > strong {
    color: var(--gs-primary);
}

.finance-row-avatar {
    align-items: center;
    background: linear-gradient(-145deg, rgba(var(--gs-primary-rgb), 0.2), rgba(21, 22, 26, 0.96));
    border: 2px solid rgba(var(--gs-primary-rgb), 0.72);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(var(--gs-primary-rgb), 0.08);
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 2.65rem;
    font-size: 1rem;
    font-weight: 800;
    height: 2.65rem;
    justify-content: center;
    overflow: hidden;
    width: 2.65rem;
}

.finance-row-avatar > img,
.finance-row-avatar > .finance-row-avatar-fallback {
    height: 100%;
    width: 100%;
}

.finance-row-avatar > img {
    display: block;
    object-fit: cover;
}

.finance-row-avatar-fallback {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    text-transform: uppercase;
}

.finance-row-settlement {
    align-items: flex-end;
    display: inline-flex;
    flex-direction: column;
    gap: 0.45rem;
    justify-self: end;
}

.finance-row-received-form {
    margin: 0;
}

.finance-row-received-button {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
    white-space: nowrap;
}

.finance-row-copy {
    color: inherit;
    display: grid;
    gap: 0.16rem;
    min-width: 0;
    text-decoration: none;
}

a.finance-row-copy.finance-row-profile-link {
    align-content: center;
    display: grid;
}

.finance-row-copy:hover,
.finance-row-copy:focus-visible {
    color: inherit;
    text-decoration: none;
}

.finance-row-copy > strong {
    color: var(--gs-text);
    font-size: 0.93rem;
    font-weight: 800;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.finance-row-copy > strong > .finance-row-profile-link {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.finance-row-copy > small {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
}

.finance-row-amount {
    color: var(--gs-money);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    white-space: nowrap;
}

.finance-receivable-row-compact {
    grid-template-columns: minmax(0, 1fr) auto;
}

.contact-settlement-card .card-body {
    display: grid;
    gap: 0.9rem;
}

.contact-settlement-summary {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.055);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.26);
    border-radius: var(--gs-radius-control);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.8rem 0.9rem;
}

.contact-settlement-summary > span:first-child {
    display: grid;
    gap: 0.15rem;
}

.contact-settlement-summary small,
.contact-settlement-summary > span:last-child,
.contact-settlement-note {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
}

.contact-settlement-summary strong {
    color: var(--gs-money);
    font-size: 1.45rem;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.contact-settlement-list {
    border-top: 1px solid var(--gs-surface-border);
    display: grid;
}

.contact-settlement-row {
    align-items: center;
    color: inherit;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    min-width: 0;
    padding: 0.7rem 0;
    text-decoration: none;
}

.contact-settlement-row + .contact-settlement-row {
    border-top: 1px solid var(--gs-surface-border);
}

.contact-settlement-row:hover,
.contact-settlement-row:focus-visible {
    color: inherit;
    text-decoration: none;
}

.contact-settlement-row:hover > span > strong,
.contact-settlement-row:focus-visible > span > strong {
    color: var(--gs-money);
}

.contact-settlement-row > span {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.contact-settlement-row > span > strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contact-settlement-row small {
    color: var(--gs-text-muted);
    font-size: 0.75rem;
}

.contact-settlement-empty {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    gap: 0.6rem;
    min-height: 3rem;
}

.contact-settlement-empty i {
    color: var(--gs-primary);
    font-size: 1.05rem;
}

.contact-settlement-review {
    align-items: center;
    border-top: 1px solid var(--gs-surface-border);
    display: flex;
    font-size: 0.78rem;
    gap: 0.8rem;
    justify-content: space-between;
    padding-top: 0.8rem;
}

.contact-settlement-review > span {
    align-items: center;
    color: var(--gs-text-muted);
    display: inline-flex;
    gap: 0.45rem;
}

.contact-settlement-review a {
    color: var(--gs-primary);
    font-weight: 800;
    white-space: nowrap;
}

.finance-panel-empty {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    gap: 0.6rem;
    font-size: 0.9rem;
    min-height: 3.75rem;
    padding: 0.6rem 0;
}

.finance-panel-empty i {
    color: var(--gs-primary);
    font-size: 1.05rem;
}

.finance-receivables-panel .finance-priority-list-empty {
    flex: 1 1 auto;
}

.finance-priority-list-empty .finance-panel-empty {
    justify-content: center;
    text-align: center;
}

.finance-data-review {
    align-items: center;
    border-top: 1px solid var(--gs-surface-border);
    display: flex;
    font-size: 0.78rem;
    gap: 0.8rem;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 0.85rem;
}

.finance-data-review > span {
    align-items: center;
    color: #c7c9ce;
    display: inline-flex;
    gap: 0.5rem;
    min-width: 0;
}

.finance-data-review a {
    color: var(--gs-primary);
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.finance-cash-panel,
.finance-history-panel {
    padding: var(--finance-panel-padding);
}

.finance-cash-header {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: flex-start;
}

.finance-cash-details {
    flex: 0 0 auto;
    margin-right: auto;
    white-space: nowrap;
}

.finance-cash-header > div > p {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    margin: 0.35rem 0 0;
}

.finance-period-form-compact {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0;
    min-width: 0;
}

.finance-period-form-compact > .form-select {
    min-width: 12rem;
    width: auto;
}

.finance-period-form-compact:has([data-finance-custom-period]:not(.d-none)) {
    flex: 1 1 100%;
}

.finance-custom-period {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.finance-custom-period label {
    display: grid;
    font-size: 0.72rem;
    gap: 0.2rem;
}

.finance-custom-period label > span {
    color: var(--gs-text-muted);
}

.finance-cash-metrics {
    border-bottom: 1px solid var(--gs-surface-border);
    border-top: 1px solid var(--gs-surface-border);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0.95rem;
    padding: 0.85rem 0;
}

.finance-cash-metrics.finance-cash-metrics-personal {
    grid-template-columns: minmax(0, 1fr);
}

.finance-cash-metric {
    align-content: center;
    display: grid;
    gap: 0.28rem;
    min-height: 4.25rem;
    padding: 0.3rem clamp(0.7rem, 1.6vw, 1.1rem);
    text-align: center;
}

.finance-cash-metric + .finance-cash-metric {
    border-right: 1px solid var(--gs-surface-border);
}

.finance-cash-metric > span {
    color: #c7c9ce;
    font-size: 0.82rem;
}

.finance-cash-metric > strong {
    color: var(--gs-text);
    font-size: var(--finance-metric-size);
    font-variant-numeric: tabular-nums;
    font-weight: 750;
    letter-spacing: 0;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.finance-cash-metric > small {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
}

.finance-cash-metric.is-accent > strong {
    color: var(--gs-money);
}

.finance-cash-note {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.78rem;
    gap: 0.5rem;
    margin: 0.85rem 0 0;
}

.finance-history-list {
    border-top: 1px solid var(--gs-surface-border);
    display: grid;
    margin-top: 1.1rem;
}

.finance-history-header {
    align-items: center;
    flex-wrap: wrap;
}

.finance-history-heading {
    min-width: min(100%, 16rem);
}

.finance-history-sort-form {
    margin-right: auto;
}

.finance-history-query-panel {
    margin-top: 1rem;
}

.finance-history-filter-controls .gig-custom-dates {
    align-items: end;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.finance-history-row {
    align-items: center;
    color: inherit;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 4.4rem;
    padding: 0.75rem 0;
    text-decoration: none;
}

.finance-history-row + .finance-history-row {
    border-top: 1px solid var(--gs-surface-border);
}

.finance-history-row:hover,
.finance-history-row:focus-visible {
    color: inherit;
    text-decoration: none;
}

.finance-operation-icon {
    align-items: center;
    border: 1px solid rgba(52, 211, 153, 0.45);
    border-radius: 50%;
    color: #34d399;
    display: inline-flex;
    height: 2.35rem;
    justify-content: center;
    width: 2.35rem;
}

.finance-operation-icon.is-out {
    border-color: rgba(251, 146, 60, 0.45);
    color: #fb923c;
}

.finance-row-amount.is-out,
.finance-history-amount,
.finance-history-amount.is-out {
    color: var(--gs-money);
}

.finance-history-empty {
    justify-content: center;
    min-height: 8rem;
}

/* Payout workflow redesign */
.payout-page {
    display: grid;
    gap: 1rem;
    padding-bottom: clamp(2rem, 4vw, 4rem);
}

.payout-page.has-payout-selection {
    padding-bottom: 8.5rem;
}

.payout-page-lead {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.82rem;
    gap: 0.5rem;
    margin: -0.1rem 0 0;
    padding: 0 0.35rem;
}

.payout-page-lead i {
    color: var(--gs-primary);
}

.payout-breadcrumb {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.78rem;
    gap: 0.45rem;
}

.payout-breadcrumb a {
    color: var(--gs-link-cyan);
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: 0.0625rem;
    text-shadow: var(--gs-link-cyan-glow);
    text-underline-offset: 0.18em;
}

.payout-breadcrumb a:hover,
.payout-breadcrumb a:focus-visible {
    color: var(--gs-link-cyan-hover);
}

.payout-breadcrumb i {
    font-size: 0.64rem;
}

.payout-page-heading h1 {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    font-weight: 850;
    letter-spacing: -0.03em;
    margin: 0;
}

.payout-page-heading p {
    color: var(--gs-text-muted);
    font-size: 0.85rem;
    margin: 0.3rem 0 0;
}

.payout-summary-panel {
    align-items: stretch;
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.04), transparent 15rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.008));
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-panel);
    display: grid;
    grid-template-columns: minmax(13rem, 1.15fr) minmax(8rem, 0.75fr) minmax(13rem, 1fr) minmax(20rem, 1.35fr);
    min-height: 6.6rem;
    padding: 1rem 1.3rem;
}

.payout-summary-metric {
    align-content: center;
    display: grid;
    gap: 0.18rem;
    min-width: 0;
    padding: 0.15rem 1.45rem;
}

.payout-summary-metric + .payout-summary-metric {
    border-right: 1px solid var(--gs-surface-border);
}

.payout-summary-metric > span {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    font-weight: 700;
}

.payout-summary-metric > strong {
    color: var(--gs-text);
    font-size: 1.45rem;
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    line-height: 1.1;
}

.payout-summary-total {
    padding-right: 0.2rem;
}

.payout-summary-total > strong {
    color: var(--gs-text);
    font-size: clamp(2rem, 3vw, 2.7rem);
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.payout-view-toggle {
    align-items: center;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-right: 1rem;
    position: relative;
}

.payout-view-toggle a {
    align-items: center;
    border: 1px solid var(--gs-control-border);
    color: var(--gs-text);
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 800;
    justify-content: center;
    min-height: 2.7rem;
    padding: 0.5rem 0.8rem;
    position: relative;
    text-decoration: none;
    transition:
        background-color 220ms ease,
        border-color 220ms ease,
        color 180ms ease,
        box-shadow 240ms ease,
        transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.payout-view-toggle a:first-child {
    border-radius: 0 var(--gs-radius-control) var(--gs-radius-control) 0;
}

.payout-view-toggle a:last-child {
    border-right: 0;
    border-radius: var(--gs-radius-control) 0 0 var(--gs-radius-control);
}

.payout-view-toggle a.is-active {
    background: linear-gradient(-180deg, rgba(var(--gs-primary-rgb), 0.18), rgba(var(--gs-primary-rgb), 0.07));
    border-color: var(--gs-primary);
    color: var(--gs-primary);
    box-shadow: inset 0 0 0 1px rgba(var(--gs-primary-rgb), 0.12);
    position: relative;
    z-index: 1;
}

.payout-view-toggle a:hover,
.payout-view-toggle a:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    color: var(--gs-primary);
    outline: none;
}

.payout-view-toggle a.is-navigation-pending {
    transform: translateY(-1px);
}

.payout-workspace {
    align-items: start;
    display: block;
}

.payout-groups-redesigned {
    gap: 0.75rem;
}

.payout-group-panel,
.payout-settlement-panel {
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.03), transparent 14rem),
        linear-gradient(-145deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.008));
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-panel);
    overflow: hidden;
}

.payout-group-panel {
    transition: border-color 180ms ease, box-shadow 220ms ease;
}

.payout-group-panel.has-selection {
    border-color: rgba(var(--gs-primary-rgb), 0.48);
    box-shadow: 0 0 0 1px rgba(var(--gs-primary-rgb), 0.07);
}

.payout-group-heading {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    list-style: none;
    min-height: 5.2rem;
    padding: 0.85rem 1.05rem;
    transition: background-color 220ms ease, border-color 220ms ease;
}

.payout-group-selector {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 2.75rem;
    min-width: 2.75rem;
}

.payout-group-selector .form-check-input {
    cursor: pointer;
    height: 1.15rem;
    margin: 0;
    width: 1.15rem;
}

.payout-group-heading:hover,
.payout-group-heading:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.035);
    outline: none;
}

.payout-group-heading::-webkit-details-marker {
    display: none;
}

.payout-group-chevron {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
    transition: transform 160ms ease, color 160ms ease;
}

.payout-group-panel[open] .payout-group-chevron {
    color: var(--gs-primary);
    transform: rotate(-90deg);
}

.payout-group-panel .payout-group-title strong {
    color: var(--gs-text);
    font-size: 1.08rem;
}

.payout-group-panel .payout-group-title small {
    font-size: 0.78rem;
}

.payout-group-panel .payout-group-meta {
    align-items: end;
    display: grid;
    gap: 0.15rem;
    justify-items: end;
    min-width: 11rem;
}

.payout-group-panel .payout-group-meta > span {
    color: #d6d7db;
    font-size: 0.8rem;
    font-weight: 800;
}

.payout-group-panel.has-selection .payout-group-meta > span {
    color: var(--gs-primary);
}

.payout-group-total {
    color: var(--gs-money);
    font-size: 1.16rem;
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    white-space: nowrap;
}

.payout-group-body {
    border-top: 1px solid var(--gs-surface-border);
    overflow: hidden;
    transform-origin: center top;
}

.payout-group-body .payout-group-select-all {
    background: rgba(255, 255, 255, 0.012);
    min-height: 3.8rem;
    padding: 1rem 1.2rem;
}

.payout-items-header {
    align-items: center;
    color: var(--gs-text-muted);
    display: grid;
    font-size: 0.7rem;
    font-weight: 750;
    gap: 0.8rem;
    grid-template-columns: minmax(9rem, 0.72fr) minmax(11rem, 1.45fr) auto;
    padding: 0.8rem 4rem 0.65rem 1.2rem;
    text-transform: uppercase;
}

.payout-items-header span:last-child {
    text-align: left;
}

.payout-group-panel .payout-group-item {
    cursor: pointer;
    gap: 0.8rem;
    grid-template-columns: auto minmax(9rem, 0.72fr) minmax(11rem, 1.45fr) auto;
    min-height: 4.7rem;
    padding: 0.75rem 1.2rem;
}

.payout-group-panel .payout-group-item:hover {
    background: rgba(var(--gs-primary-rgb), 0.035);
}

.payout-group-panel .payout-group-item {
    transition: background-color 180ms ease, box-shadow 220ms ease;
}

.payout-group-panel .payout-group-item:has([data-payout-item]:checked) {
    background: rgba(var(--gs-primary-rgb), 0.075);
    box-shadow: inset -3px 0 0 var(--gs-primary);
}

.payout-event-copy,
.payout-event-date {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
}

.payout-event-title-line {
    align-items: center;
    display: flex;
    gap: 0.4rem;
    min-width: 0;
}

.payout-event-title-line > a {
    min-width: 0;
}

.payout-duplicate-warning {
    color: #fb923c;
    cursor: help;
    flex: 0 0 auto;
    font-size: 0.8rem;
}

.payout-event-copy a,
.payout-event-copy strong {
    color: var(--gs-text);
    font-size: 0.86rem;
    font-weight: 800;
    overflow: hidden;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.38);
    text-underline-offset: 0.18rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.payout-event-copy a:hover,
.payout-event-copy a:focus-visible {
    color: var(--gs-primary);
    text-decoration-color: var(--gs-primary);
}

.payout-event-copy small {
    color: var(--gs-text-muted);
    font-size: 0.74rem;
}

.payout-event-date strong {
    color: #d6d7db;
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
}

.payout-bulk-action-bar {
    align-items: center;
    background:
        radial-gradient(circle at 92% 0%, rgba(var(--gs-primary-rgb), 0.12), transparent 18rem),
        color-mix(in srgb, var(--gs-bg-card) 96%, black);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.46);
    border-radius: var(--gs-radius-panel);
    bottom: 1rem;
    box-shadow: 0 1.1rem 3rem rgba(0, 0, 0, 0.52), 0 0 0 1px rgba(255, 255, 255, 0.025) inset;
    display: flex;
    gap: 1.25rem;
    justify-content: space-between;
    right: calc(246px + 2rem);
    margin-inline: auto;
    max-width: 1296px;
    padding: 0.9rem 1.2rem 0.9rem 1rem;
    position: fixed;
    left: 2rem;
    z-index: 1040;
}

.payout-bulk-action-bar[hidden] {
    display: none;
}

.payout-bulk-action-copy {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.payout-bulk-action-copy > strong {
    color: var(--gs-text);
    font-size: 0.94rem;
}

.payout-bulk-action-copy > span {
    color: var(--gs-text-muted);
    font-size: 0.8rem;
}

.payout-bulk-action-copy b {
    color: var(--gs-money);
    font-size: 0.94rem;
    font-variant-numeric: tabular-nums;
}

.payout-bulk-action-buttons {
    display: flex;
    flex: 0 0 auto;
    gap: 0.65rem;
}

.payout-bulk-action-buttons .btn {
    min-height: 2.8rem;
}

.payout-settlement-panel {
    position: sticky;
    top: 1rem;
}

.payout-settlement-heading {
    border-bottom: 1px solid var(--gs-surface-border);
    padding: 1.15rem 1.3rem;
}

.payout-settlement-heading h2 {
    font-size: 1.22rem;
    font-weight: 850;
    margin: 0;
}

.payout-selection-empty {
    align-items: center;
    border-bottom: 1px solid var(--gs-surface-border);
    color: var(--gs-text-muted);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    justify-content: center;
    min-height: 10.6rem;
    padding: 1.35rem;
    text-align: center;
    transition: min-height 320ms cubic-bezier(0.22, 1, 0.36, 1), color 180ms ease;
}

.payout-selection-empty.has-selection {
    min-height: 6.8rem;
}

.payout-selection-empty i {
    color: #5f636d;
    font-size: 2.5rem;
    transition: color 220ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.payout-selection-empty.has-selection i {
    color: var(--gs-primary);
    transform: scale(1.06);
}

.payout-selection-empty p {
    font-size: 0.83rem;
    font-weight: 750;
    margin: 0.4rem 0 0;
}

.payout-selection-empty small {
    font-size: 0.78rem;
}

.payout-selection-summary {
    align-items: center;
    border-bottom: 1px solid var(--gs-surface-border);
    display: flex;
    font-size: 0.78rem;
    justify-content: space-between;
    padding: 0.9rem 1.3rem;
}

.payout-selection-summary strong {
    color: var(--gs-text);
    font-size: 0.95rem;
    font-variant-numeric: tabular-nums;
    transition: color 180ms ease, transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.payout-selection-summary span:last-child strong {
    color: var(--gs-money);
}

.payout-settlement-fields {
    display: grid;
    gap: 0.85rem;
    padding: 1rem 1.3rem;
}

.payout-settlement-fields label {
    display: grid;
    gap: 0.34rem;
}

.payout-settlement-fields label > span {
    color: #c7c9ce;
    font-size: 0.78rem;
    font-weight: 750;
}

.payout-settlement-fields textarea {
    resize: vertical;
}

.payout-settlement-panel .payout-submit-button {
    margin: 0 1.3rem;
    min-height: 3rem;
    width: calc(100% - 2.6rem);
}

.payout-settlement-note {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    line-height: 1.45;
    margin: 0;
    padding: 0.8rem 1.3rem 1.65rem;
    text-align: center;
}

.payout-confirm-modal .modal-content {
    background: var(--gs-bg-card);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.3);
}

.payout-confirm-modal .modal-dialog {
    max-width: 42rem;
}

.payout-confirm-kicker {
    color: var(--gs-primary);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    margin: 0 0 0.2rem;
    text-transform: uppercase;
}

.payout-confirm-modal .modal-title {
    font-size: 1.25rem;
    font-weight: 850;
}

.payout-confirm-recipient {
    display: block;
    font-size: 1.05rem;
    margin-bottom: 1rem;
}

.payout-confirm-list {
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-control);
    max-height: min(17rem, 38vh);
    overflow-y: auto;
}

.payout-confirm-item {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 4rem;
    padding: 0.7rem 0.85rem;
}

.payout-confirm-item + .payout-confirm-item {
    border-top: 1px solid var(--gs-surface-border);
}

.payout-confirm-item > span {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.payout-confirm-item strong {
    color: var(--gs-text);
    font-size: 0.84rem;
}

.payout-confirm-item small {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.payout-confirm-item > b {
    color: var(--gs-money);
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.payout-confirm-details {
    display: grid;
    gap: 0;
    margin: 0;
}

.payout-confirm-details > div {
    align-items: center;
    border-top: 1px solid var(--gs-surface-border);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    min-height: 3rem;
}

.payout-confirm-details dt {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.payout-confirm-details dd {
    color: var(--gs-text);
    font-size: 0.82rem;
    font-weight: 800;
    margin: 0;
    text-align: left;
}

.payout-confirm-fields {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: minmax(10rem, 0.75fr) minmax(14rem, 1.25fr);
    margin-top: 1rem;
}

.payout-confirm-fields label {
    display: grid;
    gap: 0.35rem;
}

.payout-confirm-fields label > span {
    color: #c7c9ce;
    font-size: 0.76rem;
    font-weight: 750;
}

.payout-confirm-fields textarea {
    min-height: 2.75rem;
    resize: vertical;
}

@media (max-width: 1199.98px) {
    .finance-overview-panels {
        grid-template-columns: minmax(0, 1fr);
    }

    .payout-summary-panel {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .payout-view-toggle {
        grid-column: 1 / -1;
        margin: 0.8rem 0 0;
    }

    .payout-bulk-action-bar {
        right: 1rem;
        left: 1rem;
    }

    .payout-settlement-panel {
        position: static;
    }

    .payout-settlement-fields {
        grid-template-columns: minmax(10rem, 0.8fr) minmax(16rem, 2.2fr);
    }

    .payout-settlement-panel .payout-submit-button {
        margin-right: auto;
        width: auto;
    }
}

@media (max-width: 1299.98px) {
    .finance-priority-summary-row {
        flex-direction: column;
        gap: 0.85rem;
    }

    .finance-priority-summary-row > .finance-priority-action {
        align-self: flex-start;
    }
}

@media (max-width: 991.98px) {
    .finance-priority-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-cash-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .finance-cash-metric:nth-child(3) {
        border-right: 0;
    }

    .finance-cash-metric:nth-child(n + 3) {
        border-top: 1px solid var(--gs-surface-border);
    }

    .payout-items-header {
        display: none;
    }

    .payout-group-panel .payout-group-item {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .payout-event-copy {
        grid-column: 2;
    }

    .payout-group-panel .payout-group-item-amount {
        align-self: center;
        grid-column: 3;
        grid-row: 1 / span 2;
    }
}

@media (max-width: 575.98px) {
    .finance-tabs {
        margin-inline: -0.25rem;
        padding-inline: 0;
    }

    .finance-tab {
        padding-inline: 0.55rem;
    }

    .finance-priority-total {
        font-size: var(--finance-display-size);
    }

    .finance-priority-summary-row {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }

    .finance-priority-summary-row > .finance-priority-action {
        align-self: flex-start;
    }

    .finance-data-review,
    .finance-cash-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .finance-cash-details {
        margin-right: 0;
    }

    .finance-period-form-compact,
    .finance-period-form-compact > .form-select,
    .finance-custom-period {
        width: 100%;
    }

    .finance-custom-period label {
        flex: 1 1 8rem;
    }

    .finance-custom-period .form-control {
        width: 100%;
    }

    .finance-cash-metrics,
    .finance-cash-metric + .finance-cash-metric,
    .finance-cash-metric:nth-child(3) {
        border-right: 0;
        border-top: 1px solid var(--gs-surface-border);
    }

    .finance-history-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .finance-history-row > .finance-row-amount {
        grid-column: 2;
        justify-self: start;
    }

    .finance-history-header {
        align-items: stretch;
    }

    .finance-history-heading,
    .finance-history-sort-form,
    .finance-history-header > .btn {
        width: 100%;
    }

    .finance-history-sort-group {
        width: 100%;
    }

    .finance-history-filter-controls .gig-custom-dates {
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-row-settlement {
        align-items: flex-start;
        grid-column: 2;
        justify-self: start;
    }

    .payout-summary-panel {
        grid-template-columns: minmax(0, 1fr);
        padding: 0.85rem 1rem;
    }

    .payout-summary-metric,
    .payout-summary-total {
        padding: 0.7rem 0.2rem;
    }

    .payout-summary-metric + .payout-summary-metric {
        border-right: 0;
        border-top: 1px solid var(--gs-surface-border);
    }

    .payout-view-toggle {
        grid-column: auto;
    }

    .payout-group-heading {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
    }

    .payout-group-panel .payout-group-meta {
        grid-column: 2 / -1;
        justify-items: start;
        min-width: 0;
        text-align: right;
    }

    .payout-group-total {
        grid-column: 3;
        grid-row: 1;
    }

    .payout-group-chevron {
        grid-column: 4;
        grid-row: 1;
    }

    .payout-group-panel .payout-group-item {
        padding-inline: 1rem;
    }

    .payout-settlement-fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .payout-settlement-panel .payout-submit-button {
        margin-inline: 1.3rem;
        width: calc(100% - 2.6rem);
    }

    .payout-confirm-fields {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767.98px) {
    .payout-page.has-payout-selection {
        padding-bottom: calc(12rem + var(--mobile-nav-height));
    }

    .payout-group-heading {
        gap: 0.55rem;
        min-height: 4.8rem;
        padding: 0.7rem 0.65rem;
    }

    .payout-group-selector {
        min-height: 2.5rem;
        min-width: 2.5rem;
    }

    .payout-group-panel .payout-group-title strong {
        font-size: 0.96rem;
    }

    .payout-group-panel .payout-group-title small,
    .payout-group-panel .payout-group-meta {
        font-size: 0.72rem;
    }

    .payout-group-total {
        font-size: 1rem;
    }

    .payout-group-panel .payout-group-item {
        gap: 0.55rem;
        padding: 0.7rem 0.75rem;
    }

    .payout-bulk-action-bar {
        align-items: stretch;
        bottom: calc(var(--mobile-nav-height) + 0.75rem + env(safe-area-inset-bottom));
        flex-direction: column;
        gap: 0.75rem;
        right: 0.75rem;
        padding: 0.85rem;
        left: 0.75rem;
    }

    .payout-bulk-action-buttons {
        display: grid;
        grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    }

    .payout-bulk-action-buttons .btn {
        min-width: 0;
        padding-inline: 0.7rem;
        white-space: normal;
    }

    body:has(.payout-page.has-payout-selection) .mobile-event-fab {
        opacity: 0;
        pointer-events: none;
    }

    .payout-confirm-modal .modal-dialog {
        margin: 0.75rem;
    }

    .payout-confirm-item {
        gap: 0.65rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .finance-tab,
    .finance-tab::after,
    .payout-view-toggle a,
    .payout-group-heading,
    .payout-group-panel .payout-group-item,
    .payout-selection-empty,
    .payout-selection-empty i,
    .payout-selection-summary strong {
        transition-duration: 0.01ms !important;
    }
}

/* Keep contact search and filters aligned on compact screens. */
@media (max-width: 1499.98px) {
    .contacts-list-query-panel {
        grid-template-columns: minmax(0, 1fr) minmax(9rem, 10rem);
        row-gap: 0;
    }

    .contacts-list-query-panel .list-query-search {
        grid-column: 1;
        min-width: 0;
    }

    .contacts-list-query-panel > .list-query-filter > .filter-panel-summary {
        grid-column: 2;
        justify-self: stretch;
        width: 100%;
    }

    .contacts-list-query-panel > .list-query-filter > .filter-panel-body {
        grid-column: 1 / -1;
        justify-self: stretch;
        width: calc(100% + var(--list-query-filter-column-width) + var(--list-query-gap));
    }
}

/* Keep sorting and filters together below the search row on compact screens. */
@media (max-width: 1499.98px) and (min-width: 769px) {
    .list-query-panel.list-query-panel-with-sort {
        grid-template-columns: minmax(0, 1fr) var(--list-query-filter-column-width);
        row-gap: 0.75rem;
    }

    .list-query-panel.list-query-panel-with-sort .list-search-panel-with-sort {
        display: contents;
    }

    .list-query-panel.list-query-panel-with-sort .list-search-panel-with-sort .list-search {
        grid-column: 1 / -1;
        grid-row: 1;
        min-width: 0;
    }

    .list-query-panel.list-query-panel-with-sort .list-search-panel-with-sort:has(.list-search-actions > *) .list-search {
        grid-column: 1;
    }

    .list-query-panel.list-query-panel-with-sort .list-search-panel-with-sort .list-search-actions {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
    }

    .list-query-panel.list-query-panel-with-sort .list-search-panel-with-sort .list-sort {
        grid-column: 1;
        grid-row: 2;
        min-width: 0;
    }

    .list-query-panel.list-query-panel-with-sort > .list-query-filter > .filter-panel-summary {
        grid-column: 2;
        grid-row: 2;
        justify-self: stretch;
        width: 100%;
    }

    .list-query-panel.list-query-panel-with-sort > .list-query-filter > .filter-panel-body {
        grid-column: 1 / -1;
        grid-row: 3;
        justify-self: stretch;
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .contacts-list-query-panel {
        --list-query-filter-column-width: 2.75rem;
        --list-query-gap: 0.5rem;
        column-gap: var(--list-query-gap);
        grid-template-columns: minmax(0, 1fr) var(--list-query-filter-column-width);
    }

    .contacts-list-query-panel > .list-query-filter > .filter-panel-summary {
        justify-content: center;
        padding-inline: 0.45rem;
    }

    .contacts-list-query-panel > .list-query-filter > .filter-panel-summary .filter-panel-title {
        gap: 0;
        justify-content: center;
    }

    .contacts-list-query-panel > .list-query-filter > .filter-panel-summary .filter-panel-title span,
    .contacts-list-query-panel > .list-query-filter > .filter-panel-summary .filter-panel-chevron {
        display: none;
    }
}

/* Mobile app shell and mobile-first content patterns. */
.mobile-app-chrome {
    display: none;
}

@media (max-width: 767.98px) {
    :root {
        --app-header-height: 4rem;
        --mobile-page-gutter: 1rem;
        --mobile-nav-height: 4.5rem;
        --gs-radius-panel: 1rem;
        --gs-radius-md: 0.875rem;
        --gs-radius-control: 0.75rem;
    }

    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
        scrollbar-width: none;
    }

    html {
        scrollbar-gutter: auto;
    }

    body {
        overflow-y: auto;
    }

    html::-webkit-scrollbar,
    body::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }

    body {
        padding-bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));
    }

    .app-shell {
        display: block;
        min-width: 0;
    }

    .app-sidebar {
        display: none !important;
    }

    .app-main-shell {
        width: 100%;
        min-width: 0;
        margin-right: 0 !important;
    }

    .app-topbar {
        flex-wrap: wrap;
        position: sticky;
        top: 0;
        z-index: 1025;
        min-height: var(--app-header-height);
        padding: 0.625rem var(--mobile-page-gutter);
        background: color-mix(in srgb, var(--gs-bg-dark) 94%, transparent);
        backdrop-filter: blur(18px);
    }

    .app-topbar-inner {
        min-width: 0;
        gap: 0.5rem;
    }

    .app-topbar-title {
        min-width: 0;
        flex: 1 1 auto;
        gap: 0.4rem;
    }

    .app-topbar-flash-slot:not(.is-empty) {
        flex: 1 0 100%;
        order: -1;
        padding: 0 0 0.375rem;
    }

    .app-topbar-flash-slot.is-empty {
        display: none;
    }

    .app-topbar .flash-layer {
        align-items: flex-end;
        gap: 0.5rem;
        max-width: 100%;
        width: fit-content;
    }

    .app-topbar .flash-toast {
        font-size: 0.78rem;
        gap: 0.25rem;
        line-height: 1.25;
        max-width: min(18rem, 100%);
        padding: 0 0.65rem 0 0.25rem;
    }

    .app-topbar .flash-toast.alert-dismissible .btn-close {
        flex-basis: 1.5rem;
        height: 1.5rem;
        padding: 0.35rem;
        width: 1.5rem;
    }

    .app-topbar-title i {
        flex: 0 0 auto;
        font-size: 1.1rem;
    }

    .app-topbar-title h1 {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.25;
    }

    .app-topbar-title h1 > span {
        display: inline !important;
        overflow: hidden;
        font-size: inherit;
        line-height: inherit;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-topbar-create-slot,
    .app-topbar-create-action,
    .app-welcome-tour-trigger,
    .app-topbar-user-name,
    .view-scope-label {
        display: none !important;
    }

    .app-topbar-actions {
        flex: 0 0 auto;
        gap: 0.375rem;
    }

    .view-scope-segmented {
        min-width: 0;
    }

    .view-scope-segmented-label {
        display: none;
    }

    .view-scope-segmented-control {
        min-width: 0;
    }

    .view-scope-segment {
        min-width: 2.75rem;
        min-height: 2.75rem;
        padding-inline: 0.625rem;
    }

    .view-scope-segment > span {
        display: none;
    }

    .app-topbar-user,
    .app-topbar-user-trigger {
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
    }

    .app-main-content {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding: 1rem var(--mobile-page-gutter) 2rem !important;
        overflow: clip;
    }

    .app-main-content > * {
        min-width: 0;
    }

    /* Bootstrap rows extend into the page padding to cancel column gutters. */
    .app-main-content > :not(.row) {
        max-width: 100%;
    }

    .profile-page-layout {
        row-gap: 1rem;
        padding-bottom: calc(var(--mobile-nav-height) + 1rem + env(safe-area-inset-bottom));
    }
    .mobile-app-chrome {
        display: block;
    }

    .mobile-bottom-nav {
        position: fixed;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1050;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        min-height: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));
        padding: 0.375rem 0.375rem calc(0.375rem + env(safe-area-inset-bottom));
        border-top: 1px solid var(--gs-border);
        background: color-mix(in srgb, var(--gs-bg-dark) 96%, transparent);
        box-shadow: 0 -0.75rem 2rem rgba(0, 0, 0, 0.34);
        backdrop-filter: blur(18px);
        isolation: isolate;
        overflow: hidden;
    }

    .mobile-bottom-nav-active-pill {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 0;
        width: 0;
        height: 0;
        border-radius: 0.75rem;
        background: color-mix(in srgb, var(--gs-primary) 12%, transparent);
        box-shadow: inset 0 0 0 1px rgba(var(--gs-primary-rgb), 0.04);
        opacity: 0;
        pointer-events: none;
        transition:
            transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
            width 0.38s cubic-bezier(0.22, 1, 0.36, 1),
            height 0.38s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.18s ease;
        will-change: transform, width, height;
    }

    .mobile-bottom-nav-link {
        display: flex;
        min-width: 0;
        min-height: 3.5rem;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 0.25rem;
        padding: 0;
        border: 0;
        border-radius: 0.75rem;
        color: var(--gs-text-muted);
        background: transparent;
        font: inherit;
        font-size: 0.75rem;
        font-weight: 700;
        position: relative;
        text-decoration: none;
        transition: color 220ms ease, background 220ms ease, transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
        z-index: 1;
    }

    .mobile-bottom-nav-link i {
        font-size: 1.375rem;
        line-height: 1;
        transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .mobile-bottom-nav-link > span:not(.support-count) {
        max-width: 100%;
        line-height: 1.2;
        text-align: center;
        overflow-wrap: anywhere;
        hyphens: auto;
    }

    /* Share the actual label height so wrapped translations keep icons aligned. */
    @supports (grid-template-rows: subgrid) {
        .mobile-bottom-nav {
            grid-template-rows: minmax(0, 1fr) 1.375rem auto minmax(0, 1fr);
        }

        .mobile-bottom-nav-link {
            display: grid;
            grid-row: 1 / -1;
            grid-template-rows: subgrid;
            justify-items: center;
            align-items: start;
            gap: 0;
        }

        .mobile-bottom-nav-link i {
            grid-row: 2;
        }

        .mobile-bottom-nav-link > span:not(.support-count) {
            grid-row: 3;
            margin-top: 0.25rem;
        }
    }

    @media (max-width: 359.98px) {
        .mobile-bottom-nav {
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
        }

        .mobile-bottom-nav-link {
            font-size: 0.6875rem;
        }
    }

    .mobile-bottom-nav-link.active {
        color: var(--gs-primary);
        background: color-mix(in srgb, var(--gs-primary) 12%, transparent);
    }

    .mobile-bottom-nav.nav-pill-ready .mobile-bottom-nav-link.active {
        background: transparent;
    }

    .mobile-bottom-nav-link.is-navigation-pending i {
        transform: translateY(-1px) scale(1.06);
    }

    .mobile-bottom-nav-link:active {
        transform: scale(0.96);
    }

    .mobile-event-fab {
        position: fixed;
        left: 1rem;
        bottom: calc(var(--mobile-nav-height) + 0.875rem + env(safe-area-inset-bottom));
        z-index: 1045;
        display: inline-flex;
        width: 3rem;
        min-width: 3rem;
        height: 3rem;
        min-height: 3rem;
        align-items: center;
        justify-content: center;
        padding: 0;
        overflow: hidden;
        border: 1px solid color-mix(in srgb, var(--gs-primary) 78%, white);
        border-radius: 50%;
        color: #080808;
        background: var(--gs-primary);
        box-shadow: 0 0.65rem 1.65rem color-mix(in srgb, var(--gs-primary) 34%, transparent);
        font-size: 1.05rem;
        font-weight: 800;
        line-height: 1;
        text-decoration: none;
        transition: transform 180ms ease, box-shadow 180ms ease;
    }

    .mobile-event-fab i {
        display: block;
        line-height: 1;
    }

    .mobile-event-fab:hover,
    .mobile-event-fab:focus-visible {
        color: #080808;
        box-shadow: 0 0.8rem 1.9rem color-mix(in srgb, var(--gs-primary) 42%, transparent);
        outline: none;
        transform: translateY(-2px);
    }

    .mobile-event-fab:active {
        transform: scale(0.94);
    }

    .mobile-sheet-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1060;
        opacity: 0;
        background: rgba(0, 0, 0, 0.68);
        backdrop-filter: blur(2px);
        visibility: hidden;
        pointer-events: none;
        transition:
            opacity var(--mobile-sheet-motion-duration) ease,
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .mobile-sheet-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .mobile-more-sheet {
        position: fixed;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1065;
        max-height: min(82vh, 46rem);
        padding: 0.5rem 1rem calc(1rem + env(safe-area-inset-bottom));
        overflow-y: auto;
        border: 1px solid var(--gs-border);
        border-radius: 1.25rem 1.25rem 0 0;
        background: var(--gs-menu-bg);
        box-shadow: 0 -1.5rem 4rem rgba(0, 0, 0, 0.55);
        transform: translateY(105%);
        visibility: hidden;
        pointer-events: none;
        transition:
            transform var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease),
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .mobile-more-sheet.is-open[aria-hidden="false"] {
        transform: translateY(0);
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .mobile-sheet-handle {
        width: 2.75rem;
        height: 0.25rem;
        margin: 0 auto 0.625rem;
        border-radius: 999px;
        background: var(--gs-border-strong);
    }

    .mobile-more-sheet-header {
        display: flex;
        min-height: 4rem;
        align-items: center;
        gap: 0.75rem;
        padding-bottom: 0.75rem;
        border-bottom: 1px solid var(--gs-border);
    }

    .mobile-more-profile {
        display: flex;
        min-width: 0;
        flex: 1;
        align-items: center;
        gap: 0.75rem;
    }

    .mobile-more-profile > span {
        min-width: 0;
    }

    .mobile-more-profile strong,
    .mobile-more-profile small {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-more-profile small {
        color: var(--gs-text-muted);
        font-size: 0.8rem;
    }

    .mobile-more-avatar {
        width: 2.75rem;
        height: 2.75rem;
        flex: 0 0 2.75rem;
        border: 2px solid var(--gs-primary);
        border-radius: 50%;
        object-fit: cover;
    }

    .mobile-more-avatar-placeholder {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: var(--gs-primary);
        background: var(--gs-bg-panel);
    }

    .mobile-sheet-close {
        display: inline-flex;
        width: 2.75rem;
        height: 2.75rem;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--gs-border);
        border-radius: 50%;
        color: var(--gs-text);
        background: var(--gs-bg-panel);
    }

    .mobile-more-sheet-links {
        display: grid;
        gap: 0.75rem;
        padding-top: 0.75rem;
    }

    .mobile-more-group + .mobile-more-group {
        padding-top: 0.75rem;
        border-top: 1px solid var(--gs-border);
    }

    .mobile-more-group h2 {
        margin: 0;
        padding: 0.375rem 0.75rem;
        color: var(--gs-text-muted);
        font-size: 0.75rem;
        font-weight: 600;
        line-height: 1.4;
    }

    .mobile-more-group > a,
    .mobile-more-group > button {
        display: flex;
        width: 100%;
        min-height: 3.25rem;
        align-items: center;
        gap: 0.75rem;
        padding: 0.75rem;
        border: 0;
        border-radius: 0.875rem;
        color: var(--gs-text);
        background: transparent;
        font: inherit;
        font-weight: 700;
        text-align: right;
        text-decoration: none;
    }

    .mobile-more-group > a i:first-child,
    .mobile-more-group > button i:first-child {
        width: 1.5rem;
        flex-shrink: 0;
        color: var(--gs-primary);
        font-size: 1.15rem;
        text-align: center;
    }

    .mobile-more-group > a i:last-child,
    .mobile-more-group > button i:last-child {
        margin-right: auto;
        color: var(--gs-text-muted);
    }

    .mobile-more-group > a.active,
    .mobile-more-group > a:hover,
    .mobile-more-group > a:focus-visible,
    .mobile-more-group > button:hover,
    .mobile-more-group > button:focus-visible,
    .mobile-more-group > a:active,
    .mobile-more-group > button:active {
        background: color-mix(in srgb, var(--gs-primary) 12%, transparent);
    }

    body.mobile-more-open {
        overflow: hidden;
    }

    .card,
    .stat-card,
    .filter-panel-body,
    .list-item-card,
    .finance-priority-card {
        border-radius: 1rem;
    }

    button,
    .btn,
    a.btn,
    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea,
    summary,
    [role="button"] {
        min-height: 2.75rem;
    }

    input,
    select,
    textarea,
    .input-group,
    .form-control,
    .form-select {
        border-radius: 0.75rem;
    }

    .row > [class*="col-"] {
        min-width: 0;
    }

    .list-query-panel,
    .contacts-list-query-panel,
    .list-query-panel.list-query-panel-with-sort,
    .list-search-panel,
    .list-search-panel-with-sort {
        display: grid;
        width: 100%;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.625rem;
    }

    .list-query-search,
    .list-search,
    .list-search-panel-with-sort .list-search {
        grid-column: 1 / -1 !important;
        width: 100%;
        min-width: 0;
    }

    .list-sort,
    .list-search-panel-with-sort .list-sort {
        grid-column: 1;
        grid-row: auto;
        min-width: 0;
    }

    .list-query-filter,
    .list-query-panel > .list-query-filter {
        grid-column: 2;
        align-self: stretch;
    }

    .filter-panel-summary {
        min-width: 2.75rem;
        justify-content: center;
        padding-inline: 0.75rem;
    }

    .filter-panel-body {
        position: fixed !important;
        left: 0 !important;
        bottom: 0 !important;
        right: 0 !important;
        z-index: 1075 !important;
        display: block;
        width: 100% !important;
        max-height: min(78vh, 40rem);
        padding: 1.25rem 1rem calc(1rem + env(safe-area-inset-bottom));
        overflow-y: auto;
        border-radius: 1.25rem 1.25rem 0 0 !important;
        background: var(--gs-bg-elevated);
        box-shadow: 0 -1.5rem 4rem rgba(0, 0, 0, 0.55);
        transform: translateY(104%);
        visibility: hidden;
        pointer-events: none;
        transition:
            transform var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease),
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .filter-panel[open] {
        z-index: 1080;
    }

    .filter-panel[open] > .filter-panel-body.is-open {
        transform: translateY(0);
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .filter-panel:not([open]) > .filter-panel-body {
        display: none !important;
    }

    .mobile-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1070;
        border: 0;
        background: rgba(0, 0, 0, 0.62);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition:
            opacity var(--mobile-sheet-motion-duration) ease,
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .mobile-filter-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    body.mobile-filter-open {
        overflow: hidden;
    }

    .mobile-filter-sheet-header {
        position: sticky;
        top: -1.25rem;
        z-index: 1;
        display: grid;
        min-height: 4.25rem;
        grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
        align-items: center;
        gap: 0.5rem;
        margin: -1.25rem -1rem 1rem;
        padding: 0.5rem 1rem 0.75rem;
        border-bottom: 1px solid var(--gs-border);
        background: var(--gs-bg-elevated);
    }

    .mobile-filter-sheet-header strong {
        grid-column: 2;
        color: var(--gs-text);
        font-family: var(--gs-display-font);
        font-size: 1.05rem;
        text-align: center;
    }

    .mobile-filter-sheet-handle {
        position: absolute;
        top: 0.4rem;
        right: 50%;
        width: 2.75rem;
        height: 0.25rem;
        border-radius: 999px;
        background: var(--gs-border-strong);
        transform: translateX(50%);
    }

    .mobile-filter-sheet-close {
        display: inline-flex;
        width: 2.75rem;
        height: 2.75rem;
        grid-column: 3;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--gs-border);
        border-radius: 50%;
        color: var(--gs-text);
        background: var(--gs-bg-panel);
    }

    .filter-panel-body .row,
    .filter-panel-body form {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .filter-panel-body [class*="col-"] {
        width: 100%;
    }

    .view-toggle,
    .segmented-control,
    .nav-tabs {
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
        white-space: nowrap;
    }

    .dashboard-period-toolbar,
    .dashboard-period-controls,
    .dashboard-period-copy {
        width: 100%;
    }

    .dashboard-period-toolbar {
        display: grid;
        gap: 0.75rem;
    }

    .dashboard-period-controls select,
    .dashboard-period-controls .form-select {
        width: 100%;
    }

    .dashboard-kpi-panel .row {
        display: flex;
        flex-wrap: nowrap !important;
        margin-inline: calc(var(--mobile-page-gutter) * -1);
        padding-inline: var(--mobile-page-gutter);
        overflow-x: auto;
        scroll-padding-inline: var(--mobile-page-gutter);
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .dashboard-kpi-panel .row > [class*="col-"] {
        width: min(84vw, 21rem);
        max-width: min(84vw, 21rem);
        flex: 0 0 min(84vw, 21rem);
        scroll-snap-align: start;
    }

    .dashboard-kpi-card {
        min-height: 13rem;
    }

    .dashboard-chart-card,
    .next-event-panel {
        height: auto !important;
        min-height: 0;
    }

    .dashboard-chart-card .chart-container {
        min-height: 15rem;
        height: 15rem;
    }

    .next-event-panel {
        margin-top: 0.25rem;
    }

    .app-main-content > .row > .col-lg-4:has(.next-event-panel) {
        order: 1;
    }

    .app-main-content > .row > .col-lg-8:has(.dashboard-chart-card) {
        order: 2;
    }

    .dashboard-month-timeline {
        display: grid;
        gap: 0.625rem;
    }

    .dashboard-month-gig {
        display: grid;
        grid-template-columns: 3rem minmax(0, 1fr);
        gap: 0.5rem;
        align-items: stretch;
    }

    .dashboard-month-gig-date {
        grid-column: 1;
        grid-row: 1;
        align-self: stretch;
    }

    .dashboard-month-gig-rail {
        display: none;
    }

    .dashboard-month-gig-card {
        display: grid;
        grid-column: 2;
        grid-row: 1;
        grid-template-columns: 2.65rem minmax(0, 1fr);
        gap: 0.55rem;
        min-width: 0;
        margin: 0;
        padding: 0.625rem;
    }

    .dashboard-month-gig-media,
    .dashboard-month-gig-media img,
    .dashboard-month-gig-media-fallback {
        width: 2.65rem;
        height: 2.65rem;
    }

    .dashboard-month-gig-media {
        grid-column: 1;
        grid-row: 1;
    }

    .dashboard-month-gig-content {
        display: grid;
        grid-column: 2;
        grid-row: 1;
        grid-template-areas:
            "heading"
            "meta"
            "lineup";
        grid-template-columns: minmax(0, 1fr);
        gap: 0.3rem;
    }

    .dashboard-month-gig-heading,
    .dashboard-month-gig-meta {
        min-width: 0;
    }

    .dashboard-month-gig-meta {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.25rem;
    }

    .dashboard-month-gig-lineup {
        justify-content: flex-start;
    }

    .dashboard-month-gig-side {
        display: flex;
        grid-column: 1 / -1;
        grid-row: 2;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        padding-top: 0.45rem;
        border-top: 1px solid var(--gs-border);
    }

    .dashboard-quick-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.5rem;
    }

    .dashboard-quick-actions .btn {
        min-width: 0;
        min-height: 4.75rem;
        flex-direction: column;
        white-space: normal;
    }

    .table-responsive {
        overflow: visible;
    }

    .mobile-card-table,
    .mobile-card-table tbody,
    .mobile-card-table tr,
    .mobile-card-table td {
        display: block;
        width: 100%;
    }

    .mobile-card-table {
        border: 0 !important;
        background: transparent !important;
    }

    .mobile-card-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .mobile-card-table tbody {
        display: grid;
        gap: 0.75rem;
    }

    .mobile-card-table tbody tr {
        padding: 0.8rem 0.9rem;
        border: 1px solid var(--gs-border);
        border-radius: 1rem;
        background: var(--gs-bg-panel);
        box-shadow: 0 0.55rem 1.35rem rgba(0, 0, 0, 0.18);
    }

    .mobile-card-table tbody tr:has(td[colspan]) {
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .mobile-card-table tbody td {
        display: grid;
        min-height: 2.35rem;
        grid-template-columns: minmax(5.5rem, 38%) minmax(0, 1fr);
        align-items: center;
        gap: 0.75rem;
        padding: 0.45rem 0 !important;
        border: 0 !important;
        text-align: left;
        white-space: normal !important;
    }

    .mobile-card-table tbody td:not(:last-child) {
        border-bottom: 1px solid color-mix(in srgb, var(--gs-border) 62%, transparent) !important;
    }

    .mobile-card-table tbody td::before {
        content: attr(data-mobile-label);
        color: var(--gs-text-muted);
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.02em;
        text-align: right;
        text-transform: uppercase;
    }

    .mobile-card-table tbody td[colspan] {
        display: block;
        text-align: right;
    }

    .mobile-card-table tbody td[colspan]::before,
    .mobile-card-table tbody td:empty::before {
        display: none;
    }

    .label-manager-card {
        border: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }

    .label-manager-card > .table-responsive {
        overflow: visible;
    }

    .label-manager-table.mobile-card-table th:first-child,
    .label-manager-table.mobile-card-table td:first-child,
    .label-manager-table.mobile-card-table th:nth-child(2),
    .label-manager-table.mobile-card-table td:nth-child(2) {
        width: auto;
        min-width: 0;
    }

    .label-manager-table.mobile-card-table tbody tr {
        padding: 0.9rem 1rem;
        overflow: hidden;
    }

    .label-manager-table.mobile-card-table tbody td {
        display: block;
        min-height: 0;
        padding: 0.85rem 0 !important;
        text-align: right;
    }

    .label-manager-table.mobile-card-table tbody td:first-child {
        padding-top: 0 !important;
    }

    .label-manager-table.mobile-card-table tbody td:last-child {
        padding-bottom: 0 !important;
    }

    .label-manager-table.mobile-card-table tbody td::before {
        display: block;
        margin-bottom: 0.55rem;
        line-height: 1.2;
    }

    .label-manager-name-form {
        align-items: stretch;
        display: grid;
        gap: 0.65rem;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .label-manager-preview {
        min-height: 1.55rem;
        justify-content: flex-start;
    }

    .label-manager-preview .event-label-chip {
        max-width: 100%;
        white-space: nowrap;
    }

    .label-manager-name-form .form-control {
        width: 100%;
    }

    .label-color-options {
        width: 100%;
        min-height: 2rem;
        flex-wrap: nowrap;
        gap: 0.45rem;
        overflow-x: auto;
        padding: 0.35rem 0.2rem;
        scrollbar-width: none;
    }

    .label-color-options::-webkit-scrollbar {
        display: none;
    }

    .label-color-option span {
        width: 1.25rem;
        height: 1.25rem;
    }

    .label-manager-name-form .btn,
    .label-manager-delete-form .btn {
        width: 100%;
        min-height: 2.75rem;
    }

    .label-manager-usage {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        width: 100%;
        margin: 0;
        padding: 0.15rem 0;
    }

    .label-manager-usage strong,
    .label-manager-usage small {
        min-width: 0;
    }

    .label-manager-usage small {
        text-align: left;
    }

    .label-manager-delete-form {
        width: 100%;
    }

    .finance-priority-grid,
    .finance-overview-grid {
        grid-template-columns: 1fr !important;
    }

    .finance-priority-card,
    .finance-cashflow-card {
        min-height: 0 !important;
    }

    .finance-priority-summary-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .finance-priority-summary-row .btn {
        width: 100%;
    }

    .finance-cashflow-metrics {
        grid-template-columns: 1fr !important;
    }

    .finance-cashflow-metrics > * {
        padding-block: 0.75rem;
        border-left: 0 !important;
        border-bottom: 1px solid var(--gs-border);
    }

    .calendar-toolbar,
    .calendar-header-controls {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .fc .fc-toolbar.fc-header-toolbar {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 0.625rem;
        align-items: center;
        margin-bottom: 0.75rem;
    }

    .fc .fc-toolbar-chunk:nth-child(1) {
        display: flex;
        grid-column: 1;
        grid-row: 1;
        gap: 0.35rem;
    }

    .fc .fc-toolbar-chunk:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
        justify-content: flex-end;
        min-width: 0;
    }

    .fc .fc-toolbar-chunk:nth-child(2) .fc-toolbar-title {
        text-align: left;
    }

    .fc .fc-toolbar-chunk:nth-child(3) {
        display: flex;
        min-width: 0;
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .fc .fc-toolbar-chunk:nth-child(3) .fc-button-group {
        display: flex;
        width: 100%;
    }

    .fc .fc-toolbar-title {
        font-size: 1.05rem;
    }

    .fc .fc-button {
        min-width: 2.75rem;
        min-height: 2.75rem;
        padding: 0.45rem 0.65rem;
    }

    .fc .fc-periodDay-button,
    .fc .fc-periodWeek-button,
    .fc .fc-periodMonth-button,
    .fc .fc-periodYear-button {
        flex: 1 1 0;
        font-size: 0.8125rem;
        min-width: 0;
        padding-inline: 0.5rem;
        width: auto;
    }

    .fc .fc-today-button {
        display: none !important;
    }

    .fc .fc-col-header-cell-cushion,
    .fc .fc-daygrid-day-number {
        font-size: 0.8rem;
    }

    .fc .fc-daygrid-day-top {
        min-height: 1.75rem;
    }

    .fc .fc-dayGridMonth-view .fc-daygrid-day-frame {
        min-height: 5.25rem;
    }

    .fc .fc-timegrid .fc-daygrid-day-frame {
        min-height: 2rem;
    }

    .fc .fc-multimonth .fc-daygrid-day-frame {
        min-height: 4.25rem;
    }

    .fc .fc-daygrid-day.is-mobile-selected-day {
        background: color-mix(in srgb, var(--gs-primary) 14%, transparent);
        box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gs-primary) 72%, transparent);
    }

    .fc .fc-daygrid-day-events {
        display: block;
        min-height: 1.4rem;
        margin: 0.1rem 0 0;
    }

    .fc .fc-daygrid-event {
        width: auto;
        height: auto;
        margin: 0.08rem 0.06rem;
    }

    .fc .story-calendar-chip {
        display: block;
        min-height: 1.35rem;
        padding: 0.2rem 0.16rem;
        border: 0;
        border-radius: 0.2rem;
        background: var(--calendar-event-color);
        color: #080a0d;
        box-shadow: none;
    }

    .fc .story-calendar-chip-marker,
    .fc .fc-daygrid-event-dot,
    .fc .fc-daygrid-event .story-calendar-chip-time {
        display: none;
    }

    .fc .story-calendar-chip-copy {
        display: block;
        width: 100%;
    }

    .fc .story-calendar-chip-title {
        display: block;
        color: inherit;
        font-size: 0.6875rem;
        font-weight: 650;
        line-height: 1.25;
    }

    .fc .story-calendar-chip-subtitle {
        display: block;
        color: inherit;
        font-size: 0.625rem;
        line-height: 1.2;
        opacity: 0.8;
    }

    .fc .fc-dayGridMonth-view .story-calendar-chip-title {
        font-size: 0.625rem;
    }

    .fc .fc-dayGridMonth-view .story-calendar-chip-title,
    .fc .fc-dayGridMonth-view .story-calendar-chip-subtitle {
        text-overflow: clip;
    }

    .fc .fc-timegrid-axis,
    .fc .fc-timegrid-slot-label {
        width: 2.65rem;
    }

    .fc .fc-timegrid-axis-cushion,
    .fc .fc-timegrid-slot-label-cushion {
        padding-inline: 0.2rem;
        color: var(--gs-text-muted);
        font-size: 0.6875rem;
        font-weight: 500;
    }

    .fc .fc-timegrid-axis-cushion {
        max-width: 2.65rem;
        white-space: normal;
    }

    .fc .fc-timegrid-col-events {
        margin-inline: 0.05rem;
    }

    .fc .fc-timegrid-event {
        margin: 0.06rem 0.03rem;
    }

    .fc .fc-timegrid-event .fc-event-main {
        height: 100%;
        padding: 0;
    }

    .fc .fc-timegrid-event .story-calendar-chip {
        height: 100%;
        padding: 0.25rem 0.18rem;
    }

    .fc .fc-timegrid-event .story-calendar-chip-time {
        display: block;
        margin-bottom: 0.2rem;
        color: inherit;
        font-size: 0.625rem;
        font-weight: 600;
        white-space: nowrap;
    }

    .fc .fc-timegrid-event .story-calendar-chip-title,
    .fc .fc-timegrid-event .story-calendar-chip-subtitle {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .fc .fc-timegrid-event .story-calendar-chip-subtitle {
        -webkit-line-clamp: 2;
    }

    .fc .fc-timegrid-event-short .story-calendar-chip-title {
        -webkit-line-clamp: 2;
    }

    .fc .fc-timegrid-event-short .story-calendar-chip-time,
    .fc .fc-timegrid-event-short .story-calendar-chip-subtitle {
        display: none;
    }

    .fc .fc-daygrid-more-link,
    .fc .fc-timegrid-more-link {
        display: block;
        border-radius: 0.2rem;
        background: rgba(var(--gs-primary-rgb), 0.16);
        color: var(--gs-primary);
        font-size: 0.7rem;
        font-weight: 750;
        text-align: center;
    }

    .fc .fc-daygrid-more-link {
        padding: 0.3rem 0.1rem;
        margin: 0.1rem 0.06rem;
    }

    .fc .fc-timegrid-more-link-inner {
        padding: 0.25rem 0.1rem;
    }

    .fc .mobile-calendar-weekday {
        display: grid;
        gap: 0.2rem;
        padding-block: 0.2rem;
        font-size: 0.68rem;
        font-weight: 500;
    }

    .fc .mobile-calendar-weekday strong {
        font-size: 0.95rem;
    }

    .mobile-calendar-day-panel {
        display: grid;
        gap: 0.75rem;
        margin-top: 0.75rem;
        padding: 1rem;
        border: 1px solid var(--gs-border);
        border-radius: 1rem;
        background: var(--gs-bg-panel);
        box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.2);
    }

    .mobile-calendar-day-header {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .mobile-calendar-create {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.4rem;
        min-height: 44px;
        flex: 0 0 auto;
    }

    .mobile-calendar-day-header strong {
        flex: 1 1 9rem;
        display: block;
        color: var(--gs-text);
        font-family: var(--gs-display-font);
        font-size: 1rem;
        font-weight: 800;
        text-transform: capitalize;
    }

    .mobile-calendar-day-list {
        display: grid;
        gap: 0.5rem;
    }

    .mobile-calendar-event-row {
        display: grid;
        min-height: 4rem;
        grid-template-columns: minmax(0, 1fr) 1.5rem;
        align-items: center;
        gap: 0.625rem;
        padding: 0.65rem 0.7rem;
        border: 1px solid var(--gs-border);
        border-radius: 0.875rem;
        background: color-mix(in srgb, var(--gs-bg-card) 92%, var(--gs-primary) 8%);
        color: var(--gs-text);
        text-decoration: none;
    }

    .mobile-calendar-event-time {
        grid-column: 1;
        color: var(--gs-primary);
        font-size: 0.85rem;
        font-weight: 800;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }

    .mobile-calendar-event-copy {
        grid-column: 1;
        display: grid;
        min-width: 0;
        gap: 0.15rem;
    }

    .mobile-calendar-event-copy strong,
    .mobile-calendar-event-copy span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-calendar-event-copy span {
        color: var(--gs-text-muted);
        font-size: 0.76rem;
    }

    .mobile-calendar-event-row > .bi {
        display: grid;
        grid-column: 2;
        grid-row: 1 / span 2;
        width: 1.5rem;
        height: 2.75rem;
        place-items: center;
        color: var(--gs-primary);
    }

    .mobile-calendar-day-empty {
        display: flex;
        min-height: 7rem;
        align-items: center;
        justify-content: center;
        gap: 0.75rem;
        color: var(--gs-text-muted);
        text-align: right;
    }

    .mobile-calendar-day-empty > .bi {
        color: var(--gs-primary);
        font-size: 1.45rem;
    }

    .mobile-calendar-day-empty div {
        display: grid;
        gap: 0.2rem;
    }

    .mobile-calendar-day-empty strong {
        color: var(--gs-text);
    }

    .mobile-calendar-day-empty span {
        font-size: 0.78rem;
    }

    .venue-map-layout,
    .performance-map-layout {
        grid-template-columns: 1fr !important;
    }

    .venue-map-canvas,
    .performance-map-canvas {
        order: 1;
    }

    .venue-map-list,
    .venue-map-sidebar,
    .performance-map-list,
    .performance-map-sidebar {
        order: 2;
        max-height: 42vh;
        padding: 0.65rem;
        border: 1px solid var(--gs-border);
        border-radius: 1rem 1rem 0 0;
        background: var(--gs-bg-panel);
        overflow-y: auto;
    }

    .venue-map-canvas,
    .performance-map-canvas,
    .leaflet-container {
        min-height: 58vh;
    }

    /* Keep dashboard hover/focus details inside narrow mobile viewports. */
    .next-gig-contact-tooltip {
        right: auto;
        left: 0;
        width: min(14rem, calc(100vw - (2 * var(--mobile-page-gutter))));
        max-width: calc(100vw - (2 * var(--mobile-page-gutter)));
        min-width: 0;
        translate: var(--mobile-tooltip-shift-x, 0px) 0;
    }

    .next-gig-contact-tooltip::after {
        right: auto;
        left: 0.75rem;
    }

    .next-gig-lineup .lineup-member-tooltip {
        right: auto;
        left: 0;
        width: min(12.5rem, calc(100vw - (2 * var(--mobile-page-gutter))));
        max-width: calc(100vw - (2 * var(--mobile-page-gutter)));
        min-width: 0;
        transform: none;
        translate: var(--mobile-tooltip-shift-x, 0px) 0;
    }

    .next-gig-lineup .lineup-member-tooltip::after {
        right: auto;
        left: 0.75rem;
        transform: rotate(-45deg);
    }

    body.lineup-sheet-open {
        overflow: hidden;
    }

    body.lineup-sheet-open .mobile-event-fab,
    body.lineup-sheet-open .mobile-bottom-nav {
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
    }

    .lineup-overflow-backdrop.is-open {
        backdrop-filter: blur(2px);
        display: block;
    }

    .next-gig-lineup-popover.is-portal-open {
        bottom: max(0.5rem, env(safe-area-inset-bottom)) !important;
        right: var(--mobile-page-gutter) !important;
        max-height: none;
        max-width: none;
        min-width: 0;
        left: var(--mobile-page-gutter) !important;
        top: max(0.75rem, env(safe-area-inset-top)) !important;
        width: auto;
    }

    .next-gig-lineup-popover-header {
        min-height: 4rem;
        padding: 0.78rem 1rem 0.78rem 0.85rem;
    }

    .next-gig-lineup-popover-heading strong {
        font-size: 1rem;
    }

    .next-gig-lineup-popover-heading small {
        font-size: 0.76rem;
    }

    .next-gig-lineup-popover-list {
        gap: 0.3rem;
        padding: 0.55rem;
    }

    .next-gig-lineup-popover-item {
        min-height: 3.45rem;
        padding: 0.52rem 0.55rem;
    }

    .next-gig-lineup-popover-avatar,
    .next-gig-lineup-popover-avatar img,
    .next-gig-lineup-popover-avatar .dashboard-lineup-avatar-fallback {
        height: 2.35rem;
        width: 2.35rem;
    }

    .next-gig-lineup-popover-avatar {
        flex-basis: 2.35rem;
    }

    .next-gig-lineup-popover-copy strong {
        font-size: 0.88rem;
    }

    .next-gig-lineup-popover-copy small {
        font-size: 0.74rem;
    }

    .empty-state,
    .finance-priority-empty {
        min-height: 9rem;
        align-content: center;
        justify-content: center;
        text-align: center;
    }

    .form-row,
    .form-grid,
    .member-form-grid,
    .contact-form-grid,
    .venue-form-grid,
    .gig-form-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 359.98px) {
    :root {
        --mobile-page-gutter: 0.75rem;
    }
}

@media (min-width: 430px) and (max-width: 767.98px) {
    :root {
        --mobile-page-gutter: 1.25rem;
    }
}

@media (max-width: 390px) {
    .view-scope-segment {
        padding-inline: 0.45rem;
        font-size: 0.72rem;
    }

    .dashboard-kpi-panel .row > [class*="col-"] {
        width: 86vw;
        max-width: 86vw;
        flex-basis: 86vw;
    }
}

/* Mobile dashboard, compact musician-first overview */
.dashboard-mobile-period-row,
.dashboard-mobile-kpi-summary,
.dashboard-mobile-kpi-progress,
.dashboard-mobile-location-summary,
.dashboard-period-backdrop,
.dashboard-period-sheet,
.dashboard-create-backdrop,
.dashboard-create-sheet,
.dashboard-month-gig-chevron,
.dashboard-unpaid-action-mobile,
.dashboard-unpaid-icon {
    display: none;
}

@media (max-width: 767.98px) {
    body.dashboard-period-open,
    body.dashboard-create-open {
        overflow: hidden;
    }

    body.dashboard-period-open .app-main-content:has(.dashboard-page) {
        z-index: 1065;
    }

    .app-topbar-actions {
        gap: 0.45rem;
    }

    .app-topbar {
        flex-wrap: nowrap;
        gap: 0.5rem;
        position: fixed;
        left: 0;
        right: 0;
        width: 100%;
    }

    .app-topbar .app-topbar-title {
        flex: 1 1 0;
    }

    .app-main-content {
        padding-top: calc(var(--app-header-height) + 0.5rem) !important;
    }

    .app-main-content:has(.dashboard-page) {
        padding-bottom: 0 !important;
    }

    .app-topbar-actions > .view-scope-switcher {
        display: none !important;
    }

    .mobile-more-scope-form {
        display: grid;
        align-items: stretch;
        gap: 0.5rem;
        padding-block: 0.85rem;
        border-bottom: 1px solid var(--gs-border);
        width: 100%;
    }

    .mobile-more-scope-title {
        color: var(--gs-text-muted);
        font-size: 0.8rem;
        font-weight: 750;
    }

    .mobile-more-scope-options {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem;
        width: 100%;
        background: transparent;
        border: 0;
        border-radius: 0;
        overflow: visible;
    }

    .mobile-more-scope-options::before {
        display: none;
    }

    .mobile-more-scope-option {
        display: grid;
        grid-template-columns: 1rem minmax(0, 1fr) 0.8rem;
        align-items: start;
        gap: 0.4rem;
        min-width: 0;
        min-height: 4.25rem;
        padding: 0.65rem;
        border: 1px solid var(--gs-border);
        border-radius: 0.7rem;
        background: var(--gs-bg-panel);
        color: var(--gs-text-muted);
        text-align: start;
        white-space: normal;
    }

    .mobile-more-scope-option:last-child {
        border-inline-end: 1px solid var(--gs-border);
    }

    .mobile-more-scope-option.active {
        border-color: rgba(var(--gs-primary-rgb), 0.65);
        background: rgba(var(--gs-primary-rgb), 0.1);
        color: var(--gs-primary);
    }

    .mobile-more-scope-option:focus-visible {
        outline: 2px solid var(--gs-primary);
        outline-offset: 2px;
    }

    .mobile-more-scope-option-icon,
    .mobile-more-scope-option-check {
        margin-top: 0.15rem;
    }

    .mobile-more-scope-option-copy {
        display: grid !important;
        gap: 0.2rem;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .mobile-more-scope-option-copy strong {
        font-size: 0.8rem;
        line-height: 1.25;
    }

    .mobile-more-scope-option-copy small {
        color: var(--gs-text-muted);
        font-size: 0.7rem;
        font-weight: 500;
        line-height: 1.3;
    }

    .mobile-more-scope-option-check {
        visibility: hidden;
        font-size: 0.8rem !important;
    }

    .mobile-more-scope-option.active .mobile-more-scope-option-check {
        visibility: visible;
    }

    .mobile-more-scope-hint {
        margin: 0;
        color: var(--gs-text-muted);
        font-size: 0.75rem;
        line-height: 1.4;
    }

    .dashboard-page {
        --dashboard-mobile-inner-gap: 0.5rem;
        --dashboard-mobile-section-gap: 0.75rem;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: var(--dashboard-mobile-section-gap);
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding-bottom: var(--dashboard-mobile-section-gap);
    }

    .dashboard-page > .mb-4,
    .dashboard-page > .mt-4,
    .dashboard-page .mb-4,
    .dashboard-page .mt-4 {
        margin-block: 0 !important;
    }

    .dashboard-page .dashboard-period-toolbar {
        display: block;
    }

    .dashboard-page .dashboard-period-form {
        margin-bottom: 0;
    }

    .dashboard-page .dashboard-period-toolbar > .dashboard-period-copy,
    .dashboard-page .dashboard-period-toolbar > .dashboard-period-controls {
        display: none !important;
    }

    .dashboard-mobile-period-row {
        align-items: center;
        display: grid;
        grid-template-columns: 1.75rem minmax(0, 1fr) auto;
        gap: 0.72rem;
        width: 100%;
        min-height: 4.25rem;
        padding: 0.68rem 0.82rem;
        border: 1px solid rgba(255, 255, 255, 0.16);
        border-radius: 0.9rem;
        color: var(--gs-text);
        background: var(--gs-bg-panel);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
        text-align: right;
    }

    .dashboard-mobile-period-copy {
        display: grid;
        min-width: 0;
        gap: 0.12rem;
    }

    .dashboard-mobile-period-icon {
        color: var(--gs-text-muted);
        font-size: 1.18rem;
        line-height: 1;
    }

    .dashboard-mobile-period-copy strong {
        min-width: 0;
        overflow: hidden;
        color: var(--gs-text);
        font-size: 0.9rem;
        font-weight: 800;
        line-height: 1.16;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dashboard-mobile-period-copy small {
        min-width: 0;
        overflow: hidden;
        color: var(--gs-text-muted);
        font-size: 0.7rem;
        font-weight: 600;
        line-height: 1.18;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dashboard-mobile-period-chevron {
        color: var(--gs-text-muted);
        font-size: 0.88rem;
    }

    .dashboard-period-backdrop,
    .dashboard-create-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1060;
        display: block;
        opacity: 0;
        background: rgba(0, 0, 0, 0.72);
        backdrop-filter: blur(3px);
        visibility: hidden;
        pointer-events: none;
        transition:
            opacity var(--mobile-sheet-motion-duration) ease,
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .dashboard-period-backdrop.is-open,
    .dashboard-create-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .dashboard-period-sheet,
    .dashboard-create-sheet {
        position: fixed;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1070;
        display: block;
        max-height: min(82vh, 42rem);
        padding: 1.1rem 1rem calc(1rem + env(safe-area-inset-bottom));
        border: 1px solid var(--gs-border-strong);
        border-bottom: 0;
        border-radius: 1.25rem 1.25rem 0 0;
        background: var(--gs-bg-elevated);
        box-shadow: 0 -1.25rem 3rem rgba(0, 0, 0, 0.5);
        overflow-y: auto;
        pointer-events: none;
        transform: translateY(104%);
        transition:
            transform var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease),
            visibility 0s linear var(--mobile-sheet-motion-duration);
        visibility: hidden;
    }

    .dashboard-period-sheet.is-open,
    .dashboard-create-sheet.is-open {
        pointer-events: auto;
        transform: translateY(0);
        visibility: visible;
        transition-delay: 0s;
    }

    .dashboard-period-backdrop {
        background: rgba(0, 0, 0, 0.78);
        backdrop-filter: blur(2px);
    }

    .dashboard-period-sheet {
        isolation: isolate;
        border: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 1.5rem 1.5rem 0 0;
        background: #0d0e11;
        box-shadow:
            0 -1px 0 rgba(var(--gs-primary-rgb), 0.08),
            0 -1.5rem 3.75rem rgba(0, 0, 0, 0.72);
    }

    .dashboard-period-sheet > .mobile-sheet-handle {
        width: 2.75rem;
        height: 0.25rem;
        margin: 0 auto 0.45rem;
        background: rgba(255, 255, 255, 0.3);
    }

    .dashboard-period-sheet .dashboard-period-sheet-header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 2.5rem;
        min-height: 3.25rem;
        margin-bottom: 0.75rem;
        padding: 0 0 0.75rem;
    }

    .dashboard-period-sheet .dashboard-period-sheet-header .mobile-sheet-close {
        position: static;
        width: 2.5rem;
        height: 2.5rem;
        align-self: center;
        justify-self: end;
        border-color: rgba(255, 255, 255, 0.14);
        background: #17181c;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    }

    .dashboard-period-sheet-header,
    .dashboard-create-sheet-header {
        align-items: center;
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        margin-bottom: 0.8rem;
        padding-top: 0.25rem;
    }

    .dashboard-period-sheet-header > div,
    .dashboard-create-sheet-header > div {
        display: grid;
        gap: 0.12rem;
    }

    .dashboard-period-sheet-header span,
    .dashboard-create-sheet-header span {
        color: var(--gs-primary);
        font-size: 0.68rem;
        font-weight: 900;
        letter-spacing: 0.05em;
        text-transform: uppercase;
    }

    .dashboard-period-sheet-header strong,
    .dashboard-create-sheet-header strong {
        color: var(--gs-text);
        font-size: 1.05rem;
    }

    .dashboard-period-sheet-options,
    .dashboard-create-sheet-links {
        display: grid;
        gap: 0.45rem;
    }

    .dashboard-period-sheet-option {
        align-items: center;
        display: grid;
        grid-template-columns: 1.8rem minmax(0, 1fr) auto;
        gap: 0.65rem;
        min-height: 4rem;
        padding: 0.58rem 0.72rem;
        border: 1px solid var(--gs-border);
        border-radius: 0.8rem;
        color: var(--gs-text);
        background: var(--gs-bg-panel);
        font: inherit;
        text-align: right;
    }

    .dashboard-period-sheet-option.active {
        border-color: rgba(var(--gs-primary-rgb), 0.72);
        color: var(--gs-primary);
        background: rgba(var(--gs-primary-rgb), 0.09);
    }

    .dashboard-period-sheet-option-icon {
        color: var(--gs-text-muted);
        font-size: 1.18rem;
        line-height: 1;
    }

    .dashboard-period-sheet-option-copy {
        display: grid;
        min-width: 0;
        gap: 0.1rem;
    }

    .dashboard-period-sheet-option-copy strong {
        min-width: 0;
        overflow: hidden;
        color: var(--gs-text);
        font-size: 0.88rem;
        font-weight: 800;
        line-height: 1.16;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dashboard-period-sheet-option-copy small {
        min-width: 0;
        overflow: hidden;
        color: var(--gs-text-muted);
        font-size: 0.68rem;
        font-weight: 600;
        line-height: 1.18;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dashboard-period-sheet-option-state {
        color: var(--gs-primary);
        font-size: 0.92rem;
        line-height: 1;
    }

    .dashboard-period-sheet-option.active .dashboard-period-sheet-option-icon {
        color: var(--gs-primary);
    }

    .dashboard-period-sheet-custom {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.6rem;
        margin-top: 0.65rem;
        padding-top: 0.65rem;
        border-top: 1px solid var(--gs-border);
    }

    .dashboard-period-sheet-custom label {
        display: grid;
        gap: 0.3rem;
        min-width: 0;
        color: var(--gs-text-muted);
        font-size: 0.7rem;
        font-weight: 800;
    }

    .dashboard-period-sheet-custom > .analytics-period-actions {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-period-sheet-custom .btn {
        min-height: 2.75rem;
    }

    .dashboard-create-sheet-links a {
        align-items: center;
        display: grid;
        grid-template-columns: 2.25rem minmax(0, 1fr) auto;
        gap: 0.7rem;
        min-height: 3.5rem;
        padding: 0.5rem 0.75rem;
        border: 1px solid var(--gs-border);
        border-radius: 0.78rem;
        color: var(--gs-text);
        background: var(--gs-bg-panel);
        text-decoration: none;
    }

    .dashboard-create-sheet-links > a > i:first-child {
        align-items: center;
        display: inline-flex;
        width: 2.25rem;
        height: 2.25rem;
        justify-content: center;
        border-radius: 50%;
        color: var(--gs-primary);
        background: rgba(var(--gs-primary-rgb), 0.11);
        font-size: 1.05rem;
    }

    .dashboard-create-sheet-links > a > span {
        min-width: 0;
    }

    .dashboard-create-sheet-links strong {
        display: block;
        color: var(--gs-text);
        font-size: 0.86rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .dashboard-create-sheet-links > a > i:last-child {
        color: var(--gs-text-muted);
        font-size: 0.7rem;
    }

    .dashboard-page .dashboard-kpi-panel {
        display: grid;
        gap: var(--dashboard-mobile-inner-gap);
        width: 100%;
        max-width: 100%;
        min-width: 0;
        transform: none !important;
    }

    .dashboard-page .dashboard-kpi-panel .row {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--dashboard-mobile-inner-gap);
        margin: 0;
        padding: 0;
        overflow: visible;
    }

    .dashboard-page .dashboard-kpi-panel .row > [class*="col-"] {
        width: auto;
        max-width: none;
        margin-top: 0;
        padding: 0;
        scroll-snap-align: none;
    }

    .dashboard-page .dashboard-kpi-panel .row > [class*="col-"]:nth-child(3) {
        grid-column: 1 / -1;
    }

    .dashboard-page .dashboard-kpi-card {
        min-height: clamp(12.25rem, 54vw, 13.25rem);
        height: 100%;
        padding: 0.85rem;
        cursor: pointer;
    }

    .dashboard-page .dashboard-location-kpi-card {
        min-height: 6.5rem;
    }

    .dashboard-page .dashboard-kpi-content,
    .dashboard-page .dashboard-kpi-action {
        display: none !important;
    }

    .dashboard-mobile-kpi-summary {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-content: start;
        gap: 0.35rem 0.55rem;
        min-width: 0;
        height: 100%;
    }

    .dashboard-mobile-kpi-progress {
        align-content: start;
        display: grid;
        gap: 0.28rem;
        height: 100%;
        min-width: 0;
    }

    .dashboard-mobile-kpi-ring-wrap {
        display: grid;
        justify-items: center;
        min-width: 0;
    }

    .dashboard-mobile-kpi-ring {
        --mobile-kpi-ring-size: clamp(6.95rem, 36.5vw, 8.95rem);
        display: grid;
        height: var(--mobile-kpi-ring-size);
        place-items: center;
        position: relative;
        width: var(--mobile-kpi-ring-size);
    }

    .dashboard-mobile-kpi-ring::before {
        background: radial-gradient(circle, rgba(var(--gs-primary-rgb), 0.075), transparent 68%);
        border-radius: 50%;
        content: "";
        inset: 0.38rem;
        position: absolute;
    }

    .dashboard-mobile-kpi-ring svg {
        height: 100%;
        overflow: visible;
        position: relative;
        transform: rotate(90deg);
        width: 100%;
        z-index: 1;
    }

    .dashboard-mobile-kpi-ring-track,
    .dashboard-mobile-kpi-ring-value {
        fill: none;
        stroke-width: 7;
    }

    .dashboard-mobile-kpi-ring-track {
        stroke: rgba(var(--gs-primary-rgb), 0.2);
    }

    .dashboard-mobile-kpi-ring-value {
        filter: drop-shadow(0 0 0.34rem rgba(var(--gs-primary-rgb), 0.52));
        opacity: var(--mobile-kpi-ring-opacity, 1);
        stroke: var(--gs-primary);
        stroke-dasharray: var(--mobile-kpi-ring-dash, 0) 314.16;
        stroke-linecap: round;
    }

    .dashboard-mobile-kpi-ring-center {
        align-items: center;
        display: flex;
        flex-direction: column;
        gap: 0.12rem;
        inset: 0;
        justify-content: center;
        line-height: 1;
        position: absolute;
        text-align: center;
        z-index: 2;
    }

    .dashboard-mobile-kpi-ring-center strong {
        color: var(--gs-text);
        font-size: clamp(1.38rem, 6vw, 1.78rem);
        font-variant-numeric: tabular-nums;
        font-weight: 950;
        letter-spacing: -0.035em;
        line-height: 0.95;
        max-width: 78%;
        white-space: nowrap;
    }

    .dashboard-mobile-kpi-ring-center > strong,
    .dashboard-mobile-kpi-ring-center > span {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .dashboard-mobile-kpi-ring-center strong.is-long {
        font-size: clamp(0.98rem, 4.5vw, 1.25rem);
        letter-spacing: -0.03em;
    }

    .dashboard-mobile-kpi-ring-center strong.is-xlong {
        font-size: clamp(0.74rem, 3.45vw, 0.98rem);
        letter-spacing: -0.04em;
    }

    .dashboard-mobile-kpi-ring-center span {
        color: var(--gs-text-muted);
        font-size: clamp(0.54rem, 2.35vw, 0.66rem);
        font-weight: 750;
        line-height: 1.1;
        max-width: 78%;
        transform: translateY(0.14rem);
        white-space: nowrap;
    }

    .dashboard-mobile-kpi-ring-center .dashboard-mobile-kpi-sublabel.is-long {
        font-size: clamp(0.46rem, 2vw, 0.56rem);
        letter-spacing: -0.015em;
    }

    .dashboard-kpi-ring-money .dashboard-mobile-kpi-ring-center > strong,
    .dashboard-kpi-ring-money .dashboard-mobile-kpi-ring-center > span {
        overflow: visible;
        text-overflow: clip;
    }

    .dashboard-kpi-ring-money .dashboard-mobile-kpi-ring-center .dashboard-kpi-currency,
    .dashboard-kpi-ring-money .dashboard-mobile-kpi-sublabel {
        overflow-wrap: normal;
        white-space: normal;
    }

    .dashboard-kpi-ring-money .dashboard-mobile-kpi-ring-center .dashboard-kpi-currency {
        font-size: 0.65rem;
        transform: none;
    }

    .dashboard-mobile-kpi-ring-trend {
        bottom: -0.16rem;
        border-radius: 0.45rem;
        font-size: 0.62rem;
        right: 50%;
        gap: 0.18rem;
        min-height: 1.35rem;
        padding: 0.2rem 0.34rem 0.2rem 0.42rem;
        pointer-events: none;
        position: absolute;
        transform: translateX(50%);
        z-index: 3;
    }

    .dashboard-mobile-kpi-ring-trend.stat-trend-up,
    .dashboard-mobile-location-trend.stat-trend-up {
        background: linear-gradient(-135deg, rgba(0, 80, 60, 0.98), rgba(0, 45, 36, 0.98));
        border-color: rgba(37, 235, 176, 0.72);
        box-shadow: 0 0.3rem 0.7rem rgba(0, 77, 58, 0.3);
        color: #eafff8;
    }

    .dashboard-mobile-kpi-ring-trend.stat-trend-down,
    .dashboard-mobile-location-trend.stat-trend-down {
        background: linear-gradient(-135deg, rgba(92, 21, 32, 0.99), rgba(50, 13, 19, 0.99));
        border-color: rgba(255, 111, 126, 0.78);
        box-shadow: 0 0.3rem 0.7rem rgba(102, 22, 31, 0.34);
        color: #fff7f8;
    }

    .dashboard-mobile-kpi-ring-trend.stat-trend-flat,
    .dashboard-mobile-kpi-ring-trend.stat-trend-neutral,
    .dashboard-mobile-location-trend.stat-trend-flat,
    .dashboard-mobile-location-trend.stat-trend-neutral {
        background: linear-gradient(-135deg, rgba(44, 47, 54, 0.98), rgba(24, 26, 30, 0.98));
        border-color: rgba(255, 255, 255, 0.2);
        color: rgba(255, 255, 255, 0.86);
    }

    .dashboard-mobile-kpi-ring-trend .bi,
    .dashboard-mobile-location-trend .bi,
    .dashboard-mobile-kpi-ring-trend.stat-trend-down .bi,
    .dashboard-mobile-location-trend.stat-trend-down .bi {
        font-size: 0.76rem;
        -webkit-text-stroke-width: 0.025rem;
    }

    .dashboard-mobile-kpi-context {
        align-items: baseline;
        align-self: end;
        color: var(--gs-text-muted);
        display: flex;
        flex-wrap: wrap;
        font-size: 0.62rem;
        font-weight: 600;
        gap: 0.1rem 0.2rem;
        justify-content: center;
        line-height: 1.25;
        margin-top: auto;
        min-height: 1.7em;
        text-align: center;
        transform: translateY(0.22rem);
    }

    .dashboard-mobile-kpi-context strong {
        color: var(--gs-primary);
        font-weight: 900;
    }

    .dashboard-mobile-kpi-empty {
        color: var(--gs-primary);
        font-size: 0.62rem;
        font-weight: 900;
        line-height: 1.25;
    }

    .dashboard-mobile-location-summary {
        display: grid;
        align-content: start;
        gap: 0.65rem;
        height: 100%;
        min-width: 0;
    }

    .dashboard-mobile-location-summary > .dashboard-mobile-kpi-label {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        width: 100%;
    }

    .dashboard-mobile-location-chevron {
        color: var(--gs-text-muted) !important;
        filter: none !important;
        font-size: 0.82rem !important;
        justify-self: end;
    }

    .dashboard-mobile-location-body {
        align-items: center;
        display: grid;
        gap: 0.85rem;
        grid-template-columns: minmax(5.6rem, auto) minmax(0, 1fr);
        min-width: 0;
    }

    .dashboard-mobile-location-value {
        align-items: center;
        align-self: center;
        border-left: 1px solid rgba(255, 255, 255, 0.12);
        display: flex;
        gap: 0.75rem;
        justify-content: flex-start;
        min-height: 2.5rem;
        padding-left: 0.85rem;
    }

    .dashboard-mobile-location-value > strong {
        color: var(--gs-text);
        font-size: 2.1rem;
        font-variant-numeric: tabular-nums;
        font-weight: 950;
        letter-spacing: -0.04em;
        line-height: 0.95;
    }

    .dashboard-mobile-location-trend {
        border-radius: 0.4rem;
        font-size: 0.58rem;
        gap: 0.16rem;
        margin-top: 0;
        min-height: 1.22rem;
        padding: 0.17rem 0.28rem 0.17rem 0.35rem;
        position: static;
        transform: none;
    }

    .dashboard-mobile-location-context {
        align-self: center;
        justify-content: flex-start;
        margin-top: 0;
        min-height: 0;
        min-width: 0;
        text-align: right;
        transform: none;
    }

    .dashboard-mobile-kpi-label {
        align-items: center;
        display: flex;
        grid-column: 1 / -1;
        gap: 0.34rem;
        color: var(--gs-text);
        font-size: 0.82rem;
        font-weight: 850;
    }

    .dashboard-mobile-kpi-label i {
        color: var(--gs-primary);
        font-size: 1rem;
    }

    .dashboard-mobile-kpi-label .dashboard-mobile-kpi-icon {
        filter: drop-shadow(0 0 0.24rem rgba(var(--gs-primary-rgb), 0.45));
        flex: 0 0 auto;
        font-size: 1rem;
        line-height: 1;
    }

    .dashboard-mobile-kpi-value {
        grid-column: 1 / -1;
        color: var(--gs-text);
        font-size: clamp(1.45rem, 7.2vw, 1.85rem);
        font-variant-numeric: tabular-nums;
        font-weight: 950;
        letter-spacing: -0.035em;
        line-height: 1.05;
        overflow-wrap: anywhere;
    }

    .dashboard-mobile-kpi-summary .stat-insight {
        grid-column: 1 / -1;
        margin: 0;
        color: var(--gs-text-muted);
        font-size: 0.72rem;
        line-height: 1.26;
    }

    .dashboard-mobile-kpi-summary .stat-insight strong {
        color: var(--gs-text);
    }

    .dashboard-mobile-kpi-trend {
        position: static;
        grid-column: 1 / -1;
        justify-self: start;
        margin-top: auto;
        transform: none;
    }

    .dashboard-page .alert.dashboard-unpaid-banner {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.65rem !important;
        min-height: 4.5rem;
        margin: 0 !important;
        padding: 0.7rem 0.75rem;
        border: 1px solid rgba(128, 45, 50, 0.48);
        border-radius: 0.8rem;
        background:
            radial-gradient(ellipse at 82% -12%, rgba(107, 35, 39, 0.18), transparent 62%),
            linear-gradient(-115deg, rgba(19, 14, 16, 0.99), rgba(37, 16, 19, 0.98) 60%, rgba(22, 13, 15, 0.99));
        box-shadow: 0 0.45rem 1.1rem rgba(44, 12, 17, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.025);
    }

    .dashboard-unpaid-icon {
        display: block;
        color: #fb7185;
        font-size: 1.1rem;
    }

    .dashboard-unpaid-copy {
        min-width: 0;
        font-size: 0.75rem;
        line-height: 1.35;
    }

    .dashboard-unpaid-banner .btn {
        min-height: 2.45rem;
        padding-inline: 0.65rem;
        font-size: 0.72rem;
        white-space: nowrap;
    }

    .dashboard-unpaid-banner .btn-unpaid-payouts,
    .dashboard-unpaid-banner .btn-unpaid-payouts:hover,
    .dashboard-unpaid-banner .btn-unpaid-payouts:focus-visible {
        background: transparent;
        border-color: rgba(var(--gs-primary-rgb), 0.82);
        box-shadow: none;
        color: var(--gs-primary);
    }

    .dashboard-unpaid-banner .btn-unpaid-payouts:hover,
    .dashboard-unpaid-banner .btn-unpaid-payouts:focus-visible {
        background: rgba(var(--gs-primary-rgb), 0.08);
        border-color: var(--gs-primary);
    }

    .dashboard-unpaid-action-full {
        display: none;
    }

    .dashboard-unpaid-action-mobile {
        display: inline;
    }

    .dashboard-page .dashboard-primary-row {
        --bs-gutter-y: var(--dashboard-mobile-section-gap);
        margin-top: 0;
    }

    .dashboard-page > .row {
        --bs-gutter-y: var(--dashboard-mobile-section-gap);
    }

    .dashboard-page .dashboard-primary-row > .col-lg-4 {
        order: 1;
    }

    .dashboard-page .dashboard-primary-row > .col-lg-8 {
        order: 2;
    }

    .dashboard-page .next-event-panel {
        background:
            radial-gradient(circle at 94% 4%, rgba(var(--gs-primary-rgb), 0.17), transparent 10rem),
            radial-gradient(circle at 12% 0%, rgba(var(--gs-primary-rgb), 0.105), transparent 13rem),
            radial-gradient(circle at 100% 100%, rgba(var(--gs-primary-rgb), 0.05), transparent 14rem),
            linear-gradient(-145deg, rgba(25, 23, 15, 0.99) 0%, rgba(15, 16, 19, 0.99) 48%, rgba(8, 9, 12, 1) 100%);
        margin-top: 0;
    }

    .dashboard-page .next-event-panel > .card-body {
        padding: 0.8rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated {
        --next-gig-avatar-size: 1.8rem;
        --next-gig-inline-padding: 0.8rem;
        --next-gig-label-height: 1.35rem;
        --next-gig-label-size: 0.62rem;
        --next-gig-meta-size: 0.8rem;
        --next-gig-title-size: 1.18rem;
        --next-gig-time-size: 1.08rem;
        background: transparent;
        border-radius: 0;
        box-shadow: none;
    }

    .dashboard-page .next-event-panel .next-gig-ticket-head {
        align-items: center;
        min-height: 0;
        padding: 0.15rem 0 0.65rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated.has-event-labels .next-gig-ticket-head {
        padding-top: 0;
    }

    .dashboard-page .next-event-panel .next-gig-kicker {
        margin-bottom: 0.3rem;
        font-size: 0.64rem;
    }

    .dashboard-page .next-event-panel .next-gig-date {
        width: 3.25rem;
        min-width: 3.25rem;
        height: 3.25rem;
    }

    .dashboard-page .next-event-panel .next-gig-primary-details {
        display: grid;
        grid-template-columns: 3.5rem minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-items: center;
        column-gap: 0.7rem;
        row-gap: 0.42rem;
        padding: 0.65rem 0 0.75rem;
    }

    .dashboard-page .next-event-panel .next-gig-venue-logo {
        align-self: start;
        display: inline-flex;
        flex-basis: 3.5rem;
        grid-column: 1;
        grid-row: 1 / span 2;
        height: 3.5rem;
        width: 3.5rem;
    }

    .dashboard-page .next-event-panel .next-gig-time-block {
        align-items: center;
        display: grid;
        gap: 0.4rem;
        grid-column: 2;
        grid-row: 1;
        grid-template-columns: 1rem minmax(0, 1fr);
    }

    .dashboard-page .next-event-panel .next-gig-time-icon {
        color: var(--gs-primary);
        display: block;
        font-size: 0.9rem;
        line-height: 1;
        text-align: center;
    }

    .dashboard-page .next-event-panel .next-gig-time-copy {
        align-items: baseline;
        display: flex;
        flex-wrap: wrap;
        gap: 0.22rem 0.35rem;
    }

    .dashboard-page .next-event-panel .next-gig-time-separator {
        color: var(--gs-text-muted);
        display: inline;
        font-size: 0.72rem;
    }

    .dashboard-page .next-event-panel .next-gig-time-value,
    .dashboard-page .next-event-panel .next-gig-weekday,
    .dashboard-page .next-event-panel .next-gig-primary-address .next-gig-address-value {
        font-size: 0.82rem;
        line-height: 1.28;
    }

    .dashboard-page .next-event-panel .next-gig-primary-address {
        grid-column: 2;
        grid-row: 2;
        gap: 0.4rem;
        grid-template-columns: 1rem minmax(0, 1fr);
    }

    .dashboard-page .next-event-panel .next-gig-primary-address i {
        font-size: 0.92rem;
    }

    .dashboard-page .next-event-panel .next-gig-labels {
        margin: 0;
        padding: 0 0 0.65rem;
    }

    .dashboard-page .next-event-panel .next-gig-primary-divider {
        margin-inline: 0;
    }

    .dashboard-page .next-event-panel .next-gig-meta-list,
    .dashboard-page .next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.35rem;
        padding: 0.65rem 0 0;
    }

    .dashboard-page .next-event-panel .next-gig-meta-list .next-gig-meta-item {
        align-content: center;
        align-items: center;
        column-gap: 0.45rem;
        grid-column: 1;
        grid-template-columns: 1rem 4rem minmax(0, 1fr);
        grid-template-rows: auto;
        row-gap: 0;
        min-width: 0;
        padding: 0.2rem 0;
    }

    .dashboard-page .next-event-panel .next-gig-info-label {
        display: contents;
    }

    .dashboard-page .next-event-panel .next-gig-info-label i {
        grid-column: 1;
        grid-row: 1;
    }

    .dashboard-page .next-event-panel .next-gig-info-label span {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    .dashboard-page .next-event-panel .next-gig-info-block > strong,
    .dashboard-page .next-event-panel .next-gig-info-block > .next-gig-contact-card,
    .dashboard-page .next-event-panel .next-gig-info-block > .next-gig-lineup {
        grid-column: 3;
        grid-row: 1;
        min-width: 0;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-info-block .next-gig-info-label span {
        font-size: 0.66rem;
        white-space: nowrap;
    }

    .dashboard-page .next-event-panel .next-gig-lineup-summary {
        padding-top: 0.7rem;
    }

    .dashboard-page .next-event-panel .next-gig-details-button {
        min-height: 2.45rem;
    }

    .dashboard-page .dashboard-chart-card .card-header,
    .dashboard-page .dashboard-month-card .card-header {
        min-height: 2.75rem;
        padding: var(--gs-card-header-padding-block) 0.8rem;
    }

    .dashboard-page .dashboard-chart-card .card-header h5,
    .dashboard-page .dashboard-month-card .card-header h5 {
        font-size: 0.92rem;
    }

    .dashboard-page .dashboard-chart-card .card-header .btn,
    .dashboard-page .dashboard-month-card .card-header .btn {
        min-height: 2.2rem;
        padding: 0.4rem 0.58rem;
        font-size: 0.68rem;
    }

    .card-header:has(.mobile-card-header-action),
    .dashboard-page .dashboard-chart-card .card-header:has(.mobile-card-header-action),
    .dashboard-page .dashboard-month-card .card-header:has(.mobile-card-header-action) {
        padding-block: 0.25rem;
    }

    .card-header .btn.mobile-card-header-action,
    .dashboard-page .dashboard-chart-card .card-header .mobile-card-header-action,
    .dashboard-page .dashboard-month-card .card-header .mobile-card-header-action {
        align-items: center;
        background: transparent;
        border: 0;
        border-radius: 0.5rem;
        box-shadow: none;
        color: var(--gs-primary);
        display: inline-flex;
        flex: 0 0 auto;
        font-weight: 800;
        gap: 0.2rem;
        justify-content: center;
        min-height: 2.75rem;
        min-width: 2.75rem;
        padding: 0.5rem 0.6rem 0.5rem 0.25rem;
        text-decoration: none;
    }

    .card-header .btn.mobile-card-header-action:hover,
    .card-header .btn.mobile-card-header-action:focus-visible,
    .dashboard-page .dashboard-chart-card .card-header .mobile-card-header-action:hover,
    .dashboard-page .dashboard-chart-card .card-header .mobile-card-header-action:focus-visible,
    .dashboard-page .dashboard-month-card .card-header .mobile-card-header-action:hover,
    .dashboard-page .dashboard-month-card .card-header .mobile-card-header-action:focus-visible {
        background: rgba(var(--gs-primary-rgb), 0.08);
        border: 0;
        box-shadow: none;
        color: var(--gs-primary);
    }

    .card-header .mobile-card-header-action:focus-visible {
        outline: 2px solid rgba(var(--gs-primary-rgb), 0.8);
        outline-offset: -2px;
    }

    .card-header .mobile-card-header-action .bi-chevron-right {
        font-size: 0.72rem;
        line-height: 1;
    }

    .dashboard-page .dashboard-chart-card .card-body {
        padding: 0;
    }

    .dashboard-page .dashboard-chart-card .chart-container {
        min-height: 15rem;
        height: 15rem;
        padding: 0.25rem 0.4rem 0.45rem;
    }

    .dashboard-page .dashboard-chart-card .chart-container,
    .dashboard-page .dashboard-month-card > .card-body > .empty-state {
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .dashboard-page .dashboard-month-card > .card-body > .empty-state {
        background: transparent;
    }

    .dashboard-page .dashboard-month-card > .card-body {
        padding: 0.3rem 0.75rem 0.5rem;
    }

    .dashboard-page .dashboard-month-timeline {
        gap: 0;
    }

    .dashboard-page .dashboard-month-gig {
        grid-template-columns: 3.55rem minmax(0, 1fr);
        gap: 0.6rem;
        padding: 0.72rem 0;
    }

    .dashboard-page .dashboard-month-gig:not(:last-child)::before {
        content: "";
        display: block;
        height: 1px;
        position: absolute;
        left: 0;
        bottom: 0;
        right: 0;
        background: var(--gs-border);
    }

    .dashboard-page .dashboard-month-gig-date {
        align-content: start;
        align-self: stretch;
        min-height: 0;
        padding-top: 0.2rem;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .dashboard-page .dashboard-month-gig-date::after {
        background: var(--gs-border);
        bottom: -0.72rem;
        content: "";
        display: block;
        position: absolute;
        left: -0.3rem;
        top: -0.72rem;
        width: 1px;
    }

    .dashboard-page .dashboard-month-gig-day {
        color: var(--gs-primary);
        font-size: 1.18rem;
        line-height: 1;
        text-shadow: 0 0 16px rgba(var(--gs-primary-rgb), 0.18);
    }

    .dashboard-page .dashboard-month-gig-month {
        color: var(--gs-text);
        font-size: 0.62rem;
        line-height: 1.15;
        margin-top: 0.16rem;
        text-transform: none;
    }

    .dashboard-page .dashboard-month-gig.is-completed .dashboard-month-gig-day,
    .dashboard-page .dashboard-month-gig.is-completed .dashboard-month-gig-month {
        color: rgba(148, 163, 184, 0.82);
        text-shadow: none;
    }

    .dashboard-page .dashboard-month-gig-weekday {
        color: var(--gs-text-muted);
        display: block;
        font-size: 0.54rem;
        font-weight: 800;
        line-height: 1.1;
        margin-top: 0.32rem;
        max-width: 3.4rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dashboard-page .dashboard-month-gig-card {
        display: grid;
        grid-template-areas:
            "content chevron"
            "side side";
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.42rem 0.55rem;
        min-width: 0;
        margin: 0;
        padding: 0 0.25rem 0 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .dashboard-page .dashboard-month-gig.is-completed .dashboard-month-gig-card,
    .dashboard-page .dashboard-month-gig.is-upcoming .dashboard-month-gig-card {
        background: transparent;
    }

    .dashboard-page .dashboard-month-gig-media {
        display: none;
    }

    .dashboard-page .dashboard-month-gig-content {
        display: grid;
        grid-area: content;
        gap: 0.3rem;
        min-width: 0;
    }

    .dashboard-page .dashboard-month-gig-heading {
        align-items: start;
        display: grid;
        gap: 0.24rem;
        grid-template-columns: minmax(0, 1fr);
        min-width: 0;
        overflow: visible;
    }

    .dashboard-page .dashboard-month-gig-title {
        min-width: 0;
        font-size: 0.94rem;
        line-height: 1.2;
        width: 100%;
    }

    .dashboard-page .dashboard-month-gig-labels {
        align-items: center;
        display: flex;
        flex: 0 1 auto;
        flex-wrap: nowrap;
        gap: 0.24rem;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
        white-space: nowrap;
        width: 100%;
    }

    .dashboard-page .dashboard-month-gig-labels .event-label-chip {
        flex: 0 0 auto;
    }

    .dashboard-page .dashboard-month-gig-label-overflow {
        background: rgba(255, 255, 255, 0.06);
        border-color: rgba(255, 255, 255, 0.28);
        color: var(--gs-text);
    }

    .dashboard-page .dashboard-month-gig-meta {
        display: grid;
        gap: 0.2rem;
        min-width: 0;
    }

    .dashboard-page .dashboard-month-gig-meta span {
        display: flex;
        min-width: 0;
        align-items: flex-start;
        gap: 0.28rem;
        overflow: visible;
        font-size: 0.7rem;
        line-height: 1.3;
        text-overflow: clip;
        white-space: normal;
    }

    .dashboard-page .dashboard-month-gig-lineup {
        display: none;
    }

    .dashboard-page .dashboard-month-gig-side {
        display: flex;
        grid-area: side;
        align-items: center;
        justify-content: space-between;
        gap: 0.55rem;
        margin-top: 0.16rem;
        padding: 0;
        border-top: 0;
        width: 100%;
    }

    .dashboard-page .dashboard-month-gig-remainder {
        display: none;
    }

    .dashboard-page .dashboard-month-gig-fee {
        font-size: 0.86rem;
        margin-right: auto;
        text-align: left;
    }

    .dashboard-page .dashboard-month-gig-chevron {
        align-self: start;
        display: block;
        grid-area: chevron;
        color: var(--gs-primary);
        font-size: 0.86rem;
        margin-top: 0.2rem;
    }

    .dashboard-page .dashboard-quick-actions-card {
        display: none !important;
    }

    .mobile-event-fab.dashboard-create-fab[aria-expanded="true"] {
        transform: rotate(-45deg);
    }

    body.dashboard-create-open .mobile-event-fab.dashboard-create-fab {
        opacity: 0;
        pointer-events: none;
    }
}

@media (max-width: 390px) {
    .dashboard-page .dashboard-kpi-panel .row > [class*="col-"] {
        width: auto;
        max-width: none;
        flex-basis: auto;
    }

    .dashboard-page .dashboard-kpi-card {
        min-height: clamp(12.25rem, 54vw, 13.25rem);
        padding: 0.75rem;
    }

    .dashboard-page .dashboard-location-kpi-card {
        min-height: 6.25rem;
    }
}

/* Mobile events catalogue */
.gigs-mobile-tools,
.gigs-mobile-sheet,
.gigs-mobile-sheet-backdrop,
.gigs-mobile-sheet-header,
.gigs-mobile-groups,
.gigs-mobile-load-more-wrap,
.venue-map-mobile-list-trigger,
.gigs-filter-mobile-label {
    display: none;
}

/* The map list doubles as a desktop sidebar and a mobile bottom sheet. */
.venue-map-list.venue-map-mobile-sheet > .gigs-mobile-sheet-handle,
.venue-map-mobile-sheet-title,
.venue-map-mobile-sheet-search {
    display: none;
}

/* Shared sorting model: choose a criterion first, then its direction. */
.split-sort-form,
.split-sort-criteria,
.split-sort-direction {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
    border: 0;
}

.split-sort-form {
    gap: 1rem;
    margin-top: 0.6rem;
}

.split-sort-criteria legend,
.split-sort-direction legend {
    margin: 0 0 0.2rem;
    color: var(--gs-text-muted);
    font-size: 0.74rem;
    font-weight: 800;
}

.split-sort-criterion {
    align-items: center;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.75rem;
    min-height: 3rem;
    padding: 0.55rem 0.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    cursor: pointer;
}

.split-sort-criterion input,
.split-sort-direction input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.split-sort-criterion > i:first-of-type,
.split-sort-criterion.is-selected > i:last-child {
    color: var(--gs-primary);
}

.split-sort-criterion > i:last-child {
    color: var(--gs-text-muted);
}

.split-sort-direction > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

.split-sort-direction label span {
    align-items: center;
    display: flex;
    min-height: 2.65rem;
    justify-content: center;
    padding: 0.45rem 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.65rem;
    color: var(--gs-text-muted);
    background: rgba(255, 255, 255, 0.025);
    font-size: 0.75rem;
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}

.split-sort-direction input:checked + span {
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    color: var(--gs-primary);
    background: rgba(var(--gs-primary-rgb), 0.08);
}

.split-sort-dropdown {
    position: relative;
}

.split-sort-dropdown > summary {
    align-items: center;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.55rem;
    min-height: 2.65rem;
    min-width: min(19rem, 100%);
    padding: 0.45rem 0.65rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.65rem;
    color: var(--gs-text);
    background: rgba(255, 255, 255, 0.035);
    cursor: pointer;
    list-style: none;
}

.split-sort-dropdown > summary::-webkit-details-marker {
    display: none;
}

.split-sort-dropdown > summary > i:first-child {
    color: var(--gs-primary);
}

.split-sort-dropdown > summary span {
    display: grid;
    min-width: 0;
}

.split-sort-dropdown > summary strong,
.split-sort-dropdown > summary small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.split-sort-dropdown > summary strong {
    font-size: 0.76rem;
}

.split-sort-dropdown > summary small {
    color: var(--gs-text-muted);
    font-size: 0.66rem;
}

.split-sort-dropdown-panel {
    position: absolute;
    top: calc(100% + 0.45rem);
    left: 0;
    z-index: 80;
    width: min(24rem, calc(100vw - 2rem));
    padding: 0.85rem 1rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 0.85rem;
    background: var(--gs-bg-elevated);
    box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.56);
}

.split-sort-dropdown-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding-bottom: 0.35rem;
}

.split-sort-dropdown-header h6 {
    margin: 0;
    font-size: 0.95rem;
}

.split-sort-dropdown-header button {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    padding: 0;
    border: 0;
    color: var(--gs-text-muted);
    background: transparent;
}

.has-universal-query-tools .gigs-universal-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
    grid-column: 1 / -1;
    width: min(100%, 34rem);
    justify-self: end;
}

.has-universal-query-tools .gigs-mobile-tool {
    align-items: center;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.65rem;
    min-height: 3.25rem;
    min-width: 0;
    padding: 0.58rem 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 0.78rem;
    color: var(--gs-text);
    background: rgba(255, 255, 255, 0.035);
    text-align: right;
    cursor: pointer;
    transition:
        color 160ms ease,
        background-color 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease,
        transform 160ms ease;
}

.has-universal-query-tools .gigs-mobile-tool:hover,
.has-universal-query-tools .gigs-mobile-tool:focus-visible {
    border-color: rgba(var(--gs-primary-rgb), 0.42);
    color: var(--gs-text);
    background: rgba(var(--gs-primary-rgb), 0.07);
    box-shadow: 0 0 0 0.16rem rgba(var(--gs-primary-rgb), 0.1);
    outline: none;
}

.has-universal-query-tools .gigs-mobile-tool:active {
    transform: translateY(1px);
}

.has-universal-query-tools .gigs-mobile-tool > i {
    color: var(--gs-primary);
}

.has-universal-query-tools .gigs-mobile-tool span {
    display: grid;
    min-width: 0;
}

.has-universal-query-tools .gigs-mobile-tool strong,
.has-universal-query-tools .gigs-mobile-tool small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.has-universal-query-tools .gigs-mobile-tool strong {
    color: var(--gs-text);
    font-size: 0.78rem;
    font-weight: 850;
}

.has-universal-query-tools .gigs-mobile-tool small {
    margin-top: 0.12rem;
    color: var(--gs-text-muted);
    font-size: 0.68rem;
}

.has-universal-query-tools .gigs-mobile-tool-count {
    display: inline-grid;
    width: 1.45rem;
    height: 1.45rem;
    flex: 0 0 1.45rem;
    place-items: center;
    border-radius: 50%;
    color: #080808;
    background: var(--gs-primary);
    font-size: 0.68rem;
    font-weight: 850;
}

.has-universal-query-tools .gigs-universal-tools:has(> :only-child) {
    grid-template-columns: minmax(0, 1fr);
    width: min(100%, 17rem);
}

@media (min-width: 768px) {
    .has-universal-query-tools {
        --universal-query-control-height: 3.25rem;
    }

    .has-universal-query-tools .list-query-search .list-search .input-group,
    .has-universal-query-tools .list-query-search .list-search .form-control,
    .has-universal-query-tools .gigs-universal-tools .gigs-mobile-tool {
        height: var(--universal-query-control-height);
        min-height: var(--universal-query-control-height);
        max-height: var(--universal-query-control-height);
        box-sizing: border-box;
    }

    .has-universal-query-tools .gigs-universal-tools .gigs-mobile-tool {
        padding-block: 0.35rem;
    }

    .has-universal-query-tools .list-query-panel-with-sort {
        grid-template-columns: minmax(0, 1fr);
    }

    .has-universal-query-tools .list-query-panel-with-sort .list-query-search {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.6rem;
        grid-column: 1 / -1;
        width: 100%;
    }

    .has-universal-query-tools .list-query-panel-with-sort .list-query-search > .list-search {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
    }

    .has-universal-query-tools .list-query-panel-with-sort .list-query-search > .list-search-actions {
        grid-column: 2;
        grid-row: 1;
    }

    .has-universal-query-tools .list-query-filter {
        position: static;
        /* A grid stacking context would trap the dialog below its backdrop. */
        z-index: auto;
        display: block;
        width: 0;
        height: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .has-universal-query-tools .list-query-filter > .filter-panel-summary {
        display: none !important;
    }

    .has-universal-query-tools .list-query-panel > .list-query-filter > .filter-panel-body,
    .has-universal-query-tools .gigs-mobile-sheet {
        position: fixed;
        top: 50%;
        right: 50%;
        z-index: 1075;
        display: block;
        width: min(calc(100vw - 2rem), 42rem);
        max-height: min(82dvh, 48rem);
        margin: 0 !important;
        padding: 1rem 1.15rem 1.15rem;
        overflow: auto;
        border: 1px solid rgba(255, 255, 255, 0.13);
        border-radius: 1rem;
        background: var(--gs-bg-elevated);
        box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, 0.66);
        opacity: 0;
        transform: translate(50%, -46%) scale(0.985);
        visibility: hidden;
        pointer-events: none;
        transition: opacity 160ms ease, transform 180ms ease, visibility 0s linear 180ms;
    }

    .has-universal-query-tools .gigs-mobile-sheet {
        width: min(calc(100vw - 2rem), 30rem);
    }

    /* Modal forms must fit the sheet instead of the old inline toolbar grid. */
    .has-universal-query-tools .list-query-filter .list-controls {
        align-items: start;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem;
    }

    .has-universal-query-tools .list-query-filter .list-controls > * {
        min-width: 0;
    }

    .has-universal-query-tools .list-query-filter .list-control-actions {
        grid-column: 1 / -1;
        flex-wrap: wrap;
        margin-inline: 0;
        min-width: 0;
        width: 100%;
    }

    .has-universal-query-tools .list-query-filter[open] > .filter-panel-body.is-open,
    .has-universal-query-tools .gigs-mobile-sheet.is-open[aria-hidden="false"] {
        opacity: 1;
        transform: translate(50%, -50%) scale(1);
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .has-universal-query-tools .gigs-mobile-sheet-header,
    .has-universal-query-tools .gigs-mobile-sheet-header > div,
    .has-universal-query-tools .gigs-mobile-sheet-title-row {
        align-items: center;
        display: flex;
        gap: 0.75rem;
        justify-content: space-between;
    }

    .has-universal-query-tools .gigs-mobile-sheet-header h2,
    .has-universal-query-tools .gigs-mobile-sheet-title-row h2 {
        flex: 1 1 auto;
        margin: 0;
        font-size: 1.25rem;
        font-weight: 850;
    }

    .has-universal-query-tools .gigs-mobile-sheet-header button,
    .has-universal-query-tools .gigs-mobile-sheet-title-row button {
        display: inline-grid;
        width: 2.25rem;
        height: 2.25rem;
        flex: 0 0 auto;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 50%;
        color: var(--gs-text-muted);
        background: rgba(255, 255, 255, 0.04);
    }

    /* The map sidebar is permanently open on desktop, so mobile sheet controls
       would be inactive and misleading here. Keep them only in the mobile sheet. */
    .has-universal-query-tools .venue-map-mobile-sheet-title [data-mobile-map-sheet-collapse] {
        display: none;
    }

    .has-universal-query-tools .gigs-mobile-sheet-handle {
        display: none;
    }

    .has-universal-query-tools .gigs-mobile-sheet-header {
        margin: -0.25rem 0 0.8rem;
        padding: 0 0 0.75rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    }

    .has-universal-query-tools .gigs-mobile-sheet-header > div {
        width: 100%;
    }

    .has-universal-query-tools .gigs-mobile-sheet-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1070;
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(0, 0, 0, 0.68);
        backdrop-filter: blur(2px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 160ms ease, visibility 0s linear 160ms;
    }

    .has-universal-query-tools .gigs-mobile-sheet-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .has-universal-query-tools .gigs-mobile-sheet-backdrop[hidden] {
        display: none;
    }
}

@media (min-width: 1100px) {
    .has-universal-query-tools .list-query-panel-with-sort {
        align-items: end;
        grid-template-columns: minmax(18rem, 1fr) minmax(24rem, 32rem);
    }

    .has-universal-query-tools .list-query-panel-with-sort .list-query-search {
        grid-column: 1;
        grid-row: 1;
    }

    .has-universal-query-tools .list-query-panel-with-sort .gigs-universal-tools {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    body:has(.gigs-page) {
        overflow-x: clip;
    }

    body.gigs-sheet-open {
        overflow: hidden;
    }

    body.gigs-sheet-open .mobile-event-fab,
    body.gigs-sheet-open .mobile-bottom-nav {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    .members-list-page .list-query-panel.list-query-panel-with-sort {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
    }

    .members-list-page .list-query-search,
    .members-list-page .gigs-universal-tools {
        grid-column: 1 / -1;
        width: 100%;
    }

    .members-list-page .list-sort {
        display: none !important;
    }

    .members-list-page .list-query-filter {
        position: static;
        display: block;
        width: 0;
        height: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .members-list-page .list-query-filter > .filter-panel-summary {
        display: none !important;
    }

    .members-list-page .list-query-filter > .filter-panel-body {
        position: fixed;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1075;
        display: block !important;
        width: 100%;
        max-height: min(92dvh, 52rem);
        padding: 0.5rem 1rem calc(1rem + env(safe-area-inset-bottom));
        overflow: auto;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 1.2rem 1.2rem 0 0;
        background: var(--gs-bg-elevated);
        box-shadow: 0 -1.5rem 4rem rgba(0, 0, 0, 0.62);
        transform: translateY(105%);
        visibility: hidden;
        pointer-events: none;
        transition: transform var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease), visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .members-list-page .list-query-filter[open] > .filter-panel-body.is-open {
        transform: translateY(0);
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    /* Entrance transforms must not contain fixed sort panels in history columns. */
    main > .row > [class*="col"]:has(.split-sort-dropdown) {
        animation: none;
        will-change: auto;
    }

    .split-sort-dropdown-panel {
        position: fixed;
        top: auto;
        left: 0;
        /* Keep every option above the persistent mobile navigation. */
        bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom) + 0.5rem);
        right: 0;
        z-index: 1080;
        width: 100%;
        max-height: calc(100dvh - var(--app-header-height) - var(--mobile-nav-height) - env(safe-area-inset-bottom) - 1rem);
        padding: 1rem;
        overflow: auto;
        border-radius: 1.15rem 1.15rem 0 0;
    }

    body:has(.gigs-page) .app-topbar-create-slot,
    body:has(.gigs-page) .app-topbar-actions > .view-scope-switcher,
    body:has(.gigs-page) .app-welcome-tour-trigger {
        display: none !important;
    }

    .gigs-page {
        display: grid;
        gap: 0.875rem;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding-bottom: calc(var(--mobile-nav-height) + 4.5rem + env(safe-area-inset-bottom));
    }

    .gigs-page > *,
    .gigs-page form,
    .gigs-page .input-group,
    .gigs-page .venue-map-shell,
    .gigs-page .venue-map-layout,
    .gigs-page .venue-map-canvas {
        max-width: 100%;
        min-width: 0;
    }

    .gigs-page > .page-header {
        display: block !important;
        margin: 0;
    }

    .gigs-page > .page-header > div:first-child {
        display: none;
    }

    .gigs-page .entity-page-actions,
    .gigs-page .view-toggle {
        width: 100%;
    }

    .gigs-page .entity-page-actions.gigs-page-toolbar {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: stretch;
        gap: 0.5rem;
    }

    .gigs-page .gigs-page-toolbar .gigs-page-templates-action {
        width: auto;
        min-width: 0;
        min-height: 2.25rem;
        padding-inline: 0.72rem;
        justify-content: center;
        font-size: 0.76rem;
    }

    .gigs-page .gigs-page-toolbar .view-toggle {
        min-width: 0;
    }

    .gigs-page .view-toggle {
        min-height: 2.25rem;
        padding: 0.18rem;
        border-color: rgba(255, 255, 255, 0.12);
        background: rgba(255, 255, 255, 0.035);
        box-shadow: none;
    }

    .gigs-page .view-toggle-option {
        min-height: 2rem;
        font-size: 0.76rem;
    }

    .gigs-page .view-toggle-option i {
        display: none;
    }

    .gigs-page .list-query-panel,
    .gigs-page .list-query-panel.list-query-panel-with-sort {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
        margin: 0 !important;
    }

    .gigs-page .list-query-search,
    .gigs-page .list-search,
    .gigs-page .list-search .input-group {
        display: block;
        width: 100%;
    }

    .gigs-page .list-query-search,
    .gigs-mobile-tools,
    .gigs-page .list-query-filter {
        grid-column: 1 / -1 !important;
    }

    .gigs-page .list-query-filter {
        grid-row: auto;
    }

    .gigs-page .list-search .input-group {
        position: relative;
        min-height: 2.65rem;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .gigs-page .list-search .input-group-text {
        position: absolute;
        top: 50%;
        right: 0.25rem;
        z-index: 4;
        display: inline-grid;
        width: 2.2rem;
        height: 2.2rem;
        min-width: 2.2rem;
        padding: 0;
        place-items: center;
        border: 0;
        border-radius: 0.58rem;
        color: var(--gs-primary);
        background: transparent;
        transform: translateY(-50%);
    }

    .gigs-page .list-search input.form-control {
        width: 100%;
        min-height: 2.65rem;
        padding: 0.65rem 2.75rem 0.65rem 0.85rem;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 0.75rem !important;
        color: var(--gs-text);
        background: rgba(255, 255, 255, 0.035);
        font-size: 0.82rem;
        box-shadow: none;
    }

    .gigs-page .list-search-submit,
    .gigs-page .list-search-actions,
    .gigs-page .list-sort {
        display: none !important;
    }

    .gigs-mobile-tools {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.55rem;
    }

    .gigs-mobile-tool {
        align-items: center;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.55rem;
        min-height: 3rem;
        min-width: 0;
        padding: 0.5rem 0.7rem;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 0.75rem;
        color: var(--gs-text);
        background: rgba(255, 255, 255, 0.035);
        text-align: right;
    }

    .gigs-mobile-tool > i {
        color: var(--gs-primary);
        font-size: 1rem;
    }

    .gigs-mobile-tool span {
        display: grid;
        min-width: 0;
    }

    .gigs-mobile-tool strong {
        overflow: hidden;
        font-size: 0.76rem;
        font-weight: 850;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gigs-mobile-tool small {
        overflow: hidden;
        margin-top: 0.15rem;
        color: var(--gs-text-muted);
        font-size: 0.65rem;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gigs-mobile-tool-count {
        display: inline-grid;
        width: 1.45rem;
        height: 1.45rem;
        place-items: center;
        border-radius: 50%;
        color: #080808;
        background: var(--gs-primary);
        font-size: 0.68rem;
    }

    .gigs-page .list-query-filter {
        position: static;
        display: block;
        width: 0;
        height: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .gigs-page .list-query-filter > .filter-panel-summary {
        display: none !important;
    }

    .gigs-page .mobile-filter-sheet-header {
        display: none !important;
    }

    .gigs-page .list-query-filter > .filter-panel-body {
        position: fixed;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1075;
        display: block !important;
        width: 100%;
        max-width: 100%;
        max-height: min(92dvh, 52rem);
        margin: 0 !important;
        padding: 0.5rem 1rem calc(1rem + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 1.2rem 1.2rem 0 0;
        background: var(--gs-bg-elevated);
        box-shadow: 0 -1.5rem 4rem rgba(0, 0, 0, 0.62);
        transform: translateY(105%);
        visibility: hidden;
        pointer-events: none;
        transition:
            transform var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease),
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .gigs-page .list-query-filter[open] > .filter-panel-body.is-open {
        transform: translateY(0);
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .gigs-mobile-sheet-header {
        position: sticky;
        top: -0.5rem;
        z-index: 6;
        display: block;
        margin: -0.5rem -1rem 0.85rem;
        padding: 0.5rem 1rem 0.75rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.09);
        background: var(--gs-bg-elevated);
    }

    .gigs-mobile-sheet-handle {
        display: block;
        width: 2.6rem;
        height: 0.24rem;
        margin: 0 auto 0.6rem;
        border-radius: 999px;
        background: var(--gs-border-strong);
    }

    .gigs-mobile-sheet-header > div,
    .gigs-mobile-sheet-title-row {
        align-items: center;
        display: flex;
        gap: 0.75rem;
        justify-content: space-between;
    }

    .gigs-mobile-sheet-header h2,
    .gigs-mobile-sheet-title-row h2 {
        flex: 1 1 auto;
        margin: 0;
        font-size: 1rem;
        font-weight: 850;
    }

    .gigs-mobile-sheet-header a {
        color: var(--gs-primary);
        font-size: 0.76rem;
        font-weight: 800;
        text-decoration: none;
    }

    .gigs-mobile-sheet-header button,
    .gigs-mobile-sheet-title-row button {
        display: inline-grid;
        width: 2.25rem;
        height: 2.25rem;
        flex: 0 0 auto;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 50%;
        color: var(--gs-text-muted);
        background: transparent;
    }

    .gigs-page .gig-filter-form {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
    }

    .gigs-page .gig-filter-actions {
        position: sticky;
        bottom: calc(-1rem - env(safe-area-inset-bottom));
        z-index: 5;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.55rem;
        margin: 0.3rem -1rem calc(-1rem - env(safe-area-inset-bottom));
        padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
        border-top: 1px solid rgba(255, 255, 255, 0.09);
        background: var(--gs-bg-elevated);
    }

    .gigs-page .gig-filter-actions .btn:first-child {
        border-color: var(--gs-primary);
        color: #080808;
        background: var(--gs-primary);
    }

    .gigs-filter-desktop-label {
        display: none;
    }

    .gigs-filter-mobile-label {
        display: inline;
    }

    .gigs-mobile-sheet,
    .venue-map-list.venue-map-mobile-sheet {
        position: fixed;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1075;
        display: block;
        width: 100%;
        max-width: 100%;
        max-height: min(88dvh, 46rem);
        padding: 0.5rem 1rem calc(1rem + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 1.2rem 1.2rem 0 0;
        background: var(--gs-bg-elevated);
        box-shadow: 0 -1.5rem 4rem rgba(0, 0, 0, 0.62);
        transform: translateY(105%);
        visibility: hidden;
        pointer-events: none;
        transition:
            transform var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease),
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .gigs-mobile-sheet.is-open[aria-hidden="false"],
    .venue-map-list.venue-map-mobile-sheet.is-open[aria-hidden="false"] {
        transform: translateY(0);
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .gigs-mobile-sheet-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1070;
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(0, 0, 0, 0.7);
        backdrop-filter: blur(2px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition:
            opacity var(--mobile-sheet-motion-duration) ease,
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .gigs-mobile-sheet-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .gigs-mobile-sheet-backdrop[hidden] {
        display: none;
    }

    .gigs-mobile-sort-options {
        display: grid;
        margin-top: 0.45rem;
    }

    .gigs-mobile-sort-option {
        align-items: center;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.8rem;
        min-height: 3.5rem;
        padding: 0.55rem 0.25rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        color: var(--gs-text);
        text-decoration: none;
    }

    .gigs-mobile-sort-option > i:first-child,
    .gigs-mobile-sort-option.is-selected > i:last-child {
        color: var(--gs-primary);
    }

    .gigs-results-summary {
        margin: 0 !important;
        padding: 0 0.15rem;
    }

    .gigs-results-summary .small {
        font-size: 0.7rem;
    }

    .gigs-mobile-groups {
        display: grid;
        gap: 1rem;
    }

    .gigs-mobile-section,
    .gigs-mobile-section-list {
        display: grid;
        gap: 0.55rem;
        min-width: 0;
    }

    .gigs-mobile-section-heading {
        align-items: center;
        display: flex;
        min-height: 1.5rem;
        padding: 0 0.15rem;
    }

    .gigs-mobile-section-heading h2 {
        margin: 0;
        font-size: 0.78rem;
        font-weight: 900;
        letter-spacing: 0.02em;
        text-transform: uppercase;
    }

    .gigs-mobile-event-card {
        display: grid;
        grid-template-columns: 3.4rem minmax(0, 1fr);
        gap: 0.65rem;
        width: 100%;
        min-width: 0;
        padding: 0.65rem;
        border: 1px solid rgba(255, 255, 255, 0.11);
        border-radius: 0.85rem;
        color: var(--gs-text);
        background:
            radial-gradient(circle at 100% 0%, rgba(var(--gs-primary-rgb), 0.055), transparent 8rem),
            rgba(255, 255, 255, 0.026);
        text-decoration: none;
        box-shadow: 0 0.55rem 1.2rem rgba(0, 0, 0, 0.16);
    }

    .gigs-mobile-event-card:focus-visible {
        outline: 2px solid var(--gs-primary);
        outline-offset: 2px;
    }

    .gigs-mobile-event-date {
        align-content: start;
        display: grid;
        gap: 0.08rem;
        justify-items: center;
        min-width: 0;
        padding: 0.05rem 0 0 0.6rem;
        border-left: 1px solid rgba(255, 255, 255, 0.08);
        color: var(--gs-text-muted);
        text-align: center;
        text-decoration: none;
    }

    .gigs-mobile-event-date > strong {
        color: var(--gs-text);
        font-family: var(--gs-display-font);
        font-size: 1.35rem;
        font-weight: 900;
        line-height: 1;
    }

    .gigs-mobile-event-date > span {
        max-width: 3rem;
        overflow: hidden;
        color: var(--gs-text);
        font-size: 0.6rem;
        font-weight: 800;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gigs-mobile-event-date > small {
        max-width: 3rem;
        margin-top: 0.24rem;
        overflow: hidden;
        color: var(--gs-text-muted);
        font-size: 0.54rem;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gigs-mobile-event-content {
        display: grid;
        gap: 0.28rem;
        min-width: 0;
    }

    .gigs-mobile-event-main,
    .gigs-mobile-event-footer {
        align-items: center;
        display: flex;
        min-width: 0;
        gap: 0.45rem;
        justify-content: space-between;
    }

    .gigs-mobile-event-heading {
        align-items: center;
        display: flex;
        flex: 1 1 auto;
        flex-wrap: wrap;
        gap: 0.3rem 0.45rem;
        min-width: 0;
    }

    .gigs-mobile-event-heading h3 {
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        display: -webkit-box;
        flex: 0 1 auto;
        min-width: 0;
        margin: 0;
        overflow: hidden;
        font-size: 0.92rem;
        font-weight: 850;
        line-height: 1.15;
        overflow-wrap: anywhere;
    }

    .gigs-mobile-event-main > i {
        flex: 0 0 auto;
        color: var(--gs-text-muted);
        font-size: 0.82rem;
    }

    .gigs-mobile-event-meta {
        display: grid;
        gap: 0.12rem;
        min-width: 0;
    }

    .gigs-mobile-event-meta span {
        align-items: center;
        display: flex;
        min-width: 0;
        gap: 0.3rem;
        overflow: hidden;
        color: var(--gs-text-muted);
        font-size: 0.64rem;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gigs-mobile-event-meta .gigs-mobile-event-location {
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        align-items: flex-start;
        display: -webkit-box;
        overflow-wrap: anywhere;
        white-space: normal;
    }

    .gigs-mobile-event-meta i {
        flex: 0 0 auto;
        color: rgba(var(--gs-primary-rgb), 0.82);
    }

    .gigs-mobile-event-labels {
        display: contents;
    }

    .gigs-mobile-event-labels .event-label-chip {
        max-width: 6.5rem;
        min-height: 1.05rem;
        padding: 0.16rem 0.3rem 0.12rem;
        overflow: hidden;
        font-size: 0.52rem;
        line-height: 1;
        text-overflow: ellipsis;
    }

    .gigs-mobile-event-footer {
        display: grid;
        gap: 0.45rem;
        grid-template-areas: "status type fee";
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        min-height: 1.2rem;
        padding-top: 0.3rem;
        border-top: 1px solid rgba(255, 255, 255, 0.07);
    }

    .gigs-mobile-event-type {
        align-items: center;
        display: inline-flex;
        grid-area: type;
        justify-self: center;
        max-width: 6rem;
        min-width: 0;
        gap: 0.28rem;
        color: var(--gs-text-muted);
        font-size: 0.61rem;
        font-weight: 750;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gigs-mobile-event-type i {
        width: 0.38rem;
        height: 0.38rem;
        flex: 0 0 auto;
        border-radius: 50%;
        background: var(--gs-primary);
    }

    .gigs-mobile-event-footer .text-money {
        color: var(--gs-primary);
        font-size: 0.76rem;
        font-weight: 900;
    }

    .gigs-mobile-event-fee {
        grid-area: fee;
        justify-self: end;
        white-space: nowrap;
    }

    .gigs-mobile-event-status {
        grid-area: status;
        justify-self: start;
    }

    .gigs-mobile-event-footer .badge {
        max-width: 6.2rem;
        overflow: hidden;
        padding: 0.25rem 0.38rem;
        font-size: 0.5rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .gigs-desktop-list-table,
    .gigs-desktop-list-card,
    .gigs-desktop-pagination {
        display: none;
    }

    .gigs-mobile-load-more-wrap {
        display: block;
    }

    .gigs-mobile-load-more {
        align-items: center;
        display: flex;
        width: 100%;
        min-height: 2.75rem;
        justify-content: center;
        gap: 0.5rem;
        border: 1px solid rgba(255, 255, 255, 0.11);
        border-radius: 0.75rem;
        color: var(--gs-primary);
        background: rgba(255, 255, 255, 0.035);
        font-size: 0.76rem;
        font-weight: 850;
        text-decoration: none;
    }

    .gigs-page-map .venue-map-shell {
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .gigs-page-map .venue-map-header {
        display: block;
        padding: 0;
        border: 0;
    }

    .gigs-page-map .venue-map-header > div:first-child,
    .gigs-page-map .venue-map-return-link {
        display: none;
    }

    .gigs-page-map .venue-map-header-actions {
        display: block;
        width: 100%;
    }

    .gigs-page-map .venue-map-stats {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.45rem;
    }

    .gigs-page-map .venue-map-stats span {
        display: grid;
        min-width: 0;
        min-height: 3.15rem;
        align-content: center;
        justify-items: start;
        gap: 0.1rem;
        padding: 0.45rem 0.55rem;
        border-color: rgba(255, 255, 255, 0.09);
        background: rgba(255, 255, 255, 0.03);
        font-size: 0.58rem;
        line-height: 1.1;
    }

    .gigs-page-map .venue-map-stats strong {
        font-size: 1rem;
    }

    .gigs-page-map .venue-map-layout {
        position: relative;
        display: block;
        padding: 0;
    }

    .gigs-page-map .venue-map-canvas {
        width: 100%;
        height: clamp(26rem, calc(100dvh - 19.5rem), 42rem);
        min-height: 26rem;
        aspect-ratio: auto;
        border-radius: 0.9rem;
    }

    .venue-map-mobile-list-trigger {
        position: absolute;
        left: 4.6rem;
        bottom: 4.9rem;
        right: 0.75rem;
        z-index: 900;
        align-items: center;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.55rem;
        min-height: 2.7rem;
        padding: 0.55rem 0.75rem;
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 0.72rem;
        color: var(--gs-text);
        background: rgba(12, 13, 15, 0.92);
        box-shadow: 0 0.6rem 1.5rem rgba(0, 0, 0, 0.38);
        text-align: right;
        backdrop-filter: blur(0.75rem);
    }

    .venue-map-mobile-list-trigger i,
    .venue-map-mobile-list-trigger b {
        color: var(--gs-primary);
    }

    .venue-map-mobile-list-trigger span {
        overflow: hidden;
        font-size: 0.75rem;
        font-weight: 850;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .venue-map-mobile-list-trigger b {
        font-size: 0.72rem;
    }

    .venue-map-list.venue-map-mobile-sheet {
        gap: 0;
        padding-top: 0.5rem;
    }

    .venue-map-list.venue-map-mobile-sheet > .gigs-mobile-sheet-handle {
        display: block;
    }

    .venue-map-mobile-sheet-title {
        display: flex;
        position: sticky;
        top: -0.5rem;
        z-index: 4;
        margin: 0 -1rem;
        padding: 0 1rem 0.65rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        background: var(--gs-bg-elevated);
    }

    .venue-map-list.venue-map-mobile-sheet .venue-map-list-item {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.75rem;
        min-height: 3.65rem;
        padding: 0.72rem 0.15rem;
        border: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .venue-map-list.venue-map-mobile-sheet .venue-map-list-meta {
        grid-column: 2;
        justify-content: flex-end;
        text-align: left;
    }

    .venue-map-list.venue-map-mobile-sheet .venue-map-list-tooltip {
        display: none;
    }

    .gigs-map-detail-rows {
        display: grid;
        margin: 0.6rem 0 1rem;
    }

    .gigs-map-detail-row {
        align-items: center;
        display: flex;
        min-height: 2.7rem;
        gap: 1rem;
        justify-content: space-between;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        color: var(--gs-text-muted);
        font-size: 0.76rem;
    }

    .gigs-map-detail-row strong {
        color: var(--gs-text);
        font-size: 0.82rem;
    }

    .gigs-map-detail-row.is-accent strong {
        color: var(--gs-primary);
    }

    .gigs-map-detail-sheet > .btn {
        width: 100%;
    }
}

/* Keep dashboard event labels readable across card densities and breakpoints. */
.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-labels .event-label-chip,
.dashboard-page .dashboard-month-gig-labels .event-label-chip {
    font-size: var(--dashboard-event-label-font-size);
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-type,
.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-labels .event-label-chip {
    border-radius: 0.4rem;
    font-size: var(--dashboard-event-label-font-size);
    line-height: 1;
    min-height: 1.1rem;
    padding: 0.18rem 0.3rem 0.12rem;
}

/* Next event: shared venue-first hierarchy for desktop and mobile. */
.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-ticket-head {
    padding-bottom: 0.55rem;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-date,
.dashboard-page .next-event-panel .next-gig-card-separated.has-event-labels .next-gig-date,
.dashboard-page .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated .next-gig-date,
.dashboard-page .next-event-panel:is(.is-content-balanced, .is-content-compact) .next-gig-card-separated.has-event-labels .next-gig-date {
    aspect-ratio: 1 / 1;
    height: var(--next-gig-date-size);
    margin-top: 0;
    min-height: var(--next-gig-date-size);
    min-width: var(--next-gig-date-size);
    width: var(--next-gig-date-size);
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    gap: 0.28rem;
    margin: 0;
    text-transform: none;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker-copy {
    align-items: baseline;
    column-gap: 0.5rem;
    display: flex;
    flex: 1 1 auto;
    flex-flow: row wrap;
    min-width: 0;
    row-gap: 0.28rem;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker-icon {
    color: var(--gs-primary);
    flex: 0 0 auto;
    font-size: 1.15rem;
    line-height: 1;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label {
    color: var(--gs-text);
    flex: 0 0 auto;
    font-size: 1.25rem;
    font-weight: 900;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-type {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.08);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 auto;
    font-weight: 950;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview {
    align-items: start;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    padding: 0.25rem var(--next-gig-inline-padding) 0.85rem;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-venue-logo {
    display: inline-flex;
    flex-basis: 3.5rem;
    grid-column: 1;
    grid-row: 1;
    height: 3.5rem;
    width: 3.5rem;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-copy {
    display: grid;
    gap: 0.42rem;
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-copy h3 {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--gs-text);
    display: -webkit-box;
    font-size: var(--next-gig-title-size);
    font-weight: 950;
    line-height: 1.08;
    margin: 0;
    overflow: hidden;
    overflow-wrap: anywhere;
}

/* Dashboard section headings support the event and KPI content hierarchy. */
@media (min-width: 768px) {
    .dashboard-page .dashboard-statistics-label,
    .dashboard-page .dashboard-kpi-card .stat-label,
    .dashboard-page .card-header > h5,
    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.4;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker-icon {
        font-size: 1rem;
    }
}

.member-list-row .entity-list-title,
.venue-list-row .entity-list-title,
.member-card:not(.contact-card) .entity-name,
.performer-card .entity-name,
.entity-card .venue-address-label {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    white-space: normal;
}

.contact-list-row .entity-list-title,
.contact-card .entity-name {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-copy .next-gig-labels {
    margin: 0;
    max-height: calc((var(--next-gig-label-height) * 2) + 0.24rem);
    padding: 0;
}

.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details {
    gap: 0.38rem;
    grid-column: 1 / -1;
    grid-row: 2;
    padding: 0.18rem 0 0;
}

@media (max-width: 767.98px) {
    body:has(.dashboard-page) .app-main-content {
        padding-bottom: calc(3rem + 0.125rem) !important;
    }

    .dashboard-page .next-event-panel {
        align-self: flex-start;
        cursor: pointer;
        flex: 0 0 auto;
        height: auto !important;
        max-height: none;
        min-height: 0;
        position: relative;
        width: 100%;
    }

    .dashboard-page .next-event-panel > .card-body {
        flex: 0 0 auto;
        height: auto;
        min-height: 0;
        position: relative;
    }

    .dashboard-page .dashboard-chart-card {
        position: relative;
    }

    .dashboard-page .dashboard-mobile-card-link {
        border-radius: inherit;
        display: block;
        inset: 0;
        position: absolute;
        z-index: 500;
    }

    .dashboard-page .dashboard-mobile-card-link:focus-visible {
        outline: 2px solid rgba(var(--gs-primary-rgb), 0.86);
        outline-offset: -3px;
    }

    .dashboard-page .next-event-panel .next-gig-meta-list {
        pointer-events: none;
        position: relative;
        z-index: 510;
    }

    .dashboard-page .next-event-panel .next-gig-contact-card,
    .dashboard-page .next-event-panel .next-gig-lineup {
        pointer-events: auto;
        position: relative;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated {
        --next-gig-group-gap: 1rem;
        --next-gig-related-gap: 0.6rem;
        --next-gig-meta-row-gap: 0.45rem;
        flex: 0 0 auto;
        height: auto;
        min-height: 0;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-ticket-head,
    .dashboard-page .next-event-panel .next-gig-card-separated.has-event-labels .next-gig-ticket-head {
        display: block;
        padding: 0 0 var(--next-gig-group-gap) 3.75rem;
        position: relative;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-date {
        margin: 0;
        position: absolute;
        left: 0;
        top: 0;
        z-index: 2;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker .next-gig-kicker-label {
        font-size: 0.82rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker-icon {
        font-size: 0.86rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview {
        column-gap: 0.7rem;
        grid-template-columns: 3.5rem minmax(0, 1fr);
        row-gap: var(--next-gig-group-gap);
        padding: 0 0 var(--next-gig-group-gap);
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-copy {
        gap: 0.38rem;
        padding-left: 3.75rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-copy .next-gig-labels {
        padding: 0;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-venue-logo {
        flex-basis: 3rem;
        height: 3rem;
        width: 3rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details {
        gap: var(--next-gig-related-gap);
        grid-column: 1 / -1;
        grid-row: 2;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        padding: 0;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details .next-gig-time-block,
    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details .next-gig-primary-address {
        grid-column: 1;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details .next-gig-time-block {
        grid-row: 1;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details .next-gig-primary-address {
        grid-row: 2;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-meta-list,
    .dashboard-page .next-event-panel .next-gig-card-separated:has(.next-gig-lineup-row) .next-gig-meta-list {
        gap: var(--next-gig-meta-row-gap);
        padding-top: var(--next-gig-group-gap);
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-lineup-summary {
        display: none !important;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-details-button {
        display: none;
    }

    .dashboard-page .dashboard-chart-card .card-header {
        padding-block: 0 !important;
    }

    .dashboard-page .dashboard-chart-card .card-header .mobile-card-header-action {
        display: inline-flex;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-details-button:hover,
    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-details-button:focus-visible {
        background: rgba(var(--gs-primary-rgb), 0.08);
        border: 0;
        box-shadow: none;
        color: var(--gs-primary);
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-details-button:focus-visible {
        outline: 2px solid rgba(var(--gs-primary-rgb), 0.8);
        outline-offset: -2px;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-details-button > span,
    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-details-button > i {
        grid-column: auto;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-details-button > i {
        font-size: 0.72rem;
    }
}

@media (min-width: 768px) {
    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-ticket-head,
    .dashboard-page .next-event-panel .next-gig-card-separated.has-event-labels .next-gig-ticket-head {
        display: block;
        padding: 1rem var(--next-gig-inline-padding) 0.55rem calc(var(--next-gig-inline-padding) + 3.75rem);
        position: relative;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-date {
        --next-gig-date-size: 3.25rem;
        padding: 0.25rem;
        position: absolute;
        left: var(--next-gig-inline-padding);
        top: 1rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-copy {
        padding-left: 3.75rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-day {
        font-size: 1.375rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker {
        gap: 0.16rem;
        letter-spacing: -0.02em;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-kicker-copy {
        align-items: center;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview {
        margin-top: 0;
        padding-top: 0;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details {
        align-items: start;
        justify-items: start;
        text-align: right;
        width: 100%;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details .next-gig-time-block {
        align-items: center;
        display: grid;
        gap: 0.42rem;
        grid-template-columns: 1rem minmax(0, 1fr);
        justify-self: start;
        text-align: right;
        width: 100%;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-event-overview > .next-gig-primary-details .next-gig-primary-address {
        justify-self: start;
        text-align: right;
        width: 100%;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-time-icon {
        color: var(--gs-primary);
        display: block;
        font-size: 0.9rem;
        line-height: 1;
        text-align: center;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-time-copy {
        align-items: baseline;
        display: flex;
        flex-wrap: nowrap;
        gap: 0.3rem;
        min-width: 0;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-time-value {
        font-size: 0.9rem;
        line-height: 1.25;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-time-separator {
        color: var(--gs-text-muted);
        display: inline;
        font-size: 0.65rem;
    }

    .dashboard-page .next-event-panel .next-gig-card-separated .next-gig-weekday {
        font-size: 0.72rem;
        font-weight: 800;
        line-height: 1.25;
        white-space: nowrap;
    }
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--gs-bg-dark);
}

::-webkit-scrollbar-thumb {
    background: var(--gs-border);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--gs-text-muted);
}

/* Print styles */
@media print {
    .navbar, .footer, .app-sidebar, .app-topbar, .btn, .no-print {
        display: none !important;
    }

    body {
        background: white;
        color: black;
    }

    .card, .stat-card {
        border: 1px solid #ddd;
        box-shadow: none;
    }
}
/* Event templates */
.gigs-page-templates-action {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 0.42rem;
    min-height: 2.41rem;
    padding-inline: 0.8rem;
    white-space: nowrap;
}

@media (max-width: 359px) {
    .gigs-page .entity-page-actions.gigs-page-toolbar {
        grid-template-columns: minmax(0, 1fr);
    }

    .gigs-page .gigs-page-toolbar .gigs-page-templates-action {
        width: 100%;
    }
}

.event-template-compact {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    padding: 0.78rem 0.85rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.28);
    border-radius: 0.65rem;
    background: linear-gradient(-135deg, rgba(var(--gs-primary-rgb), 0.065), rgba(255, 255, 255, 0.018));
}

.event-template-compact-icon {
    display: inline-grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.42);
    border-radius: 0.55rem;
    color: var(--gs-primary);
    background: rgba(var(--gs-primary-rgb), 0.08);
}

.event-template-compact-copy {
    display: grid;
    min-width: 0;
}

.event-template-compact-copy > span {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-weight: 750;
}

.event-template-compact-copy > strong {
    overflow: hidden;
    color: var(--gs-text);
    font-size: 0.92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-template-compact-copy > small {
    margin-top: 0.08rem;
    overflow: hidden;
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-template-compact-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.event-template-source-note {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.34);
    border-radius: 0.65rem;
    background: rgba(var(--gs-primary-rgb), 0.06);
    color: var(--gs-text-muted);
}

.event-template-source-note > i {
    flex: 0 0 auto;
    margin-top: 0.1rem;
    color: var(--gs-primary);
}

.event-template-source-note > div {
    display: grid;
    gap: 0.2rem;
}

.event-template-source-note strong {
    color: var(--gs-text);
}

.event-template-source-note span {
    font-size: 0.875rem;
    line-height: 1.45;
}

.event-template-launcher {
    padding: 18px;
    border: 1px solid rgba(255, 204, 0, 0.26);
    border-radius: 12px;
    background: linear-gradient(-135deg, rgba(255, 204, 0, 0.08), rgba(255, 204, 0, 0.015));
}

.event-template-launcher-heading,
.event-template-card-heading,
.event-template-card-actions,
.event-detail-template-actions {
    display: flex;
    align-items: center;
}

.event-template-launcher-heading {
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.event-template-eyebrow {
    display: block;
    margin-bottom: 3px;
    color: var(--gs-primary);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.event-template-launcher h2 {
    margin: 0;
    color: var(--gs-text);
    font-size: 1.05rem;
}

.event-template-launcher p {
    margin: 4px 0 0;
    color: var(--gs-text-muted);
    font-size: 0.84rem;
}

.event-template-manage-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--gs-primary);
    font-size: 0.82rem;
    font-weight: 700;
    white-space: nowrap;
}

.event-template-mode-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.event-template-mode {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--gs-border);
    border-radius: 9px;
    background: var(--gs-bg-input);
    color: var(--gs-text-muted);
    font-weight: 700;
    text-decoration: none;
}

button.event-template-mode {
    width: 100%;
}

.event-template-mode:hover,
.event-template-mode.active {
    border-color: var(--gs-primary);
    background: rgba(255, 204, 0, 0.12);
    color: var(--gs-primary);
}

.event-template-chooser {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--gs-border);
}

.event-template-empty-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--gs-text-muted);
    font-size: 0.86rem;
}

.event-template-empty-inline a {
    color: var(--gs-primary);
    font-weight: 700;
}

.venue-template-suggestions {
    margin-top: 10px;
    padding: 10px;
    border: 1px solid rgba(255, 204, 0, 0.24);
    border-radius: 9px;
    background: rgba(255, 204, 0, 0.045);
}

.venue-template-suggestions-title {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    color: var(--gs-primary);
    font-size: 0.76rem;
    font-weight: 800;
}

.venue-template-suggestions > a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 8px;
    padding: 8px;
    border-radius: 7px;
    color: var(--gs-text);
    text-decoration: none;
}

.venue-template-suggestions > a:hover {
    background: rgba(255, 255, 255, 0.05);
}

.venue-template-suggestions > a span,
.venue-template-suggestions > a small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-template-suggestions > a small {
    grid-column: 1;
    color: var(--gs-text-muted);
    font-size: 0.72rem;
}

.venue-template-suggestions > a i {
    grid-column: 2;
    grid-row: 1 / span 2;
    color: var(--gs-primary);
}

/* Template library: shared content, desktop cards/list and mobile list. */
.event-template-library .template-query-panel {
    gap: .75rem;
}
.event-template-library .template-library-results {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .875rem;
    font-size: .82rem;
}
.event-template-library .gigs-universal-tools:has(> :only-child) {
    width: 100%;
}
.template-entry-usage { white-space: nowrap; }
@media (min-width: 768px) {
    .event-template-library.has-universal-query-tools .template-query-panel {
        grid-template-columns: minmax(0, 1fr) 19rem;
    }
    .event-template-library.has-universal-query-tools .template-query-panel .list-query-search {
        grid-column: 1;
        grid-template-columns: minmax(0, 1fr);
        min-width: 0;
    }
    .event-template-library .template-query-panel .gigs-universal-tools {
        grid-column: 2;
        grid-row: 1;
    }
}
@media (max-width: 767.98px) {
    .event-template-library.gigs-page > .page-header > .hierarchy-nav { display: flex; }
    .event-template-library .template-library-results { margin-bottom: 0; }
    .event-template-library .template-query-panel .list-search input.form-control {
        min-height: 44px;
        font-size: 1rem;
    }
    .event-template-library .template-query-panel .list-search-trigger {
        width: 44px;
        height: 44px;
        right: 0;
        z-index: 6;
    }
    .event-template-library .template-library-results .btn { min-height: 44px; }
}
.template-library-columns,
.template-entry {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(110px, .65fr) 254px;
    align-items: center;
    gap: 20px;
}
.template-library-columns {
    padding: 0 16px 10px;
    color: var(--gs-text-muted);
    font-size: .78rem;
    font-weight: 600;
}
.template-library-items {
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-panel);
    background: linear-gradient(-145deg, rgba(255,255,255,.035), rgba(8,9,11,.94));
}
.template-entry {
    padding: 16px;
    border-bottom: 1px solid var(--gs-border);
}
.template-entry:last-child { border-bottom: 0; }
.template-entry:hover { background-color: rgba(var(--gs-primary-rgb), .025); }
.template-entry > * { min-width: 0; }
.template-entry-identity { display: flex; align-items: flex-start; gap: 12px; }
.template-entry-logo { width: 48px; height: 48px; flex: 0 0 48px; }
.template-entry-logo img,
.template-entry-logo-fallback {
    width: 100%;
    height: 100%;
    border-radius: 10px;
    border: 1px solid rgba(var(--gs-primary-rgb), .3);
    object-fit: cover;
}
.template-entry-logo-fallback:not([hidden]) {
    display: grid;
    place-items: center;
    background: rgba(var(--gs-primary-rgb), .08);
    color: var(--gs-primary);
    font-size: 1.2rem;
}
.template-entry-heading { min-width: 0; }
.template-entry .event-template-type { margin-top: 2px; color: var(--gs-text-muted); font-size: .78rem; }
.template-entry h2 { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.4; }
.template-entry h2 a { color: var(--gs-text); text-decoration: none; overflow-wrap: anywhere; }
.template-entry h2 a:hover { color: var(--gs-primary); }
.template-entry h2 a:focus-visible { outline: 2px solid var(--gs-primary); outline-offset: 3px; }
.template-entry-labels { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; min-width: 0; max-width: 100%; }
.template-entry-labels .event-label-chip { white-space: normal; overflow-wrap: anywhere; }
.template-entry-meta { display: grid; gap: 7px; margin: 0; }
.template-entry-meta > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px; }
.template-entry-meta dt,
.template-entry-meta dd { margin: 0; font-size: .8rem; line-height: 1.4; }
.template-entry-meta dt { display: flex; align-items: baseline; gap: 7px; color: var(--gs-text-muted); font-weight: 500; }
.template-entry-meta dt i { flex: 0 0 14px; color: var(--gs-primary); text-align: center; }
.template-entry-meta dd { color: var(--gs-text); overflow-wrap: anywhere; }
.template-entry-updated dd { color: var(--gs-text-muted); }
.template-entry-fee { display: flex; flex-direction: column; gap: 4px; }
.template-entry-fee strong { color: var(--gs-primary); font-size: 1rem; line-height: 1.4; overflow-wrap: anywhere; }
.template-entry-fee > span { display: inline-flex; gap: 7px; align-items: baseline; font-size: .8rem; }
.template-entry-fee > span i { color: var(--gs-primary); }
.template-entry-fee small { color: var(--gs-text-muted); font-size: .72rem; }
.template-entry-actions { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; }
.template-entry-actions form { margin: 0; flex: 0 0 auto; }
.template-entry-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; margin: 0; }
.template-entry-icon-action { width: 36px; min-width: 36px; padding: 0; flex: 0 0 36px; }
.template-entry-use { white-space: nowrap; font-size: .78rem; }

@media (min-width: 768px) {
    .event-template-library[data-template-view="cards"] .template-library-columns { display: none; }
    .event-template-library[data-template-view="cards"] .template-library-items {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
        gap: 16px;
        background: none;
        border: 0;
    }
    .event-template-library[data-template-view="cards"] .template-entry {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        border: 1px solid var(--gs-border);
        border-radius: var(--gs-radius-panel);
        background: var(--gs-surface-bg);
        box-shadow: var(--gs-elevation-3d);
    }
    .event-template-library[data-template-view="cards"] .template-entry-actions { margin-top: auto; }
    .event-template-library[data-template-view="cards"] .template-entry-use { flex: 1; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    .event-template-library[data-template-view="list"] .template-library-columns { display: none; }
    .event-template-library[data-template-view="list"] .template-entry { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; }
    .event-template-library[data-template-view="list"] .template-entry-fee { grid-column: 2; grid-row: 1; }
    .event-template-library[data-template-view="list"] .template-entry-actions { grid-column: 2; grid-row: 2; }
}
@media (max-width: 767.98px) {
    .template-library-view-toggle,
    .template-library-columns { display: none; }
    .template-library-toolbar { width: 100%; justify-content: flex-end; }
    .template-entry { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px 12px; }
    .template-entry-logo { width: 44px; height: 44px; flex-basis: 44px; }
    .template-entry .event-template-type { display: inline; margin-left: 8px; }
    .template-entry-labels { display: inline-flex; margin-top: 4px; }
    .template-entry-meta { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px 12px; }
    .template-entry-meta > div { grid-column: 1 / -1; grid-template-columns: 86px minmax(0, 1fr); gap: 8px; }
    .template-entry-meta > .template-entry-time,
    .template-entry-meta > .template-entry-soundcheck { grid-column: auto; display: flex; flex-wrap: wrap; gap: 2px 6px; align-content: start; }
    .template-entry-meta > .template-entry-updated { display: none; }
    .template-entry-fee { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
    .template-entry-fee small { display: none; }
    .template-entry-actions .btn { height: 44px; min-height: 44px; }
    .template-entry-icon-action { width: 44px; min-width: 44px; flex-basis: 44px; }
    .template-entry-use { flex: 1 1 auto; min-width: 0; padding-inline: 6px; }
}

.event-detail-template-actions form { margin: 0; }

/* Event facts: decorative icons align with the field label, not the value block. */
.gig-overview-item {
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr);
    align-items: start;
    gap: 0.5rem;
}

.gig-overview-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: 1rem;
    block-size: 1.3125rem;
    block-size: 1lh;
    color: var(--gs-primary);
    font-size: 0.875rem;
    line-height: inherit;
}

.gig-overview-icon > .bi {
    font-size: 1rem;
    line-height: 1;
}

.gig-overview-icon .bi::before {
    vertical-align: 0;
}

.gig-overview-copy {
    min-width: 0;
    overflow-wrap: anywhere;
}

.gig-detail-actions-desktop form,
.gig-detail-actions-sheet form {
    margin: 0;
}

.gig-detail-actions-desktop .btn {
    white-space: nowrap;
}

.event-template-empty .card-body {
    max-width: 620px;
    margin: 0 auto;
    padding: 48px 24px;
}

.event-template-empty .card-body > i {
    color: var(--gs-primary);
    font-size: 2rem;
}

.event-template-empty h2 {
    margin: 12px 0 6px;
    font-size: 1.2rem;
}

.event-template-empty p {
    color: var(--gs-text-muted);
}

.event-detail-template-list {
    display: grid;
    gap: 8px;
}

.event-detail-template-list article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--gs-border);
    border-radius: 9px;
    background: var(--gs-bg-input);
}

.event-detail-template-list article strong,
.event-detail-template-list article small {
    display: block;
}

.event-detail-template-list article small {
    margin-top: 2px;
    color: var(--gs-text-muted);
    font-size: 0.72rem;
}

.event-detail-template-actions {
    flex: 0 0 auto;
    gap: 5px;
}

@media screen and (max-width: 767.98px) {
    .gig-detail-header-actions {
        width: 100%;
    }

    .gig-detail-header-actions > .btn {
        min-height: 2.75rem;
    }

    .gig-detail-header-actions > a.btn {
        flex: 1 1 auto;
    }

    .gig-detail-actions-trigger {
        flex: 0 0 auto;
        min-width: 5.25rem;
    }

    .offcanvas.offcanvas-bottom.gig-detail-actions-sheet {
        --bs-offcanvas-zindex: 1070;
        height: auto;
        max-height: min(72vh, 32rem);
        padding: 0.5rem 1rem calc(1rem + env(safe-area-inset-bottom));
        border: 1px solid var(--gs-border);
        border-radius: 1.25rem 1.25rem 0 0;
        color: var(--gs-text);
        background: var(--gs-menu-bg);
        box-shadow: 0 -1.5rem 4rem rgba(0, 0, 0, 0.55);
    }

    body:has(.gig-detail-actions-sheet.show) .offcanvas-backdrop {
        z-index: 1060;
    }

    body:has(.gig-detail-actions-sheet.show) .mobile-bottom-nav {
        transform: translateY(110%);
        pointer-events: none;
    }

    body:has(.gig-detail-actions-sheet.show) .mobile-event-fab {
        opacity: 0;
        transform: scale(0.9);
        pointer-events: none;
    }

    .gig-detail-actions-sheet-handle {
        width: 2.75rem;
        height: 0.25rem;
        margin: 0 auto 0.35rem;
        border-radius: 999px;
        background: var(--gs-border-strong);
    }

    .gig-detail-actions-sheet-header {
        min-height: 4.2rem;
        padding: 0 0 0.75rem;
        border-bottom: 1px solid var(--gs-border);
    }

    .gig-detail-actions-sheet-header > div > span {
        display: block;
        margin-bottom: 0.15rem;
        color: var(--gs-primary);
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .gig-detail-actions-sheet-header h2 {
        margin: 0;
        color: var(--gs-text);
        font-size: 1.15rem;
        font-weight: 800;
    }

    .gig-detail-actions-sheet-body {
        display: grid;
        gap: 0.5rem;
        padding: 0.8rem 0 0;
        overflow-y: auto;
    }

    .gig-detail-sheet-action {
        display: flex;
        width: 100%;
        min-height: 4.5rem;
        align-items: center;
        gap: 0.75rem;
        padding: 0.75rem;
        border: 1px solid var(--gs-border);
        border-radius: 0.875rem;
        color: var(--gs-text);
        background: var(--gs-bg-panel);
        font: inherit;
        text-align: right;
        text-decoration: none;
    }

    .gig-detail-sheet-action:active {
        background: color-mix(in srgb, var(--gs-primary) 10%, var(--gs-bg-panel));
        transform: scale(0.99);
    }

    .gig-detail-sheet-action-icon {
        display: inline-flex;
        width: 2.5rem;
        height: 2.5rem;
        flex: 0 0 2.5rem;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        color: var(--gs-primary);
        background: color-mix(in srgb, var(--gs-primary) 12%, transparent);
        font-size: 1.05rem;
    }

    .gig-detail-sheet-action-copy {
        display: block;
        min-width: 0;
        flex: 1;
    }

    .gig-detail-sheet-action-copy strong,
    .gig-detail-sheet-action-copy small {
        display: block;
    }

    .gig-detail-sheet-action-copy strong {
        color: inherit;
        font-size: 0.93rem;
        font-weight: 800;
    }

    .gig-detail-sheet-action-copy small {
        margin-top: 0.15rem;
        color: var(--gs-text-muted);
        font-size: 0.75rem;
        line-height: 1.35;
    }

    .gig-detail-sheet-action-chevron {
        color: var(--gs-text-muted);
        font-size: 0.8rem;
    }

    .gig-detail-sheet-action-danger {
        color: var(--bs-danger-text-emphasis);
    }

    .gig-detail-sheet-action-danger .gig-detail-sheet-action-icon {
        color: var(--bs-danger-text-emphasis);
        background: rgba(var(--bs-danger-rgb), 0.13);
    }

    .event-template-compact {
        grid-template-columns: 2.35rem minmax(0, 1fr);
        gap: 0.65rem;
        padding: 0.72rem;
    }

    .event-template-compact-icon {
        width: 2.35rem;
        height: 2.35rem;
    }

    .event-template-compact-copy > small {
        white-space: normal;
    }

    .event-template-compact-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .event-template-launcher {
        padding: 14px;
    }

    .event-template-launcher-heading {
        align-items: flex-start;
        gap: 10px;
    }

    .event-template-manage-link {
        font-size: 0.75rem;
    }

    .event-template-mode {
        min-height: 40px;
        padding-inline: 8px;
        font-size: 0.78rem;
    }

    .event-template-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .event-template-meta > div {
        grid-template-columns: 96px minmax(0, 1fr);
    }

    .event-template-card-actions .btn-primary,
    .event-template-card-actions .btn-outline-primary {
        flex: 1 1 auto;
    }

    .event-detail-template-list article {
        align-items: flex-start;
        flex-direction: column;
    }

    .event-detail-template-actions {
        width: 100%;
    }
}

/* Keep the shared mobile map workspace above legacy catalogue map rules. */
@media (max-width: 47.99875rem) {
    .gigs-page-map .venue-map-shell {
        position: relative;
        height: 100%;
        min-height: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0.9rem 0.9rem 0 0;
        background: transparent;
        box-shadow: none;
    }

    .gigs-page-map .venue-map-stats {
        display: inline-flex;
        width: auto;
        max-width: calc(100% - 3.6rem);
        grid-template-columns: none;
        gap: 0;
        padding: 0.46rem 0.62rem;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 999px;
        background: rgba(9, 10, 12, 0.94);
    }

    .gigs-page-map .venue-map-stats span {
        display: inline-flex;
        min-height: 0;
        align-items: baseline;
        gap: 0.2rem;
        padding: 0;
        border: 0;
        background: transparent;
        font-size: 0.64rem;
        line-height: 1;
        white-space: nowrap;
    }

    .gigs-page-map .venue-map-stats span + span::before {
        margin: 0 0.38rem;
        color: var(--gs-primary);
        content: "·";
    }

    .gigs-page-map .venue-map-stats strong {
        font-size: inherit;
    }

    .gigs-page-map .venue-map-canvas,
    .venues-page-map .venue-map-canvas {
        width: 100%;
        height: 100%;
        min-height: 0;
        aspect-ratio: auto;
        border-radius: 0.9rem 0.9rem 0 0;
    }

    .venue-map-mobile-list-trigger {
        left: 0.65rem;
        bottom: 0.65rem;
        right: 0.65rem;
        min-height: 3.25rem;
        grid-template-columns: auto minmax(0, 1fr) auto;
        padding: 0.72rem 0.85rem 0.62rem;
        border-radius: 0.9rem;
        background: #0c0d0f;
        backdrop-filter: none;
    }

    .venue-map-mobile-list-trigger[hidden] {
        display: none;
    }

    .venue-map-list.venue-map-mobile-sheet {
        position: absolute;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 920;
        height: auto;
        max-height: min(50%, 24rem);
        padding: 0.45rem 1rem 0.8rem;
        border-bottom: 0;
        background: #0c0d0f;
        transform: translateY(calc(100% + 1rem));
    }

    .venue-map-list.venue-map-mobile-sheet.is-medium {
        transform: translateY(var(--map-sheet-drag-y));
        visibility: visible;
        pointer-events: auto;
    }

    .venue-map-mobile-sheet-title {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 2.75rem;
        gap: 0.35rem;
        margin: 0 -1rem;
        padding: 0 1rem 0.6rem 0.75rem;
        background: #0c0d0f;
    }
}

/* Mobile map workspace shared by Events and Venues. */
@media (max-width: 47.99875rem) {
    body.mobile-map-workspace {
        --mobile-map-visible-height: 8rem;
        height: 100dvh;
        padding-bottom: 0;
        overflow: hidden;
        overscroll-behavior: none;
    }

    body.mobile-map-workspace .app-main-shell {
        height: 100dvh;
        overflow: hidden;
    }

    body.mobile-map-workspace .app-main-content:has(.gigs-page-map) {
        height: 100dvh;
        flex: 0 0 100dvh;
        padding:
            calc(var(--app-header-height) + 0.7rem)
            var(--mobile-page-gutter)
            calc(var(--mobile-nav-height) + env(safe-area-inset-bottom)) !important;
        overflow: hidden;
    }

    .gigs-page.gigs-page-map {
        display: grid;
        height: 100%;
        min-height: 0;
        grid-template-rows: auto auto minmax(0, 1fr);
        gap: 0.6rem;
        padding-bottom: 0;
        overflow: hidden;
    }

    .gigs-page-map > .page-header,
    .gigs-page-map > .list-query-panel {
        min-height: 0;
        margin: 0 !important;
    }

    .gigs-page-map .list-query-panel,
    .gigs-page-map .list-query-panel.list-query-panel-with-sort {
        gap: 0.5rem;
    }

    .gigs-page-map .gigs-mobile-tools {
        grid-template-columns: minmax(0, 1fr);
    }

    .gigs-page-map.venues-page-map .gigs-mobile-tools {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gigs-page-map .gigs-mobile-tool {
        min-height: 2.65rem;
    }

    .gigs-page-map > .active-context-filter {
        display: none !important;
    }

    .gigs-page-map .venue-map-shell {
        position: relative;
        height: 100%;
        min-height: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0.9rem 0.9rem 0 0;
        background: transparent;
        box-shadow: none;
    }

    .gigs-page-map .venue-map-header {
        position: absolute;
        top: 0.65rem;
        left: 0.65rem;
        right: 0.65rem;
        z-index: 800;
        display: block;
        padding: 0;
        border: 0;
        background: transparent;
        pointer-events: none;
    }

    .gigs-page-map .venue-map-header > div:first-child,
    .gigs-page-map .venue-map-return-link {
        display: none;
    }

    .gigs-page-map .venue-map-header-actions {
        display: block;
        width: auto;
    }

    .gigs-page-map .venue-map-stats {
        display: inline-flex;
        width: auto;
        max-width: calc(100% - 3.6rem);
        gap: 0;
        padding: 0.46rem 0.62rem;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 999px;
        background: rgba(9, 10, 12, 0.94);
        box-shadow: 0 0.5rem 1.2rem rgba(0, 0, 0, 0.32);
        pointer-events: auto;
    }

    .gigs-page-map .venue-map-stats span {
        display: inline-flex;
        min-height: 0;
        align-items: baseline;
        gap: 0.2rem;
        padding: 0;
        border: 0;
        color: var(--gs-text-muted);
        background: transparent;
        font-size: 0.64rem;
        line-height: 1;
        white-space: nowrap;
    }

    .gigs-page-map .venue-map-stats span + span::before {
        margin: 0 0.38rem;
        color: var(--gs-primary);
        content: "·";
    }

    .gigs-page-map .venue-map-stats strong {
        color: var(--gs-primary);
        font-size: inherit;
    }

    .gigs-page-map .venue-map-layout {
        position: relative;
        display: block;
        height: 100%;
        min-height: 0;
        padding: 0;
        overflow: hidden;
    }

    .gigs-page-map .venue-map-canvas,
    .venues-page-map .venue-map-canvas {
        width: 100%;
        height: 100%;
        min-height: 0;
        aspect-ratio: auto;
        border-radius: 0.9rem 0.9rem 0 0;
    }

    .venue-map-mobile-list-trigger {
        position: absolute;
        left: 0.65rem;
        bottom: 0.65rem;
        right: 0.65rem;
        z-index: 910;
        display: grid;
        min-height: 3.25rem;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.55rem;
        padding: 0.72rem 0.85rem 0.62rem;
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 0.9rem;
        color: var(--gs-text);
        background: #0c0d0f;
        box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.42);
        text-align: right;
    }

    .venue-map-mobile-list-trigger[hidden] {
        display: none;
    }

    .venue-map-mobile-list-trigger > .gigs-mobile-sheet-handle {
        position: absolute;
        top: 0.3rem;
        right: 50%;
        display: block;
        width: 2.25rem;
        height: 0.2rem;
        margin: 0;
        background: var(--gs-border-strong);
        transform: translateX(50%);
    }

    .venue-map-mobile-list-trigger > i {
        color: var(--gs-primary);
    }

    .venue-map-mobile-list-trigger > span:not(.gigs-mobile-sheet-handle) {
        overflow: hidden;
        font-size: 0.76rem;
        font-weight: 850;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .venue-map-list.venue-map-mobile-sheet {
        --map-sheet-drag-y: 0px;
        position: absolute;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 920;
        display: block;
        width: 100%;
        height: 50dvh;
        max-height: calc(100% - var(--mobile-map-visible-height));
        padding: 0.45rem 1rem 0.8rem;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-gutter: stable;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-bottom: 0;
        border-radius: 1.15rem 1.15rem 0 0;
        background: #0c0d0f;
        box-shadow: 0 -1.1rem 2.8rem rgba(0, 0, 0, 0.48);
        transform: translateY(calc(100% + 1rem));
        visibility: hidden;
        pointer-events: none;
        transition:
            transform var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease),
            visibility 0s linear var(--mobile-sheet-motion-duration);
    }

    .venue-map-list.venue-map-mobile-sheet.is-medium {
        transform: translateY(var(--map-sheet-drag-y));
        visibility: visible;
        pointer-events: auto;
        transition-property: transform;
        transition-delay: 0s;
    }

    .gigs-page-map .venue-map-layout:has(.venue-map-mobile-sheet.is-medium) .venue-map-canvas {
        height: max(var(--mobile-map-visible-height), calc(100% - 50dvh));
    }

    .venue-map-list.venue-map-mobile-sheet.is-dragging {
        transition: none;
    }

    .venue-map-list.venue-map-mobile-sheet > .gigs-mobile-sheet-handle {
        display: none;
    }

    .venue-map-mobile-sheet-title {
        position: sticky;
        top: -0.45rem;
        z-index: 4;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 2.75rem;
        gap: 0.35rem;
        margin: 0 -1rem;
        padding: 0 1rem 0.25rem 0.75rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        background: #0c0d0f;
        touch-action: none;
    }

    .venue-map-mobile-sheet-title > div {
        display: grid;
        min-width: 0;
        gap: 0.1rem;
    }

    .venue-map-mobile-sheet-title small {
        color: var(--gs-text-muted);
        font-size: 0.64rem;
    }

    .venue-map-mobile-sheet-search {
        position: sticky;
        top: 3.15rem;
        z-index: 3;
        display: none;
        align-items: center;
        gap: 0.55rem;
        margin: 0.65rem 0 0.2rem;
        padding: 0 0.7rem;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 0.7rem;
        background: var(--gs-bg-input);
    }

    .venue-map-mobile-sheet.is-medium .venue-map-mobile-sheet-search {
        display: flex;
    }

    .venue-map-mobile-sheet-title [data-mobile-map-sheet-collapse] {
        width: 2.75rem;
        height: 2.75rem;
        align-self: center;
        transition: color 120ms ease, background-color 120ms ease;
    }

    body.mobile-map-workspace:has([data-mobile-event-fab]) .venue-map-mobile-list-trigger {
        left: 4.5rem;
    }

    .venue-map-mobile-sheet-search i {
        color: var(--gs-text-muted);
    }

    .venue-map-mobile-sheet-search input {
        width: 100%;
        min-width: 0;
        padding: 0;
        border: 0;
        outline: 0;
        color: var(--gs-text);
        background: transparent;
        font-size: 1rem;
    }

    .venue-map-list.venue-map-mobile-sheet .venue-map-list-item {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 3.75rem;
        gap: 0.75rem;
        padding: 0.72rem 0.15rem;
        border: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .venue-map-list.venue-map-mobile-sheet .venue-map-list-item[hidden] {
        display: none;
    }

    .venue-map-list.venue-map-mobile-sheet .venue-map-list-meta {
        grid-column: 2;
        justify-content: flex-end;
        text-align: left;
    }

    .venue-map-mobile-preview {
        position: absolute;
        left: 0.65rem;
        bottom: 4.35rem;
        right: 0.65rem;
        z-index: 915;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.55rem 0.75rem;
        padding: 0.8rem;
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 0.9rem;
        color: var(--gs-text);
        background: #0c0d0f;
        box-shadow: 0 0.9rem 2.2rem rgba(0, 0, 0, 0.48);
    }

    .venue-map-mobile-preview[hidden] {
        display: none;
    }

    .venue-map-mobile-preview-copy,
    .venue-map-mobile-preview-meta {
        display: grid;
        min-width: 0;
        gap: 0.14rem;
    }

    .venue-map-mobile-preview-copy strong {
        overflow: hidden;
        font-size: 0.88rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .venue-map-mobile-preview-copy small,
    .venue-map-mobile-preview-meta span {
        overflow: hidden;
        color: var(--gs-text-muted);
        font-size: 0.63rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .venue-map-mobile-preview-meta {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, minmax(0, auto));
        justify-content: start;
        gap: 0.35rem 0.65rem;
    }

    .venue-map-mobile-preview-meta span.is-accent {
        color: var(--gs-primary);
        font-weight: 800;
    }

    .venue-map-mobile-preview-close {
        display: inline-grid;
        width: 2.1rem;
        height: 2.1rem;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 50%;
        color: var(--gs-text-muted);
        background: transparent;
    }

    .venue-map-mobile-preview-actions {
        display: grid;
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem;
        padding-top: 0.55rem;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .venue-map-mobile-preview-actions a {
        align-items: center;
        display: inline-flex;
        min-height: 2.3rem;
        justify-content: center;
        gap: 0.35rem;
        color: var(--gs-primary);
        font-size: 0.72rem;
        font-weight: 850;
        text-decoration: none;
    }

    .venue-map-leaflet-icon.is-active span {
        outline: 3px solid color-mix(in srgb, var(--gs-primary) 48%, transparent);
        outline-offset: 4px;
        transform: scale(1.08);
    }

    body.mobile-map-workspace .mobile-event-fab {
        bottom: calc(var(--mobile-nav-height) + 0.75rem + var(--mobile-map-sheet-offset, 0px) + env(safe-area-inset-bottom));
        transition:
            bottom var(--mobile-sheet-motion-duration) var(--mobile-sheet-motion-ease),
            opacity 180ms ease,
            transform 180ms ease;
    }
}

@media (prefers-reduced-motion: reduce) {
    .venue-map-list.venue-map-mobile-sheet,
    body.mobile-map-workspace .mobile-event-fab {
        transition-duration: 1ms !important;
        transition-delay: 0s !important;
    }
}

/* Keep the list usable when browser chrome or landscape leaves little height. */
@media (max-width: 47.99875rem) and (max-height: 650px) {
    .venue-map-mobile-sheet.is-medium .venue-map-mobile-sheet-search {
        display: none;
    }
}

@media (max-width: 47.99875rem) and (max-height: 500px) {
    body.mobile-map-workspace {
        --mobile-map-visible-height: 0px;
    }

    .gigs-page-map .venue-map-layout:has(.venue-map-mobile-sheet.is-medium) .venue-map-canvas {
        height: 100%;
        visibility: hidden;
    }

    .gigs-page-map .venue-map-shell:has(.venue-map-mobile-sheet.is-medium) .venue-map-header,
    body.mobile-map-workspace:has(.venue-map-mobile-sheet.is-medium) .mobile-event-fab {
        visibility: hidden;
        pointer-events: none;
    }
}

/* Mobile finance workspace */
.finance-cash-footer,
.finance-history-period-title,
.finance-history-mobile-sort,
.payout-summary-mobile-caption,
.payout-group-mobile-subtitle,
.payout-bulk-action-copy-mobile,
.finance-history-mobile-back {
    display: none;
}

.payout-group-heading {
    grid-template-columns: auto auto minmax(0, 1fr) auto auto auto;
}

.payout-group-avatar {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.06);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.56);
    border-radius: 50%;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 2.55rem;
    font-size: 0.88rem;
    font-weight: 850;
    height: 2.55rem;
    justify-content: center;
    overflow: hidden;
    width: 2.55rem;
}

.payout-group-avatar img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.finance-operation-page {
    display: grid;
    gap: 1rem;
    margin-inline: auto;
    max-width: 64rem;
}

.finance-operation-hero,
.finance-operation-details {
    background: var(--gs-bg-card);
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-panel);
    padding: 1.15rem 1.3rem;
}

.finance-operation-hero-topline {
    align-items: center;
    display: grid;
    gap: 0.6rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.finance-operation-direction-icon {
    align-items: center;
    border: 1px solid rgba(52, 211, 153, 0.55);
    border-radius: 50%;
    color: #34d399;
    display: inline-flex;
    height: 2.35rem;
    justify-content: center;
    width: 2.35rem;
}

.finance-operation-hero.is-out .finance-operation-direction-icon,
.finance-operation-hero.is-out .finance-operation-status {
    border-color: rgba(251, 146, 60, 0.55);
    color: #fb923c;
}

.finance-operation-status {
    color: #34d399;
    font-size: 0.76rem;
    font-weight: 800;
}

.finance-operation-hero time {
    color: var(--gs-text-muted);
    font-size: 0.76rem;
}

.finance-operation-detail-amount {
    color: #34d399;
    display: block;
    font-size: clamp(2rem, 5vw, 3rem);
    font-variant-numeric: tabular-nums;
    line-height: 1;
    margin-top: 0.65rem;
}

.finance-operation-hero.is-out .finance-operation-detail-amount {
    color: var(--gs-money);
}

.finance-operation-hero h2 {
    font-size: 1.18rem;
    margin: 1.15rem 0 0.15rem;
}

.finance-operation-hero p,
.finance-operation-location {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    margin: 0;
}

.finance-operation-location {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    margin-top: 0.65rem;
}

.finance-operation-details h2 {
    font-size: 1rem;
    margin: 0 0 0.45rem;
}

.finance-operation-details dl,
.finance-operation-details dd {
    margin: 0;
}

.finance-operation-details dl > div,
.finance-operation-items a {
    align-items: center;
    border-top: 1px solid var(--gs-surface-border);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    min-height: 3rem;
}

.finance-operation-details dt,
.finance-operation-details dd {
    font-size: 0.8rem;
}

.finance-operation-details dt {
    color: var(--gs-text-muted);
    font-weight: 650;
}

.finance-operation-details dd {
    color: var(--gs-text);
    font-weight: 750;
    max-width: 65%;
    text-align: left;
}

.finance-operation-items a {
    color: inherit;
    text-decoration: none;
}

.finance-operation-items a > span {
    display: grid;
    gap: 0.1rem;
}

.finance-operation-items small {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
}

.finance-operation-items b {
    color: var(--gs-money);
}

@media (max-width: 767.98px) {
    .finance-overview-page,
    .payout-page,
    .finance-operation-page {
        gap: 0.625rem;
    }

    .finance-overview-page {
        --finance-display-size: 1.5rem;
        --finance-heading-size: 1rem;
        --finance-metric-size: 1.125rem;
        --finance-panel-padding: 0.875rem;
    }

    .finance-priority-grid,
    .finance-overview-panels {
        gap: 0.625rem;
    }

    .finance-priority-panel,
    .finance-cash-panel {
        border-radius: 0.875rem;
        box-shadow: none;
    }

    .finance-priority-summary-row {
        gap: 0.35rem;
    }

    .finance-priority-heading {
        gap: 0.35rem;
    }

    .finance-priority-heading .finance-section-icon {
        font-size: 0.98rem;
    }

    .finance-priority-heading h2 {
        white-space: normal;
    }

    .finance-info-icon {
        flex-basis: 1.25rem;
        height: 1.25rem;
        width: 1.25rem;
    }

    .finance-priority-total {
        margin-top: 0.4rem;
    }

    .finance-priority-total-unknown {
        font-size: 1rem;
    }

    .finance-priority-summary {
        font-size: 0.76rem;
        line-height: 1.3;
        margin-top: 0.3rem;
    }

    #expected-payouts .finance-priority-action {
        align-items: center;
        background: transparent;
        border: 0;
        color: var(--gs-primary);
        display: inline-flex;
        font-size: 0;
        height: 2.5rem;
        justify-content: center;
        margin: -0.4rem 0 0 -0.55rem;
        min-width: 2.5rem;
        padding: 0;
        width: 2.5rem;
    }

    #expected-payouts .finance-priority-summary-row {
        align-items: center;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 2.5rem;
    }

    #expected-payouts .finance-priority-summary-copy {
        grid-column: 1;
        min-width: 0;
    }

    #expected-payouts .finance-priority-summary-row > .finance-priority-action {
        align-self: center;
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        margin: 0;
    }

    #expected-payouts .finance-priority-action i {
        display: none;
    }

    #expected-payouts .finance-priority-action::after {
        content: "\F285";
        font-family: "bootstrap-icons";
        font-size: 1.05rem;
    }

    .finance-priority-list {
        margin-top: 0.65rem;
    }

    .finance-priority-row {
        gap: 0.65rem;
        min-height: 3.35rem;
        padding-block: 0.45rem;
    }

    .finance-row-avatar {
        flex-basis: 2.35rem;
        height: 2.35rem;
        width: 2.35rem;
    }

    .finance-row-copy > strong,
    .finance-row-amount {
        font-size: 0.86rem;
    }

    .finance-row-copy > small {
        font-size: 0.7rem;
    }

    .finance-receivables-panel .finance-priority-action {
        align-items: center;
        align-self: stretch;
        background: transparent;
        border-color: rgba(var(--gs-primary-rgb), 0.65);
        color: var(--gs-primary);
        display: flex;
        justify-content: center;
        margin-top: 0.55rem;
        order: 3;
        width: 100%;
    }

    .finance-data-review {
        display: none;
    }

    .finance-cash-header {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .finance-cash-header h2 {
        flex: 1 1 auto;
    }

    .finance-period-form-compact,
    .finance-period-form-compact > .form-select {
        width: auto;
    }

    .finance-period-form-compact > .form-select {
        background-position: left 0.45rem center;
        border-color: var(--gs-control-border);
        font-size: 0.68rem;
        min-height: 2rem;
        min-width: 7.8rem;
        padding: 0.3rem 0.55rem 0.3rem 1.45rem;
    }

    .finance-cash-details,
    .finance-cash-note {
        display: none;
    }

    .finance-cash-metrics,
    .finance-cash-metrics-personal {
        border: 0;
        gap: 0.45rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 0.65rem;
        padding: 0;
    }

    .finance-cash-metrics-personal {
        grid-template-columns: minmax(0, 1fr);
    }

    .finance-cash-metric,
    .finance-cash-metric + .finance-cash-metric,
    .finance-cash-metric:nth-child(3) {
        background: rgba(255, 255, 255, 0.018);
        border: 1px solid var(--gs-surface-border);
        border-radius: 0.7rem;
        min-height: 4.25rem;
        padding: 0.55rem;
    }

    .finance-cash-metric:nth-child(3) {
        grid-column: 1 / -1;
    }

    .finance-cash-metric > span,
    .finance-cash-metric > small {
        font-size: 0.65rem;
    }

    .finance-cash-footer {
        align-items: center;
        border-top: 1px solid var(--gs-surface-border);
        color: var(--gs-text);
        display: flex;
        font-size: 0.78rem;
        font-weight: 750;
        justify-content: space-between;
        margin-top: 0.65rem;
        min-height: 2.5rem;
        padding-top: 0.55rem;
        text-decoration: none;
    }

    .finance-history-app-title,
    .payout-app-title,
    .finance-operation-app-title {
        align-items: center;
        display: flex;
        gap: 0.7rem;
    }

    .finance-history-mobile-back,
    .payout-app-title > a,
    .finance-operation-app-title > a {
        align-items: center;
        color: var(--gs-text);
        display: inline-flex;
        height: 2.5rem;
        justify-content: center;
        margin-right: -0.6rem;
        text-decoration: none;
        width: 2.5rem;
    }

    .finance-history-desktop-icon {
        display: none;
    }

    .finance-history-panel {
        background: transparent;
        border: 0;
        box-shadow: none;
        padding: 0;
    }

    .finance-history-header {
        display: none;
    }

    .list-query-panel.member-history-query-panel.finance-history-query-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 0;
        row-gap: 0.65rem;
    }

    .finance-history-query-panel .list-query-search {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .finance-history-mobile-sort {
        display: block;
        grid-column: 1;
        grid-row: 2;
        min-width: 0;
    }

    .finance-history-mobile-sort .form-select {
        font-size: 0.76rem;
        min-height: 2.7rem;
    }

    .finance-history-query-panel .list-search-submit {
        display: none;
    }

    .finance-history-query-panel .list-query-search .input-group {
        width: 100%;
    }

    .list-query-panel.member-history-query-panel.finance-history-query-panel > .list-query-filter > .filter-panel-summary {
        grid-column: 2;
        grid-row: 2;
        width: 100%;
    }

    .finance-history-query-panel .filter-panel-title > span {
        display: inline;
    }

    .finance-history-list {
        border-top: 0;
        gap: 0.65rem;
        margin-top: 0.75rem;
    }

    .finance-history-period-group {
        display: grid;
    }

    .finance-history-period-title {
        color: #c7c9ce;
        display: block;
        font-size: 0.76rem;
        font-weight: 750;
        margin: 0 0 0.25rem;
        position: sticky;
        top: var(--app-topbar-height);
        z-index: 2;
    }

    .finance-history-row {
        background: var(--gs-bg-card);
        border: 1px solid var(--gs-surface-border);
        border-radius: 0.75rem;
        gap: 0.65rem;
        grid-template-columns: auto minmax(0, 1fr) auto;
        min-height: 3.65rem;
        padding: 0.55rem 0.65rem;
    }

    .finance-history-row + .finance-history-row {
        border-top: 1px solid var(--gs-surface-border);
        margin-top: 0.4rem;
    }

    .finance-operation-icon {
        height: 2rem;
        width: 2rem;
    }

    .finance-history-row > .finance-row-amount {
        grid-column: 3;
        justify-self: end;
    }

    .finance-history-amount.is-out {
        color: #fb923c;
    }

    .finance-history-filter-submit {
        min-height: 3rem;
        width: 100%;
    }

    body.mobile-filter-open .mobile-event-fab,
    body.mobile-filter-open .mobile-bottom-nav,
    body:has(.payout-page) .mobile-event-fab,
    body:has(.finance-history-panel) .mobile-event-fab,
    body:has(.finance-operation-page) .mobile-event-fab {
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
    }

    .payout-page {
        padding-bottom: calc(var(--mobile-nav-height) + 0.75rem);
    }

    .payout-page > .payout-page-lead,
    body:has(.payout-page) main > .page-header {
        display: none;
    }

    .payout-summary-panel {
        display: grid;
        gap: 0;
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
        padding: 0.8rem 0.9rem;
    }

    .payout-summary-panel > .payout-summary-metric:not(.payout-summary-total) {
        display: none;
    }

    .payout-summary-total {
        padding: 0;
    }

    .payout-summary-total > span {
        color: #c7c9ce;
        font-size: 0.8rem;
    }

    .payout-summary-total > strong {
        font-size: 1.9rem;
        margin-top: 0.25rem;
    }

    .payout-summary-mobile-caption {
        color: var(--gs-text-muted);
        display: block;
        font-size: 0.72rem;
        margin-top: 0.25rem;
    }

    .payout-view-toggle {
        grid-column: auto;
        margin: 0.55rem -0.9rem -0.8rem;
    }

    .payout-view-toggle a {
        min-height: 2.35rem;
    }

    .payout-view-toggle a.is-active {
        background: var(--gs-primary);
        color: #111;
    }

    .payout-group-heading {
        gap: 0.55rem;
        grid-template-columns: auto auto minmax(0, 1fr) auto auto;
        min-height: 4.6rem;
        padding: 0.65rem;
    }

    .payout-group-selector {
        min-height: 2.35rem;
        min-width: 2rem;
    }

    .payout-group-avatar {
        flex-basis: 2.45rem;
        height: 2.45rem;
        width: 2.45rem;
    }

    .payout-group-panel .payout-group-title > small:not(.payout-group-mobile-subtitle),
    .payout-group-panel .payout-group-meta {
        display: none;
    }

    .payout-group-mobile-subtitle {
        color: var(--gs-text-muted);
        display: block;
        line-height: 1.25;
    }

    .payout-group-total {
        grid-column: 4;
        grid-row: 1;
    }

    .payout-group-chevron {
        grid-column: 5;
        grid-row: 1;
    }

    .payout-group-panel .payout-group-item {
        grid-template-columns: auto minmax(0, 1fr) auto;
        padding: 0.65rem;
    }

    .payout-event-date {
        grid-column: 2;
    }

    .payout-event-copy {
        grid-column: 2;
    }

    .payout-group-panel .payout-group-item-amount {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .payout-bulk-action-bar {
        bottom: calc(0.5rem + env(safe-area-inset-bottom));
        display: grid;
        gap: 0.65rem;
        grid-template-columns: minmax(0, 0.65fr) minmax(0, 1.35fr);
        right: var(--mobile-page-gutter);
        padding: 0.7rem;
        left: var(--mobile-page-gutter);
    }

    .payout-bulk-action-copy {
        align-content: center;
        gap: 0.2rem;
        grid-template-columns: minmax(0, 1fr);
    }

    .payout-bulk-action-copy-desktop,
    .payout-bulk-action-buttons .btn-outline-secondary {
        display: none;
    }

    .payout-bulk-action-copy-mobile {
        display: block;
        font-size: 0.72rem;
    }

    .payout-bulk-action-copy > span {
        font-size: 0.82rem;
    }

    .payout-bulk-action-buttons {
        display: block;
    }

    .payout-bulk-action-buttons .btn {
        min-height: 2.7rem;
        width: 100%;
    }

    .payout-page.has-payout-selection {
        padding-bottom: 6rem;
    }

    body:has(.payout-page.has-payout-selection) .mobile-bottom-nav {
        opacity: 0;
        pointer-events: none;
        transform: translateY(100%);
        visibility: hidden;
    }

    .finance-operation-desktop-header {
        display: none;
    }

    .finance-operation-hero,
    .finance-operation-details {
        border-radius: 0.875rem;
        padding: 0.9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:has(.payout-page.has-payout-selection) .mobile-bottom-nav {
        transition-duration: 1ms !important;
    }
}

/* Events map keeps search and filters together inside the shared full-height workspace. */
@media (max-width: 47.99875rem) {
    body.mobile-map-workspace .gigs-page-map:not(.venues-page-map) > .list-query-panel,
    body.mobile-map-workspace .gigs-page-map:not(.venues-page-map) > .list-query-panel.list-query-panel-with-sort {
        align-items: center;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 7.75rem;
        gap: 0.5rem;
    }

    body.mobile-map-workspace .gigs-page-map:not(.venues-page-map) .list-query-search {
        min-width: 0;
        grid-column: 1 !important;
        grid-row: 1;
    }

    body.mobile-map-workspace .gigs-page-map:not(.venues-page-map) .gigs-mobile-tools {
        width: 100%;
        min-width: 0;
        grid-column: 2 !important;
        grid-row: 1;
    }

    body.mobile-map-workspace .gigs-page-map:not(.venues-page-map) .list-search .input-group {
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 0.75rem;
        background: rgba(255, 255, 255, 0.035);
        box-shadow: var(--gs-control-shadow);
    }

    body.mobile-map-workspace .gigs-page-map:not(.venues-page-map) .list-search .input-group:focus-within {
        border-color: rgba(var(--gs-primary-rgb), 0.62);
        box-shadow: 0 0 0 0.18rem rgba(var(--gs-primary-rgb), 0.12);
    }
}
/* Telegram bot integration */
.telegram-connection-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(42, 171, 238, 0.45);
    border-radius: 50%;
    color: #2aabee;
    background: rgba(42, 171, 238, 0.12);
}

.telegram-bot-panel {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid rgba(42, 171, 238, 0.3);
    border-radius: var(--gs-radius-md);
    background: linear-gradient(-145deg, rgba(42, 171, 238, 0.1), rgba(15, 18, 22, 0.7));
}

.telegram-bot-panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.telegram-bot-panel-heading > div {
    display: grid;
    gap: 0.15rem;
}

.telegram-bot-eyebrow {
    color: #2aabee;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.telegram-bot-panel-note,
.telegram-bot-panel-error {
    margin: 0;
    color: var(--gs-text-muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

.telegram-bot-panel-error {
    color: var(--bs-danger);
}

.telegram-group-send-form {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.telegram-group-picker {
    flex: 1 1 15rem;
}

.telegram-group-picker .form-label {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 700;
    margin-bottom: 0.3rem;
}

.telegram-group-connect-form {
    margin: 0;
}

.telegram-group-manager-list {
    display: grid;
    gap: 0.65rem;
}

.telegram-group-manager-row {
    align-items: center;
    background: rgba(42, 171, 238, 0.06);
    border: 1px solid rgba(42, 171, 238, 0.2);
    border-radius: var(--gs-radius-sm);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.8rem 0.9rem;
}

.telegram-calendar-page {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: calc(100vh - 10rem);
    padding-block: 1rem;
}

.telegram-calendar-public-body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.telegram-calendar-public-main {
    flex: 1 0 auto;
}

.telegram-calendar-card {
    background: linear-gradient(-155deg, rgba(255, 197, 0, 0.09), rgba(15, 18, 22, 0.96));
    border: 1px solid rgba(var(--gs-primary-rgb), 0.35);
    border-radius: 1.25rem;
    box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.3);
    max-width: 38rem;
    padding: clamp(1.25rem, 4vw, 2rem);
    width: 100%;
}

.telegram-calendar-eyebrow {
    align-items: center;
    color: var(--gs-primary);
    display: flex;
    font-size: 0.78rem;
    font-weight: 900;
    gap: 0.45rem;
    letter-spacing: 0.08em;
    margin-bottom: 0.65rem;
    text-transform: uppercase;
}

.telegram-calendar-card h1 {
    font-size: clamp(1.45rem, 5vw, 2.1rem);
    margin-bottom: 1.25rem;
}

.telegram-calendar-details {
    display: grid;
    gap: 0.7rem;
    margin-bottom: 1.4rem;
}

.telegram-calendar-details > div {
    align-items: flex-start;
    display: flex;
    gap: 0.65rem;
}

.telegram-calendar-details .bi {
    color: var(--gs-primary);
    flex: 0 0 1.1rem;
    margin-top: 0.08rem;
    text-align: center;
}

.telegram-calendar-actions {
    display: grid;
    gap: 0.7rem;
}

.telegram-calendar-provider-section {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 1.1rem;
}

.telegram-calendar-provider-section h2 {
    font-size: 1rem;
    font-weight: 850;
    margin: 0 0 0.25rem;
}

.telegram-calendar-provider-section > p {
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    margin: 0 0 0.8rem;
}

.telegram-calendar-provider {
    align-items: center;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    color: var(--gs-text);
    display: grid;
    gap: 0.75rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 4.25rem;
    padding: 0.7rem 0.8rem;
    text-decoration: none;
    transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.telegram-calendar-provider:hover,
.telegram-calendar-provider:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.08);
    border-color: rgba(var(--gs-primary-rgb), 0.7);
    color: var(--gs-text);
    outline: 0;
    transform: translateY(-1px);
}

.telegram-calendar-provider.is-google {
    border-color: rgba(var(--gs-primary-rgb), 0.5);
}

.telegram-calendar-provider-icon {
    align-items: center;
    background: rgba(var(--gs-primary-rgb), 0.1);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.25);
    border-radius: 50%;
    color: var(--gs-primary);
    display: inline-flex;
    flex: 0 0 2.3rem;
    height: 2.3rem;
    justify-content: center;
    width: 2.3rem;
}

.telegram-calendar-provider-copy {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.telegram-calendar-provider-copy strong {
    font-size: 0.9rem;
}

.telegram-calendar-provider-copy small {
    color: var(--gs-text-muted);
    font-size: 0.74rem;
    line-height: 1.35;
}

.telegram-calendar-provider-arrow {
    color: var(--gs-text-muted);
    font-size: 0.9rem;
}

.telegram-calendar-hint {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    line-height: 1.45;
    margin-top: 1rem;
}

.lineup-manual-heading {
    margin-top: 0.35rem;
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.gig-roster-telegram {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
}

.gig-roster-telegram.is-connected,
.gig-roster-telegram.is-sent {
    color: #2aabee;
}

.gig-roster-telegram.is-failed {
    color: var(--bs-danger);
}

@media (max-width: 767.98px) {
    .telegram-bot-panel {
        padding: 0.9rem;
    }

    .telegram-bot-panel-heading {
        align-items: center;
    }

    .telegram-group-send-form > .btn,
    .telegram-group-connect-form,
    .telegram-group-connect-form .btn {
        width: 100%;
    }

    .telegram-group-manager-row {
        align-items: stretch;
        flex-direction: column;
    }

    .telegram-group-manager-row .btn {
        width: 100%;
    }
}

/* Telegram communication flow: compact history, distinct connection states and group identity */
.event-message-channel-icon img,
.telegram-groups-modal-icon img,
.event-message-selected-group-photo img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.event-message-channel-icon:has(img),
.telegram-groups-modal-icon:has(img),
.event-message-selected-group-photo:has(img) {
    overflow: hidden;
}

.event-message-channel-icon:has(img) > i,
.telegram-groups-modal-icon:has(img) > i,
.event-message-selected-group-photo:has(img) > i {
    display: none;
}

.event-message-channel-icon.is-fallback > i,
.telegram-groups-modal-icon.is-fallback > i,
.event-message-selected-group-photo.is-fallback > i {
    display: inline-flex;
}

.event-message-history-log {
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    margin-top: 0.25rem;
    padding-top: 0.25rem;
}

.event-message-history-log > summary {
    align-items: center;
    color: #4fb9f5;
    cursor: pointer;
    display: flex;
    font-size: 0.74rem;
    font-weight: 760;
    justify-content: space-between;
    list-style: none;
    min-height: 2.25rem;
}

.event-message-history-log > summary::-webkit-details-marker {
    display: none;
}

.event-message-history-log > summary > span {
    align-items: center;
    display: inline-flex;
    gap: 0.42rem;
}

.event-message-history-log > summary > .bi-chevron-down {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    transition: transform 0.18s ease;
}

.event-message-history-log[open] > summary > .bi-chevron-down {
    transform: rotate(-180deg);
}

.event-message-history-list {
    display: grid;
    padding: 0.15rem 0 0.35rem;
}

.event-message-history-row {
    align-items: center;
    display: grid;
    gap: 0.55rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-width: 0;
    padding: 0.55rem 0;
}

.event-message-history-row + .event-message-history-row {
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.event-message-history-channel {
    align-items: center;
    background: rgba(42, 171, 238, 0.12);
    border-radius: 50%;
    color: #2aabee;
    display: inline-flex;
    height: 1.7rem;
    justify-content: center;
    width: 1.7rem;
}

.event-message-history-copy {
    display: grid;
    min-width: 0;
}

.event-message-history-copy strong {
    font-size: 0.72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-message-history-copy small {
    color: var(--gs-text-muted);
    font-size: 0.64rem;
}

.event-message-history-status {
    color: var(--gs-text-muted);
    font-size: 0.64rem;
    font-weight: 800;
}

.event-message-history-status.is-sent {
    color: #48d384;
}

.event-message-history-status.is-partial {
    color: #f0b84b;
}

.event-message-history-status.is-failed {
    color: #ff6b78;
}

.event-message-selected-group,
.event-message-group-empty {
    align-items: center;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.6rem;
    display: grid;
    gap: 0.7rem;
    grid-template-columns: auto minmax(0, 1fr);
    margin-top: 0.65rem;
    padding: 0.72rem;
}

.event-message-selected-group-photo {
    align-items: center;
    background: rgba(42, 171, 238, 0.12);
    border: 1px solid rgba(42, 171, 238, 0.32);
    border-radius: 50%;
    color: #2aabee;
    display: inline-flex;
    height: 2.4rem;
    justify-content: center;
    overflow: hidden;
    width: 2.4rem;
}

.event-message-selected-group > span:last-child,
.event-message-group-empty > div {
    display: grid;
    min-width: 0;
}

.event-message-selected-group strong,
.event-message-group-empty strong {
    font-size: 0.8rem;
}

.event-message-selected-group small,
.event-message-group-empty span {
    color: var(--gs-text-muted);
    font-size: 0.69rem;
    line-height: 1.4;
}

.event-message-group-empty > i {
    color: #2aabee;
    font-size: 1.25rem;
}

.event-message-connect-group {
    align-items: center;
    background: transparent;
    border: 0;
    color: #4fb9f5;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 760;
    gap: 0.35rem;
    margin-top: 0.65rem;
    padding: 0;
}

.event-message-connect-group:hover {
    text-decoration: underline;
}

.event-message-personal-hint {
    align-items: flex-start;
    background: rgba(42, 171, 238, 0.07);
    border: 1px solid rgba(42, 171, 238, 0.2);
    border-radius: 0.55rem;
    color: var(--gs-text-muted);
    display: grid;
    font-size: 0.7rem;
    gap: 0.45rem;
    grid-template-columns: auto minmax(0, 1fr);
    line-height: 1.45;
    margin-bottom: 0.75rem;
    padding: 0.65rem 0.7rem;
}

.event-message-personal-hint i {
    color: #4fb9f5;
    margin-top: 0.1rem;
}

.event-message-personal-option {
    cursor: default;
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.event-message-personal-option > input {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

.event-message-personal-option.is-disabled {
    opacity: 1;
}

.event-message-personal-copy {
    gap: 0.08rem;
}

.event-message-bot-state,
.event-message-telegram-contact {
    align-items: center;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.66rem;
    gap: 0.3rem;
    margin-top: 0.12rem;
}

.event-message-telegram-contact {
    color: #4fb9f5;
}

.event-message-bot-state.is-connected {
    color: #48d384;
}

.event-message-personal-actions {
    align-items: flex-end;
    display: grid;
    gap: 0.25rem;
    justify-items: end;
}

.event-message-personal-actions a,
.event-message-personal-actions button {
    background: transparent;
    border: 0;
    color: #4fb9f5;
    font-size: 0.68rem;
    font-weight: 760;
    padding: 0;
    text-decoration: none;
}

.event-message-personal-actions button {
    color: var(--gs-primary);
}

.event-message-personal-actions a:hover,
.event-message-personal-actions button:hover {
    text-decoration: underline;
}

.telegram-groups-modal,
.telegram-member-invite-modal {
    z-index: 1110;
}

.telegram-groups-modal + .modal-backdrop,
.telegram-member-invite-modal + .modal-backdrop {
    z-index: 1100;
}

.telegram-member-invite-modal .modal-content {
    background: #0e1116;
    border-color: rgba(255, 255, 255, 0.14);
}

.telegram-member-invite-modal .modal-header,
.telegram-member-invite-modal .modal-footer {
    border-color: rgba(255, 255, 255, 0.1);
}

.telegram-member-invite-modal .btn-close {
    filter: invert(1) grayscale(1);
}

.telegram-member-invite-modal .modal-title {
    font-size: 1.1rem;
    font-weight: 850;
}

.telegram-member-invite-loading {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    gap: 0.55rem;
    justify-content: center;
    min-height: 5rem;
}

.telegram-member-invite-content {
    display: grid;
    gap: 0.55rem;
}

.telegram-member-invite-content p {
    color: var(--gs-text-muted);
    font-size: 0.8rem;
    line-height: 1.5;
    margin: 0;
}

.telegram-member-invite-content p strong {
    color: var(--gs-text-main);
}

.telegram-member-invite-content > small {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
}

@media (max-width: 575.98px) {
    .event-message-history-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .event-message-history-status {
        grid-column: 2;
    }

    .event-message-personal-option {
        align-items: start;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .event-message-personal-actions {
        grid-column: 2;
        justify-items: start;
    }

    .event-message-personal-actions {
        align-items: flex-start;
        display: flex;
        flex-wrap: wrap;
        gap: 0.55rem;
    }

    .telegram-member-invite-modal .modal-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .telegram-member-invite-modal .modal-footer .btn {
        width: 100%;
    }
}

/* Event communication drawer */
.event-message-card {
    border-color: rgba(var(--gs-primary-rgb), 0.65);
}

.event-message-card-body {
    display: grid;
    gap: 0.75rem;
}

.event-message-channel-row {
    align-items: center;
    display: flex;
    gap: 0.75rem;
}

.event-message-channel-icon {
    align-items: center;
    background: rgba(42, 171, 238, 0.15);
    border: 1px solid rgba(42, 171, 238, 0.32);
    border-radius: 50%;
    color: #2aabee;
    display: inline-flex;
    flex: 0 0 2.5rem;
    font-size: 1.15rem;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.event-message-channel-copy {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.event-message-channel-copy strong {
    color: var(--gs-text-main);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-message-channel-copy span,
.event-message-settings-link {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
}

.event-message-state {
    align-items: flex-start;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.82rem;
    gap: 0.45rem;
    line-height: 1.4;
}

.event-message-state i {
    color: var(--gs-primary);
    margin-top: 0.08rem;
}

.event-message-state.is-success,
.event-message-state.is-success i {
    color: var(--bs-success);
}

.event-message-state.is-warning,
.event-message-state.is-warning i {
    color: var(--bs-warning);
}

.event-message-state.is-error,
.event-message-state.is-error i {
    color: var(--bs-danger);
}

.event-message-delivery-meta {
    color: var(--gs-text-muted);
    font-size: 0.75rem;
    margin-top: -0.45rem;
    padding-right: 1.45rem;
}

.event-message-settings-link {
    justify-self: center;
    text-decoration: none;
}

.event-message-settings-link:hover {
    color: var(--gs-primary);
}

.event-message-drawer {
    --bs-offcanvas-width: min(37.5rem, 100vw);
    background: #0e1116;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--gs-text-main);
}

.event-message-drawer-form {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.event-message-drawer-header {
    align-items: flex-start;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1.25rem 1.5rem;
}

.event-message-drawer-header .btn-close {
    filter: invert(1) grayscale(1);
    margin-top: 0.15rem;
}

.event-message-drawer-kicker {
    color: var(--gs-primary);
    display: block;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 0.25rem;
    text-transform: uppercase;
}

.event-message-drawer-header h2 {
    font-size: 1.35rem;
    font-weight: 800;
}

.event-message-drawer-body {
    min-height: 0;
    padding: 0 1.5rem 1.5rem;
}

.event-message-drawer-section {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1.35rem 0;
}

.event-message-drawer-section:last-child {
    border-bottom: 0;
}

.event-message-section-heading {
    align-items: center;
    display: grid;
    gap: 0.55rem;
    grid-template-columns: 1.45rem minmax(0, 1fr);
    margin-bottom: 1rem;
}

.event-message-section-heading.with-action {
    grid-template-columns: 1.45rem minmax(0, 1fr) auto;
}

.event-message-section-heading > span {
    align-items: center;
    background: var(--gs-primary);
    border-radius: 50%;
    color: #111;
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 900;
    height: 1.45rem;
    justify-content: center;
    width: 1.45rem;
}

.event-message-section-heading h3 {
    font-size: 0.95rem;
    font-weight: 800;
    margin: 0;
}

.event-message-recipient-tabs {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.55rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 1rem;
    padding: 0.2rem;
}

.event-message-recipient-tab {
    cursor: pointer;
    margin: 0;
}

.event-message-recipient-tab input {
    opacity: 0;
    pointer-events: none;
    position: absolute;
}

.event-message-recipient-tab span {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 0.4rem;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.82rem;
    font-weight: 800;
    gap: 0.45rem;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0.55rem 0.75rem;
}

.event-message-recipient-tab input:checked + span {
    background: rgba(var(--gs-primary-rgb), 0.08);
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    color: var(--gs-primary);
}

.event-message-recipient-tab input:focus-visible + span {
    box-shadow: 0 0 0 0.2rem rgba(var(--gs-primary-rgb), 0.2);
}

.event-message-recipient-tab input:disabled + span {
    cursor: not-allowed;
    opacity: 0.4;
}

.event-message-group-recipient .form-label,
.event-message-settings .form-label {
    color: var(--gs-text-muted);
    font-size: 0.75rem;
    font-weight: 800;
}

.event-message-personal-toolbar {
    align-items: center;
    color: var(--gs-text-muted);
    display: flex;
    font-size: 0.75rem;
    justify-content: space-between;
    margin-top: 0.65rem;
}

.event-message-avatar-stack {
    display: flex;
    padding-right: 0.4rem;
}

.event-message-avatar-stack > span {
    align-items: center;
    background: #181c22;
    border: 1px solid var(--gs-primary);
    border-radius: 50%;
    display: inline-flex;
    height: 1.85rem;
    justify-content: center;
    margin-right: -0.4rem;
    overflow: hidden;
    width: 1.85rem;
}

.event-message-avatar-stack img,
.event-message-personal-avatar img,
.event-message-lineup-avatar img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.event-message-lineup-summary {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.6rem;
    margin-top: 0.7rem;
    overflow: hidden;
}

.event-message-lineup-summary > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    list-style: none;
    min-height: 3.35rem;
    padding: 0.65rem 0.75rem;
}

.event-message-lineup-summary > summary::-webkit-details-marker {
    display: none;
}

.event-message-lineup-summary > summary:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(var(--gs-primary-rgb), 0.7);
    outline: 0;
}

.event-message-lineup-summary[open] > summary {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.event-message-lineup-summary-copy {
    display: grid;
    gap: 0.08rem;
}

.event-message-lineup-summary-copy strong {
    color: var(--gs-text-main);
    font-size: 0.8rem;
}

.event-message-lineup-summary-copy small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
}

.event-message-lineup-summary-visual {
    align-items: center;
    display: flex;
    gap: 0.55rem;
}

.event-message-lineup-chevron {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    transition: transform 0.18s ease;
}

.event-message-lineup-summary[open] .event-message-lineup-chevron {
    transform: rotate(-180deg);
}

.event-message-lineup-list {
    display: grid;
    padding: 0.25rem 0.75rem;
}

.event-message-lineup-member {
    align-items: center;
    display: grid;
    gap: 0.65rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 3.65rem;
    padding: 0.55rem 0;
}

.event-message-lineup-member + .event-message-lineup-member {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.event-message-lineup-avatar {
    align-items: center;
    background: #181c22;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.58);
    border-radius: 50%;
    display: inline-flex;
    height: 2.1rem;
    justify-content: center;
    overflow: hidden;
    width: 2.1rem;
}

.event-message-lineup-copy {
    display: grid;
    min-width: 0;
}

.event-message-lineup-copy strong {
    font-size: 0.8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-message-lineup-copy small {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-message-group-presence {
    align-items: center;
    color: var(--gs-text-muted);
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 750;
    gap: 0.3rem;
    justify-self: end;
    text-align: left;
}

.event-message-group-presence.is-present {
    color: #48d384;
}

.event-message-group-presence.is-absent {
    color: #f0b84b;
}

.event-message-group-presence.is-unknown,
.event-message-group-presence.is-disconnected {
    color: var(--gs-text-muted);
}

.event-message-personal-toolbar {
    margin: 0 0 0.5rem;
}

.event-message-personal-toolbar .btn-link {
    color: var(--gs-primary);
    padding: 0;
    text-decoration: none;
}

.event-message-personal-list {
    display: grid;
    gap: 0.45rem;
    padding-inline-start: 2.25rem;
}

.event-message-personal-option {
    align-items: center;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.55rem;
    cursor: pointer;
    display: grid;
    gap: 0.65rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin: 0;
    min-width: 0;
    padding: 0.65rem 0.75rem;
    position: relative;
}

.event-message-personal-option:has(input:checked) {
    background: rgba(var(--gs-primary-rgb), 0.06);
    border-color: rgba(var(--gs-primary-rgb), 0.42);
}

.event-message-personal-option.is-disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.event-message-personal-avatar {
    align-items: center;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.58);
    border-radius: 50%;
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    overflow: hidden;
    width: 2rem;
}

.event-message-personal-copy {
    display: grid;
    min-width: 0;
}

.event-message-personal-copy strong {
    font-size: 0.82rem;
}

.event-message-personal-copy small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
}

.event-message-personal-check {
    align-items: center;
    border: 1px solid var(--gs-text-muted);
    border-radius: 50%;
    block-size: 1.125rem;
    color: var(--gs-primary);
    display: inline-flex;
    font-size: 1.125rem;
    inline-size: 1.125rem;
    justify-content: center;
}

.event-message-personal-check::before {
    opacity: 0;
}

.event-message-personal-option:has(input:checked) .event-message-personal-check {
    border-color: transparent;
}

.event-message-personal-option:has(input:checked) .event-message-personal-check::before {
    opacity: 1;
}

.event-message-settings {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.65rem;
    margin-bottom: 1rem;
    padding: 0.9rem;
}

.event-message-field-grid {
    display: grid;
    gap: 0.45rem 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 0.85rem;
}

.event-message-field-grid .form-check {
    font-size: 0.78rem;
    margin: 0;
}

.telegram-message-stage {
    background: #d9e8e4;
    border-radius: 0.8rem;
    padding: 1rem;
}

.telegram-message-preview-card {
    background: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 0.45rem 1.2rem rgba(24, 44, 39, 0.14);
    color: #20252a;
    display: grid;
    font-size: 0.8rem;
    gap: 0.85rem;
    line-height: 1.35;
    padding: 1rem;
}

.telegram-message-preview-card header,
.telegram-message-preview-card footer,
.telegram-preview-section > div {
    display: grid;
}

.telegram-message-preview-card header strong {
    align-items: center;
    display: flex;
    font-size: 0.98rem;
    gap: 0.4rem;
}

.telegram-message-preview-card header strong i,
.telegram-preview-section > i {
    color: #d09b00;
}

.telegram-message-preview-card header span,
.telegram-preview-section span {
    color: #313940;
}

.telegram-preview-section {
    align-items: flex-start;
    display: grid;
    gap: 0.6rem;
    grid-template-columns: 1rem minmax(0, 1fr);
}

.telegram-preview-section > i {
    margin-top: 0.05rem;
    text-align: center;
}

.telegram-preview-section strong {
    font-size: 0.76rem;
    margin-bottom: 0.1rem;
}

.telegram-preview-section a {
    color: #168bd1;
    margin-top: 0.1rem;
    text-decoration: none;
}

.telegram-preview-lineup {
    color: #dbe4eb;
    display: grid;
    gap: 0;
    margin: 0;
    padding-right: 1.25rem;
}

.telegram-preview-custom-message {
    border-top: 1px solid #e6e9eb;
    margin: 0;
    padding-top: 0.75rem;
    white-space: pre-wrap;
}

.telegram-message-preview-card footer {
    align-items: center;
    color: #80909a;
    font-size: 0.65rem;
    grid-template-columns: 1fr auto;
}

.telegram-action-preview {
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.telegram-action-preview button {
    align-items: center;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0.45rem;
    color: var(--gs-text-main);
    display: flex;
    font-size: 0.76rem;
    font-weight: 750;
    gap: 0.4rem;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0.55rem 0.65rem;
}

.telegram-action-preview .is-confirm {
    border-color: rgba(25, 180, 95, 0.6);
    color: #48d384;
}

.telegram-action-preview .is-decline {
    border-color: rgba(220, 53, 69, 0.58);
    color: #ff6b78;
}

.event-message-drawer-footer {
    align-items: center;
    background: #0e1116;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 -0.6rem 1.5rem rgba(0, 0, 0, 0.22);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem 1.5rem;
}

.event-message-drawer-footer > div {
    display: grid;
    min-width: 0;
}

.event-message-drawer-footer strong {
    font-size: 0.78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-message-drawer-footer span {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
}

.event-message-drawer-footer .btn {
    flex: 0 0 auto;
}

@media (max-width: 575.98px) {
    .event-message-drawer {
        --bs-offcanvas-width: 100vw;
    }

    .event-message-drawer-header,
    .event-message-drawer-body,
    .event-message-drawer-footer {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .event-message-section-heading.with-action {
        grid-template-columns: 1.45rem minmax(0, 1fr);
    }

    .event-message-section-heading.with-action .btn {
        grid-column: 2;
        justify-self: start;
    }

    .event-message-drawer-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .event-message-drawer-footer .btn {
        width: 100%;
    }

    .event-message-lineup-member {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .event-message-group-presence {
        grid-column: 2;
        justify-self: start;
        text-align: right;
    }
}

/* Refined event messaging flow */
.event-message-drawer {
    z-index: 1090;
}

body:has(.event-message-drawer.show, .event-message-drawer.showing) > .offcanvas-backdrop {
    z-index: 1080;
}

.event-message-drawer-header {
    align-items: center;
}

.event-message-section-heading,
.event-message-section-heading.with-action {
    display: flex;
    justify-content: space-between;
}

.event-message-personal-unavailable {
    align-items: flex-start;
    background: rgba(42, 171, 238, 0.07);
    border: 1px solid rgba(42, 171, 238, 0.22);
    border-radius: 0.55rem;
    color: var(--gs-text-muted);
    display: grid;
    font-size: 0.76rem;
    gap: 0.45rem;
    grid-template-columns: auto minmax(0, 1fr);
    line-height: 1.45;
    margin-bottom: 1rem;
    padding: 0.7rem 0.75rem;
}

.event-message-personal-unavailable i,
.event-message-personal-unavailable a,
.event-message-personal-connect,
.event-message-defaults-link {
    color: #4fb9f5;
}

.event-message-personal-unavailable a {
    grid-column: 2;
    justify-self: start;
}

.event-message-personal-option.is-disabled {
    cursor: default;
    opacity: 1;
}

.event-message-personal-option.is-disabled > input {
    opacity: 0.35;
}

/* Keep selection controls in a fixed gutter outside each recipient card. */
.event-message-personal-selector {
    align-items: center;
    block-size: 2.75rem;
    cursor: pointer;
    display: inline-flex;
    inline-size: 2.75rem;
    inset-block-start: 50%;
    inset-inline-start: -2.75rem;
    justify-content: center;
    position: absolute;
    transform: translateY(-50%);
}

.event-message-personal-option:has(input:focus-visible) .event-message-personal-selector {
    border-radius: 0.5rem;
    outline: 2px solid var(--gs-primary);
    outline-offset: -4px;
}

.event-message-personal-connect {
    font-size: 0.72rem;
    font-weight: 750;
    text-decoration: none;
}

.event-message-personal-connect:hover,
.event-message-defaults-link:hover {
    text-decoration: underline;
}

details.event-message-settings {
    display: block;
    margin-bottom: 0.9rem;
    padding: 0;
}

.event-message-settings summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    list-style: none;
    min-height: 2.65rem;
    padding: 0.65rem 0.8rem;
}

.event-message-settings summary::-webkit-details-marker {
    display: none;
}

.event-message-settings summary > span {
    align-items: center;
    display: inline-flex;
    font-size: 0.8rem;
    font-weight: 800;
    gap: 0.45rem;
}

.event-message-settings summary small {
    color: var(--gs-primary);
    font-size: 0.7rem;
    font-weight: 750;
}

.event-message-settings-body {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 0.85rem;
}

.event-message-save-defaults {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 0.74rem;
    margin: 0;
    padding-top: 0.75rem;
}

.event-message-defaults-link {
    display: inline-block;
    font-size: 0.72rem;
    margin-top: 0.65rem;
    text-decoration: none;
}

.event-message-custom-label {
    color: var(--gs-text-muted);
    font-size: 0.75rem;
    font-weight: 800;
}

.event-message-custom-label + textarea {
    margin-bottom: 1rem;
}

.telegram-message-stage {
    background: #0e1621;
    border: 1px solid rgba(42, 171, 238, 0.2);
    padding: 1rem 0.75rem;
}

.telegram-message-preview-card {
    background: #182533;
    border-radius: 0.75rem 0.75rem 0.75rem 0.2rem;
    box-shadow: 0 0.45rem 1.2rem rgba(0, 0, 0, 0.25);
    color: #f2f6fa;
    margin-right: auto;
    max-width: 28rem;
    padding: 0.9rem;
}

.telegram-message-preview-card header {
    gap: 0.15rem;
}

.telegram-message-preview-card header strong {
    color: #f2f6fa;
}

.telegram-message-preview-card header strong + strong {
    font-size: 0.9rem;
}

.telegram-message-preview-card header span,
.telegram-preview-section span {
    color: #dbe4eb;
}

.telegram-preview-section strong {
    color: #f2f6fa;
}

.telegram-preview-custom-message {
    border-top: 0;
    color: #f2f6fa;
    padding-top: 0;
}

.telegram-message-preview-card footer {
    color: #70b9e9;
}

.telegram-preview-keyboard {
    display: grid;
    gap: 0.3rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0.15rem -0.45rem -0.45rem;
}

.telegram-preview-keyboard-item {
    align-items: center;
    background: rgba(42, 171, 238, 0.1);
    border-radius: 0.35rem;
    color: #55b8f4;
    display: flex;
    font-size: 0.7rem;
    font-weight: 740;
    gap: 0.35rem;
    justify-content: center;
    min-height: 2.1rem;
    padding: 0.4rem;
    text-align: center;
}

.telegram-preview-keyboard-item.is-confirm {
    color: #5bd28d;
}

.telegram-preview-keyboard-item.is-decline {
    color: #ff7c88;
}

.event-message-action-grid {
    display: grid;
    gap: 0.55rem 0.8rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.event-message-action-grid .form-check {
    font-size: 0.78rem;
    margin: 0;
}

@media (max-width: 575.98px) {
    .telegram-message-preview-card {
        max-width: 100%;
    }

    .event-message-action-grid,
    .telegram-preview-keyboard {
        grid-template-columns: 1fr;
    }
}

/* Compact event messaging summary, history and Telegram group management */
.event-message-card-actions {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

button.event-message-settings-link {
    background: transparent;
    border: 0;
    padding: 0;
}

.event-message-personal-unavailable {
    align-items: center;
    background: transparent;
    border: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.45rem;
    margin: -0.35rem 0 0.8rem;
    padding: 0;
}

.event-message-personal-unavailable a {
    grid-column: auto;
}

.event-message-history-body {
    display: grid;
    gap: 1.25rem;
    padding: 1.25rem 1.5rem;
}

.event-message-history-meta {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.event-message-history-meta > div {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.6rem;
    min-width: 0;
    padding: 0.75rem;
}

.event-message-history-meta dt,
.event-message-history-section h3 {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin: 0 0 0.25rem;
    text-transform: uppercase;
}

.event-message-history-meta dd {
    font-size: 0.85rem;
    font-weight: 750;
    margin: 0;
    overflow-wrap: anywhere;
}

.event-message-history-section {
    display: grid;
    gap: 0.6rem;
}

.event-message-history-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.event-message-history-fields span {
    background: rgba(var(--gs-primary-rgb), 0.08);
    border: 1px solid rgba(var(--gs-primary-rgb), 0.35);
    border-radius: 999px;
    color: var(--gs-primary);
    font-size: 0.7rem;
    font-weight: 750;
    padding: 0.3rem 0.55rem;
}

.event-message-history-text {
    background: #182533;
    border: 1px solid rgba(42, 171, 238, 0.2);
    border-radius: 0.75rem;
    color: #f2f6fa;
    font-family: inherit;
    font-size: 0.8rem;
    line-height: 1.5;
    margin: 0;
    overflow-wrap: anywhere;
    padding: 1rem;
    white-space: pre-wrap;
}

.event-message-history-footer {
    align-items: center;
    background: #0e1116;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    gap: 0.65rem;
    justify-content: flex-end;
    padding: 1rem 1.5rem;
}

.telegram-groups-modal .modal-content {
    background: #0e1116;
    border-color: rgba(255, 255, 255, 0.14);
}

.telegram-groups-modal .modal-header,
.telegram-groups-modal .modal-footer {
    border-color: rgba(255, 255, 255, 0.1);
}

.telegram-groups-modal .modal-title {
    font-size: 1.15rem;
    font-weight: 850;
}

.telegram-groups-modal .btn-close {
    filter: invert(1) grayscale(1);
}

.telegram-groups-modal-list {
    display: grid;
    gap: 0.55rem;
}

.telegram-groups-modal-row,
.telegram-group-manager-row {
    align-items: center;
    display: grid;
    gap: 0.7rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.telegram-groups-modal-icon {
    align-items: center;
    background: rgba(42, 171, 238, 0.12);
    border: 1px solid rgba(42, 171, 238, 0.32);
    border-radius: 50%;
    color: #2aabee;
    display: inline-flex;
    height: 2.25rem;
    justify-content: center;
    width: 2.25rem;
}

.telegram-groups-modal-copy {
    display: grid;
    min-width: 0;
}

.telegram-groups-modal-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.telegram-groups-modal-copy small {
    color: #48d384;
    font-size: 0.7rem;
}

.telegram-groups-modal-empty {
    align-items: center;
    color: var(--gs-text-muted);
    display: grid;
    gap: 0.35rem;
    justify-items: center;
    padding: 1rem;
    text-align: center;
}

.telegram-groups-modal-empty > i {
    color: #2aabee;
    font-size: 1.6rem;
}

.telegram-groups-modal-empty strong {
    color: var(--gs-text-main);
}

.telegram-groups-modal-footer {
    align-items: center;
    justify-content: space-between;
}

.telegram-groups-modal-footer > span {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    line-height: 1.4;
    max-width: 16rem;
}

@media (max-width: 575.98px) {
    .event-message-card-actions,
    .event-message-history-meta {
        grid-template-columns: 1fr;
    }

    .event-message-history-body,
    .event-message-history-footer {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .event-message-history-footer,
    .telegram-groups-modal-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .event-message-history-footer .btn,
    .telegram-groups-modal-footer form,
    .telegram-groups-modal-footer .btn {
        width: 100%;
    }

    .telegram-groups-modal-row,
    .telegram-group-manager-row {
        align-items: center;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .telegram-groups-modal-row form,
    .telegram-group-manager-row form {
        grid-column: 1 / -1;
    }

    .telegram-groups-modal-row .btn,
    .telegram-group-manager-row .btn {
        width: 100%;
    }
}

/* Final responsive overrides for the Telegram recipient list. */
.event-message-personal-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-message-personal-copy .event-message-bot-state,
.event-message-personal-copy .event-message-telegram-contact {
    overflow-wrap: anywhere;
}

@media (max-width: 575.98px) {
    .event-message-personal-option {
        align-items: center;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .event-message-personal-actions {
        align-items: flex-start;
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem 0.75rem;
        grid-column: 2;
        justify-items: start;
    }
}
/* Venue profitability analytics */
.venue-main-card {
    overflow: hidden;
}

.section-tabs,
.venue-detail-tabs {
    align-items: center;
    display: flex;
    gap: 0.35rem;
}

.section-tabs a,
.venue-detail-tabs a {
    align-items: center;
    display: inline-flex;
    min-height: 2.45rem;
    gap: 0.5rem;
    padding: 0.55rem 0.8rem;
    border-bottom: 2px solid transparent;
    color: var(--gs-text-muted);
    font-weight: 800;
    text-decoration: none;
    transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.section-tabs a:hover,
.section-tabs a:focus-visible,
.venue-detail-tabs a:hover,
.venue-detail-tabs a:focus-visible {
    color: var(--gs-text);
    background: rgba(255, 255, 255, 0.025);
}

.section-tabs a.active,
.venue-detail-tabs a.active {
    border-bottom-color: var(--gs-primary);
    color: var(--gs-text);
}

.section-tabs a.active i,
.venue-detail-tabs a.active i {
    color: var(--gs-primary);
}

.venue-detail-tabs small {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-width: 1.45rem;
    height: 1.45rem;
    padding: 0 0.35rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--gs-radius-pill);
    color: var(--gs-text-muted);
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.68rem;
}

.venue-analytics {
    display: grid;
    gap: 1rem;
}

.venue-main-card > .venue-analytics-card-body {
    padding-top: 0.72rem;
}

.venue-analytics > * {
    min-width: 0;
}

.venue-analytics-toolbar {
    align-items: end;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.venue-analytics-eyebrow {
    color: var(--gs-primary);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.venue-analytics-toolbar h2 {
    margin: 0;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.venue-analytics-toolbar p,
.venue-analytics-chart-card header p {
    margin: 0.2rem 0 0;
    color: var(--gs-text-muted);
    font-size: 0.76rem;
}

.venue-analytics-period-form {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.venue-analytics-period-form > label,
.venue-analytics-chart-card header label > span {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
}

.venue-analytics-period-form > label {
    align-self: center;
}

.venue-analytics-period-form .analytics-period-selector {
    min-width: 18.5rem;
}

.venue-analytics-period-form > .analytics-period-range {
    order: -1;
    align-self: flex-end;
    margin: 0 0 0.62rem;
    padding-left: 0.3rem;
    white-space: nowrap;
}

.venue-analytics-custom-dates {
    align-items: center;
    display: flex;
    gap: 0.4rem;
}

.venue-analytics-custom-dates .form-control {
    width: 9.25rem;
}

.venue-analytics-scope-row {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-control);
    background: rgba(255, 255, 255, 0.018);
}

.venue-analytics-scope-row > span {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.venue-analytics-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
}

.venue-analytics-kpi-layout {
    align-items: stretch;
    display: grid;
    grid-template-columns: minmax(15rem, 0.9fr) minmax(0, 2.1fr);
    gap: 0.7rem;
}

.venue-analytics-card,
.venue-analytics-chart-card,
.venue-analytics-comparison-card,
.venue-analytics-insight-card {
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-md);
    background: var(--gs-surface-bg-quiet);
    box-shadow: var(--gs-surface-edge-shadow);
}

.venue-analytics-card {
    --venue-analytics-metric-size: clamp(1.2rem, 2.4vw, 1.7rem);
    align-content: start;
    display: grid;
    min-height: 8.5rem;
    gap: 0.38rem;
    padding: 0.9rem;
}

.venue-analytics-card-label {
    align-items: center;
    display: flex;
    gap: 0.35rem;
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.venue-analytics-card-label > i {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
}

.venue-analytics-info-button {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: var(--gs-text-muted);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 1.5rem;
    height: 1.5rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
    width: 1.5rem;
}

.venue-analytics-info-button:hover,
.venue-analytics-info-button:focus {
    background: rgba(var(--gs-primary-rgb), 0.1);
    color: var(--gs-primary);
}

.venue-analytics-info-button:focus-visible {
    box-shadow: 0 0 0 2px rgba(var(--gs-primary-rgb), 0.38);
    outline: none;
}

.venue-analytics-card > strong {
    color: var(--gs-primary);
    font-size: var(--venue-analytics-metric-size);
    line-height: 1.1;
}

.venue-analytics-card > small,
.venue-analytics-score-card footer {
    color: var(--gs-text-muted);
    font-size: 0.67rem;
    line-height: 1.35;
}

.venue-analytics-ranking-link {
    width: fit-content;
    padding: 0.06rem 0.08rem;
    border-radius: 0.22rem;
    color: var(--gs-text-muted);
    cursor: pointer;
    text-decoration-line: underline;
    text-decoration-style: dotted;
    text-decoration-color: rgba(var(--gs-primary-rgb), 0.68);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16rem;
    transition:
        color var(--gs-motion-fast) var(--gs-ease-standard),
        background-color var(--gs-motion-fast) var(--gs-ease-standard),
        text-decoration-color var(--gs-motion-fast) var(--gs-ease-standard);
}

.venue-analytics-change .venue-analytics-ranking-link,
.venue-analytics-card-note .venue-analytics-ranking-link {
    color: inherit;
}

.venue-analytics-ranking-link:hover,
.venue-analytics-ranking-link:focus-visible {
    background: rgba(var(--gs-primary-rgb), 0.09);
    color: var(--gs-primary);
    text-decoration-color: currentColor;
}

.venue-analytics-ranking-link:focus-visible {
    outline: 2px solid rgba(var(--gs-primary-rgb), 0.7);
    outline-offset: 0.13rem;
}

.venue-analytics-score-card {
    min-height: 100%;
    border-color: rgba(var(--gs-primary-rgb), 0.42);
    background:
        radial-gradient(circle at 88% 12%, rgba(var(--gs-primary-rgb), 0.13), transparent 8rem),
        var(--gs-surface-bg-quiet);
}

.venue-analytics-rank-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: auto;
}

.venue-analytics-rank-grid > span {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
    padding: 0.7rem;
    border: 1px solid transparent;
}

.venue-analytics-rank-item + .venue-analytics-rank-item::before {
    content: "";
    position: absolute;
    inset-block: 0.7rem;
    inset-inline-start: -0.375rem;
    width: 1px;
    background: var(--gs-surface-border);
}

.venue-analytics-rank-link {
    align-content: start;
    display: grid;
    gap: 0.25rem;
    justify-items: inherit;
    min-height: 2.75rem;
    padding: 0;
    text-decoration: none;
    width: 100%;
}

.venue-analytics-rank-link .venue-analytics-rank-value > strong {
    text-decoration: underline dotted rgba(var(--gs-primary-rgb), 0.45) 1px;
    text-underline-offset: 0.2rem;
}

.venue-analytics-rank-link:hover .venue-analytics-rank-value > strong,
.venue-analytics-rank-link:focus-visible .venue-analytics-rank-value > strong {
    text-decoration-color: currentColor;
}

.venue-analytics-rank-value {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.4rem;
    min-width: 0;
}

.venue-analytics-rank-value > strong {
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.035em;
}

.venue-analytics-rank-grid small {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    line-height: 1.3;
}

.venue-analytics-rank-grid strong {
    color: var(--gs-primary);
    font-size: clamp(1.25rem, 2.3vw, 1.65rem);
    line-height: 1;
}

.venue-analytics-rank-total {
    align-items: baseline;
    display: inline-flex;
    gap: 0.22rem;
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    line-height: 1;
    white-space: nowrap;
}

.venue-analytics-rank-total > b {
    color: var(--gs-text);
    font-size: 0.95rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.venue-analytics-rank-scale {
    position: absolute;
    inset-inline: 0.7rem;
    inset-block-end: 0;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--gs-surface-border);
    pointer-events: none;
}

.venue-analytics-rank-scale::before {
    content: "";
    display: block;
    width: clamp(0%, var(--venue-rank-fill), 100%);
    height: 100%;
    min-width: 3px;
    border-radius: inherit;
    background: var(--gs-primary);
}

@media (min-width: 1400px) {
    .venue-analytics-score-card:not(.is-insufficient) {
        align-content: stretch;
        grid-template-rows: auto minmax(0, 1fr) auto;
        container-type: inline-size;
    }

    .venue-analytics-score-card .venue-analytics-rank-grid {
        align-self: center;
        margin-top: 0;
    }

    .venue-analytics-rank-grid > .venue-analytics-rank-item {
        align-content: start;
        justify-items: center;
        gap: 0.6rem;
        text-align: center;
    }

    .venue-analytics-rank-link { gap: 0.6rem; }

    .venue-analytics-rank-value {
        justify-content: center;
    }

    .venue-analytics-rank-total {
        font-size: 0.85rem;
    }

    .venue-analytics-rank-total > b {
        font-size: 1.05rem;
    }

    .venue-analytics-rank-value > strong {
        font-size: clamp(1.8rem, 14cqi, 2.65rem);
        font-weight: 800;
    }

    .venue-analytics-rank-item + .venue-analytics-rank-item::before {
        inset-block: 15%;
    }

    .venue-analytics-score-card .venue-analytics-rank-context {
        border-top: 1px solid var(--gs-surface-border);
        padding-top: 0.65rem;
    }
}

.venue-analytics-rank-context {
    margin-top: 0.15rem;
}

.venue-analytics-position {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
}

.venue-analytics-position strong {
    color: var(--gs-primary);
    font-size: clamp(2.2rem, 4vw, 3.2rem);
    line-height: 1;
}

.venue-analytics-position span {
    max-width: 8.5rem;
    color: var(--gs-text);
    font-size: 0.88rem;
    font-weight: 900;
    line-height: 1.2;
}

.venue-analytics-score {
    align-items: baseline;
    display: flex;
    gap: 0.2rem;
}

.venue-analytics-score strong {
    color: var(--gs-primary);
    font-size: 2.35rem;
    line-height: 1;
}

.venue-analytics-score span {
    color: var(--gs-text-muted);
    font-weight: 800;
}

.venue-analytics-score.is-unavailable strong {
    color: var(--gs-text-muted);
    font-size: 1.4rem;
}

.venue-analytics-index-badge {
    justify-self: start;
    padding: 0.2rem 0.45rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--gs-radius-control);
    color: var(--gs-text-muted);
    font-size: 0.62rem;
    font-weight: 900;
}

.venue-analytics-index-badge.is-positive,
.venue-analytics-index-badge.is-strong {
    border-color: rgba(67, 227, 181, 0.42);
    color: #43e3b5;
    background: rgba(67, 227, 181, 0.08);
}

.venue-analytics-index-badge.is-negative {
    border-color: rgba(255, 117, 133, 0.4);
    color: #ff7585;
    background: rgba(255, 117, 133, 0.08);
}

.venue-analytics-score-card footer {
    margin-top: 0.2rem;
    padding-top: 0.45rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.venue-analytics-change.is-positive {
    color: #43e3b5;
}

.venue-analytics-change.is-negative {
    color: #ff7585;
}

.venue-analytics-trend {
    appearance: none;
    cursor: pointer;
    font-family: inherit;
    justify-self: start;
    margin: 0.04rem 0;
}

.venue-analytics-trend.stat-trend-down {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    color: #ff7585;
    text-shadow: none;
}

.venue-analytics-trend.stat-trend-down .stat-trend-value,
.venue-analytics-trend.stat-trend-down .bi {
    color: inherit;
    filter: none;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.54);
}

.venue-analytics-trend.stat-trend-down .bi {
    font-size: 1.06rem;
    -webkit-text-stroke: 0.035rem currentColor;
}
.venue-analytics-trend.is-money .stat-trend-tooltip-row:not(.is-dynamics) strong {
    color: var(--gs-money);
}

.venue-analytics-trend:focus {
    outline: none;
}

.venue-analytics-trend:focus-visible {
    box-shadow: 0 0 0 2px rgba(var(--gs-primary-rgb), 0.38);
}

.venue-analytics-card,
.venue-analytics-rank-grid > span {
    position: relative;
}

.venue-analytics-card:has(.venue-analytics-trend:hover),
.venue-analytics-card:has(.venue-analytics-trend:focus),
.venue-analytics-rank-grid > span:has(.venue-analytics-trend:hover),
.venue-analytics-rank-grid > span:has(.venue-analytics-trend:focus) {
    z-index: 12;
}

.venue-analytics-card .stat-trend-tooltip,
.venue-analytics-rank-grid .stat-trend-tooltip {
    bottom: auto;
    top: calc(100% + 0.62rem);
    transform: translate(50%, -0.25rem);
}

.venue-analytics-trend:hover .stat-trend-tooltip,
.venue-analytics-trend:focus .stat-trend-tooltip {
    opacity: 1;
    transform: translate(50%, 0);
    visibility: visible;
}

.venue-analytics-summary-grid > .venue-analytics-card:nth-child(3n) .stat-trend-tooltip {
    right: auto;
    left: 0;
    transform: translateY(-0.25rem);
}

.venue-analytics-summary-grid > .venue-analytics-card:nth-child(3n) .venue-analytics-trend:hover .stat-trend-tooltip,
.venue-analytics-summary-grid > .venue-analytics-card:nth-child(3n) .venue-analytics-trend:focus .stat-trend-tooltip {
    transform: translateY(0);
}

.venue-analytics-score-card.is-insufficient {
    align-self: start;
    height: auto;
    min-height: 0;
}

.venue-analytics-kpi-layout:has(.venue-analytics-score-card.is-insufficient) {
    align-items: start;
}

.venue-analytics-insufficient-state {
    align-content: start;
    display: grid;
    gap: 0.32rem;
    margin-top: 0.35rem;
    padding: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--gs-radius-sm);
    background: rgba(255, 255, 255, 0.025);
}

.venue-analytics-insufficient-state > strong {
    color: var(--gs-text);
    font-size: 0.95rem;
    line-height: 1.25;
}

.venue-analytics-insufficient-state > span {
    color: var(--gs-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.venue-analytics-insufficient-state > span b {
    color: var(--gs-primary);
    font-size: 1.05rem;
}

.venue-analytics-insufficient-state > small,
.venue-analytics-insufficient-state > p {
    color: var(--gs-text-muted);
    font-size: 0.67rem;
    line-height: 1.35;
}

.venue-analytics-insufficient-state > p {
    margin: 0.15rem 0 0;
}

.venue-analytics-compact-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--gs-surface-border);
    border-radius: var(--gs-radius-md);
    background: rgba(255, 255, 255, 0.018);
}

.venue-analytics-compact-metrics > span {
    display: grid;
    min-width: 0;
    gap: 0.2rem;
    padding: 0.72rem 0.85rem;
}

.venue-analytics-compact-metrics > span + span {
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.venue-analytics-compact-metrics small {
    color: var(--gs-text-muted);
    font-size: 0.65rem;
}

.venue-analytics-compact-metrics strong {
    overflow: hidden;
    color: var(--gs-text);
    font-size: 0.85rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-analytics-chart-card {
    overflow: hidden;
}

.venue-analytics-chart-card > header {
    align-items: end;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem 0.55rem;
}

.venue-analytics-chart-card h3,
.venue-analytics-comparison-card h3,
.venue-analytics-insight-card h3 {
    margin: 0;
    font-size: 0.95rem;
}

.venue-analytics-chart-card header label,
.venue-analytics-metric-control {
    display: grid;
    min-width: 10.5rem;
    gap: 0.25rem;
}

.venue-analytics-metric-control > span {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
}

.venue-analytics-metric-menu {
    position: relative;
    min-width: 16rem;
}

.venue-analytics-metric-menu > summary {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 2.7rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.58);
    border-radius: var(--gs-radius-control);
    color: var(--gs-text);
    background: rgba(255, 255, 255, 0.025);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 800;
    list-style: none;
}

.venue-analytics-metric-menu > summary::-webkit-details-marker {
    display: none;
}

.venue-analytics-metric-menu[open] > summary,
.venue-analytics-metric-menu > summary:focus-visible {
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 2px rgba(var(--gs-primary-rgb), 0.14);
    outline: 0;
}

.venue-analytics-metric-menu[open] > summary i {
    transform: rotate(-180deg);
}

.venue-analytics-metric-menu > div {
    position: absolute;
    z-index: 30;
    top: calc(100% + 0.35rem);
    left: 0;
    display: grid;
    width: max(100%, 17rem);
    overflow: hidden;
    padding: 0.3rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.5);
    border-radius: var(--gs-radius-control);
    background: #111318;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.45);
}

.venue-analytics-metric-menu button {
    align-items: center;
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr);
    gap: 0.45rem;
    min-height: 2.45rem;
    padding: 0.5rem 0.65rem;
    border: 0;
    border-radius: calc(var(--gs-radius-control) - 0.2rem);
    color: var(--gs-text-muted);
    background: transparent;
    font-size: 0.75rem;
    font-weight: 750;
    text-align: right;
}

.venue-analytics-metric-menu button:hover,
.venue-analytics-metric-menu button:focus-visible {
    color: var(--gs-text);
    background: rgba(255, 255, 255, 0.06);
    outline: 0;
}

.venue-analytics-metric-menu button i {
    color: transparent;
}

.venue-analytics-metric-menu button[aria-checked="true"] {
    color: var(--gs-text);
    background: rgba(var(--gs-primary-rgb), 0.08);
}

.venue-analytics-metric-menu button[aria-checked="true"] i {
    color: var(--gs-primary);
}

.venue-analytics-partial-note {
    align-items: center;
    display: inline-flex;
    gap: 0.3rem;
    margin-top: 0.35rem;
    color: rgba(var(--gs-primary-rgb), 0.78);
    font-size: 0.66rem;
    font-weight: 800;
}

.venue-analytics-chart-wrap {
    position: relative;
    height: 20rem;
    padding: 0.5rem 0.85rem 0.8rem;
    background:
        radial-gradient(circle at 86% 8%, rgba(var(--gs-primary-rgb), 0.16), transparent 13rem),
        radial-gradient(circle at 14% 90%, rgba(var(--gs-concert-line-rgb), 0.1), transparent 14rem),
        linear-gradient(-145deg, #12151a 0%, #090b0e 58%, #07080a 100%);
}

.venue-analytics-bottom-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
    min-width: 0;
}

.venue-analytics-comparison-card,
.venue-analytics-insight-card {
    padding: 0.9rem;
}

.venue-analytics-insight-wide {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(9rem, 0.25fr) minmax(0, 1fr);
    gap: 0.8rem 1.25rem;
}

.venue-analytics-insight-wide h3 {
    margin: 0;
}

.venue-analytics-insight-wide p {
    color: var(--gs-text);
    font-size: 0.8rem;
}

.venue-analytics-comparison-card h3,
.venue-analytics-insight-card h3 {
    margin-bottom: 0.7rem;
}

.venue-analytics-comparison-card .table {
    font-size: 0.72rem;
}

.venue-analytics-comparison-card th {
    color: var(--gs-text-muted);
    font-size: 0.6rem;
    text-transform: uppercase;
}

.venue-analytics-comparison-card td,
.venue-analytics-comparison-card th {
    padding: 0.52rem 0.42rem;
    border-color: rgba(255, 255, 255, 0.07);
}

.venue-analytics-insight-card {
    background:
        radial-gradient(circle at 12% 12%, rgba(var(--gs-primary-rgb), 0.11), transparent 8rem),
        var(--gs-surface-bg-quiet);
}

.venue-analytics-insight-card h3 i {
    color: var(--gs-primary);
}

.venue-analytics-insight-card p {
    margin: 0;
    color: var(--gs-text-muted);
    font-size: 0.75rem;
    line-height: 1.5;
}

.venue-analytics-insight-number {
    color: var(--gs-text);
    font-weight: 850;
}

.venue-analytics-insight-number-link {
    display: inline;
    padding: 0 0.08rem;
    border-radius: 0.2rem;
    color: var(--gs-text);
    text-decoration-line: underline;
    text-decoration-style: dotted;
    text-decoration-color: rgba(var(--gs-primary-rgb), 0.72);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18rem;
    transition:
        color var(--gs-motion-fast) var(--gs-ease-standard),
        background-color var(--gs-motion-fast) var(--gs-ease-standard),
        text-decoration-color var(--gs-motion-fast) var(--gs-ease-standard);
}

.venue-analytics-insight-number-link:hover,
.venue-analytics-insight-number-link:focus-visible {
    color: var(--gs-primary);
    background: rgba(var(--gs-primary-rgb), 0.09);
    text-decoration-color: currentColor;
}

.venue-analytics-insight-number-link:focus-visible {
    outline: 2px solid rgba(var(--gs-primary-rgb), 0.74);
    outline-offset: 0.16rem;
}

.tooltip.venue-analytics-ranking-tooltip {
    --bs-tooltip-bg: #0c0d10;
    --bs-tooltip-opacity: 1;
    --bs-tooltip-color: var(--gs-text);
    z-index: 1095;
}

.venue-analytics-ranking-tooltip .tooltip-inner {
    width: min(22rem, calc(100vw - 2rem));
    max-width: min(22rem, calc(100vw - 2rem));
    padding: 0.75rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.62);
    border-radius: 0.65rem;
    background: #0c0d10;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.48);
    text-align: right;
}

.venue-analytics-ranking-tooltip-content {
    display: grid;
    gap: 0.5rem;
}

.venue-analytics-ranking-tooltip-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.venue-analytics-ranking-tooltip-heading > strong {
    min-width: 0;
    color: var(--gs-text);
    font-size: 0.78rem;
    line-height: 1.25;
}

.venue-analytics-ranking-tooltip-heading > span,
.venue-analytics-ranking-tooltip-period,
.venue-analytics-ranking-tooltip-action {
    color: var(--gs-text-muted);
    font-size: 0.65rem;
    line-height: 1.3;
}

.venue-analytics-ranking-tooltip-heading > span {
    flex: 0 0 auto;
    font-weight: 800;
    color: var(--gs-primary);
}

.venue-analytics-ranking-tooltip-summary {
    display: grid;
    gap: 0.26rem;
    padding: 0.42rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.venue-analytics-ranking-tooltip-summary-row {
    display: grid;
    grid-template-columns: 7.2rem minmax(0, 1fr);
    align-items: baseline;
    gap: 0.6rem;
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    line-height: 1.3;
}

.venue-analytics-ranking-tooltip-summary-row > strong {
    color: var(--gs-text);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.venue-analytics-ranking-tooltip-comparison {
    padding-right: 7.8rem;
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.3;
}

.venue-analytics-ranking-tooltip-comparison.is-positive {
    color: #43e3b5;
}

.venue-analytics-ranking-tooltip-comparison.is-negative {
    color: #ff7585;
}

.venue-analytics-ranking-tooltip-list {
    display: grid;
    gap: 0.24rem;
}

.venue-analytics-ranking-tooltip-row {
    display: grid;
    grid-template-columns: 1.35rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.45rem;
    min-height: 2rem;
    padding: 0.35rem 0.45rem;
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 0.42rem;
    background: rgba(255, 255, 255, 0.025);
}

.venue-analytics-ranking-tooltip-row > b {
    color: var(--gs-text-muted);
    font-size: 0.7rem;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.venue-analytics-ranking-tooltip-row > span {
    min-width: 0;
    overflow: hidden;
    color: var(--gs-text);
    font-size: 0.7rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-analytics-ranking-tooltip-row > strong {
    color: var(--gs-text);
    font-size: 0.68rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.venue-analytics-ranking-tooltip-row.is-current {
    border-color: rgba(var(--gs-primary-rgb), 0.72);
    background: rgba(var(--gs-primary-rgb), 0.11);
    box-shadow: inset 0 0 0 1px rgba(var(--gs-primary-rgb), 0.08);
}

.venue-analytics-ranking-tooltip-row.is-current > b,
.venue-analytics-ranking-tooltip-row.is-current > strong {
    color: var(--gs-primary);
}

.venue-analytics-ranking-tooltip-gap {
    color: var(--gs-text-muted);
    font-size: 0.62rem;
    letter-spacing: 0.15rem;
    text-align: center;
}

.venue-analytics-ranking-tooltip-action {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    padding-top: 0.12rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.venue-ranking-context > span {
    display: flex;
    align-items: center;
    gap: 0.42rem;
    min-width: 0;
}

.venue-ranking-context > span > i,
.venue-ranking-context > span > strong {
    color: var(--gs-primary);
}

.venue-ranking-context small {
    margin-right: 0.2rem;
    color: var(--gs-text-muted);
    font-weight: 650;
}

.venue-ranking-position {
    display: inline-flex;
    align-items: center;
    min-height: 1.25rem;
    padding: 0.12rem 0.38rem;
    border: 1px solid rgba(var(--gs-primary-rgb), 0.4);
    border-radius: 999px;
    color: var(--gs-primary);
    background: rgba(var(--gs-primary-rgb), 0.08);
    font-size: 0.58rem;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.venue-ranking-target,
.entity-list-row[data-ranking-target="true"] {
    --venue-ranking-target-rgb: var(--gs-concert-line-rgb);
    border-color: rgba(var(--venue-ranking-target-rgb), 0.9) !important;
    box-shadow:
        0 0 0 1px rgba(var(--venue-ranking-target-rgb), 0.28),
        0 0 1.75rem rgba(var(--venue-ranking-target-rgb), 0.24),
        0 0 3rem rgba(var(--venue-ranking-target-rgb), 0.1);
}

.venue-ranking-target-collective {
    --venue-ranking-target-rgb: var(--gs-concert-line-rgb);
}

.venue-ranking-target-personal,
.entity-list-row[data-ranking-target-tone="personal"] {
    --venue-ranking-target-rgb: var(--gs-yellow-rgb);
}

.entity-list-row[data-ranking-target="true"] {
    background: rgba(var(--venue-ranking-target-rgb), 0.085);
}

.venue-analytics-insight-card p + p {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.venue-analytics-data-note,
.venue-analytics-sample-note,
.venue-analytics-footnote {
    margin: 0;
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    line-height: 1.45;
}

.venue-analytics-sample-note {
    padding: 0 0.1rem;
}

.venue-analytics-sample-note i {
    margin-left: 0.3rem;
    color: var(--gs-text-muted);
}

.venue-analytics-data-note.is-warning {
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(255, 187, 69, 0.28);
    border-radius: var(--gs-radius-control);
    background: rgba(255, 187, 69, 0.07);
}

.venue-analytics-data-note.is-warning i {
    margin-left: 0.3rem;
    color: #ffbb45;
}

.venue-analytics-data-note.is-complete {
    display: inline-flex;
    justify-self: start;
    gap: 0.3rem;
    color: var(--gs-text-muted);
}

.venue-analytics-data-note.is-complete i {
    color: #43e3b5;
}

@media (min-width: 1400px) {
    body:has(.venue-detail-page) .app-main-content {
        max-width: 1560px;
    }

    .venue-detail-layout > .col-lg-4 {
        width: 27%;
    }

    .venue-detail-layout > .col-lg-8 {
        width: 73%;
    }
}

.venue-analytics-empty {
    min-height: 20rem;
}

@media (max-width: 1399.98px) {
    .venue-analytics-kpi-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .venue-analytics-score-card {
        min-height: 9rem;
    }

    .venue-analytics-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .venue-analytics-summary-grid > :last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .venue-analytics-bottom-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .venue-analytics-ranking-tooltip .tooltip-inner {
        width: min(20rem, calc(100vw - 1rem));
        max-width: min(20rem, calc(100vw - 1rem));
        padding: 0.65rem;
    }

    .venue-analytics-ranking-tooltip-row {
        grid-template-columns: 1.2rem minmax(0, 1fr) auto;
        gap: 0.35rem;
    }

    .venue-analytics-ranking-tooltip-summary-row {
        grid-template-columns: 6.5rem minmax(0, 1fr);
    }

    .venue-analytics-ranking-tooltip-comparison {
        padding-right: 7.1rem;
    }

    .venue-ranking-context {
        align-items: stretch;
    }

    .venue-ranking-context > span {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .venue-ranking-context small {
        flex-basis: 100%;
        margin-right: 1.45rem;
    }
}
@media (max-width: 767.98px) {
    .venue-detail-tabs {
        width: 100%;
    }

    .venue-detail-tabs a {
        flex: 1 1 0;
        justify-content: center;
        padding-inline: 0.45rem;
        font-size: 0.72rem;
    }

    .venue-detail-tabs small {
        display: none;
    }

    .venue-analytics-toolbar,
    .venue-analytics-chart-card > header,
    .venue-analytics-scope-row {
        align-items: stretch;
        flex-direction: column;
    }

    .venue-analytics-period-form {
        align-items: stretch;
        display: grid;
        justify-content: stretch;
    }

    .venue-analytics-period-form > .analytics-period-range {
        order: 0;
        align-self: auto;
        margin: -0.05rem 0 0;
        padding-left: 0;
        white-space: normal;
    }

    .venue-analytics-period-form > label {
        display: none;
    }

    .venue-analytics-period-form .analytics-period-selector,
    .venue-analytics-custom-dates .form-control,
    .venue-analytics-chart-card header label,
    .venue-analytics-metric-control,
    .venue-analytics-metric-menu {
        width: 100%;
        min-width: 0;
    }

    .venue-analytics-metric-menu > div {
        left: auto;
        right: 0;
        width: 100%;
    }

    .venue-analytics-custom-dates {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .venue-analytics-custom-dates .analytics-period-actions {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .venue-analytics-scope-row .venue-stats-scope {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .venue-analytics-scope-row .venue-stats-scope a {
        justify-content: center;
        text-align: center;
    }

    .venue-analytics-summary-grid {
        grid-template-columns: 1fr 1fr;
        gap: 0.55rem;
    }

    .venue-analytics-position strong {
        font-size: 2.35rem;
    }

    .venue-analytics-card {
        min-height: 7.4rem;
        padding: 0.72rem;
    }

    .venue-analytics-card {
        --venue-analytics-metric-size: 1.15rem;
    }

    .venue-analytics-score strong {
        font-size: 1.85rem;
    }

    .venue-analytics-compact-metrics {
        grid-template-columns: 1fr;
    }

    .venue-analytics-compact-metrics > span + span {
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        border-right: 0;
    }

    .venue-analytics-chart-wrap {
        height: 16rem;
        padding-inline: 0.4rem;
    }

    .venue-analytics .table-responsive {
        display: block;
    }

    .venue-analytics-comparison-card {
        padding-inline: 0.55rem;
        min-width: 0;
        overflow: hidden;
    }

    .venue-analytics .table-responsive {
        max-width: 100%;
        overflow-x: auto;
    }

    .venue-analytics-comparison-card .table {
        width: 100%;
        min-width: 0;
    }

    .venue-analytics-comparison-card td:last-child strong {
        display: inline;
    }

    .venue-analytics-insight-wide {
        grid-template-columns: 1fr;
        gap: 0.55rem;
    }
}

@media (max-width: 575.98px) {
    .venue-analytics-card .stat-trend-tooltip,
    .venue-analytics-rank-grid .stat-trend-tooltip,
    .venue-analytics-summary-grid > .venue-analytics-card:nth-child(3n) .stat-trend-tooltip {
        bottom: calc(100% + 0.62rem);
        right: 0;
        max-width: calc(100vw - 4rem);
        left: auto;
        top: auto;
        transform: translateY(0.25rem);
    }

    .venue-analytics-trend:hover .stat-trend-tooltip,
    .venue-analytics-trend:focus .stat-trend-tooltip,
    .venue-analytics-summary-grid > .venue-analytics-card:nth-child(3n) .venue-analytics-trend:hover .stat-trend-tooltip,
    .venue-analytics-summary-grid > .venue-analytics-card:nth-child(3n) .venue-analytics-trend:focus .stat-trend-tooltip {
        transform: translateY(0);
    }

    .venue-analytics-rank-grid {
        grid-template-columns: 1fr;
    }

    .venue-analytics-summary-grid {
        grid-template-columns: 1fr;
    }

    .venue-analytics-summary-grid > :last-child:nth-child(odd) {
        grid-column: auto;
    }
}

/* Mobile venue detail: content first, venue context in a responsive bottom sheet. */
.venue-detail-sheet-body {
    display: block;
    padding: 0;
    overflow: visible;
}

@media (max-width: 767.98px) {
    /* Keep the shared content offset below the fixed mobile topbar. */
    .venue-detail-page {
        padding-bottom: calc(var(--mobile-nav-height) + 1.25rem + env(safe-area-inset-bottom));
    }

    .venue-detail-layout {
        --bs-gutter-y: 0;
        width: 100%;
        margin: 0;
        gap: 0 !important;
    }

    .venue-detail-layout > .col-lg-8 {
        order: -1;
        width: 100%;
        padding: 0;
    }

    .venue-detail-page .venue-main-card {
        overflow: visible;
        border-top: 0;
        border-radius: 0 0 var(--gs-radius-panel) var(--gs-radius-panel);
        background: transparent;
    }

    .venue-detail-page .venue-main-card > .card-header {
        position: sticky;
        top: var(--app-header-height);
        z-index: 1020;
        padding: 0.35rem 0.45rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.09);
        background: color-mix(in srgb, var(--gs-bg-dark) 96%, transparent);
        backdrop-filter: blur(18px);
    }

    .venue-detail-page .venue-main-card > .card-body {
        padding: 0.75rem 0 0;
    }

    .venue-history-card-header {
        display: block;
    }

    .venue-history-sort-form-desktop {
        display: none;
    }

    .venue-detail-tabs {
        gap: 0;
    }

    .venue-detail-tabs a {
        min-height: 2.85rem;
        padding-block: 0.62rem;
        font-size: 0.76rem;
    }

    .venue-detail-info-trigger {
        display: inline-grid;
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
        padding: 0;
        place-items: center;
        border-color: rgba(255, 255, 255, 0.1);
        color: var(--gs-text);
        background: rgba(255, 255, 255, 0.035);
    }

    .venue-detail-info-trigger i {
        font-size: 1.1rem;
    }

    .offcanvas-md.offcanvas-bottom.venue-detail-sidebar {
        --bs-offcanvas-height: auto;
        left: 0;
        bottom: 0;
        right: 0;
        width: 100%;
        height: auto;
        max-height: min(88dvh, 46rem);
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-bottom: 0;
        border-radius: 1.15rem 1.15rem 0 0;
        color: var(--gs-text);
        background: color-mix(in srgb, var(--gs-menu-bg) 98%, #000);
        box-shadow: 0 -1.2rem 3.2rem rgba(0, 0, 0, 0.58);
    }

    body:has(.venue-detail-sidebar.show) > .offcanvas-backdrop {
        bottom: 0;
    }

    body:has(.venue-detail-sidebar.show) .mobile-bottom-nav,
    body:has(.venue-detail-sidebar.show) .mobile-event-fab {
        pointer-events: none;
        opacity: 0;
        transform: translateY(110%);
    }

    .venue-detail-sheet-handle {
        width: 2.8rem;
        height: 0.25rem;
        margin: 0.55rem auto 0;
        border-radius: var(--gs-radius-pill);
        background: rgba(255, 255, 255, 0.24);
    }

    .venue-detail-sheet-header {
        align-items: center;
        padding: 0.45rem 0.85rem 0.7rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .venue-detail-sheet-header > div {
        display: grid;
        gap: 0.05rem;
    }

    .venue-detail-sheet-header span {
        color: var(--gs-primary);
        font-size: 0.66rem;
        font-weight: 900;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .venue-detail-sheet-header h2 {
        margin: 0;
        color: var(--gs-text);
        font-size: 1.08rem;
        font-weight: 900;
    }

    .venue-detail-sheet-header .mobile-sheet-close {
        display: inline-grid;
        width: 2.5rem;
        height: 2.5rem;
        padding: 0;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 50%;
        color: var(--gs-text-muted);
        background: rgba(255, 255, 255, 0.04);
    }

    .venue-detail-sheet-body {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        padding: 0.75rem 0.85rem calc(1rem + env(safe-area-inset-bottom));
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .venue-detail-sheet-body > .card {
        order: 4;
        flex: 0 0 auto;
        margin-top: 0 !important;
    }

    .venue-detail-sheet-body > .venue-profile-card {
        order: 1;
    }

    .venue-detail-sheet-body > .venue-detail-map-card {
        order: 2;
    }

    .venue-detail-sheet-body > .venue-stats-card {
        order: 3;
    }

    .venue-detail-sheet-body .venue-profile-body {
        padding: 0.75rem !important;
    }

    .venue-detail-sheet-body .venue-detail-map-canvas {
        height: 11rem;
        min-height: 11rem;
    }

    .member-history-query-panel {
        display: grid;
        grid-template-columns: minmax(8.75rem, 0.9fr) minmax(0, 1.35fr);
        gap: 0.55rem;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .venue-history-sort-form-mobile {
        display: block;
        min-width: 0;
    }

    .venue-history-sort-form-mobile .split-sort-dropdown,
    .venue-history-sort-form-mobile .split-sort-dropdown > summary {
        width: 100%;
        min-width: 0;
    }

    .venue-history-sort-form-mobile .split-sort-dropdown > summary {
        min-height: 3rem;
        padding: 0.55rem 0.65rem;
    }

    .venue-history-sort-form-mobile .split-sort-dropdown > summary span strong {
        display: none;
    }

    .venue-history-sort-form-mobile .split-sort-dropdown > summary span small {
        color: var(--gs-text);
        font-size: 0.72rem;
        font-weight: 800;
    }

    .member-history-query-panel > .list-query-search {
        min-width: 0;
        margin: 0;
    }

    .member-history-query-panel .list-search,
    .member-history-query-panel .input-group {
        height: 100%;
    }

    .member-history-query-panel .form-control {
        min-width: 0;
        font-size: 0.76rem;
    }

    .member-history-query-panel > .list-query-filter {
        grid-column: 1 / -1;
    }

    .member-history-query-panel.list-query-panel-filters-only .venue-history-sort-form-mobile {
        grid-column: 1 / -1;
    }

    .venue-history-pagination-mobile {
        width: 100%;
        overflow: hidden;
    }

    .venue-history-pagination-mobile .pagination {
        margin: 0;
    }

    .venue-history-pagination-mobile .page-link {
        display: inline-grid;
        width: 2.35rem;
        min-width: 2.35rem;
        height: 2.35rem;
        padding: 0;
        place-items: center;
        border-radius: 0.65rem;
        font-size: 0.78rem;
    }

    .venue-analytics {
        gap: 0.72rem;
    }

    .venue-analytics-toolbar {
        gap: 0.65rem;
    }

    .venue-analytics-toolbar h2 {
        font-size: 1.22rem;
    }

    .venue-analytics-period-form {
        gap: 0.3rem;
    }

    .venue-analytics-kpi-layout,
    .venue-analytics-summary-grid {
        gap: 0.55rem;
    }

    .venue-analytics-score-card.venue-analytics-card {
        min-height: 0;
    }

    /* Reserve a compact heading row while keeping the info button's 44px target. */
    .venue-analytics-score-card > .venue-analytics-card-label {
        min-height: 1.5rem;
        padding-inline-end: 2.75rem;
        position: relative;
    }

    .venue-analytics-score-card > .venue-analytics-card-label .venue-analytics-info-button {
        height: 2.75rem;
        inset-inline-end: 0;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 2.75rem;
    }

    .venue-analytics-rank-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem;
    }

    .venue-analytics-rank-grid > span {
        padding: 0.6rem;
    }

    .venue-analytics-rank-scale {
        inset-inline: 0.6rem;
    }

    .venue-analytics-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .venue-analytics-summary-grid > :last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .venue-analytics-card {
        min-height: 7rem;
        gap: 0.28rem;
        padding: 0.65rem;
    }

    .venue-analytics-card-label,
    .venue-analytics-card > small,
    .venue-analytics-score-card footer {
        font-size: 0.64rem;
    }

    .venue-analytics-card {
        --venue-analytics-metric-size: clamp(1.05rem, 5.1vw, 1.32rem);
    }

    .venue-analytics-chart-card {
        padding: 0;
    }

    .venue-analytics-chart-card > header {
        padding: 0.8rem 0.75rem 0.5rem;
    }

    .venue-analytics-chart-wrap {
        height: 15rem;
        padding: 0.25rem 0.4rem 0.45rem;
    }

    .venue-analytics-comparison-card {
        padding: 0.7rem;
    }

    .venue-analytics-comparison-card .table-responsive {
        overflow: visible;
    }

    .venue-analytics-comparison-card .table,
    .venue-analytics-comparison-card tbody {
        display: block;
    }

    .venue-analytics-comparison-card thead {
        display: none;
    }

    .venue-analytics-comparison-card tbody {
        display: grid;
        gap: 0.5rem;
    }

    .venue-analytics-comparison-card tbody tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.35rem;
        padding: 0.65rem;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0.72rem;
        background: rgba(255, 255, 255, 0.022);
    }

    .venue-analytics-comparison-card tbody td {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        justify-content: space-between;
        gap: 0.2rem 0.75rem;
        min-width: 0;
        padding: 0.15rem 0;
        border: 0;
        font-size: 0.8rem;
        text-align: start;
    }

    .venue-analytics-comparison-card tbody td::before {
        content: attr(data-label);
        color: var(--gs-text-muted);
        font-size: 0.68rem;
        font-weight: 700;
    }

    .venue-analytics-comparison-value {
        min-width: 0;
        max-width: 100%;
        margin-inline-start: auto;
        overflow-wrap: normal;
        text-align: end;
    }

    .venue-analytics-comparison-card tbody td:first-child {
        display: block;
        padding-bottom: 0.45rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        color: var(--gs-text);
        font-size: 0.8rem;
        font-weight: 850;
    }

    .venue-analytics-comparison-card tbody td:first-child::before {
        display: none;
    }

    .venue-analytics-insight-card {
        padding: 0.75rem;
    }

    .venue-analytics-insight-card p,
    .venue-analytics-footnote {
        font-size: 0.68rem;
        line-height: 1.45;
    }
}

@media (max-width: 359.98px) {
    .member-history-query-panel {
        grid-template-columns: 1fr;
    }

    .member-history-query-panel > .list-query-filter {
        grid-column: auto;
    }
}


/* Shared interaction sizes and compact mobile event overview. */
:root {
    --gs-touch-target: 44px;
    --gs-focus-outline: 3px solid var(--gs-primary);
}
.app-skip-link {
    position: fixed;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 12000;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background: var(--gs-bg-card, #1e293b);
    color: var(--gs-text, #fff);
    transform: translateY(-200%);
}
.app-skip-link:focus { transform: translateY(0); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: var(--gs-focus-outline);
    outline-offset: 3px;
}
.event-label-options > summary {
    min-height: var(--gs-touch-target);
    padding: 0.6rem 0;
    cursor: pointer;
    font-weight: 600;
}
.event-label-options > summary span { font-weight: 400; }
@media (max-width: 767.98px) {
    .app-body .form-control:not([type="checkbox"]):not([type="radio"]),
    .app-body .form-select {
        font-size: 16px;
        min-height: var(--gs-touch-target);
    }
    .app-body .btn:not(.btn-check),
    .mobile-sheet-close, .mobile-filter-sheet-close,
    .flash-toast.alert-dismissible .btn-close,
    .gig-contact-channel-icons a {
        min-width: var(--gs-touch-target);
        min-height: var(--gs-touch-target);
    }
    .event-template-compact {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.6rem;
        padding: 0.75rem;
        margin-bottom: 1rem !important;
    }
    .event-template-compact .event-template-compact-icon { display: none; }
    .event-template-compact-copy { flex: 1 1 6rem; min-width: 0; }
    .event-template-compact-copy small { display: none; }
    .event-template-compact-actions { flex: 0 1 auto; width: auto; }
    .event-label-options { margin-bottom: 1rem !important; }
    .gig-overview-grid { --bs-gutter-y: 1rem; --bs-gutter-x: 1rem; }
    .gig-overview-grid > .col-sm-6 { width: 50%; min-width: 0; }
    .gig-overview-grid > .col-sm-6:nth-child(3),
    .gig-overview-grid > .col-sm-6:last-child { width: 100%; }
    .gig-overview-grid .fs-5 { font-size: 1rem !important; }
}


/* Override Bootstrap's desktop offcanvas flex body: sidebar cards stack. */
.venue-detail-sidebar > .venue-detail-sheet-body { display: block; }
.entity-list-main a.entity-list-title,
a.entity-list-title,
a.entity-list-metric,
a.finance-row-profile-link {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
}
.venue-detail-map-overlay {
    top: auto; left: 0.65rem; bottom: 0.65rem; right: auto;
    width: var(--gs-touch-target);
    height: var(--gs-touch-target);
}
.venue-detail-map-overlay > span { inset: 0; width: 100%; height: 100%; }
@media (max-width: 767.98px) {
    /* Entity links keep 24px inline targets inside an 80px minimum clickable row. */
    a.finance-row-profile-link {
        min-height: var(--gs-touch-target);
    }
    .app-topbar > .app-topbar-title {
        flex: 1 1 0;
        min-width: 0;
        overflow: hidden;
    }
    .app-topbar-title h1 { min-width: 0; max-width: 100%; overflow: hidden; }
    .app-topbar-title h1 > span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}


.payout-select-all-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: var(--gs-touch-target);
    padding: 0.5rem 1rem;
    cursor: pointer;
}
.payout-select-all-row .form-check-input { margin: 0; flex-shrink: 0; }
.payout-group-heading { grid-template-columns: auto minmax(0, 1fr) auto auto auto; }

@media (max-width: 767.98px) {
    .payout-group-heading { grid-template-columns: auto minmax(0, 1fr) auto auto; }
}


/* Mobile audit: readable values, explicit overview rows, and usable controls. */
.mobile-table-value { display: contents; }

@media (min-width: 768px) {
    .payout-group-panel .payout-group-meta { grid-column: auto; }
}

@media (max-width: 767.98px) {
    html { scroll-padding-top: 5rem; }
    .app-body input, .app-body select, .app-body textarea {
        scroll-margin-block: 5rem 7rem;
    }
    .app-body .card > .card-header :is(h2, h3, h4, h5, h6),
    .profile-member-heading h5, .band-settings-section-heading h3 {
        font-size: 1rem;
        line-height: 1.4;
    }
    .band-settings-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        overflow: visible;
        margin-bottom: 1rem;
    }
    .band-settings-tab {
        min-width: 0;
        min-height: 44px;
        padding: 0.5rem;
        font-size: 0.8125rem;
        white-space: normal;
    }
    .profile-member-heading { flex-wrap: wrap; }
    .profile-member-heading > div { flex: 1 1 12rem; min-width: 0; }
    .profile-member-heading > a { flex: 0 0 auto; }
    .contact-detail-row { align-items: start; gap: 0.75rem; }
    .contact-detail-row > :last-child { min-width: 0; overflow-wrap: anywhere; }
    .contact-detail-row > a { display: inline-flex; align-items: center; min-height: 44px; }
    .mobile-card-table tbody td > .mobile-table-value {
        display: block;
        min-width: 0;
        grid-column: 2;
        overflow-wrap: anywhere;
    }
    .mobile-table-value .badge { max-width: 100%; white-space: normal; }
    .mobile-table-value a:not(.badge) { min-height: 44px; }
    .mobile-table-value > a:not(.badge) { display: inline-flex; align-items: center; }
    .mobile-table-value > .small, .mobile-table-value > small { display: block; }
    .mobile-card-table tbody td[data-mobile-label="Дії"] > .mobile-table-value,
    .mobile-card-table tbody td[data-mobile-label="Дія"] > .mobile-table-value {
        display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem;
    }
    .label-manager-table.mobile-card-table tbody td > .mobile-table-value { grid-column: auto; }
    .app-body .finance-info-icon,
    .app-body .member-card-contact-icon,
    .app-body .gig-member-fee-step {
        flex-shrink: 0;
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
    }
    .tag-chip {
        max-width: 100%;
        font-size: 0.8125rem;
        line-height: 1.35;
        gap: 0.25rem;
        padding: 0 0.5rem 0 0.125rem;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .tag-remove {
        flex: 0 0 2rem;
        width: 2rem;
        min-width: 2rem;
        height: 2rem;
        min-height: 2rem;
        border-radius: 50%;
        background: transparent;
        border-color: transparent;
        font-size: 1rem;
    }
    .gig-member-fee-stepper { display: flex; gap: 0.375rem; }
    .gig-member-fee-control { min-width: 0; }
    .gig-member-fee-control input { min-width: 0; }
    .gig-roster-profile, .gig-roster-account-connect, .gig-contact-phone,
    .app-body a[data-related-create-link], .event-template-card-title a,
    .label-manager-usage {
        display: inline-flex; align-items: center; min-height: 44px;
    }
    .gig-roster-name { white-space: normal; }
    .gig-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; margin: 0; }
    .gig-overview-grid > .col-sm-6 { width: auto !important; margin: 0; padding: 0; min-width: 0; }
    .gig-overview-grid > .gig-overview-venue,
    .gig-overview-grid > .gig-overview-timing,
    .gig-overview-grid > .gig-overview-contact { grid-column: 1 / -1; }
    .gig-overview-item { row-gap: 0.125rem; }
    .gig-overview-copy { display: contents; }
    .gig-overview-copy > :not(:first-child) { grid-column: 1 / -1; min-width: 0; overflow-wrap: anywhere; }
    .gig-overview-date { order: 0; }
    .gig-overview-status { order: 1; }
    .gig-overview-venue { order: 2; }
    .gig-overview-timing { order: 3; }
    .gig-overview-income { order: 4; grid-column: 1 / -1; }
    .gig-overview-contact { order: 5; }
    .gig-overview-timing .fw-semibold { display: flex; flex-wrap: wrap; gap: 0.3rem 0.85rem; }
    .gig-overview-income-breakdown { display: none; }
    .gig-overview-status .badge {
        max-inline-size: 100%;
        padding-inline: 0.5rem;
        white-space: normal;
        line-height: 1.25;
    }
}

@media (max-width: 767.98px) {
    [data-mobile-view-count="1"] { display: none !important; }
    body:not(.mobile-map-workspace):has([data-mobile-event-fab]) .app-main-content {
        padding-bottom: calc(var(--mobile-nav-height) + 5rem + env(safe-area-inset-bottom));
    }
    .auth-container input:not([type="checkbox"]):not([type="radio"]),
    .auth-container select, .auth-container textarea {
        min-height: 44px;
        font-size: 16px;
    }
    .auth-container .btn { min-height: 44px; }
    .auth-container a:not(.brand-lockup) { display: inline-flex; align-items: center; min-height: 44px; }
}

@media (max-width: 767.98px) {
    .venue-profile-card .venue-detail-logo {
        width: 4rem;
        height: 4rem;
        min-width: 4rem;
        font-size: 1.6rem;
        box-shadow: none;
    }
    .venue-detail-sheet-body .venue-profile-body {
        grid-template-columns: 4rem minmax(0, 1fr);
        gap: 0.6rem 0.75rem;
    }
    .venue-profile-body > h3 { line-height: 1.35; overflow-wrap: anywhere; }
    .venue-profile-body > p { font-size: 0.8125rem; line-height: 1.45; }
    .venue-profile-body > .venue-profile-actions { grid-column: 1 / -1; }
    .leaflet-touch .leaflet-bar a { width: 44px; height: 44px; line-height: 44px; }
}

@media (max-width: 767.98px) {
    .fc .fc-multimonth .fc-daygrid-day-events { display: block; }
}

@media (max-width: 767.98px) {
    .gig-member-fee-control { grid-template-columns: minmax(0, 1fr) auto; }
    .gig-lineup-participant { gap: 0.5rem; padding-left: 44px; }
    .gig-lineup-avatar { flex-basis: 2rem; width: 2rem; height: 2rem; }
    .gig-lineup-participant-copy strong, .gig-lineup-instrument span {
        white-space: normal;
        overflow-wrap: anywhere;
        overflow: visible;
    }
    .gig-lineup-participant-copy strong { line-height: 1.4; }
    .gig-lineup-role { font-size: 0.625rem; }
    .event-type-step { padding: 0.75rem; }
    .event-type-options { gap: 0.5rem; }
    .event-type-option span { font-size: 0.8125rem; gap: 0.3rem; padding-inline: 0.25rem; }
}
@media (max-width: 359.98px) {
    .gig-lineup-avatar { display: none; }
}

@media (max-width: 767.98px) {
    body:has(.venue-form-page) .app-main-content { padding-top: var(--app-header-height) !important; }
    .venue-form-mobile-title a, .venue-detail-mobile-title a { min-width: 44px; min-height: 44px; }
    .payout-summary-total > strong { font-size: 1.5rem; line-height: 1.3; }
    .payout-group-heading { grid-template-columns: auto minmax(0, 1fr) auto; }
    .payout-group-avatar { grid-column: 1; grid-row: 1 / span 2; align-self: start; }
    .payout-group-title { grid-column: 2; grid-row: 1; }
    .payout-group-total { grid-column: 2; grid-row: 2; justify-self: start; }
    .payout-group-chevron { grid-column: 3; grid-row: 1 / span 2; }
    .label-color-options { flex-wrap: wrap; gap: 0; overflow: visible; padding: 0; }
    .label-color-option { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
}


/* The mobile create menu replaces duplicate page-level create actions. */
@media (max-width: 767.98px) {
    body:has([data-mobile-event-fab]) [data-mobile-create-duplicate] {
        display: none !important;
    }
}

/* Optional concert names use the same secondary hierarchy on every surface. */
.gig-subtitle {
    display: block;
    min-width: 0;
    margin-top: 0.15rem;
    color: var(--gs-text-muted);
    font-family: var(--gs-body-font);
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: normal;
    text-transform: none;
    white-space: normal;
    overflow-wrap: anywhere;
}
.gig-subtitle-heading {
    flex-basis: 100%;
    width: 100%;
    order: 1;
}
.gig-subtitle-compact,
.gig-subtitle-heading {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.app-page-heading { min-width: 0; }
.app-page-count { display: none; }
@media (max-width: 767.98px) {
    .app-main-shell:has(.app-page-heading-with-count) {
        container: mobile-count-shell / inline-size;
    }
    .app-page-heading-with-count {
        display: flex;
        align-items: baseline;
        gap: 0.5rem;
        max-width: 100%;
    }
    .app-page-heading-with-count h1 {
        flex: 0 1 auto;
        line-height: normal;
    }
    .app-page-heading-with-count h1 > span {
        white-space: normal;
        overflow-wrap: anywhere;
        text-overflow: clip;
    }
    .app-page-count {
        display: inline-flex;
        flex: 0 0 auto;
        color: var(--gs-text-muted);
        font-size: 0.875rem;
        font-weight: 500;
        font-variant-numeric: tabular-nums;
        line-height: 1.25;
        white-space: nowrap;
    }
    .mobile-header-count-summary { display: none; }
}
/* Enlarged text needs the full row; keep the growing header in normal flow. */
@container mobile-count-shell (width < 20rem) {
    .app-topbar {
        position: static;
        flex-wrap: wrap;
    }
    .app-topbar > .app-topbar-title { flex: 1 0 100%; }
    .app-topbar-actions { margin-inline-start: auto; }
    .app-main-content { padding-top: 0.5rem !important; }
}

.app-page-subtitle {
    max-width: 36rem;
    padding-right: 2.04rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.story-calendar-chip-identity {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.story-calendar-chip-subtitle {
    margin-top: 0.08rem;
    font-size: 0.68rem;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mobile-calendar-event-copy .gig-subtitle {
    color: var(--gs-text-muted);
    font-size: 0.8125rem;
    white-space: normal;
}
@media (max-width: 767.98px) {
    .app-page-subtitle {
        padding-right: 1.45rem;
        font-size: 0.72rem;
    }
}

/* Language preferences share the existing field and button scale. */
.language-picker {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-panel);
    background: var(--gs-bg-card);
    scroll-margin-top: 6rem;
}
.language-picker-copy { min-width: 0; max-width: 40rem; }
.language-picker .form-label {
    display: flex;
    gap: .5rem;
    align-items: center;
    margin: 0;
    font-size: .875rem;
}
.language-picker .form-label i { color: var(--gs-primary); }
.language-picker .form-text { margin: .25rem 0 0; font-size: .8125rem; }
.language-picker-form { display: flex; gap: .5rem; flex-shrink: 0; margin: 0; }
.language-picker-form .form-select { width: 10rem; min-height: 44px; }
.language-picker-form .btn { min-height: 44px; white-space: nowrap; }
body:not(.app-body) .language-picker { max-width: 44rem; margin: 1rem auto; }
body:not(.app-body) .language-picker:not(.language-picker-welcome) .language-picker-copy { display: none; }
body:not(.app-body) .language-picker:not(.language-picker-welcome) {
    justify-content: flex-end;
    border: 0;
    background: none;
    padding: 0;
}
@media (max-width: 767.98px) {
    .language-picker {
        flex-direction: column;
        align-items: stretch;
        padding: .75rem;
        gap: .625rem;
        scroll-margin-top: 5rem;
    }
    .language-picker-form { width: 100%; min-width: 0; }
    .language-picker-form .form-select { flex: 1; min-width: 0; width: auto; font-size: 16px; }
    .language-picker-form .btn { flex-shrink: 0; }
    body.auth-login-page > main[data-app-main-content] {
        flex-direction: column;
        justify-content: center;
        gap: 1rem;
    }
    body.auth-login-page .language-picker,
    body.auth-login-page .auth-container {
        flex: 0 0 auto;
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }
}

/* Approximate map positions use the same compact supporting text as other cards. */
.venue-map-location-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0;
    padding: 0.65rem 0.8rem;
    color: var(--gs-text-muted);
    font-size: 0.8125rem;
    line-height: 1.45;
}
.venue-map-location-notice > i { color: var(--gs-primary); flex: 0 0 auto; }
.venue-map-list-copy .venue-map-location-status { color: var(--gs-primary); }
.venue-map-leaflet-icon-approximate > span { border-style: dashed; }


/* Shared event date/time controls: compact popovers and touch sheets. */
html.sb-picker-open { overflow: hidden; }
.sb-picker-field { position: relative; min-width: 0; }
.sb-picker-source { display: none !important; }
.sb-picker-display.form-control { padding-left: 48px; font-size: 16px; font-variant-numeric: tabular-nums; }
.sb-picker-display[readonly] { cursor: pointer; background: var(--gs-bg-input); }
.sb-picker-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 36px; height: 36px; min-width: 0; min-height: 0; border: 0; border-radius: 6px; color: var(--gs-text-muted); background: transparent; padding: 0; }
.sb-picker-field > .sb-picker-icon { position: absolute; left: 4px; top: 50%; transform: translateY(-50%); }
.sb-picker-icon:hover { color: var(--gs-primary); background: rgba(var(--gs-primary-rgb), .08); }
.sb-picker-error { color: var(--gs-danger, #ff8999); font-size: 13px; margin-top: 4px; }
.sb-time-summary { color: var(--gs-text-muted); font-size: 12px; margin-top: 5px; }
.sb-picker-dialog { position: fixed; inset: auto; margin: 0; padding: 0; width: 340px; max-width: calc(100vw - 16px); border: 1px solid var(--gs-border); border-radius: 12px; color: var(--gs-text); background: var(--gs-bg-panel); box-shadow: 0 12px 40px rgba(0,0,0,.45); overflow: auto; font-size: 14px; }
.sb-picker-dialog::backdrop { background: transparent; }
.sb-picker-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; border-bottom: 1px solid var(--gs-border); }
.sb-picker-header strong { font-size: 16px; line-height: 1.35; }
.sb-picker-body { padding: 12px; }
.sb-picker-selected { font-size: 20px; font-weight: 600; line-height: 1.4; margin-bottom: 10px; }
.sb-picker-month-nav { display: flex; align-items: center; gap: 4px; margin-bottom: 10px; }
.sb-picker-month-nav .form-select { width: auto; flex: 1; min-width: 0; font-size: 14px; padding-right: 8px; padding-left: 24px; }
.sb-picker-year.form-control { width: 76px; padding: 6px; font-size: 14px; }
.sb-picker-month-nav .sb-picker-icon { width: 30px; }
.sb-picker-week { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 2px; }
.sb-picker-cell { min-width: 0; }
.sb-picker-weekday { padding: 6px 0; text-align: center; color: var(--gs-text-muted); font-size: 12px; }
.sb-picker-day { border: 1px solid transparent; border-radius: 8px; width: 100%; height: 38px; min-width: 0; min-height: 0; padding: 0; background: transparent; color: var(--gs-text); font-size: 14px; font-weight: 500; }
.sb-picker-day.is-outside { color: var(--gs-text-muted); opacity: .55; }
.sb-picker-day[aria-current] { border-color: var(--gs-primary); }
.sb-picker-day.is-selected { background: var(--gs-primary); color: #08090b; opacity: 1; font-weight: 700; }
.sb-picker-day:not(:disabled):not(.is-selected):hover, .sb-picker-time-option:hover { background: rgba(var(--gs-primary-rgb), .1); color: var(--gs-primary); }
.sb-picker-dialog button:focus-visible, .sb-picker-icon:focus-visible { outline: 2px solid var(--gs-primary); outline-offset: 2px; }
.sb-picker-dialog button:disabled { opacity: .3; cursor: not-allowed; }
.sb-picker-shortcuts { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; }
.sb-picker-text-button { border: 0; background: transparent; color: var(--gs-primary); padding: 7px 0; font-size: 13px; font-weight: 600; }
.sb-picker-manual.form-control { margin-top: 8px; font-size: 16px; }
.sb-picker-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--gs-border); position: sticky; bottom: 0; background: var(--gs-bg-panel); }
.sb-picker-footer-actions { display: flex; gap: 8px; margin-right: auto; }
.sb-picker-footer .btn { box-shadow: none; }
.sb-picker-dialog > .sb-picker-error { padding: 0 12px 8px; }
.sb-picker-time { width: 280px; }
.sb-picker-time-fields { display: flex; align-items: flex-end; justify-content: center; gap: 10px; }
.sb-picker-time-part { display: flex; flex-direction: column; gap: 5px; width: 76px; color: var(--gs-text-muted); font-size: 12px; }
.sb-picker-time-part .form-control { font-size: 24px; text-align: center; padding: 5px; font-variant-numeric: tabular-nums; }
.sb-picker-time-colon { font-size: 24px; margin-bottom: 6px; }
.sb-picker-minute-shortcuts { display: none; justify-content: center; gap: 8px; margin: 12px 0; }
.sb-picker-minute { width: 44px; height: 32px; min-height: 0; min-width: 0; border-radius: 6px; border: 1px solid var(--gs-border); color: var(--gs-text); background: var(--gs-bg-input); }
.sb-picker-minute:hover { border-color: var(--gs-primary); color: var(--gs-primary); }
.sb-picker-time-list { margin-top: 12px; max-height: 176px; overflow: auto; border-top: 1px solid var(--gs-border); padding-top: 6px; overscroll-behavior: contain; }
.sb-picker-time-option { display: block; width: 100%; padding: 8px 12px; text-align: right; color: var(--gs-text); border: 0; border-radius: 6px; background: transparent; font-variant-numeric: tabular-nums; }
.sb-picker-time-option[aria-selected="true"] { color: var(--gs-primary); background: rgba(var(--gs-primary-rgb), .12); }
@media (max-width: 767.98px) {
    .sb-picker-dialog { width: 100%; max-width: 100%; border-radius: 16px 16px 0 0; }
    .sb-picker-dialog::backdrop { background: rgba(0,0,0,.55); }
    .sb-picker-header { padding: 8px 12px; }
    .sb-picker-body { width: 100%; max-width: 440px; margin-inline: auto; }
    .sb-picker-icon, .sb-picker-month-nav .sb-picker-icon { width: 44px; height: 44px; min-width: 0; }
    .sb-picker-day { height: 44px; min-height: 44px; min-width: 0; }
    .sb-picker-month-nav .form-select, .sb-picker-year.form-control { font-size: 16px; height: 44px; }
    .sb-picker-year.form-control { width: 78px; }
    .sb-picker-text-button { min-height: 44px; }
    .sb-picker-footer { padding-bottom: max(12px,env(safe-area-inset-bottom)); }
    .sb-picker-footer .btn { min-height: 44px; }
    .sb-picker-time-part { width: 96px; }
    .sb-picker-time-part .form-control { height: 52px; }
    .sb-picker-minute-shortcuts { display: flex; }
    .sb-picker-minute { height: 44px; min-width: 44px; }
    .sb-picker-time-list { display: none; }
}

.sb-picker-time-option:focus:not([aria-selected="true"]) { background: transparent; }
.sb-picker-time-option:focus-visible { outline-offset: -2px; }


/* A single account-level language step precedes the welcome tour. */
.language-onboarding {
    position: fixed;
    top: 50%; left: auto; bottom: auto; right: 50%;
    transform: translate(50%, -50%);
    width: min(26rem, calc(100% - 2rem));
    max-height: calc(100dvh - 2rem);
    margin: 0;
    padding: 1.5rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--gs-border-color, #303339);
    border-radius: .875rem;
    color: var(--gs-text-primary, #f2f3f5);
    background: var(--gs-bg-card, #111317);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .4);
}
.language-onboarding::backdrop { background: rgba(0, 0, 0, .72); }
.language-onboarding-open { overflow: hidden; }
.language-onboarding-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    margin-bottom: .875rem;
    border-radius: .625rem;
    color: var(--gs-primary);
    background: rgba(var(--gs-primary-rgb), .1);
    font-size: 1.25rem;
}
.language-onboarding h2 { margin: 0 0 .5rem; font-size: 1.25rem; line-height: 1.3; }
.language-onboarding p { margin: 0 0 1.25rem; color: var(--gs-text-secondary, #aeb3bd); font-size: .875rem; line-height: 1.5; }
.language-onboarding-options { display: grid; gap: .625rem; margin: 0 0 1.25rem; padding: 0; border: 0; }
.language-onboarding-option {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 3.5rem;
    padding: .75rem;
    margin: 0;
    border: 1px solid var(--gs-border-color, #303339);
    border-radius: .5rem;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
}
.language-onboarding-option:has(input:checked) { border-color: var(--gs-primary); background: rgba(var(--gs-primary-rgb), .08); }
.language-onboarding-option:has(input:focus-visible) { outline: 2px solid var(--gs-primary); outline-offset: 3px; }
.language-onboarding-option input { width: 1.125rem; height: 1.125rem; margin: 0; accent-color: var(--gs-primary); flex-shrink: 0; }
.language-onboarding-option i { margin-right: auto; color: var(--gs-primary); visibility: hidden; }
.language-onboarding-option:has(input:checked) i { visibility: visible; }
.language-onboarding form > .btn { width: 100%; min-height: 44px; }
@media (max-width: 575.98px) {
    .language-onboarding { padding: 1.25rem; }
}

.language-onboarding h2:focus { outline: none; }
.language-onboarding-option input:focus-visible { outline: none; box-shadow: none; }


/* International typography and scalable language selection. */

:lang(ar) body, :lang(hi) body, :lang(bn) body { line-height: 1.65; }
:lang(ar) :is(h1, h2, h3, h4, .badge, .btn),
:lang(hi) :is(h1, h2, h3, h4, .badge, .btn),
:lang(bn) :is(h1, h2, h3, h4, .badge, .btn) { letter-spacing: normal; }
.language-onboarding-select { width: 100%; min-height: 48px; margin-bottom: 1.25rem; font-size: 1rem; }
.language-picker-form .form-select { width: 14rem; max-width: 100%; }
.language-onboarding :is(h2, p), .language-picker-copy { overflow-wrap: anywhere; }
.language-onboarding form { min-width: 0; }
/* Writing direction of data is independent of surrounding interface direction. */
[dir="rtl"] :is(input[type="email"], input[type="tel"], input[type="url"], input[type="number"],
    input[type="date"], input[type="time"], .sb-picker-display, .sb-picker-time-fields,
    .sb-picker-time-option, .story-calendar-chip-time, a[href^="tel:"], a[href^="mailto:"],
    .leaflet-container, code, pre) { direction: ltr; unicode-bidi: isolate; }
[dir="rtl"] :is(.sb-picker-time-part, .leaflet-popup-content) { direction: rtl; }
[dir="rtl"] :is(.sb-picker-time-part input) { direction: ltr; }
[dir="rtl"] :is(.bi-arrow-left, .bi-arrow-right, .bi-chevron-left, .bi-chevron-right,
    .bi-arrow-left-short, .bi-arrow-right-short) { display: inline-block; transform: scaleX(-1); }
[dir="rtl"] :is(.app-topbar-title h1 span, .gig-subtitle, .story-calendar-chip-title) { unicode-bidi: plaintext; }
@media (max-width: 575.98px) {
    .language-picker-form { flex-wrap: wrap; }
    .language-picker-form .form-select { width: 100%; flex-basis: 100%; }
    .language-picker-form .btn { width: 100%; }
}

/* Account preferences use compact settings rows and a shared language dialog. */
.profile-settings { scroll-margin-top: 6rem; }
.profile-settings-row {
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: 56px;
    padding: .875rem 1rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--gs-text);
    text-align: start;
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
}
.profile-settings-row + .profile-settings-row { border-top: 1px solid var(--gs-border); }
.profile-settings-row > i:first-child { color: var(--gs-primary); }
.profile-settings-row > i:last-child { margin-inline-start: auto; color: var(--gs-text-muted); }
.profile-settings-row:hover { background: rgba(var(--gs-primary-rgb), .06); color: var(--gs-text); }
.profile-settings-row:focus-visible { outline: 2px solid var(--gs-primary); outline-offset: -3px; }
.profile-settings-copy { display: grid; gap: .25rem; min-width: 0; overflow-wrap: anywhere; }
.profile-settings-copy small { color: var(--gs-text-muted); font-size: .8125rem; }
.language-settings-open { overflow: hidden; }
.language-settings-dialog {
    width: min(440px, calc(100vw - 2rem));
    max-width: none;
    max-height: calc(100dvh - 2rem);
    margin: auto;
    padding: 0;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-panel);
    background: var(--gs-bg-card);
    color: var(--gs-text);
    box-shadow: 0 16px 56px #0008;
    overscroll-behavior: contain;
}
.language-settings-dialog::backdrop { background: #0009; }
.language-settings-header { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; border-bottom: 1px solid var(--gs-border); }
.language-settings-header h2 { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.language-settings-header h2 > i { color: var(--gs-primary); }
.language-settings-header .btn-close { flex: 0 0 44px; width: 44px; height: 44px; margin-inline-start: auto; padding: 0; }
.language-settings-body { padding: 1rem; }
.language-settings-body p { margin: 0 0 1rem; font-size: .875rem; line-height: 1.5; }
.language-settings-body .form-select { width: 100%; min-height: 44px; font-size: 1rem; }
.language-settings-footer { display: flex; justify-content: flex-end; gap: .5rem; padding: 0 1rem 1rem; }
.language-settings-footer .btn { min-height: 44px; white-space: normal; }
@media (max-width: 575.98px) {
    .profile-settings { scroll-margin-top: 5rem; }
    .language-settings-dialog { width: 100%; margin: auto 0 0; max-height: 90dvh; border-radius: 16px 16px 0 0; }
    .language-settings-footer { padding-bottom: max(1rem, env(safe-area-inset-bottom)); }
    .language-settings-footer .btn { flex: 1; }
}

.language-settings-body .language-settings-warning { margin: .875rem 0 0; padding: .75rem; border: 1px solid var(--gs-primary); border-radius: var(--gs-radius-panel); color: var(--gs-primary); }

/* Regional preferences use the same modal on desktop and phones. */
.language-onboarding, .language-settings-dialog {
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
}
.language-onboarding form { display: flex; flex-direction: column; text-align: start; }
.language-onboarding form .form-label { margin-bottom: .5rem; }
.language-onboarding form .form-text { margin-bottom: 1rem; }
.language-onboarding form > button { margin-top: .5rem; }
.calendar-event-members label { cursor: pointer; }

/* Keep the actual cash-flow explanation and forecast readable on phones. */
@media (max-width: 767.98px) {
    .finance-page .finance-cash-note {
        display: flex;
        align-items: flex-start;
        font-size: 0.75rem;
        line-height: 1.45;
    }
    .finance-page .finance-cash-note > .bi { flex-shrink: 0; }
}

.gig-payout-modal .modal-content {
    background-color: var(--gs-bg-card);
}

/* Reporting currency and reference-rate evidence. */
.report-currency-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: .65rem; flex-wrap: wrap; }
.report-currency-form { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.report-currency-form .form-select { width: min(22rem, 45vw); }
.report-money { cursor: help; border-radius: .2rem; }
.report-money:focus-visible { outline: 2px solid var(--gs-primary); outline-offset: 3px; }
.exchange-rates-dialog { width: min(40rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; padding: 0; background: var(--gs-bg-card); }
.exchange-rates-dialog[open] { display: flex; flex-direction: column; overflow: hidden; }
.exchange-rates-dialog .language-settings-header, .exchange-rates-dialog .language-settings-footer { flex: 0 0 auto; }
.exchange-rates-dialog .language-settings-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.exchange-rates-dialog .language-settings-footer { padding: .75rem 1rem; border-top: 1px solid var(--gs-border); }
.exchange-evidence-section { border: 1px solid var(--gs-border); border-radius: var(--gs-radius-control); margin-bottom: .875rem; }
.exchange-evidence-section > summary { display: flex; align-items: center; gap: .5rem; min-height: 44px; padding: .7rem .875rem; cursor: pointer; list-style: none; font-size: .875rem; font-weight: 700; }
.exchange-evidence-section > summary::-webkit-details-marker { display: none; }
.exchange-evidence-section > summary > span { flex: 1; min-width: 0; }
.exchange-evidence-section > summary > .bi { flex-shrink: 0; font-size: .75rem; }
.exchange-evidence-section[open] > summary > .bi { transform: rotate(-180deg); }
.exchange-evidence-count { font-size: .75rem; color: var(--gs-text-muted); }
.exchange-evidence-content { padding: 0 .875rem .875rem; }
.exchange-evidence-content .exchange-rate-entries { margin-bottom: .75rem; }
.exchange-rate-entries { margin-bottom: 1rem; }
.exchange-rate-entry { display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--gs-border); }
.exchange-rate-entry > span { min-width: 0; overflow-wrap: anywhere; }
.exchange-rate-entry > span:last-child { text-align: end; }
.exchange-rate-entry small { display: block; font-size: .75rem; color: var(--gs-text-muted); }
@media (max-width: 575.98px) {
  .report-currency-toolbar { justify-content: stretch; }
  .report-currency-form { flex: 1 1 100%; flex-wrap: wrap; }
  .report-currency-form .form-select { flex: 1 1 100%; width: 100%; min-width: 0; }
  .exchange-rates-dialog { width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); }
  .exchange-rates-dialog .language-settings-body { padding: 1rem; }
  .exchange-rate-entry { flex-direction: column; gap: .35rem; }
  .exchange-rate-entry > span { width: 100%; }
  .exchange-rate-entry > span:last-child { text-align: start; }
  .exchange-rate-entry > span:last-child bdi { white-space: normal; }
}

html[data-fx-unavailable="true"] [data-app-main-content] canvas { display: none !important; }

.report-money-in-link { cursor: inherit; }
.exchange-rate-entry bdi { overflow-wrap: anywhere; }

.fx-chart-unavailable { height: auto !important; min-height: 0 !important; }

/* Support is account-wide; conversation layouts remain readable on phones. */
.support-shell { max-width: 1120px; margin-inline: auto; min-width: 0; }
.support-new, .support-thread { max-width: 850px; }
.support-heading, .support-actions, .support-thread-heading, .support-compose-actions, .support-status-form { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.support-heading, .support-thread-heading { justify-content:space-between; margin-bottom:1.5rem; }
.support-heading h2, .support-thread-heading h2 { font-size:1.35rem; margin:0 0 .4rem; }
.support-heading p { margin:0; }
.support-thread-heading > div { min-width:0; flex:1 1 240px; }
.support-thread-heading h2 { overflow-wrap:anywhere; line-height:1.5; }
.support-back { display:inline-flex; gap:.5rem; align-items:center; margin-bottom:1.25rem; }
.support-panel { padding:1.5rem; border:1px solid var(--gs-border, #303238); border-radius:16px; background:var(--gs-bg-card, #101216); }
.support-panel h3 { font-size:1.05rem; margin-bottom:1rem; }
.support-filters { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin-bottom:1.25rem; }
.support-filters label { margin:0; min-width:0; }
.support-search { flex:1 1 220px; position:relative; }
.support-search > i { position:absolute; inset-inline-start:.9rem; top:50%; transform:translateY(-50%); color:var(--gs-primary, #ffcf00); }
.support-search input { padding-inline-start:2.5rem; }
.support-filters select { max-width:250px; }
.support-unread-filter { display:flex; align-items:center; gap:.5rem; }
.support-shell input[type=checkbox], .support-shell input[type=radio] { accent-color:var(--gs-primary, #ffcf00); inline-size:18px; block-size:18px; flex-shrink:0; }
.support-ticket-list { display:grid; gap:.7rem; }
.support-ticket-row { display:flex; align-items:center; gap:1rem; padding:1.1rem; border:1px solid var(--gs-border, #303238); border-radius:14px; color:inherit; background:var(--gs-bg-card, #101216); text-decoration:none; }
.support-ticket-row:hover, .support-ticket-row:focus-visible { border-color:var(--gs-primary, #ffcf00); color:inherit; }
.support-ticket-row.is-unread { border-inline-start:3px solid var(--gs-primary, #ffcf00); }
.support-ticket-icon { font-size:1.4rem; color:var(--gs-primary, #ffcf00); }
.support-ticket-copy { display:grid; gap:.3rem; flex:1; min-width:0; overflow-wrap:anywhere; }
.support-ticket-meta, .support-ticket-copy time { font-size:.8rem; color:var(--gs-text-muted, #a0a3ad); }
.support-ticket-copy strong { font-size:1rem; }
.support-status { display:inline-block; font-size:.8rem; line-height:1.4; border:1px solid #52555c; background:#25272c; padding:.35rem .65rem; border-radius:8px; max-width:220px; color:#eceef1; }
.support-status[data-status=new], .support-new-label { color:#ffda40; }
.support-status[data-status=open] { color:#66dbff; border-color:#26677e; }
.support-status[data-status=waiting] { color:#ffda40; border-color:#887323; }
.support-status[data-status=resolved] { color:#65dfab; border-color:#256a4c; }
.support-count { font:700 11px/1.3 system-ui; min-width:18px; padding:2px 5px; border-radius:12px; color:#111; background:var(--gs-primary, #ffcf00); text-align:center; }
.support-count[hidden] { display:none !important; }
.support-help-menu { position:relative; }
.support-help-menu > button {
    position:relative;
    padding:0;
    font-size:1.2rem;
}
.support-help-menu > button,
.support-help-menu > button:hover,
.support-help-menu > button:focus-visible {
    background:transparent;
    border-color:transparent;
    box-shadow:none;
}
.support-help-menu > button .bi { display:block; line-height:1; }
.support-help-menu > button:hover,
.support-help-menu > button:focus-visible { color:var(--gs-primary-highlight); }
.support-help-menu > button:hover .bi,
.support-help-menu > button:focus-visible .bi {
    filter:drop-shadow(0 0 0.24rem rgba(var(--gs-primary-rgb), 0.78))
           drop-shadow(0 0 0.62rem rgba(var(--gs-primary-rgb), 0.48));
}
.support-help-menu > button .support-count, [data-mobile-more-open] > .support-count { position:absolute; top:0; inset-inline-end:-5px; }
.support-help-menu .dropdown-item { display:flex; gap:.5rem; align-items:center; min-height:42px; }
.support-help-menu .dropdown-item .support-count { margin-inline-start:auto; }
.support-empty { padding:3.5rem 1rem; text-align:center; border:1px solid var(--gs-border, #303238); border-radius:16px; }
.support-empty > i { font-size:2.3rem; color:var(--gs-primary, #ffcf00); }
.support-empty h3 { margin:1rem 0 .5rem; font-size:1.15rem; }
.support-empty p { margin:0; color:var(--gs-text-muted, #a0a3ad); }
.support-pagination { display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:1.5rem; }
.support-kind { display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1.4rem; }
.support-kind legend { float:none; width:100%; font-size:1rem; font-weight:700; margin:0; }
.support-kind label { display:flex; align-items:center; gap:.5rem; border:1px solid var(--gs-border, #303238); border-radius:9px; padding:.7rem .9rem; cursor:pointer; }
.support-kind label:has(input:checked) { border-color:var(--gs-primary, #ffcf00); background:rgba(255,207,0,.07); }
.support-composer textarea { min-height:130px; resize:vertical; line-height:1.6; }
.support-composer-meta { display:flex; gap:.75rem; justify-content:space-between; margin:.4rem 0 1rem; font-size:.75rem; color:var(--gs-text-muted, #a0a3ad); }
.support-composer-meta > :last-child { white-space:nowrap; }
.support-dropzone { position:relative; border:1px dashed #50545d; padding:1rem; border-radius:12px; display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.support-dropzone.is-dragging { border-color:var(--gs-primary, #ffcf00); background:rgba(255,207,0,.07); }
.support-dropzone p { margin:0; font-size:.8rem; color:var(--gs-text-muted, #a0a3ad); flex:1 1 200px; }
.support-file-input { position:absolute; width:1px; height:1px; opacity:0; }
.support-dropzone:has(input:focus-visible) .support-file-picker { outline:2px solid var(--gs-primary, #ffcf00); outline-offset:3px; }
.support-file-previews { padding:0; margin:1rem 0; list-style:none; display:grid; gap:.5rem; }
.support-file-previews li { display:flex; gap:.7rem; align-items:center; padding:.5rem; border:1px solid #353840; border-radius:10px; }
.support-file-previews img { width:52px; height:52px; object-fit:cover; border-radius:6px; }
.support-file-previews span { flex:1; min-width:0; overflow-wrap:anywhere; font-size:.85rem; }
.support-file-previews button { flex:none; min-width:40px; min-height:40px; font-size:1.2rem; padding:.25rem .5rem; }
.support-diagnostics { font-size:.8rem; margin:1.1rem 0; color:var(--gs-text-muted, #a0a3ad); }
.support-diagnostics label { display:flex; gap:.6rem; align-items:center; color:var(--gs-text, #e4e5e8); }
.support-diagnostics details { margin-top:.6rem; }
.support-diagnostics summary { cursor:pointer; }
.support-diagnostics dl { display:grid; grid-template-columns:auto 1fr; gap:.5rem 1rem; margin:1rem 0 0; }
.support-diagnostics dd { margin:0; overflow-wrap:anywhere; min-width:0; }
.support-compose-actions { justify-content:flex-end; margin-top:1.25rem; }
.support-reply-status { display:grid; gap:.3rem; font-size:.8rem; }
.support-compose-actions > button { min-height:44px; }
.support-form-error { margin:1rem 0 0; }
.support-form-error[hidden] { display:none; }
.support-status-form { margin-bottom:1rem; }
.support-status-form select { width:auto; max-width:100%; }
.support-messages { display:grid; gap:1rem; margin:1.5rem 0; }
.support-message { padding:1.1rem; border:1px solid #363a43; border-radius:14px; background:#171c22; margin-inline-end:2.5rem; min-width:0; }
.support-message.is-own { margin-inline-end:0; margin-inline-start:2.5rem; background:rgba(255,207,0,.045); border-color:#4b4328; }
.support-message header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem 1rem; margin-bottom:.65rem; }
.support-message header time { font-size:.75rem; color:var(--gs-text-muted, #a0a3ad); }
.support-message-body { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; }
.support-attachments { list-style:none; padding:0; margin:1rem 0 0; display:grid; gap:.6rem; }
.support-attachments a { display:flex; gap:.7rem; align-items:center; padding:.6rem; border:1px solid #444952; border-radius:10px; color:inherit; min-width:0; text-decoration:none; }
.support-attachments img { width:80px; height:64px; object-fit:cover; border-radius:6px; }
.support-attachments span { min-width:0; overflow-wrap:anywhere; }
.support-attachments small { display:block; color:var(--gs-text-muted, #a0a3ad); }
.support-history-link { display:inline-block; margin:.5rem 0 .5rem 1rem; }
@media (max-width:767px) {
 .support-shell { width:100%; }
 .support-panel { padding:1rem; border-radius:12px; }
 .support-heading { align-items:stretch; gap:.9rem; }
 .support-heading > div, .support-actions, .support-actions .btn { width:100%; }
 .support-actions { gap:.5rem; }
 .support-filters > label { flex:1 1 calc(50% - .5rem); }
 .support-filters > .support-search { flex-basis:100%; }
 .support-filters select { width:100%; max-width:100%; font-size:.85rem; }
 .support-ticket-row { display:grid; grid-template-columns:22px minmax(0,1fr) 14px; gap:.6rem; padding:.9rem; }
 .support-ticket-copy { grid-column:2; }
 .support-ticket-row > .support-status { grid-row:2; grid-column:2; justify-self:start; }
 .support-row-arrow { grid-row:1 / span 2; grid-column:3; }
 .support-thread-heading { align-items:flex-start; }
 .support-message, .support-message.is-own { margin-inline:0; padding:.9rem; }
 .support-message.is-own { border-inline-start:3px solid #9f841b; }
 .support-kind { display:grid; }
 .support-kind label { min-height:44px; }
 .support-compose-actions { align-items:stretch; }
 .support-compose-actions > * { width:100%; }
 .support-diagnostics dl { grid-template-columns:1fr; gap:.2rem; }
 .support-diagnostics dd { margin-bottom:.65rem; }
 .support-composer textarea { font-size:16px; }
}

/* Keep shared header controls available after navigating out of support. */
body:has([data-support-page]) .app-topbar .view-scope-switcher,
body:has([data-support-page]) .app-topbar-create-action { display: none !important; }

/* A focused invitation keeps the selected musician and delivery result visible. */
.member-access-invite-modal { z-index: 1110; }
.member-access-invite-modal + .modal-backdrop { z-index: 1100; }
.member-access-invite-modal .modal-content { max-height: calc(100dvh - 2rem); background: #0e1116; }
.member-access-invite-modal form { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.member-access-invite-modal .modal-body { overflow-y: auto; }
.member-access-invite-name { font-size: 1.125rem; font-weight: 700; overflow-wrap: anywhere; }
.access-invite-feedback { overflow-wrap: anywhere; }
.access-invite-feedback:focus { outline: none; }
[data-access-invite-submit] { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }
@media (max-width: 767.98px) {
    .member-access-invite-modal .modal-header .btn-close,
    .welcome-tour-close {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0;
    }
    .exchange-rates-dialog .language-settings-body {
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
    }
    .welcome-tour-next { margin-inline-start: auto; }
}
@media (max-width: 575.98px) {
    .member-access-invite-modal .modal-footer { gap: .5rem; }
    .member-access-invite-modal [data-access-invite-submit],
    .member-access-invite-modal [data-access-invite-manage] { width: 100%; margin: 0; }
}

/* Account access stays beside the musician card, with a separate invitation form. */
.member-account-access .card-body { min-width: 0; }
.member-account-status { display: grid; gap: .35rem; overflow-wrap: anywhere; }
.member-account-label { display: flex; align-items: center; gap: .5rem; font-weight: 600; }
.member-account-dot { flex: 0 0 .5rem; width: .5rem; height: .5rem; border-radius: 50%; background: var(--gs-text-muted); }
.member-account-access[data-status="connected"] .member-account-dot { background: #20c997; }
.member-account-access[data-status="invited"] .member-account-dot { background: var(--gs-primary); }
.member-account-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.member-account-actions .btn { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 575.98px) {
    .member-account-actions .btn { width: 100%; min-height: 44px; }
}


/* Rating bands are shared by cards, lists, analytics and tooltip values. */
.venue-score-tone-high { --venue-score-rgb: 52, 211, 153; }
.venue-score-tone-mid { --venue-score-rgb: 251, 146, 60; }
.venue-score-tone-low { --venue-score-rgb: 255, 107, 120; }
.venue-score-tone-unavailable { --venue-score-rgb: 156, 160, 170; }
.venue-analytics-ranking-tooltip strong.venue-score-number,
.venue-score-number,
.venue-score-number:hover,
.venue-score-number:focus-visible { color: rgb(var(--venue-score-rgb)); }

.venue-composite-score-card {
    border-color: rgba(var(--venue-score-rgb), 0.38);
    background: linear-gradient(-135deg, rgba(var(--venue-score-rgb), 0.07), transparent 85%), var(--gs-surface-bg-quiet);
}
.venue-composite-score-value,
.venue-composite-score-value:hover,
.venue-composite-score-value:focus-visible {
    color: rgb(var(--venue-score-rgb));
    text-decoration-color: rgba(var(--venue-score-rgb), 0.65);
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
}
.venue-composite-score-value:hover { background: rgba(var(--venue-score-rgb), 0.08); }
.venue-composite-score-value:focus-visible { outline-color: rgb(var(--venue-score-rgb)); }
.venue-composite-score-value strong { font-size: var(--venue-analytics-metric-size); line-height: 1.1; }
.venue-composite-score-value bdi { display: inline-flex; align-items: baseline; gap: 0.3rem; }
.venue-composite-score-value span { font-size: 0.86rem; color: var(--gs-text-muted); }
.venue-composite-score-scale {
    display: block; height: 0.2rem; width: 100%; border-radius: 1rem;
    background: rgba(var(--venue-score-rgb), 0.12); overflow: hidden;
}
.venue-composite-score-scale::before {
    content: ''; display: block; height: 100%; width: var(--venue-score-fill, 0%);
    border-radius: inherit; background: rgb(var(--venue-score-rgb));
}
.venue-composite-score-card > .venue-score-empty { font-size: 1rem; color: var(--gs-text-muted); }
.venue-composite-score-card .venue-analytics-info-button { min-width: 2.75rem; min-height: 2.75rem; }
.venue-composite-score-card .venue-analytics-card-label { min-height: 1.5rem; position: relative; padding-inline-end: 2.75rem; }
.venue-composite-score-card .venue-analytics-info-button { position: absolute; inset-inline-end: -0.4rem; top: -0.65rem; }
.venue-score-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 2.75rem; min-width: 2.75rem; padding: 0.25rem;
    color: rgb(var(--venue-score-rgb)); text-decoration: none; border: 0; background: transparent;
    white-space: nowrap; font-variant-numeric: tabular-nums; line-height: 1;
    transition: color var(--gs-motion-fast) var(--gs-ease-standard);
}
.venue-score-badge:hover { color: rgb(var(--venue-score-rgb)); text-decoration: underline; text-underline-offset: 0.25rem; }
.venue-score-badge:focus-visible { outline: 2px solid rgb(var(--venue-score-rgb)); outline-offset: 2px; border-radius: var(--gs-radius-control); }
.venue-score-badge strong { color: inherit; font-size: var(--gs-entity-list-metric-size); font-weight: 800; }
.venue-score-badge.is-unavailable { color: var(--gs-text-muted); }
.venue-card-score { flex: 0 0 auto; align-self: flex-start; margin-inline-start: auto; }
.venue-card-score .venue-score-badge strong { font-size: var(--gs-entity-card-metric-size); font-weight: 700; }
.venue-list-score { min-width: 0; }
.venue-score-tooltip .tooltip-inner { border-color: rgba(var(--venue-score-rgb), 0.5); text-align: start; }
.venue-score-tooltip-value { color: rgb(var(--venue-score-rgb)); font-size: 0.78rem; }
.venue-score-tooltip [data-score-preliminary] { color: var(--gs-text-muted); }
#venuesFilterSheet .venue-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
#venuesFilterSheet .venue-controls > * { min-width: 0; }
#venuesFilterSheet .venue-rating-filters {
    grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem 1rem; padding: 1rem 0 0; margin: 0; border: 0; border-top: 1px solid var(--gs-border);
}
.venue-rating-filters legend { float: none; width: auto; font-size: 0.875rem; font-weight: 700; margin: 0; padding-inline-end: 0.75rem; }
.venue-rating-range { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
#venuesFilterSheet .venue-rating-filters .gig-custom-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; grid-column: 1 / -1; grid-row: 2; }
#venuesFilterSheet .list-control-actions { grid-column: 1 / -1; justify-content: flex-end; margin-top: 0.25rem; }
@media (min-width: 768px) {
    .venues-page .venue-list-row, .venues-page .entity-list-table-header {
        grid-template-columns: minmax(0, 1fr) minmax(5rem, 0.24fr) minmax(8rem, 0.4fr) 5.5rem 4.75rem;
    }
    .venues-page .venue-list-row .entity-list-actions { position: static; display: flex; gap: 0.5rem; min-width: 0; justify-content: flex-end; }
    .venues-page .venue-list-row .entity-row-menu { flex: 0 0 auto; }
}
@media (max-width: 767.98px) {
    .venues-page .venue-list-row .venue-list-score { grid-column: 4; grid-row: 1; }
    .venue-list-score .venue-score-badge { padding: 0.2rem; }
    .venues-page .venue-list-row .entity-list-actions { display: none !important; }
    .venues-page .venue-list-row .venue-list-earnings { grid-column: 3 / 5; }
    .venues-page .venue-list-row .venue-list-gigs, .venues-page .venue-list-row .venue-list-earnings { flex-wrap: wrap; gap: 0.1rem 0.25rem; }
    #venuesFilterSheet .venue-rating-filters { grid-template-columns: minmax(0, 1fr); }
    #venuesFilterSheet .venue-rating-filters .gig-custom-dates { grid-row: auto; }
}
@media (max-width: 359.98px) {
    #venuesFilterSheet .venue-controls { grid-template-columns: minmax(0, 1fr); }
}

/* One in-flow action group after the fields, shared by create and edit forms. */
html:has([data-form-actions]) {
    scroll-padding-block-start: calc(var(--header-height, 80px) + 1rem);
}
.form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.75rem;
    margin-block-start: 1.5rem;
    scroll-margin-block: 1rem;
}

.form-actions > .btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: max(2.75rem, 44px);
    min-inline-size: min(100%, 7.5rem);
    max-inline-size: 100%;
    padding: 0.7rem 1rem;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
}

.form-actions .is-saving .form-action-label { opacity: 0; }
.form-actions .is-saving::after {
    content: '';
    position: absolute;
    inline-size: 1rem;
    block-size: 1rem;
    border: 2px solid currentColor;
    border-inline-end-color: transparent;
    border-radius: 50%;
    animation: form-action-saving 0.7s linear infinite;
}
@keyframes form-action-saving { to { transform: rotate(-360deg); } }
@media (prefers-reduced-motion: reduce) {
    .form-actions .is-saving::after { animation: none; }
}
@media (max-width: 767.98px) {
    html:has([data-form-actions]) {
        scroll-padding-block-end: calc(var(--mobile-nav-height, 4.5rem) + 1rem + env(safe-area-inset-bottom));
    }
    .form-actions { gap: 0.5rem; }
    .form-actions > .btn { flex: 1 1 auto; }
}

/* Reusable photo field and a viewport-sized editor, with the image beside its controls. */
.photo-field [hidden] { display: none !important; }
.photo-field-overview { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.photo-field-previews { display: flex; align-items: center; gap: 0.75rem; flex: 0 0 auto; }
.photo-field-preview {
    position: relative; inline-size: 112px; block-size: 112px; padding: 0;
    border: 1px solid var(--gs-border, #393b40); border-radius: 12px;
    background: var(--gs-bg-elevated, #17191d) center / cover no-repeat;
    color: var(--gs-text-muted, #a4a8b0); overflow: hidden;
}
.photo-field-preview > i { font-size: 2rem; }
.photo-field-preview.is-round { border-radius: 50%; }
.photo-field-previews-dual .photo-field-preview:first-child { inline-size: 124px; }
.photo-field-previews-dual .photo-field-preview.is-round { inline-size: 76px; block-size: 76px; }
.photo-field-previews-dual .photo-field-preview {
    border: 2px solid var(--gs-primary);
    box-shadow: 0 0 0 3px rgba(10, 11, 12, .9);
}
.photo-preview-label {
    position: absolute; inset-inline: 0; bottom: 0; padding: .3rem .25rem;
    background: rgba(8, 9, 10, .9); color: var(--gs-primary);
    border-top: 1px solid rgba(var(--gs-primary-rgb), .34);
    font-size: .66rem; font-weight: 800; line-height: 1.2;
}
.photo-field-actions { display: flex; flex-wrap: wrap; gap: .5rem; flex: 1 1 240px; }
.photo-field-actions .form-label { flex: 1 0 100%; margin: 0; }
.photo-field-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-block-size: 44px; margin: 0; }
.photo-field-actions .btn.btn-icon-action { flex: 0 0 2.75rem; }
.photo-field-actions:has(input:focus-visible) label[for] { outline: 2px solid var(--gs-primary, #ffce00); outline-offset: 3px; }
.photo-field-status:empty { display: none; }
html.photo-editor-open, html.photo-editor-open body { overflow: hidden; }
.photo-crop-dialog {
    color: var(--gs-text, #f4f4f5); background: var(--gs-bg-elevated, #17191d);
    border: 1px solid var(--gs-border, #393b40); border-radius: 16px;
    padding: 0; inline-size: min(920px, calc(100vw - 32px)); max-inline-size: none;
    max-block-size: calc(100dvh - 32px); overflow: hidden;
    box-shadow: 0 24px 90px rgba(0,0,0,.6);
}
.photo-crop-dialog[open] { display: flex; flex-direction: column; }
.photo-crop-dialog::backdrop { background: rgba(0,0,0,.76); }
.photo-crop-header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .5rem 1rem .5rem .75rem; border-bottom: 1px solid var(--gs-border, #393b40); flex: 0 0 auto; }
.photo-crop-header h2 { font-size: 1.1rem; line-height: 1.3; margin: 0; }
.photo-crop-body { display: grid; grid-template-columns: minmax(0, 1fr) 260px; align-items: center; gap: 1.25rem; padding: 1rem; min-block-size: 0; overflow: auto; overscroll-behavior: contain; }
.photo-crop-preview-area { min-inline-size: 0; display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.photo-crop-stage { position: relative; inline-size: min(100%, 480px, calc(100dvh - 220px)); aspect-ratio: 1; background: #0b0c0e; border: 1px solid #646973; border-radius: 4px; flex: 0 0 auto; }
.photo-crop-stage canvas { display: block; inline-size: 100%; block-size: 100%; touch-action: none; cursor: grab; border-radius: inherit; }
.photo-crop-stage canvas:active { cursor: grabbing; }
.photo-crop-stage canvas:focus-visible { outline: 2px solid var(--gs-primary, #ffce00); outline-offset: 3px; }
.photo-crop-guide { position: absolute; inset: 0; pointer-events: none; overflow: hidden; border-radius: inherit; }
.has-circle-guide .photo-crop-guide::after { content: ''; position: absolute; inset: 0; border: 2px solid rgba(255,255,255,.95); border-radius: 50%; box-shadow: 0 0 0 150px rgba(0,0,0,.5); }
.photo-crop-loading { position: absolute; inset: 0; display: grid; place-items: center; padding: 1rem; text-align: center; color: #ccc; background: #111; pointer-events: none; }
.photo-crop-help { margin: 0; font-size: .8rem; line-height: 1.4; color: var(--gs-text-muted, #a4a8b0); text-align: center; }
.photo-crop-controls { display: grid; gap: 1rem; min-inline-size: 0; }
.photo-crop-tools { display: flex; flex-wrap: wrap; gap: .35rem; }
.photo-crop-icon { display: inline-flex; align-items: center; justify-content: center; inline-size: 44px; block-size: 44px; min-inline-size: 44px; min-block-size: 44px; padding: 0; font-size: 1.2rem; border: 1px solid var(--gs-border, #393b40); color: inherit; }
.photo-crop-icon:hover, .photo-crop-icon[aria-pressed="true"] { color: var(--gs-primary, #ffce00); border-color: var(--gs-primary, #ffce00); background: rgba(255,206,0,.08); }
.photo-crop-range label { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin: 0; font-size: .9rem; font-weight: 600; }
.photo-crop-range output { color: var(--gs-text-muted, #a4a8b0); font-variant-numeric: tabular-nums; font-size: .82rem; white-space: nowrap; }
.photo-crop-range input { display: block; height: 44px; margin: 0; }
.photo-crop-range input::-webkit-slider-thumb { background: var(--gs-primary, #ffc400); }
.photo-crop-range input::-moz-range-thumb { background: var(--gs-primary, #ffc400); }
.photo-crop-range input:focus::-webkit-slider-thumb { box-shadow: 0 0 0 .25rem rgba(255,196,0,.2); }
.photo-crop-range input:focus::-moz-range-thumb { box-shadow: 0 0 0 .25rem rgba(255,196,0,.2); }
.photo-crop-footer { display: flex; align-items: stretch; justify-content: flex-end; gap: .75rem; padding: .75rem 1rem; border-top: 1px solid var(--gs-border, #393b40); flex: 0 0 auto; }
.photo-crop-footer .btn { min-block-size: 44px; min-inline-size: 112px; }
@media (max-width: 767.98px) {
    .photo-field-overview { gap: .75rem; }
    .photo-field-actions { flex-basis: 100%; }
    .photo-field-actions .btn { flex: 1 1 auto; font-size: .85rem; }
    .photo-crop-dialog { inline-size: calc(100vw - 16px); max-block-size: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border-radius: 12px; }
    .photo-crop-header { padding: .35rem .75rem .35rem .5rem; }
    .photo-crop-header h2 { font-size: 1rem; }
    .photo-crop-body { display: flex; flex-direction: column; gap: .6rem; padding: .75rem; align-items: stretch; }
    .photo-crop-stage { inline-size: min(100%, 320px, max(100px, calc(100dvh - 430px))); }
    .photo-crop-controls { gap: .5rem; }
    .photo-crop-tools { justify-content: center; }
    .photo-crop-footer { gap: .5rem; padding: .6rem .75rem; }
    .photo-crop-footer .btn { flex: 1 1 0; min-inline-size: 0; font-size: .9rem; }
}
@media (max-height: 500px) and (min-width: 600px) {
    .photo-crop-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .9fr); gap: 1rem; padding: .6rem; }
    .photo-crop-stage { inline-size: min(100%, calc(100dvh - 215px)); }
    .photo-crop-help { font-size: .7rem; }
    .photo-crop-controls { gap: .25rem; }
}

/* Preserve symmetrical gutters around the mobile event detail columns. */
@media(max-width:767.98px){
 .app-main-content > .gig-detail-layout{width:auto;max-width:none}
}
/* Month names retain a small inset in every next-event date badge. */
.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-month{
 font-size:.61rem;line-height:1.15;letter-spacing:-.025em;max-width:100%;white-space:nowrap;
}
.dashboard-page .next-event-panel .next-gig-card-separated .next-gig-month.is-long{font-size:.48rem}

/* Dismissible guidance stays inline and never blocks the current task. */
.feature-hint { display:flex; align-items:flex-start; gap:12px; padding:12px; margin-block-end:16px; border:1px solid rgba(var(--gs-primary-rgb),.3); border-radius:var(--gs-radius-panel); background:rgba(var(--gs-primary-rgb),.04); color:var(--gs-text); }
.feature-hint[hidden], .welcome-tour-open .feature-hint { display:none; }
.feature-hint-copy { flex:1; min-width:0; font-size:.875rem; line-height:1.5; overflow-wrap:anywhere; }
.feature-hint-copy strong { display:block; margin-block-end:4px; font-size:1rem; }
.feature-hint-copy p { margin:0; }
.feature-hint-copy a { display:inline-flex; align-items:center; min-height:44px; }
.feature-hint > button { flex:0 0 44px; inline-size:44px; block-size:44px; padding:0; }

/* Adjacent calendar pages move with the finger, without moving the toolbar. */
#calendar .calendar-swipe-preview {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    background: var(--gs-bg-dark);
    contain: layout paint;
}
#calendar .calendar-swipe-active { overflow: hidden; }
#calendar .calendar-swipe-active > .fc-view,
#calendar .calendar-swipe-active > .calendar-swipe-preview { will-change: transform; }
