/* Back-office staff shell (Razor Pages — no Blazor circuit). */
.bo-root {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--color-background);
    color: var(--color-text);
    font-family: var(--font-family-ui, var(--font-family-sans));
}

.bo-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
    min-height: 3.5rem;
    padding: 0 1rem;
    background: var(--color-surface);
    color: var(--color-text-strong, var(--color-text));
    border-bottom: 1px solid var(--color-border);
    box-shadow: var(--elevation-0, none);
}

.bo-menu-btn {
    border: none;
    background: transparent;
    color: inherit;
    font-size: 1.25rem;
    line-height: 1;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    border-radius: var(--radius-1);
}

.bo-menu-btn:hover {
    background: var(--color-surface-2, var(--color-surface-muted));
}

.bo-brand {
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.2px;
}

.bo-user {
    margin-left: auto;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-body {
    display: flex;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.bo-aside {
    width: 260px;
    flex-shrink: 0;
    overflow-y: auto;
    background: var(--color-drawer-background, var(--color-surface));
    border-right: 1px solid var(--color-border);
}

.bo-aside--hidden {
    display: none;
}

.bo-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px;
}

.bo-nav-link {
    text-decoration: none;
    color: var(--color-text);
    padding: 8px 12px;
    border-radius: var(--radius-1);
    font-size: 0.9375rem;
    position: relative;
}

.bo-nav-link:hover {
    background: var(--color-surface-2, var(--color-surface-muted));
}

.bo-nav-muted {
    padding: 8px 12px;
    font-size: 0.875rem;
    color: var(--color-text-subtle);
}

.bo-nav-rule {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 8px 0;
}

.bo-main {
    flex: 1;
    min-width: 0;
    overflow: auto;
}

.bo-content {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-5, 1.5rem);
}

/* Shared staff page primitives (Blazor pages) */
.staff-page {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.staff-page__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
}

.staff-page__title {
    margin: 0;
    font-size: 1.75rem;
    line-height: var(--line-height-tight, 1.15);
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--color-text-strong, var(--color-text));
}

.staff-page__subtitle {
    margin: var(--space-1) 0 0;
    font-size: var(--font-size-base, 1rem);
    line-height: var(--line-height-normal, 1.35);
    color: var(--color-text-muted);
}

.staff-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.staff-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    box-shadow: var(--elevation-1);
}

.staff-input {
    min-height: 40px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: var(--font-size-base, 1rem);
    line-height: var(--line-height-normal, 1.35);
    outline: none;
    font-family: inherit;
}

.staff-input:focus {
    border-color: var(--color-primary);
    box-shadow: var(--focus-ring);
}

.staff-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 40px;
    padding: 10px 16px;
    border-radius: var(--radius-2, 8px);
    border: 1px solid transparent;
    font-weight: 650;
    font-size: 0.9375rem;
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
    transition: background var(--motion-duration-fast) var(--motion-ease-standard),
                border-color var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.staff-btn--primary {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

.staff-btn--primary:hover:not(:disabled) {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.staff-btn--secondary {
    background: var(--color-surface);
    border-color: var(--color-border-strong, var(--color-border));
    color: var(--color-text-strong, var(--color-text));
}

.staff-btn--secondary:hover:not(:disabled) {
    background: var(--color-surface-2, var(--color-surface-muted));
}

.staff-btn--ghost {
    background: transparent;
    border-color: transparent;
    color: var(--color-primary);
    min-height: 36px;
    padding: 6px 10px;
}

.staff-btn--ghost:hover:not(:disabled) {
    background: var(--color-primary-container);
}

.staff-btn--destructive {
    background: var(--color-surface);
    border-color: var(--color-danger);
    color: var(--color-danger);
}

.staff-btn--destructive:hover:not(:disabled) {
    background: rgba(211, 47, 47, 0.08);
    border-color: var(--color-danger-hover, var(--color-danger));
}

.staff-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.staff-btn:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.bo-dash-title {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
    color: var(--color-text-strong, var(--color-text));
}

.bo-dash-muted {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 1rem;
}

.bo-logout {
    border: none;
    background: none;
    cursor: pointer;
    font: inherit;
    text-align: left;
    width: 100%;
}

/* =========================================================
   Phase 2 — Customers, Vehicles & Service Templates
   ========================================================= */

/* Active nav link state */
.bo-nav-link--active {
    background: var(--color-primary-container);
    font-weight: 600;
    color: var(--color-text-strong, var(--color-text));
}

.bo-nav-link--active::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 999px;
    background: var(--color-primary);
}

/* Page heading (alias for bo-dash-title pattern) */
.bo-page-title {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0 0 1rem;
    color: var(--color-text-strong, var(--color-text));
}

/* Data table */
.bo-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    overflow: hidden;
}

.bo-table th {
    text-align: left;
    padding: 8px 16px;
    border-bottom: 2px solid var(--color-border);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
    background: var(--color-surface-2, var(--color-surface-muted));
}

.bo-table td {
    padding: 8px 16px;
    border-bottom: 1px solid var(--color-border);
    vertical-align: top;
}

.bo-table tr:hover td {
    background: rgba(21, 101, 192, 0.04);
}

/* Archived row — reduced opacity, no color change */
.bo-table tr.bo-row--archived {
    opacity: 0.55;
}

/* Primary action button */
.bo-btn {
    display: inline-block;
    padding: 8px 16px;
    background: var(--color-primary);
    color: var(--color-surface);
    border: none;
    border-radius: var(--radius-2, 8px);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.bo-btn:hover {
    background: var(--color-primary-hover);
    color: var(--color-surface);
}

/* Secondary / back navigation button */
.bo-btn--secondary {
    display: inline-block;
    padding: 8px 16px;
    background: var(--color-surface);
    color: var(--color-primary);
    border: 1px solid var(--color-border-strong, var(--color-primary));
    border-radius: var(--radius-2, 8px);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.bo-btn--secondary:hover {
    background: var(--color-primary-container);
}

/* Destructive action button (archive) */
.bo-btn--destructive {
    display: inline-block;
    padding: 8px 16px;
    background: var(--color-danger);
    color: var(--color-surface);
    border: none;
    border-radius: var(--radius-2, 8px);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.bo-btn--destructive:hover {
    background: var(--color-danger-hover);
}

/* Form container */
.bo-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 480px;
}

/* Label + input wrapper */
.bo-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Form label */
.bo-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text);
}

/* Form input / select */
.bo-input {
    padding: 8px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    font-size: 1rem;
    width: 100%;
    box-sizing: border-box;
}

.bo-input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: var(--focus-ring);
}

/* Validation error state on input */
.bo-input--error {
    border-color: var(--color-danger);
}

/* Inline validation message */
.bo-field-error {
    font-size: 0.875rem;
    color: var(--color-danger);
}

/* Button row at form bottom */
.bo-actions {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

/* Row above table (CTA + filter toggle) */
.bo-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

/* "Toon gearchiveerd" checkbox label */
.bo-toggle-label {
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Pagination prev/next row */
.bo-pagination {
    display: flex;
    gap: 8px;
    margin-top: 16px;
}

/* Sub-section heading (vehicles on detail page) */
.bo-section-title {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 24px 0 8px;
}

/* Expandable inline add form */
.bo-inline-form {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    padding: 16px;
    background: var(--color-surface);
    margin-top: 8px;
}

/* Empty list message */
.bo-empty-state {
    color: var(--color-text-muted);
    font-size: 1rem;
    margin: 24px 0;
}

/* Back-link breadcrumb row */
.bo-breadcrumb {
    font-size: 0.875rem;
    margin-bottom: 16px;
}

/* Back navigation link */
.bo-back-link {
    color: var(--color-primary);
    text-decoration: none;
}

.bo-back-link:hover {
    text-decoration: underline;
}

/* =========================================================
   Phase 4 — Work planning & customer approval
   ========================================================= */

.bo-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

@media (min-width: 960px) {
    .bo-grid {
        grid-template-columns: 1fr 2fr;
        align-items: start;
    }
}

.bo-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2);
    padding: 16px;
}

.bo-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    align-items: baseline;
    font-size: 0.9375rem;
}

.bo-audit-panel {
    margin-top: 1.25rem;
}

.bo-audit-panel table {
    width: 100%;
    border-collapse: collapse;
}

/* =========================================================
   Phase 14 — Loading, empty states & motion (FEED-01, FEED-02, FEED-03)
   ========================================================= */

/* --- Route progress bar (D-14-04) --------------------------------- */
.staff-route-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    opacity: 0;
    z-index: 2000;
    pointer-events: none;
    background: var(--color-primary);
    transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}

.staff-route-progress--active {
    opacity: 1;
}

/* --- Skeleton primitives (D-14-03) -------------------------------- */
.bo-skeleton {
    height: 14px;
    border-radius: var(--radius-1);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border-subtle);
}

.bo-skeleton--lg {
    height: 20px;
}

.bo-skeleton--row {
    height: 40px;
    width: 100%;
    margin-bottom: var(--space-2);
    border-radius: var(--radius-1);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border-subtle);
}

.bo-skeleton-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin: var(--space-5) 0;
}

/* --- Empty state typography (D-14-09) ----------------------------- */
.bo-empty-state__title {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0 0 var(--space-2);
    color: var(--color-text);
}

.bo-empty-state__body {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0 0 var(--space-4);
    color: var(--color-text-muted);
}

/* --- Error block (D-14-18) ---------------------------------------- */
.bo-error-block {
    margin: var(--space-4) 0;
    padding: var(--space-4);
    border-radius: var(--radius-1);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
}

/* --- Save feedback micro-motion (D-14-16) ------------------------- */
.bo-save-feedback {
    opacity: 0;
    transition: opacity var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-save-feedback--visible {
    opacity: 1;
}

/* =========================================================
   Phase 15 — BackOffice dashboard control center
   ========================================================= */

.bo-link {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: var(--font-size-sm, 0.875rem);
}

.bo-link:hover {
    text-decoration: underline;
}

.bo-dash-kpis {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}

@media (min-width: 768px) {
    .bo-dash-kpis {
        grid-template-columns: repeat(3, 1fr);
    }
}

.bo-dash-kpi {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    box-shadow: var(--elevation-1);
    padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-left-width: 4px;
    border-left-style: solid;
}

.bo-dash-kpi--work { border-left-color: var(--color-primary); }
.bo-dash-kpi--plan { border-left-color: #00897B; }
.bo-dash-kpi--money { border-left-color: #EF6C00; }

.bo-dash-kpi--link {
    text-decoration: none;
    color: inherit;
    transition: transform var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-dash-kpi--link:hover {
    background: var(--color-surface-2, var(--color-surface-muted));
    box-shadow: var(--elevation-2);
    transform: translateY(-1px);
}

.bo-dash-kpi--link:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring), var(--elevation-2);
}

.bo-dash-kpi__value {
    font-size: 2.25rem;
    line-height: 1;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-strong, var(--color-text));
}

.bo-dash-kpi__label {
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: 700;
    color: var(--color-text);
    margin-top: 2px;
}

.bo-dash-kpi__meta {
    font-size: var(--font-size-xs, 0.75rem);
    color: var(--color-text-muted);
    line-height: 1.4;
}

.bo-dash-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-dash-shortcut {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background var(--motion-duration-fast) var(--motion-ease-standard),
                border-color var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-dash-shortcut:hover {
    background: var(--color-primary-container);
    border-color: rgba(21, 101, 192, 0.35);
    color: var(--color-primary);
}

.bo-dash-shortcut--primary {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

.bo-dash-shortcut--primary:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
    color: #fff;
}

.bo-dash-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    align-items: start;
}

@media (min-width: 1100px) {
    .bo-dash-grid {
        grid-template-columns: 2fr 1fr;
    }
}

.bo-dash-right {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.bo-dash-card {
    padding: var(--space-5);
    overflow: hidden;
}

.bo-dash-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border-subtle);
}

.bo-dash-card__title {
    margin: 0;
    font-size: var(--font-size-lg, 1.125rem);
    line-height: var(--line-height-tight, 1.15);
    font-weight: 750;
    color: var(--color-text-strong, var(--color-text));
}

.bo-dash-card__subtitle {
    margin: 4px 0 0;
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text-muted);
}

.bo-dash-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-dash-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border-subtle);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-dash-item:hover {
    border-color: var(--color-border);
    box-shadow: var(--elevation-1);
}

.bo-dash-item--attention {
    border-color: var(--color-warning-border);
    background: var(--color-warning-surface);
}

.bo-dash-item__main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bo-dash-item__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.bo-dash-item__primary {
    font-weight: 750;
    font-size: 1rem;
    color: var(--color-text-strong, var(--color-text));
    line-height: 1.2;
}

.bo-dash-item__secondary {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text-muted);
    line-height: 1.35;
}

.bo-dash-item__title {
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.25;
}

.bo-dash-item__meta {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text-muted);
    line-height: 1.35;
}

.bo-dash-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    border: 1px solid transparent;
}

.bo-dash-chip--ok {
    background: var(--color-success-surface);
    border-color: var(--color-success-border);
    color: #2E7D32;
}

.bo-dash-chip--warn {
    background: var(--color-warning-surface);
    border-color: var(--color-warning-border);
    color: #E65100;
}

.bo-dash-chip--neutral {
    background: var(--color-surface-2, #f7f8fa);
    border-color: var(--color-border);
    color: var(--color-text-muted);
}

.bo-dash-chip--danger {
    background: #FFEBEE;
    border-color: #FFCDD2;
    color: var(--color-danger);
}

.bo-dash-item__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2);
    flex-shrink: 0;
}

@media (min-width: 640px) {
    .bo-dash-item__actions {
        flex-direction: row;
        align-items: center;
    }
}

.bo-dash-item__btn {
    min-height: 36px;
    padding: 8px 14px;
    font-size: 0.875rem;
}

.bo-dash-empty {
    text-align: center;
    padding: var(--space-6) var(--space-4);
}

.bo-dash-empty .bo-empty-state__title {
    margin-bottom: var(--space-2);
}

.bo-dash-empty .bo-empty-state__body {
    margin-bottom: var(--space-4);
}

.bo-dash-empty__cta {
    display: inline-flex;
    gap: var(--space-2);
    flex-wrap: wrap;
    justify-content: center;
}

/* BackOffice header quick jump */
.bo-quickjump {
    max-width: 420px;
    width: 100%;
}

@media (max-width: 720px) {
    .bo-quickjump {
        display: none;
    }
}

.bo-nav-section {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bo-nav-section__title {
    padding: 8px 12px;
    font-size: 0.75rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-subtle);
}

/* Work order inline ops (assign + schedule) */
.bo-ops-panel {
    padding: var(--space-5);
}

.bo-ops-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
}

@media (min-width: 960px) {
    .bo-ops-grid:not(.bo-wo-detail-aside .bo-ops-grid) {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

/* Sidebar ops: always stack — avoid squeezing planning into ~145px columns */
.bo-wo-detail-aside .bo-ops-grid {
    grid-template-columns: 1fr;
}

.bo-ops-block__title {
    margin: 0 0 var(--space-3);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text-strong, var(--color-text));
}

.bo-ops-list {
    list-style: none;
    margin: 0 0 var(--space-3);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-ops-list__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
}

.bo-ops-list__btn {
    flex-shrink: 0;
    padding: 6px 10px;
    font-size: 0.875rem;
}

.bo-ops-form-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-2);
}

.bo-ops-form-row .bo-input {
    flex: 1;
    min-width: 10rem;
}

.bo-ops-schedule-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-top: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
}

.bo-dash-quick-assign {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-2, 8px);
    background: rgba(255, 255, 255, 0.65);
    border: 1px dashed var(--color-warning-border);
}

.bo-dash-quick-assign__label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
    width: 100%;
}

@media (min-width: 640px) {
    .bo-dash-quick-assign__label {
        width: auto;
    }
}

.bo-dash-quick-assign__select {
    flex: 1;
    min-width: 9rem;
    min-height: 36px;
    padding: 6px 10px;
    font-size: 0.875rem;
}

.bo-dash-quick-assign__feedback {
    font-size: var(--font-size-xs, 0.75rem);
    font-weight: 600;
    color: #2E7D32;
}

.bo-dash-quick-assign__feedback--error {
    color: var(--color-danger);
}

/* Work orders list & detail */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.bo-wo {
    gap: var(--space-5);
}

.bo-wo-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-wo-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 640px) {
    .bo-wo-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-wo-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard),
                transform var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-wo-stat:hover {
    border-color: var(--color-primary);
    box-shadow: var(--elevation-2, var(--elevation-1));
}

.bo-wo-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-wo-stat--new { border-left: 4px solid #F9A825; }
.bo-wo-stat--progress { border-left: 4px solid #00897B; }
.bo-wo-stat--unplanned { border-left: 4px solid #E65100; }

.bo-wo-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
    color: var(--color-text-strong, var(--color-text));
}

.bo-wo-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-wo-card {
    padding: var(--space-5);
}

.bo-wo-card__header {
    margin-bottom: var(--space-4);
}

.bo-wo-card__title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-strong, var(--color-text));
}

.bo-wo-card__subtitle {
    margin: var(--space-1) 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-wo-card__subtitle--spaced {
    margin: var(--space-3) 0 var(--space-2);
}

.bo-wo-tech-list__item--planned-only {
    border-style: dashed;
}

.bo-ops-panel .bo-field-error {
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-2, 8px);
    background: rgba(211, 47, 47, 0.08);
}

.bo-wo-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.bo-wo-search {
    flex: 1;
    min-width: min(100%, 16rem);
}

.bo-wo-search__input {
    width: 100%;
}

.bo-wo-result-count {
    margin: 0 0 var(--space-3);
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-wo-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-wo-item {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-wo-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-1);
}

.bo-wo-item:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.bo-wo-item--attention {
    border-left: 4px solid var(--color-warning, #F9A825);
    background: rgba(249, 168, 37, 0.06);
}

.bo-wo-item__main {
    flex: 1;
    min-width: 0;
}

.bo-wo-item__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: 2px;
}

.bo-wo-item__plate {
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--color-text-strong, var(--color-text));
}

.bo-wo-item__customer {
    font-size: 0.9375rem;
    color: var(--color-text);
    margin-bottom: 4px;
}

.bo-wo-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-wo-item__dot {
    opacity: 0.5;
}

.bo-wo-item__flag {
    font-weight: 650;
    color: var(--color-warning-text, #E65100);
}

.bo-wo-item__chevron {
    flex-shrink: 0;
    font-size: 1.25rem;
    color: var(--color-primary);
    opacity: 0.7;
}

.bo-wo-item:hover .bo-wo-item__chevron {
    opacity: 1;
    transform: translateX(2px);
}

.bo-wo-back {
    margin-bottom: var(--space-2);
}

.bo-wo-detail-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
}

.bo-wo-detail-status {
    align-self: flex-start;
    font-size: 0.875rem;
}

.bo-wo-detail-summary {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-wo-detail-summary {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-wo-detail-summary--skeleton {
    margin-bottom: var(--space-5);
}

.bo-wo-detail-metric {
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
}

.bo-wo-detail-metric__label {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
    margin-bottom: 4px;
}

.bo-wo-detail-metric__value {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-strong, var(--color-text));
}

.bo-wo-lines-table-wrap {
    overflow-x: auto;
}

.bo-wo-lines-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
}

.bo-wo-lines-table th,
.bo-wo-lines-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
}

.bo-wo-lines-table thead th {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    background: var(--color-surface-2, var(--color-surface-muted));
}

.bo-wo-lines-table tfoot th,
.bo-wo-lines-table tfoot td {
    font-weight: 700;
    border-bottom: none;
    background: var(--color-surface-2, var(--color-surface-muted));
}

.bo-wo-lines-table__num {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.bo-ops-panel.staff-card {
    margin-top: 0;
}

.bo-ops-panel .bo-wo-card__header {
    padding-bottom: var(--space-3);
    margin-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border-subtle, var(--color-border));
}

.bo-ops-panel > .bo-wo-card__header .bo-wo-card__title {
    font-size: 1.125rem;
}

.bo-ops-block {
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-background, var(--color-surface));
}

#bo-ops-schedule {
    scroll-margin-top: 5rem;
}

/* Work order detail */
.bo-wo-detail-hero {
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.bo-wo-detail-hero-skeleton {
    height: 10rem;
    border-radius: var(--radius-3, 12px);
    margin-bottom: var(--space-4);
}

.bo-wo-detail-hero__top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
}

.bo-wo-detail-hero__identity {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--space-4);
    min-width: 0;
}

.bo-wo-plate {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 7.5rem;
    padding: 10px 14px;
    border: 2px solid var(--color-text-strong, #1a1a1a);
    border-radius: 6px;
    background: linear-gradient(180deg, #f5d033 0%, #e8bc1a 100%);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    font-variant-numeric: tabular-nums;
    color: #1a1a1a;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.bo-wo-detail-hero__customer {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--color-text-strong, var(--color-text));
}

.bo-wo-detail-hero__vehicle {
    margin: 4px 0 0;
    font-size: 0.9375rem;
    color: var(--color-text);
}

.bo-wo-detail-hero__meta {
    margin: 4px 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-wo-detail-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-wo-detail-hero__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
}

.bo-wo-detail-hero__done-hint {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-wo-detail-hero__error {
    margin: 0;
}

.bo-wo-stepper {
    display: flex;
    align-items: center;
    gap: 0;
    width: 100%;
    overflow-x: auto;
    padding: var(--space-2) 0;
}

.bo-wo-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    min-width: 5.5rem;
}

.bo-wo-step__dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--color-border-strong, var(--color-border));
    background: var(--color-surface);
}

.bo-wo-step__label {
    font-size: 0.75rem;
    font-weight: 650;
    color: var(--color-text-muted);
    text-align: center;
    white-space: nowrap;
}

.bo-wo-step--done .bo-wo-step__dot {
    border-color: var(--color-primary);
    background: var(--color-primary);
}

.bo-wo-step--done .bo-wo-step__label {
    color: var(--color-text);
}

.bo-wo-step--current .bo-wo-step__dot {
    border-color: var(--color-primary);
    background: var(--color-surface);
    box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.2);
}

.bo-wo-step--current .bo-wo-step__label {
    color: var(--color-primary);
    font-weight: 750;
}

.bo-wo-stepper__line {
    flex: 1;
    min-width: 1.5rem;
    height: 2px;
    margin: 0 4px;
    margin-bottom: 1.25rem;
    background: var(--color-border);
}

.bo-wo-stepper__line--done {
    background: var(--color-primary);
}

.bo-wo-alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    border-radius: var(--radius-2, 8px);
    border: 1px solid var(--color-warning-border, #F9A825);
    background: rgba(249, 168, 37, 0.1);
}

.bo-wo-alert__title {
    margin: 0;
    width: 100%;
    font-size: 0.875rem;
    font-weight: 750;
    color: var(--color-warning-text, #E65100);
}

.bo-wo-alert__body {
    margin: 0;
    flex: 1;
    min-width: 12rem;
    font-size: 0.9375rem;
    color: var(--color-text);
}

.bo-wo-alert__cta {
    margin-left: auto;
}

.bo-wo-detail-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-5);
    align-items: start;
}

@media (min-width: 1024px) {
    .bo-wo-detail-layout {
        grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem);
    }

    .bo-wo-detail-aside {
        position: sticky;
        top: var(--space-4);
    }
}

.bo-wo-detail-layout--skeleton {
    margin-top: var(--space-4);
}

.bo-wo-detail-main {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    min-width: 0;
}

.bo-wo-facts {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.bo-wo-facts__row {
    display: grid;
    grid-template-columns: 7rem 1fr;
    gap: var(--space-3);
    align-items: start;
}

.bo-wo-facts__row dt {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--color-text-muted);
}

.bo-wo-facts__row dd {
    margin: 0;
    font-size: 0.9375rem;
}

.bo-wo-tech-tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-wo-tech-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 4px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-2, var(--color-surface-muted));
    font-size: 0.875rem;
    font-weight: 600;
}

.bo-wo-tech-tag__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 750;
    flex-shrink: 0;
}

.bo-wo-tech-tag__avatar--sm {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.625rem;
}

.bo-wo-card__header--row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
}

.bo-wo-lines-totals {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    font-size: 0.9375rem;
    color: var(--color-text-muted);
}

.bo-wo-inline-empty {
    padding: var(--space-3);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface-2, var(--color-surface-muted));
    margin-bottom: var(--space-3);
}

.bo-wo-inline-empty p {
    margin: 0;
    font-size: 0.9375rem;
}

.bo-wo-inline-empty__hint {
    margin-top: 4px !important;
    font-size: 0.8125rem !important;
    color: var(--color-text-muted) !important;
}

.bo-wo-tech-list {
    list-style: none;
    margin: 0 0 var(--space-3);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-wo-tech-list__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
}

.bo-wo-tech-list__who {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.bo-wo-tech-list__name {
    font-weight: 650;
}

.bo-wo-tech-list__actions {
    display: flex;
    gap: 2px;
}

.bo-wo-tech-list__btn {
    min-height: 32px;
    padding: 4px 10px;
    font-size: 0.8125rem;
}

.bo-wo-tech-list__btn--danger {
    color: var(--color-danger);
}

.bo-wo-schedule-list {
    list-style: none;
    margin: 0 0 var(--space-3);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-wo-schedule-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
}

.bo-wo-schedule-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-2);
}

.bo-wo-schedule-card__when {
    min-width: 0;
}

.bo-wo-schedule-card__date {
    display: block;
    font-weight: 700;
    font-size: 0.9375rem;
    line-height: 1.3;
}

.bo-wo-schedule-card__time {
    display: block;
    margin-top: 2px;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-wo-schedule-card__who {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    padding-top: var(--space-2);
    border-top: 1px solid var(--color-border-subtle, var(--color-border));
    font-size: 0.875rem;
    font-weight: 600;
}

.bo-wo-schedule-card__tech-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.bo-wo-schedule-card__remove {
    flex-shrink: 0;
    min-height: 32px;
    padding: 4px 10px;
    font-size: 0.8125rem;
}

.bo-ops-schedule-times {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.bo-wo-detail-aside #bo-ops-schedule.bo-ops-block {
    padding: var(--space-4);
}

.bo-wo-detail-aside .bo-ops-schedule-form {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
}

.bo-wo-detail-aside .bo-ops-form-row {
    flex-direction: column;
    align-items: stretch;
}

.bo-wo-detail-aside .bo-ops-form-row .bo-input,
.bo-wo-detail-aside .bo-ops-form-row .staff-btn {
    width: 100%;
    min-width: 0;
}

.bo-ops-assign-form {
    margin-top: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
}

.bo-ops-schedule-form__title {
    margin: 0 0 var(--space-2);
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
}

.bo-ops-schedule-form__submit {
    width: 100%;
}

.bo-ops-block--focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.15);
}

/* Scheduling list */
.bo-sched {
    gap: var(--space-5);
}

.bo-sched-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-sched-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-sched-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-sched-stats--skeleton {
    grid-template-columns: repeat(2, 1fr);
}

.bo-sched-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-sched-stat:hover {
    border-color: var(--color-primary);
    box-shadow: var(--elevation-2, var(--elevation-1));
}

.bo-sched-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-sched-stat--today { border-left: 4px solid #00897B; }
.bo-sched-stat--week { border-left: 4px solid var(--color-primary); }
.bo-sched-stat--warn { border-left: 4px solid #F9A825; }
.bo-sched-stat--gap { border-left: 4px solid #E65100; }

.bo-sched-stat--link {
    cursor: pointer;
}

.bo-sched-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
    color: var(--color-text-strong, var(--color-text));
}

.bo-sched-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-sched-stat__hint {
    margin-top: 2px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-primary);
}

.bo-sched-card {
    padding: var(--space-5);
}

.bo-sched-toolbar {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.bo-sched-search {
    width: 100%;
}

.bo-sched-search__input {
    width: 100%;
}

.bo-sched-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-3);
}

.bo-sched-filter {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: min(100%, 12rem);
}

.bo-sched-filter__label {
    font-size: 0.75rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.bo-sched-filter__select {
    min-width: 12rem;
}

.bo-sched-range {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 3px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.03));
}

.bo-sched-range__btn {
    padding: 0.4rem 0.85rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--color-text-muted);
    cursor: pointer;
    transition: background var(--motion-duration-fast) var(--motion-ease-standard),
                color var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-sched-range__btn:hover {
    color: var(--color-text);
    background: rgba(0, 0, 0, 0.04);
}

.bo-sched-range__btn--active {
    background: var(--color-surface);
    color: var(--color-primary);
    box-shadow: var(--elevation-1);
}

.bo-sched-result-count {
    margin: 0 0 var(--space-4);
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-sched-day + .bo-sched-day {
    margin-top: var(--space-6);
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-border);
}

.bo-sched-day__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}

.bo-sched-day__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 750;
    color: var(--color-text-strong, var(--color-text));
}

.bo-sched-day__count {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-sched-blocks {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-sched-block {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-sched-block:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-1);
}

.bo-sched-block:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.bo-sched-block--attention {
    border-left: 4px solid var(--color-warning, #F9A825);
    background: rgba(249, 168, 37, 0.06);
}

.bo-sched-block__time {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-2, 8px);
    background: rgba(0, 137, 123, 0.08);
    text-align: center;
}

.bo-sched-block__time-all {
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #00695C;
}

.bo-sched-block__time-start {
    font-size: 0.9375rem;
    font-weight: 750;
    line-height: 1.1;
    color: var(--color-text-strong, var(--color-text));
}

.bo-sched-block__time-end {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-sched-block__main {
    min-width: 0;
}

.bo-sched-block__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: 2px;
}

.bo-sched-block__plate {
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.bo-sched-block__customer {
    font-size: 0.9375rem;
    margin-bottom: 6px;
}

.bo-sched-block__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.8125rem;
}

.bo-sched-block__tech {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text-muted);
}

.bo-sched-block__tech--missing {
    color: var(--color-warning-text, #E65100);
    font-weight: 650;
}

.bo-sched-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: rgba(21, 101, 192, 0.12);
    font-size: 0.625rem;
    font-weight: 750;
    color: var(--color-primary);
}

.bo-sched-block__chevron {
    flex-shrink: 0;
    font-size: 1.25rem;
    color: var(--color-primary);
    opacity: 0.7;
}

.bo-sched-block:hover .bo-sched-block__chevron {
    opacity: 1;
    transform: translateX(2px);
}

@media (max-width: 480px) {
    .bo-sched-block {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }

    .bo-sched-block__time {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: flex-start;
        gap: var(--space-2);
        min-width: 0;
        width: fit-content;
    }

    .bo-sched-block__time-start,
    .bo-sched-block__time-end {
        display: inline;
    }

    .bo-sched-block__time-end::before {
        content: "– ";
    }
}

/* Time entries list & review */
.bo-time {
    gap: var(--space-5);
}

.bo-time-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-time-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-time-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-time-stats--skeleton {
    grid-template-columns: repeat(2, 1fr);
}

.bo-time-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-time-stat:hover {
    border-color: var(--color-primary);
    box-shadow: var(--elevation-2, var(--elevation-1));
}

.bo-time-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-time-stat--pending { border-left: 4px solid #F9A825; }
.bo-time-stat--running { border-left: 4px solid #5C6BC0; }
.bo-time-stat--ok { border-left: 4px solid #00897B; }
.bo-time-stat--danger { border-left: 4px solid #C62828; }

.bo-time-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-time-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-time-stat__hint {
    margin-top: 2px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-warning-text, #E65100);
}

.bo-time-card {
    padding: var(--space-5);
}

.bo-time-toolbar {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.bo-time-search__input {
    width: 100%;
}

.bo-time-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-3);
}

.bo-time-filter {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: min(100%, 12rem);
}

.bo-time-filter__label {
    font-size: 0.75rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.bo-time-range {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 3px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.03));
}

.bo-time-range__btn {
    padding: 0.4rem 0.85rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--color-text-muted);
    cursor: pointer;
}

.bo-time-range__btn--active {
    background: var(--color-surface);
    color: var(--color-primary);
    box-shadow: var(--elevation-1);
}

.bo-time-result-count {
    margin: 0 0 var(--space-4);
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-time-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-time-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-time-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-1);
}

.bo-time-item--attention {
    border-left: 4px solid var(--color-warning, #F9A825);
    background: rgba(249, 168, 37, 0.06);
}

.bo-time-item__duration {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-2, 8px);
    background: rgba(21, 101, 192, 0.08);
    text-align: center;
}

.bo-time-item__duration-value {
    font-size: 1.125rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-time-item__duration-unit {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-primary);
}

.bo-time-item__main {
    min-width: 0;
}

.bo-time-item__row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--space-2);
    margin-bottom: 4px;
}

.bo-time-item__desc {
    flex: 1;
    min-width: 0;
    font-size: 0.9375rem;
    font-weight: 650;
    line-height: 1.35;
}

.bo-time-item__vehicle {
    font-size: 0.875rem;
    margin-bottom: 4px;
}

.bo-time-item__plate {
    font-weight: 700;
    letter-spacing: 0.02em;
}

.bo-time-item__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-time-item__dot {
    opacity: 0.5;
}

.bo-time-item__tech {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.bo-time-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.375rem;
    height: 1.375rem;
    border-radius: 50%;
    background: rgba(21, 101, 192, 0.12);
    font-size: 0.5625rem;
    font-weight: 750;
    color: var(--color-primary);
}

.bo-time-item__chevron {
    font-size: 1.25rem;
    color: var(--color-primary);
    opacity: 0.7;
}

.bo-time-item:hover .bo-time-item__chevron {
    opacity: 1;
    transform: translateX(2px);
}

/* Time entry detail / review */
.bo-time-back {
    margin-bottom: var(--space-2);
}

.bo-time-review-hero {
    padding: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-time-review-hero__top {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-time-review-hero__duration {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 5rem;
    padding: var(--space-4);
    border-radius: var(--radius-3, 12px);
    background: rgba(21, 101, 192, 0.08);
    text-align: center;
}

.bo-time-review-hero__duration-value {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
}

.bo-time-review-hero__duration-unit {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary);
}

.bo-time-review-hero__duration-sub {
    margin-top: 4px;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-time-review-hero__identity {
    flex: 1;
    min-width: min(100%, 16rem);
}

.bo-time-review-hero__chip {
    margin-bottom: var(--space-2);
}

.bo-time-review-hero__title {
    margin: 0 0 var(--space-2);
    font-size: 1.375rem;
    font-weight: 750;
    line-height: 1.3;
}

.bo-time-review-hero__meta {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    font-size: 0.9375rem;
    color: var(--color-text-muted);
}

.bo-time-review-hero__tech {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.bo-time-review-hero__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-time-detail-grid {
    display: grid;
    gap: var(--space-4);
}

@media (min-width: 900px) {
    .bo-time-detail-grid {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

.bo-time-detail-card {
    padding: var(--space-5);
}

.bo-time-detail-card__title {
    margin: 0 0 var(--space-4);
    font-size: 1.0625rem;
    font-weight: 700;
}

.bo-time-detail-facts {
    display: grid;
    gap: var(--space-3);
    margin: 0;
}

.bo-time-detail-fact {
    display: grid;
    gap: 2px;
}

.bo-time-detail-fact dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.bo-time-detail-fact dd {
    margin: 0;
    font-size: 0.9375rem;
}

.bo-time-rejection-box {
    margin-top: var(--space-4);
    padding: var(--space-4);
    border-radius: var(--radius-2, 8px);
    background: rgba(198, 40, 40, 0.08);
    border: 1px solid rgba(198, 40, 40, 0.2);
}

.bo-time-rejection-box__label {
    margin: 0 0 var(--space-1);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #C62828;
}

.bo-time-rejection-box__text {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.45;
}

.bo-time-review-panel__hint {
    margin: 0 0 var(--space-4);
    font-size: 0.9375rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.bo-time-review-panel__hint--ok {
    color: #00695C;
}

.bo-time-review-panel__hint--warn {
    color: #C62828;
}

.bo-time-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-time-review-actions__approve {
    flex: 1;
    min-width: 10rem;
}

.bo-time-reject-form {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.bo-time-reject-form__input {
    width: 100%;
    min-height: 5rem;
    resize: vertical;
    margin-bottom: var(--space-3);
}

.bo-time-reject-form__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
}

@media (max-width: 480px) {
    .bo-time-item {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }

    .bo-time-item__duration {
        grid-column: 1 / -1;
        flex-direction: row;
        width: fit-content;
        gap: var(--space-2);
    }

    .bo-time-item__duration-value,
    .bo-time-item__duration-unit {
        display: inline;
    }
}

/* Invoices list & detail */
.bo-inv {
    gap: var(--space-5);
}

.bo-inv-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-inv-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-inv-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-inv-stats--skeleton {
    grid-template-columns: repeat(2, 1fr);
}

.bo-inv-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-inv-stat:hover {
    border-color: var(--color-primary);
}

.bo-inv-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-inv-stat--draft { border-left: 4px solid #78909C; }
.bo-inv-stat--open { border-left: 4px solid #F9A825; }
.bo-inv-stat--ok { border-left: 4px solid #00897B; }
.bo-inv-stat--void { border-left: 4px solid #C62828; }

.bo-inv-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-inv-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-inv-stat__hint {
    margin-top: 2px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-inv-card {
    padding: var(--space-5);
}

.bo-inv-toolbar {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.bo-inv-search__input {
    width: 100%;
}

.bo-inv-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

.bo-inv-filter--check {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
    cursor: pointer;
}

.bo-inv-range {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 3px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.03));
}

.bo-inv-range__btn {
    padding: 0.4rem 0.85rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--color-text-muted);
    cursor: pointer;
}

.bo-inv-range__btn--active {
    background: var(--color-surface);
    color: var(--color-primary);
    box-shadow: var(--elevation-1);
}

.bo-inv-result-count {
    margin: 0 0 var(--space-4);
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-inv-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-inv-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-inv-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-1);
}

.bo-inv-item--attention {
    border-left: 4px solid #EF6C00;
    background: rgba(239, 108, 0, 0.05);
}

.bo-inv-item__amount {
    display: flex;
    align-items: baseline;
    gap: 2px;
    min-width: 4.5rem;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-2, 8px);
    background: rgba(239, 108, 0, 0.08);
}

.bo-inv-item__amount-currency {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #E65100;
}

.bo-inv-item__amount-value {
    font-size: 1.0625rem;
    font-weight: 800;
    color: var(--color-text-strong, var(--color-text));
}

.bo-inv-item__main {
    min-width: 0;
}

.bo-inv-item__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: 2px;
}

.bo-inv-item__number {
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.bo-inv-item__customer {
    font-size: 0.9375rem;
    margin-bottom: 4px;
}

.bo-inv-item__meta {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-inv-item__plate {
    font-weight: 650;
}

.bo-inv-item__dot {
    opacity: 0.5;
}

.bo-inv-item__chevron {
    font-size: 1.25rem;
    color: var(--color-primary);
    opacity: 0.7;
}

.bo-inv-item:hover .bo-inv-item__chevron {
    opacity: 1;
    transform: translateX(2px);
}

.bo-inv-back {
    margin-bottom: var(--space-2);
}

.bo-inv-hero {
    padding: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-inv-hero__top {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-inv-hero__amount {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 6rem;
    padding: var(--space-4);
    border-radius: var(--radius-3, 12px);
    background: rgba(239, 108, 0, 0.1);
    text-align: center;
}

.bo-inv-hero__amount-currency {
    font-size: 1rem;
    font-weight: 700;
    color: #E65100;
}

.bo-inv-hero__amount-value {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1;
}

.bo-inv-hero__amount-sub {
    margin-top: 4px;
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.bo-inv-hero__identity {
    flex: 1;
    min-width: min(100%, 16rem);
}

.bo-inv-hero__chip {
    margin-bottom: var(--space-2);
}

.bo-inv-hero__title {
    margin: 0 0 var(--space-2);
    font-size: 1.5rem;
    font-weight: 750;
}

.bo-inv-hero__meta,
.bo-inv-hero__dates {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.bo-inv-hero__dates {
    margin-top: var(--space-2);
    font-size: 0.8125rem;
}

.bo-inv-hero__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-inv-detail-grid {
    display: grid;
    gap: var(--space-4);
}

@media (min-width: 960px) {
    .bo-inv-detail-grid {
        grid-template-columns: 1.4fr 1fr;
        align-items: start;
    }
}

.bo-inv-detail-card {
    padding: var(--space-5);
}

.bo-inv-detail-card__title {
    margin: 0 0 var(--space-4);
    font-size: 1.0625rem;
    font-weight: 700;
}

.bo-inv-detail-card__empty {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--color-text-muted);
}

.bo-inv-lines {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-5);
}

.bo-inv-lines__head,
.bo-inv-lines__row {
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-2) var(--space-3);
}

.bo-inv-lines__head {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-2);
}

.bo-inv-lines__row {
    border-radius: var(--radius-2, 8px);
    font-size: 0.875rem;
}

.bo-inv-lines__row:nth-child(even) {
    background: rgba(0, 0, 0, 0.02);
}

.bo-inv-lines__desc {
    min-width: 0;
    font-weight: 550;
}

.bo-inv-lines__date,
.bo-inv-lines__mins {
    color: var(--color-text-muted);
    text-align: right;
    white-space: nowrap;
}

.bo-inv-lines__amount {
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.bo-inv-totals {
    margin: 0;
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.bo-inv-totals__row {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-1) 0;
    font-size: 0.9375rem;
}

.bo-inv-totals__row dt {
    margin: 0;
    color: var(--color-text-muted);
}

.bo-inv-totals__row dd {
    margin: 0;
    font-weight: 650;
}

.bo-inv-totals__row--total {
    margin-top: var(--space-2);
    padding-top: var(--space-2);
    border-top: 1px dashed var(--color-border);
    font-size: 1.0625rem;
}

.bo-inv-totals__row--total dd {
    font-weight: 800;
    color: var(--color-text-strong, var(--color-text));
}

.bo-inv-actions-panel__hint {
    margin: 0 0 var(--space-4);
    font-size: 0.9375rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.bo-inv-actions-panel__hint--ok {
    color: #00695C;
}

.bo-inv-actions-panel__hint--warn {
    color: #C62828;
}

.bo-inv-action-buttons {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-inv-action-buttons__danger {
    color: #C62828;
}

.bo-inv-inline-form {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.bo-inv-inline-form__input {
    width: 100%;
    min-height: 4rem;
    resize: vertical;
    margin-bottom: var(--space-3);
}

.bo-inv-inline-form__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
}

.bo-inv-note-box {
    margin-top: var(--space-4);
    padding: var(--space-4);
    border-radius: var(--radius-2, 8px);
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid var(--color-border);
}

.bo-inv-note-box--void {
    background: rgba(198, 40, 40, 0.06);
    border-color: rgba(198, 40, 40, 0.2);
}

.bo-inv-note-box__label {
    margin: 0 0 var(--space-1);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.bo-inv-note-box__text {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.45;
}

@media (max-width: 640px) {
    .bo-inv-lines__head {
        display: none;
    }

    .bo-inv-lines__row {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }

    .bo-inv-lines__desc {
        grid-column: 1 / -1;
    }
}

@media (max-width: 480px) {
    .bo-inv-item {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }

    .bo-inv-item__amount {
        grid-column: 1 / -1;
        width: fit-content;
    }
}

/* Customers list & detail */
.bo-cust {
    gap: var(--space-5);
}

.bo-cust-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-cust-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-cust-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-cust-stats--skeleton {
    grid-template-columns: repeat(2, 1fr);
}

.bo-cust-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    color: inherit;
}

.bo-cust-stat:hover {
    border-color: var(--color-primary);
}

.bo-cust-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-cust-stat--ok { border-left: 4px solid #00897B; }
.bo-cust-stat--muted { border-left: 4px solid #78909C; }
.bo-cust-stat--warn { border-left: 4px solid #F9A825; }

.bo-cust-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-cust-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-cust-card {
    padding: var(--space-5);
}

.bo-cust-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.bo-cust-search__input {
    width: 100%;
    min-width: min(100%, 16rem);
}

.bo-cust-result-count {
    margin: 0 0 var(--space-4);
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-cust-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-cust-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-cust-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-1);
}

.bo-cust-item--attention {
    border-left: 4px solid #F9A825;
    background: rgba(249, 168, 37, 0.06);
}

.bo-cust-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: rgba(21, 101, 192, 0.12);
    font-size: 0.75rem;
    font-weight: 750;
    color: var(--color-primary);
    flex-shrink: 0;
}

.bo-cust-avatar--lg {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 1rem;
}

.bo-cust-item__main {
    min-width: 0;
}

.bo-cust-item__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: 2px;
}

.bo-cust-item__name {
    font-size: 1.0625rem;
    font-weight: 700;
}

.bo-cust-item__contact {
    font-size: 0.875rem;
    color: var(--color-text);
    margin-bottom: 4px;
}

.bo-cust-item__meta {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-cust-item__dot {
    opacity: 0.5;
}

.bo-cust-item__missing,
.bo-cust-item__flag {
    color: var(--color-warning-text, #E65100);
    font-weight: 600;
}

.bo-cust-item__chevron {
    font-size: 1.25rem;
    color: var(--color-primary);
    opacity: 0.7;
}

.bo-cust-item:hover .bo-cust-item__chevron {
    opacity: 1;
    transform: translateX(2px);
}

.bo-cust-back {
    margin-bottom: var(--space-2);
}

.bo-cust-hero {
    padding: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-cust-hero__top {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: flex-start;
    margin-bottom: var(--space-4);
}

.bo-cust-hero__identity {
    flex: 1;
    min-width: min(100%, 14rem);
}

.bo-cust-hero__title {
    margin: var(--space-2) 0;
    font-size: 1.5rem;
    font-weight: 750;
}

.bo-cust-hero__kpis {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-cust-contact-cards {
    display: grid;
    gap: var(--space-3);
}

@media (min-width: 560px) {
    .bo-cust-contact-cards {
        grid-template-columns: 1fr 1fr;
    }
}

.bo-cust-contact-card {
    padding: var(--space-4);
    border-radius: var(--radius-2, 8px);
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid var(--color-border);
}

.bo-cust-contact-card__label {
    display: block;
    margin-bottom: 4px;
    font-size: 0.75rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.bo-cust-contact-card__value {
    font-size: 0.9375rem;
    font-weight: 600;
}

.bo-cust-contact-card__value--empty {
    color: var(--color-text-muted);
    font-weight: 500;
}

.bo-cust-detail-grid {
    display: grid;
    gap: var(--space-4);
}

@media (min-width: 960px) {
    .bo-cust-detail-grid {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

.bo-cust-detail-card {
    padding: var(--space-5);
}

.bo-cust-detail-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.bo-cust-detail-card__title {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
}

.bo-cust-detail-card__subtitle {
    margin: var(--space-1) 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-cust-check {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.9375rem;
    cursor: pointer;
}

.bo-cust-form-row {
    display: grid;
    gap: var(--space-3);
}

@media (min-width: 560px) {
    .bo-cust-form-row {
        grid-template-columns: 1fr 1fr;
    }
}

.bo-form--compact {
    gap: var(--space-3);
}

.bo-cust-add-vehicle {
    margin-bottom: var(--space-5);
    padding: var(--space-4);
    border-radius: var(--radius-2, 8px);
    background: rgba(21, 101, 192, 0.04);
    border: 1px dashed var(--color-border);
}

.bo-cust-vehicle-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-cust-vehicle-item {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-cust-vehicle-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
}

.bo-cust-vehicle-item--inactive {
    opacity: 0.75;
    background: rgba(0, 0, 0, 0.02);
}

.bo-cust-vehicle-item__plate {
    font-weight: 800;
    letter-spacing: 0.04em;
    font-size: 0.9375rem;
}

.bo-cust-vehicle-item__label {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-cust-hero--vehicle {
    text-align: center;
}

.bo-cust-vehicle-hero__plate {
    display: block;
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    margin-bottom: var(--space-2);
}

.bo-cust-vehicle-hero__label {
    margin: 0 0 var(--space-1);
    font-size: 1.0625rem;
}

.bo-cust-vehicle-hero__customer {
    margin: 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-dash-empty--compact {
    padding: var(--space-4) 0;
}

.bo-dash-empty--compact .bo-empty-state__title {
    font-size: 1rem;
}

@media (max-width: 480px) {
    .bo-cust-item {
        grid-template-columns: auto 1fr;
    }

    .bo-cust-item__chevron {
        display: none;
    }

    .bo-cust-vehicle-item {
        grid-template-columns: 1fr auto;
    }

    .bo-cust-vehicle-item__label {
        grid-column: 1 / -1;
    }
}

/* ===================================================================== */
/* Service templates (list + detail with checkpoint management)          */
/* ===================================================================== */

.bo-tpl-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

/* --- Stats --- */
.bo-tpl-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-tpl-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-tpl-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    color: inherit;
}

.bo-tpl-stat--static {
    cursor: default;
}

.bo-tpl-stat:not(.bo-tpl-stat--static):hover {
    border-color: var(--color-primary);
}

.bo-tpl-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-tpl-stat--points { border-left: 4px solid #1565C0; }
.bo-tpl-stat--hours { border-left: 4px solid #00897B; }
.bo-tpl-stat--warn { border-left: 4px solid #F9A825; }

.bo-tpl-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-tpl-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-tpl-stats--skeleton {
    margin-bottom: 0;
}

/* --- List card / toolbar --- */
.bo-tpl-card {
    margin-top: var(--space-4);
    padding: var(--space-5);
}

.bo-tpl-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
    margin-bottom: var(--space-4);
}

.bo-tpl-search {
    flex: 1 1 16rem;
    min-width: 0;
}

.bo-tpl-search__input {
    width: 100%;
}

.bo-tpl-result-count {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-muted);
    margin: 0 0 var(--space-3);
}

/* --- Template grid + cards --- */
.bo-tpl-grid {
    display: grid;
    gap: var(--space-4);
}

@media (min-width: 720px) {
    .bo-tpl-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.bo-tpl-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--elevation-1);
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard),
                transform var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-tpl-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-2, var(--elevation-1));
    transform: translateY(-2px);
}

.bo-tpl-item--attention {
    border-left: 4px solid #F9A825;
    background: rgba(249, 168, 37, 0.06);
}

.bo-tpl-item__head {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

.bo-tpl-item__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-2, 8px);
    background: rgba(21, 101, 192, 0.12);
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-primary);
    flex-shrink: 0;
}

.bo-tpl-item__heading {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bo-tpl-item__name {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bo-tpl-item__points {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-tpl-item__points-flag {
    color: #B26A00;
    font-weight: 600;
}

.bo-tpl-item__metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-2);
    padding: var(--space-3) 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.bo-tpl-metric {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bo-tpl-metric__value {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
}

.bo-tpl-metric__label {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    font-weight: 600;
}

.bo-tpl-item__cta {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-primary);
    opacity: 0.85;
}

/* --- Detail --- */
.bo-tpl-back {
    margin-bottom: var(--space-2);
}

.bo-tpl-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-tpl-hero__identity {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
}

.bo-tpl-hero__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: var(--radius-3, 12px);
    background: rgba(21, 101, 192, 0.12);
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--color-primary);
    flex-shrink: 0;
}

.bo-tpl-hero__title {
    font-size: 1.5rem;
    font-weight: 750;
    line-height: 1.15;
    margin: 0;
}

.bo-tpl-hero__meta {
    margin: 4px 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-tpl-dot {
    margin: 0 0.4em;
    opacity: 0.6;
}

.bo-tpl-detail-grid {
    display: grid;
    gap: var(--space-4);
    align-items: start;
}

@media (min-width: 960px) {
    .bo-tpl-detail-grid {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    }
}

.bo-tpl-detail-card {
    padding: var(--space-5);
}

.bo-tpl-detail-card__title {
    font-size: 1.0625rem;
    font-weight: 700;
    margin: 0 0 var(--space-4);
}

.bo-tpl-detail-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.bo-tpl-detail-card__header .bo-tpl-detail-card__title {
    margin-bottom: 2px;
}

.bo-tpl-detail-card__subtitle {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    max-width: 36ch;
}

.bo-tpl-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
}

@media (max-width: 520px) {
    .bo-tpl-form-row {
        grid-template-columns: 1fr;
    }
}

/* --- Checkpoints --- */
.bo-tpl-checkpoints__count {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-primary);
    background: rgba(21, 101, 192, 0.1);
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
}

.bo-tpl-checkpoint-list {
    list-style: none;
    margin: 0 0 var(--space-4);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-tpl-checkpoint {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
}

.bo-tpl-checkpoint--inactive {
    opacity: 0.6;
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.02));
}

.bo-tpl-checkpoint__index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: rgba(21, 101, 192, 0.12);
    color: var(--color-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    flex-shrink: 0;
}

.bo-tpl-checkpoint__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.bo-tpl-checkpoint__title {
    font-weight: 650;
    line-height: 1.3;
}

.bo-tpl-checkpoint__guidance {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    line-height: 1.4;
}

.bo-tpl-checkpoint__actions {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.bo-tpl-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.875rem;
    height: 1.875rem;
    border: 1px solid transparent;
    border-radius: var(--radius-2, 8px);
    background: transparent;
    color: var(--color-text-muted);
    cursor: pointer;
    font-size: 0.9375rem;
    line-height: 1;
    transition: background var(--motion-duration-fast) var(--motion-ease-standard),
                color var(--motion-duration-fast) var(--motion-ease-standard),
                border-color var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-tpl-icon-btn:hover:not(:disabled) {
    background: rgba(21, 101, 192, 0.08);
    border-color: var(--color-border);
    color: var(--color-primary);
}

.bo-tpl-icon-btn--danger:hover:not(:disabled) {
    background: rgba(198, 40, 40, 0.08);
    color: #C62828;
}

.bo-tpl-icon-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.bo-tpl-checkpoint__edit {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-tpl-checkpoint__guidance-input {
    resize: vertical;
    min-height: 2.75rem;
    font-family: inherit;
}

.bo-tpl-checkpoint__edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
}

.bo-tpl-add-checkpoint {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface-muted, rgba(21, 101, 192, 0.02));
}

.bo-tpl-add-checkpoint__title {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.bo-tpl-add-checkpoint .staff-btn {
    align-self: flex-start;
}

@media (max-width: 520px) {
    .bo-tpl-item__metrics {
        grid-template-columns: 1fr;
        gap: var(--space-1, 4px);
    }

    .bo-tpl-checkpoint {
        flex-wrap: wrap;
    }

    .bo-tpl-checkpoint__actions {
        width: 100%;
        justify-content: flex-end;
    }
}

/* ===================================================================== */
/* Inspection checklist (overview + section editor)                     */
/* ===================================================================== */

.bo-chk-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

/* --- Stats --- */
.bo-chk-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-chk-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-chk-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
}

.bo-chk-stat--sections { border-left: 4px solid #1565C0; }
.bo-chk-stat--items { border-left: 4px solid #00897B; }
.bo-chk-stat--muted { border-left: 4px solid #78909C; }

.bo-chk-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-chk-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

/* --- Rating legend --- */
.bo-chk-legend {
    margin-top: var(--space-4);
    padding: var(--space-4) var(--space-5);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.bo-chk-legend__title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}

.bo-chk-legend__text {
    margin: 2px 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-chk-legend__scale {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-chk-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 650;
    border: 1px solid transparent;
}

.bo-chk-rating__glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    font-size: 0.6875rem;
    font-weight: 800;
    color: #fff;
}

.bo-chk-rating--ok {
    background: rgba(0, 137, 123, 0.1);
    border-color: rgba(0, 137, 123, 0.3);
    color: #00695C;
}
.bo-chk-rating--ok .bo-chk-rating__glyph { background: #00897B; }

.bo-chk-rating--warn {
    background: rgba(249, 168, 37, 0.12);
    border-color: rgba(249, 168, 37, 0.35);
    color: #B26A00;
}
.bo-chk-rating--warn .bo-chk-rating__glyph { background: #F9A825; }

.bo-chk-rating--danger {
    background: rgba(198, 40, 40, 0.1);
    border-color: rgba(198, 40, 40, 0.3);
    color: #C62828;
}
.bo-chk-rating--danger .bo-chk-rating__glyph { background: #C62828; }

.bo-chk-rating--neutral {
    background: rgba(120, 144, 156, 0.12);
    border-color: rgba(120, 144, 156, 0.3);
    color: #546E7A;
}
.bo-chk-rating--neutral .bo-chk-rating__glyph { background: #78909C; }

.bo-chk-rating--sm {
    padding: 0.2rem 0.5rem;
    font-size: 0.6875rem;
}

.bo-chk-rating--sm .bo-chk-rating__glyph {
    width: 0.9rem;
    height: 0.9rem;
    font-size: 0.5625rem;
}

/* --- Section cards (overview) --- */
.bo-chk-sections {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin-top: var(--space-4);
}

.bo-chk-section {
    padding: var(--space-4) var(--space-5);
}

.bo-chk-section__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.bo-chk-section__heading {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

.bo-chk-section__order {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-2, 8px);
    background: rgba(21, 101, 192, 0.12);
    color: var(--color-primary);
    font-weight: 800;
    flex-shrink: 0;
}

.bo-chk-section__name {
    font-size: 1.0625rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.25;
}

.bo-chk-section__count {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-chk-section__count-muted {
    opacity: 0.75;
}

.bo-chk-section__actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.bo-chk-section__edit {
    margin-left: var(--space-2);
}

.bo-chk-section__empty {
    margin: var(--space-3) 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    font-style: italic;
}

.bo-chk-preview {
    list-style: none;
    margin: var(--space-3) 0 0;
    padding: var(--space-3) 0 0;
    border-top: 1px solid var(--color-border);
    display: grid;
    gap: var(--space-2);
}

@media (min-width: 640px) {
    .bo-chk-preview {
        grid-template-columns: 1fr 1fr;
    }
}

.bo-chk-preview__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.875rem;
    min-width: 0;
}

.bo-chk-preview__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--color-primary);
    flex-shrink: 0;
    opacity: 0.55;
}

.bo-chk-preview__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bo-chk-preview__item--inactive {
    opacity: 0.5;
}

.bo-chk-preview__flag {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    font-weight: 600;
}

.bo-chk-preview__more {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    font-weight: 600;
}

/* --- Add section / item --- */
.bo-chk-add,
.bo-chk-add-item {
    margin-top: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border: 1px dashed var(--color-border);
    background: var(--color-surface-muted, rgba(21, 101, 192, 0.02));
}

.bo-chk-add-item {
    border-radius: var(--radius-2, 8px);
    margin-top: var(--space-2);
}

.bo-chk-add__title,
.bo-chk-add-item__title {
    margin: 0 0 var(--space-2);
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.bo-chk-add__row,
.bo-chk-add-item__row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-chk-add__input,
.bo-chk-add-item__row .bo-input {
    flex: 1 1 16rem;
    min-width: 0;
}

/* --- Section editor --- */
.bo-chk-back {
    margin-bottom: var(--space-2);
}

.bo-chk-hero {
    padding: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-chk-hero__identity {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
}

.bo-chk-hero__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: var(--radius-3, 12px);
    background: rgba(21, 101, 192, 0.12);
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--color-primary);
    flex-shrink: 0;
}

.bo-chk-hero__title {
    font-size: 1.5rem;
    font-weight: 750;
    line-height: 1.15;
    margin: 0;
}

.bo-chk-hero__meta {
    margin: 4px 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-chk-dot {
    margin: 0 0.4em;
    opacity: 0.6;
}

.bo-chk-detail-grid {
    display: grid;
    gap: var(--space-4);
    align-items: start;
}

@media (min-width: 960px) {
    .bo-chk-detail-grid {
        grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    }
}

.bo-chk-detail-card {
    padding: var(--space-5);
}

.bo-chk-detail-card__title {
    font-size: 1.0625rem;
    font-weight: 700;
    margin: 0 0 var(--space-4);
}

.bo-chk-detail-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.bo-chk-detail-card__header .bo-chk-detail-card__title {
    margin-bottom: 2px;
}

.bo-chk-detail-card__subtitle {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    max-width: 42ch;
}

.bo-chk-section-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.bo-chk-items__count {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-primary);
    background: rgba(21, 101, 192, 0.1);
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
}

.bo-chk-item-list {
    list-style: none;
    margin: 0 0 var(--space-4);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-chk-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
}

.bo-chk-item--inactive {
    opacity: 0.6;
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.02));
}

.bo-chk-item__index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: rgba(21, 101, 192, 0.12);
    color: var(--color-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    flex-shrink: 0;
}

.bo-chk-item__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-chk-item__name {
    font-weight: 650;
    line-height: 1.3;
}

.bo-chk-item__preview {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.bo-chk-item__usage {
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.bo-chk-item__actions {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.bo-chk-item__edit {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-chk-item__edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
}

@media (max-width: 520px) {
    .bo-chk-item {
        flex-wrap: wrap;
    }

    .bo-chk-item__actions {
        width: 100%;
        justify-content: flex-end;
    }

    .bo-chk-legend {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* --- Checklists overview (top level) --- */
.bo-chk-cklist-grid {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

@media (min-width: 720px) {
    .bo-chk-cklist-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.bo-chk-cklist {
    position: relative;
    padding: 0;
    overflow: hidden;
}

.bo-chk-cklist__actions {
    position: absolute;
    top: var(--space-2);
    right: var(--space-2);
    display: flex;
    gap: 2px;
    z-index: 1;
}

.bo-chk-cklist__link {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    padding-right: 7rem;
    text-decoration: none;
    color: inherit;
    transition: background var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-chk-cklist__link:hover {
    background: rgba(21, 101, 192, 0.03);
}

.bo-chk-cklist__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: var(--radius-3, 12px);
    background: rgba(21, 101, 192, 0.12);
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--color-primary);
    flex-shrink: 0;
}

.bo-chk-cklist__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.bo-chk-cklist__name {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bo-chk-cklist__meta {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-chk-cklist__chevron {
    color: var(--color-primary);
    font-weight: 700;
    opacity: 0;
    transition: opacity var(--motion-duration-fast) var(--motion-ease-standard),
                transform var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-chk-cklist__link:hover .bo-chk-cklist__chevron {
    opacity: 1;
    transform: translateX(2px);
}

/* --- Checklist rename disclosure --- */
.bo-chk-rename {
    flex-shrink: 0;
}

.bo-chk-rename > summary {
    list-style: none;
    cursor: pointer;
}

.bo-chk-rename > summary::-webkit-details-marker {
    display: none;
}

.bo-chk-rename__body {
    margin-top: var(--space-3);
    min-width: min(20rem, 70vw);
}

@media (max-width: 640px) {
    .bo-chk-cklist__chevron {
        display: none;
    }
}

/* ===================================================================== */
/* Inspections (list + create + execute)                                 */
/* ===================================================================== */

.bo-insp-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-insp-back {
    margin-bottom: var(--space-2);
}

/* --- Stats --- */
.bo-insp-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3);
}

.bo-insp-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    color: inherit;
}

.bo-insp-stat:hover {
    border-color: var(--color-primary);
}

.bo-insp-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-insp-stat--ok { border-left: 4px solid #00897B; }
.bo-insp-stat--warn { border-left: 4px solid #F9A825; }

.bo-insp-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-insp-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

/* --- List --- */
.bo-insp-card {
    margin-top: var(--space-4);
    padding: var(--space-5);
}

.bo-insp-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
    margin-bottom: var(--space-4);
}

.bo-insp-search {
    flex: 1 1 16rem;
    min-width: 0;
}

.bo-insp-search__input {
    width: 100%;
}

.bo-insp-result-count {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-muted);
    margin: 0 0 var(--space-3);
}

.bo-insp-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-insp-item {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-insp-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-1);
}

.bo-insp-item__plate-box {
    flex-shrink: 0;
}

.bo-insp-item__plate {
    display: inline-block;
    padding: 0.3rem 0.55rem;
    border-radius: 6px;
    background: #1f2937;
    color: #fff;
    font-weight: 800;
    letter-spacing: 0.06em;
    font-size: 0.8125rem;
    white-space: nowrap;
}

.bo-insp-item__main {
    min-width: 0;
}

.bo-insp-item__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.bo-insp-item__customer {
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bo-insp-item__meta {
    margin-top: 2px;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.bo-insp-item__dot {
    opacity: 0.6;
}

.bo-insp-item__findings {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.bo-insp-item__chevron {
    color: var(--color-primary);
    font-weight: 700;
    opacity: 0;
    transition: opacity var(--motion-duration-fast) var(--motion-ease-standard),
                transform var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-insp-item:hover .bo-insp-item__chevron {
    opacity: 1;
    transform: translateX(2px);
}

@media (max-width: 640px) {
    .bo-insp-item {
        grid-template-columns: auto 1fr;
    }

    .bo-insp-item__findings {
        grid-column: 1 / -1;
    }

    .bo-insp-item__chevron {
        display: none;
    }
}

/* --- Create form --- */
.bo-insp-create {
    padding: var(--space-5);
    max-width: 40rem;
}

.bo-insp-create__warning {
    margin-bottom: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-2, 8px);
    background: rgba(249, 168, 37, 0.1);
    border: 1px solid rgba(249, 168, 37, 0.35);
    font-size: 0.875rem;
}

.bo-insp-create__warning p {
    margin: 0;
}

.bo-insp-create__warning p + p {
    margin-top: var(--space-2);
}

.bo-insp-create__hint {
    margin: var(--space-1, 4px) 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

/* --- Detail hero + progress --- */
.bo-insp-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-5);
    margin-bottom: var(--space-3);
}

.bo-insp-hero__identity {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
}

.bo-insp-hero__plate {
    display: inline-block;
    padding: 0.4rem 0.7rem;
    border-radius: 8px;
    background: #1f2937;
    color: #fff;
    font-weight: 800;
    letter-spacing: 0.08em;
    font-size: 1.125rem;
    white-space: nowrap;
    flex-shrink: 0;
}

.bo-insp-hero__title {
    font-size: 1.375rem;
    font-weight: 750;
    line-height: 1.15;
    margin: 0;
}

.bo-insp-hero__meta {
    margin: 4px 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-insp-progress {
    padding: var(--space-4) var(--space-5);
    margin-bottom: var(--space-3);
}

.bo-insp-progress__bar-wrap {
    height: 0.5rem;
    border-radius: 999px;
    background: var(--color-border);
    overflow: hidden;
}

.bo-insp-progress__bar {
    height: 100%;
    border-radius: 999px;
    background: var(--color-primary);
    transition: width var(--motion-duration-standard, 200ms) var(--motion-ease-standard);
}

.bo-insp-progress__counts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-top: var(--space-3);
}

.bo-insp-progress__label {
    font-size: 0.875rem;
    font-weight: 700;
}

.bo-insp-summary {
    display: flex;
    gap: 4px;
}

/* --- Topics + rows --- */
.bo-insp-topic {
    padding: var(--space-4) var(--space-5);
    margin-bottom: var(--space-3);
}

.bo-insp-topic__title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 var(--space-3);
}

.bo-insp-rows {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-insp-row {
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
}

.bo-insp-row--pending {
    border-left: 3px solid var(--color-border);
}

.bo-insp-row__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.bo-insp-row__name {
    font-weight: 650;
    min-width: 0;
}

.bo-insp-row__pending-tag {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    font-style: italic;
}

.bo-insp-row__notes {
    margin-top: var(--space-2);
    width: 100%;
}

.bo-insp-row__notes-ro {
    margin: var(--space-2) 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    padding-left: var(--space-3);
    border-left: 2px solid var(--color-border);
}

/* --- Rating buttons --- */
.bo-insp-ratings {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    flex-shrink: 0;
}

.bo-insp-rating-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-muted);
    font-family: inherit;
    font-size: 0.75rem;
    font-weight: 650;
    cursor: pointer;
    transition: background var(--motion-duration-fast) var(--motion-ease-standard),
                border-color var(--motion-duration-fast) var(--motion-ease-standard),
                color var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-insp-rating-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.bo-insp-rating-btn__glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: currentColor;
    color: #fff;
    font-size: 0.625rem;
    font-weight: 800;
}

.bo-insp-rating-btn--ok:hover:not(:disabled),
.bo-insp-rating-btn--ok.bo-insp-rating-btn--on {
    background: rgba(0, 137, 123, 0.12);
    border-color: #00897B;
    color: #00695C;
}

.bo-insp-rating-btn--warn:hover:not(:disabled),
.bo-insp-rating-btn--warn.bo-insp-rating-btn--on {
    background: rgba(249, 168, 37, 0.14);
    border-color: #F9A825;
    color: #B26A00;
}

.bo-insp-rating-btn--danger:hover:not(:disabled),
.bo-insp-rating-btn--danger.bo-insp-rating-btn--on {
    background: rgba(198, 40, 40, 0.12);
    border-color: #C62828;
    color: #C62828;
}

.bo-insp-rating-btn--neutral:hover:not(:disabled),
.bo-insp-rating-btn--neutral.bo-insp-rating-btn--on {
    background: rgba(120, 144, 156, 0.14);
    border-color: #78909C;
    color: #546E7A;
}

.bo-insp-rating-btn--on {
    font-weight: 750;
}

@media (max-width: 560px) {
    .bo-insp-row__head {
        flex-direction: column;
        align-items: flex-start;
    }

    .bo-insp-rating-btn__label {
        display: none;
    }

    .bo-insp-ratings {
        width: 100%;
    }
}

/* --- Finalize bar --- */
.bo-insp-finalize {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
}

.bo-insp-finalize__title {
    margin: 0;
    font-weight: 700;
}

.bo-insp-finalize__hint {
    margin: 2px 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

/* ============================================================
   Work plans (offertes) — list & detail
   ============================================================ */
.bo-wp {
    gap: var(--space-5);
}

.bo-wp-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-wp-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 720px) {
    .bo-wp-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.bo-wp-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-border);
    border-radius: var(--radius-3, 12px);
    background: var(--color-surface);
    box-shadow: var(--elevation-1);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    color: inherit;
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-wp-stat:hover {
    border-color: var(--color-primary);
}

.bo-wp-stat--active {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.bo-wp-stat--neutral { border-left-color: #78909C; }
.bo-wp-stat--warn { border-left-color: #F9A825; }
.bo-wp-stat--ok { border-left-color: #00897B; }

.bo-wp-stat__value {
    font-size: 1.75rem;
    font-weight: 750;
    line-height: 1.1;
}

.bo-wp-stat__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.bo-wp-card {
    padding: var(--space-5);
}

.bo-wp-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.bo-wp-search {
    flex: 1;
    min-width: min(100%, 16rem);
}

.bo-wp-search__input {
    width: 100%;
}

.bo-wp-check {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
    cursor: pointer;
}

.bo-wp-result-count {
    margin: 0 0 var(--space-4);
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.bo-wp-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bo-wp-item {
    position: relative;
    display: flex;
    align-items: stretch;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2, 8px);
    background: var(--color-surface);
    transition: border-color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard),
                box-shadow var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-wp-item:hover {
    border-color: var(--color-primary);
    background: rgba(21, 101, 192, 0.03);
    box-shadow: var(--elevation-1);
}

.bo-wp-item__link {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-4);
    flex: 1;
    min-width: 0;
    padding: var(--space-4);
    text-decoration: none;
    color: inherit;
}

.bo-wp-item__plate-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 4.75rem;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-2, 8px);
    background: rgba(21, 101, 192, 0.08);
}

.bo-wp-item__plate {
    font-weight: 700;
    letter-spacing: 0.02em;
}

.bo-wp-item__rev {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.bo-wp-item__main {
    min-width: 0;
}

.bo-wp-item__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: 2px;
}

.bo-wp-item__customer {
    font-size: 0.9375rem;
    font-weight: 650;
}

.bo-wp-item__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-wp-item__dot {
    opacity: 0.5;
}

.bo-wp-item__amount {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    white-space: nowrap;
}

.bo-wp-item__amount-value {
    font-size: 1.0625rem;
    font-weight: 800;
    color: var(--color-text-strong, var(--color-text));
}

.bo-wp-item__amount-label {
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.bo-wp-item__pdf {
    display: flex;
    align-items: center;
    padding: 0 var(--space-4);
    border-left: 1px solid var(--color-border);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-decoration: none;
    color: var(--color-text-muted);
    transition: color var(--motion-duration-fast) var(--motion-ease-standard),
                background var(--motion-duration-fast) var(--motion-ease-standard);
}

.bo-wp-item__pdf:hover {
    color: var(--color-primary);
    background: rgba(21, 101, 192, 0.06);
}

/* Detail */
.bo-wp-back {
    margin-bottom: var(--space-2);
}

.bo-wp-hero {
    padding: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-wp-hero__top {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-5);
    margin-bottom: var(--space-4);
}

.bo-wp-hero__amount {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 7rem;
    padding: var(--space-4);
    border-radius: var(--radius-3, 12px);
    background: rgba(21, 101, 192, 0.1);
    text-align: center;
}

.bo-wp-hero__amount-currency {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-primary);
}

.bo-wp-hero__amount-value {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1;
}

.bo-wp-hero__amount-sub {
    margin-top: 4px;
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.bo-wp-hero__identity {
    flex: 1;
    min-width: min(100%, 16rem);
}

.bo-wp-hero__chip {
    margin-bottom: var(--space-2);
}

.bo-wp-hero__title {
    margin: 0 0 var(--space-2);
    font-size: 1.5rem;
    font-weight: 750;
    letter-spacing: 0.02em;
}

.bo-wp-hero__meta,
.bo-wp-hero__dates {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.bo-wp-hero__dates {
    margin-top: var(--space-2);
    font-size: 0.8125rem;
}

.bo-wp-hero__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.bo-wp-detail-grid {
    display: grid;
    gap: var(--space-4);
}

@media (min-width: 960px) {
    .bo-wp-detail-grid {
        grid-template-columns: 1.4fr 1fr;
        align-items: start;
    }
}

.bo-wp-detail-card {
    padding: var(--space-5);
}

.bo-wp-detail-card__title {
    margin: 0 0 var(--space-4);
    font-size: 1.0625rem;
    font-weight: 700;
}

.bo-wp-detail-card__empty {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--color-text-muted);
}

.bo-wp-lines {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-5);
}

.bo-wp-lines__head,
.bo-wp-lines__row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: var(--space-3);
    align-items: start;
    padding: var(--space-2) var(--space-3);
}

.bo-wp-lines__head {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-2);
}

.bo-wp-lines__row {
    border-radius: var(--radius-2, 8px);
    font-size: 0.875rem;
}

.bo-wp-lines__row:nth-child(even) {
    background: rgba(0, 0, 0, 0.02);
}

.bo-wp-lines__desc {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bo-wp-lines__desc-text {
    font-weight: 600;
}

.bo-wp-lines__notes {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    line-height: 1.4;
}

.bo-wp-lines__hours,
.bo-wp-lines__price {
    text-align: right;
    white-space: nowrap;
    padding-top: 1px;
}

.bo-wp-lines__price {
    font-weight: 700;
}

.bo-wp-totals {
    margin: 0;
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.bo-wp-totals__row {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-1) 0;
    font-size: 0.9375rem;
}

.bo-wp-totals__row dt {
    margin: 0;
    color: var(--color-text-muted);
}

.bo-wp-totals__row dd {
    margin: 0;
    font-weight: 650;
}

.bo-wp-totals__row--total {
    margin-top: var(--space-2);
    padding-top: var(--space-2);
    border-top: 1px dashed var(--color-border);
    font-size: 1.0625rem;
}

.bo-wp-totals__row--total dd {
    font-weight: 800;
    color: var(--color-text-strong, var(--color-text));
}

/* Timeline */
.bo-wp-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.bo-wp-timeline__item {
    position: relative;
    display: flex;
    gap: var(--space-3);
    padding-bottom: var(--space-4);
    padding-left: var(--space-1);
}

.bo-wp-timeline__item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 16px;
    bottom: 0;
    width: 2px;
    background: var(--color-border);
}

.bo-wp-timeline__item:last-child {
    padding-bottom: 0;
}

.bo-wp-timeline__dot {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    margin-top: 2px;
    border-radius: 50%;
    border: 2px solid var(--color-border);
    background: var(--color-surface);
}

.bo-wp-timeline__item--done .bo-wp-timeline__dot {
    border-color: #00897B;
    background: #00897B;
}

.bo-wp-timeline__item--pending .bo-wp-timeline__dot {
    border-color: var(--color-border);
    background: var(--color-surface);
}

.bo-wp-timeline__item--void .bo-wp-timeline__dot {
    border-color: #C62828;
    background: #C62828;
}

.bo-wp-timeline__body {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.bo-wp-timeline__label {
    font-size: 0.9375rem;
    font-weight: 650;
}

.bo-wp-timeline__time {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.bo-wp-timeline__item--pending .bo-wp-timeline__label {
    color: var(--color-text-muted);
    font-weight: 600;
}
