@import '_content/Blazor.SignaturePad/Blazor.SignaturePad.g22u5lm4z9.bundle.scp.css';

/* /Components/Common/BaseSidePanel.razor.rz.scp.css */
/* BaseSidePanel - Blueprint .hav-panel classes handle layout (100dvh, flex column, scroll region, pinned footer). Scoped CSS below only adds mobile width override and grid alignment. */

/* Ensure MudGrid inside panels aligns content to top */
[b-2ncsffkjo5] .mud-grid {
    align-content: flex-start;
}

/* Mobile: full-width side panels below 600px.
   MudDrawer applies width as an inline style, so the override uses !important. */
@media (max-width: 600px) {
    [b-2ncsffkjo5] .mud-drawer.havto-side-panel,
    [b-2ncsffkjo5] .mud-drawer.havto-side-panel-wide,
    [b-2ncsffkjo5] .mud-drawer.havto-side-panel-standard {
        width: 100% !important;
    }
}
/* /Components/Common/BulkActionsPanel.razor.rz.scp.css */
/* (c) 2026 Havto Limited. All rights reserved. */

.bulk-action-card[b-mgu5entdqd] {
    cursor: pointer;
}
/* /Components/Common/ErrorBoundary.razor.rz.scp.css */
.error-boundary-content[b-coqyq4tgbt] {
 background: var(--hav-panel);
 border: 1px solid color-mix(in srgb, var(--hav-error) 20%, transparent);
 max-width: 600px;
 }

 .error-details[b-coqyq4tgbt] {
 background: var(--hav-surface-raised);
 border-radius: 0;
 max-height: 200px;
 overflow-y: auto;
 font-size: 0.75rem;
 }
/* /Components/Dialogs/Compliance/CompareVersionsDialog.razor.rz.scp.css */
/* Intellectual Property Declaration - (c) 2026 Havto Limited. All rights reserved. */

.compare-versions-content-paper[b-906fqt85sg] {
    max-height: 400px;
    overflow-y: auto;
    background-color: var(--hav-surface-raised);
}

.compare-versions-content[b-906fqt85sg] {
    white-space: pre-wrap;
    font-family: var(--hav-font-mono);
}

.compare-versions-content--compact[b-906fqt85sg] {
    font-size: 0.8em;
}
/* /Components/Dialogs/Shared/DownloadAppDialog.razor.rz.scp.css */
.download-app-features[b-op8zf3e7xa] {
    background: var(--havto-brand-gradient);
}

.download-app-features :deep(.mud-typography)[b-op8zf3e7xa],
.download-app-features :deep(.mud-icon-root)[b-op8zf3e7xa] {
    color: var(--havto-landing-text-subtle-on-dark);
}

.download-app-features-title[b-op8zf3e7xa] {
    color: var(--havto-landing-text-on-dark);
}

.download-platform-card[b-op8zf3e7xa] {
 cursor: pointer;
 transition: border-color 0.3s ease;
 }

 [b-op8zf3e7xa] .download-platform-card:hover {
 border-color: var(--hav-accent) !important;
 box-shadow: none;
 }
/* /Components/Layout/AuthLayout.razor.rz.scp.css */
.auth-layout-wrapper[b-0dshgem6na] { min-height: 100vh; }
.auth-layout-wrapper[b-0dshgem6na]  .mud-layout { min-height: 100vh; }
.auth-layout-wrapper[b-0dshgem6na]  .mud-main-content { padding: 0; }
/* /Components/Layout/CrossTabSessionEndedSurface.razor.rz.scp.css */
/* S11.66 / HAV2306: a session that changed elsewhere is a full-surface layer over the
   stale view - never a band, never a silent redirect. The stale page stays mounted
   inert behind it so the reader can see what they were doing. */

.hav-session-end[b-a93lnp9lab] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    background: color-mix(in srgb, var(--hav-ground) 82%, transparent);
}

.hav-session-end__card[b-a93lnp9lab] {
    background: var(--hav-panel);
    border: 1px solid var(--hav-line);
    max-width: 480px;
    width: 100%;
    box-sizing: border-box;
}

.hav-session-end__card:focus[b-a93lnp9lab] {
    outline: 2px solid var(--hav-accent);
    outline-offset: 2px;
}

.hav-session-end__title[b-a93lnp9lab] {
    color: var(--hav-text);
}

.hav-session-end__cause[b-a93lnp9lab] {
    color: var(--hav-text);
}

.hav-session-end__drafts[b-a93lnp9lab] {
    color: var(--hav-text-muted);
}
/* /Components/Layout/ExternalLayout.razor.rz.scp.css */
.external-layout-wrapper[b-er0qcq504j] { min-height: 100vh; }
.external-layout-wrapper[b-er0qcq504j]  .mud-layout { min-height: 100vh; }
.external-layout-wrapper[b-er0qcq504j]  .mud-main-content { padding: 0; }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* App-bar action icons (including the profile avatar) are styled by the global
   blueprint alignment CSS; no component-scoped overrides are needed. */
/* /Components/Layout/MarketingLayout.razor.rz.scp.css */
/* Marketing layout styles have moved to wwwroot/css/blueprint.css
   so the nav, toolbar, button and theme-toggle overrides can target
   MudBlazor child components that are not reachable via scoped CSS. */
/* /Components/Layout/MenuSectionRenderer.razor.rz.scp.css */
.menu-section-dimmed[b-fs2kr5jwca] {
    opacity: 0.45;
    transition: opacity 0.15s ease;
}
/* /Components/Layout/OrganizationSelector.razor.rz.scp.css */
.organization-selector[b-givnc0w5dd] {
 display: flex;
 align-items: center;
 min-width: 240px;
 }

 .org-selector-locked-activator[b-givnc0w5dd] {
 display: inline-block;
 }

 .current-org-display[b-givnc0w5dd] {
 display: flex;
 align-items: center;
 padding: var(--hav-space-2) var(--hav-space-4);
 border-radius: 0;
 transition: background-color 0.2s;
 cursor: pointer;
 min-width: 220px;
 }/* removed hover fill: .current-org-display:hover */

 .current-org-display.locked[b-givnc0w5dd] {
 cursor: not-allowed;
 background-color: var(--hav-surface-raised);
 border: 1px solid var(--hav-line);
 opacity: 0.85;
 /* Hover must reach this element for MudTooltip; clicks are no-ops via handler */
 }.current-org-display.locked:hover[b-givnc0w5dd] {
  /* Ensure no hover effect */
}

 .lock-icon[b-givnc0w5dd] {
 color: var(--hav-text-muted);
 }

 .org-name[b-givnc0w5dd] {
 font-weight: 500;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
 max-width: 200px;
 }

 .current-org-display.locked .org-name[b-givnc0w5dd] {
 color: var(--hav-text-muted);
 }

 .org-menu-item[b-givnc0w5dd] {
 min-height: 48px;
 padding: var(--hav-space-2) 0;
 width: 100%;
 }

 .org-menu-name[b-givnc0w5dd] {
 font-weight: 500;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
 }

 [b-givnc0w5dd] .selected-org {
 background-color: color-mix(in srgb, var(--hav-accent) 12%, transparent) !important;
 }

 .no-organizations-state[b-givnc0w5dd] {
 padding: var(--hav-space-2) var(--hav-space-4);
 opacity: 0.7;
 }

 /* Responsive adjustments */
 @media (max-width: 768px) {
 .organization-selector[b-givnc0w5dd] {
 min-width: 168px;
 }

 .current-org-display[b-givnc0w5dd] {
 min-width: 150px;
 padding: var(--hav-space-2) var(--hav-space-3);
 }

 .org-name[b-givnc0w5dd] {
 max-width: 120px;
 }
 }
/* /Components/Layout/SessionConnectivityBanner.razor.rz.scp.css */
.hav-conn-banner__body[b-uowt3lrx8u] {
    flex-grow: 1;
    min-width: min(260px, 100%);
}

.hav-conn-banner__actions[b-uowt3lrx8u] {
    flex-shrink: 0;
}
/* /Components/Layout/SessionUnlockDialog.razor.rz.scp.css */
/* SessionUnlockDialog scoped CSS -- blueprint-specific overrides for the recovery content.
   The global .mud-dialog shell cannot reach content buttons/inputs, so this file applies
   the Barlow type ramp, square corners, hairline inputs, and non-uppercase button labels. */

.session-recovery__content[b-m2tva3tckk] {
    /* Scoped wrapper only; layout and padding come from MudStack and MudDialog ContentClass. */
}

/* Icon -- uses the steel accent so it stays accessible in both light and dark modes.
   The warning amber base fails as text (HAV2065); the icon shape + title carry the meaning. */
.session-recovery__content[b-m2tva3tckk]  .session-recovery__icon {
    color: var(--hav-accent) !important;
    width: 40px;
    height: 40px;
    font-size: 40px;
}

/* Title -- Barlow Condensed, uppercase, 20px, as specified for dialog headings. */
.session-recovery__content[b-m2tva3tckk]  .session-recovery__title {
    font-family: var(--hav-font-head) !important;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-transform: uppercase !important;
    color: var(--hav-text);
    margin: 0;
}

/* Message -- Barlow body, 14px, muted, centered. */
.session-recovery__content[b-m2tva3tckk]  .session-recovery__message {
    font-family: var(--hav-font-body) !important;
    font-size: 14px;
    line-height: 1.4;
    color: var(--hav-text-muted);
    margin: 0;
}

/* Inline error alert -- hairline border, transparent surface, error text. */
.session-recovery__content[b-m2tva3tckk]  .session-recovery__alert.mud-alert {
    border-radius: 0 !important;
    border: 1px solid var(--hav-error);
    background: transparent !important;
    color: var(--hav-error-text) !important;
}

/* Inputs -- solid surface so the floating label masks the top border. */
.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input {
    background: var(--hav-surface-input);
    border-radius: 0 !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input-outlined-border {
    border-radius: 0 !important;
    border-color: var(--hav-line) !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input:hover .mud-input-outlined-border {
    border-color: color-mix(in srgb, var(--hav-text) 45%, transparent) !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input:focus-within .mud-input-outlined-border,
.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input.mud-input-focused .mud-input-outlined-border {
    border-color: var(--hav-accent) !important;
    border-width: 1px !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input-label {
    color: var(--hav-text-muted) !important;
    background: var(--hav-surface-input) !important;
    font-size: 12px !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input-label.mud-input-error {
    color: var(--hav-text-muted) !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__input .mud-input-slot {
    font-family: var(--hav-font-body) !important;
    color: var(--hav-text);
    font-size: 14px;
}

/* Buttons -- square, Barlow Condensed, 14px, no all-caps. */
.session-recovery__content[b-m2tva3tckk]  .mud-button {
    border-radius: 0 !important;
    font-family: var(--hav-font-head) !important;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0;
    text-transform: none !important;
    box-shadow: none !important;
    height: 36px;
    min-height: 36px;
    padding: var(--hav-btn-pad-compact);
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__button--primary.mud-button-filled.mud-button-filled-primary {
    background: var(--hav-accent) !important;
    color: var(--hav-on-accent) !important;
    border: 1px solid var(--hav-accent) !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__button--primary.mud-button-filled.mud-button-filled-primary:hover {
    background: var(--hav-accent-strong) !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__button--text.mud-button-text.mud-button-text-primary {
    background: transparent !important;
    color: var(--hav-accent) !important;
}

.session-recovery__content[b-m2tva3tckk]  .session-recovery__button--text.mud-button-text.mud-button-text-primary:hover {
    background: color-mix(in srgb, var(--hav-text) 7%, transparent) !important;
}
/* /Components/Layout/SideMenu.razor.rz.scp.css */
.sidemenu-disabled[b-xhmc0557bk] {
    opacity: 0.6;
}

.sidemenu-disabled .mud-nav-link[b-xhmc0557bk],
.sidemenu-disabled .mud-nav-group[b-xhmc0557bk] {
    pointer-events: none;
}

.sidemenu-disabled .sidemenu-footer-actions[b-xhmc0557bk] {
    opacity: 1;
    pointer-events: auto;
}

.sidemenu-disabled > .mud-alert[b-xhmc0557bk] {
    opacity: 1;
}
/* /Components/Layout/WorkspaceFilter.razor.rz.scp.css */
/* Workspace filter chips use their default MudBlazor wrapping layout. */
/* /Components/Navigation/CommandPalette.razor.rz.scp.css */
/* Command palette dropdown panel, styled like MudBlazor docs search */

.command-palette-search[b-me21r3hx7s] {
    width: 100%;
    margin-bottom: 0.5rem;
}

    .command-palette-search[b-me21r3hx7s]  .mud-input-slot {
        padding: 0.5rem 0;
    }

    /* Remove the text-field underline for a cleaner docs-style search box */
    .command-palette-search[b-me21r3hx7s]  .mud-input-underline {
        display: none;
    }

.command-palette-list[b-me21r3hx7s] {
    max-height: 55vh;
    overflow-y: auto;
}

.command-palette-item-text[b-me21r3hx7s] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.command-palette-item-title[b-me21r3hx7s] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Full-screen command palette dialog on small screens
   (Centering and min(100%, 520px) width are handled by havto-app-align.css
   because scoped CSS cannot pierce the MudBlazor dialog portal.) */
@media (max-width: 600px) {
    .command-palette-list[b-me21r3hx7s] {
        max-height: 75vh;
    }
}
/* /Components/Navigation/NavigationComponent.razor.rz.scp.css */


.loading-skeleton[b-bk6vbsxtri] {
    padding: 0 1rem;
    animation: pulse 1.5s ease-in-out infinite;
}

.nav-link[b-bk6vbsxtri] {
    margin: 0.125rem 0.5rem;
    border-radius: 0;
    padding: 0.5rem 0.75rem;
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
    text-decoration: none;
    color: inherit;
    display: block;
    position: relative;
}.nav-link:hover[b-bk6vbsxtri] {
  text-decoration: none; color: inherit;
}

    .nav-link.mud-nav-link-active[b-bk6vbsxtri] {
        background-color: var(--hav-accent);
        color: var(--hav-on-accent);
        box-shadow: none;
        font-weight: 500;
    }/* removed hover fill: .nav-link.mud-nav-link-active:hover */

.nav-text[b-bk6vbsxtri] {
    font-size: 0.875rem;
    font-weight: 450;
    flex-grow: 1;
}

.module-info[b-bk6vbsxtri] {
    gap: 0.75rem;
    flex-grow: 1;
}

.module-icon[b-bk6vbsxtri] {
    color: var(--hav-text-muted);
    transition: color 0.2s ease-in-out;
    flex-shrink: 0;
}

.nav-link:hover .module-icon[b-bk6vbsxtri] {
    color: var(--hav-accent);
}

.nav-link.mud-nav-link-active .module-icon[b-bk6vbsxtri] {
    color: var(--hav-on-accent);
}

/* Enhanced focus states for accessibility */
.nav-link:focus[b-bk6vbsxtri] {
    outline: 2px solid var(--hav-accent);
    outline-offset: 2px;
}

/* Active state enhancements */
.nav-link.mud-nav-link-active[b-bk6vbsxtri]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 60%;
    background-color: var(--hav-on-accent);
    border-radius: 0;
}

@keyframes badgePulse-b-bk6vbsxtri {
    0%, 100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.1);
    }
}

/* Hover effect for better UX */
.nav-link[b-bk6vbsxtri]::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    background-color: var(--hav-accent);
    transition: width 0.3s ease-in-out;
}

.nav-link:hover[b-bk6vbsxtri]::after {
    width: 100%;
}

.nav-link.mud-nav-link-active[b-bk6vbsxtri]::after {
    width: 100%;
    background-color: var(--hav-on-accent);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .nav-link[b-bk6vbsxtri] {
        margin: 0.125rem 0.25rem;
        padding: 0.625rem 0.5rem;
    }

    .module-info[b-bk6vbsxtri] {
        gap: 0.5rem;
    }

    .nav-text[b-bk6vbsxtri] {
        font-size: 0.8125rem;
    }

    .add-module-container[b-bk6vbsxtri] {
        padding: 0.5rem;
        margin: 0.25rem 0;
    }
}

@media (max-width: 480px) {
    .nav-link[b-bk6vbsxtri] {
        padding: 0.75rem 0.5rem;
    }

    .nav-text[b-bk6vbsxtri] {
        font-size: 0.8rem;
    }

    .module-icon[b-bk6vbsxtri] {
        display: none; /* Hide icons on very small screens to save space */
    }

    .notification-badge[b-bk6vbsxtri] {
        min-width: 16px;
        height: 16px;
        line-height: 16px;
        font-size: 0.6875rem;
    }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .nav-link[b-bk6vbsxtri] {
        border: 1px solid transparent;
    }

        .nav-link:hover[b-bk6vbsxtri] {
            border-color: var(--hav-accent);
        }

        .nav-link.mud-nav-link-active[b-bk6vbsxtri] {
            border-color: var(--hav-on-accent);
        }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .nav-link[b-bk6vbsxtri],
    .module-icon[b-bk6vbsxtri],
    .info-icon[b-bk6vbsxtri],
    .add-module-button[b-bk6vbsxtri],
    .notification-badge[b-bk6vbsxtri] {
        transition: none;
    }

        .nav-link:hover[b-bk6vbsxtri] {
            transform: none;
        }

        .nav-link.mud-nav-link-active:hover[b-bk6vbsxtri] {
            transform: none;
        }

        .add-module-button:hover[b-bk6vbsxtri] {
            transform: none;
        }

    .loading-skeleton[b-bk6vbsxtri] {
        animation: none;
    }

    .notification-badge[b-bk6vbsxtri] {
        animation: none;
    }
}
/* /Components/Pages/Compliance/Checklists/AssignChecklist.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-checklists-assign-checklist-page-shell[b-3tmftd2f3z] {
    min-width: 0;
}

.hav-field-grid__full[b-3tmftd2f3z] { grid-column: 1 / -1; }
/* /Components/Pages/Compliance/Checklists/CompleteChecklist.razor.rz.scp.css */
/* CompleteChecklist.razor.css - Component-scoped styles */
/* Note: MudBlazor component overrides (.mud-paper, .mud-grid, etc.) removed
   because Blazor CSS isolation [b-hash] attribute doesn't propagate to
   MudBlazor child elements. Use ::deep or MudBlazor component parameters instead. */

[b-s34uhujwko] .checklist-item-paper {
    border: 1px solid var(--hav-line);
}

[b-s34uhujwko] .overall-notes-paper {
    border: 1px solid var(--hav-line);
    background: var(--hav-surface-raised);
}

[b-s34uhujwko] .completion-actions-paper {
    border: 1px solid var(--hav-success);
    background: color-mix(in srgb, var(--hav-success) 20%, var(--hav-panel));
}

/* Print styles */
@media print {
    .no-print[b-s34uhujwko] {
        display: none !important;
    }
}
/* /Components/Pages/Compliance/Checklists/MyChecklistAssignments.razor.rz.scp.css */
.assignment-summary-card[b-ev6uzb0ola] {
    color: var(--hav-panel);
}

.assignment-summary-card-overdue[b-ev6uzb0ola] {
    background: var(--hav-error);
}

.assignment-summary-card-due-soon[b-ev6uzb0ola] {
    background: var(--hav-warning);
}

.assignment-summary-card-in-progress[b-ev6uzb0ola] {
    background: var(--hav-info);
}

.assignment-summary-card-completed[b-ev6uzb0ola] {
    background: var(--hav-success);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-checklists-my-checklist-assignments-page-shell[b-ev6uzb0ola] {
    min-width: 0;
}
/* /Components/Pages/Compliance/CorrectiveActions/CorrectiveActions.razor.rz.scp.css */
/* Corrective Actions page shell -- provides a native root for scoped CSS isolation. */
.corrective-actions-page-shell[b-s5dvq456a6] {
    min-width: 0;
}

/* Table bodies in the page shell shrink to content but cap at 600px,
   matching the old MudDataGrid Height while not forcing a 600px empty body. */
.corrective-actions-page-shell[b-s5dvq456a6]  .mud-table-container {
    max-height: 600px;
}

/* AI recommendation action buttons should wrap on narrow viewports. */
.corrective-actions-page-shell[b-s5dvq456a6]  .mud-card-actions {
    flex-wrap: wrap;
}
/* /Components/Pages/Compliance/CorrectiveActions/ViewCorrectiveAction.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-corrective-actions-view-corrective-action-page-shell[b-vnsdkrku74] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Dashboards/AttestationHistory.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-dashboards-attestation-history-page-shell[b-95wmh0ya24] {
    min-width: 0;
}

.compliance-dashboards-attestation-history-page-shell[b-95wmh0ya24]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Compliance/Dashboards/IncidentAssignments.razor.rz.scp.css */
/* IncidentAssignments - loading/access-restricted frame styling. */

[b-d26booaesv] .incident-assignments-loading-frame {
    min-height: 50vh;
    max-width: 600px;
    margin: 0 auto;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-dashboards-incident-assignments-page-shell[b-d26booaesv] {
    min-width: 0;
}

.compliance-dashboards-incident-assignments-page-shell[b-d26booaesv]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Compliance/Dashboards/MyIncidentTeams.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-dashboards-my-incident-teams-page-shell[b-4ae00jddp6] {
    min-width: 0;
}

.compliance-dashboards-my-incident-teams-page-shell[b-4ae00jddp6]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Compliance/Dashboards/MyWork.razor.rz.scp.css */


/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-dashboards-my-work-page-shell[b-2ncpkontl6] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Dashboards/OfficerDashboard.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-dashboards-officer-dashboard-page-shell[b-16k8gpf3l9] {
    min-width: 0;
}

/* S.04 page header: action cluster top-aligned at heading height, persona meta
   row and the required-disclaimer banner below. Title column may shrink; the
   action cluster holds its width (the commit verb never wraps). */
.compliance-dashboards-officer-dashboard-page-shell .dashboard-header-top[b-16k8gpf3l9] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.compliance-dashboards-officer-dashboard-page-shell .officer-header-text[b-16k8gpf3l9] {
    /* 240px floor: enough for the heading at 200% type; when the row cannot
       hold text + actions, flex-wrap drops the actions below the heading
       instead of overlapping them. */
    flex: 1 1 240px;
    min-width: min(240px, 100%);
}

.compliance-dashboards-officer-dashboard-page-shell .officer-header-actions[b-16k8gpf3l9] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-left: auto;
}

.compliance-dashboards-officer-dashboard-page-shell[b-16k8gpf3l9]  .dashboard-persona-row {
    margin-top: var(--hav-space-3);
}

/* The disclaimer is the page's one banner (HAV2111) - .hav-banner-region is the
   slot; this margin only sets the gap below the meta row. */
.compliance-dashboards-officer-dashboard-page-shell .officer-disclaimer-banner[b-16k8gpf3l9] {
    margin-top: var(--hav-space-3);
    margin-bottom: 0;
}

/* S.11.57 pillar row: 220px track floor inside the layout row. The attribute
   selector is load-bearing -- .hav-app .dashboard-layout-row .hav-row forces
   280px, so this rule must out-specify it (floor only; auto-fit does the rest). */
.compliance-dashboards-officer-dashboard-page-shell .hav-row--insight[data-archetype="pillar-row"][b-16k8gpf3l9] {
    --hav-row-min: 220px;
}

/* Pillar card internals: the four contract elements stack with even breathing
   room and the action footer pins to the shared bottom edge across the row.
   ::deep is required -- .hav-kpi is HavKpiPlate's DOM and carries no scope
   attribute from this file. */
.compliance-dashboards-officer-dashboard-page-shell .hav-row--insight[b-16k8gpf3l9]  .hav-kpi {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.compliance-dashboards-officer-dashboard-page-shell .hav-row--insight[b-16k8gpf3l9]  .hav-kpi__value {
    margin: 0;
}

/* The status chip is a tag, not a block -- without this it stretches to the
   full card width as a flex item. */
.compliance-dashboards-officer-dashboard-page-shell .hav-row--insight[b-16k8gpf3l9]  .hav-kpi > .hav-status {
    align-self: flex-start;
}

/* Row-level "Counts as at" stamp -- provenance for the whole pillar region
   (S.07-O), right-aligned above the row. */
.compliance-dashboards-officer-dashboard-page-shell .officer-pillars-counted-at[b-16k8gpf3l9] {
    font-size: 12px;
    color: var(--mud-palette-text-secondary);
    text-align: right;
    margin-bottom: var(--hav-space-2);
}

/* Provenance line = the evidence link (S.07-O: no separate View evidence
   element). Kept as the caption's own typography; the arrow is the affordance. */
.compliance-dashboards-officer-dashboard-page-shell a.officer-pillar-provenance[b-16k8gpf3l9] {
    color: var(--mud-palette-text-secondary);
    text-decoration: none;
    display: inline-block;
}

.compliance-dashboards-officer-dashboard-page-shell a.officer-pillar-provenance[b-16k8gpf3l9]::after {
    content: "\2192";
    margin-left: calc(var(--hav-space-2) / 2);
}

.compliance-dashboards-officer-dashboard-page-shell a.officer-pillar-provenance:hover[b-16k8gpf3l9] {
    color: var(--hav-accent);
    text-decoration: underline;
}

.compliance-dashboards-officer-dashboard-page-shell .officer-pillar-provenance-failed[b-16k8gpf3l9] {
    color: var(--mud-palette-error);
}

/* S.07-O specimen B: the failed-source exclusion is a bordered row and a word,
   not a colour alone - colour is never the only signal. */
.compliance-dashboards-officer-dashboard-page-shell .officer-pillar-not-counted[b-16k8gpf3l9] {
    border: 1px solid var(--hav-line);
    border-radius: 4px;
    padding: var(--hav-space-2);
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 12px;
}

.compliance-dashboards-officer-dashboard-page-shell .officer-pillar-not-counted-title[b-16k8gpf3l9] {
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
}

.compliance-dashboards-officer-dashboard-page-shell .officer-pillar-not-counted-line[b-16k8gpf3l9] {
    color: var(--mud-palette-text-secondary);
}

/* Footer: the Attest verb first on the left edge, then the attestation state on
   the same line -- same edge and baseline across the five cards (HAV2200). */
.compliance-dashboards-officer-dashboard-page-shell .officer-pillar-footer[b-16k8gpf3l9] {
    margin-top: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: var(--hav-space-3);
    border-top: 1px solid var(--hav-line);
}
/* /Components/Pages/Compliance/Dashboards/PatternIntelligence.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-dashboards-pattern-intelligence-page-shell[b-85lj6c1t4k] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Dashboards/SafetyEvidenceOverviewDashboard.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-dashboards-safety-evidence-overview-dashboard-page-shell[b-1ok60lum2p] {
    min-width: 0;
}

/* Dashboard tile wrappers are non-layout hosts; the tile paper is the actual grid item.
   This lets the .hav-row grid apply the 16px gap and equal-height stretching to the
   tile surfaces rather than to the wrapper divs. */
[b-1ok60lum2p] .dashboard-tile-cell {
    display: contents;
}

/* Blueprint 04 page header: action top-aligned at heading height, persona
   row below both, chip keeps its 1px line-strong border. */
.dashboard-header-top[b-1ok60lum2p] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

[b-1ok60lum2p] .dashboard-welcome {
    margin-top: var(--hav-space-2);
}

[b-1ok60lum2p] .dashboard-persona-row {
    margin-top: var(--hav-space-3);
}

[b-1ok60lum2p] .dashboard-header-action {
    padding: var(--hav-space-2) var(--hav-space-3);
}

[b-1ok60lum2p] .dashboard-header-action .mud-button-label {
    font-size: 13px;
}
/* /Components/Pages/Compliance/Documents/ComplianceDocuments.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-documents-compliance-documents-page-shell[b-7nslzmuh5c] {
    min-width: 0;
}

.compliance-documents-compliance-documents-page-shell[b-7nslzmuh5c]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Compliance/Equipment/EquipmentAssignmentReports.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-equipment-assignment-reports-page-shell[b-h0nxblfukb] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Escalation/EscalationSettings.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-escalation-settings-page-shell[b-xnvcoci0z5] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Incidents/EditIncident.razor.rz.scp.css */
/* ===== EDIT INCIDENT: QUICK ACTIONS RIBBON (8-up grid) ===== */
.edit-incident-header-title-stack[b-duuwul3bu1] {
    flex: 1; }

.edit-incident-notification-alert[b-duuwul3bu1] {
    border-radius: 0; }

.edit-incident-notification-button[b-duuwul3bu1] {
    align-self: flex-start; }

.edit-incident-quick-actions-grid[b-duuwul3bu1] {
    display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 12px; width: 100%; align-items: stretch; }

.edit-incident-quick-actions-grid .quick-action-ribbon-card[b-duuwul3bu1] {
    height: 100%; min-width: 0; }

@media (max-width: 1536px) {
    .edit-incident-quick-actions-grid[b-duuwul3bu1] {
        grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
    .edit-incident-quick-actions-grid[b-duuwul3bu1] {
        grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .edit-incident-quick-actions-grid[b-duuwul3bu1] {
        grid-template-columns: minmax(0, 1fr); }
}

/* Investigation Progress: card body uses flex-grow in theme; without the old status alert that reads as a large empty band */
.edit-incident-investigation-progress-card .mud-card-content[b-duuwul3bu1] {
    flex-grow: 0; padding-bottom: var(--hav-space-3); }

/* ===== EDIT INCIDENT: split grid + timeline capped to main column height via MudBlazor IResizeObserver (md+) ===== */
.edit-incident-split-grid .edit-incident-main-measure[b-duuwul3bu1] {
    min-width: 0; }

.edit-incident-split-grid .edit-incident-timeline-col[b-duuwul3bu1] {
    min-height: 0; }

.edit-incident-split-grid .edit-incident-timeline-shell[b-duuwul3bu1] {
    display: flex; flex-direction: column; min-height: 0; }

@media (min-width: 960px) {
    .edit-incident-split-grid .edit-incident-timeline-col[b-duuwul3bu1] {
        display: flex; flex-direction: column; overflow: hidden; }

    .edit-incident-split-grid .edit-incident-timeline-shell[b-duuwul3bu1] {
        flex: 1 1 auto; overflow: hidden; max-height: var(--timeline-shell-max-height, none); }

    .edit-incident-split-grid .edit-incident-timeline-col .edit-incident-timeline-card[b-duuwul3bu1] {
        flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; max-height: 100%; overflow: hidden; margin-bottom: 0 ; }

    .edit-incident-split-grid .edit-incident-timeline-scroll[b-duuwul3bu1] {
        overflow-y: auto ; flex: 1 1 auto; min-height: 0; }

    .edit-incident-split-grid .edit-incident-timeline-scroll[b-duuwul3bu1]  > .mud-stack {
        min-height: 0; }
}

@media (max-width: 959px) {
    .edit-incident-split-grid .edit-incident-timeline-col[b-duuwul3bu1] {
        max-height: none ; overflow: visible; }

    .edit-incident-timeline-shell[b-duuwul3bu1] {
        max-height: none ; }
}

/* ===== SECTION HEADER STYLES ===== */
.section-header[b-duuwul3bu1] {
    background-color: var(--hav-surface-raised); padding: var(--hav-space-3) var(--hav-space-4); border-radius: 0; margin-bottom: var(--hav-space-4); }

/* ===== TIMELINE STYLES ===== */
.timeline-item[b-duuwul3bu1] {
    border-left: 2px solid var(--hav-accent); padding-left: var(--hav-space-4); margin-left: var(--hav-space-2); position: relative; }

    .timeline-item[b-duuwul3bu1]::before {
        content: ''; position: absolute; left: -6px; top: 8px; width: 10px; height: 10px; border-radius: 50%; background-color: var(--hav-accent); }

/* ===== STATUS BADGES ===== */
.status-badge[b-duuwul3bu1] {
    padding: calc(var(--hav-space-2) / 2) var(--hav-space-3); border-radius: 0; font-size: 0.875rem; font-weight: 500; }

/* ===== PRINT STYLES ===== */
@media print {
    .no-print[b-duuwul3bu1] {
        display: none ; }

    .section-header[b-duuwul3bu1] {
        background-color: var(--hav-surface-raised) ; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

    .quick-action-card[b-duuwul3bu1] {
        box-shadow: none; border: 1px solid var(--hav-line); }

    .worksafe-deadline-warning[b-duuwul3bu1] {
        animation: none; background-color: color-mix(in srgb, var(--hav-warning) 15%, transparent) ; border-color: var(--hav-warning) ; color: var(--hav-text) ; }
}

/* ===== RESPONSIVE STYLES ===== */
@media (max-width: 768px) {
    .section-header[b-duuwul3bu1] {
        padding: var(--hav-cell-pad); }

    .quick-action-card .mud-card-content[b-duuwul3bu1] {
        padding: var(--hav-space-4) var(--hav-space-3); }

    .quick-action-card .mud-icon-root[b-duuwul3bu1] {
        font-size: 1.5rem; margin-bottom: var(--hav-space-2); }

    .timeline-item[b-duuwul3bu1] {
        padding-left: var(--hav-space-3); margin-left: calc(var(--hav-space-2) / 2); }

    .mud-tabs .mud-tab-panel[b-duuwul3bu1] {
        padding: var(--hav-space-3) var(--hav-space-2); }
}

@media (max-width: 480px) {
    .quick-action-card .mud-card-content[b-duuwul3bu1] {
        padding: var(--hav-space-3) var(--hav-space-2); }

    .quick-action-card .mud-icon-root[b-duuwul3bu1] {
        font-size: 1.25rem; margin-bottom: calc(var(--hav-space-2) / 2); }

    .section-header[b-duuwul3bu1] {
        padding: var(--hav-space-2); }
}

/* ===== ACCESSIBILITY STYLES ===== */
@media (prefers-reduced-motion: reduce) {
    .worksafe-deadline-warning[b-duuwul3bu1],
    .pulse-animation[b-duuwul3bu1] {
        animation: none; }

    .quick-action-card[b-duuwul3bu1] {
        transition: none; }
}

/* ===== HIGH CONTRAST MODE ===== */
@media (prefers-contrast: high) {
    .section-header[b-duuwul3bu1] {
        border: 2px solid var(--hav-text); }

    .timeline-item[b-duuwul3bu1] {
        border-left-width: 3px; }

        .timeline-item[b-duuwul3bu1]::before {
            border: 2px solid var(--hav-ground); }

    .quick-action-card[b-duuwul3bu1] {
        border: 2px solid var(--hav-text); }
}
/* /Components/Pages/Compliance/Incidents/IncidentReportCreate.razor.rz.scp.css */
/* Create Incident Report Page Styles */

/* Section headers */
.incident-section-header[b-wjod76pqng] {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}

    .incident-section-header .mud-icon-root[b-wjod76pqng] {
        margin-right: 0.5rem;
    }

/* File upload drag and drop styles */
.file-upload-area[b-wjod76pqng] {
    border: 2px dashed var(--hav-line);
    border-radius: 0;
    transition: border-color 0.3s ease;
}

    .file-upload-area:hover[b-wjod76pqng] {
        border-color: var(--hav-accent);
    }

/* File card styles */
.file-card[b-wjod76pqng] {
    transition: border-color 0.3s ease;
}

    .file-card:hover[b-wjod76pqng] {
        box-shadow: none;
    }

/* Injury details section */
.injury-details-section[b-wjod76pqng] {
    background-color: var(--hav-surface-raised);
    border-radius: 0;
    padding: 1rem;
    margin: 1rem 0;
}

/* Location capture button */
.location-capture-button[b-wjod76pqng] {
    margin-bottom: 1rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .action-buttons[b-wjod76pqng] {
        flex-direction: column;
        align-items: stretch;
    }

        .action-buttons .mud-button[b-wjod76pqng] {
            width: 100%;
            margin: 0.25rem 0;
        }
}

/* Expansion panel customization */
.mud-expand-panel .mud-expand-panel-header[b-wjod76pqng] {
    background-color: var(--hav-surface-raised);
}/* removed hover fill: .mud-expand-panel .mud-expand-panel-header:hover */

/* Form section spacing */
.form-section[b-wjod76pqng] {
    margin: 2rem 0;
}

    .form-section:first-child[b-wjod76pqng] {
        margin-top: 0;
    }

    .form-section:last-child[b-wjod76pqng] {
        margin-bottom: 0;
    }

/* Location select option formatting */
.incident-context-option-display[b-wjod76pqng] {
    line-height: 1.3;
}

.incident-context-option-name[b-wjod76pqng] {
    font-weight: 500;
}

.incident-context-option-description[b-wjod76pqng] {
    font-size: 0.875rem;
    color: var(--hav-text-muted);
}

/* Inline caption text inside headers */
.incident-inline-caption[b-wjod76pqng] {
    display: inline;
}

/* Notification deadline emphasis */
.notification-deadline[b-wjod76pqng] {
    font-weight: 600;
    color: var(--hav-error);
}

/* Success indicators */
.success-indicator[b-wjod76pqng] {
    color: var(--hav-success);
    font-weight: 500;
}

/* Loading states */
.loading-overlay[b-wjod76pqng] {
    position: relative;
}

    .loading-overlay[b-wjod76pqng]::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: var(--hav-panel);
        background-color: color-mix(in srgb, var(--hav-panel) 70%, transparent);
        z-index: 1;
    }

/* File size and type indicators */
.file-metadata[b-wjod76pqng] {
    font-size: 0.75rem;
    color: var(--hav-text-muted);
    margin-top: 0.25rem;
}

/* Equipment category specific styling */
.equipment-category-section[b-wjod76pqng] {
    border-left: 3px solid var(--hav-info);
    padding-left: 1rem;
    margin: 1rem 0;
}

/* Management review section */
.management-review-section[b-wjod76pqng] {
    background-color: color-mix(in srgb, var(--hav-warning) 20%, var(--hav-panel));
    border-radius: 0;
    padding: 1rem;
    margin: 1rem 0;
}
/* /Components/Pages/Compliance/Incidents/Incidents.razor.rz.scp.css */
/* Incidents page shell -- provides a native root for scoped CSS isolation. */
.incidents-page-shell[b-lanfrsdj94] {
    min-width: 0;
}

/* Severity / status chips that carry a tooltip show a help cursor. */
.incidents-page-shell[b-lanfrsdj94]  .incident-tooltip-chip {
    cursor: help;
}

/* Statutory-retention tooltip caption is emphasised. */
.incidents-page-shell[b-lanfrsdj94]  .incident-tooltip-caption {
    font-weight: 600;
}

/* Table bodies in the page shell shrink to content but cap at 600px,
   matching the old MudDataGrid Height while not forcing a 600px empty body. */
.incidents-page-shell[b-lanfrsdj94]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Compliance/Incidents/IncidentsAnalytics.razor.rz.scp.css */
/* Incidents analytics - prefer shared intelligence globals (app.css); minimal page-only layout. */
[b-btmn80hgfl] .loading-overlay {
    position: relative;
    min-height: 120px;
}

[b-btmn80hgfl] .time-period-filter {
    margin-bottom: var(--hav-space-3);
}
/* /Components/Pages/Compliance/Incidents/IncidentsInvestigationsTab.razor.rz.scp.css */
/* (c) 2026 Havto Limited. All rights reserved. */

.investigation-progress[b-0px1ruutxh] {
    min-width: 120px;
}
/* /Components/Pages/Compliance/Incidents/Intelligence/IncidentIntelligencePanel.razor.rz.scp.css */
/* Incident intelligence uses global app.css intelligence-panel-* + MudCard Outlined (UI-2). */
/* /Components/Pages/Compliance/Incidents/InvestigateIncident.razor.rz.scp.css */
/* ===== INVESTIGATION STEP STYLES ===== */
.investigation-step[b-29euiiipdu] {
    padding: var(--hav-panel-pad-feature);
    min-height: 400px;
}

/* Stepper styles: wwwroot/css/wizard-stepper.css (.wizard-stepper) */

/* ===== RESPONSIVE STYLES ===== */
@media (max-width: 768px) {
    .investigation-step[b-29euiiipdu] {
        padding: var(--hav-panel-pad-compact);
        min-height: 300px;
    }
}

@media (max-width: 480px) {
    .investigation-step[b-29euiiipdu] {
        padding: var(--hav-space-3);
        min-height: 250px;
    }
}

/* ===== ACCESSIBILITY STYLES ===== */


/* ===== PRINT STYLES ===== */
@media print {
    .investigation-step[b-29euiiipdu] {
        padding: var(--hav-space-3);
        min-height: unset;
    }
}

[b-29euiiipdu] .signature-capture-shell {
    box-shadow: none;
    border: none !important;
    background: transparent;
}

.investigation-chip-stack[b-29euiiipdu] {
    margin-top: 1rem;
}

.investigation-content-stack[b-29euiiipdu] {
    flex: 1;
}

.investigation-success-paper[b-29euiiipdu] {
    background: color-mix(in srgb, var(--hav-success) 8%, transparent);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-incidents-investigate-incident-page-shell[b-29euiiipdu] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Incidents/ViewIncident.razor.rz.scp.css */
[b-g3eu7kyqda] .attachment-drop-zone {
    transition: border-color 0.3s ease, background-color 0.3s ease; }[b-g3eu7kyqda] .attachment-drop-zone:hover {
  border-color: var(--hav-accent)
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-incidents-view-incident-page-shell[b-g3eu7kyqda] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Intelligence/PoliciesIntelligencePanel.razor.rz.scp.css */
/* Intellectual Property Declaration This source code is solely authored and owned by Leonard
   Harris. No other party has contributed to its development. ? 2026 Havto Limited. All rights reserved. */

/* Policies AI Intelligence Panel Scoped Styles */

/* Timeline styling */
[b-lxv1gj7hzd] .prediction-timeline {
    padding: 1rem 0;
}

/* Urgency chip colors */
[b-lxv1gj7hzd] .urgency-chip {
    font-weight: 600;
}

/* Loading state */
.loading-overlay[b-lxv1gj7hzd] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
}
/* /Components/Pages/Compliance/Learning/PendingLearnings.razor.rz.scp.css */
/* PendingLearnings - loading min-height handled by inline Style or MudBlazor layout. */

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-learning-pending-learnings-page-shell[b-zokjt1kyqj] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Policies/Dialogs/AcknowledgePolicyDialog.razor.rz.scp.css */
/* Intellectual Property Declaration - ? 2026 Havto Limited. All rights reserved. */

/* Signature Capture Container */
.acknowledge-policy-signature-container[b-dnq0to5vzz] {
    background-color: var(--hav-surface-raised);
    border-radius: 0;
}

    .acknowledge-policy-signature-container :deep .mud-paper[b-dnq0to5vzz] {
        background-color: transparent;
    }
/* /Components/Pages/Compliance/Policies/Dialogs/CreatePolicyPanel.razor.rz.scp.css */
/* CreatePolicyPanel - form section padding and save button layout handled by MudBlazor utility classes. */

/* Field that cannot pair by height spans the whole .hav-field-grid row (spec 11.19). */
.hav-field-grid__full[b-bp4spub0mx] {
    grid-column: 1 / -1;
}
/* /Components/Pages/Compliance/Policies/Dialogs/EditPolicyPanel.razor.rz.scp.css */

.loading-container[b-9xvajmp4n4] {
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Field that cannot pair by height spans the whole .hav-field-grid row (spec 11.19). */
.hav-field-grid__full[b-9xvajmp4n4] {
    grid-column: 1 / -1;
}
/* /Components/Pages/Compliance/Policies/Dialogs/PolicyVersionHistoryPanel.razor.rz.scp.css */
/* PolicyVersionHistoryPanel - loading min-height handled by inline Style. */
/* /Components/Pages/Compliance/Policies/Dialogs/ViewVersionContentPanel.razor.rz.scp.css */
/* ViewVersionContentPanel - background-grey and text styling handled by MudBlazor params + inline Style. */
/* /Components/Pages/Compliance/Policies/Policies.razor.rz.scp.css */
/* Policies Page Styles */

/* Policy Type Chips */
.policy-type-chip[b-brklq4w172] {
    font-weight: 500;
}

/* Status Badge Styling */
.policy-status-active[b-brklq4w172] {
    background-color: var(--hav-success);
    color: var(--hav-success-text);
}

.policy-status-draft[b-brklq4w172] {
    background-color: var(--hav-surface-raised);
    color: var(--hav-text);
}

.policy-status-pending[b-brklq4w172] {
    background-color: var(--hav-warning);
    color: var(--hav-warning-text);
}

.policy-status-archived[b-brklq4w172] {
    background-color: var(--hav-text);
    color: var(--hav-panel);
}

/* Action Buttons */
.policy-actions[b-brklq4w172] {
    display: flex;
    gap: 4px;
    justify-content: flex-start;
    align-items: center;
}

/* Loading State */
.loading-container[b-brklq4w172] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
}

/* Authentication Warning */
.auth-warning-container[b-brklq4w172] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 50vh;
}

/* Header Section */
.page-header[b-brklq4w172] {
    margin-bottom: var(--hav-panel-pad-feature);
}

.page-title[b-brklq4w172] {
    margin-bottom: var(--hav-space-2);
}

.page-subtitle[b-brklq4w172] {
    opacity: 0.7;
}

/* Mobile Responsive */
@media (max-width: 960px) {
    .filter-section[b-brklq4w172] {
        padding: var(--hav-space-3);
    }

    .policy-actions[b-brklq4w172] {
        flex-wrap: wrap;
    }

    .analytics-card .mud-card-content[b-brklq4w172] {
        min-height: 250px;
    }
}

@media (max-width: 600px) {
    .no-records-container[b-brklq4w172] {
        padding: calc(var(--hav-space-4) * 2) var(--hav-space-4);
    }

    .no-records-icon[b-brklq4w172] {
        font-size: 48px;
    }
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-policies-page-shell[b-brklq4w172] {
    min-width: 0;
}

/* Table bodies in the page shell shrink to content but cap at 600px,
   matching the old MudDataGrid Height while not forcing a 600px empty body. */
.compliance-policies-page-shell[b-brklq4w172]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Compliance/Policies/ViewPolicy.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-policies-view-policy-page-shell[b-icskv7h6st] {
    min-width: 0;
}
/* /Components/Pages/Compliance/PPE/PPEDetails.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-ppe-details-page-shell[b-ovvi63t3g2] {
    min-width: 0;
}
/* /Components/Pages/Compliance/PPE/PPEHistory.razor.rz.scp.css */
/* PPE History Page Styles
   Only custom classes that benefit from scoped CSS isolation.
   MudBlazor internal classes (.mud-tabs, .mud-card, .mud-timeline, etc.)
   won't match in scoped CSS because child elements lack the [b-hash] attribute. */

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-ppe-history-page-shell[b-domv3n5vol] {
    min-width: 0;
}
/* /Components/Pages/Compliance/PPE/PPEInspect.razor.rz.scp.css */
/* PPE Inspect - MudBlazor utility classes provide spacing; loading min-height is inline. */
/* /Components/Pages/Compliance/PPE/PPEReturn.razor.rz.scp.css */
/* PPE Return - MudBlazor utility classes provide spacing; loading min-height is inline. */
/* /Components/Pages/Compliance/Risk/RiskAssessmentView.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-risk-assessment-view-page-shell[b-319z5pytv8] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Risk/RiskHeatMap.razor.rz.scp.css */
/* Scoped styles must use ::deep - classes on MudPaper do not receive [b-hash]. */

.risk-heat-map-row[b-qt678e45hc] {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: stretch;
}

.risk-heat-grid[b-qt678e45hc] {
    display: grid;
    grid-template-columns: auto repeat(5, 1fr);
    grid-template-rows: auto repeat(5, 1fr);
    gap: 2px;
    flex: 0 1 auto;
    width: 100%;
    max-width: 640px;
    min-width: 280px;
    min-height: 260px;
}

.risk-heat-corner[b-qt678e45hc] {
    grid-column: 1;
    grid-row: 1;
}

.risk-heat-xlabel[b-qt678e45hc] {
    grid-row: 1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: calc(var(--hav-space-2) / 2);
    font-family: var(--hav-font-body);
    font-size: 12px;
    font-weight: 500;
    color: var(--hav-text-muted);
    text-transform: capitalize;
}

.risk-heat-ylabel[b-qt678e45hc] {
    grid-column: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: var(--hav-space-2);
    font-family: var(--hav-font-body);
    font-size: 12px;
    font-weight: 500;
    color: var(--hav-text-muted);
    white-space: nowrap;
}

.risk-heat-cell[b-qt678e45hc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: calc(var(--hav-space-2) / 2);
    gap: 2px;
    border: none;
    border-radius: 0;
    background: transparent;
    font-family: var(--hav-font-body);
    cursor: pointer;
    transition: filter 0.15s ease;
}

.risk-heat-cell__count[b-qt678e45hc] {
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
}

.risk-heat-cell__score[b-qt678e45hc] {
    font-size: 11px;
    line-height: 1;
    opacity: 0.9;
}

/* Five-band ordinal ramp -- one threshold table for cell, legend, and judgement scale. */
.risk-heat-band--verylow[b-qt678e45hc] { color: var(--hav-risk-verylow-text); }
.risk-heat-band--low[b-qt678e45hc] { color: var(--hav-risk-low-text); }
.risk-heat-band--medium[b-qt678e45hc] { color: var(--hav-risk-medium-text); }
.risk-heat-band--high[b-qt678e45hc] { color: var(--hav-risk-high-text); }
.risk-heat-band--veryhigh[b-qt678e45hc] { color: var(--hav-risk-veryhigh-text); }

.risk-heat-cell.risk-heat-band--verylow[b-qt678e45hc] { background-color: var(--hav-risk-verylow); }
.risk-heat-cell.risk-heat-band--low[b-qt678e45hc] { background-color: var(--hav-risk-low); }
.risk-heat-cell.risk-heat-band--medium[b-qt678e45hc] { background-color: var(--hav-risk-medium); }
.risk-heat-cell.risk-heat-band--high[b-qt678e45hc] { background-color: var(--hav-risk-high); }
.risk-heat-cell.risk-heat-band--veryhigh[b-qt678e45hc] { background-color: var(--hav-risk-veryhigh); }

.risk-heat-legend-row.risk-heat-band--verylow .risk-heat-legend-swatch[b-qt678e45hc] { background-color: var(--hav-risk-verylow); }
.risk-heat-legend-row.risk-heat-band--low .risk-heat-legend-swatch[b-qt678e45hc] { background-color: var(--hav-risk-low); }
.risk-heat-legend-row.risk-heat-band--medium .risk-heat-legend-swatch[b-qt678e45hc] { background-color: var(--hav-risk-medium); }
.risk-heat-legend-row.risk-heat-band--high .risk-heat-legend-swatch[b-qt678e45hc] { background-color: var(--hav-risk-high); }
.risk-heat-legend-row.risk-heat-band--veryhigh .risk-heat-legend-swatch[b-qt678e45hc] { background-color: var(--hav-risk-veryhigh); }

.risk-heat-legend[b-qt678e45hc] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 220px;
    flex: 1 1 240px;
}

.risk-heat-legend-rows[b-qt678e45hc] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.risk-heat-legend-row[b-qt678e45hc] {
    display: grid;
    grid-template-columns: 24px 1fr auto;
    gap: 10px;
    align-items: center;
    width: 100%;
    padding: calc(var(--hav-space-2) / 2) 0;
    margin: 0;
    border: none;
    background: transparent;
    text-align: left;
    font-family: inherit;
    cursor: pointer;
}

.risk-heat-legend-row:disabled[b-qt678e45hc] {
    cursor: default;
    opacity: 0.7;
}

.risk-heat-cell:disabled[b-qt678e45hc] {
    cursor: default;
    opacity: 0.7;
}

.risk-heat-legend-swatch[b-qt678e45hc] {
    width: 24px;
    height: 24px;
    border-radius: 0;
}

.risk-heat-legend-text[b-qt678e45hc] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.risk-heat-legend-name[b-qt678e45hc] {
    font-weight: 600;
    color: var(--hav-text);
}

.risk-heat-legend-meta[b-qt678e45hc] {
    display: flex;
    flex-direction: row;
    gap: 6px;
    align-items: baseline;
    flex-wrap: wrap;
}

.risk-heat-legend-score[b-qt678e45hc] {
    color: var(--hav-text-muted);
}

.risk-heat-legend-action[b-qt678e45hc] {
    color: var(--hav-text-label);
}

.risk-heat-legend-count[b-qt678e45hc] {
    font-family: var(--hav-font-mono);
    font-size: 16px;
    font-weight: 600;
    color: var(--hav-text);
    min-width: 28px;
    text-align: right;
}

.risk-heat-legend-note[b-qt678e45hc] {
    color: var(--hav-text-muted);
    padding-top: calc(var(--hav-space-2) / 2);
}

@media (max-width: 760px) {
    .risk-heat-map-row[b-qt678e45hc] {
        flex-direction: column;
    }

    .risk-heat-grid[b-qt678e45hc] {
        min-width: 280px;
        min-height: 260px;
    }

    .risk-heat-legend[b-qt678e45hc] {
        flex: 1 1 auto;
        width: 100%;
    }

    .risk-heat-ylabel[b-qt678e45hc] {
        font-size: 10px;
        padding-right: calc(var(--hav-space-2) / 2);
    }

    .risk-heat-xlabel[b-qt678e45hc] {
        font-size: 10px;
    }

    .risk-heat-cell[b-qt678e45hc] {
        min-height: 32px;
        padding: calc(var(--hav-space-2) / 4);
    }

    .risk-heat-cell__count[b-qt678e45hc] {
        font-size: 14px;
    }

    .risk-heat-cell__score[b-qt678e45hc] {
        font-size: 9px;
    }

    .risk-heat-legend-row[b-qt678e45hc] {
        grid-template-columns: 32px 1fr auto;
    }

    .risk-heat-legend-swatch[b-qt678e45hc] {
        width: 32px;
        height: 32px;
    }
}

/* HAV2150: below 600px the 5x5 grid is not operable -- substitute the readout (legend). */
@media (max-width: 600px) {
    .risk-heat-grid[b-qt678e45hc] {
        display: none;
    }

    .risk-heat-legend[b-qt678e45hc] {
        flex: 1 1 auto;
        width: 100%;
        min-width: unset;
    }
}

@media (min-width: 761px) and (max-width: 960px) {
    .risk-heat-map-row[b-qt678e45hc] {
        flex-direction: column;
    }

    .risk-heat-grid[b-qt678e45hc] {
        min-width: 360px;
        min-height: 300px;
    }

    .risk-heat-legend[b-qt678e45hc] {
        flex: 1 1 auto;
        width: 100%;
    }
}
/* /Components/Pages/Compliance/Risk/RiskMitigationActions.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-risk-mitigation-actions-page-shell[b-9pw6gqayz8] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Risk/RiskRegister.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-risk-register-page-shell[b-1jjh72nksi] {
    min-width: 0;
}

/* Table bodies in the page shell shrink to content but cap at 600px,
   matching the old MudDataGrid Height while not forcing a 600px empty body. */
.compliance-risk-register-page-shell[b-1jjh72nksi]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Compliance/Risk/RiskRegisterCreate.razor.rz.scp.css */
/* Risk Register Create Page Styles - Minimal approach, let MudBlazor handle layout */

/* Responsive adjustments */
@media (max-width: 960px) {
    /* Stack action buttons on mobile */
    .mud-paper .mud-stack-row[b-a6qvptm5yg] {
        flex-direction: column;
        gap: 0.5rem;
    }

        .mud-paper .mud-stack-row > *[b-a6qvptm5yg] {
            width: 100%;
        }
}

/* Helper text styling for consistency */
.mud-input-helper-text[b-a6qvptm5yg] {
    font-size: 0.75rem;
    margin-top: calc(var(--hav-space-2) / 2);
}

/* Ensure cards have consistent spacing */
.mud-card[b-a6qvptm5yg] {
    margin-bottom: 1rem;
}

/* Risk level paper styling */
.mud-paper[outlined][b-a6qvptm5yg] {
    border: 1px solid var(--hav-line);
}
/* /Components/Pages/Compliance/Risk/RiskReviewHistory.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-risk-review-history-page-shell[b-dqs7amqu1y] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Risk/ViewRisk.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-risk-view-risk-page-shell[b-wna0353fmw] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Specialty/ChemicalSafety.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-specialty-chemical-safety-page-shell[b-ebndqmjagw] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Specialty/ConfinedSpace.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-specialty-confined-space-page-shell[b-s92yfdxxra] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Specialty/ElectricalSafety.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-specialty-electrical-safety-page-shell[b-q6ialjx21x] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Specialty/EmergencyProcedures.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-specialty-emergency-procedures-page-shell[b-80f9olbc00] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Specialty/EmergencyProceduresDrillsTab.razor.rz.scp.css */
/* EmergencyProceduresDrillsTab - drill-history disclosure under the open row
   (Blueprint 07-AA / HAV2139: no fill, indent + left hairline). The open row's
   cue is the disclosure itself plus the rotated chevron - never a fill. */
.emergency-drills-pane[b-lnxpnpu4gw]  .mud-selected-item,
.emergency-drills-pane[b-lnxpnpu4gw]  .mud-table-row.selected {
    background: transparent !important;
    border-left: none !important;
}

[b-lnxpnpu4gw] .drill-expand-icon {
    color: var(--hav-text-label);
    transition: transform 160ms ease, color 120ms ease;
}

[b-lnxpnpu4gw] .drill-expand-icon--open {
    transform: rotate(180deg);
    color: var(--hav-accent);
}

[b-lnxpnpu4gw] .drill-disclose-cell {
    padding-top: 0 !important;
    padding-bottom: var(--hav-space-2) !important;
    background: transparent;
}

.drill-disclose[b-lnxpnpu4gw] {
    margin: 0 0 calc(var(--hav-space-2) / 2) var(--hav-space-2);
    padding: var(--hav-space-2) var(--hav-space-4);
    border-left: 1px solid var(--hav-line);
    background: transparent;
}
/* /Components/Pages/Compliance/Specialty/Environmental.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-specialty-environmental-page-shell[b-lzof03bqdk] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Specialty/ManualHandling.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-specialty-manual-handling-page-shell[b-a3mrtpk63n] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Specialty/NoiseVibration.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-specialty-noise-vibration-page-shell[b-c8lldduqsk] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Training/Training.razor.rz.scp.css */
/* Intellectual Property Declaration This source code is solely authored and owned by Leonard
   Harris. No other party has contributed to its development. ? 2026 Havto Limited. All rights reserved. */

/* ============================================================================
   Training & Induction Register - Scoped Styles
   ============================================================================ */

.training-page-shell[b-e7hobb4wdi] {
    min-width: 0;
}

.training-page-shell[b-e7hobb4wdi]  .mud-table-container {
    max-height: 600px;
}

/* Loading state styling */
.loading-overlay[b-e7hobb4wdi] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: color-mix(in srgb, var(--hav-panel) 80%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Certification icon styling */
.certification-icon[b-e7hobb4wdi] {
    vertical-align: middle;
}

/* Action buttons group */
.action-buttons[b-e7hobb4wdi] {
    display: flex;
    gap: 0.25rem;
}

/* Filter section spacing */
.filter-section[b-e7hobb4wdi] {
    margin-bottom: 1rem;
}

/* Induction progress styling */
.induction-progress[b-e7hobb4wdi] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Certificate number monospace styling */
.certificate-number[b-e7hobb4wdi] {
    font-family: var(--hav-font-mono);
    font-size: 0.875rem;
    background-color: color-mix(in srgb, var(--hav-text-muted) 8%, transparent);
    padding: 0.25rem 0.5rem;
    border-radius: 0;
}
/* /Components/Pages/Compliance/Training/TrainingAssignmentCreate.razor.rz.scp.css */
/* TrainingAssignmentCreate - loading min-height handled by inline Style or MudBlazor layout. */

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-training-assignment-create-page-shell[b-kxyv277q1s] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Training/TrainingCertificationsPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-training-certifications-page-shell[b-okj2f96m78] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Training/TrainingDetail.razor.rz.scp.css */
/* TrainingDetail - flex-grow-1 utility and Rounded=true on MudAlert replace custom CSS. */

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-training-detail-page-shell[b-gwi37mi4op] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Training/TrainingDocumentationPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-training-documentation-page-shell[b-3ookbdufyw] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Training/TrainingDocumentDetail.razor.rz.scp.css */
/* TrainingDocumentDetail - loading min-height handled by inline Style or MudBlazor layout. */

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-training-document-detail-page-shell[b-17dwegmdbr] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Training/TrainingDocumentUpload.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-training-document-upload-page-shell[b-f7x62j2v20] {
    min-width: 0;
}
/* /Components/Pages/Compliance/Training/TrainingInductionPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.compliance-training-induction-page-shell[b-kohcrf77g5] {
    min-width: 0;
}
/* /Components/Pages/Operations/Checklists/SafetyChecklistDetails.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-checklists-safety-checklist-details-page-shell[b-935ogy01y5] {
    min-width: 0;
}
/* /Components/Pages/Operations/Checklists/SafetyChecklistExport.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-checklists-safety-checklist-export-page-shell[b-cgjjmrjv9z] {
    min-width: 0;
}
/* /Components/Pages/Operations/Checklists/SafetyChecklistHistory.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-checklists-safety-checklist-history-page-shell[b-yq2qrl4yah] {
    min-width: 0;
}
/* /Components/Pages/Operations/Checklists/SafetyChecklists.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-checklists-safety-checklists-page-shell[b-t5pesxifx1] {
    min-width: 0;
}

.operations-checklists-safety-checklists-page-shell[b-t5pesxifx1]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Components/ProjectGanttChart.razor.rz.scp.css */
/* ProjectGanttChart -- bespoke .hav-gantt portfolio timeline (Modules S.07-B).
   One frame: toolbar strip, scrollable header+body, legend strip.
   Row internals are scoped to ProjectGanttChartProjectRow.razor.css. */

.gantt-frame[b-3nggmgxcob] {
    border: 1px solid var(--hav-line);
    border-radius: 0;
    background: var(--hav-panel);
}

.gantt-toolbar[b-3nggmgxcob] {
    padding: var(--hav-space-3) var(--hav-space-4);
    border-bottom: 1px solid var(--hav-line);
    background: var(--hav-surface-chrome);
}

.gantt-toolbar[b-3nggmgxcob]  .gantt-groupby-select {
    min-width: 140px;
    max-width: 170px;
}

.gantt-toolbar[b-3nggmgxcob]  .gantt-range-picker {
    max-width: 250px;
}

.gantt-toolbar[b-3nggmgxcob]  .mud-button-group-root .mud-button-root {
    min-width: 0;
    padding-left: var(--hav-space-3);
    padding-right: var(--hav-space-3);
}

/* Selected segment: filled accent on on-accent text, as the S.07-B drawing
   shows. MudButtonGroup.OverrideStyles pins children to background:inherit, so
   the fill must be re-asserted on the selected segment's primary class. */
.gantt-toolbar[b-3nggmgxcob]  .mud-button-group-root .mud-button-filled-primary {
    background-color: var(--hav-accent) !important;
    color: var(--hav-on-accent) !important;
}

.gantt-chart-card[b-3nggmgxcob] {
    overflow: auto; background: var(--hav-ground); border-radius: 0; }

.gantt-header[b-3nggmgxcob] {
    position: sticky; top: 0; z-index: 10; background: var(--hav-panel); border-bottom: 1px solid var(--hav-line); padding: 0; }

.gantt-header-row[b-3nggmgxcob] {
    display: flex; align-items: stretch; min-width: -moz-fit-content; min-width: -webkit-fit-content; min-width: -webkit-fill-available; min-width: fit-content; }

.gantt-header-labels[b-3nggmgxcob] {
    flex: 0 0 var(--gantt-label-width, 320px); width: var(--gantt-label-width, 320px); padding: var(--hav-space-2) var(--hav-space-4); display: flex; align-items: center; border-right: 1px solid var(--hav-line); background: var(--hav-panel); position: sticky; left: 0; z-index: 6; }

.gantt-header-caption[b-3nggmgxcob] {
    text-transform: uppercase; letter-spacing: 0.05em; color: var(--hav-text-muted); font-weight: 600; }

.gantt-header-timeline[b-3nggmgxcob] {
    position: relative; flex: 1 1 auto; height: 40px; min-height: 40px; }

.month-marker[b-3nggmgxcob] {
    position: absolute; top: 0; height: 100%; padding: var(--hav-cell-pad); display: flex; align-items: center; border-left: 1px solid var(--hav-line); white-space: nowrap; }

.gantt-body[b-3nggmgxcob] {
    position: relative; background: var(--hav-ground); min-width: -moz-fit-content; min-width: -webkit-fit-content; min-width: -webkit-fill-available; min-width: fit-content; }

.gantt-today-line[b-3nggmgxcob] {
    position: absolute; top: 0; bottom: 0; width: 2px; background: var(--hav-info); z-index: 4; pointer-events: none; }

.gantt-today-label[b-3nggmgxcob] {
    position: absolute; top: 4px; left: 50%; transform: translateX(-50%); background: var(--hav-info); color: var(--hav-on-info); font-size: 0.6875rem; font-weight: 600; line-height: 1; padding: calc(var(--hav-space-2) / 2) var(--hav-space-2); border-radius: 3px; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; }

.gantt-group-header[b-3nggmgxcob] {
    position: absolute; left: 0; right: 0; height: 44px; display: flex; border-bottom: 1px solid var(--hav-line); background: var(--hav-panel); font-weight: 600; z-index: 2; }

.gantt-row-label[b-3nggmgxcob] {
    flex: 0 0 var(--gantt-label-width, 320px); width: var(--gantt-label-width, 320px); padding: 0 var(--hav-space-4); display: flex; align-items: center; background: var(--hav-panel); border-right: 1px solid var(--hav-line); min-width: 0; position: sticky; left: 0; z-index: 6; }

.gantt-row-timeline[b-3nggmgxcob] {
    position: relative; flex: 1 1 auto; min-height: 100%; }

.grid-line-divider[b-3nggmgxcob] {
    position: absolute; top: 0; bottom: 0; width: 1px; background: color-mix(in srgb, var(--hav-line) 30%, transparent); }

/* Legend strip: small marks + muted caption text, only what the plot draws. */
.gantt-legend[b-3nggmgxcob] {
    display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
    padding: var(--hav-space-3) var(--hav-space-4);
    border-top: 1px solid var(--hav-line);
    background: var(--hav-panel);
    border-radius: 0;
}

.gantt-legend__item[b-3nggmgxcob] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11.5px; color: var(--hav-text-muted);
}

.gantt-legend__mark[b-3nggmgxcob] {
    display: inline-block; width: 12px; height: 12px; flex: 0 0 auto; }

.gantt-legend__mark--fill[b-3nggmgxcob] {
    background: var(--hav-accent); }

.gantt-legend__mark--track[b-3nggmgxcob] {
    border: 1px solid var(--hav-line-strong); background: transparent; }

.gantt-legend__mark--today[b-3nggmgxcob] {
    width: 2px; background: var(--hav-info); }

.gantt-legend__mark--health-amber[b-3nggmgxcob] {
    width: 3px; background: var(--hav-warning); }

.gantt-legend__mark--health-red[b-3nggmgxcob] {
    width: 3px; background: var(--hav-error); }

.gantt-legend__overlap-icon[b-3nggmgxcob] {
    color: var(--hav-warning); }

.gantt-chart-card[b-3nggmgxcob]::-webkit-scrollbar {
    width: 12px; height: 12px; }

.gantt-chart-card[b-3nggmgxcob]::-webkit-scrollbar-track {
    background: var(--hav-ground); border-radius: 0; }

.gantt-chart-card[b-3nggmgxcob]::-webkit-scrollbar-thumb {
    background: var(--hav-text-muted); border-radius: 0; border: 2px solid var(--hav-ground); }
/* /Components/Pages/Operations/Components/ProjectGanttChartProjectRow.razor.rz.scp.css */
/* ProjectGanttChartProjectRow -- bespoke .hav-gantt row anatomy (Modules S.07-B).
   The bar is a neutral data mark: hairline planned-duration track, accent fill
   to progress. Lifecycle lives in the outline chip; the only plot colour is
   health (and overdue/error marks). */

.gantt-row[b-ayfql5t5jg] {
    position: absolute; left: 0; right: 0;
    display: flex;
    border-bottom: 1px solid color-mix(in srgb, var(--hav-line) 50%, transparent);
    background: var(--hav-panel);
}

.gantt-row:hover[b-ayfql5t5jg] {
    background: var(--hav-surface-raised);
}

.gantt-row-label[b-ayfql5t5jg] {
    flex: 0 0 var(--gantt-label-width, 320px); width: var(--gantt-label-width, 320px);
    padding: 0 var(--hav-space-3) 0 var(--hav-space-4);
    display: flex; align-items: center; gap: 8px;
    background: var(--hav-panel);
    border-right: 1px solid var(--hav-line);
    min-width: 0;
    /* Pinned to the frame's left edge so the row identity (number, name, chip,
       overflow) never scrolls off with the plot (Modules S.07-B). */
    position: sticky; left: 0; z-index: 6;
}

.gantt-row.grouped .gantt-row-label[b-ayfql5t5jg] {
    padding-left: calc(var(--hav-space-4) * 3);
}

.gantt-row-number[b-ayfql5t5jg] {
    font-family: var(--hav-font-mono);
    font-size: 11.5px;
    font-weight: 500;
    color: var(--hav-accent);
    text-decoration: none;
    white-space: nowrap;
    flex: 0 0 auto;
}

.gantt-row-number:hover[b-ayfql5t5jg] {
    text-decoration: underline;
}

.gantt-row-name[b-ayfql5t5jg] {
    font-size: 12.5px;
    color: var(--hav-text);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    flex: 1 1 auto; min-width: 0;
}

.gantt-row-overlap[b-ayfql5t5jg] {
    color: var(--hav-warning);
    flex: 0 0 auto;
}

.gantt-row-menu[b-ayfql5t5jg] {
    flex: 0 0 auto;
    margin-left: auto;
}

.gantt-row-timeline[b-ayfql5t5jg] {
    position: relative; flex: 1 1 auto; min-height: 100%;
}

.grid-line-divider[b-ayfql5t5jg] {
    position: absolute; top: 0; bottom: 0; width: 1px;
    background: color-mix(in srgb, var(--hav-line) 30%, transparent);
}

/* Neutral planned-duration track; the fill inside carries progress. */
.gantt-bar[b-ayfql5t5jg] {
    position: absolute;
    top: calc(50% - 10px);
    height: 20px;
    border: 1px solid var(--hav-line-strong);
    border-radius: 3px;
    overflow: hidden;
    background: var(--hav-panel);
    cursor: pointer;
    padding: 0;
    min-width: 8px;
    box-shadow: none;
}

.gantt-bar:hover[b-ayfql5t5jg] {
    border-color: var(--hav-accent);
}

.gantt-bar:focus-visible[b-ayfql5t5jg] {
    outline: 2px solid var(--hav-accent);
    outline-offset: 1px;
}

.gantt-bar__fill[b-ayfql5t5jg] {
    position: absolute; left: 0; top: 0; bottom: 0;
    background: var(--hav-accent);
}

.gantt-row.compact .gantt-bar[b-ayfql5t5jg] {
    top: calc(50% - 8px);
    height: 16px;
}

/* Health: the only colour in the plot -- a thin tick just past the bar end. */
.gantt-health-tick[b-ayfql5t5jg] {
    position: absolute;
    top: calc(50% - 10px);
    height: 20px;
    width: 3px;
    border-radius: 0;
}

.gantt-row.compact .gantt-health-tick[b-ayfql5t5jg] {
    top: calc(50% - 8px);
    height: 16px;
}

.gantt-health-tick--watch[b-ayfql5t5jg] {
    background: var(--hav-warning);
}

.gantt-health-tick--attention[b-ayfql5t5jg] {
    background: var(--hav-error);
}

/* Milestone: thin neutral hairline; overdue is an action state so it is error. */
.gantt-milestone[b-ayfql5t5jg] {
    position: absolute;
    top: calc(50% - 13px);
    height: 26px;
    width: 2px;
    background: var(--hav-line-strong);
    border-radius: 0;
}

.gantt-milestone--overdue[b-ayfql5t5jg] {
    background: var(--hav-error);
}

/* Compliance marker lives in the label cell, not the plot. */
.gantt-row-compliance[b-ayfql5t5jg] {
    color: var(--hav-text-muted);
    flex: 0 0 auto;
}

.gantt-row-compliance--missing[b-ayfql5t5jg] {
    color: var(--hav-warning);
}

/* Budget-vs-actual sub-bar: neutral fill; error only when over budget. */
.budget-sub-bar[b-ayfql5t5jg] {
    position: absolute;
    top: calc(50% + 12px);
    height: 4px;
    background: var(--hav-chart-track);
    border-radius: 0;
}

.gantt-row.compact .budget-sub-bar[b-ayfql5t5jg] {
    top: calc(50% + 10px);
}

.budget-sub-bar__fill[b-ayfql5t5jg] {
    height: 100%;
    background: var(--hav-text-muted);
}

.budget-sub-bar__fill--over[b-ayfql5t5jg] {
    background: var(--hav-error);
}
/* /Components/Pages/Operations/ContractorRegister/ContractorRegister.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-contractor-register-page-shell[b-iacxw5jgqq] {
    min-width: 0;
}

.operations-contractor-register-page-shell[b-iacxw5jgqq]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Dashboard/OperationsDashboard.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-dashboard-operations-dashboard-page-shell[b-g4tt8llsc1] {
    min-width: 0;
}
/* /Components/Pages/Operations/Dashboard/OperationsDashboardExport.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-dashboard-operations-dashboard-export-page-shell[b-zlzo4opk6r] {
    min-width: 0;
}
/* /Components/Pages/Operations/Equipment/EquipmentAdd.razor.rz.scp.css */
/* Equipment Add Page Styles - Minimal approach, let MudBlazor handle layout */

/* Loading Container */
.loading-container[b-rc8u1kviwu] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 50vh;
    flex-direction: column;
}

/* Responsive Design */
@media (max-width: 960px) {
    /* Stack action buttons on mobile */
[b-rc8u1kviwu] .mud-paper .mud-stack-row {
        flex-direction: column;
        gap: 0.5rem;
    }

        [b-rc8u1kviwu] .mud-paper .mud-stack-row > * {
            width: 100%;
        }
}

@media (max-width: 600px) {
    [b-rc8u1kviwu] .pa-4 {
        padding: 0.75rem !important;
    }
}

/* Accessibility */
[b-rc8u1kviwu] .mud-button-root:focus {
    outline: 2px solid var(--hav-accent);
    outline-offset: 2px;
}
/* /Components/Pages/Operations/Equipment/EquipmentDetails.razor.rz.scp.css */
/* Equipment Details Page Styles */

.equipment-header[b-x20zqo3sml] {
    background: var(--havto-brand-gradient);
}

.equipment-section[b-x20zqo3sml] {
    margin-bottom: var(--hav-space-4);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-equipment-details-page-shell[b-x20zqo3sml] {
    min-width: 0;
}
/* /Components/Pages/Operations/Equipment/EquipmentEdit.razor.rz.scp.css */
/* Equipment Edit Page Styles
   Only custom classes that benefit from scoped CSS isolation.
   MudBlazor utility classes (.d-flex, .pa-6, .gap-2, etc.) and
   internal component classes (.mud-input-*, .mud-button-root, etc.)
   are already provided globally - re-declaring them here is dead code
   because Blazor's [b-hash] scoping attribute won't match child elements. */

/* Change Detection - Highlight modified fields */
.field-modified[b-b8at7b3y0t] {
    border-left: 3px solid var(--hav-warning);
    padding-left: var(--hav-space-2);
}
/* /Components/Pages/Operations/Equipment/EquipmentExport.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-equipment-export-page-shell[b-ylii6f40is] {
    min-width: 0;
}
/* /Components/Pages/Operations/Equipment/EquipmentHistory.razor.rz.scp.css */
/* Equipment History Page Styles
   Only custom classes that benefit from scoped CSS isolation.
   MudBlazor utility classes (.d-flex, .pa-6, .gap-2, etc.) and
   internal component classes (.mud-tabs, .mud-card, .mud-chip, etc.)
   are already provided globally - re-declaring them here is dead code
   because Blazor's [b-hash] scoping attribute won't match child elements. */

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-equipment-history-page-shell[b-yyfoh7sj3e] {
    min-width: 0;
}
/* /Components/Pages/Operations/Equipment/EquipmentInspect.razor.rz.scp.css */
/* Equipment Inspect Page Styles
   Only custom classes that benefit from scoped CSS isolation.
   MudBlazor internal classes (.mud-form, .mud-input-*, .mud-button-root, etc.)
   won't match in scoped CSS because child elements lack the [b-hash] attribute. */

/* Inspection Checkbox Styling */
.inspection-checkbox[b-etns12n85s] {
    padding: var(--hav-space-2) 0;
}

/* Responsive Design */
@media (max-width: 960px) {
    .inspection-checkbox[b-etns12n85s] {
        padding: calc(var(--hav-space-2) / 2) 0;
    }
}
/* /Components/Pages/Operations/Equipment/EquipmentMaintenance.razor.rz.scp.css */
/* Equipment Maintenance Page Styles
   Only custom classes that benefit from scoped CSS isolation.
   MudBlazor internal classes (.mud-form, .mud-input-*, .mud-button-root, etc.)
   won't match in scoped CSS because child elements lack the [b-hash] attribute. */
/* /Components/Pages/Operations/Equipment/EquipmentRegister.razor.rz.scp.css */


/* Equipment Table */
.equipment-grid[b-rv9p3209q3] {
    min-height: 400px;
}

.equipment-name-cell[b-rv9p3209q3] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.equipment-details[b-rv9p3209q3] {
    display: flex;
    flex-direction: column;
}

.equipment-model[b-rv9p3209q3] {
    font-size: 0.875rem;
    color: var(--hav-text-muted);
}

/* Action Buttons */
.action-buttons[b-rv9p3209q3] {
    display: flex;
    gap: 0.25rem;
}

/* Loading State */
.loading-container[b-rv9p3209q3] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    flex-direction: column;
}

/* Schedule Cards */
.schedule-card[b-rv9p3209q3] {
    transition: background-color 0.2s ease;
}

/* Quick Checks */
.quick-check-list[b-rv9p3209q3] {
    list-style: none;
    padding: 0;
}

.quick-check-item[b-rv9p3209q3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--hav-line);
}

    .quick-check-item:last-child[b-rv9p3209q3] {
        border-bottom: none;
    }

/* Responsive Design */
@media (max-width: 960px) {
    .stats-card[b-rv9p3209q3] {
        min-height: 120px;
    }

    .stats-card-content[b-rv9p3209q3] {
        padding: 1rem;
    }

    .equipment-grid[b-rv9p3209q3] {
        font-size: 0.875rem;
    }

    .asset-number[b-rv9p3209q3] {
        font-size: 0.8rem;
    }
}

@media (max-width: 600px) {
    .action-buttons[b-rv9p3209q3] {
        flex-direction: column;
    }

    .stats-card-content[b-rv9p3209q3] {
        padding: 0.75rem;
    }
}

/* Chip Colors */
.category-chip[b-rv9p3209q3] {
    font-weight: 500;
}

.status-chip[b-rv9p3209q3] {
    font-weight: 500;
}

/* Filter Section */
.filter-controls[b-rv9p3209q3] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

@media (max-width: 600px) {
    .filter-controls[b-rv9p3209q3] {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-equipment-register-page-shell[b-rv9p3209q3] {
    min-width: 0;
}

.operations-equipment-register-page-shell[b-rv9p3209q3]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/FatigueManagement/FatigueManagementPage.razor.rz.scp.css */
.fatigue-management-risk-score[b-w29bjh8cfw] {
    width: 100px;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-fatigue-management-page-shell[b-w29bjh8cfw] {
    min-width: 0;
}
/* /Components/Pages/Operations/FatigueManagement/InterventionHistory.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-fatigue-management-intervention-history-page-shell[b-7q2b806idj] {
    min-width: 0;
}

.operations-fatigue-management-intervention-history-page-shell[b-7q2b806idj]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/HostCompliance/HostComplianceReviews.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-host-compliance-reviews-page-shell[b-1txs5wraal] {
    min-width: 0;
}
/* /Components/Pages/Operations/Permits/ExternalWorkPermitSignOff.razor.rz.scp.css */
.permit-details-surface[b-z27fqmszhr] {
    background-color: color-mix(in srgb, var(--hav-info) 20%, var(--hav-panel));
}
/* /Components/Pages/Operations/Permits/WorkPermitDetails.razor.rz.scp.css */
.work-permit-details__external-sign-off-meta[b-zxr0clrpnp] {
    font-size: 12px;
    color: var(--hav-text-muted);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-permits-work-permit-details-page-shell[b-zxr0clrpnp] {
    min-width: 0;
}
/* /Components/Pages/Operations/Permits/WorkPermits.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-permits-work-permits-page-shell[b-xyu9x1dzvr] {
    min-width: 0;
}

.operations-work-permits-page-shell[b-xyu9x1dzvr]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Permits/WorkPermitTemplatePreview.razor.rz.scp.css */
.template-control-measures-surface[b-nc77v1grjh] {
    background-color: var(--hav-surface-raised);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-permits-work-permit-template-preview-page-shell[b-nc77v1grjh] {
    min-width: 0;
}
/* /Components/Pages/Operations/PPE/PPERegister.razor.rz.scp.css */
/* PPE Register Page Styles */

/* Tab Content */
.tab-content[b-82i7yfr3v0] {
    padding: 1.5rem;
}

/* Inspection History */
.inspection-item[b-82i7yfr3v0] {
    transition: background-color 0.2s ease;
}/* removed hover fill: .inspection-item:hover */

/* Inventory Grid */
.inventory-grid[b-82i7yfr3v0] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

/* PPE Item Cards */
    .ppe-item-card:hover[b-82i7yfr3v0] {
        box-shadow: none;
    }

/* Status Badges */
.status-badge[b-82i7yfr3v0] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    border-radius: 0;
    font-size: 0.875rem;
    font-weight: 500;
}

.status-active[b-82i7yfr3v0] {
    background-color: color-mix(in srgb, var(--hav-success) 10%, transparent);
    color: var(--hav-success);
}

.status-expired[b-82i7yfr3v0] {
    background-color: color-mix(in srgb, var(--hav-error) 10%, transparent);
    color: var(--hav-error);
}

.status-pending[b-82i7yfr3v0] {
    background-color: color-mix(in srgb, var(--hav-warning) 10%, transparent);
    color: var(--hav-warning);
}

/* Responsive Design */
@media (max-width: 960px) {
    .inventory-grid[b-82i7yfr3v0] {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }

    .tab-content[b-82i7yfr3v0] {
        padding: 1rem;
    }
}

@media (max-width: 600px) {
    .inventory-grid[b-82i7yfr3v0] {
        grid-template-columns: 1fr;
    }

    .qr-code-image[b-82i7yfr3v0] {
        max-width: 100%;
    }
}

/* Accessibility */
.ppe-item-card:focus-within[b-82i7yfr3v0] {
    outline: 2px solid var(--hav-accent);
    outline-offset: 2px;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-ppe-register-page-shell[b-82i7yfr3v0] {
    min-width: 0;
}

.operations-ppe-register-page-shell[b-82i7yfr3v0]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Projects/ProjectDetail.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-projects-project-detail-page-shell[b-dqrrlryk53] {
    min-width: 0;
}
/* /Components/Pages/Operations/Projects/ProjectDetailCommandCenter.razor.rz.scp.css */
/* Project command center layout overrides (HAV2209). */

/* Attention and activity rows use a bounded list treatment with a hairline between items. */
.attention-list[b-qqcp4n26ii],
.activity-list[b-qqcp4n26ii] {
    display: flex;
    flex-direction: column;
}

.attention-row[b-qqcp4n26ii],
.activity-row[b-qqcp4n26ii] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: var(--hav-space-2) 0;
    border-bottom: 1px solid var(--hav-line);
}

/* Attention rows carry a severity chip before the message so the meaning is
   the first thing read, then the category/reference/issue (HAV2106). */
[b-qqcp4n26ii] .attention-chip {
    flex: 0 0 auto;
    margin-top: calc(var(--hav-space-2) / 4);
}

.attention-row:last-child[b-qqcp4n26ii],
.activity-row:last-child[b-qqcp4n26ii] {
    border-bottom: 0;
}

/* Evidence + activity are paired panels; height is the content's, not stretched
   (HAV2209). Tracks follow the kit default (1fr since v1.118.0). */
.hav-row.command-center-pair[b-qqcp4n26ii] {
    align-items: start;
}
/* /Components/Pages/Operations/Projects/ProjectDetailOverview.razor.rz.scp.css */
/* S11.21 (HAV2338) -- the overview rail carries a scope readout, not the tree:
   site count, non-zero category totals and one Open scope link. Natural-height
   plate, no chevrons and no rows to select, so it is not a second browser
   (HAV2146). */
.project-scope-readout__row[b-rjosdgquzy] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-height: 28px;
}

.project-scope-readout__label[b-rjosdgquzy] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-scope-readout__count[b-rjosdgquzy] {
    font-family: var(--hav-font-mono);
    color: var(--hav-text-muted);
    text-align: right;
}

.project-scope-readout__empty[b-rjosdgquzy] {
    color: var(--hav-text-muted);
}
/* /Components/Pages/Operations/Projects/Projects.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-projects-page-shell[b-5pdaixrvo8] {
    min-width: 0;
}

.operations-projects-page-shell[b-5pdaixrvo8]  .mud-table-container {
    max-height: 600px;
}

/* KPI row -- the register draws four fixed plates (Total / On Track / At Risk /
   Completed), so a page-scoped floor is a deliberate exception to .hav-row--kpi's
   240px default (HAV2210: four columns at >=1280, 180px plate minimum) rather than
   a new global token. Below this breakpoint the default floor applies and the row
   wraps/stacks like every other list page's KPI grid. */
@media (min-width: 1280px) {
    .operations-projects-page-shell[b-5pdaixrvo8]  .list-page-stats-grid {
        --hav-row-min: 180px;
    }
}
/* /Components/Pages/Operations/Projects/ProjectScope.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-projects-project-scope-page-shell[b-ny3n4dxcz2] {
    min-width: 0;
}

/* S11.21 / Modules 07-B H -- the Scope surface fills the viewport below the
   page header and the page does not scroll: the bound is relational (viewport
   less the appbar and the container's own margins), no pixel height is stated.
   The two panes inside each scroll on their own side (HAV2189). */
.project-scope-page[b-ny3n4dxcz2] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: calc(100dvh - var(--mud-appbar-height, 64px) - 2rem - env(safe-area-inset-top, 0px));
}

.project-scope-page > *[b-ny3n4dxcz2] {
    flex: none;
}

/* The two-pane grid is the one fill child: it takes whatever the header and
   crumbs leave of the bounded page, and its panes scroll inside it. */
.project-scope-page[b-ny3n4dxcz2]  .project-scope {
    flex: 1 1 auto;
    min-height: 0;
}

/* Below 960 the panes stack and the register follows on the page scroll, so
   the surface returns to natural height and the page scrolls normally. */
@media (max-width: 960px) {
    .project-scope-page[b-ny3n4dxcz2] {
        height: auto;
    }
}
/* /Components/Pages/Operations/Sites/SiteDayView.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-sites-site-day-view-page-shell[b-gt6p649hnx] {
    min-width: 0;
}
/* /Components/Pages/Operations/Sites/SiteDetails.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-sites-site-details-page-shell[b-o9ylvtmgb5] {
    min-width: 0;
}
/* /Components/Pages/Operations/Sites/Sites.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-sites-page-shell[b-7wlbwb0vcu] {
    min-width: 0;
}
/* /Components/Pages/Operations/Sites/SitesMapPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-sites-map-page-shell[b-4wbl9l9l4a] {
    min-width: 0;
}
/* /Components/Pages/Operations/Timesheets/LabourRates/LabourRates.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-timesheets-labour-rates-page-shell[b-vvk7jv0o8i] {
    min-width: 0;
}

.operations-timesheets-labour-rates-page-shell[b-vvk7jv0o8i]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Timesheets/MyTimesheets.razor.rz.scp.css */
/* MyTimesheets page shell -- native root for scoped CSS isolation. */
.my-timesheets-page-shell[b-ey1zj50o6s] {
    min-width: 0;
}

/* My Timesheets - day rail uses default Mud padding; detail pane expands for full-width table */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs-shell {
    min-height: min(34rem, calc(100vh - 14rem));
    max-height: min(40rem, calc(100vh - 12rem));
    overflow: hidden;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs {
    align-items: stretch;
    width: 100%;
    gap: 1rem;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tabs-tabbar {
    flex: 0 0 auto;
    padding-right: 0.5rem;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tabs-panels {
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tabs-panels.mud-tabs-vertical {
    flex-grow: 1;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab-panel {
    width: 100%;
    max-width: none;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panels {
    flex: 1 1 auto;
    min-width: 0;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panel {
    overflow-y: auto;
    overflow-x: hidden;
    height: 100%;
    width: 100%;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panel .mud-data-grid,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panel .mud-table,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panel .mud-table-root,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panel .mud-card {
    width: 100%;
    max-width: none;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panel .mud-table-root .mud-table-row {
    border-bottom: 1px solid var(--hav-line);
}

@media (max-width: 960px) {
    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs-shell {
        min-height: 0;
        min-height: auto;
        max-height: none;
    }

    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.is-today {
        border-left: none;
        border-bottom: 3px solid var(--hav-accent);
    }

    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-panel {
        max-height: min(28rem, calc(100vh - 22rem));
    }
}

/* ==========================================================================
   MyTimesheets Period entry & submit-for-approval blueprint alignment
   ========================================================================== */

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-week-shell {
    background: var(--hav-surface-section) !important;
    border: 1px solid var(--hav-line) !important;
    border-radius: 0 !important;
}

/* Period navigator */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-period-nav {
    display: flex;
    align-items: center;
    background: transparent !important;
    border: 1px solid var(--hav-line) !important;
    border-radius: 0 !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-period-label {
    display: inline-block;
    min-width: 170px;
    padding: 0 var(--hav-space-4) !important;
    border-left: 1px solid var(--hav-line) !important;
    border-right: 1px solid var(--hav-line) !important;
    text-align: center;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--hav-text) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-period-nav .mud-icon-button-root {
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    color: var(--hav-accent) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-period-nav .mud-icon-button-root:hover {
    background: color-mix(in srgb, var(--hav-accent) 10%, transparent) !important;
}

/* Day rail tab bar */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs {
    gap: 0;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tabs-tabbar {
    width: 130px;
    padding-right: 0;
    border-right: 1px solid var(--hav-line) !important;
    background: var(--hav-surface-section) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab {
    justify-content: flex-start;
    min-height: 48px;
    padding: var(--hav-space-3) var(--hav-space-4) !important;
    text-transform: none;
    border-left: 3px solid transparent !important;
    border-bottom: none !important;
    border-radius: 0 !important;
}.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab:hover {
  color: var(--hav-accent) !important
}

/* Date + status/badge share a line (blueprint: "24 * No entry" / "24 [8.00H]"),
   not three stacked rows -- keeps the rail compact and matches the mock's rhythm. */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .my-timesheet-day-date-row {
    flex-wrap: nowrap;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.mud-tab-active,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.is-today {
    border-left-color: var(--hav-accent) !important;
    background: color-mix(in srgb, var(--hav-accent) 10%, transparent) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .my-timesheet-day-name {
    font-family: var(--hav-font-head) !important;
    text-transform: uppercase !important;
    font-size: 10.5px !important;
    letter-spacing: 0.06em !important;
    color: var(--hav-text-label) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .my-timesheet-day-date {
    font-family: var(--hav-font-body) !important;
    font-size: 12px !important;
    color: var(--hav-text) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab:not(.mud-tab-active) .my-timesheet-day-date,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab:not(.mud-tab-active) .my-timesheet-day-status {
    color: var(--hav-text-muted) !important;
    opacity: 0.7;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .my-timesheet-day-status {
    font-size: 12px !important;
    color: var(--hav-text-muted) !important;
}

/* Decorative separator only -- "No entry" already carries the meaning, so the
   dot is a visual glyph, not a translated string. */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .my-timesheet-day-status::before {
    content: "\00B7\0020";
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.mud-tab-active .my-timesheet-day-name,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.is-today .my-timesheet-day-name,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.mud-tab-active .my-timesheet-day-date,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.is-today .my-timesheet-day-date,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.mud-tab-active .my-timesheet-day-status,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.is-today .my-timesheet-day-status {
    color: var(--hav-accent) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab:hover .my-timesheet-day-name,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab:hover .my-timesheet-day-date,
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab:hover .my-timesheet-day-status {
    color: var(--hav-accent) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .my-timesheet-day-hours {
    height: auto !important;
    padding: calc(var(--hav-space-2) / 4) var(--hav-space-2) !important;
    font-size: 10px !important;
    border-radius: 8px !important;
    font-family: var(--hav-font-head) !important;
}

/* Period entry area -- padding on all sides so content (title, Edit Entry button,
   hour cards, table) never touches the panel's hairline border (R2 spacing rhythm).
   MudTabPanel renders as display:contents, so the box has to live on the content
   wrapper inside it (.my-timesheet-day-content), not on .my-timesheets-day-panel. */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-day-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: var(--hav-panel-pad);
    box-sizing: border-box;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-day-grid-wrapper {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-day-header {
    gap: 9px;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-day-title {
    font-family: var(--hav-font-head) !important;
    text-transform: uppercase !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    color: var(--hav-text) !important;
}

/* Empty day panel: vertically center the title, body and Add Hours CTA. */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-empty {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100%;
    box-sizing: border-box;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-empty .mud-stack {
    justify-content: center;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-day-header .mud-button {
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    font-size: 11.5px !important;
    padding: calc(var(--hav-space-2) / 2) var(--hav-space-3) !important;
}

/* 4-hour value cards */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-hour-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-top: var(--hav-space-4);
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-hour-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 70px;
    padding: var(--hav-space-3) !important;
    background: var(--hav-surface-section) !important;
    border: 1px solid var(--hav-line) !important;
    border-radius: 0 !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-hour-card--total {
    background: var(--hav-surface-section) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-hour-label {
    font-family: var(--hav-font-head) !important;
    text-transform: uppercase !important;
    font-size: 10px !important;
    letter-spacing: 0.06em !important;
    color: var(--hav-text-label) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-hour-value {
    font-family: var(--hav-font-head) !important;
    font-size: 24px !important;
    line-height: 1 !important;
    margin-top: calc(var(--hav-space-2) / 2);
}

/* Submit bar */
.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-submit-bar {
    padding: var(--hav-panel-pad-compact) var(--hav-panel-pad);
    border-top: 1px solid var(--hav-line) !important;
    background: var(--hav-surface-chrome) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-submit-summary {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--hav-text) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-submit-status {
    font-size: 11.5px !important;
    color: var(--hav-text-muted) !important;
}

.my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-submit-bar .mud-button {
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    font-size: 13px !important;
    padding: var(--hav-space-2) var(--hav-space-4) !important;
}

@media (max-width: 1200px) {
    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-hour-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 960px) {
    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs {
        flex-direction: column !important;
    }

    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tabs-tabbar {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--hav-line);
    }

    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab {
        border-left: none !important;
        border-bottom: 3px solid transparent !important;
    }

    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.mud-tab-active,
    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheets-day-tabs .mud-tab.is-today {
        border-left-color: transparent !important;
        border-bottom-color: var(--hav-accent) !important;
    }
}

@media (max-width: 600px) {
    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-hour-cards {
        grid-template-columns: 1fr;
    }

    .my-timesheets-page-shell[b-ey1zj50o6s]  .my-timesheet-day-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

.operations-timesheets-my-timesheets-page-shell[b-ey1zj50o6s]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Timesheets/TimesheetAnalyticsPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-timesheets-timesheet-analytics-page-shell[b-saglq21hcl] {
    min-width: 0;
}
/* /Components/Pages/Operations/Timesheets/TimesheetApproval.razor.rz.scp.css */
/* TimesheetApproval Component Styles */

/* Summary Card Enhancements */
    .timesheet-approval-container .summary-card:hover[b-0fravbad99] {
        box-shadow: none;
    }

/* Exception Badge Styling */
.timesheet-approval-container .exception-badge[b-0fravbad99] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* Filter Section */
.timesheet-approval-container .filter-section[b-0fravbad99] {
    background: var(--hav-surface-raised);
    border-radius: 0;
}

/* Data Grid Enhancements */
.timesheet-approval-container .mud-table-cell[b-0fravbad99] {
    vertical-align: middle;
}

/* Avatar Styling */
.timesheet-approval-container .mud-avatar[b-0fravbad99] {
    font-weight: 600;
}

/* Bulk Actions Bar */
.timesheet-approval-container .bulk-actions-bar[b-0fravbad99] {
    background: color-mix(in srgb, var(--hav-accent) 20%, var(--hav-panel));
    border-left: 4px solid var(--hav-accent);
}

/* Tab Panel Content */
.timesheet-approval-container .mud-tabs-panels[b-0fravbad99] {
    min-height: 400px;
}

/* Exception Type Chips */
.timesheet-approval-container .exception-type-chip[b-0fravbad99] {
    display: inline-flex;
    align-items: center;
    margin: calc(var(--hav-space-2) / 4) 0;
}

/* Loading State */
.timesheet-approval-container .loading-state[b-0fravbad99] {
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Responsive Adjustments */
@media (max-width: 960px) {
    .timesheet-approval-container .export-button-group[b-0fravbad99] {
        flex-direction: column;
        width: 100%;
    }

        .timesheet-approval-container .export-button-group button[b-0fravbad99] {
            width: 100%;
        }
}/* removed hover fill: /* Action Menu Hover */
.timesheet-approval-container .mud-menu-item:hover */

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-timesheets-timesheet-approval-page-shell[b-0fravbad99] {
    min-width: 0;
}

.operations-timesheets-timesheet-approval-page-shell[b-0fravbad99]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Timesheets/TimesheetCreate.razor.rz.scp.css */
.timesheet-create-page-shell[b-lpov7c319q] {
    min-height: 100%;
}

.timesheet-create-page-shell .mud-paper[b-lpov7c319q] {
    border-radius: 8px;
}

.full-width[b-lpov7c319q] {
    grid-column: 1 / -1;
}
/* /Components/Pages/Operations/Timesheets/TimesheetExport.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-timesheets-timesheet-export-page-shell[b-2a98v5tmdd] {
    min-width: 0;
}

.operations-timesheets-timesheet-export-page-shell[b-2a98v5tmdd]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Timesheets/TimesheetRegister.razor.rz.scp.css */
.timesheet-register-page-shell[b-ceiokhiswm] {
    min-height: 100%;
}

.timesheet-register-page-shell .hav-table[b-ceiokhiswm] {
    width: 100%;
}
/* /Components/Pages/Operations/Timesheets/TimesheetRemindersPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-timesheets-reminders-page-shell[b-n4cuaz07cq] {
    min-width: 0;
}
/* /Components/Pages/Operations/Timesheets/WorkforcePlanningPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-timesheets-workforce-planning-page-shell[b-rd3bau2815] {
    min-width: 0;
}
/* /Components/Pages/Operations/Timesheets/WorkTypes/WorkTypes.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-timesheets-work-types-page-shell[b-j3jriosyot] {
    min-width: 0;
}

.operations-timesheets-work-types-page-shell[b-j3jriosyot]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Vehicles/JourneyDetails.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-vehicles-journey-details-page-shell[b-hbimebpofh] {
    min-width: 0;
}

/* Cancel journey button is a destructive primary action. 44px touch target,
   and full width when it wraps below the status chips on narrow screens. */
.journey-cancel[b-hbimebpofh] {
    min-height: 44px;
    height: 44px;
}

@media (max-width: 600px) {
    .journey-cancel[b-hbimebpofh] {
        width: 100%;
    }
}
/* /Components/Pages/Operations/Vehicles/JourneyDetailsMain.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-vehicles-journey-details-main-page-shell[b-sbalow3640] {
    min-width: 0;
}
/* /Components/Pages/Operations/Vehicles/JourneyHistory.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-vehicles-journey-history-page-shell[b-vbhwvvm71q] {
    min-width: 0;
}

.operations-vehicles-journey-history-page-shell[b-vbhwvvm71q]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Vehicles/LiveJourneys.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-vehicles-live-journeys-page-shell[b-kum05u75kv] {
    min-width: 0;
}

.operations-vehicles-live-journeys-page-shell[b-kum05u75kv]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Vehicles/PreStartCheck.razor.rz.scp.css */
.check-step[b-lmlw50vgc0] {
    min-height: 400px;
}

@media (max-width: 768px) {
    .check-step[b-lmlw50vgc0] {
        min-height: 300px;
    }
}

@media (max-width: 480px) {
    .check-step[b-lmlw50vgc0] {
        min-height: 250px;
    }
}

@media print {
    .check-step[b-lmlw50vgc0] {
        min-height: auto;
    }
}
/* /Components/Pages/Operations/Vehicles/VehicleDetails.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-vehicles-vehicle-details-page-shell[b-l8f9aely1e] {
    min-width: 0;
}
/* /Components/Pages/Operations/Vehicles/VehicleQRCodeManagement.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-vehicles-vehicle-qr-code-management-page-shell[b-0kwyc6mxqf] {
    min-width: 0;
}

.operations-vehicles-vehicle-qr-code-management-page-shell[b-0kwyc6mxqf]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Operations/Vehicles/VehicleRegister.razor.rz.scp.css */
/* Vehicles - Custom Styles */

/* Ensure proper spacing for vehicle info rows */
.vehicle-info-row[b-9zf5ybgk18] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Status indicators */
.service-overdue[b-9zf5ybgk18] {
    color: var(--hav-error);
    font-weight: bold;
}

.service-due-soon[b-9zf5ybgk18] {
    color: var(--hav-warning);
    font-weight: bold;
}

/* Vehicle type icons alignment */
.vehicle-type-icon[b-9zf5ybgk18] {
    margin-right: 0.5rem;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.operations-vehicles-vehicle-register-page-shell[b-9zf5ybgk18] {
    min-width: 0;
}

.operations-vehicles-vehicle-register-page-shell[b-9zf5ybgk18]  .mud-table-container {
    max-height: 600px;
}
/* /Components/Pages/Organizations/AddChildOrganization.razor.rz.scp.css */
.add-child-organization-loading[b-bj42ujimdw] {
    min-height: 400px;
}

.add-child-organization-preview-paper[b-bj42ujimdw] {
    border: 2px dashed var(--hav-accent);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.organizations-add-child-organization-page-shell[b-bj42ujimdw] {
    min-width: 0;
}
/* /Components/Pages/Organizations/Billing/Billing.razor.rz.scp.css */
[b-iggnbxpgv1] .billing-partner-discount {
 border-color: var(--hav-success);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.organizations-billing-page-shell[b-iggnbxpgv1] {
    min-width: 0;
}

[b-iggnbxpgv1] .storage-progress-track {
    width: 100%;
    height: 8px;
    border: 1px solid var(--hav-line);
    border-radius: 0;
    overflow: hidden;
}

[b-iggnbxpgv1] .storage-progress-bar {
    height: 100%;
    background: var(--hav-primary);
    transition: width 0.2s ease;
}
/* /Components/Pages/Organizations/Billing/BillingTimeline.razor.rz.scp.css */
.billing-timeline[b-25nsv33jiw]  .billing-timeline__actions {
    text-align: right;
}
/* /Components/Pages/Organizations/Billing/CapabilityActivationSheet.razor.rz.scp.css */
.capability-activation-sheet__content[b-ik23iubo4z] {
    overflow-y: auto;
    max-height: calc(100vh - 200px);
}

.capability-activation-sheet__upgrade-card[b-ik23iubo4z] {
    border-color: var(--hav-accent);
}
/* /Components/Pages/Organizations/Billing/PaymentMethodCard.razor.rz.scp.css */
/* No fill on the summary row -- .hav-section provides the container background (HAV2201). */
/* /Components/Pages/Organizations/ContractorBranchSharing.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.organizations-contractor-branch-sharing-page-shell[b-0s5e7rzgia] {
    min-width: 0;
}
/* /Components/Pages/Organizations/FailedNotifications.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.organizations-failed-notifications-page-shell[b-hz4v3mukl9] {
    min-width: 0;
}
/* /Components/Pages/Organizations/ManageOrganization.razor.rz.scp.css */
/* Page title -- 26px uppercase Barlow Condensed per the blueprint admin/settings hub. */
[b-ci4wo1jdk2] .hav-blueprint h4.hav-h {
    font-size: 26px;
    line-height: 1.1;
}

/* Stat plates on the org hub: text metrics read at 18px, counts at 28px. */
[b-ci4wo1jdk2] .hav-row--kpi > :nth-child(1) .hav-kpi__value,
[b-ci4wo1jdk2] .hav-row--kpi > :nth-child(2) .hav-kpi__value {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.1;
}

[b-ci4wo1jdk2] .hav-row--kpi > :nth-child(3) .hav-kpi__value,
[b-ci4wo1jdk2] .hav-row--kpi > :nth-child(4) .hav-kpi__value {
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
}

/* Panel content uses the global .hav-section token (20px). */

/* Section heading inside a destination panel -- 15px uppercase with slight tracking, blueprint 400 weight. */
[b-ci4wo1jdk2] .hav-settings__panel .hav-section .hav-h {
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.02em;
}

/* Field labels -- 11px muted body text per blueprint detail panel. */
[b-ci4wo1jdk2] .hav-settings__panel .hav-section .mud-typography-caption {
    font-size: 11px;
    color: var(--hav-text-muted);
}

/* Field values -- 600 weight for emphasis, not 700 bold. MudBlazor body2 is the 13px body slot. */
[b-ci4wo1jdk2] .hav-settings__panel .hav-section .mud-typography-body2.fw-bold {
    font-weight: 600;
}

/* Status chips in the org details panel use the blueprint chip pad token. */
[b-ci4wo1jdk2] .hav-settings__panel .hav-section .mud-chip {
    padding: var(--hav-chip-pad);
}

/* Edit icon button in the section header -- 30px square, hairline border. */
[b-ci4wo1jdk2] .hav-settings__panel .hav-section .mud-icon-button {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--hav-line);
}

.manage-org-hierarchy-description[b-ci4wo1jdk2] {
    flex: 1 1 240px;
    min-width: 0;
}

@media (min-width: 960px) {
    .manage-org-hierarchy-description[b-ci4wo1jdk2] {
        margin-left: 0.5rem;
    }
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.organizations-manage-organization-page-shell[b-ci4wo1jdk2] {
    min-width: 0;
}
/* /Components/Pages/Organizations/ManageOrganizationSettingsTab.razor.rz.scp.css */
/* Blueprint-aligned scoped styles for the organisation settings tab. */
.manage-org-settings-shell[b-t8zq1wovh6]  .hav-h {
    font-size: 13px !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hav-text) !important;
}

/* Inputs */
.manage-org-settings-shell[b-t8zq1wovh6]  .mud-input {
    background: var(--hav-panel);
    border-radius: 0;
    min-height: 36px;
    height: 36px;
}

.manage-org-settings-shell[b-t8zq1wovh6]  .mud-input .mud-input-slot {
    font-size: 14px;
    font-family: var(--hav-font-body);
    color: var(--hav-text);
    padding: var(--hav-space-2) var(--hav-space-4) !important;
}

.manage-org-settings-shell[b-t8zq1wovh6]  .mud-input-label {
    color: var(--hav-text-muted) !important;
    font-size: 12px !important;
}

/* Buttons */
.manage-org-settings-shell[b-t8zq1wovh6]  .mud-button {
    border-radius: 0;
    font-family: var(--hav-font-head);
    font-weight: 600;
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
    box-shadow: none;
    align-self: start;
    height: 36px !important;
    min-height: 36px;
    padding: var(--hav-space-2) var(--hav-space-3);
}

.manage-org-settings-shell[b-t8zq1wovh6]  .mud-button-filled.mud-button-filled-primary {
    background: var(--hav-accent);
    color: var(--hav-ground);
    border: 1px solid var(--hav-accent);
}

.manage-org-settings-shell[b-t8zq1wovh6]  .mud-button-filled.mud-button-filled-primary:hover {
    background: var(--hav-accent-strong);
}

.manage-org-settings-shell[b-t8zq1wovh6]  .mud-button-outlined {
    background: transparent;
    color: var(--hav-text);
    border: 1px solid var(--hav-line);
}

.manage-org-settings-shell[b-t8zq1wovh6]  .mud-button-outlined:hover {
    background: color-mix(in srgb, var(--hav-text) 7%, transparent);
}

.manage-org-settings-shell[b-t8zq1wovh6]  .mud-button-text {
    color: var(--hav-text);
}

/* Alerts */
.manage-org-settings-shell[b-t8zq1wovh6]  .mud-alert {
    border-radius: 0 !important;
    border: 1px solid var(--hav-line) !important;
    background: transparent !important;
}

/* Switch track */
.manage-org-settings-shell[b-t8zq1wovh6]  .mud-switch .mud-icon-button {
    border-radius: 50%;
}
/* /Components/Pages/Organizations/MyOrganizations.razor.rz.scp.css */
.loading-stack[b-tuo5qtn2o3] {
    min-height: 240px;
}

[b-tuo5qtn2o3] .organization-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--hav-line);
    padding: var(--hav-panel-pad);
}

[b-tuo5qtn2o3] .organization-card:hover {
    box-shadow: none;
}

[b-tuo5qtn2o3] .organization-card-active {
    border: 2px solid var(--hav-accent);
}

.organization-card-body[b-tuo5qtn2o3] {
    flex: 1 1 auto;
}

.organization-card-actions[b-tuo5qtn2o3] {
    margin-top: auto;
    border-top: 1px solid var(--hav-line);
    padding-top: var(--hav-space-3);
}

.organization-title[b-tuo5qtn2o3] {
    font-weight: 600;
    line-height: 1.3;
}

.organization-avatar[b-tuo5qtn2o3] {
    flex-shrink: 0;
}

.organization-admin-chip[b-tuo5qtn2o3] {
    align-self: flex-start;
    padding-left: 0;
}

[b-tuo5qtn2o3] .add-org-card {
    height: 100%;
    cursor: pointer;
    border: 1px dashed var(--hav-line) !important;
    padding: var(--hav-panel-pad);
    transition: border-color 0.2s ease, background-color 0.2s ease;
    display: flex;
    flex-direction: column;
}

[b-tuo5qtn2o3] .add-org-card:hover,
[b-tuo5qtn2o3] .add-org-card:focus-visible {
  border-color: var(--hav-accent)
}

.add-org-card-content[b-tuo5qtn2o3] {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.add-org-card-inner[b-tuo5qtn2o3] {
    width: 100%;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.organizations-my-organizations-page-shell[b-tuo5qtn2o3] {
    min-width: 0;
}
/* /Components/Pages/Organizations/ProjectPortfolio.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.organizations-project-portfolio-page-shell[b-5zv7nldx1q] {
    min-width: 0;
}
/* /Components/Pages/Oversight/AuditTrail.razor.rz.scp.css */
/* AuditTrail page shell -- provides a native root for scoped CSS isolation. */
.audit-trail-page-shell[b-s4pqmaztu6] {
    min-width: 0;
}

/* Audit trail has more filter controls than the canonical single-row bar can hold
   at the 1280 shell cap, so allow the filter bar to wrap on narrow desktop viewports. */
.audit-trail-page-shell[b-s4pqmaztu6]  .register-filter-row,
.audit-trail-page-shell[b-s4pqmaztu6]  .register-filter-controls {
    flex-wrap: wrap !important;
}

[b-s4pqmaztu6] .audit-metadata-tooltip {
    max-width: 600px;
}
/* /Components/Pages/Oversight/ComplianceReports.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.oversight-compliance-reports-page-shell[b-d68gaftb1x] {
    min-width: 0;
}
/* /Components/Pages/Oversight/HierarchyOverview.razor.rz.scp.css */
/* Intellectual Property Declaration
   This source code is solely authored and owned by Leonard Harris.
 No other party has contributed to its development.
   ? 2026 Havto Limited. All rights reserved. */

/* Hierarchy Overview Page Styles */

/* Compliance Table */
[b-z3p95p8ewm] .compliance-table-container {
    overflow-x: auto;
}

/* Performance Comparison Cards */
[b-z3p95p8ewm] .performance-card {
    min-height: 300px;
}

.performance-list-item[b-z3p95p8ewm] {
    padding: var(--hav-space-2) 0;
    border-bottom: 1px solid var(--hav-line);
}

    .performance-list-item:last-child[b-z3p95p8ewm] {
        border-bottom: none;
    }

/* Compliance Score Chip */
.compliance-chip[b-z3p95p8ewm] {
    font-weight: 600;
    min-width: 60px;
}

/* Organization Name */
.org-name[b-z3p95p8ewm] {
    font-weight: 500;
}

/* Export Button */
.export-menu[b-z3p95p8ewm] {
    margin-left: auto;
}

/* Responsive adjustments */
@media (max-width: 960px) {
    .performance-card[b-z3p95p8ewm] {
        min-height: 0;
    }
}

/* Action Button Hover */
.action-button:hover[b-z3p95p8ewm] {
    background-color: color-mix(in srgb, var(--hav-accent) 8%, transparent);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.oversight-hierarchy-overview-page-shell[b-z3p95p8ewm] {
    min-width: 0;
}
/* /Components/Pages/Oversight/MultiSiteOverview.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.oversight-multi-site-overview-page-shell[b-jx9q2kwx3g] {
    min-width: 0;
}
/* /Components/Pages/Platform/Account/ChangePassword.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-account-change-password-page-shell[b-sk3cg6dfnt] {
    min-width: 0;
}
/* /Components/Pages/Platform/Account/ConfirmEmail.razor.rz.scp.css */
/* Email Confirmation Page Styles - MudBlazor Pattern */

/* ============================================
   MAIN CONTAINER & LAYOUT
   ============================================ */
.confirm-email-page-container[b-a0xnf5ubu9] {
    min-height: 100vh ; display: flex ; align-items: center ; justify-content: center ; padding: 2rem 1rem ; background: var(--hav-ground) ; position: relative ; overflow: hidden ; }

    .confirm-email-page-container[b-a0xnf5ubu9]::before {
        display: none ; }

/* ============================================
   EMAIL ICON STATES
   ============================================ */
.email-icon-wrapper[b-a0xnf5ubu9] {
    position: relative ; background: color-mix(in srgb, var(--hav-info) 20%, var(--hav-panel)) ; border-radius: 0 ; transition: background 0.6s cubic-bezier(0.16, 1, 0.3, 1) ; animation: float 3s ease-in-out infinite ; }

    .email-icon-wrapper.error[b-a0xnf5ubu9] {
        background: color-mix(in srgb, var(--hav-error) 20%, var(--hav-panel)) ; animation: float 3s ease-in-out infinite, shake 0.5s ease-out ; }

.success-checkmark[b-a0xnf5ubu9] {
    background: var(--hav-panel) ; border-radius: 0 ; box-shadow: none; animation: bounceIn 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55) ; }

/* ============================================
   CONTENT SECTIONS
   ============================================ */
.loading-content[b-a0xnf5ubu9],
.success-content[b-a0xnf5ubu9],
.error-content[b-a0xnf5ubu9] {
    animation: fadeIn 0.8s ease-out 0.3s both ; }

.confirmation-title[b-a0xnf5ubu9] {
    font-weight: 700 ; color: var(--hav-text) ; animation: titleGlow 2s ease-in-out infinite alternate ; }

.error-title[b-a0xnf5ubu9] {
    color: var(--hav-error) ; font-weight: 700 ; }

/* ============================================
   QUICK STATS
   ============================================ */
.quick-stats[b-a0xnf5ubu9] {
    opacity: 0.8 ; transition: opacity 0.3s ease ; }

    .quick-stats:hover[b-a0xnf5ubu9] {
        opacity: 1 ; }

/* ============================================
   RESPONSIVE DESIGN
   ============================================ */
@media (max-width: 768px) {
    .confirm-email-page-container[b-a0xnf5ubu9] {
        padding: 1rem ; }

    .confirm-email-card[b-a0xnf5ubu9] {
        border-radius: 0 ; }

    .confirmation-title[b-a0xnf5ubu9] {
        font-size: 1.75rem ; }
}

@media (max-width: 480px) {
    .confirm-email-page-container[b-a0xnf5ubu9] {
        padding: 0.5rem ; }

    .confirm-email-card[b-a0xnf5ubu9] {
        border-radius: 0 ; }

    .email-icon-wrapper[b-a0xnf5ubu9] {
        padding: 1.5rem ; }
}
/* /Components/Pages/Platform/Account/ExportData.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-account-export-data-page-shell[b-1zqiy4atxx] {
    min-width: 0;
}
/* /Components/Pages/Platform/Account/RegisterConfirmation.razor.rz.scp.css */
/* Enhanced Registration Confirmation Page Styles - MudBlazor Pattern */

/* ============================================
   MAIN CONTAINER & LAYOUT
   ============================================ */
.confirmation-page-container[b-885c0p6j42] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background: var(--hav-ground);
    position: relative;
    overflow: hidden;
}

    .confirmation-page-container[b-885c0p6j42]::before {
        display: none;
    }

/* ============================================
   CONFIRMATION CARD
   ============================================ */
.confirmation-card[b-885c0p6j42] {
    background: var(--hav-panel);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-radius: 0;
    animation: slideInUpBrand 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    z-index: 1;
}

/* ============================================
   BRAND HEADER
   ============================================ */
.brand-header[b-885c0p6j42] {
    animation: fadeIn 0.6s ease-out;
}

.brand-logo[b-885c0p6j42] {
    width: 80px;
    height: 80px;
    background: var(--hav-accent);
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    position: relative;
    overflow: hidden;
}

.brand-name[b-885c0p6j42] {
    color: var(--havto-brand-start);
    font-weight: 600;
    letter-spacing: 1px;
}

/* ============================================
   EMAIL ICON SECTION
   ============================================ */
.email-icon-section[b-885c0p6j42] {
    animation: fadeInScale 0.8s ease-out 0.2s both;
}

.email-icon-wrapper[b-885c0p6j42] {
    background: color-mix(in srgb, var(--hav-info) 20%, var(--hav-panel));
    border-radius: 0;
    transition: background 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    animation: float 3s ease-in-out infinite;
}

    .email-icon-wrapper.initializing[b-885c0p6j42] {
        background: color-mix(in srgb, var(--hav-warning) 20%, var(--hav-panel));
        animation: float 3s ease-in-out infinite, pulse 2s ease-in-out infinite;
    }

    .email-icon-wrapper.sent[b-885c0p6j42] {
        background: color-mix(in srgb, var(--hav-success) 20%, var(--hav-panel));
        animation: float 3s ease-in-out infinite, celebration 0.6s ease-out;
    }

.confirmation-title[b-885c0p6j42] {
    font-weight: 700;
    color: var(--hav-text);
    animation: titleGlow 2s ease-in-out infinite alternate;
}

/* ============================================
   ACTION BUTTONS
   ============================================ */
.action-buttons[b-885c0p6j42] {
    animation: fadeIn 0.8s ease-out 1s both;
}

/* ============================================
   ERROR STATE
   ============================================ */
.error-title[b-885c0p6j42] {
    color: var(--hav-error);
    font-weight: 600;
}

/* ============================================
   RESPONSIVE DESIGN
   ============================================ */
@media (max-width: 768px) {
    .confirmation-page-container[b-885c0p6j42] {
        padding: 1rem;
    }

    .brand-logo[b-885c0p6j42] {
        width: 64px;
        height: 64px;
    }

    .confirmation-title[b-885c0p6j42] {
        font-size: 1.75rem;
    }
}

@media (max-width: 480px) {
    .confirmation-page-container[b-885c0p6j42] {
        padding: 0.5rem;
    }

    .confirmation-card[b-885c0p6j42] {
        border-radius: 0;
    }

    .brand-logo[b-885c0p6j42] {
        width: 56px;
        height: 56px;
    }
}
/* /Components/Pages/Platform/Account/Settings/Security.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-account-settings-security-page-shell[b-bf5xra8l8u] {
    min-width: 0;
}
/* /Components/Pages/Platform/Account/Verify2FA.razor.rz.scp.css */
.verify2fa-page-shell[b-o6i84i86lu] {
    min-height: 100dvh;
    min-height: 100svh;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: var(--havto-blueprint-bg);
}

.verify2fa-page-shell[b-o6i84i86lu]  .verify2fa-card {
    position: relative;
    z-index: 1;
    background: var(--havto-blueprint-surface) !important;
    border: 1px solid var(--havto-blueprint-divider) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--havto-blueprint-text);
    animation: slideInUpBrand 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.verify2fa-page-shell[b-o6i84i86lu]  .verify2fa-title {
    color: var(--havto-blueprint-text);
    font-weight: var(--font-heading-weight, 600);
}

.verify2fa-page-shell[b-o6i84i86lu]  .verify2fa-description {
    color: var(--havto-blueprint-text);
    opacity: 0.85;
}

.verify2fa-page-shell[b-o6i84i86lu]  .verify2fa-code-input input {
    font-family: var(--hav-font-mono);
    font-size: 1.25rem;
    letter-spacing: 0.35em;
    text-align: center;
}

/* Input fields */
.verify2fa-page-shell[b-o6i84i86lu]  .mud-input {
    background: var(--havto-blueprint-surface);
    border-radius: 0;
    min-height: 36px;
    height: 36px;
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-input .mud-input-slot {
    font-size: 14px;
    font-family: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: var(--havto-blueprint-text);
    padding: var(--hav-space-2) var(--hav-space-4) !important;
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-input-label {
    color: var(--havto-blueprint-text-muted) !important;
    font-size: 12px !important;
}

/* Buttons */
.verify2fa-page-shell[b-o6i84i86lu]  .mud-button {
    border-radius: 0;
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
    box-shadow: none;
    height: 36px !important;
    min-height: 36px;
    padding: var(--hav-btn-pad-compact);
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-button-filled.mud-button-filled-primary {
    background: var(--havto-blueprint-accent);
    color: var(--havto-blueprint-bg);
    border: 1px solid var(--havto-blueprint-accent);
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-button-filled.mud-button-filled-primary:hover {
    background: var(--havto-blueprint-accent-600);
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-button-outlined {
    background: transparent;
    color: var(--havto-blueprint-text);
    border: 1px solid var(--havto-blueprint-divider);
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-button-outlined:hover {
    background: color-mix(in srgb, var(--havto-blueprint-text) 7%, transparent);
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-button-text {
    color: var(--havto-blueprint-text);
}

/* S.9.9.1 mobile variant - flat 360 column on the ground, top-aligned, no card. */
.verify2fa-page-shell--mobile[b-o6i84i86lu] {
    max-width: 360px;
    margin-inline: auto;
}

.verify2fa-page-shell--mobile[b-o6i84i86lu]  .verify2fa-card--mobile {
    background: transparent;
    border: none;
    box-shadow: none;
    animation: none;
}

.verify2fa-page-shell--mobile[b-o6i84i86lu]  .mud-button {
    min-height: 44px;
    height: 44px !important;
}

/* Alert panels */
.verify2fa-page-shell[b-o6i84i86lu]  .mud-alert {
    border-radius: 0 !important;
    border: 1px solid var(--havto-blueprint-divider) !important;
    background: transparent !important;
}

.verify2fa-page-shell[b-o6i84i86lu]  .mud-alert .mud-typography-body2,
.verify2fa-page-shell[b-o6i84i86lu]  .mud-alert .mud-typography-subtitle2 {
    color: var(--havto-blueprint-text);
}

/* Checkbox label */
.verify2fa-page-shell[b-o6i84i86lu]  .mud-checkbox .mud-typography-body2 {
    color: var(--havto-blueprint-text);
}

/* /Components/Pages/Platform/Admin/BackgroundJobDeadLetters.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-background-job-dead-letters-page-shell[b-7tx4jxriey] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/BusinessRulesAnalytics.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-business-rules-analytics-page-shell[b-aslmtvpbqt] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/BusinessRulesManagement.razor.rz.scp.css */
/* Business Rules Management Component Styles */

/* Header Section */
.business-rules-header[b-ug44htfuk4] {
    background: color-mix(in srgb, var(--hav-info) 5%, transparent);
    border-left: 4px solid var(--hav-info);
    transition: background 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

    .business-rules-header:hover[b-ug44htfuk4] {
        box-shadow: none;
    }

/* Business Rule Card */
.business-rule-card[b-ug44htfuk4] {
    border: 1px solid var(--hav-line);
    background: var(--hav-panel);
}

    .business-rule-card:hover[b-ug44htfuk4] {
        border-color: color-mix(in srgb, var(--hav-info) 20%, transparent);
    }

/* Template Card */
.template-card[b-ug44htfuk4] {
    border: 1px solid var(--hav-line);
}

    .template-card:hover[b-ug44htfuk4] {
        border-color: color-mix(in srgb, var(--hav-info) 20%, transparent);
    }

/* Violations Table */
.violations-table[b-ug44htfuk4] {
    border-radius: 0;
    overflow: hidden;
}

:deep(.mud-tab-panel)[b-ug44htfuk4] {
    animation: slideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Rule Name Text */
:deep(.business-rule-card .mud-text-h6)[b-ug44htfuk4] {
    color: var(--hav-text);
    font-weight: 600;
}

/* Responsive Adjustments */
@media (max-width: 960px) {
    .business-rule-card[b-ug44htfuk4] {
        margin-bottom: var(--hav-space-2);
    }

    .template-card[b-ug44htfuk4] {
        margin-bottom: var(--hav-space-3);
    }

    .stat-card[b-ug44htfuk4] {
        margin-bottom: var(--hav-space-3);
    }
}

@media (max-width: 600px) {
    .business-rules-header[b-ug44htfuk4] {
        border-left-width: 3px;
    }
}

/* Alert Styles */
:deep(.business-rules-header .mud-alert)[b-ug44htfuk4] {
    background-color: color-mix(in srgb, var(--hav-info) 5%, transparent);
    border-left: 4px solid var(--hav-info);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-business-rules-management-page-shell[b-ug44htfuk4] {
    min-width: 0;
}

/* Organisation context -- a region below the tab strip inside the same .hav-section
   frame; separate it at section rhythm so it never hugs the tab content above. */
.business-rules-org-context[b-ug44htfuk4] {
    margin-top: var(--hav-section-rhythm, var(--hav-panel-pad-feature));
}
/* /Components/Pages/Platform/Admin/Compliance/ComplianceValidatorsSmokeTest.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-compliance-validators-smoke-test-page-shell[b-yr7xuoa3jv] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/Compliance/StandardsReference.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-compliance-standards-reference-page-shell[b-ncxrfo3poq] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/Compliance/StandardsStatus.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-compliance-standards-status-page-shell[b-b6i742o3p4] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/DatabaseMigrationStatus.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-database-migration-status-page-shell[b-j78e4a81mb] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/FailedNotifications.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-failed-notifications-page-shell[b-wssw8du4fb] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/Integrations/WebhookConfiguration.razor.rz.scp.css */
.webhook-configuration__header[b-hllcq6xsi2] {
    width: 100%;
}

.webhook-configuration__url[b-hllcq6xsi2] {
    font-size: 13px;
}
/* /Components/Pages/Platform/Admin/Marketing/Index.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-marketing-index-page-shell[b-g9fhxpg4yi] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/Members.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-members-page-shell[b-6q9d3vq7o9] {
    min-width: 0;
}

/* KPI row -- up to 5 fixed, named metrics (Total Members / Pending Invitations /
   Payroll Mapped / Active Today / 2FA Enabled), not a data-driven collection, so a
   page-scoped floor is a deliberate exception to .hav-row--kpi's 240px default
   (see havto-blueprint.css Section 11.6) rather than a new global token. Below this
   breakpoint the default 240px floor applies and the row wraps/stacks like every
   other list page's KPI grid. */
@media (min-width: 1280px) {
    .platform-admin-members-page-shell[b-6q9d3vq7o9]  .list-page-stats-grid {
        --hav-row-min: 190px;
    }
}
/* /Components/Pages/Platform/Admin/OperationalPackNamingExperiment.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-operational-pack-naming-experiment-page-shell[b-mf2a98t74g] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/SiteReclassificationPage.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-site-reclassification-page-shell[b-ole63rjhfh] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/TenantOperationalKillSwitch.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-tenant-operational-kill-switch-page-shell[b-049fajbkdb] {
    min-width: 0;
}
/* /Components/Pages/Platform/Admin/TrainingBackfillCoreType.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-admin-training-backfill-core-type-page-shell[b-frwnvswl48] {
    min-width: 0;
}
/* /Components/Pages/Platform/Authentication/AccessDenied.razor.rz.scp.css */
[b-t6enyzjj0k] .access-denied-icon {
    font-size: 80px;
}
/* /Components/Pages/Platform/Authentication/CalendarOAuthCallback.razor.rz.scp.css */
.calendar-oauth-callback__status-icon[b-0amk8clz4j] {
 font-size: 4rem;
}
/* /Components/Pages/Platform/Authentication/ForgotPassword.razor.rz.scp.css */
.forgot-password-card[b-p6kvhd6mi6] {
    width: 100%; border-radius: 0; }

.forgot-password-header[b-p6kvhd6mi6] {
    text-align: center; }

.forgot-password-title[b-p6kvhd6mi6] {
    font-weight: 600 ; }

.reset-button[b-p6kvhd6mi6] {
    height: 48px ; font-weight: 600 ; }
/* /Components/Pages/Platform/Authentication/Landing.razor.rz.scp.css */
/* Single-column marketing landing + auth modal.
   Maps HAVTO_landing/index.html classes to the Havto Blueprint token set. */

/* Shared typography */
.display[b-o0lckb1s2w] {
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: clamp(48px, 7vw, 96px);
    line-height: clamp(50px, 7.3vw, 100px);
    letter-spacing: 0.01em;
    text-transform: uppercase;
    margin: 0;
    margin-left: -0.052em;
    white-space: normal;

    text-box: trim-both cap alphabetic;
    outline: none;
}

.display .line[b-o0lckb1s2w] {
    display: block;
}

.sub[b-o0lckb1s2w] {
    font-size: 16px;
    line-height: var(--leading);
    max-width: var(--measure);
    color: var(--havto-blueprint-text);
    margin: calc(1.5 * var(--leading) - 1cap) 0 0;
    white-space: normal;

    text-box: trim-both cap alphabetic;
}

.kicker[b-o0lckb1s2w] {
    display: block;
    font-size: 13px;
    line-height: var(--half);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--havto-blueprint-accent-700);
    font-feature-settings: "tnum" 1;
    margin: 0 0 var(--half);
}

.caption-rule[b-o0lckb1s2w] {
    height: 1px;
    border: 0;
    margin: 0 0 calc(var(--leading) - var(--half));
    background: var(--havto-blueprint-divider);
}

.row[b-o0lckb1s2w] {
    display: flex;
    gap: var(--havto-blueprint-space-3);
    flex-wrap: wrap;
    align-items: center;
    margin-top: var(--leading);
}

.row[b-o0lckb1s2w]  .mud-button {
    border-radius: 0;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
    font-family: var(--font-heading);
    font-size: 14px;
    padding: var(--havto-blueprint-space-2) calc(var(--havto-blueprint-space-3) * 1.2);
    width: auto !important;
    box-shadow: none;
}

.row[b-o0lckb1s2w]  .mud-button.mud-button-filled {
    border: 1px solid var(--havto-blueprint-accent);
    background: var(--havto-blueprint-accent);
    color: var(--havto-blueprint-bg);
    box-shadow: none;
}

.row[b-o0lckb1s2w]  .mud-button.mud-button-filled:hover {
    background: var(--havto-blueprint-accent-600);
    box-shadow: none;
    font-size: 14px;
    padding: var(--havto-blueprint-space-2) calc(var(--havto-blueprint-space-3) * 1.2);
}

.row[b-o0lckb1s2w]  .mud-button.mud-button-outlined {
    border: 1px solid transparent;
    color: var(--havto-blueprint-accent);
    background: transparent;
    padding-inline: var(--havto-blueprint-space-1);
    box-shadow: none;
}

.row[b-o0lckb1s2w]  .mud-button.mud-button-outlined:hover {
    background: var(--havto-blueprint-accent);
    background: color-mix(in srgb, var(--havto-blueprint-accent) 10%, transparent);
    box-shadow: none;
}

/* Hero */
.hero[b-o0lckb1s2w] {
    padding: calc(4 * var(--leading)) 0 calc(3 * var(--leading));
}

/* Spec sheet */
.sheet[b-o0lckb1s2w] {
    padding: calc(3 * var(--leading)) 0 calc(2.5 * var(--leading));
}

.plate[b-o0lckb1s2w] {
    position: relative;
    border: 1px solid var(--havto-blueprint-divider);
    overflow: visible;
    background: transparent;
}

.title-block[b-o0lckb1s2w] {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    border-bottom: 1px solid var(--havto-blueprint-divider);
}

.title-block > span[b-o0lckb1s2w] {
    padding: var(--half) var(--leading);
    font-size: 13px;
    line-height: var(--leading);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    font-feature-settings: "tnum" 1;
}

.tb-title[b-o0lckb1s2w] {
    flex: 1;
    min-width: 16ch;
}

.tb-cell[b-o0lckb1s2w] {
    border-left: 1px solid var(--havto-blueprint-divider);
    white-space: nowrap;
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 70%, transparent);
}

.spec[b-o0lckb1s2w] {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

.spec col.c-num[b-o0lckb1s2w] { width: calc(3 * var(--leading)); }
.spec col.c-prop[b-o0lckb1s2w] { width: 30%; }
.spec col.c-val[b-o0lckb1s2w] { width: 21%; }
.spec col.c-rem[b-o0lckb1s2w] { width: auto; }

.spec th[b-o0lckb1s2w],
.spec td[b-o0lckb1s2w] {
    padding: var(--half) var(--leading) var(--half) 0;
    vertical-align: middle;
    border-bottom: 1px solid var(--havto-blueprint-divider);
    text-align: left;
}

.spec th:first-child[b-o0lckb1s2w],
.spec td:first-child[b-o0lckb1s2w] {
    padding-left: var(--leading);
}

.spec th[b-o0lckb1s2w] {
    font-size: 13px;
    line-height: var(--half);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 70%, transparent);
    font-feature-settings: "tnum" 1;
}

.spec td[b-o0lckb1s2w] {
    font-size: 15px;
    line-height: var(--leading);
    color: var(--havto-blueprint-text);
}

.spec .s-num[b-o0lckb1s2w] {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--havto-blueprint-accent-700);
    font-feature-settings: "tnum" 1;
}

.spec .s-val[b-o0lckb1s2w] {
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: 22px;
    line-height: var(--leading);
    letter-spacing: 0.02em;
    font-feature-settings: "tnum" 1;
    white-space: nowrap;
}

.spec .s-rem[b-o0lckb1s2w] {
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 78%, transparent);
}

.spec tbody tr:last-child td[b-o0lckb1s2w] {
    border-bottom: 0;
}

.sheet-note[b-o0lckb1s2w] {
    margin: 0;
    padding: var(--half) var(--leading);
    border-top: 1px solid var(--havto-blueprint-divider);
    font-size: 13px;
    line-height: var(--leading);
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 70%, transparent);
}

.sheet-note a[b-o0lckb1s2w] {
    color: var(--havto-blueprint-accent);
    text-underline-offset: 3px;
}

/* Feature / tier cells */
.features[b-o0lckb1s2w] {
    padding: calc(3 * var(--leading)) 0 calc(2.5 * var(--leading));
}

.features > .caption-rule[b-o0lckb1s2w] {
    margin-bottom: calc(var(--leading) + var(--havto-blueprint-space-2));
}

.cells[b-o0lckb1s2w] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 3vw, 48px);
    margin-top: calc(var(--leading) - var(--half));
}

.cell-frame[b-o0lckb1s2w] {
    position: relative;
    border: 1px solid var(--havto-blueprint-divider);
    padding: var(--leading);
    background: transparent;
}

.cell-frame h2[b-o0lckb1s2w] {
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: 22px;
    line-height: var(--leading);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin: 0;
    white-space: normal;

}

.cell-frame p[b-o0lckb1s2w] {
    font-size: 15px;
    line-height: var(--leading);
    margin: calc(var(--leading) - 1cap) 0 0;
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 78%, transparent);
    white-space: normal;

}

.tier-tag[b-o0lckb1s2w] {
    display: block;
    font-size: 15px;
    line-height: var(--leading);
    color: var(--havto-blueprint-accent-700);
    font-weight: 600;
    margin: calc(var(--leading) - 1cap) 0 0;
    white-space: normal;

}

.tier-mods[b-o0lckb1s2w] {
    margin-top: var(--half);
}

/* Split / gap */
.split[b-o0lckb1s2w] {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: var(--leading) clamp(24px, 5vw, 96px);
    align-items: center;
    padding: calc(2 * var(--leading)) 0 calc(3 * var(--leading));
}

.split-title[b-o0lckb1s2w] {
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: 32px;
    line-height: calc(1.5 * var(--leading));
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin: 0;
    white-space: normal;

}

.note[b-o0lckb1s2w] {
    font-size: 15px;
    line-height: var(--leading);
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 78%, transparent);
    margin: calc(var(--leading) - 1cap) 0 0;
    max-width: 48ch;
    white-space: normal;

}

.split-figure[b-o0lckb1s2w] {
    position: relative;
    margin: 0;
    border: 1px solid var(--havto-blueprint-divider);
    overflow: visible;
}

/* Reg / standards */
.reg[b-o0lckb1s2w] {
    padding: calc(2.5 * var(--leading)) 0;
}

.reg .split-title[b-o0lckb1s2w] {
    max-width: 20ch;
}

.lead[b-o0lckb1s2w] {
    font-size: 15px;
    line-height: var(--leading);
    max-width: var(--measure);
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 78%, transparent);
    margin: calc(var(--leading) - 1cap) 0 0;
    white-space: normal;

}

.tag-row[b-o0lckb1s2w] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--half);
    margin-top: calc(1.5 * var(--leading));
}

.tag-row[b-o0lckb1s2w]  .mud-chip {
    border-radius: 0;
    border: 1px solid var(--havto-blueprint-accent-600);
    background: transparent;
    color: var(--havto-blueprint-accent);
    font-weight: 400;
    letter-spacing: 0.02em;
    font-size: 11px;
    padding: var(--hav-chip-pad);
}

/* Quote */
.quote[b-o0lckb1s2w] {
    padding: calc(2.5 * var(--leading)) 0 calc(3.5 * var(--leading));
}

.quote blockquote.blueprint-quote[b-o0lckb1s2w] {
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: clamp(26px, 2.8vw, 36px);
    line-height: calc(1.5 * var(--leading));
    letter-spacing: 0;
    max-width: 36ch;
    margin: 0;
    text-indent: -0.316em;
    text-box: trim-both cap alphabetic;
}

.quote figcaption.blueprint-quote-caption[b-o0lckb1s2w] {
    font-size: 15px;
    line-height: var(--leading);
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 70%, transparent);
    margin: calc(2 * var(--leading) - 1cap) 0 0;
    text-indent: -0.885em;
    text-box: trim-both cap alphabetic;
}

@media (max-width: 720px) {
    .quote blockquote.blueprint-quote[b-o0lckb1s2w],
    .quote figcaption.blueprint-quote-caption[b-o0lckb1s2w] {
        text-indent: 0;
    }
}

/* Close / start */
.close[b-o0lckb1s2w] {
    padding: calc(2.5 * var(--leading)) 0 calc(2 * var(--leading));
}

.close h3[b-o0lckb1s2w] {
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: 24px;
    line-height: var(--leading);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin: 0;
    white-space: normal;

}

.close .sub[b-o0lckb1s2w] {
    font-size: 15px;
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 78%, transparent);
}

.signup[b-o0lckb1s2w] {
    display: flex;
    gap: var(--havto-blueprint-space-3);
    align-items: stretch;
    margin-top: var(--leading);
}

.signup .input[b-o0lckb1s2w] {
    flex: 1;
    min-height: 36px;
    padding: var(--havto-blueprint-space-2) var(--havto-blueprint-space-3);
    border: 1px solid var(--havto-blueprint-divider);
    background: var(--havto-blueprint-bg);
    background: color-mix(in srgb, var(--havto-blueprint-text) 8%, var(--havto-blueprint-bg));
    color: var(--havto-blueprint-text);
    caret-color: var(--havto-blueprint-accent);
    font-family: inherit;
    font-size: 14px;
}

.signup .input:hover[b-o0lckb1s2w] {
    border-color: var(--havto-blueprint-text);
    border-color: color-mix(in srgb, var(--havto-blueprint-text) 45%, transparent);
}

.signup .input:focus-visible[b-o0lckb1s2w] {
    border-color: var(--havto-blueprint-accent);
    outline: 2px solid var(--havto-blueprint-accent);
    outline-offset: 0;
}

.signup .input:focus[b-o0lckb1s2w] {
    outline: 2px solid var(--havto-blueprint-accent);
    outline-offset: 2px;
}

.signup[b-o0lckb1s2w]  .mud-button {
    border-radius: 0;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
    font-family: var(--font-heading);
    font-size: 14px;
    padding: var(--havto-blueprint-space-2) calc(var(--havto-blueprint-space-3) * 1.2);
    border: 1px solid var(--havto-blueprint-accent);
    background: var(--havto-blueprint-accent);
    color: var(--havto-blueprint-bg);
    width: auto !important;
    box-shadow: none;
}

.signup[b-o0lckb1s2w]  .mud-button:hover {
    background: var(--havto-blueprint-accent-600);
    box-shadow: none;
    font-size: 14px;
    padding: var(--havto-blueprint-space-2) calc(var(--havto-blueprint-space-3) * 1.2);
}

/* Responsive */
@media (max-width: 880px) {
    .cells[b-o0lckb1s2w] {
        grid-template-columns: 1fr;
        gap: calc(var(--leading) + 16px);
    }
}

@media (max-width: 720px) {
    .hero[b-o0lckb1s2w] {
        padding-top: calc(2.5 * var(--leading));
    }

    .display[b-o0lckb1s2w] {
        font-size: clamp(40px, 10vw, 64px);
        line-height: 1.06;
    }

    .split[b-o0lckb1s2w] {
        grid-template-columns: 1fr;
        padding-top: var(--leading);
    }

    .split-figure[b-o0lckb1s2w] {
        order: -1;
    }

    .title-block[b-o0lckb1s2w] {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .tb-title[b-o0lckb1s2w] {
        grid-column: 1 / -1;
        border-bottom: 1px solid var(--havto-blueprint-divider);
    }

    .title-block > .tb-cell[b-o0lckb1s2w] {
        border-left: 0;
        border-top: 1px solid var(--havto-blueprint-divider);
        padding-left: var(--leading);
    }

    .tb-title + .tb-cell + .tb-cell[b-o0lckb1s2w] {
        border-left: 1px solid var(--havto-blueprint-divider);
        padding-left: var(--half);
    }

    .tb-cell:last-child[b-o0lckb1s2w] {
        grid-column: 1 / -1;
    }

    .spec thead[b-o0lckb1s2w] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .spec[b-o0lckb1s2w],
    .spec tbody[b-o0lckb1s2w],
    .spec td[b-o0lckb1s2w] {
        display: block;
    }

    .spec tr[b-o0lckb1s2w] {
        display: grid;
        grid-template-columns: max-content 1fr;
        column-gap: var(--half);
        row-gap: var(--half);
        align-items: baseline;
        padding: var(--leading);
        border-bottom: 1px solid var(--havto-blueprint-text);
        border-bottom: 1px solid color-mix(in srgb, var(--havto-blueprint-text) 8%, transparent);
    }

    .spec tr:last-child[b-o0lckb1s2w] {
        border-bottom: 0;
    }

    .spec th[b-o0lckb1s2w],
    .spec td[b-o0lckb1s2w] {
        padding: 0;
        border: 0;
    }

    .spec th:first-child[b-o0lckb1s2w],
    .spec td:first-child[b-o0lckb1s2w] {
        padding-left: 0;
    }

    .spec .s-num[b-o0lckb1s2w] {
        grid-column: 1;
    }

    .spec .s-prop[b-o0lckb1s2w] {
        grid-column: 2;
    }

    .spec .s-val[b-o0lckb1s2w],
    .spec .s-rem[b-o0lckb1s2w] {
        grid-column: 1 / -1;
    }
}

@supports (text-wrap: pretty) {
    .display[b-o0lckb1s2w],
    .sub[b-o0lckb1s2w],
    .cell-frame h2[b-o0lckb1s2w],
    .cell-frame p[b-o0lckb1s2w],
    .tier-tag[b-o0lckb1s2w],
    .split-title[b-o0lckb1s2w],
    .note[b-o0lckb1s2w],
    .lead[b-o0lckb1s2w],
    .close h3[b-o0lckb1s2w] {
        text-wrap: pretty;
    }
}
/* /Components/Pages/Platform/Authentication/Logout.razor.rz.scp.css */
.logout-card[b-4cwaf8n010] {
    width: 100%;
    border-radius: 0;
    text-align: center;
    box-shadow: none;
}

.logout-content[b-4cwaf8n010] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

    .logout-content .mud-progress-circular[b-4cwaf8n010] {
        animation: pulse 1.5s ease-in-out infinite;
    }
/* /Components/Pages/Platform/Authentication/MobileSignIn.razor.rz.scp.css */
/* S.9.9.1 / Mobile S.04-D - flat column on the ground; the shared lockout note keeps the
   marketing modal's .oidc-note structure (strong lead + inline link) without the card. */

/* S.04-D: the one primary action is filled and square. */
.mobile-sign-in-column[b-7kd9cdt1jx]  .mud-button {
    border-radius: 0;
}

.mobile-sign-in-oidc-note[b-7kd9cdt1jx] {
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

.mobile-sign-in-oidc-note strong[b-7kd9cdt1jx] {
    display: block;
    color: var(--mud-palette-text-primary);
    font-weight: 600;
}
/* /Components/Pages/Platform/Authentication/Profile.razor.rz.scp.css */
.profile-loading-container[b-6mx3neys71] {
    min-height: 50vh;
}

.profile-avatar[b-6mx3neys71] {
    width: 96px;
    height: 96px;
    font-size: 2rem;
    flex-shrink: 0;
}

.profile-photo-actions[b-6mx3neys71] {
    flex: 1;
    min-width: 0;
}

.profile-preview-image[b-6mx3neys71] {
    max-width: 100%;
    max-height: 320px;
    border-radius: 0;
}

.profile-thumbnail-wrapper[b-6mx3neys71] {
    text-align: center;
}

.profile-thumbnail-image[b-6mx3neys71] {
    width: 48px;
    height: 48px;
    border-radius: 0;
}

.profile-cropper-image[b-6mx3neys71] {
    max-width: 100%;
}

/* Suppress empty MudFileUpload chrome when using CustomContent */
[b-6mx3neys71] .profile-page .mud-file-upload-custom-content:empty {
    display: none;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-authentication-profile-page-shell[b-6mx3neys71] {
    min-width: 0;
}
/* /Components/Pages/Platform/Billing/ConsolidatedInvoice.razor.rz.scp.css */
.consolidated-invoice[b-gl92z386pp]  .consolidated-invoice-loading {
    min-height: 400px;
}

.consolidated-invoice[b-gl92z386pp]  .consolidated-invoice-breakdown-subtotal {
    border-top: 2px solid var(--hav-line);
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-billing-consolidated-invoice-page-shell[b-gl92z386pp] {
    min-width: 0;
}
/* /Components/Pages/Platform/Billing/PaymentSuccess.razor.rz.scp.css */
.payment-success__loading[b-s3l9xgdt47] {
 min-height: 300px;
}

.payment-success__success-icon[b-s3l9xgdt47] {
 font-size: 4rem;
}

.payment-success__transaction-id[b-s3l9xgdt47] {
 font-family: var(--hav-font-mono);
}

.payment-success__info-icon[b-s3l9xgdt47] {
 font-size: 3rem;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-billing-payment-success-page-shell[b-s3l9xgdt47] {
    min-width: 0;
}
/* /Components/Pages/Platform/Calendar/Calendar.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-calendar-page-shell[b-qxxrwge0ou] {
    min-width: 0;
}

/* The month view is the one full-bleed exception to the content-width cap (Sec. 11.6).
   The calendar fills the content axis and any detail panel stacks below it. */
.calendar-row[b-qxxrwge0ou] {
    grid-template-columns: 1fr;
}

/* Heron.MudCalendar renders each month event in an absolutely-positioned container
   whose width is the number of spanned columns. The template root must be a clipping
   boundary so long event titles cannot spill outside the event bar. */
.calendar-event-stack[b-qxxrwge0ou] {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    padding: calc(var(--hav-space-2) / 2);
    box-sizing: border-box;
}

/* Force the event chip to fill the template root and clip any overflowing text.
   Without this, the chip can expand to the size of the unwrapped title and visually
   overflow the calendar cell. */
.hav-cal-ev[b-qxxrwge0ou] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-top: calc(var(--hav-space-2) / 2);
}

/* Event-load skeleton: week-row blocks sized to the calendar grid they replace. */
[b-qxxrwge0ou] .calendar-skeleton-week {
    min-height: 120px;
}
/* /Components/Pages/Platform/Calendar/QuickActionPanel.razor.rz.scp.css */
/* (c) 2026 Havto Limited. All rights reserved. */

.hav-quick-action[b-t51e7kbths] {
    cursor: pointer;
}
/* /Components/Pages/Platform/Dashboard/Admin.razor.rz.scp.css */
.admin-container[b-g1d2wfhgep] {
    padding: var(--hav-panel-pad-feature);
}

.admin-header[b-g1d2wfhgep] {
    margin-bottom: calc(var(--hav-space-4) * 2);
    text-align: center;
}

.admin-card[b-g1d2wfhgep] {
    height: 100%;
}

    .admin-card .mud-button[b-g1d2wfhgep] {
        margin-top: auto;
    }

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-dashboard-admin-page-shell[b-g1d2wfhgep] {
    min-width: 0;
}
/* /Components/Pages/Platform/Dashboard/Download.razor.rz.scp.css */
.download-platform-card[b-98viphar6f] {
 cursor: pointer; transition: border-color 0.3s ease; }

 .download-platform-card:hover[b-98viphar6f] {
 border-color: var(--hav-accent) ; box-shadow: none; }
/* /Components/Pages/Platform/Dashboard/RateLimitExceeded.razor.rz.scp.css */
.rate-limit-container[b-v8bu1797c7] {
    min-height: 80vh;
    display: flex;
    align-items: center;
    background: color-mix(in srgb, var(--hav-warning) 20%, var(--hav-panel));
}

.rate-limit-icon[b-v8bu1797c7] {
    animation: pulseScale-b-v8bu1797c7 2s infinite;
}

.countdown-container[b-v8bu1797c7] {
    background: var(--hav-surface-raised);
    border-radius: 0;
}

.countdown-display[b-v8bu1797c7] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.countdown-number[b-v8bu1797c7] {
    font-size: 3rem;
    font-weight: bold;
    color: var(--hav-warning);
    font-variant-numeric: tabular-nums;
    min-width: 100px;
    text-align: center;
}

.countdown-label[b-v8bu1797c7] {
    font-size: 1.2rem;
    color: var(--hav-text-muted);
    font-weight: 500;
}

.tips-section[b-v8bu1797c7] {
    text-align: left;
    background: color-mix(in srgb, var(--hav-success) 8%, transparent);
    border-radius: 0;
    border: 1px solid color-mix(in srgb, var(--hav-success) 30%, transparent);
}

.tips-list[b-v8bu1797c7] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.action-buttons .mud-button[b-v8bu1797c7] {
    min-width: 120px;
}

@keyframes pulseScale-b-v8bu1797c7 {
    0%, 100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.1);
    }
}
/* /Components/Pages/Platform/Marketing/About.razor.rz.scp.css */
.about-stats-grid[b-un9fkybhol] {
    max-width: 900px;
}

.about-message-card[b-un9fkybhol] {
    display: flex;
    flex-direction: column;
}

.about-difference-card--traditional[b-un9fkybhol] {
    border-left: 4px solid var(--hav-error);
}

.about-difference-card--havto[b-un9fkybhol] {
    border-left: 4px solid var(--hav-success);
}
/* /Components/Pages/Platform/Marketing/Evidence.razor.rz.scp.css */
[b-q5sx1jbr7v] .marketing-page {
 animation: fadeIn-b-q5sx1jbr7v 0.5s ease-in; }

[b-q5sx1jbr7v] .evidence-max-width-780 {
 max-width: 780px; }

[b-q5sx1jbr7v] .evidence-max-width-800 {
 max-width: 800px; }

[b-q5sx1jbr7v] .evidence-max-width-720 {
 max-width: 720px; }

[b-q5sx1jbr7v] .evidence-live-pulse-paper {
 background: color-mix(in srgb, var(--hav-success) 5%, transparent) ; overflow: hidden; }

[b-q5sx1jbr7v] .compliance-pulse {
 animation: pulse-glow-b-q5sx1jbr7v 2s ease-in-out infinite;
 min-width: 0;
 width: 100%;
 position: relative; }

[b-q5sx1jbr7v] .pulse-label {
 position: absolute;
 left: 0;
 top: 0;
 bottom: 0;
 z-index: 2;
 display: flex;
 align-items: center;
 gap: 0.5rem;
 padding: 0 1.5rem 0 0.75rem;
 width: 8.75rem;
 background: linear-gradient(
  90deg,
  color-mix(in srgb, var(--hav-success) 22%, transparent) 0%,
  color-mix(in srgb, var(--hav-success) 18%, transparent) 60%,
  transparent 100%
 );
 -webkit-backdrop-filter: blur(3px);
 backdrop-filter: blur(3px);
 border-top-left-radius: 0;
 border-bottom-left-radius: 0; }

[b-q5sx1jbr7v] .pulse-dot {
 animation: pulse-scale-b-q5sx1jbr7v 2s ease-in-out infinite; }

[b-q5sx1jbr7v] .pulse-ticker {
 flex: 1;
 min-width: 0;
 overflow: hidden;
 position: relative;
 padding-left: 8.75rem;
 -webkit-mask-image: linear-gradient(
  270deg,
  transparent 0%,
  black 1.5rem,
  black calc(100% - 1.5rem),
  transparent 100%
 );
 mask-image: linear-gradient(
  270deg,
  transparent 0%,
  black 1.5rem,
  black calc(100% - 1.5rem),
  transparent 100%
 ); }

[b-q5sx1jbr7v] .ticker-content {
 display: inline-block;
 animation: scroll-left-b-q5sx1jbr7v 30s linear infinite;
 white-space: nowrap;
 overflow: visible;
 padding-left: 0.25rem;
 color: var(--hav-text-muted); }

[b-q5sx1jbr7v] .evidence-carousel {
 display: flex ; flex-direction: column ; width: 100%; min-height: 28rem ; height: auto ; }

[b-q5sx1jbr7v] .evidence-carousel > .mud-swipearea {
 position: relative; flex: 1 1 auto; width: 100%; min-height: 20rem; }

[b-q5sx1jbr7v] .evidence-carousel > .d-flex {
 flex: 0 0 auto ; width: 100%; align-self: stretch ; padding-top: 0.75rem; }

[b-q5sx1jbr7v] .evidence-carousel .mud-carousel-item {
 overflow-y: auto; padding-bottom: 0.5rem; }

[b-q5sx1jbr7v] .evidence-stat-tile {
 border-radius: 0 ; }

[b-q5sx1jbr7v] .evidence-stat-tile--primary {
 background: color-mix(in srgb, var(--hav-accent) 10%, transparent) ; }

[b-q5sx1jbr7v] .evidence-stat-tile--success {
 background: color-mix(in srgb, var(--hav-success) 10%, transparent) ; }

[b-q5sx1jbr7v] .evidence-stat-tile--warning {
 background: color-mix(in srgb, var(--hav-warning) 10%, transparent) ; }

[b-q5sx1jbr7v] .evidence-stat-tile--error {
 background: color-mix(in srgb, var(--hav-error) 10%, transparent) ; }

[b-q5sx1jbr7v] .evidence-loading-stack {
 min-height: 350px; }

[b-q5sx1jbr7v] .evidence-coverage-card {
 border-color: color-mix(in srgb, var(--hav-accent) 35%, transparent) ; }

[b-q5sx1jbr7v] .evidence-coverage-badge {
 color: var(--hav-text) ; opacity: 0.9; }

[b-q5sx1jbr7v] .evidence-coverage-body {
 color: var(--hav-text-muted) ; }

[b-q5sx1jbr7v] .evidence-small-avatar {
 font-size: 0.75rem; }

[b-q5sx1jbr7v] .evidence-highlight-panel {
 border-radius: 0 ; }

[b-q5sx1jbr7v] .evidence-comparison-card--generic {
 border-color: var(--hav-error) ; opacity: 0.85; }

[b-q5sx1jbr7v] .evidence-comparison-card--havto {
 border-color: var(--hav-success) ; }

@keyframes pulse-glow-b-q5sx1jbr7v {
 0%, 100% {
 background-color: transparent;
 background-color: color-mix(in srgb, var(--hav-success) 5%, transparent); }

 50% {
 background-color: rgba(0, 0, 0, 0.05);
 background-color: color-mix(in srgb, var(--hav-success) 10%, transparent); }
}

@keyframes pulse-scale-b-q5sx1jbr7v {
 0%, 100% {
 transform: scale(1); }

 50% {
 transform: scale(1.2); }
}

@keyframes scroll-left-b-q5sx1jbr7v {
 0% {
 transform: translateX(0); }

 100% {
 transform: translateX(-50%); }
}

@keyframes fadeIn-b-q5sx1jbr7v {
 from {
 opacity: 0; transform: translateY(20px); }

 to {
 opacity: 1; transform: translateY(0); }
}
/* /Components/Pages/Platform/Marketing/Features.razor.rz.scp.css */
[b-ucmpsgj88w] .features-hero-callout {
    max-width: 700px;
}

[b-ucmpsgj88w] .features-body-max-width {
    max-width: 720px;
}

[b-ucmpsgj88w] .features-card-header-row {
    width: 100%;
}

[b-ucmpsgj88w] .features-smart-modules-body {
    max-width: 680px;
}

[b-ucmpsgj88w] .features-italic-note {
    font-style: italic;
}
/* /Components/Pages/Platform/Marketing/Pricing.razor.rz.scp.css */
[b-mx02198lgx] .pricing-transparency-paper {
    border-radius: 0;
}

[b-mx02198lgx] .pricing-max-width-680 {
    max-width: 680px;
}

[b-mx02198lgx] .pricing-max-width-640 {
    max-width: 640px;
}

[b-mx02198lgx] .pricing-max-width-960 {
    max-width: 960px;
}

[b-mx02198lgx] .pricing-formula-text {
    font-family: var(--hav-font-mono);
    font-size: 1.05rem;
    font-weight: 600;
}

.pricing-capability-grid-wrapper[b-mx02198lgx] {
    overflow-x: auto;
}

.pricing-capability-grid-table[b-mx02198lgx] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.pricing-capability-grid-header-row[b-mx02198lgx] {
    border-bottom: 2px solid var(--hav-line);
}

.pricing-capability-grid-feature-header[b-mx02198lgx] {
    width: 40%;
    padding: var(--hav-cell-pad);
    text-align: left;
}

.pricing-capability-grid-plan-header[b-mx02198lgx] {
    padding: var(--hav-cell-pad);
    text-align: center;
}

.pricing-capability-grid-row[b-mx02198lgx] {
    border-bottom: 1px solid var(--hav-line);
}

.pricing-capability-grid-feature-cell[b-mx02198lgx] {
    padding: var(--hav-cell-pad);
}

.pricing-capability-grid-plan-cell[b-mx02198lgx] {
    padding: var(--hav-cell-pad);
    text-align: center;
}

[b-mx02198lgx] .pricing-note-text {
    font-style: italic;
}

[b-mx02198lgx] .pricing-warning-callout {
    border-color: var(--hav-warning);
    border-width: 1px;
}

[b-mx02198lgx] .pricing-operational-highlight {
    border: 1px solid var(--hav-warning);
}

[b-mx02198lgx] .pricing-professional-highlight {
    border: 2px solid var(--hav-accent);
}
/* /Components/Pages/Platform/Marketing/Support.razor.rz.scp.css */
[b-2cylgcpbee] .support-surface {
 border-radius: 0 !important;
}

.support-grid[b-2cylgcpbee] {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 24px clamp(24px, 5vw, 72px);
    align-items: start;
    padding: var(--hav-panel-pad-feature) 0 calc(var(--hav-space-4) * 3);
}

.support-aside[b-2cylgcpbee] {
    display: grid;
    gap: clamp(20px, 3vw, 32px);
}

.support-aside[b-2cylgcpbee]  .support-surface h3 {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.support-aside[b-2cylgcpbee]  .support-surface p {
    margin-top: var(--hav-space-2);
    margin-bottom: 0;
}

@media (max-width: 880px) {
    .support-grid[b-2cylgcpbee] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Platform/Mobile/MobileRedirect.razor.rz.scp.css */
.mobile-redirect-container[b-2nynwf02jm] {
 min-height: 100vh;
 display: flex;
 align-items: center;
 justify-content: center;
 background: var(--hav-surface-raised);
 padding: var(--hav-panel-pad);
 }

 .redirect-card[b-2nynwf02jm] {
 background: var(--hav-panel);
 border-radius: 0;
 box-shadow: none;
 max-width: 400px;
 width: 100%;
 overflow: hidden;
 }

 .card-header[b-2nynwf02jm] {
 background: var(--hav-accent);
 padding: calc(var(--hav-space-4) * 2) var(--hav-panel-pad-feature);
 text-align: center;
 }

 .havto-logo[b-2nynwf02jm] {
 width: 80px;
 height: 80px;
 background: var(--hav-panel);
 border-radius: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 margin: 0 auto var(--hav-space-4);
 font-size: 32px;
 font-weight: bold;
 color: var(--hav-accent);
 }

 .card-header h1[b-2nynwf02jm] {
 color: var(--hav-panel);
 margin: 0;
 font-size: 24px;
 font-weight: 600;
 }

 .card-header p[b-2nynwf02jm] {
 color: color-mix(in srgb, var(--hav-panel) 90%, transparent);
 margin: var(--hav-space-2) 0 0;
 font-size: 14px;
 }

 .card-body[b-2nynwf02jm] {
 padding: calc(var(--hav-space-4) * 2) var(--hav-panel-pad-feature);
 }

 .status-message[b-2nynwf02jm] {
 text-align: center;
 margin-bottom: var(--hav-panel-pad-feature);
 }

 .status-icon[b-2nynwf02jm] {
 font-size: 48px;
 margin-bottom: var(--hav-space-3);
 }

 .btn-primary[b-2nynwf02jm] {
 display: block;
 width: 100%;
 padding: var(--hav-commit-pad);
 background: var(--hav-accent);
 color: var(--hav-on-accent);
 border: none;
 border-radius: 0;
 font-size: 16px;
 font-weight: 600;
 cursor: pointer;
 text-decoration: none;
 text-align: center;
 margin-bottom: var(--hav-space-3);
 transition: background 0.2s;
 }

 .btn-primary:hover[b-2nynwf02jm] {
 background: var(--hav-accent-strong);
 }

 .btn-secondary[b-2nynwf02jm] {
 display: block;
 width: 100%;
 padding: var(--hav-space-4) var(--hav-panel-pad-feature);
 background: var(--hav-panel);
 color: var(--hav-accent);
 border: 2px solid var(--hav-accent);
 border-radius: 0;
 font-size: 14px;
 font-weight: 600;
 cursor: pointer;
 text-decoration: none;
 text-align: center;
 margin-bottom: var(--hav-space-3);
 transition: background 0.2s ease;
 }

 .btn-secondary:hover[b-2nynwf02jm] {
 background: color-mix(in srgb, var(--hav-accent) 80%, var(--hav-panel));
 }

 .divider[b-2nynwf02jm] {
 display: flex;
 align-items: center;
 margin: var(--hav-panel-pad-feature) 0;
 }

 .divider-line[b-2nynwf02jm] {
 flex: 1;
 height: 1px;
 background: var(--hav-line);
 }

 .divider-text[b-2nynwf02jm] {
 padding: 0 var(--hav-space-4);
 color: var(--hav-text-muted);
 font-size: 12px;
 text-transform: uppercase;
 }

 .store-badges[b-2nynwf02jm] {
 display: flex;
 justify-content: center;
 gap: 12px;
 flex-wrap: wrap;
 }

 .store-badges a img[b-2nynwf02jm] {
 height: 44px;
 border-radius: 0;
 }

 .device-info[b-2nynwf02jm] {
 text-align: center;
 margin-top: var(--hav-space-4);
 padding-top: var(--hav-space-4);
 border-top: 1px solid var(--hav-line);
 }

 .device-info p[b-2nynwf02jm] {
 margin: 0;
 font-size: 12px;
 color: var(--hav-text-muted);
 }

 .loading-spinner[b-2nynwf02jm] {
 display: flex;
 justify-content: center;
 margin: var(--hav-panel-pad) 0;
 }

 .spinner[b-2nynwf02jm] {
 width: 40px;
 height: 40px;
 border: 4px solid var(--hav-surface-raised);
 border-top: 4px solid var(--hav-accent);
 border-radius: 0;
 animation: spin-b-2nynwf02jm 1s linear infinite;
 }

 @keyframes spin-b-2nynwf02jm {
 0% {
 transform: rotate(0deg);
 }

 100% {
 transform: rotate(360deg);
 }
 }
/* /Components/Pages/Platform/Onboarding/ComplianceRegionSelection.razor.rz.scp.css */
/* ::deep: these classes sit on MudPaper roots, which never carry this
   component's scope attribute. The extra classes also lift these rules above
   the .hav-app outlined-paper normalizer (4-class !important). */
[b-krnlf4akx2] .region-select-card {
    height: 100%;
    min-height: 220px;
    padding: var(--hav-panel-pad);
    transition: border-color 0.3s ease, background-color 0.3s ease;
    display: flex;
    flex-direction: column;
}

.region-select-content[b-krnlf4akx2] {
    flex: 1;
    display: flex;
    flex-direction: column;
}

[b-krnlf4akx2] .region-select-card.region-card-selected.mud-paper.mud-paper-outlined {
    border: 2px solid var(--hav-accent) !important;
    background: var(--hav-panel) !important;
}

[b-krnlf4akx2] .region-select-card.region-card-unselected.mud-paper.mud-paper-outlined {
    border: 1px solid var(--hav-line) !important;
    background: var(--hav-panel) !important;
}

[b-krnlf4akx2] .region-select-card.region-card-unselected.mud-paper.mud-paper-outlined:hover {
    border-color: var(--hav-accent) !important;
}
/* /Components/Pages/Platform/Onboarding/ModuleConfiguration.razor.rz.scp.css */
[b-yvc2v95jvh] .module-card-selected {
    border: 3px solid var(--hav-success);
}

.module-card-unselected[b-yvc2v95jvh] {
    cursor: pointer;
}

[b-yvc2v95jvh] .tier-card-selected {
    cursor: pointer;
    border: 2px solid var(--hav-accent) !important;
    background: var(--hav-panel) !important;
}

/* HAV2130: three plan cards hold one equal-height row (the drawing's floor is
   230px per card); never let a third card orphan onto a half-empty second row.
   Below the three-fit width the row stacks single-column instead. */
.hav-row--tier[b-yvc2v95jvh] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 720px) {
    .hav-row--tier[b-yvc2v95jvh] {
        grid-template-columns: 1fr;
    }
}

[b-yvc2v95jvh] .tier-card-unselected {
    cursor: pointer;
    border: 1px solid var(--hav-line) !important;
    background: var(--hav-panel) !important;
}

[b-yvc2v95jvh] .tier-card-unselected:hover {
    border-color: var(--hav-accent) !important;
}

/* ::deep: MudIcon roots never carry this component's scope attribute. */
[b-yvc2v95jvh] .tier-bullet-icon {
    font-size: 0.5rem;
}

@media (max-width:768px) {
    .module-card[b-yvc2v95jvh] {
        margin-bottom: 0.5rem;
    }
}
/* /Components/Pages/Platform/Onboarding/OnboardingConfirmation.razor.rz.scp.css */
.onboarding-plan-card[b-bb485m9nab] {
    border: 2px solid var(--hav-accent);
}
/* /Components/Pages/Platform/Profile/AllNotifications.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-profile-all-notifications-page-shell[b-cpb4afg37p] {
    min-width: 0;
}
/* /Components/Pages/Platform/Profile/CalendarIntegrations.razor.rz.scp.css */
.calendar-integrations-empty-state[b-ui4aoteuhh] {
 background-color: var(--hav-surface-raised);
}

.calendar-integrations-empty-state__icon[b-ui4aoteuhh] {
 font-size: 4rem;
}

.calendar-integrations-provider-button[b-ui4aoteuhh] {
 justify-content: flex-start;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-profile-calendar-integrations-page-shell[b-ui4aoteuhh] {
    min-width: 0;
}
/* /Components/Pages/Platform/Profile/NotificationSettings.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-profile-notification-settings-page-shell[b-qgm08b5un8] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/Components/DocumentationPanel.razor.rz.scp.css */
.code-block-surface[b-3hroykemr3] {
    background: var(--hav-surface-raised);
}

.code-block-content[b-3hroykemr3] {
    margin: 0;
    overflow-x: auto;
    font-size: 12px;
}
/* /Components/Pages/Platform/Settings/Integrations/Components/EventCategoryCard.razor.rz.scp.css */
.event-card[b-n1d7jam40e] {
    height: 100%;
}

.event-type[b-n1d7jam40e] {
    background: var(--hav-surface-raised);
    padding: var(--hav-chip-pad);
    border-radius: 0;
    font-size: 14px;
    color: var(--hav-accent);
}

.event-payload[b-n1d7jam40e] {
    background: var(--hav-surface-raised);
    border-left: 3px solid var(--hav-accent);
}

.event-payload-content[b-n1d7jam40e] {
    margin: 0;
    font-size: 11px;
    overflow-x: auto;
}
/* /Components/Pages/Platform/Settings/Integrations/Components/SchemaViewerDialog.razor.rz.scp.css */
.schema-payload[b-uq4d6yz6bn] {
    background: var(--hav-surface-raised);
    border-left: 3px solid var(--hav-accent);
}

.schema-payload-content[b-uq4d6yz6bn] {
    margin: 0;
    font-size: 12px;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}
/* /Components/Pages/Platform/Settings/Integrations/InboundIntegrationConfigure.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-inbound-integration-configure-page-shell[b-jjcr94ar62] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/InboundIntegrationHub.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-inbound-integration-hub-page-shell[b-42iw08p2t2] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/InboundIntegrationRequestLogs.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-inbound-integration-request-logs-page-shell[b-vigkzt3ljd] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/InboundIntegrationTesting.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-inbound-integration-testing-page-shell[b-2krs8665lz] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/WebhookConfiguration.razor.rz.scp.css */
.webhook-configuration__header[b-ggogjjrkwm] {
    width: 100%;
}

.webhook-configuration__url[b-ggogjjrkwm] {
    font-size: 13px;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-webhook-configuration-page-shell[b-ggogjjrkwm] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/WebhookDeliveryLogs.razor.rz.scp.css */
.webhook-event-type-code[b-xax268hssm] {
    font-size: 12px;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-webhook-delivery-logs-page-shell[b-xax268hssm] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/WebhookMarketplace.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-webhook-marketplace-page-shell[b-uhyfba1q71] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/Integrations/WebhookTesting.razor.rz.scp.css */
.webhook-event-details[b-w5tqptpw76] {
    border: 1px solid var(--hav-line);
}

.webhook-payload-example[b-w5tqptpw76] {
    background: var(--hav-surface-raised);
    font-family: var(--hav-font-mono);
    font-size: 12px;
    max-height: 400px;
    overflow: auto;
}

.webhook-payload-pre[b-w5tqptpw76] {
    margin: 0;
    white-space: pre-wrap;
}

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-integrations-webhook-testing-page-shell[b-w5tqptpw76] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/IntegrationSettings.razor.rz.scp.css */
/* 07-L tile grid: auto-fit with a 320px floor. Tracks follow the kit default
   (1fr; a lone item caps at --hav-row-track-solo). */
.hav-row--nav-tiles[b-5zhxs1t7c7] {
    --hav-row-min: 320px;
}
/* /Components/Pages/Platform/Settings/OrganizationCalendarSettings.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-organization-calendar-settings-page-shell[b-yod2jzbkge] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/PayrollIntegrationSettings.razor.rz.scp.css */
.hover-card:hover[b-0oqpo8tc92] {
 box-shadow: none;
 }

/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-payroll-integration-settings-page-shell[b-0oqpo8tc92] {
    min-width: 0;
}
/* /Components/Pages/Platform/Settings/RiskConfigurationSettings.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.platform-settings-risk-configuration-settings-page-shell[b-1xw27rwzo1] {
    min-width: 0;
}

/* Group head: the label stacks over its kicker; centre both against the row action
   (.hav-section__head defaults to baseline, which suits a single-line head). */
.platform-settings-risk-configuration-settings-page-shell[b-1xw27rwzo1]  .risk-group-head {
    align-items: center;
}

.platform-settings-risk-configuration-settings-page-shell[b-1xw27rwzo1]  .risk-group-titles {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

/* The name carries the row -- semibold per the S.07-L drawing. */
.platform-settings-risk-configuration-settings-page-shell[b-1xw27rwzo1]  .risk-template-name {
    font-weight: 600;
}

/* Shrink-to-fit cells: drag handle, eff/cost readouts, row overflow. */
.platform-settings-risk-configuration-settings-page-shell[b-1xw27rwzo1]  .mud-table-cell.risk-cell--narrow {
    width: 1%;
    white-space: nowrap;
}

/* The drag handle is furniture -- muted via the cell, not a standalone icon colour. */
.platform-settings-risk-configuration-settings-page-shell[b-1xw27rwzo1]  .mud-table-cell.risk-cell--handle {
    color: var(--hav-text-muted);
}

/* Eff/cost readouts are secondary column data: muted tabular body face
   (a quantity is tabular Barlow, never mono -- spec S.11.12). */
.platform-settings-risk-configuration-settings-page-shell[b-1xw27rwzo1]  .mud-table-cell.risk-cell--metric {
    color: var(--hav-text-muted);
}
/* /Components/Pages/Visitors/VisitorBadgeManagement.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.visitors-visitor-badge-management-page-shell[b-gstf2bk9up] {
    min-width: 0;
}
/* /Components/Pages/Visitors/VisitorCheckInBadgeDialog.razor.rz.scp.css */
.visitor-checkin-badge-card[b-bwhjo9sxq1] {
    border: 2px solid var(--hav-accent);
    min-width: 18.75rem;
    padding: 1.5rem;
    text-align: center;
}

.visitor-checkin-badge-qr[b-bwhjo9sxq1] {
    background: var(--hav-panel);
    margin: 0.5rem 0;
    padding: 1rem;
}

.visitor-checkin-badge-number[b-bwhjo9sxq1] {
    font-family: var(--hav-font-mono);
}
/* /Components/Pages/Visitors/VisitorCheckInManualEntryTab.razor.rz.scp.css */
.visitor-checkin-manual-form[b-htyo5u5wu2] {
    row-gap: 0.25rem;
}

.visitor-checkin-form-full[b-htyo5u5wu2] {
    grid-column: 1 / -1;
}

.visitor-checkin-section-heading[b-htyo5u5wu2] {
    align-items: center;
    display: flex;
}

.visitor-checkin-risk-card[b-htyo5u5wu2] {
    border-left: 4px solid var(--hav-warning);
    padding: var(--hav-panel-pad-compact);
}

.visitor-checkin-form-actions[b-htyo5u5wu2] {
    flex-wrap: wrap;
}

@media (max-width: 960px) {
    .visitor-checkin-form-actions[b-htyo5u5wu2] {
        justify-content: stretch;
    }

    .visitor-checkin-form-actions[b-htyo5u5wu2]  .mud-button-root {
        width: 100%;
    }
}
/* /Components/Pages/Visitors/VisitorCheckInPreRegistrationsTab.razor.rz.scp.css */
.visitor-checkin-empty-state[b-yibog22tzh] {
    min-height: 14rem;
    justify-content: center;
}

.visitor-checkin-filter-row[b-yibog22tzh] {
    --hav-row-min: 190px;
    align-items: end;
}

.visitor-checkin-search-row[b-yibog22tzh] {
    align-items: flex-end;
    display: flex;
    gap: 0.5rem;
}

.visitor-checkin-search-row[b-yibog22tzh]  .mud-input-control {
    flex: 1 1 auto;
}

.visitor-checkin-scanner-surface[b-yibog22tzh] {
    border: 2px dashed var(--hav-accent);
    border-radius: 0;
    padding: 2rem;
    text-align: center;
}
/* /Components/Pages/Visitors/VisitorManagement.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.visitors-visitor-management-page-shell[b-fhr1x9vetm] {
    min-width: 0;
}
/* /Components/Pages/Visitors/VisitorQRManagement.razor.rz.scp.css */
/* Page shell root -- enables CSS isolation and prevents viewport overflow on tablets. */
.visitors-visitor-qr-management-page-shell[b-98zq70qi6z] {
    min-width: 0;
}
/* /Components/Routes.razor.rz.scp.css */
/* S11.66 / HAV2306: the inert wrapper must not create a layout box of its own -
   it only carries the inert attribute for the interactive tree. */

.hav-routes-scope[b-hwblr0hzwk] {
    display: contents;
}
/* /Components/Shared/Admin/Compliance/StandardsStatusCard.razor.rz.scp.css */
.standards-title-compact[b-qoneqr745g] {
    font-weight: 600;
}

.standards-snapshot-success[b-qoneqr745g] {
    background-color: color-mix(in srgb, var(--hav-success) 8%, transparent);
}

.standards-snapshot-primary[b-qoneqr745g] {
    background-color: color-mix(in srgb, var(--hav-accent) 8%, transparent);
}

.standards-snapshot-secondary[b-qoneqr745g] {
    background-color: color-mix(in srgb, var(--hav-info) 8%, transparent);
}

.standards-divider-success[b-qoneqr745g] {
    border-color: color-mix(in srgb, var(--hav-success) 30%, transparent);
}

.standards-divider-primary[b-qoneqr745g] {
    border-color: color-mix(in srgb, var(--hav-accent) 30%, transparent);
}
/* /Components/Shared/Admin/Components/PolicyInheritanceMatrix.razor.rz.scp.css */
/* removed hover fill: .hierarchy-grid .mud-table-row:hover */
/* /Components/Shared/Admin/ConnectionMonitor.razor.rz.scp.css */
.connection-metric[b-1uk2vbr8a2] {
 text-align: center;
 padding: 1rem;
 }
/* /Components/Shared/Admin/TeamEditDialog.razor.rz.scp.css */
.member-priority-select[b-fd86er9aw2] {
    max-width: 130px;
}
/* /Components/Shared/App/Blueprint/HavRiskLevelChip.razor.rz.scp.css */
/* Risk level chip -- ordered scale, not a status alert.
   Maps to three perceptual roles per HAV2107/HAV2108:
   - VeryLow + Low = neutral outline (no action)
   - Medium = warning (controls required)
   - High + VeryHigh + Critical = error (stop and reassess)
   Distinct from HavStatusChip because the neutral low end is an outline, not an info fill. */

.hav-risk-level-chip[b-p87w85d4dp] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--hav-font-body);
    font-size: 12px;
    font-weight: 500;
    padding: var(--hav-chip-pad);
    border-radius: 2px;
    white-space: nowrap;
    border: 1px solid transparent;
}

.hav-risk-level-chip--verylow[b-p87w85d4dp],
.hav-risk-level-chip--low[b-p87w85d4dp] {
    background: transparent;
    color: var(--hav-text);
    border-color: var(--hav-line);
}

.hav-risk-level-chip--medium[b-p87w85d4dp] {
    background: var(--hav-warning);
    color: var(--hav-on-warning);
    border-color: transparent;
}

.hav-risk-level-chip--high[b-p87w85d4dp],
.hav-risk-level-chip--veryhigh[b-p87w85d4dp],
.hav-risk-level-chip--critical[b-p87w85d4dp] {
    background: var(--hav-error);
    color: var(--hav-on-error);
    border-color: transparent;
}
/* /Components/Shared/App/Blueprint/HavRiskRating.razor.rz.scp.css */
.hav-risk-rating[b-hv1rrk2n8n] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    --hav-risk-color: var(--hav-risk-medium);
}

.hav-risk-rating__box[b-hv1rrk2n8n] {
    width: 14px;
    height: 14px;
    border-radius: 2px;
    border: 1.5px solid color-mix(in srgb, var(--hav-risk-color, var(--hav-line)) 35%, transparent);
    background: transparent;
}

.hav-risk-rating__box--filled[b-hv1rrk2n8n] {
    background-color: var(--hav-risk-color);
    border-color: var(--hav-risk-color);
}

/* Five-band ordinal ramp for the judgement scale. Each value uses the same
   threshold table as the risk matrix, so the scale reads as "how much". */
.hav-risk-rating--value-1[b-hv1rrk2n8n] { --hav-risk-color: var(--hav-risk-verylow); }
.hav-risk-rating--value-2[b-hv1rrk2n8n] { --hav-risk-color: var(--hav-risk-low); }
.hav-risk-rating--value-3[b-hv1rrk2n8n] { --hav-risk-color: var(--hav-risk-medium); }
.hav-risk-rating--value-4[b-hv1rrk2n8n] { --hav-risk-color: var(--hav-risk-high); }
.hav-risk-rating--value-5[b-hv1rrk2n8n] { --hav-risk-color: var(--hav-risk-veryhigh); }
/* /Components/Shared/AttachmentUpload.razor.rz.scp.css */
.file-upload-input[b-kg5isa3gjs] {
 position: absolute;
 width: 100%;
 height: 100%;
 overflow: hidden;
 z-index: 10;
 opacity: 0;
 cursor: pointer;
 }

 .attachment-drop-zone[b-kg5isa3gjs] {
 transition: border-color 0.3s ease, background-color 0.3s ease;
 }.attachment-drop-zone:hover[b-kg5isa3gjs] {
  border-color: var(--hav-accent)
}
/* /Components/Shared/Compliance/CorrectiveActions/CorrectiveActionChecklistEditor.razor.rz.scp.css */
/* Checklist Editor Styling */

[b-infudrwub1] .checklist-editor-table .mud-table-cell {
    padding: var(--hav-cell-pad);
}

[b-infudrwub1] .checklist-editor-table .no-underline .mud-input-slot {
    border-bottom: none !important;
}

[b-infudrwub1] .checklist-editor-table .no-underline:hover .mud-input-slot {
    border-bottom: 1px solid var(--hav-line) !important;
}

[b-infudrwub1] .checklist-editor-table .no-underline:focus-within .mud-input-slot {
    border-bottom: 2px solid var(--hav-accent) !important;
}
/* /Components/Shared/Compliance/OrgComplianceSummaryRow.razor.rz.scp.css */
.org-row-icon[b-d11dwp3lvq],
.row-fixed[b-d11dwp3lvq] {
    flex-shrink: 0;
}

.org-name-stack[b-d11dwp3lvq] {
    min-width: 180px;
    flex: 1;
    overflow: hidden;
}

.org-name-text[b-d11dwp3lvq] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.compliance-percentage[b-d11dwp3lvq] {
    min-width: 44px;
    text-align: right;
}

.compliance-progress[b-d11dwp3lvq] {
    width: 130px;
}
/* /Components/Shared/Compliance/QaPack/QaPackProvenanceCoverageCard.razor.rz.scp.css */
.qa-pack-provenance-card .coverage-good[b-zpsazrkmwi] { color: var(--hav-success); }
.qa-pack-provenance-card .coverage-warning[b-zpsazrkmwi] { color: var(--hav-warning); }
.qa-pack-provenance-card .coverage-bad[b-zpsazrkmwi] { color: var(--hav-error); }
.qa-pack-provenance-card .staleness-current[b-zpsazrkmwi] { color: var(--hav-success); }
.qa-pack-provenance-card .staleness-duesoon[b-zpsazrkmwi] { color: var(--hav-info); }
.qa-pack-provenance-card .staleness-stale[b-zpsazrkmwi] { color: var(--hav-warning); }
.qa-pack-provenance-card .staleness-critical[b-zpsazrkmwi] { color: var(--hav-error); }
.qa-pack-provenance-card .staleness-unknown[b-zpsazrkmwi] { color: var(--hav-text-muted); }
.qa-pack-provenance-card .tier-ledger[b-zpsazrkmwi] { color: var(--hav-success); }
.qa-pack-provenance-card .tier-reference[b-zpsazrkmwi] { color: var(--hav-warning); }
.qa-pack-provenance-card .tier-na[b-zpsazrkmwi] { color: var(--hav-error); }
.qa-pack-provenance-card .tier-other[b-zpsazrkmwi] { color: var(--hav-text-muted); }
/* /Components/Shared/Compliance/RecordSnapshotPanel.razor.rz.scp.css */
.record-snapshot-json-hint[b-pazs9i166h] {
    display: block;
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--hav-text-muted);
    opacity: 0.9;
}

/* Recorded-context readout: same label/value grammar as the snapshot metadata,
   separated from the hint by a single hairline (rule, not a box). */
.record-snapshot-context[b-pazs9i166h] {
    border-top: 1px solid var(--hav-line);
    padding-top: var(--hav-space-3);
}

/* Quiet text toggle for the verbatim payload - secondary affordance, so it
   stays muted and flush-left rather than reading as a primary action. */
.record-snapshot-raw-toggle[b-pazs9i166h]  .mud-button-root {
    text-transform: none;
    padding-left: 0;
    color: var(--hav-text-muted);
}

/* The verbatim payload in the panel: mono face (HAV2137), capped and scrolling
   rather than stretching the drawer. */
.record-snapshot-json[b-pazs9i166h] {
    display: block;
    font-family: var(--hav-font-mono);
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--hav-text);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    border-top: 1px solid var(--hav-line);
    padding-top: var(--hav-space-3);
    max-height: 55vh;
    overflow-y: auto;
}
/* /Components/Shared/Compliance/RecordTimeline.razor.rz.scp.css */
.record-timeline-workflow-line[b-3n4yikkr3i] {
    display: block;
    margin-top: calc(var(--hav-space-2) / 4);
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--hav-text-muted);
    opacity: 0.92;
}

/* spec 11.14 (HAV2139): the expanded snapshot is a disclosure body inside the
   timeline's .hav-section card - ONE hairline, transparent fill, 12 pad.
   Never a MudPaper plate (fill inside a fill), never a panel inside a panel. */
.record-timeline-snapshot[b-3n4yikkr3i] {
    border: 1px solid var(--hav-line);
    padding: var(--hav-space-3);
    background: transparent;
}

/* The recorded-context CTA is a row separated by a hairline rule, not a second
   box: a panel inside a panel is the HAV2139 failure. */
.record-timeline-compliance[b-3n4yikkr3i] {
    border-top: 1px solid var(--hav-line);
    padding-top: calc(var(--hav-space-2) / 2);
    margin-top: var(--hav-space-3);
}

.record-timeline-snapshot .hav-readout[b-3n4yikkr3i] {
    padding: 0;
}
/* /Components/Shared/Compliance/Templates/HazardSelector.razor.rz.scp.css */
.hazard-card:hover[b-jdwhl1vwem] {
 box-shadow: none;
 }

 .clickable-chip[b-jdwhl1vwem] {
 cursor: pointer;
 }
/* /Components/Shared/Compliance/Templates/PPERequirements.razor.rz.scp.css */
.ppe-card:hover[b-v45347wm9a] {
 box-shadow: none;
 }

 .clickable-chip[b-v45347wm9a] {
 cursor: pointer;
 }
/* /Components/Shared/Compliance/Templates/RiskAssessmentMatrix.razor.rz.scp.css */
/* HAV2201 - data marks are filled; their container is not. The matrix surface is a
   hairline container, and every cell is a filled ordinal mark with a band tint. */

[b-nrrnfl9yo7] .risk-matrix-surface {
    background-color: transparent !important;
    border: 1px solid var(--hav-line);
}

[b-nrrnfl9yo7] .risk-matrix-cell {
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--hav-line);
    border-radius: 0;
    margin: calc(var(--hav-space-2) / 4);
}

[b-nrrnfl9yo7] .header-cell {
    background-color: transparent !important;
    font-weight: bold;
}

[b-nrrnfl9yo7] .mud-button.risk-cell {
    color: var(--hav-text-muted) !important;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    height: 50px !important;
    min-width: 60px !important;
    border-radius: 0 !important;
}

[b-nrrnfl9yo7] .mud-button.risk-cell:hover {
    box-shadow: none !important;
}

[b-nrrnfl9yo7] .mud-button.risk-cell.selected {
    border: 3px solid var(--hav-accent) !important;
    color: var(--hav-text) !important;
}

/* Five-band ordinal ramp -- same --hav-risk-* threshold table as RiskHeatMap
   and the HavRiskRating judgement scale. */
[b-nrrnfl9yo7] .mud-button.risk-cell.risk-verylow {
    background-color: var(--hav-risk-verylow) !important;
    color: var(--hav-risk-verylow-text) !important;
}

[b-nrrnfl9yo7] .mud-button.risk-cell.risk-low {
    background-color: var(--hav-risk-low) !important;
    color: var(--hav-risk-low-text) !important;
}

[b-nrrnfl9yo7] .mud-button.risk-cell.risk-medium {
    background-color: var(--hav-risk-medium) !important;
    color: var(--hav-risk-medium-text) !important;
}

[b-nrrnfl9yo7] .mud-button.risk-cell.risk-high {
    background-color: var(--hav-risk-high) !important;
    color: var(--hav-risk-high-text) !important;
}

[b-nrrnfl9yo7] .mud-button.risk-cell.risk-veryhigh {
    background-color: var(--hav-risk-veryhigh) !important;
    color: var(--hav-risk-veryhigh-text) !important;
}

/* Legend chips carry the same band tints as the cells they describe. */
[b-nrrnfl9yo7] .risk-matrix-legend .hav-status.risk-verylow {
    background-color: var(--hav-risk-verylow);
    color: var(--hav-risk-verylow-text);
}

[b-nrrnfl9yo7] .risk-matrix-legend .hav-status.risk-low {
    background-color: var(--hav-risk-low);
    color: var(--hav-risk-low-text);
}

[b-nrrnfl9yo7] .risk-matrix-legend .hav-status.risk-medium {
    background-color: var(--hav-risk-medium);
    color: var(--hav-risk-medium-text);
}

[b-nrrnfl9yo7] .risk-matrix-legend .hav-status.risk-high {
    background-color: var(--hav-risk-high);
    color: var(--hav-risk-high-text);
}

[b-nrrnfl9yo7] .risk-matrix-legend .hav-status.risk-veryhigh {
    background-color: var(--hav-risk-veryhigh);
    color: var(--hav-risk-veryhigh-text);
}
/* /Components/Shared/Dashboard/ActivityTimelinePanel.razor.rz.scp.css */
/* H&S Activity Timeline - full-height side panel layout */

[b-ssh3mlcm5c] .mud-drawer {
    height: 100vh;
    max-height: 100dvh;
}

.activity-timeline-panel-container[b-ssh3mlcm5c] {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.activity-timeline-panel-section[b-ssh3mlcm5c] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
/* /Components/Shared/Dashboard/DashboardCrossModuleInsightsCard.razor.rz.scp.css */
/* Cross-module insights -- alert strips stack full-width above the insight cards.
   Blueprint 04: strips and cards hug their content; no fixed floor. */

/* Insight card label is 12.5px body-semibold (title case), not an uppercase heading. */
[b-lhfc7mzpvi] .cmi-card__title {
    font-weight: 600;
    font-size: 12.5px;
    line-height: 1.35;
    min-width: 0;
}
/* /Components/Shared/Dashboard/LiveDevicesIndicator.razor.rz.scp.css */
.live-status-dot[b-wtbv13rwy3] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.live-dot-connected[b-wtbv13rwy3] {
    background-color: var(--hav-success);
}

.live-dot-disconnected[b-wtbv13rwy3] {
    background-color: var(--hav-text-muted);
}

.live-devices-popover[b-wtbv13rwy3] {
    max-width: 450px;
    min-width: 380px;
}

.live-devices-card[b-wtbv13rwy3] {
    min-width: 400px;
    max-width: 550px;
}

.live-devices-toolbar[b-wtbv13rwy3] {
    background: var(--hav-surface-raised);
    border-bottom: 1px solid var(--hav-line);
    flex-wrap: wrap;
}

.live-devices-list[b-wtbv13rwy3] {
    max-height: 350px;
    overflow-y: auto;
}

.live-devices-footer[b-wtbv13rwy3] {
    background: var(--hav-surface-raised);
}

.live-devices-indicator[b-wtbv13rwy3] {
    display: inline-flex;
    align-items: center;
}

.live-pulse[b-wtbv13rwy3] {
    animation: pulse-b-wtbv13rwy3 2s infinite;
}

@keyframes pulse-b-wtbv13rwy3 {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.2); }
    100% { opacity: 1; transform: scale(1); }
}

.live-dot[b-wtbv13rwy3],
[b-wtbv13rwy3] .live-dot-success {
    background-color: var(--hav-success);
    animation: pulse-b-wtbv13rwy3 2s infinite;
}

[b-wtbv13rwy3] .live-dot-warning {
    background-color: var(--hav-warning);
    animation: pulse-b-wtbv13rwy3 2s infinite;
}

[b-wtbv13rwy3] .live-dot-error {
    background-color: var(--hav-error);
    animation: pulse-b-wtbv13rwy3 2s infinite;
}
/* /Components/Shared/Dashboard/Tiles/IncidentsTile.razor.rz.scp.css */
/*
    Intellectual Property Declaration
    This source code is solely authored and owned by Leonard Harris.
    No other party has contributed to its development.
    ? 2026 Havto Limited. All rights reserved.
*/

/* ========================================
   Incidents Dashboard Tile Styling
   ======================================== */

/* Scope host does not participate in layout; children lay out as direct children of the parent. */
.incidents-tile-host[b-gwjuina986] {
    display: contents;
}

[b-gwjuina986] .incidents-tile,
[b-gwjuina986] .incidents-tile--compact {
    height: 100%; display: flex; flex-direction: column; border: 1px solid var(--hav-line); }

[b-gwjuina986] .tile-loading-state {
    min-height: 300px; }

/* The dashboard-layout-row .hav-row floor (280px) is sized for page-level rows;
   inside a ~300px tile column it collapses the three stat plates into a
   one-column stack. The plates are narrow KPI cells -- drop the floor so the
   blueprint's three-across strip holds. */
[b-gwjuina986] .incidents-tile .incidents-tile__body .hav-row {
    --hav-row-min: 72px;
    --hav-gap: 9px; /* blueprint 04 stat strip: 9px gutters between the three plates */
}

    [b-gwjuina986] .incidents-tile:hover,
    [b-gwjuina986] .incidents-tile--compact:hover {
        border-color: var(--hav-line); }

/* ========================================
   Severity Breakdown
   ======================================== */

.severity-breakdown[b-gwjuina986] {
    background: color-mix(in srgb, var(--hav-accent) 5%, transparent); border: 1px solid color-mix(in srgb, var(--hav-accent) 10%, transparent); border-radius: 0; }/* removed hover fill: .ml-prediction-alert:hover */

/* ========================================
   Recent Incidents Timeline List
   ======================================== */

[b-gwjuina986] .recent-incidents-list {
    max-height: 300px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--hav-accent) 30%, transparent) transparent; }

    [b-gwjuina986] .recent-incidents-list::-webkit-scrollbar {
        width: 6px; }

    [b-gwjuina986] .recent-incidents-list::-webkit-scrollbar-track {
        background: transparent; }

    [b-gwjuina986] .recent-incidents-list::-webkit-scrollbar-thumb {
        background-color: color-mix(in srgb, var(--hav-accent) 30%, transparent); border-radius: 0; }

[b-gwjuina986] .incident-list-button {
    border-radius: 0; margin-bottom: var(--hav-space-2); padding: var(--hav-space-3) var(--hav-space-4); transition: background-color 0.2s ease, border-color 0.2s ease; border: 1px solid transparent; }

[b-gwjuina986] .incident-list-button:hover {
  border-color: color-mix(in srgb, var(--hav-accent) 20%, transparent); cursor: pointer;
}

/* ========================================
   Card Actions
   ======================================== */

[b-gwjuina986] .incidents-tile .mud-card-actions {
    margin-top: auto; border-top: 1px solid var(--hav-line); }

[b-gwjuina986] .incidents-tile--compact .mud-card-actions {
    padding-top: 0; }

/* ========================================
   Divider
   ======================================== */

/* MudBlazor's full-width divider carries flex-grow: 1, which expands it to fill
   a vertical flex container and renders as a tall gray block at desktop widths.
   Force it to the intended 1px hairline and remove the default fill. */
[b-gwjuina986] .incidents-tile .mud-divider,
[b-gwjuina986] .incidents-tile--compact .mud-divider {
    flex-grow: 0 !important;
    background: transparent !important;
    border-top: 1px solid var(--hav-line) !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
}

/* ========================================
   Responsive Design
   ======================================== */

@media (max-width: 600px) {
    [b-gwjuina986] .ml-badge {
        font-size: 0.7rem; padding: var(--hav-chip-pad); }

    .stat-card[b-gwjuina986] {
        padding: var(--hav-space-3); }

    .stat-icon[b-gwjuina986] {
        margin-right: var(--hav-space-2); }

    .ml-insight-alert[b-gwjuina986],
    .ml-prediction-alert[b-gwjuina986] {
        font-size: 0.85rem; }

    .incident-list-item[b-gwjuina986] {
        padding: var(--hav-cell-pad) ; }

    .donut-chart-container[b-gwjuina986] {
        min-height: 250px; }
}
/* /Components/Shared/Dashboard/Tiles/RiskRegisterTile.razor.rz.scp.css */
/* Risk Register Tile Scoped Styles */
/* ? 2026 Havto Limited. All rights reserved. */

/* Scope host does not participate in layout; children lay out as direct children of the parent. */
.risk-register-tile-host[b-714clty6hg] {
    display: contents;
}

/* Tile Container */
[b-714clty6hg] .risk-register-tile {
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--hav-line);
}

[b-714clty6hg] .risk-register-tile .mud-card-actions {
    margin-top: auto;
    border-top: 1px solid var(--hav-line);
}

[b-714clty6hg] .risk-loading-state {
    min-height: 400px;
}

/* Blueprint 04: the tile body is one column -- level statement on top, then the
   register rows / dashed empty plate, then the footer. No inner exposure card. */
[b-714clty6hg] .risk-register-tile__body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1 1 auto;
}

[b-714clty6hg] .risk-register-tile__risks {
    display: flex;
    flex-direction: column;
}

[b-714clty6hg] .risk-register-tile__risks--empty {
    flex: 1 1 auto;
}

/* Blueprint 04: exposure is "{level} risk" in the severity colour + "{n} pts - {trend}". */
[b-714clty6hg] .risk-exposure {
    display: flex;
    flex-direction: column;
}

[b-714clty6hg] .risk-exposure__level {
    font-family: var(--hav-font-head);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .01em;
    font-size: 22px;
    line-height: 1.1;
}

[b-714clty6hg] .risk-exposure__level--success { color: var(--hav-success-text); }
[b-714clty6hg] .risk-exposure__level--warning { color: var(--hav-warning-text); }
[b-714clty6hg] .risk-exposure__level--error   { color: var(--hav-error-text); }

[b-714clty6hg] .risk-exposure__meta {
    font-family: var(--hav-font-body);
    font-size: 12.5px;
    color: var(--hav-text-muted);
    margin-top: calc(var(--hav-space-2) / 2);
}

/* Blueprint 04: the "no active risks" plate is dashed on line-strong and its
   all-clear headline sits in the success colour. */
[b-714clty6hg] .risk-register-tile .risk-tile-empty--no-risks {
    border-color: var(--hav-line-strong);
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

[b-714clty6hg] .risk-register-tile .risk-tile-empty--no-risks .hav-empty__title {
    color: var(--hav-success-text);
}

/* ML predictions keep the section-plate look without the removed exposure card. */
[b-714clty6hg] .ml-predictions-card {
    border: 1px solid var(--hav-line);
    padding: var(--hav-panel-pad-compact);
}

[b-714clty6hg] .ml-predictions-card {
    height: 100%;
    background: var(--hav-panel);
    border: 1px solid var(--hav-line);
    border-radius: 0;
    transition: border-color 0.2s ease;
}

    [b-714clty6hg] .ml-predictions-card:hover {
        border-color: var(--hav-accent);
    }

/* Top Risks List */
[b-714clty6hg] .top-risks-list .risk-list-item {
    cursor: pointer;
    transition: background-color 0.2s ease;
    border-radius: 0;
}/* removed hover fill: ::deep .top-risks-list .risk-list-item:hover */

/* Allow list/priority buttons to grow with wrapped text instead of hard-clipping at 34px. */
[b-714clty6hg] .top-risks-list .risk-list-item,
[b-714clty6hg] .risk-priority-action {
    height: auto !important;
    min-height: 34px;
    overflow: visible;
    align-items: flex-start;
}

/* Blueprint flat row: finding line (index + title + level chip), support line
   (register id - L/C formula). Title ellipsizes against the chip, never the
   other way round. */
[b-714clty6hg] .risk-list-item__row,
[b-714clty6hg] .risk-list-item__title-col,
[b-714clty6hg] .risk-list-item__title,
[b-714clty6hg] .risk-list-item__meta {
    min-width: 0;
}

[b-714clty6hg] .risk-list-item__title {
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-714clty6hg] .risk-list-item__meta {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: calc(var(--hav-space-2) / 4);
}

/* Governance Stats */
/* The dashboard-layout-row .hav-row floor (280px) is sized for page-level rows;
   inside the tile it stacks the four stat-minis vertically. Plates are narrow --
   drop the nested floor so the blueprint's across strip holds. */
[b-714clty6hg] .risk-register-tile__body .hav-row {
    --hav-row-min: 50px;
}

[b-714clty6hg] .stat-mini {
    cursor: default;
    background: var(--hav-panel);
    border: 1px solid var(--hav-line);
    border-radius: 0;
    padding: var(--hav-space-3);
}/* removed hover fill: .stat-mini:hover */

/* Empty States */
[b-714clty6hg] .empty-state-content {
    min-height: 160px;
}

[b-714clty6hg] .empty-state-content-small {
    min-height: 120px;
}

[b-714clty6hg] .ml-predictions-card .empty-state-content {
    min-height: 200px;
}

/* ML Badge */
[b-714clty6hg] .ml-badge {
    font-size: 0.75rem;
    padding: calc(var(--hav-space-2) / 2) var(--hav-space-2);
}

/* Responsive Design */
@media (max-width: 960px) {
    [b-714clty6hg] .ml-predictions-card {
        height: auto;
        min-height: 200px;
    }

    [b-714clty6hg] .top-risks-list .risk-list-item {
        padding: var(--hav-space-2);
    }

    [b-714clty6hg] .stat-mini {
        padding: var(--hav-space-2);
    }
}

[b-714clty6hg] .trend--success { color: var(--hav-success-text); }
[b-714clty6hg] .trend--warning { color: var(--hav-warning-text); }
[b-714clty6hg] .trend--error   { color: var(--hav-error-text); }
[b-714clty6hg] .trend--info    { color: var(--hav-info-text); }
[b-714clty6hg] .trend--neutral { color: var(--hav-text-muted); }

[b-714clty6hg] .risk-register-tile--compact .ml-predictions-card {
    min-height: 0;
}

[b-714clty6hg] .risk-register-tile--compact .empty-state-content,
[b-714clty6hg] .risk-register-tile--compact .empty-state-content-small {
    min-height: 0;
    padding: var(--hav-space-3);
}
/* /Components/Shared/Dashboard/Timeline.razor.rz.scp.css */
/*
    Intellectual Property Declaration
    This source code is solely authored and owned by Leonard Harris.
    No other party has contributed to its development.
    ? 2026 Havto Limited. All rights reserved.
*/

/* Scope host does not participate in layout; children lay out as direct children of the parent. */
.timeline-host[b-vwnmgh6c52] {
    display: contents;
}

/* ========================================
   H&S Timeline Container
   ======================================== */

[b-vwnmgh6c52] .hs-timeline-container {
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--hav-line);
}

[b-vwnmgh6c52] .hs-timeline-container--compact .timeline-content {
    padding-top: 0;
    padding-bottom: 0;
}

[b-vwnmgh6c52] .hs-timeline-container:hover {
    border-color: var(--hav-accent);
}

/* ========================================
   Timeline Content Area
   ======================================== */

/* No inner scroll: the preview feed is capped, so the tile grows with the grid
   row and the page scrolls -- never a scroll bar inside the card. The feed
   region flexes so the footer pins to the tile bottom like its sibling tiles. */
[b-vwnmgh6c52] .timeline-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

[b-vwnmgh6c52] .timeline-content .activity-timeline-scroll {
    flex: 1 1 auto;
    min-height: 0;
}

/* ========================================
   Timeline Vertical
   ======================================== */

[b-vwnmgh6c52] .timeline-vertical {
    padding-left: 0;
}

[b-vwnmgh6c52] .timeline-vertical .mud-timeline-item {
    color: var(--hav-text);
}

[b-vwnmgh6c52] .timeline-vertical .mud-timeline-item-dot,
[b-vwnmgh6c52] .timeline-vertical .mud-timeline-item-line {
    background-color: currentColor !important;
    border-color: currentColor !important;
    color: currentColor !important;
}

/* Blueprint: timeline dot is a 9px square with no icon and no shadow. */
[b-vwnmgh6c52] .timeline-vertical .mud-timeline-item-dot {
    width: 9px !important;
    height: 9px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-width: 9px !important;
    min-height: 9px !important;
}

[b-vwnmgh6c52] .timeline-vertical .mud-timeline-item-dot-inner,
[b-vwnmgh6c52] .timeline-vertical .mud-timeline-item-dot-icon {
    display: none !important;
}

/* ========================================
   Timeline feed rows
   S11.20: time column + rail + one square mark + quiet text.
   Not cards, not discs, not a hue per row.
   ======================================== */

[b-vwnmgh6c52] .timeline-entry {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

[b-vwnmgh6c52] .timeline-entry:focus-visible {
    outline: 2px solid var(--hav-accent);
    outline-offset: -2px;
}

[b-vwnmgh6c52] .timeline-entry__head {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    flex-wrap: wrap;
    width: 100%;
}

[b-vwnmgh6c52] .timeline-entry__title {
    font-weight: 600;
    color: var(--hav-text);
}

[b-vwnmgh6c52] .timeline-entry__support,
[b-vwnmgh6c52] .timeline-entry__assignee {
    font-size: 12px;
    line-height: 1.4;
    color: var(--hav-text-muted);
}

/* Blueprint 04 tile variant: the rail + square mark stay, the time column and
   row hairlines go -- the row meta carries "{status} - {when}" under the title. */
[b-vwnmgh6c52] .hav-feed--tile .hav-feed__item {
    grid-template-columns: 1fr;
    border-top: 0;
    padding: var(--hav-space-2) 0 var(--hav-space-2) var(--hav-panel-pad);
}

[b-vwnmgh6c52] .timeline-entry__meta {
    font-size: 11px;
    line-height: 1.4;
    color: var(--hav-text-muted);
    margin-top: calc(var(--hav-space-2) / 4);
}

[b-vwnmgh6c52] .timeline-entry__when {
    font-family: var(--hav-font-mono, ui-monospace), ui-monospace, monospace;
}

/* Blueprint 04 footer: border-top, accent chevron + uppercase accent label. */
[b-vwnmgh6c52] .timeline-tile-footer {
    margin-top: var(--hav-space-2);
}

[b-vwnmgh6c52] .timeline-tile-footer__icon {
    color: var(--hav-accent);
    font-size: 14px !important;
}

[b-vwnmgh6c52] .timeline-tile-footer__label {
    font-family: var(--hav-font-head);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    font-size: 12px;
    color: var(--hav-accent);
}

/* ========================================
   Empty State
   ======================================== */

[b-vwnmgh6c52] .empty-timeline {
    min-height: 400px;
    padding: calc(var(--hav-panel-pad-feature) * 2) var(--hav-panel-pad-feature);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: color-mix(in srgb, var(--hav-accent) 5%, transparent);
    border: 1px dashed color-mix(in srgb, var(--hav-accent) 30%, transparent);
    border-radius: 0;
}

/* ========================================
   Responsive Design
   ======================================== */

@media (max-width: 1279px) {
    [b-vwnmgh6c52] .hs-timeline-container:not(.mud-width-full) {
        height: auto;
        max-height: 600px;
    }
}

@media (max-width: 960px) {
    [b-vwnmgh6c52] .hs-timeline-container {
        max-height: none;
        position: relative;
        top: auto;
    }
}

@media (max-width: 600px) {
    .donut-chart-container[b-vwnmgh6c52] {
        min-height: 250px;
    }

    [b-vwnmgh6c52] .hs-timeline-container:not(.mud-width-full) {
        max-height: 500px;
    }
}

/* ========================================
   Animations
   ======================================== */

[b-vwnmgh6c52] .timeline-entry {
    animation: fadeInUp 0.3s ease-out;
}

[b-vwnmgh6c52] .activity-timeline-scroll {
    width: 100%;
}

/* Panel mode ? fill drawer height; list scrolls in the middle */
[b-vwnmgh6c52] .activity-timeline-panel-root {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

[b-vwnmgh6c52] .activity-timeline-panel-root .activity-timeline-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}
/* /Components/Shared/Dialogs/AuthDialog.razor.rz.scp.css */
/* AuthDialog scoped CSS -- auth-specific elements only.
   The global .mud-dialog shell in blueprint.css handles dialog border,
   background, title font, content font, input borders, and label colors. */

.auth-dialog-title[b-xuef77i6oj] {
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: 20px;
    margin: 0;
    color: var(--havto-blueprint-text);
}

.auth-dialog-subtitle[b-xuef77i6oj] {
    font-size: 14px;
    color: var(--havto-blueprint-text);
    opacity: 0.85;
    margin: 0;
}

.auth-seg[b-xuef77i6oj] {
    width: 100%;
    display: flex;
    margin-top: var(--havto-blueprint-space-2);
    border: 1px solid var(--havto-blueprint-divider);
}

.auth-seg-opt[b-xuef77i6oj] {
    flex: 1;
    padding: var(--hav-space-2) var(--hav-space-3);
    background: transparent;
    border: 0;
    border-right: 1px solid var(--havto-blueprint-divider);
    color: var(--havto-blueprint-text);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease;
    text-align: center;
}

.auth-seg-opt:last-child[b-xuef77i6oj] {
    border-right: 0;
}

.auth-seg-opt.active[b-xuef77i6oj] {
    background: var(--havto-blueprint-accent);
    color: var(--havto-blueprint-bg);
}/* removed hover fill: .auth-seg-opt:not(.active):hover *//* removed hover fill: .auth-seg-opt.active:hover */

.auth-panel[b-xuef77i6oj] {
    margin-top: var(--havto-blueprint-space-2);
}

.auth-panel[hidden][b-xuef77i6oj] {
    display: none;
}

.oidc-note[b-xuef77i6oj] {
    position: relative;
    margin-top: var(--havto-blueprint-space-2);
    padding: var(--havto-blueprint-space-3);
    border: 1px solid var(--havto-blueprint-divider);
    font-size: 13px;
    line-height: var(--leading);
    color: var(--havto-blueprint-text);
    color: color-mix(in srgb, var(--havto-blueprint-text) 78%, transparent);
}

.oidc-note strong[b-xuef77i6oj] {
    display: block;
    font-weight: 600;
    margin-bottom: var(--havto-blueprint-space-1);
    color: var(--havto-blueprint-text);
}

.oidc-note[b-xuef77i6oj]  a,
.oidc-note a[b-xuef77i6oj] {
    color: var(--havto-blueprint-accent-700);
    font-weight: 600;
    text-decoration: none;
}

.oidc-note[b-xuef77i6oj]  a:hover,
.oidc-note a:hover[b-xuef77i6oj] {
    text-decoration: underline;
}

.auth-terms[b-xuef77i6oj]  a,
.auth-terms a[b-xuef77i6oj] {
    color: var(--havto-blueprint-accent-700);
    text-decoration: none;
}

.auth-terms[b-xuef77i6oj]  a:hover,
.auth-terms a:hover[b-xuef77i6oj] {
    text-decoration: underline;
}

/* Auth-specific input overrides -- height and padding not covered by global .mud-dialog CSS */
.auth-panel[b-xuef77i6oj]  .mud-input {
    background: var(--havto-blueprint-surface);
    border-radius: 0 !important;
    min-height: 36px;
    height: 36px;
}

.auth-panel[b-xuef77i6oj]  .mud-input-outlined-border {
    border-radius: 0 !important;
    border-color: var(--havto-blueprint-divider) !important;
}

.auth-panel[b-xuef77i6oj]  .mud-input:focus-within .mud-input-outlined-border,
.auth-panel[b-xuef77i6oj]  .mud-input.mud-input-focused .mud-input-outlined-border {
    border-color: var(--havto-blueprint-accent) !important;
    border-width: 1px !important;
}

.auth-panel[b-xuef77i6oj]  .mud-input .mud-input-slot {
    font-size: 14px;
    font-family: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: var(--havto-blueprint-text);
    padding: var(--hav-space-2) var(--hav-space-4) !important;
}

/* Auth dialog inputs are compact (36 px), but the default MudBlazor outlined label
   transform is sized for the standard 56 px control, so the placeholder label sits
   too low in the box. Bring it to the vertical centre and restore the correct size. */
.auth-panel[b-xuef77i6oj]  .mud-input-label-outlined {
    font-size: 14px !important;
    transform: translate(16px, 9px) scale(1) !important;
    line-height: 1.15rem;
}

.auth-panel[b-xuef77i6oj]  .mud-input-label-outlined.mud-input-label-shrink,
.auth-panel[b-xuef77i6oj]  .mud-shrink ~ label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined,
.auth-panel[b-xuef77i6oj]  .mud-input:focus-within ~ label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined,
.auth-panel[b-xuef77i6oj]  .mud-input:has(:-webkit-autofill) ~ label.mud-input-label.mud-input-label-inputcontrol.mud-input-label-outlined {
    font-size: 12px !important;
    transform: translate(16px, -8px) scale(0.75) !important;
}

/* Auth-specific button overrides -- buttons are in content, not DialogActions, so global CSS doesn't apply.
   Exclude .mud-icon-button: the MudCheckBox icon span and the password-visibility adornment carry
   mud-button-root too, and flattening them into 7px/12px buttons indents the checkbox ~12px. */
.auth-panel[b-xuef77i6oj]  .mud-button,
.auth-panel[b-xuef77i6oj]  .mud-button-root:not(.mud-icon-button) {
    border-radius: 0 !important;
    font-family: var(--font-heading);
    font-weight: var(--font-heading-weight);
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
    box-shadow: none !important;
    height: 36px !important;
    min-height: 36px;
    width: auto !important;
    padding: var(--hav-btn-pad-compact);
    white-space: nowrap;
    flex: 0 0 auto;
}

/* The submit button is wrapped in a MudTooltip (for the disabled-state hint), so
   it -- not the button -- is the flex item in the Cancel/Submit row. Without this,
   the tooltip's <span> flex-shrinks below the button's content width and "Start
   Free Trial" wraps onto three lines inside the fixed-height button. */
.auth-panel[b-xuef77i6oj]  .mud-tooltip-root {
    flex: 0 0 auto;
}

/* Edge-align the checkbox square with the inputs above: the icon-button's 4px dense
   padding plus the ~3px of viewBox padding inside the Material checkbox icon leaves
   the visible square ~7px in from the row edge (the Forgot password link sits flush). */
.auth-panel[b-xuef77i6oj]  .mud-checkbox > .mud-icon-button {
    margin-left: calc(-2 * var(--havto-blueprint-space-1));
}

.auth-panel[b-xuef77i6oj]  .mud-button-filled.mud-button-filled-primary,
.auth-panel[b-xuef77i6oj]  .mud-button-root.mud-button-filled.mud-button-filled-primary {
    background: var(--havto-blueprint-accent);
    color: var(--havto-blueprint-bg);
    border: 1px solid var(--havto-blueprint-accent);
}

.auth-panel[b-xuef77i6oj]  .mud-button-filled.mud-button-filled-primary:hover,
.auth-panel[b-xuef77i6oj]  .mud-button-root.mud-button-filled.mud-button-filled-primary:hover {
    background: var(--havto-blueprint-accent-600);
}

.auth-panel[b-xuef77i6oj]  .mud-button-outlined.mud-button-outlined-primary,
.auth-panel[b-xuef77i6oj]  .mud-button-root.mud-button-outlined.mud-button-outlined-primary {
    background: transparent;
    color: var(--havto-blueprint-text);
    border: 1px solid var(--havto-blueprint-divider);
}

.auth-panel[b-xuef77i6oj]  .mud-button-outlined.mud-button-outlined-primary:hover,
.auth-panel[b-xuef77i6oj]  .mud-button-root.mud-button-outlined.mud-button-outlined-primary:hover {
    background: var(--havto-blueprint-text);
    background: color-mix(in srgb, var(--havto-blueprint-text) 7%, transparent);
}

.auth-panel[b-xuef77i6oj]  .mud-typography-subtitle2.fw-bold {
    font-weight: 700;
}
/* /Components/Shared/Dialogs/RuleTemplatePreviewDialog.razor.rz.scp.css */
/* Rule Template Preview Dialog Styles */

.template-header[b-25yextek49] {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--hav-line);
}

    .template-header .mud-typography-h6[b-25yextek49] {
        font-weight: 600;
        color: var(--hav-text);
        margin-bottom: 0.5rem;
    }

    .template-header .mud-typography-body2[b-25yextek49] {
        line-height: 1.5;
    }

.rules-count-header[b-25yextek49] {
    margin-bottom: 1rem;
    font-weight: 600;
    color: var(--hav-accent);
}

.rule-card[b-25yextek49] {
    margin-bottom: 0.75rem;
    border-radius: 0;
    transition: border-color 0.2s ease-in-out;
    border: 1px solid var(--hav-line);
}

    .rule-card:hover[b-25yextek49] {
        box-shadow: none;
        border-color: var(--hav-accent);
    }

.rule-content[b-25yextek49] {
    flex-grow: 1;
    margin-right: 1rem;
}

.rule-name[b-25yextek49] {
    font-weight: 600;
    color: var(--hav-text);
    margin-bottom: 0.25rem;
}

.rule-description[b-25yextek49] {
    margin-bottom: 0.75rem;
    line-height: 1.4;
}

.rule-chips[b-25yextek49] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rule-details[b-25yextek49] {
    text-align: right;
    min-width: 200px;
    flex-shrink: 0;
}

.rule-expression[b-25yextek49] {
    font-weight: 600;
    color: var(--hav-text);
    margin-bottom: 0.25rem;
    background-color: var(--hav-surface-raised);
    padding: 0.25rem 0.5rem;
    border-radius: 0;
    font-family: var(--mud-typography-default-family);
    font-size: 0.875rem;
}

.legal-basis[b-25yextek49] {
    font-style: italic;
    line-height: 1.3;
}

.no-rules-alert[b-25yextek49] {
    margin-top: 1rem;
    border-radius: 0;
}

/* MudDialog content styling */
.mud-dialog-content[b-25yextek49] {
    padding: 1.5rem;
    max-height: 70vh;
    overflow-y: auto;
}

.mud-dialog-actions[b-25yextek49] {
    padding: 1rem 1.5rem;
    background-color: var(--hav-panel);
    border-top: 1px solid var(--hav-line);
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
}

/* Chip styling enhancements */
.mud-chip[b-25yextek49] {
    font-weight: 500;
    border-radius: 0;
    font-size: 0.75rem;
}

    .mud-chip.mud-chip-color-error[b-25yextek49] {
        background-color: color-mix(in srgb, var(--hav-error) 12%, transparent);
        color: var(--hav-error);
    }

    .mud-chip.mud-chip-color-warning[b-25yextek49] {
        background-color: color-mix(in srgb, var(--hav-warning) 12%, transparent);
        color: var(--hav-warning);
    }

    .mud-chip.mud-chip-color-info[b-25yextek49] {
        background-color: color-mix(in srgb, var(--hav-info) 12%, transparent);
        color: var(--hav-info);
    }

/* Responsive design */
@media (max-width: 768px) {
    .rule-card .d-flex[b-25yextek49] {
        flex-direction: column;
        align-items: flex-start;
    }

    .rule-content[b-25yextek49] {
        margin-right: 0;
        margin-bottom: 1rem;
        width: 100%;
    }

    .rule-details[b-25yextek49] {
        text-align: left;
        min-width: unset;
        width: 100%;
    }

    .rule-expression[b-25yextek49] {
        text-align: left;
        width: 100%;
    }

    .mud-dialog-content[b-25yextek49] {
        padding: 1rem;
    }

    .mud-dialog-actions[b-25yextek49] {
        padding: 1rem;
        flex-direction: column;
    }

    .dialog-button[b-25yextek49] {
        width: 100%;
        margin: 0;
    }
}

@media (max-width: 480px) {
    .template-header[b-25yextek49] {
        margin-bottom: 1rem;
        padding-bottom: 0.5rem;
    }

    .rules-count-header[b-25yextek49] {
        margin-bottom: 0.75rem;
    }

    .rule-card[b-25yextek49] {
        margin-bottom: 0.5rem;
    }

    .rule-chips[b-25yextek49] {
        gap: 0.25rem;
    }
}

/* Animation for card appearance */
.rule-card[b-25yextek49] {
    animation: fadeInUp 0.3s ease-out;
}

/* Scrollbar styling */
.mud-dialog-content[b-25yextek49]::-webkit-scrollbar {
    width: 6px;
}

.mud-dialog-content[b-25yextek49]::-webkit-scrollbar-track {
    background: var(--hav-surface-raised);
    border-radius: 0;
}

.mud-dialog-content[b-25yextek49]::-webkit-scrollbar-thumb {
    background: var(--hav-text-muted);
    border-radius: 0;
}/* removed hover fill: .mud-dialog-content::-webkit-scrollbar-thumb:hover */
/* /Components/Shared/DigitalSignature/DigitalSignatureCapture.razor.rz.scp.css */
/* Breathing room below confirmation copy before the mode control */
.signature-confirmation-checkbox[b-ocmtobvmiv] {
    display: block;
    margin-bottom: 0.5rem;
    padding-bottom: 0.25rem;
}

/* Left-aligned, content-sized segmented control (not full row width) */
.signature-mode-toggle-wrap[b-ocmtobvmiv] {
    align-self: flex-start;
    margin-top: 0.125rem;
    margin-bottom: 0.25rem;
    width: fit-content;
    max-width: min(26rem, 100%);
}

[b-ocmtobvmiv] .signature-mode-toggle.mud-toggle-group {
    width: auto !important;
    max-width: 100%;
}

/* SignaturePad canvas frame -- static layout in scoped CSS, dynamic height/border-color via CSS custom properties */
[b-ocmtobvmiv] .signature-pad-responsive {
    width: 100%;
    height: var(--sig-canvas-height, 200px);
    border: 3px solid var(--sig-canvas-border-color, #cbd5e1);
    border-radius: 8px;
    padding: var(--hav-panel-pad-compact);
    box-sizing: border-box;
    display: block;
}
/* /Components/Shared/ExportCircularProgressStatus.razor.rz.scp.css */
.export-progress-ring[b-5hi9fvvm9d] {
    height: 80px;
    width: 80px;
}
/* /Components/Shared/Forms/AsyncSubmitButton.razor.rz.scp.css */
.hav-submit[b-gwbrk4bsi0] {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

/* Spec Appendix A: one muted "Still saving" line in place past 10 s busy. */
.hav-submit__still[b-gwbrk4bsi0] {
    font-family: var(--hav-font-body);
    font-size: 12px;
    line-height: 1.3;
    color: var(--hav-text-muted);
}
/* /Components/Shared/Help/AIHelpPanel.razor.rz.scp.css */
/* AI help side panel - minimal scoped CSS; layout uses MudBlazor utility + hav-* kit classes. */

[b-5fj6e9g1g7] .ai-help-panel-container {
    padding-top: 0 !important;
}

/* Suggested-question rows: hairline separators per proposal S-3 drawing. */
.ai-help-questions[b-5fj6e9g1g7]  .mud-list-item {
    border-bottom: 1px solid var(--mud-palette-divider);
}

.ai-help-questions[b-5fj6e9g1g7]  .mud-list-item:last-child {
    border-bottom: 0;
}

/* Scroll slack lives inside the scroller so it scrolls with the content
   (the kit's 84px body padding assumes the body itself scrolls; see
   BaseSidePanel.razor.css for the padding-bottom: 0 companion override).
   pa-0 on the element is !important, so this needs it too - id specificity wins. */
#chatMessagesContainer[b-5fj6e9g1g7] {
    padding-bottom: var(--hav-panel-pad) !important;
}

/* Chat bubbles. */
.ai-help-bubble-user[b-5fj6e9g1g7] {
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
    max-width: 85%;
}

/* The mud-paper class (needed by E2E bubble detection) trips the app-align
   flattening rule .hav-app .mud-paper:not(...) -> white-on-white user bubble.
   Restore the primary fill; id anchor beats the five-class :not() chain. */
#chatMessagesContainer .mud-paper.ai-help-bubble-user[b-5fj6e9g1g7] {
    background-color: var(--mud-palette-primary) !important;
}

.ai-help-bubble-assistant[b-5fj6e9g1g7] {
    background-color: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-lines-default);
    max-width: 100%;
}
/* /Components/Shared/Incidents/PreventiveActionsPanel.razor.rz.scp.css */
.campaign-card:hover[b-flq06kt1rg] {
 box-shadow: none;
 }
/* /Components/Shared/Layout/BaseComplianceOversightLayout.razor.rz.scp.css */
/* BaseComplianceOversightLayout - per-consumer row sizing for the stats grid. */
[b-je9p7675d2] .compliance-oversight-stats {
    --hav-row-min: clamp(calc(var(--hav-field-cap) * 0.75), calc(50% - (var(--hav-grid-gutter) / 2)), var(--hav-field-cap));
}
/* /Components/Shared/Layout/BaseDashboardLayout.razor.rz.scp.css */
/*
   BaseDashboardLayout - minimal CSS: app-bar offset, viewport min-height fallback,
   single scroll strip, sticky sidebar + grid sizing, documented child utilities.

   Fallback height: MudMainContent rarely receives an explicit height in the flex chain.
   Keeping min-height on .dashboard-shell preserves the filled dashboard when % heights
   collapse. If MainLayout gains a first-class height contract, this calc can shrink further.
*/

/* Scope host does not participate in layout; children lay out as direct children of the parent. */
.dashboard-layout-host[b-rv18qunnx2] {
    display: contents;
}

/* Top gutter: parity with BaseListPageLayout MudContainer.Class="mt-4" - applied on .dashboard-shell */
[b-rv18qunnx2] .dashboard-root {
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
}

[b-rv18qunnx2] .dashboard-shell {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    min-height: calc(100dvh - 64px);
}

@media (max-width: 960px) {
    [b-rv18qunnx2] .dashboard-shell {
        min-height: calc(100dvh - 56px);
    }
}

/* Sole primary vertical scroll: overflow + flex only (inset = Mud utilities on inner MudContainer: pt-4 pt-md-6 pb-4). */
[b-rv18qunnx2] .dashboard-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

/* ::deep reaches the MudPaper rendered by the child component; CSS isolation does not
   otherwise add the scope attribute to elements created inside MudPaper. */
[b-rv18qunnx2] .dashboard-header-paper {
    padding: 1.25rem 1.5rem;
    background: var(--hav-panel);
    border-bottom: 1px solid var(--hav-line);
}

@media (max-width: 960px) {
    [b-rv18qunnx2] .dashboard-header-paper {
        padding: 0.75rem 1rem;
    }
}

/* Horizontal inset comes from MudContainer (matches grid below) */
[b-rv18qunnx2] .dashboard-page-header-outer {
    padding-top: 0;
}

/* .hav-row flex context: allows main column stacks to shrink for nested flex */
[b-rv18qunnx2] .dashboard-main-cell {
    min-height: 0;
}

/* Dashboard content cap -- blueprint audit shell/dashboard max-width is 1180px. */
[b-rv18qunnx2] .mud-container-maxwidth-large {
    max-width: 1180px !important;
}

/*
   Sidebar fills the grid row (lg+) so the rail is flush with the primary tiles (bottoms align).
   The timeline card (.hs-timeline-container, flex:1) - and any RightColumn MudStack given flex-grow-1 -
   stretch to the cell height. The rail is NOT scrollable (the page scrolls); instead the rail's
   <Timeline PreviewLimit="N"> is tuned so N items fill that height. xs-md: natural stacked flow.
*/
[b-rv18qunnx2] .dashboard-sidebar-host {
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* Transparent wrapper: the sidebar stack itself is the .hav-row grid item, so
   .havto-slot on the stack can drop the whole track when RightColumn is empty. */
.dashboard-sidebar-cell[b-rv18qunnx2] {
    display: contents;
}

@media (min-width: 961px) {
    [b-rv18qunnx2] .dashboard-sidebar-host {
        align-self: stretch;
        flex: 1 1 auto;
        min-height: 0;
    }
}

/* Equal-height dashboard tile row (Incidents / Risk / Timeline siblings) */
[b-rv18qunnx2] .dashboard-tile-row {
    align-items: stretch;
}

[b-rv18qunnx2] .dashboard-tile-cell {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

@media (min-width: 961px) {
    [b-rv18qunnx2] .dashboard-tile-cell {
        min-height: 620px;
    }
}

@media (max-width: 960px) {
    [b-rv18qunnx2] .dashboard-tile-cell {
        min-height: 480px;
    }
}

[b-rv18qunnx2] .dashboard-tile-cell .hs-timeline-container,
[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile,
[b-rv18qunnx2] .dashboard-tile-cell .dashboard-tile {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: none;
}

/* Tile bodies never scroll inside the card -- capped previews grow the grid
   row and the page scrolls. overflow-x: clip guards width without creating a
   scroll container (hidden would force overflow-y to compute to auto). */
[b-rv18qunnx2] .dashboard-tile-cell .timeline-content,
[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile__body,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body {
    flex: 1 1 0%;
    min-height: 0;
    overflow-y: visible;
    overflow-x: clip;
}

/* Title/label and chips/badges stay on one row; the label wraps while the chip keeps its width. */
[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile__body .d-flex.flex-row,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body .d-flex.flex-row,
[b-rv18qunnx2] .dashboard-tile-cell .timeline-card .d-flex.flex-row {
    min-width: 0;
    flex-wrap: nowrap;
}

[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile__body .d-flex.flex-row > .mud-typography,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body .d-flex.flex-row > .mud-typography,
[b-rv18qunnx2] .dashboard-tile-cell .timeline-card .d-flex.flex-row > .mud-typography,
[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile__body .d-flex.flex-row > .d-flex:first-child,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body .d-flex.flex-row > .d-flex:first-child {
    flex: 1 1 0%;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
}

[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile__body .d-flex.flex-row > .hav-status,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body .d-flex.flex-row > .hav-status,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body .d-flex.flex-row > .hav-risk-level-chip,
[b-rv18qunnx2] .dashboard-tile-cell .timeline-card .d-flex.flex-row > .hav-status,
[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile__body .d-flex.flex-row > .mud-chip,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body .d-flex.flex-row > .mud-chip,
[b-rv18qunnx2] .dashboard-tile-cell .timeline-card .d-flex.flex-row > .mud-chip,
[b-rv18qunnx2] .dashboard-tile-cell .incidents-tile__body .d-flex.flex-row > .mud-button,
[b-rv18qunnx2] .dashboard-tile-cell .risk-register-tile__body .d-flex.flex-row > .mud-button {
    flex: 0 0 auto;
    max-width: 100%;
}

[b-rv18qunnx2] .dashboard-tile-cell .blazor-error-boundary {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

/* Child dashboard markers (tiles, KPI row, timeline) */
[b-rv18qunnx2] .dashboard-tile-loading {
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

[b-rv18qunnx2] .dashboard-kpi-card {
    height: 140px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Timeline participates in dashboard-scroll; flex minors help dense inner regions */
[b-rv18qunnx2] .hs-timeline-container {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

[b-rv18qunnx2] .timeline-content {
    flex: 1 1 auto;
    min-height: 0;
}
/* /Components/Shared/Layout/BaseDetailPageLayout.razor.rz.scp.css */
/* HAV2338 (S11.21) -- a detail rail fits its content. .hav-detail sets
   align-items: start, so the rail column ends where its plates end: no
   stretch to the row, no sticky viewport cap, no rail-level scroll region and
   no nominated fill. RecordTimeline keeps its own stated cap
   (record-timeline-scroll-contained) as the one bounded preview a rail may
   hold; the page scroll is the only scroll. */
.havto-detail-rail[b-e0tukrhpb6]  .havto-detail-timeline-shell > div:first-child {
    padding: var(--hav-panel-pad-compact) var(--hav-panel-pad-compact) 0;
}

.havto-detail-rail[b-e0tukrhpb6]  .havto-detail-timeline-body {
    padding: var(--hav-panel-pad-compact);
}
/* /Components/Shared/Layout/DetailContextTabsShell.razor.rz.scp.css */
.detail-context-tabs[b-f68ogods8b]  .mud-tabs-tabbar {
    min-height: 42px;
    background-color: transparent !important;
}

.detail-context-tabs-header[b-f68ogods8b] {
    background-color: transparent !important;
    border-bottom: 1px solid var(--hav-line);
}
/* /Components/Shared/Layout/DetailSummaryBar.razor.rz.scp.css */
.havto-detail-summary-bar[b-houyrsuwn4] {
    padding: var(--hav-panel-pad-compact);
}

.havto-detail-summary-bar__items[b-houyrsuwn4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 2.5rem;
    row-gap: 1rem;
}

/* Thin separator between inline stats. ::deep because the stats are a child component. */
[b-houyrsuwn4] .havto-detail-summary-bar__stat {
    position: relative;
}

[b-houyrsuwn4] .havto-detail-summary-bar__stat:not(:first-child)::before {
    content: "";
    position: absolute;
    left: -1.25rem;
    top: 50%;
    transform: translateY(-50%);
    height: 2rem;
    width: 1px;
    background: var(--hav-line);
}
/* /Components/Shared/Layout/HubDetailMetricTile.razor.rz.scp.css */
.hub-detail-metric-tile[b-6ip7p36s31],
.hub-detail-metric-tile-compact[b-6ip7p36s31] {
    flex-basis: 0;
    display: flex;
    flex-direction: column;
}
/* /Components/Shared/Layout/OidcFlowLayout.razor.rz.scp.css */
/* Spec S.9.9.1 / Mobile S.04-D: the browser leg is one 360 column on the ground,
   top-aligned 48 below the browser bar - a vertically centred form jumps when the
   keyboard opens and puts the commit under it. */
[b-qbc8ogglre] .oidc-flow-layout {
    min-height: 100vh;
    max-width: 360px;
}
/* /Components/Shared/Layout/OrgOverviewSection.razor.rz.scp.css */
.org-overview[b-6b0aj8211x] {
    padding: 1rem;
}

.org-overview__org[b-6b0aj8211x] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.org-overview__org--d1[b-6b0aj8211x] { padding-left: 1.25rem; }
.org-overview__org--d2[b-6b0aj8211x] { padding-left: 2.5rem; }
.org-overview__org--d3[b-6b0aj8211x] { padding-left: 3.75rem; }
.org-overview__org--d4[b-6b0aj8211x] { padding-left: 5rem; }
.org-overview__org--d5[b-6b0aj8211x] { padding-left: 6.25rem; }
.org-overview__org--d6[b-6b0aj8211x] { padding-left: 7.5rem; }

.org-overview__chevron[b-6b0aj8211x] {
    transition: transform 150ms ease;
}

.org-overview__chevron--open[b-6b0aj8211x] {
    transform: rotate(180deg);
}

.org-overview__preview[b-6b0aj8211x] {
    background-color: var(--mud-palette-background-grey);
}
/* /Components/Shared/Layout/PageAnchorPanel.razor.rz.scp.css */
/* (c) 2026 Havto Limited. All rights reserved. */
/* PR5: PageAnchorPanel - desktop sticky TOC + mobile jump list */

.page-anchor-panel[b-7lq2xrygns] {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}

.page-anchor-title[b-7lq2xrygns] {
    color: var(--hav-text-muted);
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.page-anchor-list[b-7lq2xrygns] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.page-anchor-item[b-7lq2xrygns] {
    margin-bottom: 0.125rem;
}

.page-anchor-link[b-7lq2xrygns] {
    display: block;
    padding: 0.25rem 0.5rem;
    color: var(--hav-text-muted);
    text-decoration: none;
    font-size: 0.875rem;
    line-height: 1.25rem;
    border-left: 2px solid transparent;
    transition: border-color 0.15s, color 0.15s;
}

.page-anchor-link:hover[b-7lq2xrygns] {
    color: var(--hav-text);
    border-left-color: var(--hav-accent);
}

.havto-anchor-active > .page-anchor-link[b-7lq2xrygns],
.page-anchor-link.havto-anchor-active[b-7lq2xrygns] {
    color: var(--hav-accent);
    border-left-color: var(--hav-accent);
    font-weight: 500;
}

.page-anchor-mobile[b-7lq2xrygns] {
    margin-bottom: 0.5rem;
}
/* /Components/Shared/LoadingErrorEmpty.razor.rz.scp.css */
/* data-state marker wrappers: layout-less so they never box the region they annotate. */
.hav-state-marker[b-u02kvaefom] { display: contents; }
/* /Components/Shared/Marketing/MarketingFooter.razor.rz.scp.css */
/* Footer layout aligned with the blueprint .foot-cols / .foot-brand / .foot-col grammar. */

.blueprint-footer[b-xyswhiju7x] {
    padding: calc(2 * var(--leading, var(--hav-panel-pad-feature))) 0;
    font-size: 13px;
    line-height: var(--leading, var(--hav-panel-pad-feature));
}

.foot-cols[b-xyswhiju7x] {
    padding-top: var(--havto-blueprint-space-2);
    border-top: 1px solid var(--havto-blueprint-divider);
}

.foot-brand .fb-name[b-xyswhiju7x],
.foot-brand[b-xyswhiju7x]  .fb-name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--havto-blueprint-text);
}

.foot-brand .fb-word[b-xyswhiju7x],
.foot-brand[b-xyswhiju7x]  .fb-word,
.foot-brand[b-xyswhiju7x]  .mud-typography-h6 {
    font-family: "Barlow Condensed", "Barlow", system-ui, sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 24px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--havto-blueprint-text);
}

/* Spec 16.12 long tagline - one phrase per line under the wordmark. */
.foot-brand .fb-tag[b-xyswhiju7x] {
    margin: var(--havto-blueprint-space-2) 0 0;
    font-family: "Barlow Condensed", "Barlow", system-ui, sans-serif;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--havto-blueprint-text);
}

.foot-brand .fb-tag span[b-xyswhiju7x] {
    display: block;
}

.foot-col[b-xyswhiju7x]  .mud-typography-subtitle1 {
    font-family: "Barlow Condensed", "Barlow", system-ui, sans-serif;
    font-size: 13px;
    line-height: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--havto-blueprint-accent-700);
}

.foot-col[b-xyswhiju7x]  .mud-link {
    display: block;
    text-decoration: none;
    line-height: var(--leading, 24px);
    font-family: "Barlow", system-ui, sans-serif;
    color: color-mix(in srgb, var(--havto-blueprint-text) 70%, transparent);
}

.foot-col[b-xyswhiju7x]  .mud-link:hover {
    color: var(--havto-blueprint-accent-700);
    text-decoration: underline;
}

.foot-base[b-xyswhiju7x] {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--havto-blueprint-space-2);
    margin-top: calc(2 * var(--leading, var(--hav-panel-pad-feature)));
}

.foot-base[b-xyswhiju7x]  .mud-typography {
    font-family: "Barlow", system-ui, sans-serif;
    font-size: 13px;
    line-height: var(--leading, 24px);
    color: color-mix(in srgb, var(--havto-blueprint-text) 70%, transparent);
}

.foot-brand[b-xyswhiju7x]  .mud-typography-body2 {
    font-family: "Barlow", system-ui, sans-serif;
    margin-top: var(--havto-blueprint-space-2);
    max-width: 34ch;
    color: color-mix(in srgb, var(--havto-blueprint-text) 70%, transparent);
}
/* /Components/Shared/Operations/Projects/ProjectCompletionAiReviewPanel.razor.rz.scp.css */
.pre-wrap-text[b-9ll574drql] {
    white-space: pre-wrap;
}
/* /Components/Shared/Operations/Projects/ProjectHealthFinancialsPanel.razor.rz.scp.css */
.mud-width-55[b-olifrslgdo] {
        min-width: 55px;
    }
/* /Components/Shared/Operations/Projects/ProjectMilestoneScheduleStrip.razor.rz.scp.css */
.milestone-schedule-strip[b-2hjeqma3m4] {
    width: 100%;
}

.milestone-schedule-caption[b-2hjeqma3m4] {
    margin-bottom: var(--hav-space-3);
}

.milestone-schedule-track[b-2hjeqma3m4] {
    position: relative;
    height: 72px;
    border-radius: 0;
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--hav-accent) 4%, transparent) 0%,
        color-mix(in srgb, var(--hav-accent) 1%, transparent) 100%);
    border: 1px solid color-mix(in srgb, var(--hav-line) 80%, transparent);
    overflow-x: auto;
    overflow-y: hidden;
}

.milestone-schedule-axis[b-2hjeqma3m4] {
    position: relative;
    height: 100%;
    min-width: var(--ms-axis-min-width, 100%);
}

.milestone-schedule-baseline[b-2hjeqma3m4] {
    position: absolute;
    left: 16px;
    right: 16px;
    top: 50%;
    height: 2px;
    transform: translateY(-50%);
    background: color-mix(in srgb, var(--hav-line) 90%, transparent);
}

.milestone-schedule-range-label[b-2hjeqma3m4] {
    position: absolute;
    top: 8px;
    font-size: 0.6875rem;
    color: var(--hav-text-muted);
    white-space: nowrap;
}

    .milestone-schedule-range-label.start[b-2hjeqma3m4] {
        left: 16px;
    }

    .milestone-schedule-range-label.end[b-2hjeqma3m4] {
        right: 16px;
    }

.milestone-schedule-marker[b-2hjeqma3m4] {
    position: absolute;
    left: var(--ms-marker-left, 0);
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.milestone-schedule-diamond[b-2hjeqma3m4] {
    width: 14px;
    height: 14px;
    transform: rotate(45deg);
    border-radius: 0;
    border: 2px solid var(--hav-panel);
    box-shadow: none;
    flex-shrink: 0;
}

    .milestone-schedule-diamond.completed[b-2hjeqma3m4] {
        background: var(--hav-success);
    }

    .milestone-schedule-diamond.pending[b-2hjeqma3m4] {
        background: var(--hav-accent);
    }

    .milestone-schedule-diamond.overdue[b-2hjeqma3m4] {
        background: var(--hav-error);
    }

.milestone-schedule-marker-label[b-2hjeqma3m4] {
    font-size: 0.625rem;
    line-height: 1.1;
    text-align: center;
    max-width: 88px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--hav-text-muted);
}
/* /Components/Shared/Operations/Projects/ProjectReadinessChecklist.razor.rz.scp.css */
/* Readiness checklist layout (HAV2209). */

/* Readiness gates: two columns at >=900, one column below, with a fixed-width chip
   so the labels share a single reading edge. */
.readiness-columns[b-ec2q15j2rr] {
    columns: 2 300px;
    column-gap: 16px;
}

@media (max-width: 899px) {
    .readiness-columns[b-ec2q15j2rr] {
        columns: 1;
    }
}

.readiness-row[b-ec2q15j2rr] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: var(--hav-space-2) 0;
    border-bottom: 1px solid var(--hav-line);
    break-inside: avoid;
}

.readiness-row:last-child[b-ec2q15j2rr] {
    border-bottom: 0;
}

[b-ec2q15j2rr] .readiness-chip {
    min-width: 64px;
    justify-content: center;
    flex: 0 0 auto;
}
/* /Components/Shared/Operations/Projects/ProjectScopeTree.razor.rz.scp.css */
/* ProjectScopeTree -- loading skeleton rows sized to the tree row height. */
.project-scope-skeleton__row[b-wnp6eycouo] {
    height: 36px;
}

/* S11.21 / Modules 07-B H -- the Scope surface is a named two-pane pattern under
   HAV2189: the tree index at minmax(300px, 360px) and the register taking 1fr.
   The page shell holds the viewport bound (viewport less the chrome above);
   the grid fills it, and each pane is the one scroll region on its side. No
   pixel height is stated -- the bound is relational. */
.project-scope[b-wnp6eycouo] {
    display: grid;
    grid-template-columns: minmax(300px, 360px) 1fr;
    gap: 20px;
    flex: 1 1 auto;
    min-height: 0;
}

.project-scope__tree-pane[b-wnp6eycouo],
.project-scope__register-pane[b-wnp6eycouo] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.project-scope__tree-region[b-wnp6eycouo] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

/* Register pane: the whole path states itself above the answer (S11.21), then
   the register head, then rows -- mono id, link title, hairline separators. */
.project-scope-register__crumb[b-wnp6eycouo] {
    font-size: 12px;
    color: var(--hav-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-scope-register__head[b-wnp6eycouo] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin: 4px 0 2px;
}

.project-scope-register__body[b-wnp6eycouo] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    margin-top: 8px;
    border-top: 1px solid var(--hav-line);
}

.project-scope-register__row[b-wnp6eycouo] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-height: 32px;
    padding: 6px 0;
    border-bottom: 1px solid var(--hav-line);
    font-size: 12.5px;
    color: var(--hav-text);
    text-decoration: none;
}

.project-scope-register__row:hover[b-wnp6eycouo] {
    background: color-mix(in srgb, var(--hav-accent) 6%, transparent);
}

.project-scope-register__id[b-wnp6eycouo] {
    font-family: var(--hav-font-mono);
    white-space: nowrap;
}

.project-scope-register__text[b-wnp6eycouo] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.project-scope-register__empty[b-wnp6eycouo] {
    color: var(--hav-text-muted);
}

/* Below 960 the panes stack: the tree keeps its open path and the register
   follows on the same page scroll, so neither pane carries its own bound. */
@media (max-width: 960px) {
    .project-scope[b-wnp6eycouo] {
        grid-template-columns: 1fr;
    }

    .project-scope__tree-region[b-wnp6eycouo],
    .project-scope-register__body[b-wnp6eycouo] {
        overflow-y: visible;
    }
}
/* /Components/Shared/Organizations/AICostDashboardWidget.razor.rz.scp.css */
.ai-cost-days-select[b-r1th1ky5zx] {
    min-width: 140px;
}
/* /Components/Shared/PendingPolicyApprovalsPanel.razor.rz.scp.css */
.pending-policy-proposal-row[b-myyu4hk3x4] {
    border-bottom: 1px solid var(--hav-line);
    padding: var(--hav-space-3) 0;
}
/* /Components/Shared/Platform/Authentication/MobileOidcReturnPanel.razor.rz.scp.css */
/* S.04-D: the one action is filled and square. */
[b-3lmo2gii9e] .mud-button {
    border-radius: 0;
}
/* /Components/Shared/Platform/Feedback/FeedbackPanel.razor.rz.scp.css */
/* S22.2 / HAV2283: the outbound payload list is a plain bulleted list inside the
   hav-section disclosure block. */

.feedback-payload-list[b-d05rbtmuc9] {
    list-style: disc;
}
/* /Components/Shared/Platform/ReleaseNotes/ReleaseNotesPanel.razor.rz.scp.css */
/* Make the release notes scroll area a flex column so the paper can fill the sidepanel body */
.release-notes-scroll[b-8m0ver4ou4] {
    display: flex;
    flex-direction: column;
}

/* Paper in the scroll region: lays out its children as a flex column and grows with content.
   The --fill modifier keeps loading/empty states full-height so the spinner/empty message centers in the panel body.
   For actual timeline content, the paper hugs its content so short lists don't show a large empty bordered box. */
.release-notes-scroll[b-8m0ver4ou4]  .release-notes-timeline-paper {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
}

.release-notes-scroll[b-8m0ver4ou4]  .release-notes-timeline-paper--fill {
    min-height: 100%;
}

/* Loading / empty states are MudStacks with h-100; make them fill the paper and center vertically */
.release-notes-scroll[b-8m0ver4ou4]  .release-notes-timeline-paper .mud-stack.h-100 {
    flex: 1 1 auto;
}

/* Widen MudBlazor timeline lanes by reducing the central axis gap. 
   Default MudBlazor uses 96px divider + (50% - 48px) per lane; this uses 48px divider + (50% - 24px) per lane,
   so each lane uses more of the available sidepanel width. */
.release-notes-scroll[b-8m0ver4ou4]  .mud-timeline-item .mud-timeline-item-divider {
    min-width: 48px;
}

.release-notes-scroll[b-8m0ver4ou4]  .mud-timeline-item .mud-timeline-item-content,
.release-notes-scroll[b-8m0ver4ou4]  .mud-timeline-item .mud-timeline-item-opposite {
    max-width: calc(50% - 24px);
}

/* All-users-only items span the full width of the sidepanel (the role lane is not used).
   The divider/dot is hidden and the content is allowed to fill the item, so the card background
e. The MudBlazor axis line stays behind the card and is hidden by the paper background. */
.release-notes-scroll[b-8m0ver4ou4]  .mud-timeline-item.release-notes-timeline-item--full .mud-timeline-item-divider {
    display: none;
}

.release-notes-scroll[b-8m0ver4ou4]  .mud-timeline-item.release-notes-timeline-item--full .mud-timeline-item-content {
    flex: 1 1 100%;
    max-width: 100%;
}
/* /Components/Shared/RegionalStandards/RegionalStandardCard.razor.rz.scp.css */
/* Regional standard row item inside a disclosure panel.
   Replaces the second fill step; rows are separated by a single hairline. */
.regional-standard-card[b-8oew6pvhjw] {
    border-bottom: 1px solid var(--hav-line);
    padding: var(--hav-space-3) 0;
}

.regional-standard-card:first-child[b-8oew6pvhjw] {
    padding-top: 0;
}
/* /Components/Shared/RegionalStandards/RegionalStandardsPanel.razor.rz.scp.css */
/* Regional standards list inside a disclosure panel.
   Treats card wrappers as rows and removes the bottom rule from the last row. */
[b-vl1nlqa1ts] .regional-standards-list > div:first-child .regional-standard-card {
    padding-top: 0;
}

[b-vl1nlqa1ts] .regional-standards-list > div:last-child .regional-standard-card {
    border-bottom: 0;
    padding-bottom: 0;
}
/* /Components/Shared/Speech/VoiceCaptureCard.razor.rz.scp.css */
.voice-meter[b-r6q456g592] {
 display: flex;
 flex-direction: row;
 align-items: flex-end;
 gap: 4px;
 height: 38px;
 width: 100%;
 }

 .voice-meter__bar[b-r6q456g592] {
 flex: 1;
 min-width: 3px;
 border-radius: 0;
 background: var(--hav-line);
 height: var(--bar-height, 8px);
 opacity: var(--bar-opacity, 0.55);
 box-shadow: var(--bar-glow, none);
 transition: background 120ms ease-in-out, box-shadow 120ms ease-in-out, height 90ms linear, opacity 90ms linear;
 }

 .voice-meter--active .voice-meter__bar[b-r6q456g592] {
 background: var(--hav-accent);
 }
/* /Components/Shared/StandardsSection.razor.rz.scp.css */
.standards-section[b-4or1emr0jp]  .view-official-standard {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
/* /Components/Shared/Steppers/StepperActionBar.razor.rz.scp.css */
/* Stepper footer - MudStack + MudButton props own interaction; this file is layout-only (UI-2). */
.stepper-action-bar[b-gucvned4zx] {
    width: 100%;
}
/* /Components/Shared/TeamCard.razor.rz.scp.css */
.team-card[b-1mbp047r24] {
 transition: background-color 0.3s ease-in-out;
 }

 .team-card-action[b-1mbp047r24] {
 opacity: 0.7;
 transition: opacity 0.2s ease-in-out;
 }

 .team-card:hover .team-card-action[b-1mbp047r24] {
 opacity: 1;
 }
/* /Components/Shared/ThemeRootStyles.razor.rz.scp.css */
/* CSS variables are injected via ThemeRootStyles.razor <style> tag */
/* /Components/SidePanels/Admin/WorkerCredentialPanel.razor.rz.scp.css */
.worker-credential-qr[b-84ekknkp3w] {
    max-width: 180px;
}
/* /Components/SidePanels/Compliance/ExportPreCheckWarningDialog.razor.rz.scp.css */
.tone-flag-text[b-mbdq1ke71n] {
    font-style: italic;
}
/* /Components/SidePanels/Incidents/AssignInvestigatorPanel.razor.rz.scp.css */


.investigator-card[b-tojrkadzer] {
    border-radius: 0;
    transition: background-color 0.2s ease;
}
/* /Components/SidePanels/Incidents/CloseIncidentPanel.razor.rz.scp.css */
/* Intellectual Property Declaration This source code is solely authored and owned by Leonard
   Harris. No other party has contributed to its development. ? 2026 Havto Limited. All rights reserved. */

.incident-info-banner[b-cg358351wx] {
    background-color: var(--hav-surface-raised);
    border-left: 4px solid var(--hav-info);
}

.validation-success[b-cg358351wx] {
    background-color: color-mix(in srgb, var(--hav-success) 10%, transparent);
    border: 1px solid var(--hav-success);
}

.validation-warning[b-cg358351wx] {
    background-color: color-mix(in srgb, var(--hav-warning) 10%, transparent);
    border: 1px solid var(--hav-warning);
}
/* /Components/SidePanels/Incidents/CollectWitnessStatementPanel.razor.rz.scp.css */


.statement-textarea[b-1hta9swqxc] {
    font-family: 'Roboto', sans-serif;
    line-height: 1.6;
}
/* /Components/SidePanels/Incidents/NotifiableEventPanel.razor.rz.scp.css */
/* Notifiable Event Panel Styles */

.notifiable-event-panel[b-ggbne0z730] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.deadline-overdue[b-ggbne0z730] {
    color: var(--hav-error);
    font-weight: 600;
}

.deadline-urgent[b-ggbne0z730] {
    color: var(--hav-warning);
    font-weight: 600;
}

.incident-info-banner[b-ggbne0z730] {
    background-color: var(--hav-surface-raised);
    border-radius: 0;
}
/* /Components/SidePanels/Incidents/ReopenIncidentPanel.razor.rz.scp.css */
/* Intellectual Property Declaration This source code is solely authored and owned by Leonard
   Harris. No other party has contributed to its development. ? 2026 Havto Limited. All rights reserved. */

.incident-info-banner[b-efk2t0lqfp] {
    background-color: var(--hav-surface-raised);
    border-left: 4px solid var(--hav-warning);
}

.reopen-warning[b-efk2t0lqfp] {
    background-color: color-mix(in srgb, var(--hav-warning) 10%, transparent);
    border: 1px solid var(--hav-warning);
}

.reason-field[b-efk2t0lqfp] {
    min-height: 100px;
}
/* /Components/SidePanels/Incidents/Training/AddCertificationPanel.razor.rz.scp.css */
/* Add Certification Panel Styles */

.add-certification-panel[b-0iil87u89y] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.certificate-validation-success[b-0iil87u89y] {
    color: var(--hav-success);
}

.certificate-validation-error[b-0iil87u89y] {
    color: var(--hav-error);
}
/* /Components/SidePanels/Incidents/Training/EditTrainingRecordPanel.razor.rz.scp.css */


.loading-container[b-a9ma8bmps3] {
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* /Components/SidePanels/Incidents/Training/ViewTrainingRecordPanel.razor.rz.scp.css */
[b-4igycgu5ea] .view-training-record-panel {
    display: flex;
    flex-direction: column;
}

    [b-4igycgu5ea] .view-training-record-panel .mud-grid {
        padding: var(--mud-spacing-4);
    }

    [b-4igycgu5ea] .view-training-record-panel .mud-chip {
        margin-right: var(--mud-spacing-2);
        margin-bottom: var(--mud-spacing-2);
    }

    [b-4igycgu5ea] .view-training-record-panel .mud-text {
        word-break: break-word;
    }

    [b-4igycgu5ea] .view-training-record-panel .mud-divider {
        margin-bottom: var(--mud-spacing-3);
    }
/* /Components/SidePanels/Incidents/WorkerConsultationPanel.razor.rz.scp.css */
[b-bx1aob4nbb] .worker-consultation-panel {
    display: flex;
    flex-direction: column;
}

    [b-bx1aob4nbb] .worker-consultation-panel .mud-form {
        flex: 1;
        overflow-y: auto;
    }

    [b-bx1aob4nbb] .worker-consultation-panel .mud-grid {
        padding: var(--mud-spacing-4);
    }

    [b-bx1aob4nbb] .worker-consultation-panel .mud-alert {
        margin-bottom: var(--mud-spacing-4);
    }

    [b-bx1aob4nbb] .worker-consultation-panel .mud-text-field {
        width: 100%;
    }

    [b-bx1aob4nbb] .worker-consultation-panel .mud-select {
        width: 100%;
    }

    [b-bx1aob4nbb] .worker-consultation-panel .mud-checkbox {
        margin-bottom: var(--mud-spacing-2);
    }
/* /Components/SidePanels/Operations/AddLocationPanel.razor.rz.scp.css */
/* .location-panel-section -- no border (parent .hav-section provides framing) */
/* /Components/SidePanels/Operations/EditLocationPanel.razor.rz.scp.css */
/* .location-panel-section -- no border (parent .hav-section provides framing) */
/* /Components/SidePanels/Operations/SitePermitRequirementsPanel.razor.rz.scp.css */
.requirement-notes[b-o27b32zmvv] {
    max-width: 200px;
}
/* /Components/SidePanels/Visitors/Components/VisitorCheckInOutSection.razor.rz.scp.css */
.visitor-check-in-out-section[b-lzlkivcau9] {
    border: 1px solid var(--hav-line);
}
/* /Components/SidePanels/Visitors/Components/VisitorEmergencyContactSection.razor.rz.scp.css */
.visitor-section[b-n5jevrlkn2] {
    border: 1px solid var(--hav-line);
}
/* /Components/SidePanels/Visitors/Components/VisitorInformationSection.razor.rz.scp.css */
.visitor-section[b-bhbgi25aje] {
    border: 1px solid var(--hav-line);
}
/* /Components/SidePanels/Visitors/Components/VisitorNotesSection.razor.rz.scp.css */
.visitor-section[b-2tb559t48a] {
    border: 1px solid var(--hav-line);
}
/* /Components/SidePanels/Visitors/Components/VisitorStatusBadge.razor.rz.scp.css */
.visitor-status-badge[b-vsyw88fw5l] {
    border: 1px solid var(--hav-line);
    background-color: var(--hav-surface-raised);
}

.visitor-status-id[b-vsyw88fw5l] {
    font-family: var(--hav-font-mono);
}
/* /Components/SidePanels/Visitors/Components/VisitorVisitDetailsSection.razor.rz.scp.css */
.visitor-visit-details-section[b-ed3gpndwud] {
    border: 1px solid var(--hav-line);
}
