/* Shared workspace components. Theme and status colours remain token driven. */
.ap-workspace-main {
    --ap-page-gutter: .75rem;
}

.ap-workspace-main > .py-4:has([data-hero-card]) {
    padding-top: 0;
}

.ap-workspace-main:has([data-planning-review-workspace]) {
    --ap-page-gutter: 0px;
}

.ap-workspace .ap-workspace-main:has([data-planning-review-workspace]) [data-hero-card] > .ap-hero-body {
    padding-inline: .75rem;
}

.ap-workspace :is(#activity-search-output, #racecards-weekly-layout-frame) {
    width: calc(100% - 1.5rem);
    margin-inline: .75rem;
    margin-top: 0;
    padding-bottom: 1rem;
}
.ap-workspace :is(.activity-section-toolbar, .my-works-section-toolbar, [data-racecards-weekly-section-header]) {
    min-height: calc(2rem + 1.25rem + 1px);
    padding: .625rem .75rem;
    border-bottom: 1px solid var(--ap-workspace-line, var(--color-base-300));
}
.ap-workspace :is(.activity-section-toolbar, .my-works-section-toolbar, [data-racecards-weekly-section-header]) :is(.btn, button) {
    min-height: 2rem;
    height: 2rem;
}
.ap-workspace :is([data-my-works-collapse-toggle], [data-activity-collapse-section] > .activity-section-toolbar > button[aria-controls], [data-racecards-weekly-section-header] [data-collapse-affordance]) {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
}
.ap-workspace :is([data-my-works-collapse-toggle], [data-activity-collapse-section] > .activity-section-toolbar > button[aria-controls], [data-racecards-weekly-section-header] [data-collapse-affordance]) > i {
    width: 1rem;
    flex-shrink: 0;
    font-size: .75rem;
    text-align: center;
}
.ap-workspace .racecards-weekly-table-pane > section + section {
    margin-top: .75rem;
}

.ap-workspace .ap-workspace-main .ap-week-selector {
    border: 1px solid var(--ap-workspace-line, #d5dce5);
    border-radius: .5rem;
    background: var(--ap-workspace-surface, #fff);
    box-shadow: none;
}

.ap-workspace .ap-week-selector button:focus-visible {
    outline: 2px solid var(--ap-workspace-accent, #001689);
    outline-offset: -2px;
}

.ap-workspace [data-hero-action-control-row]:has(.ap-week-selector) {
    --ap-hero-control-height: 2.625rem;
}

.ap-workspace [data-hero-action-control-row]:has(.ap-week-selector) :is([data-hero-card-action], .ap-week-selector) {
    box-sizing: border-box;
    height: var(--ap-hero-control-height);
    min-height: var(--ap-hero-control-height);
}

.ap-workspace [data-hero-action-control-row]:has(.ap-week-selector) [data-hero-card-menu-trigger].btn-square {
    width: var(--ap-hero-control-height);
    min-width: var(--ap-hero-control-height);
    padding: 0;
}

.ap-workspace [data-hero-action-control-row]:has(.ap-week-selector) .ap-week-selector button {
    height: calc(var(--ap-hero-control-height) - 2px);
    min-height: 0;
}

.ap-workspace .ap-workspace-main .ap-period-dropdown {
    background: var(--ap-workspace-surface, #fff);
    border: 1px solid var(--ap-workspace-line, #d5dce5);
    border-radius: .5rem;
    box-shadow: 0 8px 24px rgb(15 23 42 / .14);
}

.ap-workspace [data-hero-card] {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.ap-workspace [data-hero-card] > .ap-hero-body {
    padding: 0.5rem 0 1rem;
}

.ap-workspace [data-sticky-hero] {
    top: var(--ap-workspace-topbar-offset, 48px);
    margin-top: 0;
    background: var(--ap-workspace-canvas);
}

.ap-workspace [data-sticky-hero].is-compact {
    border-bottom: 1px solid var(--ap-workspace-line);
}

.ap-workspace [data-sticky-hero].is-compact [data-sticky-hero-body] {
    padding: 0.625rem 0;
}

.ap-workspace [data-sticky-hero].is-compact [data-sticky-hero-title] {
    font-size: 1.125rem;
    line-height: 1.375rem;
}

.ap-workspace [data-hero-card-title],
.ap-workspace .ap-primary-hero h1 {
    color: var(--ap-workspace-ink);
    font-family: var(--ap-workspace-font);
    font-size: var(--ap-workspace-title-size);
    font-weight: 500;
    letter-spacing: -0.015em;
    line-height: 1.3;
}

.ap-workspace [data-hero-card-subtitle] {
    color: var(--ap-workspace-muted);
}

.ap-workspace [data-hero-card-icon] {
    width: 2rem;
    height: 2rem;
    border-radius: 0;
    background: transparent;
    color: var(--ap-workspace-ink);
}

.ap-workspace [data-hero-card-icon-glyph] {
    color: inherit;
    font-size: 1.125rem;
}

.ap-workspace:has([data-planning-review-workspace]) [data-hero-action-control-row]:has(.ap-week-selector) {
    --ap-hero-control-height: 2.25rem;
}

.ap-workspace:has([data-planning-review-workspace]) [data-hero-card] > .ap-hero-body {
    padding-block: .375rem .5rem;
}

.ap-workspace:has([data-planning-review-workspace]) [data-hero-card-title] {
    font-size: 1.25rem;
}

.ap-workspace:has(.activity-readiness-filter) [data-hero-action-control-row]:has(.ap-week-selector) {
    --ap-hero-control-height: 2rem;
}
:is(.ap-workspace:has(.activity-readiness-filter), .ap-workspace [data-full-route-schematic-hero]) [data-hero-card] > .ap-hero-body {
    padding-block: .375rem;
}
:is(.ap-workspace:has(.activity-readiness-filter), .ap-workspace [data-full-route-schematic-hero]) [data-hero-card-title] {
    font-size: 1.125rem;
    line-height: 1.4;
}
:is(.ap-workspace:has(.activity-readiness-filter), .ap-workspace [data-full-route-schematic-hero]) [data-hero-card-subtitle] {
    font-size: .75rem;
}
:is(.ap-workspace:has(.activity-readiness-filter), .ap-workspace [data-full-route-schematic-hero]) [data-hero-card-icon] {
    width: 1.75rem;
    height: 1.75rem;
}
:is(.ap-workspace:has(.activity-readiness-filter), .ap-workspace [data-full-route-schematic-hero]) [data-hero-card-icon-glyph] {
    font-size: 1rem;
}
.ap-workspace:has(.activity-readiness-filter) [data-hero-card] :is([data-hero-card-action], .racecards-planning-control-group > .btn, .racecards-planning-control-group > .relative > button) {
    height: 2rem;
    min-height: 2rem;
    padding-inline: .625rem;
    font-size: .8125rem;
    font-weight: 500;
}
.ap-workspace:has(.activity-readiness-filter) [data-hero-card] .ap-week-selector {
    height: 2rem;
}
.ap-workspace:has(.activity-readiness-filter) [data-hero-card] .ap-week-selector button {
    height: calc(2rem - 2px) !important;
    min-height: 0;
    padding-inline: .625rem;
    font-size: .8125rem;
}
.ap-workspace:has(.activity-readiness-filter) [data-hero-card-action] .badge {
    height: 1.125rem;
    min-height: 1.125rem;
    padding-inline: .3125rem;
    font-size: .6875rem;
}

.activity-readiness-filter .modal-box {
    width: min(30rem, calc(100vw - 2rem));
    max-width: none;
    padding: 0;
    color: var(--ap-workspace-ink);
    background: var(--ap-workspace-surface);
}
.activity-readiness-filter .modal-box > header,
.activity-readiness-filter footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem 1rem;
}
.activity-readiness-filter .modal-box > header { border-bottom: 1px solid var(--ap-workspace-line); }
.activity-readiness-filter h2 { font-size: 1rem; font-weight: 500; }
.activity-readiness-filter-fields { display: grid; gap: 1rem; padding: 1rem; }
.activity-readiness-filter footer { border-top: 1px solid var(--ap-workspace-line); }
.activity-filter-shortcuts > * { padding: 1rem; }
.activity-filter-locator { border-top: 1px solid var(--ap-workspace-line); }
.activity-filter-shortcuts:has(+ form) { border-bottom: 1px solid var(--ap-workspace-line); }
.activity-filter-shortcuts :is(h3, legend) { margin-bottom: .625rem; font-size: .8125rem; font-weight: 500; }
.planning-list-display-controls > div { display: flex; flex-wrap: wrap; gap: .5rem; }

.ap-workspace .ap-mobile-week-section { display: none; }
@media (max-width: 639px) {
    .ap-workspace .ap-mobile-week-section:has([data-mobile-week-slot] > *) {
        display: block;
        padding: 1rem;
        border-bottom: 1px solid var(--ap-workspace-line);
    }
    .ap-workspace .ap-mobile-week-section h3 {
        margin: 0 0 .625rem;
        font-size: .8125rem;
        font-weight: 500;
    }
    .ap-workspace [data-mobile-week-slot] { min-width: 0; }
    .ap-workspace [data-mobile-week-slot] > * { min-width: 0; max-width: 100%; }
    .ap-workspace [data-mobile-week-slot] :is(.ap-week-selector, .ap-day-selector) {
        display: flex;
        width: 100%;
        height: 2rem;
    }
    .ap-workspace [data-mobile-week-slot] :is(.ap-week-selector, .ap-day-selector) > form { display: contents; }
    .ap-workspace [data-mobile-week-slot] :is(.ap-week-selector, .ap-day-selector) button {
        height: calc(2rem - 2px);
        min-height: 0;
        padding-inline: .625rem;
        font-size: .8125rem;
    }
    .ap-workspace [data-mobile-week-slot] .ap-week-selector > button { flex: 0 0 2.25rem; }
    .ap-workspace [data-mobile-week-slot] [aria-expanded] {
        flex: 1 1 auto;
        min-width: 0;
        justify-content: space-between;
    }
    .ap-workspace [data-mobile-week-slot] :is(.ap-period-dropdown, .racecards-header-dropdown) {
        position: static;
        width: 100%;
        max-width: 100%;
        margin-top: .5rem;
        box-shadow: none;
    }
    .ap-workspace [data-mobile-week-slot] :is(.ap-period-dropdown, .racecards-header-dropdown) > ul { max-height: min(14rem, 35dvh); }
    .ap-workspace [data-mobile-week-slot] [data-mobile-week-meta] {
        display: block !important;
        position: static;
        transform: none !important;
        min-width: 0;
        width: 100%;
        padding: .625rem 0 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }
    .ap-workspace [data-mobile-week-pending] { display: none; }
    .ap-workspace [data-hero-card]:is([data-mobile-week-in-filters], :has([data-mobile-week-pending])) .ap-hero-row {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
    .ap-workspace [data-hero-card]:is([data-mobile-week-in-filters], :has([data-mobile-week-pending])) [data-hero-card-action] {
        width: auto;
        height: 2rem;
        min-height: 2rem;
    }
    .ap-workspace [data-hero-card]:is([data-mobile-week-in-filters], :has([data-mobile-week-pending])) button[data-hero-card-action][aria-label^="Filter"] {
        width: 2rem;
        padding-inline: 0;
    }
    .ap-workspace [data-hero-card]:is([data-mobile-week-in-filters], :has([data-mobile-week-pending])) button[data-hero-card-action][aria-label^="Filter"] > span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .ap-workspace [data-hero-card]:is([data-mobile-week-in-filters], :has([data-mobile-week-pending])) button[data-hero-card-action][aria-label^="Filter"] > i { margin: 0; }
    .ap-workspace .clash-filters-body > .ap-mobile-week-section {
        padding: 0 0 1rem;
        margin-bottom: 1rem;
        border-top: 0;
    }
}

.ap-workspace:has([data-planning-review-workspace]) [data-sticky-hero] {
    z-index: 30;
}

.ap-workspace [data-planning-review-workspace] .racecards-hero-dock:has(> [data-sticky-hero]) {
    display: contents;
}

.ap-workspace .ap-planning-empty-state {
    width: min(46rem, 100%, calc(100vw - 6rem));
    margin-inline: auto;
    padding: 2.5rem 1rem;
    text-align: center;
    font-size: .8125rem;
    line-height: 1.6;
    color: var(--ap-workspace-muted, var(--color-base-content));
}
.ap-workspace .ap-planning-empty-state > i {
    display: block;
    margin-bottom: 1rem;
    font-size: 2rem;
    color: var(--ap-workspace-ink, var(--color-base-content));
}
.ap-workspace .ap-planning-empty-state h3 {
    margin: 0 0 .5rem;
    font-size: .8125rem;
    font-weight: 600;
    letter-spacing: .035em;
    text-transform: uppercase;
    color: var(--ap-workspace-accent, var(--color-primary));
}
.ap-workspace .ap-planning-empty-state p + p {
    margin-top: .5rem;
}
.ap-workspace .ap-planning-empty-state.activity-search-empty--error h3 {
    color: var(--color-error);
}
.ap-workspace [data-planning-review-table] .weekly-table-empty-cell:has(.ap-planning-empty-state) {
    padding: 0;
}

.ap-workspace [data-planning-review-table] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: .8125rem;
}

.ap-workspace [data-planning-review-table] thead {
    position: relative;
    top: auto;
    z-index: 20;
    transform: translateY(var(--ap-review-table-header-offset, 0px));
}

.ap-workspace [data-planning-review-table] th {
    background: var(--color-base-100);
    padding: .625rem .75rem;
    white-space: nowrap;
    font-size: .75rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
    color: color-mix(in srgb, currentColor 75%, transparent);
}

.ap-workspace [data-planning-review-table] td {
    padding: .625rem .75rem;
    vertical-align: middle;
}

.ap-workspace [data-planning-review-table] :is(th, td) {
    border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.ap-workspace [data-planning-review-table] tbody tr:last-child td {
    border-bottom: 0;
}

.ap-workspace .ap-primary-hero {
    border-radius: 0;
    background: transparent;
    color: var(--ap-workspace-ink);
}

.ap-workspace .ap-primary-hero .hero-content {
    max-width: none;
    padding: 0;
}

.ap-workspace .ap-primary-hero .hero-content > div {
    padding-block: 0.5rem 1rem;
}

.ap-workspace .ap-primary-hero h1 + p {
    color: var(--ap-workspace-muted);
}

.ap-workspace .ap-primary-hero .hero-content > div > div > span {
    width: 2rem;
    height: 2rem;
    border-radius: 0;
    background: transparent;
    color: var(--ap-workspace-ink);
}

.ap-workspace .ap-primary-hero .hero-content > div > div > span > i {
    color: inherit;
    font-size: 1.125rem;
}

.ap-workspace .ap-primary-hero .ap-hero-manager-badge {
    background: var(--ap-workspace-subtle);
    color: var(--ap-workspace-ink);
}

.ap-workspace .nav-card-grid {
    --nav-card-title-size: 0.9375rem;
    --nav-card-subtitle-size: 0.8125rem;
    --nav-card-icon-size: 1.125rem;
    --nav-card-icon-box-size: 2.25rem;
    --nav-card-padding: 1rem;
    --nav-card-gap: 0.75rem;
    --nav-card-grid-gap: 0.75rem;
    --nav-card-min-height: 4.5rem;
}

.ap-workspace .nav-card-grid.nav-card-grid-size-sm {
    --nav-card-title-size: 0.875rem;
    --nav-card-subtitle-size: 0.75rem;
    --nav-card-icon-size: 1rem;
    --nav-card-icon-box-size: 2rem;
    --nav-card-padding: 0.75rem;
    --nav-card-min-height: 4rem;
}

.ap-workspace .nav-card-grid.nav-card-grid-size-lg,
.ap-workspace .nav-card-grid.nav-card-grid-size-xl {
    --nav-card-title-size: 1rem;
    --nav-card-subtitle-size: 0.875rem;
    --nav-card-icon-size: 1.25rem;
    --nav-card-icon-box-size: 2.5rem;
    --nav-card-padding: 1.125rem;
    --nav-card-min-height: 5rem;
}

.ap-workspace .nav-card-grid .nav-card-shell {
    border: 0;
    border-bottom: 1px solid var(--ap-workspace-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
}

.ap-workspace .nav-card-grid .nav-card-shell:hover {
    background: var(--ap-workspace-hover);
    box-shadow: none;
    transform: none;
}

.ap-workspace .nav-card-grid .nav-card-icon {
    border-radius: 0;
    background: transparent;
    color: var(--ap-workspace-muted);
}

.ap-workspace .nav-card-grid .nav-card-title {
    color: var(--ap-workspace-ink);
    font-weight: 500;
}

.ap-workspace .nav-card-grid .nav-card-subtitle {
    color: var(--ap-workspace-muted);
    opacity: 1;
}

.ap-workspace .nav-card-grid.ap-hub-navigation {
    --nav-card-title-size: 0.875rem;
    --nav-card-subtitle-size: 0.8125rem;
    --nav-card-icon-size: 1.125rem;
    --nav-card-icon-box-size: 2rem;
    --nav-card-padding: 0.875rem 3.5rem 0.875rem 0.5rem;
    --nav-card-gap: 0.75rem;
    --nav-card-grid-gap: 0;
    --nav-card-min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    border-top: 1px solid var(--ap-workspace-line);
}

.ap-workspace .ap-hub-navigation .nav-card-shell {
    border: 0;
    border-bottom: 1px solid var(--ap-workspace-line);
    border-radius: 0;
    background: transparent;
}

.ap-workspace .ap-hub-navigation .nav-card-shell:hover {
    background: var(--ap-workspace-hover);
}

.ap-workspace .ap-hub-navigation .nav-card-row {
    align-items: center;
}

.ap-workspace .ap-hub-navigation .nav-card-title,
.ap-workspace .ap-hub-navigation .nav-card-subtitle {
    overflow-wrap: anywhere;
}

.ap-workspace .ap-hub-navigation :is(.nav-card-link, .nav-card-shell > form > button) {
    border-radius: 0;
}

.ap-workspace .ap-data-card {
    min-width: 0;
    border: 0;
    border-bottom: 1px solid var(--ap-workspace-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.ap-workspace .ap-data-card > div > header h3 {
    font-weight: 500;
}

.ap-workspace .ap-data-card-accent {
    height: 2px;
    border-radius: 0;
}

.ap-workspace .ap-data-card-list .ap-data-card {
    border: 0;
    border-bottom: 1px solid var(--ap-workspace-line);
    border-radius: 0;
    background: transparent;
}

.ap-workspace .ap-data-card-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.ap-workspace .ap-shared-table {
    border-radius: 0;
    background: var(--ap-workspace-surface);
    box-shadow: none;
}

.ap-workspace .ap-shared-table .table {
    font-size: 0.8125rem;
}

.ap-workspace .ap-shared-table .table :is(th, td) {
    border-color: var(--ap-workspace-line);
}

.ap-workspace .ap-shared-table .table th {
    color: var(--ap-workspace-muted);
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: none;
}

.ap-workspace .ap-shared-table .table tbody tr.hover:hover {
    background: var(--ap-workspace-hover);
}

.ap-workspace .ap-nav-tabs {
    gap: 0.25rem;
    border-bottom: 1px solid var(--ap-workspace-line);
}

.ap-workspace .ap-nav-tabs .tab {
    min-height: 2.5rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--ap-workspace-muted);
    font-size: 0.8125rem;
    font-weight: 500;
}

.ap-workspace .ap-nav-tabs .tab:is(:hover, .tab-active) {
    color: var(--ap-workspace-ink);
}

.ap-workspace .ap-nav-tabs .tab-active {
    border-bottom-color: var(--ap-workspace-accent);
}

.ap-workspace .ap-nav-tabs .badge:not(:is(.badge-primary, .badge-secondary, .badge-accent, .badge-neutral, .badge-error, .badge-warning, .badge-success, .badge-info)) {
    border-color: transparent;
    background: var(--ap-workspace-subtle);
    color: var(--ap-workspace-ink);
}

.ap-workspace [data-checkbox-drawer-panel] {
    border-left-width: 1px;
    background: var(--ap-workspace-surface);
}

.ap-workspace :is([data-checkbox-drawer-panel], [data-navigation-drawer-panel]) > header {
    background: var(--ap-workspace-surface);
    height: var(--ap-workspace-header-height, 48px);
    min-height: var(--ap-workspace-header-height, 48px);
    flex-shrink: 0;
    padding-block: 0;
}

.ap-workspace [data-checkbox-drawer-panel] > header h3 {
    color: var(--ap-workspace-ink);
    font-size: 1.125rem;
    font-weight: 500;
}

.ap-workspace [data-checkbox-drawer-panel] > footer {
    background: var(--ap-workspace-surface);
}

@media (prefers-reduced-motion: reduce) {
    .ap-workspace .nav-card-grid .nav-card-shell,
    .ap-workspace [data-checkbox-drawer-panel] {
        transition: none;
    }
}

@media print {
    .ap-workspace [data-hero-card],
    .ap-workspace .ap-primary-hero,
    .ap-workspace .ap-shared-table {
        color: inherit;
        background: transparent;
    }
}
