html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
/* STIG check content: preserve the formatting embedded in check/fix text */
.check-text {
    white-space: pre-wrap;
    font-size: 0.9rem;
}

/* Edit view: classic split layout */
.meta-label {
    display: block;
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 2px;
}

/* Themed scrollbars: thumb/track follow the active swatch */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--kendo-color-base-emphasis, #B9C4D1) var(--kendo-color-base-subtle, #E4EAF2);
}

*::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

*::-webkit-scrollbar-track {
    background: var(--kendo-color-base-subtle, #E4EAF2);
}

*::-webkit-scrollbar-thumb {
    background: var(--kendo-color-base-emphasis, #B9C4D1);
    border-radius: 5px;
    border: 2px solid var(--kendo-color-base-subtle, #E4EAF2);
}

    *::-webkit-scrollbar-thumb:hover {
        background: var(--kendo-color-border-alt, var(--kendo-color-border, #98A6B5));
    }

/* Severity/status chips: MAUI grid chips are radius 4, padding 8x4, bold */
.status-chip {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}

/* ── MAUI button grammar (apply via TelerikButton Class) ─────────────
   Primary-subtle = tinted main actions; semantic subtle = bordered tinted
   commands; solid error/warning/success for destructive/update/Excel. */
.k-button.app-btn-primary-subtle {
    background-color: var(--kendo-color-primary-action, var(--kendo-color-primary-subtle));
    border-color: var(--kendo-color-primary);
    color: var(--kendo-color-on-primary-action, var(--kendo-color-primary-on-subtle));
}

    .k-button.app-btn-primary-subtle:hover {
        background-color: var(--kendo-color-primary-action-active, var(--kendo-color-primary-subtle-hover));
    }

.k-button.app-btn-secondary-subtle {
    background-color: var(--kendo-color-secondary-subtle);
    border-color: var(--kendo-color-secondary);
    color: var(--kendo-color-secondary-on-subtle);
}

    .k-button.app-btn-secondary-subtle:hover {
        background-color: var(--kendo-color-secondary-subtle-hover);
    }

.k-button.app-btn-warning-subtle {
    background-color: var(--kendo-color-warning-subtle);
    border-color: var(--kendo-color-warning);
    color: var(--kendo-color-warning-on-subtle);
}

    .k-button.app-btn-warning-subtle:hover {
        background-color: var(--kendo-color-warning-subtle-hover);
    }

.k-button.app-btn-error-subtle {
    background-color: var(--kendo-color-error-subtle);
    border-color: var(--kendo-color-error);
    color: var(--kendo-color-error-on-subtle);
}

    .k-button.app-btn-error-subtle:hover {
        background-color: var(--kendo-color-error-subtle-hover);
    }

.k-button.app-btn-error {
    background-color: var(--kendo-color-error);
    border-color: var(--kendo-color-error-emphasis, var(--kendo-color-error));
    color: var(--kendo-color-on-error);
}

    .k-button.app-btn-error:hover {
        background-color: var(--kendo-color-error-hover);
    }

.k-button.app-btn-warning {
    background-color: var(--kendo-color-warning);
    border-color: var(--kendo-color-warning-emphasis, var(--kendo-color-warning));
    color: var(--kendo-color-on-warning);
}

    .k-button.app-btn-warning:hover {
        background-color: var(--kendo-color-warning-hover);
    }

.k-button.app-btn-success {
    background-color: var(--kendo-color-success);
    border-color: var(--kendo-color-success-emphasis, var(--kendo-color-success));
    color: var(--kendo-color-on-success);
}

    .k-button.app-btn-success:hover {
        background-color: var(--kendo-color-success-hover);
    }

.k-button.app-btn-emphasis {
    background-color: var(--kendo-color-base-emphasis);
    border-color: var(--kendo-color-border-alt, var(--kendo-color-border));
    color: var(--kendo-color-secondary-on-subtle, var(--kendo-color-on-surface));
}

/* Selection group: bordered chip wrapping the selection actions + count */
.app-selection-group {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 4px;
    padding: 3px 6px;
}

/* ── Acrylic dialogs (the MaterialFrame look: blur + tinted surface) ── */
.k-window {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    background-color: color-mix(in srgb, var(--kendo-color-surface, #F6F8FB) 78%, transparent);
    backdrop-filter: blur(16px) saturate(1.15);
    -webkit-backdrop-filter: blur(16px) saturate(1.15);
}

.k-window-titlebar,
.k-window-content {
    background: transparent;
}

.k-overlay {
    background-color: #000;
    opacity: 0.5;
}

/* ── Issue Summary card (MAUI treatment) ───────────────────────────── */
.issue-summary {
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 8px;
    background: var(--kendo-color-surface-alt, #fff);
    margin: 10px 0;
    overflow: hidden;
}

.issue-sev-warning { border-color: var(--kendo-color-warning); }
.issue-sev-error { border-color: var(--kendo-color-error); }
.issue-sev-success { border-color: var(--kendo-color-success); }

.issue-summary-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    cursor: pointer;
    border-bottom: 1px solid var(--kendo-color-border, #D2DAE3);
    flex-wrap: wrap;
}

/* Tinted headers pair the subtle background with its on-subtle text color,
   so dark themes stay readable. */
.issue-head-warning { background: var(--kendo-color-warning-subtle); color: var(--kendo-color-warning-on-subtle); }
.issue-head-error { background: var(--kendo-color-error-subtle); color: var(--kendo-color-error-on-subtle); }
.issue-head-success { background: var(--kendo-color-success-subtle); color: var(--kendo-color-success-on-subtle); }

.issue-accent {
    width: 4px;
    height: 20px;
    border-radius: 2px;
    flex-shrink: 0;
}

.issue-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-radius: 12px;
    padding: 5px 10px;
    color: var(--kendo-color-on-primary, #fff);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    margin-left: 6px;
}

.issue-summary-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
}

.issue-detail-card {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 8px;
    background: var(--kendo-color-surface-alt, #fff);
    padding: 12px;
}

.issue-border-warning { border-color: var(--kendo-color-warning); }
.issue-border-error { border-color: var(--kendo-color-error); }

.issue-glyph {
    font-size: 20px;
    flex-shrink: 0;
}

.issue-msg {
    font-size: 12px;
    color: var(--kendo-color-on-surface, #333);
}

.k-button.issue-action {
    width: 110px;
    font-size: 12px;
    justify-content: center;
    flex-shrink: 0;
}

.issue-stats {
    display: flex;
    margin-top: 6px;
}

    .issue-stats > div {
        flex: 1;
        text-align: center;
    }

.issue-stat-count {
    font-size: 24px;
    font-weight: 700;
}

.issue-stat-caption {
    font-size: 11px;
    color: var(--kendo-color-on-surface-low, #6b7280);
}

/* ── Grid chrome (MAUI BaseDataGridStyle) ──────────────────────────── */
/* Zebra rows: app-surface / surface-alt alternating */
.k-grid .k-table-row {
    background-color: var(--kendo-color-app-surface, #EBEFF5);
}

.k-grid .k-table-alt-row {
    background-color: var(--kendo-color-surface-alt, #FFFFFF);
}

/* Per-grid row heights (MAUI: Checklists/edit 50, Revisions 40, Library 35, References 32) */
.app-rows-50 .k-table-tbody .k-table-row { height: 50px; }
.app-rows-40 .k-table-tbody .k-table-row { height: 40px; }
.app-rows-35 .k-table-tbody .k-table-row { height: 35px; }
.app-rows-32 .k-table-tbody .k-table-row { height: 32px; }

/* Column banding: the stem color at 8% over cells, 16% over headers.
   Cell tints are semi-transparent so they blend with the zebra rows. */
.k-grid td.band-primary { background-color: color-mix(in srgb, var(--kendo-color-primary) 8%, transparent); }
.k-grid td.band-secondary { background-color: color-mix(in srgb, var(--kendo-color-secondary) 8%, transparent); }
.k-grid td.band-tertiary { background-color: color-mix(in srgb, var(--kendo-color-tertiary) 8%, transparent); }
.k-grid th.band-header-primary { background-color: color-mix(in srgb, var(--kendo-color-primary) 16%, var(--kendo-color-surface)); }
.k-grid th.band-header-secondary { background-color: color-mix(in srgb, var(--kendo-color-secondary) 16%, var(--kendo-color-surface)); }
.k-grid th.band-header-tertiary { background-color: color-mix(in srgb, var(--kendo-color-tertiary) 16%, var(--kendo-color-surface)); }

/* Answers count pill (MAUI: radius 9, 10pt bold, primary) */
.count-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 9px;
    background: var(--kendo-color-primary, #1E6FCB);
    color: var(--kendo-color-on-primary, #fff);
    font-size: 10px;
    font-weight: 700;
}

/* Notes column: two-line clamp with full text in the tooltip */
.notes-cell {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 13px;
    white-space: normal;
}

/* Circular action chips (MAUI: 26px edit pencil, 22px library plus) */
.app-circle-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    background: color-mix(in srgb, var(--kendo-color-on-app-surface, #1B2734) 4%, transparent);
    color: var(--kendo-color-on-app-surface, #1B2734);
    font-size: 14px;
    text-decoration: none;
    cursor: pointer;
}

    .app-circle-chip:hover {
        background: color-mix(in srgb, var(--kendo-color-on-app-surface, #1B2734) 10%, transparent);
        color: var(--kendo-color-on-app-surface, #1B2734);
    }

.app-circle-chip-sm {
    width: 22px;
    height: 22px;
    font-size: 12px;
    font-weight: 700;
}

/* Row-click details drawer, docked beside the grid (MAUI default 440px):
   the grid narrows to make room instead of being covered. Sticky so it
   stays in view while the page scrolls. */
.app-side-drawer {
    flex: 0 0 min(440px, 40vw);
    position: sticky;
    top: 8px;
    max-height: calc(100vh - 120px);
    background: var(--kendo-color-surface, #F6F8FB);
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    padding: 12px 16px;
    overflow-y: auto;
}

.app-drawer-section {
    font-size: 13px;
    font-weight: 700;
    color: var(--kendo-color-primary, #1E6FCB);
    margin: 6px 0 4px 0;
}

/* Full-page drag-and-drop overlay (MAUI DragDropOverlay) */
.app-drop-overlay {
    position: fixed;
    inset: 0;
    z-index: 15000;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

    .app-drop-overlay.app-drop-active {
        display: flex;
    }

.app-drop-box {
    border: 5px dashed #fff;
    border-radius: 8px;
    padding: 64px 40px;
    margin: 24px;
    text-align: center;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
}

    .app-drop-box span {
        display: block;
        font-size: 18px;
        font-weight: 400;
        margin-top: 8px;
    }

/* Textareas that fill their splitter pane */
.fill-editor {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.fill-editor .fill-textarea {
    flex: 1 1 auto;
    min-height: 0;
}

.fill-editor .fill-textarea textarea {
    height: 100%;
    resize: none;
}

/* Give stacked expanders a little breathing room */
.k-expander + .k-expander {
    margin-top: 6px;
}

/* Host Information expander: wrapped 250px field columns like the MAUI page */
.host-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
}

.host-fields .host-field {
    width: 250px;
}

/* ===== SLATE theming: app surfaces on the swatch variables ===== */
body {
    background-color: var(--kendo-color-app-surface, #EBEFF5);
    color: var(--kendo-color-on-app-surface, #1B2734);
}

.text-muted {
    color: var(--kendo-color-subtle, #7A8A9A) !important;
}

.card {
    background-color: var(--kendo-color-surface-alt, #fff);
    border-color: var(--kendo-color-border, #D2DAE3);
    color: inherit;
}

hr {
    border-color: var(--kendo-color-border, #D2DAE3);
    opacity: 1;
}

/* Bootstrap badges used for counts and CCI/AP chips follow the swatch */
.badge.bg-danger {
    background-color: var(--app-status-open, #dc3545) !important;
}

.badge.bg-success {
    background-color: var(--app-status-notafinding, #198754) !important;
}

.badge.bg-warning {
    background-color: var(--kendo-color-warning, #ffc107) !important;
}

.badge.bg-secondary {
    background-color: var(--kendo-color-base-emphasis, #6c757d) !important;
    color: var(--kendo-color-on-base, #fff) !important;
}

.badge.bg-info {
    background-color: var(--kendo-color-info, #0dcaf0) !important;
}

/* Severity chips (CAT I/II/III) */
.severity-chip-cat1 { background: var(--app-severity-cati, #D43B4E); }
.severity-chip-cat2 { background: var(--app-severity-catii, #D9822B); }
.severity-chip-cat3 { background: var(--app-severity-catiii, #C9A227); }

/* Issue summary card + CAT chips + detail cards (ChecklistsPage parity) */
.issue-card {
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-left: 4px solid var(--app-status-notafinding, #33D17A);
    border-radius: 6px;
    background: var(--kendo-color-surface, #F6F8FB);
    padding: 10px 14px;
    margin-bottom: 10px;
}

.issue-card-warn {
    border-left-color: var(--app-severity-catii, #D9822B);
}

.issue-tile {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    background: var(--kendo-color-surface-alt, #fff);
    padding: 6px 10px;
}

/* Open-findings pills: MAUI radius 10, 10pt bold */
.cat-chip {
    display: inline-block;
    padding: 3px 7px;
    border-radius: 10px;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    margin-right: 4px;
    white-space: nowrap;
}

.cat-chip.cat1 { background: var(--app-severity-cati, #D43B4E); }
.cat-chip.cat2 { background: var(--app-severity-catii, #D9822B); }
.cat-chip.cat3 { background: var(--app-severity-catiii, #C9A227); }

.detail-card {
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    background: var(--kendo-color-surface-alt, #fff);
    padding: 10px 14px;
    min-width: 260px;
}

.detail-card .meta-label {
    display: inline-block;
    min-width: 110px;
    margin-bottom: 0;
}

/* Import dialog option groups */
.import-options {
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    padding: 8px 12px;
    min-width: 250px;
}

.import-options legend {
    font-size: 0.9rem;
    font-weight: 600;
    float: none;
    width: auto;
    padding: 0 4px;
    margin-bottom: 2px;
}

/* Classification banner across the top of the edit page */
.classification-banner {
    color: #fff;
    text-align: center;
    font-weight: 700;
    padding: 2px 0;
    border-radius: 4px;
    margin-bottom: 6px;
    letter-spacing: 0.1em;
}

/* Business Rules cards */
.rules-card {
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    background: var(--kendo-color-surface, #F6F8FB);
    padding: 12px 16px;
}

/* Note / answer cards in the panels */
.note-card {
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    background: var(--kendo-color-surface-alt, #fff);
    padding: 8px 10px;
    margin-bottom: 6px;
}

/* Theme Settings: family cards + mock-UI previews */
.theme-cards {
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-width: 720px;
}

.theme-card-active {
    border-color: var(--kendo-color-primary, #1E6FCB);
    box-shadow: 0 0 0 1px var(--kendo-color-primary, #1E6FCB);
}

.theme-preview {
    height: 150px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    padding: 15px;
    margin-bottom: 8px;
    overflow: hidden;
}

.theme-preview-header {
    height: 25px;
    border-radius: 4px;
    margin-bottom: 10px;
}

.theme-preview-tiles {
    display: flex;
    gap: 8px;
}

    .theme-preview-tiles > div {
        flex: 1;
        height: 20px;
        border-radius: 3px;
    }

.theme-preview-lines {
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

    .theme-preview-lines > div {
        height: 12px;
        border-radius: 2px;
    }

.swatch-chips {
    display: inline-flex;
    gap: 4px;
    margin-right: 8px;
    vertical-align: middle;
}

.swatch-chip {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 4px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
}

/* Command chips extracted from Check/Fix text */
.command-chips {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 6px 0;
}

.command-chip {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding: 4px 6px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 4px;
    background: var(--kendo-color-surface-alt, #fff);
}

.command-chip-text {
    font-family: Consolas, "Cascadia Mono", monospace;
    font-size: 12px;
    align-self: center;
    word-break: break-all;
}

/* Vulnerability tree view */
.vuln-tree {
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    overflow: hidden;
}

.vuln-tree-toolbar {
    background: var(--kendo-color-base-background, #F0F3F8);
    border-bottom: 1px solid var(--kendo-color-border, #D2DAE3);
}

.vuln-tree-list {
    overflow-y: auto;
    flex: 1;
}

.vuln-tree-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    cursor: pointer;
    border-bottom: 1px solid var(--kendo-color-border, #D2DAE3);
    background: var(--kendo-color-base-background, #F0F3F8);
}

    .vuln-tree-row:hover {
        background: var(--kendo-color-base-subtle, #E4EAF2);
    }

.vuln-tree-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
}

.vuln-tree-branches {
    padding: 2px 8px 8px 28px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.vuln-tree-branch-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    cursor: pointer;
    background: var(--kendo-color-base-subtle, #E4EAF2);
    border-radius: 4px;
}

/* Duplicate checklist rows (same host + STIG version set) */
.k-grid tr.dup-row > td {
    background: color-mix(in srgb, var(--app-severity-catiii, #C9A227) 14%, transparent);
}

/* MAUI-style busy overlay: scrim + bordered card + big spinner */
.app-busy-overlay {
    position: fixed;
    inset: 0;
    z-index: 12000;
    background: rgba(0, 0, 0, 0.38);
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-busy-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    min-width: 300px;
    max-width: 450px;
    padding: 40px 48px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 10px;
    background: var(--kendo-color-app-surface, #EBEFF5);
}

.app-busy-text {
    font-size: 14px;
    text-align: center;
    color: var(--kendo-color-on-app-surface, #1B2734);
}

/* Reference Files status pills (success / warning / error tinted) */
.ref-status-pill {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 11px;
}

.ref-status-success { background: var(--kendo-color-success-subtle); color: var(--kendo-color-success-on-subtle); }
.ref-status-warning { background: var(--kendo-color-warning-subtle); color: var(--kendo-color-warning-on-subtle); }
.ref-status-error { background: var(--kendo-color-error-subtle); color: var(--kendo-color-error-on-subtle); }

/* Classification-colored combo: the wrapper paints the classification color;
   the combo itself goes transparent with bold contrasting text */
.class-combo-wrap {
    display: inline-block;
    border-radius: 4px;
    overflow: hidden;
}

    .class-combo-wrap .k-dropdownlist,
    .class-combo-wrap .k-input-inner,
    .class-combo-wrap .k-input-button {
        background: transparent !important;
        color: inherit !important;
        font-weight: 700;
    }

/* MAUI page headers: 18px bold instruction line */
.app-page-title {
    font-size: 18px;
    font-weight: 700;
    margin: 4px 0 12px 0;
}

/* Business Rules classification chip cloud (MAUI radius 14) */
.class-value-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 14px;
    padding: 4px 6px 4px 10px;
    margin: 0 6px 6px 0;
    font-size: 13px;
}

/* EULA acceptance gate */
.eula-overlay {
    position: fixed;
    inset: 0;
    z-index: 20000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
}

.eula-dialog {
    background: var(--kendo-color-app-surface, #fff);
    color: var(--kendo-color-on-app-surface, #1B2734);
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 8px;
    padding: 20px;
    width: min(680px, 92vw);
    max-height: 86vh;
    display: flex;
    flex-direction: column;
}

.eula-text {
    overflow-y: auto;
    white-space: pre-wrap;
    font-size: 13px;
    border: 1px solid var(--kendo-color-border, #D2DAE3);
    border-radius: 6px;
    padding: 12px;
    flex: 1;
    min-height: 200px;
}
