/* Premium Executive application shell. Business components retain their existing styles. */
.lerp-theme-v1 {
    --lerp-brand-gold: #cb982b;
    --lerp-brand-gold-hover: #b98622;
    --lerp-nav-bg: #242629;
    --lerp-nav-text: #f5f3ee;
    --lerp-nav-muted: #b8bcc2;
    --lerp-page-bg: #f7f5f0;
    --lerp-surface: #ffffff;
    --lerp-surface-muted: #f4f3ef;
    --lerp-border: #e2e3e5;
    --lerp-border-strong: #c8cbd0;
    --lerp-text: #222222;
    --lerp-text-muted: #666666;
    --lerp-danger: #b42318;
    --lerp-success: #1f7a4d;
    --lerp-info: #176b91;
    --lerp-warning: #8a5a00;
    --lerp-shadow-sm: 0 1px 3px rgba(24, 28, 32, 0.06);
    --lerp-shadow-md: 0 6px 18px rgba(24, 28, 32, 0.10);
    --lerp-radius-sm: 4px;
    --lerp-radius-md: 8px;
    --lerp-focus-ring: 0 0 0 3px rgba(203, 152, 43, 0.25);
    --lerp-on-gold: #222222;
    --lerp-shell-height: 58px;
    --lerp-page-gutter: 24px;
    margin: 0;
    background: var(--lerp-page-bg);
    color: var(--lerp-text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

/* In-flow header: no fixed-header subtraction or hidden rail in business-page measurements. */
.lerp-theme-v1 .lerp-shell {
    position: relative;
    z-index: 1000; /* Below both Bootstrap backdrop/modal stacks (1040+) and jquery-confirm. */
    display: flex;
    align-items: center;
    gap: 20px;
    min-height: var(--lerp-shell-height);
    padding: 7px var(--lerp-page-gutter);
    background: var(--lerp-nav-bg);
    color: var(--lerp-nav-text);
    box-shadow: var(--lerp-shadow-sm);
}

.lerp-theme-v1 .lerp-shell-brand {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 3px 9px;
    background: var(--lerp-surface);
    border-radius: var(--lerp-radius-sm);
}

.lerp-theme-v1 .lerp-shell-brand img {
    display: block;
    width: 112px;
    height: 33px;
}

.lerp-theme-v1 .lerp-module-nav {
    min-width: 0;
}

.lerp-theme-v1 .lerp-nav-list,
.lerp-theme-v1 .lerp-submenu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lerp-theme-v1 .lerp-nav-list {
    display: flex;
    align-items: center;
    gap: 3px;
}

.lerp-theme-v1 .lerp-shell button,
.lerp-theme-v1 .lerp-shell a {
    font-family: inherit;
    text-decoration: none;
}

.lerp-theme-v1 .lerp-module-link,
.lerp-theme-v1 .lerp-nav-button {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--lerp-radius-sm);
    background: transparent;
    color: var(--lerp-nav-text);
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
}

.lerp-theme-v1 .lerp-shell button {
    cursor: pointer;
}

.lerp-theme-v1 .lerp-module-link:hover,
.lerp-theme-v1 .lerp-nav-button:hover,
.lerp-theme-v1 .lerp-profile-toggle:hover,
.lerp-theme-v1 .lerp-shell-toggle:hover,
.lerp-theme-v1 .lerp-drawer-close:hover {
    background: #383b3f;
    color: var(--lerp-nav-text);
}

/* Legacy views may still add .active to a compatibility owner; it is not our visual state. */
.lerp-theme-v1 .lerp-shell .lerp-nav-active {
    background: var(--lerp-brand-gold);
    color: var(--lerp-on-gold);
    font-weight: 600;
}

.lerp-theme-v1 .lerp-shell .lerp-nav-active:hover {
    background: var(--lerp-brand-gold-hover);
    color: var(--lerp-on-gold);
}

.lerp-theme-v1 .lerp-shell a:focus-visible,
.lerp-theme-v1 .lerp-shell button:focus-visible {
    outline: 2px solid var(--lerp-brand-gold);
    outline-offset: 3px;
    box-shadow: var(--lerp-focus-ring);
}

.lerp-theme-v1 .lerp-chevron {
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    flex: 0 0 auto;
}

.lerp-theme-v1 .lerp-more,
.lerp-theme-v1 .lerp-profile {
    position: relative;
}

.lerp-theme-v1 .lerp-submenu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 1;
    min-width: 190px;
    padding: 6px;
    border: 1px solid var(--lerp-border);
    border-radius: var(--lerp-radius-md);
    background: var(--lerp-surface);
    box-shadow: var(--lerp-shadow-md);
}

.lerp-theme-v1 .lerp-submenu a {
    display: block;
    padding: 9px 12px;
    border-radius: var(--lerp-radius-sm);
    color: var(--lerp-text);
    white-space: nowrap;
}

.lerp-theme-v1 .lerp-submenu a:hover {
    background: var(--lerp-surface-muted);
    color: var(--lerp-text);
}

.lerp-theme-v1 .lerp-profile {
    min-width: 0;
    margin-left: auto;
}

.lerp-theme-v1 .lerp-profile-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 4px 7px;
    border: 0;
    border-radius: var(--lerp-radius-sm);
    background: transparent;
    color: var(--lerp-nav-text);
}

.lerp-theme-v1 .lerp-profile-name {
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.lerp-theme-v1 .lerp-profile-avatar {
    width: 32px;
    height: 32px;
    object-fit: cover;
    border-radius: 50%;
    background: var(--lerp-surface-muted);
}

.lerp-theme-v1 .lerp-profile-menu {
    right: 0;
    left: auto;
}

.lerp-theme-v1 .lerp-shell-toggle,
.lerp-theme-v1 .lerp-drawer-heading,
.lerp-theme-v1 .lerp-drawer-backdrop {
    display: none;
}

.lerp-theme-v1 .lerp-shell [hidden] {
    display: none;
}

/* Preserve the existing standalone app/feedback header suppression and its compatibility IDs. */
.lerp-theme-v1 .lerp-shell[hidden] {
    display: none;
}

.lerp-theme-v1 .lerp-shell[hidden] + .main-content {
    min-height: 100vh !important;
}

/* The !important overrides match legacy site/responsive declarations; no overflow masking. */
.lerp-theme-v1 .main-content {
    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: calc(100vh - var(--lerp-shell-height)) !important;
    margin: 0;
    padding: 20px var(--lerp-page-gutter) 0;
    overflow: visible;
    transition: none;
}

.lerp-theme-v1 .main-content-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-top: 0 !important;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom-color: var(--lerp-border);
}

.lerp-theme-v1 .main-content-header h1 {
    float: none;
    margin: 0;
    color: var(--lerp-text);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.4;
}

.lerp-theme-v1 .main-content-header .btn {
    margin-top: 0 !important; /* Remove the old title-row negative offset. */
}

/* UI-T1D: return 16px to Feedback while preserving its pager/copyright budget. */
.lerp-theme-v1 .lerp-feedback-header {
    margin-bottom: 8px;
    padding-bottom: 4px;
}

/* UI-T1A: narrow read-only reports keep their centering without white side bands. */
.lerp-theme-v1 .lerp-dashboard-grid .lerp-worksheet-scroll {
    background: transparent;
}

.lerp-theme-v1 .lerp-client-info-header > #create-in-group {
    margin-left: auto;
    flex-shrink: 0;
}

/* Reserve the Client Info heading, tabs and copyright area. Wrapped totals retain
   their natural height; only the existing scroll viewport shrinks. Short screens
   can still scroll the page instead of collapsing the whole Sessions region. */
.lerp-theme-v1 .lerp-client-sessions-pane #ss_sessions {
    display: flex;
    flex-direction: column;
    /* UI-T1D: a small 10px increase; retain room for wrapped totals and pager. */
    max-height: max(320px, calc(100vh - 260px));
}

.lerp-theme-v1 .lerp-client-sessions-pane #ss_sessions > .lerp-worksheet-scroll {
    min-height: 0;
}

.lerp-theme-v1 .lerp-client-sessions-pane .lerp-client-info-sessions-footer,
.lerp-theme-v1 .lerp-client-sessions-pane .lerp-worksheet-pagination {
    flex-shrink: 0;
}

/* UI-T1B: opt-in page regions only (Reporting, Facilitator Sessions and Client
   Programs/Invoices). Reserve title/tabs/copyright space without changing the
   engine's viewport options. Dashboard, form grids and modal grids do not opt in. */
.lerp-theme-v1 .lerp-page-grid-region {
    display: flex;
    flex-direction: column;
    max-height: max(320px, calc(100vh - var(--lerp-page-grid-reserve, 270px)));
}

/* UI-T1E: use the spare 20px below Facilitator Sessions totals. */
.lerp-theme-v1 .lerp-trainer-info-sessions-panel.lerp-page-grid-region {
    --lerp-page-grid-reserve: 250px;
}

.lerp-theme-v1 .lerp-reporting-grid.lerp-page-grid-region {
    --lerp-page-grid-reserve: 250px;
}

.lerp-theme-v1 .lerp-page-grid-region > .lerp-worksheet {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.lerp-theme-v1 .lerp-page-grid-region .lerp-worksheet-scroll {
    min-height: 0;
}

/* Keep every toolbar, pagination bar and total outside the shrinking scroll area. */
.lerp-theme-v1 .lerp-page-grid-region > :not(.lerp-worksheet):not(.lerp-worksheet-scroll),
.lerp-theme-v1 .lerp-page-grid-region > .lerp-worksheet > :not(.lerp-worksheet-scroll) {
    flex-shrink: 0;
}

/* Programs totals previously forced one row wider than the phone viewport. */
.lerp-theme-v1 #ss_programs.lerp-page-grid-region > .lerp-client-info-programs-footer {
    flex-wrap: wrap;
}

.lerp-theme-v1 .footer {
    height: auto;
    flex-shrink: 0;
    padding: 16px 0;
    border-top: 1px solid var(--lerp-border);
    border-radius: 0;
    background: transparent;
    clip-path: none;
    -webkit-clip-path: none;
    text-align: left;
    font-size: 12px;
}

.lerp-theme-v1 .footer p {
    color: var(--lerp-text-muted);
    text-transform: none;
}

.lerp-theme-v1 .lerp-retired-feature {
    padding: 20px;
    border: 1px solid var(--lerp-border);
    border-radius: var(--lerp-radius-md);
    background: var(--lerp-surface);
    color: var(--lerp-text-muted);
}

.lerp-theme-v1 .lerp-retired-feature p {
    margin: 0;
}

@media (min-width: 1200px) and (max-width: 1399px) {
    .lerp-theme-v1 { --lerp-page-gutter: 20px; }
    .lerp-theme-v1 .lerp-shell { gap: 14px; }
    .lerp-theme-v1 .lerp-module-link,
    .lerp-theme-v1 .lerp-nav-button { padding-right: 8px; padding-left: 8px; }
    .lerp-theme-v1 .lerp-profile-name { max-width: 120px; }
}

@media (max-width: 1199px) {
    .lerp-theme-v1 { --lerp-page-gutter: 16px; }
    .lerp-theme-v1 .lerp-shell { gap: 12px; }
    .lerp-theme-v1 .lerp-shell-toggle,
    .lerp-theme-v1 .lerp-drawer-close {
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        padding: 10px;
        border: 1px solid #50545a;
        border-radius: var(--lerp-radius-sm);
        background: transparent;
        color: var(--lerp-nav-text);
    }
    .lerp-theme-v1 .lerp-hamburger,
    .lerp-theme-v1 .lerp-hamburger::before,
    .lerp-theme-v1 .lerp-hamburger::after {
        display: block;
        position: relative;
        width: 20px;
        height: 2px;
        background: currentColor;
        content: "";
    }
    .lerp-theme-v1 .lerp-hamburger::before { position: absolute; top: -6px; }
    .lerp-theme-v1 .lerp-hamburger::after { position: absolute; top: 6px; }
    .lerp-theme-v1 .lerp-module-nav {
        display: none;
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 3;
        width: min(340px, calc(100vw - 48px));
        padding: 14px 16px 24px;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: var(--lerp-nav-bg);
        box-shadow: var(--lerp-shadow-md);
    }
    .lerp-theme-v1 .lerp-shell.lerp-drawer-open .lerp-module-nav { display: block; }
    .lerp-theme-v1 .lerp-drawer-heading {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        margin-bottom: 16px;
        color: var(--lerp-nav-muted);
        font-weight: 600;
    }
    .lerp-theme-v1 .lerp-drawer-close { font-size: 28px; font-weight: 400; }
    .lerp-theme-v1 .lerp-nav-list { display: block; }
    .lerp-theme-v1 .lerp-nav-list > li { margin-bottom: 5px; }
    .lerp-theme-v1 .lerp-module-link,
    .lerp-theme-v1 .lerp-nav-button { width: 100%; min-height: 44px; font-size: 14px; }
    .lerp-theme-v1 .lerp-more .lerp-submenu {
        position: static;
        min-width: 0;
        margin-top: 6px;
        box-shadow: none;
    }
    .lerp-theme-v1 .lerp-drawer-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 2;
        background: rgba(24, 28, 32, 0.48);
    }
    .lerp-theme-v1 .lerp-shell [hidden] { display: none; }
}

@media (max-width: 767px) {
    /* UI-T1C: wrapped pager/totals need more region height on this detail tab. */
    .lerp-theme-v1 .lerp-trainer-info-sessions-panel.lerp-page-grid-region {
        --lerp-page-grid-reserve: 190px;
    }
    .lerp-theme-v1 { --lerp-page-gutter: 12px; }
    .lerp-theme-v1 .lerp-profile-name { display: none; }
    .lerp-theme-v1 .lerp-profile-toggle { min-height: 44px; }
    .lerp-theme-v1 .main-content {
        padding: 16px var(--lerp-page-gutter) 0 !important; /* Legacy mobile padding is !important. */
    }
}

/* UI-T2 — shared business components. Geometry/lifecycle remain with their owners. */
/* GRID-CONTRAST-1A: worksheet-only Warm Contrast palette. The muted header is
   a tint of Luminary gold; medium warm-gray strokes stay softer than selection.
   Reuse LerpGrid's token names without changing the surrounding app palette. */
.lerp-theme-v1 {
    --lerp-grid-border: #aaa295;
    --lerp-grid-border-soft: var(--lerp-grid-border);
    --lerp-grid-header-border: #9d9072;
    --lerp-grid-header-bg: #e6d29c;
    --lerp-grid-header-text: #302b20;
    --lerp-grid-toolbar-bg: #f5edda;
    --lerp-grid-row-header-bg: #faf5e8;
    --lerp-grid-text: #111111;
}

.lerp-theme-v1 .lerp-grid-wrapper {
    border-color: var(--lerp-grid-border);
    border-radius: 6px;
    box-shadow: var(--lerp-shadow-sm);
}

/* The simple LerpGrid table has horizontal borders only. Paint its missing
   vertical strokes inside the cells so column widths and row heights stay exact. */
.lerp-theme-v1 .lerp-grid-table > thead > tr > :is(th, td) {
    background-color: var(--lerp-grid-header-bg);
    border-color: var(--lerp-grid-header-border);
    color: var(--lerp-grid-header-text);
    box-shadow: inset -1px 0 var(--lerp-grid-header-border);
}
.lerp-theme-v1 .lerp-grid-table > tbody > tr > :is(th, td) {
    box-shadow: inset -1px 0 var(--lerp-grid-border);
}

/* Frozen cells retain the engine's position, stacking, dimensions and solid masks.
   Shadows replace legacy gold gridlines without changing collapsed-table geometry. */
.lerp-theme-v1 .lerp-worksheet-table {
    --lerp-cell-lines: inset 1px 0 var(--lerp-grid-border), inset 0 1px var(--lerp-grid-border),
        inset 0 -1px var(--lerp-grid-border), inset -1px 0 var(--lerp-grid-border);
    --lerp-header-lines: inset 1px 0 var(--lerp-grid-header-border), inset 0 1px var(--lerp-grid-header-border),
        inset 0 -1px var(--lerp-grid-header-border), inset -1px 0 var(--lerp-grid-header-border);
}
.lerp-theme-v1 .lerp-worksheet-table thead th {
    background: var(--lerp-grid-header-bg);
    border-color: var(--lerp-grid-header-border);
    color: var(--lerp-grid-header-text);
}
.lerp-theme-v1 .lerp-worksheet-table tbody td,
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-row-header {
    border-color: var(--lerp-grid-border);
}
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-row-header {
    background-color: var(--lerp-grid-row-header-bg);
    color: var(--lerp-grid-header-text);
}
.lerp-theme-v1 .lerp-worksheet-table tbody td.readonly {
    background-color: #fafaf8;
    color: var(--lerp-worksheet-readonly-text, #595b60);
}
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-frozen-column-cell {
    background-color: var(--lerp-surface) !important;
    box-shadow: var(--lerp-cell-lines) !important;
}
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-frozen-column-cell.readonly {
    background-color: #fafaf8 !important;
}
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-frozen-column-header,
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-corner-mask {
    background: var(--lerp-grid-header-bg) !important;
    color: var(--lerp-grid-header-text);
    box-shadow: var(--lerp-header-lines) !important;
}
/* Existing engine !important masks require matching priority, including row
   headers. Selection overrides below still own selected masks and cell strokes. */
.lerp-theme-v1 .lerp-worksheet-freeze-row-header .lerp-worksheet-row-header-cell {
    background: var(--lerp-grid-row-header-bg) !important;
    color: var(--lerp-grid-header-text);
    box-shadow: var(--lerp-header-lines) !important;
}
.lerp-theme-v1 .lerp-worksheet-corner-mask::after {
    background: var(--lerp-grid-header-bg);
}
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-last-frozen-column {
    box-shadow: var(--lerp-cell-lines), inset -2px 0 var(--lerp-border-strong) !important;
}
.lerp-theme-v1 .lerp-worksheet-table tbody tr:hover > td:not(.lerp-worksheet-cell-selected):not(.lerp-worksheet-cell-editing):not(.lerp-worksheet-fill-preview):not(.lerp-worksheet-fill-preview-invalid):not(.cancelled_ses):not([style*="background"]) {
    background-color: #f5f4ef !important;
}
/* Opaque selection prevents text bleeding through frozen cells. Active/editing
   cells keep a dark 2px boundary, distinct from the gold range and neutral hover. */
.lerp-theme-v1 .lerp-worksheet-table tbody td.lerp-worksheet-cell.lerp-worksheet-cell-selected {
    background: #f8edd2 !important;
    box-shadow: inset 0 0 0 1px var(--lerp-brand-gold-hover) !important;
}
.lerp-theme-v1 .lerp-worksheet-table tbody td.lerp-worksheet-last-frozen-column.lerp-worksheet-cell-selected:not(:focus) {
    box-shadow: inset -2px 0 var(--lerp-border-strong), inset 0 0 0 1px var(--lerp-brand-gold-hover) !important;
}
.lerp-theme-v1 .lerp-worksheet-table tbody td.lerp-worksheet-cell:focus {
    box-shadow: inset 0 0 0 2px var(--lerp-nav-bg) !important;
}
.lerp-theme-v1 .lerp-worksheet-table tbody td.lerp-worksheet-cell.lerp-worksheet-cell-editing {
    background: var(--lerp-surface) !important;
    color: var(--lerp-text);
    box-shadow: inset 0 0 0 2px var(--lerp-nav-bg) !important;
}
.lerp-theme-v1 .lerp-worksheet-table .lerp-worksheet-header-selected {
    background: var(--lerp-brand-gold) !important;
    color: var(--lerp-on-gold) !important;
}
.lerp-theme-v1 .lerp-worksheet-corner-mask.lerp-worksheet-header-selected::after {
    background: var(--lerp-brand-gold);
}
.lerp-theme-v1 .lerp-worksheet-table tfoot .lerp-worksheet-footer-cell,
.lerp-theme-v1 .lerp-worksheet-table tfoot .lerp-worksheet-footer-index-cell {
    border-color: var(--lerp-border-strong);
    background: var(--lerp-surface-muted) !important;
    color: var(--lerp-text);
}

/* Native toolbar and pager keep their locked padding, heights and wrapping. */
.lerp-theme-v1 .lerp-worksheet-toolbar,
.lerp-theme-v1 .lerp-grid-toolbar {
    border-color: var(--lerp-grid-border);
    background: var(--lerp-grid-toolbar-bg);
    border-radius: 5px 5px 0 0;
}
.lerp-theme-v1 .lerp-worksheet-toolbar-button,
.lerp-theme-v1 .lerp-worksheet-color-wrap {
    background: transparent;
    color: #45484d;
}
.lerp-theme-v1 .lerp-worksheet-toolbar-button:hover:not(:disabled),
.lerp-theme-v1 .lerp-worksheet-color-wrap:hover {
    background: #e7e6e1;
    color: var(--lerp-text);
}
.lerp-theme-v1 .lerp-worksheet-toolbar-button[title="Save"],
.lerp-theme-v1 .lerp-worksheet-toolbar-button[title="Save changes"] {
    background: var(--lerp-brand-gold);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 .lerp-worksheet-toolbar-button[title="Save"]:hover:not(:disabled),
.lerp-theme-v1 .lerp-worksheet-toolbar-button[title="Save changes"]:hover:not(:disabled) {
    background: var(--lerp-brand-gold-hover);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 .lerp-worksheet-toolbar-button:disabled {
    color: #777a80;
    background: #e9e9e6;
    cursor: not-allowed;
}
.lerp-theme-v1 .lerp-worksheet-toolbar-separator {
    background: var(--lerp-grid-header-border);
}
.lerp-theme-v1 .lerp-worksheet-toolbar-select {
    border-radius: var(--lerp-radius-sm);
    background-color: var(--lerp-surface);
    color: var(--lerp-text);
    box-shadow: inset 0 0 0 1px var(--lerp-border);
}
.lerp-theme-v1 .lerp-worksheet-pagination {
    border-color: var(--lerp-border);
    border-radius: 0 0 5px 5px;
    background: var(--lerp-surface-muted);
    color: var(--lerp-text-muted);
}
.lerp-theme-v1 .lerp-worksheet-pagination-button,
.lerp-theme-v1 .lerp-worksheet-pagination-size select {
    border-color: var(--lerp-border-strong);
    border-radius: var(--lerp-radius-sm);
    background-color: var(--lerp-surface);
    color: var(--lerp-text);
}
.lerp-theme-v1 .lerp-worksheet-pagination-button:hover:not(:disabled) {
    border-color: var(--lerp-brand-gold);
    background: #fbf4e3;
}
.lerp-theme-v1 .lerp-worksheet-pagination-button:disabled {
    opacity: 1;
    color: #72757a;
    background: #eeefeb;
    border-color: var(--lerp-border);
}
.lerp-theme-v1 .lerp-worksheet-pagination-button.is-current {
    opacity: 1;
    background: var(--lerp-brand-gold);
    border-color: var(--lerp-brand-gold-hover);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 .lerp-worksheet-filter-button {
    color: var(--lerp-grid-header-text);
}
.lerp-theme-v1 .lerp-worksheet-filter-button.is-active,
.lerp-theme-v1 .lerp-worksheet-filter-button.is-active:hover,
.lerp-theme-v1 .lerp-worksheet-filter-button.is-active:focus {
    background: var(--lerp-brand-gold);
    color: var(--lerp-on-gold) !important;
    border-radius: 3px;
}
.lerp-theme-v1 .lerp-worksheet-filter-dropdown,
.lerp-theme-v1 .lerp-worksheet-context-menu,
.lerp-theme-v1 .lerp-worksheet-dropdown-popup,
.lerp-theme-v1 .lerp-worksheet-calendar-popup {
    border-color: var(--lerp-border-strong);
    border-radius: 6px;
    box-shadow: var(--lerp-shadow-md);
}
.lerp-theme-v1 .lerp-worksheet-filter-item:hover,
.lerp-theme-v1 .lerp-worksheet-filter-item:focus,
.lerp-theme-v1 .lerp-worksheet-dropdown-option:hover {
    background: var(--lerp-surface-muted);
    color: var(--lerp-text);
}
.lerp-theme-v1 .lerp-worksheet-filter-item.is-selected,
.lerp-theme-v1 .lerp-worksheet-dropdown-option.is-selected {
    background: #f8edd2;
    color: var(--lerp-text);
}
.lerp-theme-v1 .lerp-worksheet-filter-item-tick { color: var(--lerp-text); }
.lerp-theme-v1 .lerp-worksheet-calendar-day.is-selected {
    background: var(--lerp-brand-gold);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 .lerp-worksheet-calendar-popup-action { color: var(--lerp-warning); }
.lerp-theme-v1 .lerp-worksheet-calendar-day.is-outside-month { color: #767676; }
.lerp-theme-v1 .lerp-worksheet-dropdown-editor,
.lerp-theme-v1 .lerp-worksheet-calendar-editor {
    background: var(--lerp-surface);
    color: var(--lerp-text);
}
.lerp-theme-v1 .lerp-worksheet-checkbox-input { accent-color: var(--lerp-brand-gold); }

/* Ordinary fields only. Grid editors and multi-row selects retain their dimensions. */
.lerp-theme-v1 :is(input.form-control, select.form-control, textarea.form-control, select.form-select, select.custom-select):not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    background-color: var(--lerp-surface);
    border: 1px solid var(--lerp-border-strong);
    border-radius: 5px;
    color: var(--lerp-text);
    font-size: 14px;
    box-shadow: none;
}
.lerp-theme-v1 :is(input.form-control, select.form-control, select.form-select, select.custom-select):not(.form-control-sm):not(.form-select-sm):not([multiple]):not([size]):not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    height: 36px;
    min-height: 34px;
    padding-top: 5px;
    padding-bottom: 5px;
}
.lerp-theme-v1 :is(input.form-control-sm, select.form-control-sm, select.form-select-sm):not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    height: 34px;
    font-size: 13px;
}
.lerp-theme-v1 textarea.form-control:not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    height: auto;
    min-height: 64px;
}
.lerp-theme-v1 .form-control::placeholder { color: #767676; opacity: 1; }
.lerp-theme-v1 :is(.form-control, .form-select, .custom-select):is(:disabled, [readonly]):not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    background-color: var(--lerp-surface-muted);
    color: #595b60;
}
.lerp-theme-v1 :is(.form-control, .form-select, .custom-select):disabled:not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    border-style: dashed;
    opacity: 1;
}
.lerp-theme-v1 :is(.form-control, .form-select, .custom-select):focus:not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    border-color: var(--lerp-brand-gold);
    box-shadow: var(--lerp-focus-ring);
    outline: 1px solid var(--lerp-brand-gold-hover);
    outline-offset: 0;
}
.lerp-theme-v1 :is(.form-control, .form-select).is-invalid:not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    border-color: var(--lerp-danger);
}
.lerp-theme-v1 :is(.form-control, .form-select).is-valid:not(:where(.lerp-worksheet-table *, .jss_worksheet *, .jexcel *)) {
    border-color: var(--lerp-success);
}
.lerp-theme-v1 .form-label { color: #45484d; font-weight: 500; }
.lerp-theme-v1 .form-check-input:focus-visible {
    outline: 2px solid var(--lerp-brand-gold-hover);
    outline-offset: 2px;
    box-shadow: var(--lerp-focus-ring);
}
.lerp-theme-v1 .input-group-text {
    background: var(--lerp-surface-muted);
    border-color: var(--lerp-border-strong);
    color: var(--lerp-text-muted);
}
/* Existing Create Program label/control adapter (not the calendar filter layout). */
.lerp-theme-v1 .lerp-create-program-field-label,
.lerp-theme-v1 .lerp-new-contract-modal-body .lerp-contract-field-label {
    background: var(--lerp-surface-muted);
    border-color: var(--lerp-border-strong);
    color: var(--lerp-text);
}
.lerp-theme-v1 :is(.lerp-new-contract-modal-body, .lerp-create-program-modal-body) :is(input, select, textarea).form-control {
    border-color: var(--lerp-border-strong);
    border-radius: 4px;
}
.lerp-theme-v1 :is(.lerp-new-contract-modal-body, .lerp-create-program-modal-body) :is(input, select, textarea).form-control:focus {
    border-color: var(--lerp-brand-gold);
    box-shadow: var(--lerp-focus-ring);
}
.lerp-theme-v1 .modal select.filter-data {
    background-color: var(--lerp-surface);
    color: var(--lerp-text);
    border-color: var(--lerp-border-strong);
    border-radius: 4px;
}
.lerp-theme-v1 .modal select.filter-data:focus-visible {
    outline: 2px solid var(--lerp-brand-gold-hover);
    outline-offset: 1px;
}

/* Bootstrap semantic hooks remain authoritative; danger is never promoted to gold. */
.lerp-theme-v1 .btn-primary,
.lerp-theme-v1 .btn-primary:is(:disabled, .disabled) {
    background-color: var(--lerp-brand-gold);
    border-color: var(--lerp-brand-gold);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 .btn-primary:is(:hover, :focus, :active),
.lerp-theme-v1 .show > .btn-primary.dropdown-toggle {
    background-color: var(--lerp-brand-gold-hover);
    border-color: var(--lerp-brand-gold-hover);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 :is(.btn-secondary, .btn-outline-secondary, .btn-outline-dark, .btn-outline-primary, .lerp-grid-button) {
    background-color: var(--lerp-surface);
    border-color: var(--lerp-border-strong);
    color: #45484d;
    border-radius: var(--lerp-radius-sm);
}
.lerp-theme-v1 :is(.btn-secondary, .btn-outline-secondary, .btn-outline-dark, .btn-outline-primary, .lerp-grid-button):is(:hover, :focus, :active),
.lerp-theme-v1 .show > :is(.btn-secondary, .btn-outline-secondary, .btn-outline-primary).dropdown-toggle {
    background-color: #eeede8;
    border-color: #a8adb3;
    color: var(--lerp-text);
}
.lerp-theme-v1 :is(.btn-danger, .btn-outline-danger) {
    background-color: #fff0ee;
    border-color: #e6b5b0;
    color: var(--lerp-danger);
}
.lerp-theme-v1 :is(.btn-danger, .btn-outline-danger):is(:hover, :active) {
    background-color: #fbe0dc;
    border-color: var(--lerp-danger);
    color: #8e1b13;
}
.lerp-theme-v1 :is(.btn-success, .btn-outline-success) {
    background-color: #edf7f0;
    border-color: #b6d8c4;
    color: #1b6842;
}
.lerp-theme-v1 :is(.btn-success, .btn-outline-success):is(:hover, :active) {
    background-color: #dceee3;
    border-color: var(--lerp-success);
    color: #175536;
}
.lerp-theme-v1 .btn-link { color: #73500b; text-decoration: underline; }
.lerp-theme-v1 .btn:is(:disabled, .disabled) { opacity: .6; }
.lerp-theme-v1 :is(.lerp-worksheet-action-cell, .jss_worksheet td) .btn-outline-secondary,
.lerp-theme-v1 :is(.lerp-client-view-button, .lerp-trainer-view-button, .lerp-program-view-button, .lerp-contract-view-button) {
    background-color: transparent;
    color: #45484d;
}
.lerp-theme-v1 :is(.btn, .btn-close, .lerp-grid-button, .lerp-worksheet-toolbar-button, .lerp-worksheet-toolbar-select, .lerp-worksheet-pagination-button, .lerp-worksheet-pagination-size select, .lerp-worksheet-filter-button, .lerp-worksheet-filter-item, .lerp-worksheet-context-menu-item, .lerp-worksheet-dropdown-option, .lerp-worksheet-calendar-day, .lerp-worksheet-calendar-nav-button, .lerp-worksheet-calendar-popup-action, .lerp-worksheet-checkbox-input):focus-visible,
.lerp-theme-v1 .lerp-worksheet-color-wrap:focus-within {
    outline: 2px solid var(--lerp-brand-gold-hover);
    outline-offset: 2px;
    box-shadow: var(--lerp-focus-ring);
}

/* Existing semantic classes on cells remain cells: no pill padding/row inflation.
   Only actual inline badge elements receive compact chip geometry. */
.lerp-theme-v1 :is(.badge-danger, .badge-x-red) { color: var(--lerp-danger) !important; }
.lerp-theme-v1 :is(.badge-success, .badge-x-green, .badge-x-green-clonly) { color: #1b6842 !important; }
.lerp-theme-v1 :is(.badge-warning, .badge-x-yellow) { color: #805300 !important; }
.lerp-theme-v1 :is(span, small).badge {
    border-radius: 6px;
    padding: 4px 7px;
    line-height: 1.25;
    white-space: normal;
    max-width: 100%;
}
.lerp-theme-v1 :is(span, small).badge-danger { background-color: #fff0ee; }
.lerp-theme-v1 :is(span, small).badge-success { background-color: #edf7f0; }
.lerp-theme-v1 :is(span, small).badge-warning { background-color: #fff4dc; }
.lerp-theme-v1 :is(span, small).badge-info { background-color: #eaf3f8; color: #176080; }
.lerp-theme-v1 :is(span, small).badge-secondary { background-color: #eeeff1; color: #54585d; }

/* Keep the accepted tab bar height/padding; the selected marker moves to an inset
   underline. This does not target generic .active or shell navigation. */
.lerp-theme-v1 .nav-tabs {
    border-color: var(--lerp-border);
    background: transparent;
}
.lerp-theme-v1 .nav-tabs .nav-link {
    border-color: transparent;
    border-radius: 4px 4px 0 0;
    background: transparent;
    color: var(--lerp-text-muted);
}
.lerp-theme-v1 .tabs-style-three .nav-tabs .nav-link { border-top-color: transparent; }
.lerp-theme-v1 .nav-tabs .nav-link:hover { background: #eeede8; color: var(--lerp-text); }
.lerp-theme-v1 .nav-tabs .nav-link.active,
.lerp-theme-v1 .nav-tabs .nav-item.show .nav-link {
    border-color: transparent;
    background: var(--lerp-surface);
    color: var(--lerp-text);
    box-shadow: inset 0 -2px var(--lerp-brand-gold);
}
.lerp-theme-v1 .nav-tabs .nav-link:focus-visible {
    outline: 2px solid var(--lerp-brand-gold-hover);
    outline-offset: -2px;
}
.lerp-theme-v1 .tabs-style-three .tab-content {
    border-color: var(--lerp-border);
    background: var(--lerp-surface);
}

/* Dashboard cards retain their page design. Ordinary cards receive surfaces only. */
.lerp-theme-v1 .main-content:not(:has(.lerp-dashboard-grid)) .card,
.lerp-theme-v1 .modal .card {
    background-color: var(--lerp-surface);
    border-color: var(--lerp-border);
    border-radius: 6px;
    box-shadow: var(--lerp-shadow-sm);
}
.lerp-theme-v1 .main-content:not(:has(.lerp-dashboard-grid)) .card-header,
.lerp-theme-v1 .modal .card-header {
    background-color: var(--lerp-surface-muted);
    border-bottom-color: var(--lerp-border);
    color: var(--lerp-text);
}
.lerp-theme-v1 .main-content:not(:has(.lerp-dashboard-grid)) .card:not(.filter-card) > .card-body,
.lerp-theme-v1 .modal .card:not(.filter-card) > .card-body {
    padding: 16px;
}
.lerp-theme-v1 :is(.lerp-client-info-sessions-footer, .lerp-client-info-programs-footer, .lerp-client-info-invoices-footer, .lerp-trainer-info-session-totals, .lerp-trainer-info-invoice-detail-total, .lerp-program-total-row) {
    border-color: var(--lerp-border-strong) !important;
    background: var(--lerp-surface-muted);
    color: var(--lerp-text);
}
.lerp-theme-v1 :is(.lerp-client-info-sessions-footer, .lerp-client-info-programs-footer, .lerp-client-info-invoices-footer, .lerp-trainer-info-session-totals, .lerp-program-list-totals) span {
    color: var(--lerp-text-muted);
}
.lerp-theme-v1 :is(.lerp-client-info-sessions-footer, .lerp-client-info-programs-footer, .lerp-client-info-invoices-footer, .lerp-trainer-info-session-totals, .lerp-program-list-totals) strong {
    color: var(--lerp-text);
}
.lerp-theme-v1 :is(.table, .lerp-contact-table, .lerp-billing-profile-table):not(:where(.lerp-grid-table)) > thead > tr > :is(th, td) {
    background-color: var(--lerp-surface-muted);
    border-color: var(--lerp-border-strong);
    color: var(--lerp-text);
}
.lerp-theme-v1 .table:not(:where(.lerp-grid-table)) > tbody > tr > :is(th, td) { border-color: var(--lerp-border); }

/* Presentation only: preserve mixed Bootstrap/jQuery-confirm positioning,
   draggable transforms, focus restoration, busy guards and scroll ownership. */
.lerp-theme-v1 .modal-content,
.lerp-theme-v1 .jconfirm .jconfirm-box {
    background: var(--lerp-surface);
    border: 1px solid var(--lerp-border);
    border-radius: 8px;
    box-shadow: var(--lerp-shadow-md) !important;
}
.lerp-theme-v1 .modal-header {
    background: var(--lerp-surface);
    border-bottom-color: var(--lerp-border);
}
.lerp-theme-v1 .modal-title,
.lerp-theme-v1 .jconfirm .jconfirm-title {
    color: var(--lerp-text);
    font-weight: 600;
}
.lerp-theme-v1 .modal-footer {
    background: var(--lerp-surface-muted);
    border-top-color: var(--lerp-border);
    border-radius: 0 0 8px 8px;
}
.lerp-theme-v1 .jconfirm .jconfirm-buttons button {
    border-radius: var(--lerp-radius-sm);
    background: var(--lerp-surface-muted);
    color: var(--lerp-text);
    text-transform: none;
}
.lerp-theme-v1 .jconfirm .jconfirm-buttons button.btn-blue {
    background: var(--lerp-brand-gold);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 .jconfirm .jconfirm-buttons button.btn-red {
    background: #fff0ee;
    color: var(--lerp-danger);
}
.lerp-theme-v1 .jconfirm .jconfirm-buttons button:focus-visible {
    outline: 2px solid var(--lerp-brand-gold-hover);
    outline-offset: 2px;
}

/* Legacy Jspreadsheet/Jexcel bridge: retain nested headers, border widths,
   colspans, hidden cells, editor dimensions, sticky layers and scroll containers. */
.lerp-theme-v1 :is(.lerp-worksheet-table, .jss_worksheet, .jexcel) {
    /* Inherit into ordinary legacy cells; cell/inline semantic colors win.
       Native worksheet text already uses this darker charcoal. */
    color: var(--lerp-grid-text);
}
.lerp-theme-v1 :is(.jss_worksheet, table.jexcel, .jexcel > div > table) { border-color: var(--lerp-grid-border); }
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) > thead > tr > td {
    background-color: var(--lerp-grid-header-bg);
    color: var(--lerp-grid-header-text);
    border-top-color: var(--lerp-grid-header-border);
    border-left-color: var(--lerp-grid-header-border);
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) > tbody > tr > td {
    border-top-color: var(--lerp-grid-border);
    border-left-color: var(--lerp-grid-border);
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel, .jexcel > div > table) > tbody > tr:not(.selected) > td:first-child {
    background-color: var(--lerp-grid-row-header-bg);
    color: var(--lerp-grid-header-text);
}
/* Bundled jquery.jexcel uses a wrapper and right/bottom strokes. Preserve its
   transparent opposite edges, filter inputs and vendor range-border priority. */
.lerp-theme-v1 .jexcel > div > table > thead > tr:not(.jexcel_filter) > td:not(.selected) {
    background-color: var(--lerp-grid-header-bg);
    color: var(--lerp-grid-header-text);
}
.lerp-theme-v1 .jexcel > div > table > thead > tr > td {
    border-top-color: var(--lerp-grid-header-border);
    border-right-color: var(--lerp-grid-header-border);
}
.lerp-theme-v1 .jexcel > div > table > tbody > tr > td:not(.highlight) {
    border-right-color: var(--lerp-grid-border);
    border-bottom-color: var(--lerp-grid-border);
}
.lerp-theme-v1 .jexcel > div > table > tbody > tr:first-child > td:not(.highlight) {
    border-top-color: var(--lerp-grid-border);
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) > tfoot > tr > td {
    background-color: var(--lerp-surface-muted);
    border-top-color: var(--lerp-border-strong);
    border-left-color: var(--lerp-border);
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) > thead > tr > td.selected,
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) > tbody > tr.selected > td:first-child {
    background-color: var(--lerp-brand-gold);
    color: var(--lerp-on-gold);
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.highlight {
    background-color: #f8edd2;
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.highlight-top { border-top-color: var(--lerp-brand-gold-hover); }
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.highlight-right { border-right-color: var(--lerp-brand-gold-hover); }
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.highlight-bottom { border-bottom-color: var(--lerp-brand-gold-hover); }
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.highlight-left { border-left-color: var(--lerp-brand-gold-hover); }
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.highlight-selected {
    outline: 2px solid var(--lerp-nav-bg);
    outline-offset: -2px;
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.editor {
    background-color: var(--lerp-surface);
    color: var(--lerp-text);
    outline: 2px solid var(--lerp-nav-bg);
    outline-offset: -2px;
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.readonly { color: #595b60; }
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.readonly:not(.highlight):not(.editor) {
    background-color: #fafaf8;
}
.lerp-theme-v1 :is(.jss_worksheet, .jexcel) td.editor :is(input, textarea) {
    background-color: var(--lerp-surface);
    color: var(--lerp-text);
}
/* Preserve standalone jSuites toolbar treatment outside worksheet containers. */
.lerp-theme-v1 .jtoolbar {
    background-color: var(--lerp-surface-muted);
    border-color: var(--lerp-border);
}
.lerp-theme-v1 :is(.jss_toolbar, .jexcel_toolbar, .jexcel > .jexcel-toolbar, .jss_container .jtoolbar) {
    background-color: var(--lerp-grid-toolbar-bg);
    border-color: var(--lerp-grid-border);
}
.lerp-theme-v1 :is(.jss_toolbar, .jexcel_toolbar, .jexcel > .jexcel-toolbar) {
    color: var(--lerp-grid-header-text);
}
.lerp-theme-v1 :is(.jss_toolbar, .jexcel_toolbar) .jtoolbar-divisor {
    background-color: var(--lerp-grid-header-border);
}
/* Same vendor SVG glyphs, with only gray ink replaced. Keep dimensions,
   positioning and the separate dropdown/comment backgrounds untouched. */
.lerp-theme-v1 .jss_worksheet .jss_column_filter {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23302b20' width='18px' height='18px'%3E%3Cpath d='M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
}
.lerp-theme-v1 .jss_worksheet > thead > tr > td.arrow-up {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 14l5-5 5 5H7z' fill='%23302b20'/%3E%3C/svg%3E");
}
.lerp-theme-v1 .jss_worksheet > thead > tr > td.arrow-down {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 10l5 5 5-5H7z' fill='%23302b20'/%3E%3C/svg%3E");
}
.lerp-theme-v1 .jexcel > div > table > thead .arrow-up { border-bottom-color: var(--lerp-grid-header-text); }
.lerp-theme-v1 .jexcel > div > table > thead .arrow-down { border-top-color: var(--lerp-grid-header-text); }
.lerp-theme-v1 .jss_pagination { color: var(--lerp-text-muted); }
.lerp-theme-v1 .jss_pagination > div > div {
    border-color: var(--lerp-border-strong);
    border-radius: var(--lerp-radius-sm);
    background: var(--lerp-surface);
    color: var(--lerp-text);
}
.lerp-theme-v1 .jss_pagination .jss_page_selected {
    background: var(--lerp-brand-gold);
    color: var(--lerp-on-gold);
}

/* Audited legacy key/value sheets use the first data cell as a field label.
   Their page-local ID selectors force bright gold with !important. Match only
   those existing adapters; value cells, hidden headers and selection stay owned
   by Jspreadsheet and the original views. */
.lerp-theme-v1 :is(#ss_name, #ss_code, #ss_client, #ss_contract, #ss_cpaycur, #ss_ctransrate, #ss_date, #ss_status, #ss_clname, #ss_contname, #ss_commit, #ss_period, #ss_sdate, #ss_edate, #ss_cur, #ss_vpday, #ss_opday, #ss_mincost, #ss_minpax, #ss_maxpax, #ss_mode) > .jtabs-content > div > .jss_content > table.jss_worksheet > tbody > tr > td:nth-child(2):not(.highlight) {
    background-color: var(--lerp-surface-muted) !important;
    color: var(--lerp-text) !important;
}
.lerp-theme-v1 :is(#ss_name, #ss_code, #ss_client, #ss_contract, #ss_cpaycur, #ss_ctransrate, #ss_date, #ss_status, #ss_clname, #ss_contname, #ss_commit, #ss_period, #ss_sdate, #ss_edate, #ss_cur, #ss_vpday, #ss_opday, #ss_mincost, #ss_minpax, #ss_maxpax, #ss_mode) table.jss_worksheet {
    border-color: var(--lerp-border-strong);
}
.lerp-theme-v1 :is(#ss_name, #ss_code, #ss_client, #ss_contract, #ss_cpaycur, #ss_ctransrate, #ss_date, #ss_status, #ss_clname, #ss_contname, #ss_commit, #ss_period, #ss_sdate, #ss_edate, #ss_cur, #ss_vpday, #ss_opday, #ss_mincost, #ss_minpax, #ss_maxpax, #ss_mode) table.jss_worksheet > tbody > tr > td:not(.highlight) {
    border-right-color: var(--lerp-border);
}

/* UI-T2A — owner correction: compact Save is neutral; only verified native
   action buttons lose their visual tile. Preserve ink, hit area and focus rules. */
.lerp-theme-v1 .lerp-worksheet-toolbar-button:is([title="Save"], [title="Save changes"]):not(:disabled) {
    background: transparent;
}
.lerp-theme-v1 .lerp-worksheet-toolbar-button:is([title="Save"], [title="Save changes"]):hover:not(:disabled) {
    background: #e7e6e1;
}
.lerp-theme-v1 .lerp-worksheet-table :is(button.pentrinv-viewbtn, button.lerp-client-view-button, button.lerp-trainer-view-button, button.lerp-program-view-button) {
    background-color: transparent;
    border-color: transparent;
}
.lerp-theme-v1 .lerp-worksheet-table :is(button.pentrinv-viewbtn, button.lerp-client-view-button, button.lerp-trainer-view-button, button.lerp-program-view-button):hover:not(:disabled):not(.disabled) {
    background-color: #eeede8;
}

/* UI-T2B — draw the corner gridlines on its opaque mask, which covers the
   cell's inset lines. Reuse the adjacent header strokes without changing geometry. */
.lerp-theme-v1 .lerp-worksheet-corner-mask::after {
    box-shadow: var(--lerp-header-lines);
}

/* UI-T3 — Dashboard composition. Keep the locked worksheet contract unchanged. */
.lerp-theme-v1 .lerp-dashboard {
    min-width: 0;
}

.lerp-theme-v1 .lerp-dashboard .main-content-header {
    margin-bottom: 18px;
    padding-bottom: 0;
}

.lerp-theme-v1 .lerp-dashboard .main-content-header h1 {
    font-size: 26px;
    font-weight: 650;
    letter-spacing: -0.5px;
}

.lerp-theme-v1 .lerp-dashboard-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0 0 24px;
}

.lerp-theme-v1 .lerp-dashboard--trainer .lerp-dashboard-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lerp-theme-v1 .lerp-dashboard-metric,
.lerp-theme-v1 .lerp-dashboard-section,
.lerp-theme-v1 .lerp-dashboard-chart {
    min-width: 0;
    background: var(--lerp-surface);
    border: 1px solid var(--lerp-border);
    border-radius: var(--lerp-radius-md);
    box-shadow: var(--lerp-shadow-sm);
}

.lerp-theme-v1 .lerp-dashboard-metric {
    position: relative;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    grid-template-rows: 42px auto;
    gap: 8px 12px;
    padding: 14px 16px;
}

.lerp-theme-v1 .lerp-dashboard-metric dt {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0;
    color: var(--lerp-text-muted);
    font-size: 13px;
    font-weight: 500;
}

.lerp-theme-v1 .lerp-dashboard-metric dd {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0;
    color: var(--lerp-text);
    font-size: 28px;
    font-weight: 650;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.lerp-theme-v1 .lerp-dashboard-metric-icon {
    position: absolute;
    top: 14px;
    left: 16px;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: var(--lerp-radius-md);
    background: var(--lerp-surface-muted);
    color: var(--lerp-text-muted);
    font-size: 21px;
}

.lerp-theme-v1 .lerp-dashboard-section {
    margin-bottom: 20px;
    overflow: hidden;
}

.lerp-theme-v1 .lerp-dashboard-section-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    min-height: 50px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--lerp-border);
}

.lerp-theme-v1 .lerp-dashboard-section-header h2 {
    margin: 0;
    color: var(--lerp-text);
    font-size: 16px;
    font-weight: 650;
    line-height: 1.4;
}

.lerp-theme-v1 .lerp-dashboard-section-body {
    padding: 0;
}

/* UI-T3A: the Dashboard views use existing spare-width distribution. Keep the
   engine's inline widths authoritative and remove only legacy centering. */
.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-grid .lerp-worksheet-table {
    margin: 0;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-grid .lerp-worksheet-scroll {
    border-radius: 0;
}

/* Existing row/column and empty-state mounts remain; contain Bootstrap gutters. */
.lerp-theme-v1 .lerp-dashboard-section .row {
    min-width: 0;
    max-width: 100%;
    margin: 0;
}

.lerp-theme-v1 .lerp-dashboard-section .row > .col {
    min-width: 0;
    padding: 0;
}

.lerp-theme-v1 .lerp-dashboard-section .alert {
    margin: 0;
    padding: 16px;
    color: var(--lerp-text-muted);
    background: var(--lerp-surface-muted);
    border: 0;
    text-align: left;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-selector,
.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-month-selector {
    width: auto;
    padding: 0;
    justify-content: flex-end;
    gap: 8px;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-field,
.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-month-field {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-field label,
.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-month-field label {
    margin: 0;
    white-space: nowrap;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-field select,
.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-month-field select {
    width: auto;
    min-width: 72px;
}

.lerp-theme-v1 .lerp-dashboard-charts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
}

.lerp-theme-v1 .lerp-dashboard-chart {
    padding: 16px;
}

.lerp-theme-v1 .lerp-dashboard-chart .highcharts-figure {
    min-width: 0;
    max-width: 100%;
    margin: 0;
}

@media (min-width: 1200px) {
    .lerp-theme-v1 .lerp-dashboard--ops .lerp-dashboard-charts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-summary {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        margin-bottom: 18px;
    }

    .lerp-theme-v1 .lerp-dashboard-metric {
        padding: 14px 16px;
    }

    .lerp-theme-v1 .lerp-dashboard-section-header,
    .lerp-theme-v1 .lerp-dashboard-chart {
        padding: 10px 12px;
    }

    .lerp-theme-v1 .lerp-dashboard-section-body {
        padding: 0;
    }

    .lerp-theme-v1 .lerp-dashboard-section-header > .row {
        width: 100%;
    }

    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-field,
    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-month-field {
        flex: 1 1 calc(50% - 4px);
        min-width: 0;
        width: auto;
    }

    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-actions,
    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-month-actions {
        width: 100%;
    }

    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-actions .btn,
    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-month-actions .btn {
        flex: 1 1 auto;
        min-height: 40px;
    }
}

/* UI-T3B: weekly navigation and a five-row year menu, scoped to Dashboard. */
.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-stepper {
    display: flex;
    align-items: center;
    gap: 4px;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-selector :is(button, select):not([hidden]) {
    height: 36px;
    min-height: 36px;
    margin: 0;
    border: 1px solid var(--lerp-border-strong);
    border-radius: 4px;
    background: var(--lerp-surface);
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-stepper button {
    width: 36px;
    padding: 0;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-year-picker button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 82px;
}

.lerp-theme-v1 .lerp-dashboard-week-range {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid var(--lerp-border);
    border-radius: 4px;
    background: var(--lerp-surface-muted);
    color: var(--lerp-text-muted);
    font-size: 13px;
    white-space: nowrap;
}

.lerp-theme-v1 .lerp-dashboard-period-menu {
    position: fixed;
    z-index: 1100;
    width: 104px;
    max-height: 182px;
    overflow-y: auto;
    padding: 0;
    border: 1px solid var(--lerp-border-strong);
    border-radius: 4px;
    background: var(--lerp-surface);
    box-shadow: var(--lerp-shadow-md);
}

.lerp-theme-v1 .lerp-dashboard-period-option {
    display: block;
    width: 100%;
    height: 36px;
    padding: 0 12px;
    border: 0;
    background: var(--lerp-surface);
    color: var(--lerp-text);
    text-align: left;
    font: inherit;
}

.lerp-theme-v1 .lerp-dashboard-period-option[aria-selected="true"],
.lerp-theme-v1 .lerp-dashboard-period-option:hover {
    background: var(--lerp-surface-muted);
}

.lerp-theme-v1 .lerp-dashboard-period-option:focus-visible {
    /* Override legacy Bootstrap's important reset on tabindex=-1 menu items. */
    outline: 2px solid var(--lerp-brand-gold) !important;
    outline-offset: -2px;
}

@media (max-width: 767px) {
    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-selector {
        justify-content: flex-start;
    }

    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-year-picker {
        flex: 0 0 auto;
    }

    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-actions {
        width: auto;
    }

    .lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-selector button {
        height: 40px;
        min-height: 40px;
    }
}

/* UI-T3C: compact welcome and the shared Year/Week menu projection. */
.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    flex-wrap: wrap;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-welcome h1 {
    margin-bottom: 5px;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-welcome p {
    margin: 0;
    color: var(--lerp-text-muted);
    font-size: 14px;
}

.lerp-theme-v1 .lerp-dashboard-today {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--lerp-border);
    border-radius: var(--lerp-radius-sm);
    background: var(--lerp-surface);
    color: var(--lerp-text-muted);
    font-size: 13px;
}

.lerp-theme-v1 .lerp-dashboard .lerp-dashboard-week-stepper .lerp-dashboard-week-picker {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 104px;
    padding: 0 10px;
}

/* UI-T3D — initial authenticated navigation; never a business/AJAX preloader. */
.lerp-theme-v1 .lerp-page-loader {
    position: fixed;
    inset: 0;
    z-index: 10000000; /* Above the existing template preloader (9999999) during initial load only. */
    display: grid;
    place-items: center;
    padding: 24px;
    background: var(--lerp-page-bg);
    color: var(--lerp-nav-bg);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 200ms ease;
    /* Last-resort release even if the shared script cannot execute. No visible motion. */
    animation: lerp-page-loader-safety 0s 12s forwards;
}
.lerp-theme-v1 .lerp-page-loader-surface {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    width: 260px;
    max-width: 100%;
    padding: 32px 24px 28px;
    border: 1px solid var(--lerp-border);
    border-radius: var(--lerp-radius-md);
    background: var(--lerp-surface);
    box-shadow: var(--lerp-shadow-md);
}
.lerp-theme-v1 .lerp-page-loader-surface img {
    display: block;
    width: 112px;
    height: 33px;
    max-width: 100%;
}
.lerp-theme-v1 .lerp-page-loader-spinner {
    width: 28px;
    height: 28px;
    border: 2px solid rgba(203, 152, 43, 0.2);
    border-top-color: var(--lerp-brand-gold-hover);
    border-right-color: var(--lerp-brand-gold);
    border-radius: 50%;
    animation: lerp-page-loader-spin 900ms linear infinite;
}
.lerp-theme-v1 .lerp-page-loader-label {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
}
.lerp-theme-v1 .lerp-page-loader.is-leaving {
    opacity: 0;
    pointer-events: none;
}
.lerp-theme-v1 .lerp-page-loader[hidden] {
    display: none;
    visibility: hidden;
    pointer-events: none;
}
@keyframes lerp-page-loader-spin {
    to { transform: rotate(360deg); }
}
@keyframes lerp-page-loader-safety {
    to { visibility: hidden; pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) {
    .lerp-theme-v1 .lerp-page-loader { transition: none; }
    .lerp-theme-v1 .lerp-page-loader-spinner { animation: none; }
}

/* UI-T4 — Master Calendar and bounded page adoption. No worksheet geometry or
   lifecycle overrides: the existing scroll viewport, cells and pager own sizing. */
.lerp-theme-v1 .lerp-master-calendar-header {
    display: block;
    margin-bottom: 9px;
    padding-bottom: 0;
    border-bottom: 0;
}
.lerp-theme-v1 .lerp-master-calendar-header h1 {
    font-size: 24px;
    font-weight: 650;
    letter-spacing: -0.3px;
    line-height: 1.25;
}
.lerp-theme-v1 .lerp-master-calendar-subtitle {
    margin: 3px 0 0;
    color: var(--lerp-text-muted);
    font-size: 12px;
    line-height: 1.25;
}
/* The inherited Calendar breadcrumb is empty; retain its markup/hook. */
.lerp-theme-v1 .lerp-master-calendar-header .breadcrumb {
    display: none;
}
.lerp-theme-v1 .lerp-master-calendar-card,
.lerp-theme-v1 .lerp-contract-list-surface {
    min-width: 0;
    background: var(--lerp-surface);
    border-radius: var(--lerp-radius-md);
    box-shadow: var(--lerp-shadow-sm), inset 0 0 0 1px var(--lerp-border);
}
/* Paint the frame without adding borders/padding to the measured grid width.
   Keep overflow visible so native/legacy menus retain their existing ownership. */
.lerp-theme-v1 .lerp-master-calendar-card #ss_sessions > .lerp-worksheet-toolbar {
    justify-content: flex-start;
    background: var(--lerp-grid-toolbar-bg);
    border-radius: var(--lerp-radius-md) var(--lerp-radius-md) 0 0;
}
.lerp-theme-v1 .lerp-master-calendar-card .lerp-worksheet-scroll {
    border-radius: 0;
}
.lerp-theme-v1 .lerp-master-calendar-card .lerp-worksheet-pagination {
    border-radius: 0 0 var(--lerp-radius-md) var(--lerp-radius-md);
}
/* Scope to the audited detail mounts, excluding Client Info's payment-plan
   modal: its page header already has the accepted action alignment. */
.lerp-theme-v1 .main-content:has(#spreadsheet_proposal, #ss_pplan) .main-content-header:not(.lerp-client-info-header) > #create-in-group {
    margin-left: auto;
    flex-shrink: 0;
}
.lerp-theme-v1 .lerp-mcal-dialog .modal-content {
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
}
.lerp-theme-v1 .lerp-mcal-dialog .modal-body {
    min-height: 0;
    overflow: auto;
}
.lerp-theme-v1 .lerp-mcal-dialog .modal-title {
    font-size: 17px;
    line-height: 1.4;
}
.lerp-theme-v1 .lerp-mcal-dialog .card-body {
    height: auto;
    min-height: 0;
}
.lerp-theme-v1 .lerp-mcal-dialog .filter-card {
    height: auto !important;
    margin: 0 8px 12px 0 !important;
    border: 1px solid var(--lerp-border);
    box-shadow: none;
}
.lerp-theme-v1 .lerp-mcal-dialog .card-header {
    padding: 0 0 8px;
    background: var(--lerp-surface);
    border-bottom: 0;
}
.lerp-theme-v1 .lerp-mcal-dialog .card-title {
    margin: 0;
    color: var(--lerp-text);
    font-size: 13px;
    font-weight: 600;
}
.lerp-theme-v1 .lerp-mcal-dialog .modal-body > p.badge-x-red {
    color: var(--lerp-text-muted) !important;
    font-size: 13px;
}
.lerp-theme-v1 .lerp-mcal-dialog-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--lerp-border);
}
.lerp-theme-v1 .lerp-mcal-dialog-actions #filter-clear-button {
    margin-right: auto;
}
@media (max-width: 767.98px) {
    .lerp-theme-v1 .lerp-mcal-dialog .filter-card {
        margin-right: 0 !important;
    }
    .lerp-theme-v1 #mclTpdModal .card {
        height: auto !important;
        margin: 12px 0 0 !important;
    }
    .lerp-theme-v1 #mclTpdModal .fc-header-toolbar {
        flex-wrap: wrap;
        gap: 8px;
    }
    .lerp-theme-v1 #mclTpdModal .fc-toolbar-title {
        font-size: 18px;
    }
}

/* UI-T4A — native data-cell icon controls. Target the verified icon
   variants of action cells plus media/payment adapters; never text buttons. Paint only. */
.lerp-theme-v1 .lerp-worksheet-table > tbody > tr > td :is(
    .lerp-worksheet-action-cell > button:is(.lerp-client-view-button, .lerp-trainer-view-button, .lerp-program-view-button, .lerp-contract-view-button, .lerp-invoice-view-button, .lerp-worksheet-icon-button),
    button.pentrinv-viewbtn,
    button.lerp-trainer-info-media-button, button.lerp-trainer-info-payment-action,
    button.deck-viewbtn, button.pic-viewbtn, button.obsi-viewbtn, button.obse-viewbtn,
    button.deck-uploadbtn, button.pic-uploadbtn, button.obsi-uploadbtn,
    button.obse-uploadbtn, button.obse-excludebtn
) {
    background-color: transparent;
    border-color: transparent;
}
.lerp-theme-v1 .lerp-worksheet-table > tbody > tr > td :is(
    .lerp-worksheet-action-cell > button:is(.lerp-client-view-button, .lerp-trainer-view-button, .lerp-program-view-button, .lerp-contract-view-button, .lerp-invoice-view-button, .lerp-worksheet-icon-button),
    button.pentrinv-viewbtn,
    button.lerp-trainer-info-media-button, button.lerp-trainer-info-payment-action,
    button.deck-viewbtn, button.pic-viewbtn, button.obsi-viewbtn, button.obse-viewbtn,
    button.deck-uploadbtn, button.pic-uploadbtn, button.obsi-uploadbtn,
    button.obse-uploadbtn, button.obse-excludebtn
):hover:not(:disabled):not(.disabled) {
    background-color: #eeede8;
}

/* UI-T4B — shared Action menu. Bootstrap retains all dropdown behavior. */
.lerp-theme-v1 .btn.action-menu {
    background-color: var(--lerp-nav-bg);
    color: var(--lerp-nav-text);
    border-color: var(--lerp-nav-bg);
    border-radius: var(--lerp-radius-sm);
    box-shadow: inset 0 0 0 1px var(--lerp-text), var(--lerp-shadow-sm);
    position: relative;
}
.lerp-theme-v1 .btn.action-menu:is(:hover, :focus, :active, .show, [aria-expanded="true"]) {
    background-color: #303236;
    color: var(--lerp-nav-text);
    border-color: var(--lerp-nav-bg);
}
.lerp-theme-v1 .btn.action-menu > i {
    color: var(--lerp-brand-gold);
}
/* site.css hides this caret. Restore it within the existing right padding,
   out of flow so the accepted trigger width/header placement remain exact. */
.lerp-theme-v1 .btn.action-menu::after {
    display: block;
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    color: var(--lerp-brand-gold);
}
.lerp-theme-v1 .btn.action-menu:focus-visible {
    outline: 2px solid var(--lerp-brand-gold-hover);
    outline-offset: 2px;
    box-shadow: var(--lerp-focus-ring);
}
.lerp-theme-v1 .btn.action-menu:is(:disabled, .disabled) {
    background-color: var(--lerp-nav-bg);
    color: var(--lerp-nav-muted);
}
.lerp-theme-v1 .action-menu + .dropdown-menu {
    background-color: var(--lerp-surface);
    border-color: var(--lerp-border);
    border-radius: var(--lerp-radius-md);
    box-shadow: var(--lerp-shadow-md);
}
.lerp-theme-v1 .action-menu + .dropdown-menu .action-menu-item:not(.text-danger):not(.disabled):not(:disabled) {
    color: var(--lerp-text);
}
.lerp-theme-v1 .action-menu + .dropdown-menu .action-menu-item:is(:hover, :focus, :active, .active):not(.disabled):not(:disabled) {
    background-color: var(--lerp-surface-muted);
}
.lerp-theme-v1 .action-menu + .dropdown-menu .action-menu-item:focus-visible {
    outline: 2px solid var(--lerp-brand-gold-hover);
    outline-offset: -2px;
}

/* UI-T4C — Client Info contextual Summary actions; other Action menus stay intact. */
.lerp-theme-v1 .lerp-client-summary-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
}
.lerp-theme-v1 .lerp-summary-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}
.lerp-theme-v1 .lerp-summary-card-header .btn {
    flex-shrink: 0;
}

/* UI-T4C detail — contextual actions and bounded legacy grid fit. */
.lerp-theme-v1 .lerp-detail-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}
.lerp-theme-v1 .btn.lerp-detail-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    min-height: 36px;
    padding: 0;
    border-radius: var(--lerp-radius-sm);
    box-shadow: var(--lerp-shadow-sm);
}
.lerp-theme-v1 .btn.lerp-detail-icon i { margin: 0; }
.lerp-theme-v1 .lerp-detail-icon:focus-visible {
    outline: 2px solid var(--lerp-brand-gold);
    outline-offset: 2px;
}
.lerp-theme-v1 .lerp-program-detail :is(#spreadsheet_proposal, #spreadsheet_obd, #ss_invoices, #ss_parti) .jss_content {
    width: 100% !important;
    max-width: 100%;
}
.lerp-theme-v1 .lerp-program-detail .badge { max-width: 100%; white-space: normal; text-align: left; }
.lerp-theme-v1 #cnp-modal .lerp-program-start-calendar { position: fixed; inset: 0 auto auto 0; }
.lerp-theme-v1 #cnp-modal .lerp-program-start-calendar .jcalendar-content {
    width: 280px;
    max-height: calc(100vh - 16px);
    overflow: auto;
    border: 1px solid var(--lerp-border);
    border-radius: var(--lerp-radius-md);
    box-shadow: var(--lerp-shadow-md);
}
@media (max-width: 575.98px) {
    .lerp-theme-v1 #cnp-modal .lerp-create-program-field-row {
        grid-template-columns: minmax(100px, 0.65fr) minmax(0, 1fr);
    }
}

/* UI-T4C follow-up — native sheet toolbars and consistent detail-page hierarchy. */
.lerp-theme-v1 .lerp-detail-header h1 {
    font-size: 20px;
    line-height: 28px;
    font-weight: 600;
}
.lerp-theme-v1 .lerp-detail-page > .nav-tabs .nav-link {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 16px;
    font-size: 14px;
    line-height: 20px;
}
.lerp-theme-v1 .lerp-detail-page > .tab-content { padding-top: 0; }
.lerp-theme-v1 .lerp-detail-page .lerp-trainer-info-general { padding-top: 0; }
.lerp-theme-v1 .lerp-detail-page :is(.lerp-client-summary-actions, .lerp-detail-actions) {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 8px 0;
    margin: 0;
}
.lerp-theme-v1 .lerp-detail-page .lerp-summary-layout { margin-top: 0; }
.lerp-theme-v1 .lerp-detail-page .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 54px;
    padding-top: 8px;
    padding-bottom: 8px;
}
.lerp-theme-v1 .lerp-detail-page .card-header .card-title {
    margin: 0;
    font-size: 15px;
    line-height: 21px;
    font-weight: 600;
}
.lerp-theme-v1 .btn.lerp-detail-save,
.lerp-theme-v1 .lerp-program-detail .jss_toolbar .btn.lerp-detail-icon:not(.btn-outline-danger) {
    background-color: var(--lerp-surface);
    color: var(--lerp-text-muted);
    border-color: var(--lerp-border);
    box-shadow: none;
}
.lerp-theme-v1 .btn.lerp-detail-save:is(:hover, :active),
.lerp-theme-v1 .lerp-program-detail .jss_toolbar .btn.lerp-detail-icon:not(.btn-outline-danger):is(:hover, :active) {
    background-color: var(--lerp-surface-muted);
    color: var(--lerp-text);
    border-color: var(--lerp-border-strong);
}
.lerp-theme-v1 .lerp-program-detail :is(#spreadsheet_proposal, #spreadsheet_obd) .jss_toolbar {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 8px;
    margin: 8px 0 0;
    border: 1px solid var(--lerp-grid-border);
    border-bottom: 0;
    border-radius: var(--lerp-radius-sm) var(--lerp-radius-sm) 0 0;
    background: var(--lerp-grid-toolbar-bg);
    box-shadow: none;
}
.lerp-theme-v1 .lerp-program-detail .jss_toolbar > div {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 0;
}
.lerp-theme-v1 .lerp-program-detail .jss_toolbar .jtoolbar-item {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    background: transparent;
    box-shadow: none;
}
.lerp-theme-v1 .lerp-program-detail .jss_toolbar .lerp-detail-icon i,
.lerp-theme-v1 .lerp-program-detail .jss_toolbar .lerp-detail-icon .svg-inline--fa {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 14px;
}

/* UI-T5 — responsive adaptation only; Permissions/frozen-column contracts excluded. */
@media (max-width: 767.98px) {
    /* Existing links retain their Bootstrap targets and keyboard focus scrolls them into view. */
    .lerp-theme-v1 :is(.lerp-detail-page:has(.lerp-client-summary-actions), .lerp-program-detail, #ops-monthly-report-modal .tabs-style-three) > .nav-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        max-width: 100%;
    }
    .lerp-theme-v1 :is(.lerp-detail-page:has(.lerp-client-summary-actions), .lerp-program-detail, #ops-monthly-report-modal .tabs-style-three) > .nav-tabs > .nav-item {
        flex: 0 0 auto;
    }
    .lerp-theme-v1 :is(.lerp-detail-page:has(.lerp-client-summary-actions), .lerp-program-detail, #ops-monthly-report-modal .tabs-style-three) > .nav-tabs .nav-link {
        white-space: nowrap;
    }
}
@media (max-width: 1199.98px) {
    /* Contract General uses legacy field sheets without a tableWidth. Constrain
       their viewport, not operational columns or any shared worksheet engine. */
    .lerp-theme-v1 .main-content:has(#ss_contname) .tab-content .jss_content {
        width: 100% !important;
        max-width: 100%;
        overflow-x: auto;
    }
    .lerp-theme-v1 .main-content:has(#ss_contname) #tab_1 .col-sm-3 {
        flex: 0 0 50%;
        max-width: 50%;
    }
    .lerp-theme-v1 .main-content:has(#ss_contname) #tab_1 :is(#ss_clname, #ss_contname, #ss_commit, #ss_period, #ss_sdate, #ss_edate, #ss_cur, #ss_vpday, #ss_opday, #ss_mincost, #ss_minpax, #ss_maxpax, #ss_mode, #ss_notes, #ss_benefits, #ss_concern) table.jss_worksheet {
        width: 100%;
        table-layout: fixed;
    }
    .lerp-theme-v1 .main-content:has(#ss_contname) #tab_1 :is(#ss_clname, #ss_contname, #ss_commit, #ss_period, #ss_sdate, #ss_edate, #ss_cur, #ss_vpday, #ss_opday, #ss_mincost, #ss_minpax, #ss_maxpax, #ss_mode, #ss_notes, #ss_benefits, #ss_concern) col:nth-child(3) {
        width: auto !important;
    }
}
@media (max-width: 575.98px) {
    .lerp-theme-v1 .main-content:has(#ss_contname) #tab_1 .col-sm-3 {
        flex-basis: 100%;
        max-width: 100%;
    }
}
/* The report form sits between modal-content and header/body/footer. It must
   participate in the flex height budget so long checkbox lists scroll alone. */
@media (max-width: 991.98px), (max-height: 600px) {
    .lerp-theme-v1 #ops-monthly-report-modal .modal-dialog {
        margin-top: 12px;
        margin-bottom: 12px;
    }
    .lerp-theme-v1 #ops-monthly-report-modal .modal-content {
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
    }
    .lerp-theme-v1 #ops-monthly-report-form {
        display: flex;
        flex-direction: column;
        min-height: 0;
        max-height: inherit;
    }
    .lerp-theme-v1 #ops-monthly-report-form > .modal-body {
        min-height: 0;
        overflow-y: auto;
    }
    .lerp-theme-v1 #ops-monthly-report-form > :is(.modal-header, .modal-footer) {
        flex-shrink: 0;
    }
}

/* UI-READABILITY-1 — authenticated screen typography; print keeps the existing cascade. */
@media screen {
    body.lerp-theme-v1 {
        --lerp-text: #1a1a1a;
        font-weight: 500;
    }

    /* UI-READABILITY-1-READONLY — normal native weight; only read-only cells consume the ink token. */
    :where(body.lerp-theme-v1) :where(.lerp-worksheet-table > tbody > tr)
        > :where(.lerp-worksheet-cell):not(:where(
            .disabled, .is-disabled, [disabled],
            [aria-disabled="true"], .cancelled_ses, .lerp-worksheet-cell-editing,
            .lerp-worksheet-action-cell, .lerp-worksheet-checkbox-cell,
            [class*="badge-"], [class*="text-"], [class*="table-"],
            [class*="fw-"], [class*="font-weight-"],
            [style*="font" i], [style*="color" i],
            [style*="font" i] *, [style*="color" i] *,
            .disabled *, .is-disabled *, [disabled] *, [aria-disabled="true"] *,
            .cancelled_ses *, [class*="badge-"] *, [class*="text-"] *,
            [class*="fw-"] *, [class*="font-weight-"] *,
            :is(table, tbody, tr)[class*="table-"] *,
            :has(a, button, input, select, textarea, [contenteditable="true"], .badge, .alert, strong, b)
        )) {
        font-weight: 400;
        --lerp-worksheet-readonly-text: #3f4145;
    }

    /* Release legacy paragraph gray without outranking component/semantic rules. */
    :where(body.lerp-theme-v1) p {
        color: inherit;
    }

    /* UI-READABILITY-1-TABLE — change the ordinary table default, not row/cell ink. */
    :where(body.lerp-theme-v1) .table:not(:where(
        .table-primary, .table-secondary, .table-success,
        .table-danger, .table-warning, .table-info,
        .table-light, .table-dark, .table-active,
        .readonly, .disabled, [aria-disabled="true"],
        .lerp-grid-table, .lerp-worksheet-table, .jss_worksheet, .jexcel,
        .lerp-grid-table *, .lerp-worksheet-table *, .jss_worksheet *, .jexcel *
    )) {
        color: var(--lerp-text);
    }

    /* UI-READABILITY-1-TABLE-WEIGHT — system-ui 500 selects Segoe UI Semibold on Windows. */
    :where(body.lerp-theme-v1) :where(.table > tbody > tr) > td:not(:where(
        .readonly, .disabled, .is-disabled, [disabled], [aria-disabled="true"],
        [class*="text-"], [class*="table-"], [class*="fw-"], [class*="font-weight-"],
        [style*="font" i], [style*="font" i] *,
        .readonly *, .disabled *, .is-disabled *, [disabled] *, [aria-disabled="true"] *,
        [class*="text-"] *, [class*="fw-"] *, [class*="font-weight-"] *,
        :is(table, tbody, tr)[class*="table-"] *,
        .lerp-grid-table *, .lerp-worksheet-table *, .jss_worksheet *, .jexcel *,
        :has(a, button, input, select, textarea, [contenteditable="true"], .badge, .alert)
    )) {
        font-weight: 400;
    }

    /* Rows supply inherited ink. Contextual cells keep their own declarations;
       the scope/guards add no specificity to the legacy .table td selector. */
    :where(body.lerp-theme-v1) .table td:not(:where(
        .table-primary, .table-secondary, .table-success,
        .table-danger, .table-warning, .table-info,
        .table-light, .table-dark, .table-active,
        .readonly, .disabled, [aria-disabled="true"]
    )) {
        color: inherit;
    }

    .lerp-theme-v1 .form-label {
        color: var(--lerp-text);
    }

    :where(body.lerp-theme-v1) :is(
        input.form-control, select.form-control, textarea.form-control,
        select.form-select, select.custom-select
    ):not(:where(
        :disabled, [readonly],
        [type="button"], [type="submit"], [type="reset"], [type="file"],
        [type="checkbox"], [type="radio"], [type="range"], [type="color"],
        .lerp-worksheet-table *, .jss_worksheet *, .jexcel *
    )) {
        font-weight: 500;
    }

    .lerp-theme-v1 .input-group-text {
        font-weight: 500;
    }

    /* Keep navigation widths and legacy worksheet header metrics stable. */
    :where(body.lerp-theme-v1) .breadcrumb,
    :where(body.lerp-theme-v1) .nav-link,
    :where(body.lerp-theme-v1) .jss_worksheet thead {
        font-weight: 400;
    }

    /* These buttons use font: inherit; retain their pre-readability weights. */
    .lerp-theme-v1 .lerp-worksheet-pagination-button:not(.is-current),
    .lerp-theme-v1 .lerp-dashboard-period-option {
        font-weight: 400;
    }

    .lerp-theme-v1 .form-control::placeholder {
        font-weight: 400;
    }
}
